Hide and Seek: Developer Engine Module




Hide and Seek: Developer Engine Module

Описание: Модуль включает в себя все необходимое для создания своего мода Hide and Seek. По сути, тот же Hide and Seek: Developer Mode, но в наиболее доработанном виде, ну и, конечно же, реализованный как AMXX Модуль, что несомненно делает его оптимальней, чем версия, реализованная на павне.

Поддерживаемые версии HLDS: 5787,6027,6153 (Windows/Linux).
На остальных билдах работа не гарантирована, т.к. тесты проводились именно на перечисленных.

Установка: Закинуть hnsmod_amxx.dll или hnsmod_amxx_i386.so (в зависимости от ОС) в директорию /cstrike/addons/amxmodx/modules/, и в modules.ini добавить строку hnsmod .

[pawn][MAIN]
{
 
# HNS_FRAG_DURATION - время в секундах, через которое потенциальная жертва фрагера будет лишена защиты.
    HNS_FRAG_DURATION = 3
 
# HNS_TIMER_SECONDS - время таймера, в секундах.
    HNS_TIMER_SECONDS = 10
   
# HNS_SERVER_AA - акселерация на сервере (sv_airaccelerate).
    HNS_SERVER_AA = 100
 
# HNS_BLOCK_MONEY - блокировка изменения HUDа денег.
    HNS_BLOCK_MONEY = 1
}
 
[AUTO JOIN TEAM]
{
 
# HNS_JOIN_TEAM - принудительный выбор команда. 5 - автовыбор.
    HNS_JOIN_TEAM = 5
   
# HNS_JOIN_CLASS - принудительный выбор класса. 5 - автовыбор.
    HNS_JOIN_CLASS = 5
   
# HNS_CHANGE_BLOCK - запрет смены команды во время игры (1/0).
    HNS_CHANGE_BLOCK = 1
}
 
[ENTITY REMOVED LIST]
{
 
#СПИСОК ОБЪЕКТОВ, КОТОРЫЕ БУДУТ УДАЛЕНЫ
 
    func_buyzone
    info_bomb_target
    func_hostage_rescue
    monster_scientist
    hostage_entity
    info_hostage_rescue
    func_bomb_target
    func_escapezone
    info_vip_start
    func_vip_safetyzone
    armoury_entity
    func_breakable
}[/pawn]
API
INCLUDE ( hns_engine.inc ):
Описание функций найдете в нем.[pawn] #if defined _HNSENGINE_
    #endinput
 #endif
 
 #define _HNSENGINE_
 
 #define HNS_NORMAL 1
 #define HNS_SUPERCEDE 2
 
 enum HnsTeams
 {
        HNS_DRAW_OR_UNASSIGNED,
        HNS_TEAM_T,
        HNS_TEAM_CT,
        HNS_TEAM_SPECTATOR
 };
 
/**
 * Вызывается, когда раунд заканчивается в пользу той или иной команды или вничью.
 *
 * @param team                  Победившая команда.
 */
 forward hns_round_end(HnsTeams:team);
 
/**
 * Вызывается, когда таймер закончен и CT начинают действовать.
 *
 * @param index         Индекс игрока.
 */
 forward hns_round_start(index);
 
/**
 * Вызывается в процессе таймера.
 *
 * @param index         Индекс игрока.
 * @param time          Секунды таймера.
 */
 forward hns_timer_process(index, time);
 
/**
 * Вызывается после смены команды игрока, произведенной нативой hns_switch_teams().
 *
 * @param index         Индекс игрока.
 * @param team                  Новая команда игрока.
 */
 forward hns_became_team(index, HnsTeams:team);
 
/**
 * Вызывается когда в опр. команде остается один игрок.
 *
 * @param index         Индекс игрока.
 * @param team          Команда игрока.
 */
 forward hns_player_loner(index, HnsTeams:team);
 
 /**
 * Вызывается до фактического совершения фрага.
 *
 * @param victim                Индекс жертвы.
 * @param attacker              Индекс фрагера (убийцы).
 * @param damage                Нанесенный урон.
 */
 forward hns_frag_pre(victim, attacker, Float: damage);
 
 /**
 * Вызывается после фактического совершения фрага.
 *
 * @param victim                Индекс жертвы.
 * @param attacker              Индекс фрагера (убийцы).
 * @param damage                Нанесенный урон.
 */
 forward hns_frag_post(victim, attacker, Float: damage);
 
  /**
* Вызывается до фактического присоединения к команде.
*
* @param index Индекс игрока.
*/
forward hns_jointeam_pre(index);

/**
* Вызывается после фактического присоединения к команде.
*
* @param index Индекс игрока.
*/
forward hns_jointeam_post(index);
 
/**
 * Функция предназначена для переформирования команд, а именно изменения их местами.
 */
 native hns_switch_teams();
 
 /**
 * Функция возвращает истину, если имеется состав обеих команд.
 */
 native bool:hns_get_gamestarted();
 
 /**
 * Функция возвращает кол-во  игроков в опр. команде.
 *
 * @param team                  Необходимая команда.
 * @param alive                 Брать в рассчет только живых игроков (по умолчанию: false).
 */
 native hns_get_playersnum(HnsTeams:team, bool: alive = false);
 
 /**
 * Функция позволяет изменять команду игрокам.
 *
 * @param index                 Индекс игрока.
 * @param team                  Новая команда игрока.
 */
 native hns_set_user_team(index, HnsTeams:team);
 
 /**
 * Функция возвращает команду игрока.
 *
 * @param index                 Индекс игрока.
 */
 native HnsTeams: hns_get_user_team(index);
 
 /**
 * Функция позволяет ослеплять игрока или наоборот, убирать ослепление.
 *
 * @param index                 Индекс игрока.
 * @param status            Состояние (true/false).
 */
 native hns_set_screenfade(index, bool: status);[/pawn]

Отдельное внимание хотелось бы уделить двум нововведениям: два форварда, которые дают возможность контролировать одно неприятное нарушение многих игроков Hide and Seek - фрагерство. Для тех, кто не знает - это когда контр-террорист догнав террориста не отпускает его после первого удара, а добивает и не дает террористу шанс на то, чтобы тот унес свою тушу.

Информация из заголовочного файла:
[pawn]/**
* Вызывается до фактического совершения фрага.
*
* @param victim Индекс жертвы.
* @param attacker Индекс фрагера (убийцы).
* @param damage Нанесенный урон.
* @param time Оставшееся время действия анти-фрага.
*/
forward hns_frag_pre(victim, attacker, Float: damage, time);

/**
* Вызывается после фактического совершения фрага.
*
* @param victim Индекс жертвы.
* @param attacker Индекс фрагера (убийцы).
* @param damage Нанесенный урон.
* @param time Оставшееся время действия анти-фрага.
*/
forward hns_frag_post(victim, attacker, Float: damage, time);[/pawn]

Покажу вам пример использования данных форвард-функций. Давайте поставим для себя такую задачу - нам нужно защищать админа от фрагерства. В этом случае нам необходимо использовать pre событие, т.к. мы будем блокировать урон:
[pawn]public hns_frag_pre(victim, attacker, Float: damage)
{
    if (get_user_flags(victim) & ADMIN_BAN)//если жертва - админ с флагом ADMIN_BAN
    {
        client_print(attacker, print_chat, "You can not frag an admin.");//выводим нарушителю сообщение, что нельзя фрагерить админа
        client_print(victim, print_chat,  "Hurry flee!");//выводим жертве сообщение с советом скорее бежать
       
        return HNS_SUPERCEDE;//блокируем урон по жертве
    }
   
    return HNS_NORMAL;
}[/pawn]
Поставленная задача решена. : )

Теперь поставим перед собой такую задачу: нам нужно написать вспомогательный плагин, который будет просто уведомлять, что фрагерство на сервере запрещено. В этом случае нам подойдет post событие, ведь блокировать мы ничего не будем:
[pawn]public hns_frag_post(victim, attacker, Float: damage)
{
    new szName[32]; get_user_name(attacker, szName, charsmax(szName));//получаем имя нарушителя
   
    client_print(attacker, print_chat, "%s, on this server forbidden frag!", szName);//выводим нарушителю сообщение о том, что фрагерить на сервере запрещено и он получит по попке
}[/pawn]
Собственно, все. Это лишь примеры, все остальное остается на вашей фантазии. : )

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

P.S.: В конфигурационном файле вы можете настроить продолжительность анти-фрага.

Авторы: Eriurias & s1lent
Версия: 2.0.5




У вас нет доступа к скачиванию файлов с нашего сервера

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

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Основа для вашей сборки
ReHLDS 3.14.0.857

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

ReGameDLL_CS 5.28.0.756

ReGameDLL_CS, Reverse-engineered mod CS - Улучшенная замена серверной библиотеки CS 1.6, расширяющая возможности игрового процесса.

AmxModx 5.2.9.4

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

ReAPI 5.26.0.338

Это AMX Mod X модуль, который умеет работать с API ReHLDS, ReGameDLL_CS, ReUnion и VTC. Это предоставляет разработчикам AMXX-плагинов больше возможностей для реализации своих целей.

Reunion 0.2.0.27

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

Revoice 0.1.0.34

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

Metamod-r 1.3.0.149

Новый 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".

Информация

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

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

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

Войти на сайт