Отловить с помощью данной функции можно такие события игры как:
- Game_Commencing - (грубо говоря рестарт карты)
- say - Когда игрок что либо говорит в чат
- Terrorists_Win - Победа Террористов
- entered the game - Игрок входит в игру
- Server cvar - Изменение кваров сервера
- Planted_The_Bomb - Установка бомбы
- Defused_The_Bomb - Разминирование бомбы
- Round_Start - Старт раунда
- Round_End - Конец раунда
И многие другие...
Инфо из amxmodx.inc:
/* Registers log event on which the given function will be called
* Examples for conditions:
* "0=World triggered" "1=Game_Commencing"
* "1=say"
* "3=Terrorists_Win"
* "1=entered the game"
* "0=Server cvar"
*/
native register_logevent(const function[], argsnum, ... );
Синтаксис:
register_logevent ( const function[], argsnum, ... )
- const function[] - Вызываемая функция при наступлении события
- argsnum - Количество аргументов
- ... - Какое событие произошло
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Register log events"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//регистрируем конец раунда
register_logevent("round_end", 2, "1=Round_End")
//регистрируем Старт раунда
register_logevent("round_start",2,"1=Round_Start")
//регистрируем Вроде все события связанные с бомбой
register_logevent("bomb_events", 3, "1=triggered", "2=Spawned_With_The_Bomb", "2=Dropped_The_Bomb", "2=Got_The_Bomb", "2=Planted_The_Bomb","2=Defused_The_Bomb","2=Target_Bombed")
//регистрируем использование заложников ( следуют за вами)
register_logevent("hostage_touched",3,"2=Touched_A_Hostage")
//регистрируем Вывод заложников в безомасную зону
register_logevent("hostage_rescued",3,"2=Rescued_A_Hostage")
//регистрируем Убийство заложников
register_logevent("hostage_killed",3,"2=Killed_A_Hostage")
//регистрируем Присоединение к какой либо команде
register_logevent("team_join",3,"1=joined team")
}
//зарегистрированные функции для отшлавливаемых нами событий
public round_end(){
client_print(0,print_chat,"Log event Round End")
}
public round_start(){
client_print(0,print_chat,"Log event Round Start")
}
public bomb_events(){
client_print(0,print_chat,"Log event bomb_events")
}
public hostage_touched(){
client_print(0,print_chat,"Log event Hostege Touched")
}
public hostage_rescued(){
client_print(0,print_chat,"Log event Hostege Rescued")
}
public hostage_killed(){
client_print(0,print_chat,"Log event Hostege killed")
}
public team_join(){
client_print(0,print_chat,"Log event team Join")
new Arg1[64],Arg2[64]
read_logargv(0,Arg1,63)
read_logargv(2,Arg2,63)
client_print(0,print_chat,"Arg1: %s ^nArg2: %s",Arg1,Arg2)
}
Описание:
У нас есть 7 различных функций, которые будут вызываться в тот момент, когда происходит какое то события, нами зарегистрированное в plugin_init, функцией register_logevent.
Запустив плагин и просто начав выполнять миссии карты, вы сразу заметите в чате сообщения при пределенных событиях. Это вам сразу поможет понять что к чему.
Но с бомбой будет все по иному, если вы просматривали внимательно код, то заметили:
register_logevent("bomb_events", 3, "1=triggered", "2=Spawned_With_The_Bomb", "2=Dropped_The_Bomb", "2=Got_The_Bomb", "2=Planted_The_Bomb","2=Defused_The_Bomb","2=Target_Bombed")
, и сразу возник вопрос, почему в других функциях на много меньше записей, отвечаю: Представьте что вы хотете добавлять по 3 фрага за установку бомбы и взрыв бомбы, действие то одно и тоже, но не делать же 2 разные функции, по этому можно для оной функции отлавливать сразу несколько событий.Теперь немного о том какую мы можем получить информацию, обратим свое внимание на функцию:
public team_join(){
client_print(0,print_chat,"Log event team Join")
new Arg1[64],Arg2[64]
read_logargv(0,Arg1,63)
read_logargv(2,Arg2,63)
client_print(0,print_chat,"Arg1: %s ^nArg2: %s",Arg1,Arg2)
}
Регистрируем 2 массива и с помощью функции read_logargv, получаем аргумент ( получается аргумент в текстовом виде, даже если это числа)
И выводим их в текстовом сообщении.
На этмо мои познания по этой функции заканчиваются, но я более чем уверен, что если поискать, можно найти много чего еще.