[AMXX #1] Основные события мода
[AMXX #1] Основные события мода

[AMXX #1] Основные события мода

Начнём с одного замечательного события как plugin_init, который в зачастую используется для регистрации различных событий и функций. Само событие plugin_initактивизируется при запуске/перезапуске сервера и смене карты.

Пример:
Код
public plugin_init()
{
register_plugin("New plugin", "1.0", "OverGame"); // Регистрируем плагин (который выводится в консоле при помощи amx_plugins)
}


Следующие на очереди идут plugin_pauseи plugin_unpause. plugin_pause выполняется в том случае, если плагин уходит в паузу. Аналогично данной функции, plugin_unpauseвыполняется в случае выхода плагина из паузы.

Пример:
Код
public plugin_pause()
{
log_amx("Наш плагин перешёл в паузу!"); // Отправляем сообщение в логи.
}

public plugin_unpause()
{
log_amx("Наш сервер вышел из паузы!"); // Отправляем сообщение в логи.
}


Дальше идёт очень интересное событие как server_changelevel, которая вызывается при смене карты и несёт в себе название новой карты.

Пример:
Код
public server_changelevel(const szMapname[])
{
log_amx("Сервер сменил карту на %s", szMapname); // Выводим сообщение в логи, отправляем имя новой карты (которая меняется).
}


Следующий по списку plugin_cfg. Данное событие вызывает после plugin_initи служит для обработки различных кваров и конфигов.

Пример:
Код
public plugin_cfg()
{
new szDir[64]; // Создаём массив с размером 64.
get_localinfo("amxx_configsdir", szDir, charsmax(szDir)); // Помещаем путь до папки с конфигурациями в наш массив szDir

server_cmd("exec %s/amxx.cfg", szDir); // Отправляем консольную команду серверу. Заставляем читать файл по дирекции addons/amxmodx/configs, файл amxx.cfg
}


plugin_end- выполняется при смене карты и выключение сервера. Обычно используется для сохранения различных данных или закрытием соединений с базой данных или nVault.

Пример:
Код
public plugin_end()
{
log_amx("Плагин %s завершил свою работу.", PLUGIN_NAME); // Выводим в логи сообщение о том, что плагин завершил свою работу. (PLUGIN_NAME должен быть зарегистрирован раньше функции и нести в себе название плагина).
}


plugin_log - выполняется при отправке сообщений в логи.
Код
public plugin_log()
{
client_print(0, print_chat, "Сервер отправил сообщения в логи!"); // Пишем всем игрокам в общий чат о том, что сервер отправил статистику в логи.
}


plugin_precache- выполняется поверх всех событий (самым первым), чтобы кэшировать различные ресурсы игроку (модели, звуки, спрайты и т.д.).

Пример:
Код
public plugin_precache()
{
precache_model("models/player/new_player/new_player.mdl"); // Кэшируем игроку модель new_player по пути models/player/new_player.

precache_sound("sound.wav"); // Кэшируем звук игроку (только в формате wave, а так же без папки sound).

precache_generic("sprites/sprite.spr"); // Кэшируем почти любой файл. Может кэшировать mp3 файлы по полному пути, к примеру: sound/music.mp3
}


На этом всё! В следующий статье будем разбирать нативы первоначальной важности.

АЛЕКСЕй написал 2017-02-05 21:40:02
Вообще прикольно!! Буду ждать cool
Руслан написал 2017-02-05 21:32:50
Будет со временем, данный раздел теперь на мне)
АЛЕКСЕй написал 2017-02-05 21:25:56
Спасибо овер, буду теперь учится ))) Ещё будут а?