[AMXX #1] Основные события мода
[AMXX #1] Основные события мода
Начнём с одного замечательного события как plugin_init, который в зачастую используется для регистрации различных событий и функций. Само событие plugin_initактивизируется при запуске/перезапуске сервера и смене карты.
Пример:
Следующие на очереди идут plugin_pauseи plugin_unpause. plugin_pause выполняется в том случае, если плагин уходит в паузу. Аналогично данной функции, plugin_unpauseвыполняется в случае выхода плагина из паузы.
Пример:
Дальше идёт очень интересное событие как server_changelevel, которая вызывается при смене карты и несёт в себе название новой карты.
Пример:
Следующий по списку plugin_cfg. Данное событие вызывает после plugin_initи служит для обработки различных кваров и конфигов.
Пример:
plugin_end- выполняется при смене карты и выключение сервера. Обычно используется для сохранения различных данных или закрытием соединений с базой данных или nVault.
Пример:
plugin_log - выполняется при отправке сообщений в логи.
plugin_precache- выполняется поверх всех событий (самым первым), чтобы кэшировать различные ресурсы игроку (модели, звуки, спрайты и т.д.).
Пример:
На этом всё! В следующий статье будем разбирать нативы первоначальной важности.
Пример:
Код
public plugin_init()
{
register_plugin("New plugin", "1.0", "OverGame"); // Регистрируем плагин (который выводится в консоле при помощи amx_plugins)
}
{
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("Наш сервер вышел из паузы!"); // Отправляем сообщение в логи.
}
{
log_amx("Наш плагин перешёл в паузу!"); // Отправляем сообщение в логи.
}
public plugin_unpause()
{
log_amx("Наш сервер вышел из паузы!"); // Отправляем сообщение в логи.
}
Дальше идёт очень интересное событие как server_changelevel, которая вызывается при смене карты и несёт в себе название новой карты.
Пример:
Код
public server_changelevel(const szMapname[])
{
log_amx("Сервер сменил карту на %s", 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
}
{
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 должен быть зарегистрирован раньше функции и нести в себе название плагина).
}
{
log_amx("Плагин %s завершил свою работу.", PLUGIN_NAME); // Выводим в логи сообщение о том, что плагин завершил свою работу. (PLUGIN_NAME должен быть зарегистрирован раньше функции и нести в себе название плагина).
}
plugin_log - выполняется при отправке сообщений в логи.
Код
public plugin_log()
{
client_print(0, print_chat, "Сервер отправил сообщения в логи!"); // Пишем всем игрокам в общий чат о том, что сервер отправил статистику в логи.
}
{
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
}
{
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
}
На этом всё! В следующий статье будем разбирать нативы первоначальной важности.
