NoShootZones

hirowatch

Живет ХЛмод`ом
Сообщения
2,722
Реакции
1,634
  • Автор ресурса
  • #1
hirowatch добавил(а) новый ресурс:

NoShootZones - Плагин позволяет запрещать стрельбу в определенной области

Плагин позволяет запрещать стрельбу в определенной области указанный администратором с флагом Z от точки прицела по радиусу которая указана в Настройках. При входе и выходе идет оповещение о вхождении в зону и выхода из нее.

При запрете стрельбы от игрока который будет стрелять он будет видеть выстрел, но выстрел не будет засчитан и обойма останется той же

Узнать больше об этом ресурсе...
 

hirowatch

Живет ХЛмод`ом
Сообщения
2,722
Реакции
1,634
  • Автор ресурса
  • #2
hirowatch обновил(а) ресурс NoShootZones новой записью:

Обновление

Обновление включает в себя:
  • Сильная оптимизация.
  • Переход плагина на новый синтаксис.
  • Переименование файла noshootzones.txt в noshootzones.ini в директории /[mod]/addons/sourcemod/configs.
  • Добавлен файл переводов noshootzones.phrases.txt.
Отдельное спасибо перечислять @HolyHender

Узнать больше об этом обновлении...
 

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
Вот тебе ревью твоего (не буду говорить на сколько он прекрасен, чист и логичен)

Зачем нам меню, когда есть панели? Зачем нам переводы, когда можно мешать (микс же лучше, чем, что-то одно использовать?)

C++:
    (g_hCvar = CreateConVar("sm_nsz_rad", "210.0", "Радиус зоны (в единицах). Примерная высота игрока - 72 единицы.")).AddChangeHook(OnConVarChanged);
    g_fRad = g_hCvar.FloatValue;
Зачем глобальную переменную создавать? Зачем??? Вы уже вешаете обработчик на нее, зачем вам еще событие
OnConVarChanged отслеживать ?

C++:
bool IsValidClient(int client)
{
    if(client < 1 || client > MaxClients || !IsClientConnected(client) || !IsClientInGame(client) || IsFakeClient(client))
    {
        return false;
    }

    return true;
}
Это просто чудо, особенно, когда перебираем в диапазоне 1 <= x, Зачем IsClientConnected, когда есть IsClientInGame?

А главное, зачем вам
delete menu;, когда мы дескриптор открытым держите (в глобальной переменной ), зачем? Утечка памяти у тебя в голове? Протестируй свою шлакобазу нормально, особенно внимание на панель (не та, о чем ты подумал)
 

ERROR404

Участник
Сообщения
286
Реакции
102
А можно просто запретить выстрел, а не "выстрел есть, урона нет"?
 

HolyHender

Прокуратура на связи
Сообщения
271
Реакции
394
А можно просто запретить выстрел, а не "выстрел есть, урона нет"?
Анимацию рисует клиент до того, как до сервера вообще доходит инфа о том, что он начал стрелять.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,920
  • Команда форума
  • #6
Причесать там есть, на самом деле, что. Но не всё так плохо, как в посте выше говорится.

Зачем нам меню, когда есть панели?
Панели - более низкоуровневая хрень, заставляющая больше думать, нежели писать. Мы же все любим абстракции, которые заставляют нас писать меньше кода и вообще не думать о том, как оно работает. Вот меню - как раз про это.

Зачем нам переводы, когда можно мешать (микс же лучше, чем, что-то одно использовать?)
Тут 50/50.
Я лично не вижу смысла в переводы выносить текст, который выводится в конечном итоге в логах/консоли сервера на старте. А в местах, где непосредственно мелькает уже клиент, они вроде везде и применяются. Мог проглядеть, поправьте если не прав.

Зачем глобальную переменную создавать? Зачем??? Вы уже вешаете обработчик на нее, зачем вам еще событие
OnConVarChanged отслеживать ?
Если заглянуть в код метода, то становится ясно, зачем.
Там происходит сверка хендла квары. Чтобы если сменился не тот квар, то и значение не обновлять. Какая-то проработка на будущее, в общем, если будет больше кваров.

delete menu;, когда мы дескриптор открытым держите (в глобальной переменной ), зачем?
Я вообще не увидел никакой глобальной варки под меню, или чтобы хоть в какую-то хоть какая-то менюшка писалась.

@HolyHender, если ты об этом плагине вчера в ВК говорил, то тут таки можно запретить. Если то свойство, о котором я вчера писал, есть и в кс, то железобетонно можно его в таймере менять постоянно на короткий промежуток времени вперёд. Тогда стрельба будет фактически заблокирована, а при выходе из зоны (из-за "коротких промежутков") способность стрелять сама будет возвращаться. Но тут можно просто большое время выставлять при входе, а при выходе - возвращать нормальное.
 

ERROR404

Участник
Сообщения
286
Реакции
102
Думал взять закрыть рампу на авп, данным плагином, но чот оружие свапается само в данной зоне, можно с авп в прыжке в зуме в воздухе зависнуть. @hirowatch, можете подсказать из-за чего это ?
 
Сверху Снизу