Как сделать лимит на хук + адаптация для ZP 4.3
Как сделать лимит на хук + адаптация для ZP 4.3

В данной статьи я решил написать про адаптацию паутинки или же "HOOK" для мода Zombie Plague 4.3, так-же мы поставим нужные проверки на раунды и лимит на использования!

Для начала скачаем и откроем любой хук (паутинку)

И так, приступим:

1.Добавим include zombieplague:
#include <zombieplague>

2. Ищем паблик активации хука. В моём случае это hook_on и добавляем ряд проверок:
if(!is_user_alive(id))
{
ColorChat(id, RED, "^1[^4vk.com/zmsuper^1] Хук запрещён. ^4Вы мертвы!^1");
return PLUGIN_HANDLED;
}
if(zp_get_user_zombie(id))
{
ColorChat(id, RED, "^1[^4vk.com/zmsuper^1] Хук запрещён. ^4Вы зомби!^1");
return PLUGIN_HANDLED;
}
if(zp_get_user_survivor(id))
{
ColorChat(id, RED, "^1[^4vk.com/zmsuper^1] Хук запрещён. ^4Вы выживший!^1");
return PLUGIN_HANDLED;
}
if(zp_is_swarm_round())
{
ColorChat(id, RED, "^1[^4vk.com/zmsuper^1] Хук запрещён. ^4Ожидайте!^1");
return PLUGIN_HANDLED
}
if(zp_is_plague_round())
{
ColorChat(id, RED, "^1[^4vk.com/zmsuper^1] Хук запрещён. ^4Ожидайте!^1");
return PLUGIN_HANDLED
}

P.s я использую ColorChat для вывода текста, вы же можете использовать любой другой!

У вас должно получиться примерно так:


А теперь сохраняем и компилируем!


Также не маловажную роль играет ограничение хука, который хоть немного придаст баланс на сервер! Как же это сделать? - смотрим!

1.Создаём переменную:
new HumanHook[33]

2.В plugin_init регистрируем эвент, который будет обнулять наш хук:
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")

3. Добавляем паблик в любое свободное место:
public event_round_start(id)
{
for (new i = 0; i < 32; i++)
{
HumanHook=0
}
}

4.[i]Далее опять ищем паблик активации хука, в моём случае это
hook_on и добавляем вот эту проверку:
if(HumanHook[id]<30)
{
HumanHook[id]+=1
ColorChat(id, RED, "^1[^4vk.com/zmsuper^1] Внимание! У вас осталось всего лишь ^4%d ^1раз!",30 - HumanHook[id])
}

P.s 30 - это количество раз.

Получаем примерно такой код:


Вот таким не хитрым и довольно простым способом мы сделали простую паутинку в паутинку, пригодную для ZP 4.3

Всем спасибо, все свободны!

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

Комментариев 16
  1. Universe
    Игорь, я тебе уже говорил, что подсчет игроков с 0 неправильно делать? Потому что у тебя смещение по игрокам на 1 в - идет + 0 - это сервер, ты помимо всего будешь пытаться отослать свои команды серверу. Также в цикле подсчета игроков нет проверки, что игрок вообще подключен. Из-за этого могут появляться ошибки в консоле, что игрок не валиден.

    30 - HumanHook[id] - так не круто делать, потому что если человек(юзверь) захочет поменять на свое кол-во(вместо 30) ему придется искать еще этот код и менять цифру тут. А если он тупой, то не найдет и сам сделать не сможет, а последствия этому кривой вывод в чат.

    Why i'm not from Ukraine?
    -------------------------------------------------------------------------------------------------------------------------
    Группа VK: vk.com/forumbz
    • 6 января 2019 23:02
  2. Mort3m
    Mort3m
    • +1
    Откуда ты взял такой ущербный код? Сам что-ли писал?
    Дак и ладно если бы статья была нормальная оформлена, но
    1. Где макрос MAXPLAYERS ? Те кто будут копировать код из твоей статьи, не поймут даже, что данного макроса нет, а он обозначает число 32 ( да кстати, зачем + 1 ? 33 слота на сервере ? )
    2. Про проверки молчу, можно было сократить и много раз не писать return PLUGIN_HANDLED;

    3.
    public event_round_start(id)
    {for (new i; i < MAXPLAYERS + 1; i++)
    {
    HumanHook[i]=0
    }
    }

    У эвентов которые работают с раундами вообще нет аргументов, в твоем случае, если у тебя есть аргумент ( откуда он взялся я не знаю ), зачем ты тогда делаешь цикл? Where's Logic? Да и че за привычка писать числом кол-во макс.игроков ? Если у челика будет 20 слотов на серваке? Это лишние вызовы цикла. ЗАЧЕМ?
    >
    public event_round_start()
    {
    for (new i = 1; i <= get_maxplayers(); i++)
    {
    if(!is_user_connected(i)) continue;
    HumanHook[i] = 0;
    }
    }

    4. Ну добавят игроки этот блок кода, дальше что? У тебя там нет ретурна если кол-во хуков превышает максимальное число ( На самом скрине есть код который идёт дальше else, но автор статьи решил что блокировка хука тут не нужна, и просто выделил код который по его мнению является самым важным )

    Кароче, дизы да и только :(

    • 7 января 2019 06:18
  3. Wizard
    Wizard
    • +1
    Мне одному почему так много дизлайков?
    Статья вполне актуальная, так-как было множество вопросов в группе о лимите на паутику!
    ======================
    AMXX-Scripts and C++ Programmer
    ======================
    https://vk.com/id344641190
    ======================
    • 7 января 2019 18:53
    1. )_NEO_(
      Статья то годная но вот код желает лучшего , много где страдает он 

      Людям страдающих оптимизацией старательно не рекомендую смотреть мой код =)
      By NEO
      • 7 января 2019 19:30
  4. xUnicorn
    • 7 января 2019 20:48
    1. MKOD
      MKOD
      • 0
      Не особо понял тебя.
      • 8 января 2019 17:58
  5. Govno
    Govno
    • 0
    1)
    HumanHook[33] -> массив
    HumanHook -> переменная
    2) Можно обойтись без цикла.
    3) 30 -> const CHLENIX = 30
    • 7 января 2019 21:14
  6. MKOD
    MKOD
    • +1
    Код взят с моей первой паутинки 2 лет давности, удивил тот факт что он даже не удалил проверки на Выжившего/Немезиду и для раундов Swarm, Multi, Plague. Больше всего поразило надпись Автор: Бубенчик. Я как понял тебе мурзота уже денег нет и давай писать хуйно чтобы Дима хоть 50р кинул на Qiwi.
    • 8 января 2019 10:28
    1. BuB9neC
      Где написано, что автор бубенчик?
      • 8 января 2019 17:58
      1. MKOD
        MKOD
        • 0
        Вчера было написано Автор статьи как-то так: и тут Бубенец или как ты себя любишь записывать.

        И зачем вообще было писать это если это не статья а тупо ты сказал где и что находится, ибо код я написал давно комы было интересно могли скачать плагин и посмотреть.
        • 8 января 2019 18:02
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Сайт был обновлен, нажми CTRL+F5
Основа для вашей сборки
ReHLDS 3.7.0.698

ReHLDS (Reverse-engineered) - это новый шаг вперед, который дает второе дыхание нашим серверам. ReHLDS работает в 2 раза быстрей, чем HLDS.

AmxModx 5.2.7.1

AMXModX - это Metamod дополнение, которое позволяет создавать новые модификации для Half-Life на языке Pawn

Reunion 0.1.92

Reunion является продолжением Dproto для ReHLDS. Это metamod плагин, который позволяет заходить 47/48 Non-Steam на сервер.

Revoice 0.1.0.34

Revoice - это Metamod plugin, который дает возможность общения голосовым чатом между non-steam и steam клиентами.

Metamod-r 1.3.128

Новый Metamod-r содержит огромное количество оптимизаций производительности и намного более чистый код. Ядро было написано с использованием JIT-компилятора.

Ultimate Unprecacher 1.1

Ultimate Unprecacher являет плагином для MetaMod, работает он по принципу отключение не нужных ресурсов на вашем сервере, тем самым вы сможете освободить места для ресурсов под ваши плагины, с помощью данного модуля можно избавиться от ошибки 512!

ReAuthCheck 0.1.6

ReAuthCheck - это Metamod плагин, который занимается проверкой ваших игроков на валидность, с помощью данного модуля для REHLDS вы сможете защитить свой сервер от ботов, которые постоянно спамят рекламу или просто забивают слот на сервере!

NetBufExtender (NBEX) 1.0

NetBufExtender или NBEX - это метамод-плагин, который расширяет "интернет-буфер": буферы сервера и клиента(гарантия не 100%). Расширяет до 64 кб. Это значит, что у игроков уменьшается вероятность быть кикнутыми с ошибкой "Reliable channel overflowed".

UserInfoNetOptimizer (UINO) 1.0

UINO — metamod-плагин, который позволяет удалять ненужные поля из userinfo(setinfo) когда движок передаёт его другим игрокам на сервере. Данная мера уменьшает объём передаваемых данных и немного сокращает шанс быть кикнутым с "Reliable channel overflowed".

Информация

Добро пожаловать на WIZARD-CS.RU!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт