Версия: 1.0
Описание:
Система режимов для Deathrun сервера. Это не готовые режимы, а только система для их создания и систематизации. Если режим не будет выбран в течение 30 сек., то он будет автоматически выбран на кнопки и меню будет закрыто у всех террористов.
Используемые модули:
Cstrike
Fakemeta
Чтобы добавить новый режим, необходимо подключить плагин. Есть 2 способа.
А) Создать инклуд, в котором должны быть строки:
[pawn]
- forward deathrun_item_selected(id, item)
- native deathrun_register_mode(const name[], rounds_limit)
И затем подключить данный инклуд:
[pawn]
- #include <название_вашего_инклуда>
Б) В начале каждого плагина, который будет режимом, дописывать те же строки. Пример:
[pawn]
- #include <amxmodx>
- forward deathrun_item_selected(id, item)
- native deathrun_register_mode(const name[], rounds_limit)
- public plugin_init() // И так далее
Теперь подробнее о функциях.
[pawn]
- deathrun_register_mode(const name[], rounds_limit)
Функция регистрирует режим и возвращает его ID.
Аргументы:
cost name[] - название режима
rounds_limit - ограничение по раундам на этот режим (если не нужно, ставьте 0)
Пример использования:
[pawn]
- new g_Mode
- public plugin_init()
- g_Mode = deathrun_register_mode("Ваше название", 0)
В этом случае режим зарегистрируется и переменная будет хранить его ID.
[pawn]
- deathrun_item_selected(id, item)
Этот форвард вызывается каждый раз, когда игрок выбирает пункт в меню (если пункт недоступен, то не вызывается).
Аргументы:
id - ID игрока, выбравшего режим.
item - ID режима, который выбрал игрок.
Пример использования:
[pawn]
- public deathrun_item_selected(id, item)
- {
- // Code
- }
Чтобы задать действие режиму надо сравнить ID зарегистрированного в плагине режима и выбранного игроком режима:
[pawn]
- public plugin_init() {
- g_Mode = deathrun_register_mode("Тест", 2)
- }
- public deathrun_item_selected(id, item)
- {
- if(item == g_Mode)
- {
- // Code
- }
- }
Полный пример режима:
[pawn]
- /* Plugin generated by AMXX-Studio */
- #include <amxmodx>
- #include <amxmisc>
- #include <deathrun>
- #define PLUGIN "New Plug-In"
- #define VERSION "1.0"
- #define AUTHOR "author"
- new g_Mode
- public plugin_init() {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- g_Mode = deathrun_register_mode("Test mode", 0)
- }
- public deathrun_item_selected(id, item)
- {
- if(item == g_Mode)
- {
- client_print(id, print_chat, "You selected it, body! :)")
- }
- }
ВНИМАНИЕ! Пока плагин поддерживает до 9 режимов включительно (одна страница). Далее будут ошибки.
Также используется ColorChat из AMX MOD X 1.8.3. При использовании другой версии замените функции client_print_color на ваши.