можно ловить команду chooseteam и запоминать сколько раз за раунд она вызывалась
Если хочешь поймать сообщение "Only 1 team change is allowed", лови так:
Code
/*
Наше сообщение имеет такой вид:
L 03/14/2008 - 14:19:46: MessageBegin (TextMsg "77") (Destination "One<1>") (Args "2") (Entity "1") (Classname "player") (Netname "blblbl") (Origin "0.000000 0.000000 0.000000")
L 03/14/2008 - 14:19:46: Arg 1 (Byte "4")
L 03/14/2008 - 14:19:46: Arg 2 (String "#Only_1_Team_Change")
L 03/14/2008 - 14:19:46: MessageEnd (TextMsg "77")
2 аргумента, по второму можно убедиться, что это наше сообшение
*/
#include <amxmodx>
//OOTC == Only_1_Team_Change
#define OOTC_MSG_ARG_NUM 2 //кол-во аргументов
#define OOTC_MSG_ARG_STRING 2 //второй аргумент - строка
new const g_Only1TeamChange[] = "#Only_1_Team_Change" //строка, по которой будем идентифицировать сообщение
public plugin_init()
{
//...
register_message(get_user_msgid("TextMsg"), "message_text")
}
public message_text()
{
if( get_msg_args() != OOTC_MSG_ARG_NUM ) //проверяем кол-во аргументов
return PLUGIN_CONTINUE
if( get_msg_argtype(OOTC_MSG_ARG_STRING) != ARG_STRING ) //проверяем тип аргумента, по которому будем определять сообщ.
return PLUGIN_CONTINUE
static arg[32]
get_msg_arg_string(OOTC_MSG_ARG_STRING, arg, sizeof arg - 1)
if(! equal(arg, g_Only1TeamChange) ) //проверяем, наша ли это строка
return PLUGIN_CONTINUE
//тут сообщение поймано
return PLUGIN_HANDLED //заблокирует сообщение, PLUGIN_CONTINUE пропустит его к игроку
}