Файлы для CS 1.6 и сервера / Модули и моды
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
[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
}
INCLUDE ( hns_engine.inc )
Описание функций найдете в нем. #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);
Отдельное внимание хотелось бы уделить двум нововведениям: два форварда, которые дают возможность контролировать одно неприятное нарушение многих игроков
Hide and Seek
- фрагерство. Для тех, кто не знает - это когда контр-террорист догнав террориста не отпускает его после первого удара, а добивает и не дает террористу шанс на то, чтобы тот унес свою тушу.
Информация из заголовочного файла:
/**
* Вызывается до фактического совершения фрага.
* @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);
Покажу вам пример использования данных форвард-функций. Давайте поставим для себя такую задачу - нам нужно защищать админа от фрагерства. В этом случае нам необходимо использовать
событие, т.к. мы будем блокировать урон:
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;
}
Поставленная задача решена. : )
Теперь поставим перед собой такую задачу: нам нужно написать вспомогательный плагин, который будет просто уведомлять, что фрагерство на сервере запрещено. В этом случае нам подойдет
post
событие, ведь блокировать мы ничего не будем:
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);//выводим нарушителю сообщение о том, что фрагерить на сервере запрещено и он получит по попке
}
Собственно, все. Это лишь примеры, все остальное остается на вашей фантазии. : )
Пример реализации эмуляции фризтайма для CT, показ дхуд сообщения с выигравшей командой, а также переформирование команд в случае победы CT уже в архиве.
P.S.
: В конфигурационном файле вы можете настроить продолжительность анти-фрага.
Авторы:
Eriurias & s1lent
Версия:
2.0.5
Hide and Seek: Developer Engine Module — готовое решение для Counter-Strike 1.6, проверенное на различных сборках игры. Включает все необходимые файлы для установки.
Перед публикацией, советую ознакомится с правилами!
Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter