Если сделать вот так
Код:
public plugin_init()
{
//......
register_message(get_user_msgid("ShowMenu"), "Message_ShowMenu");
}
public Message_ShowMenu(iMsgID, iDest, id)
{
static szMenuCode[34];
get_msg_arg_string(4, szMenuCode, charsmax(szMenuCode));
if (containi(szMenuCode, "Team_Select") != -1)
{
szMenuCode[11] = 0;
server_print("Msg ShowMenu %d | %d %d %d %s", id, get_msg_arg_int(1), get_msg_arg_int(2), get_msg_arg_int(3), szMenuCode);
ChooseTeamMenu(id);
return PLUGIN_HANDLED;
}
else if (equal(szMenuCode, "#Terrorist_Select") || equal(szMenuCode, "#CT_Select"))
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public ChooseTeamMenu(id)
{
server_print("Show_ChooseTeamMenu %d", id);
//... Тут код для показа кастомного меню
return show_menu(id, iKeys, szMenu, -1, "ChooseTeamMenu");
}
Иногда код начинает зацикливаться, очень редко, раз в 1 день, в логах выводится так.
Msg showMenu 19 | 51 -1 0 #Team_Selec
Show_ChooseTeamMenu 19
Msg showMenu 19 | 51 -1 0 #Team_Selec
Show_ChooseTeamMenu 19
Msg showMenu 19 | 51 -1 0 #Team_Selec
Show_ChooseTeamMenu 19
Msg showMenu 19 | 51 -1 0 #Team_Selec
Show_ChooseTeamMenu 19
Msg showMenu 19 | 51 -1 0 #Team_Selec
Show_ChooseTeamMenu 19
...................................
Много-много раз
Далее идёт сообщение Amx Mod X о stack error, а потом серер падает с ошибкой:
FATAL ERROR (shutting down): MESSAGE_END called, but message buffer from .dll had overflowed
Информация:
Код:
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] Reunion RUN - reunion_mm_i386. v0.1.67 ini Start Never
[ 2] Ultimate Unprec RUN - ultimate_unpreca v0.3 Alp ini ANY ANY
[ 3] ReLocalizeBug F RUN - relocalizebugfix v2.7 ini Chlvl ANY
[ 4] AMX Mod X RUN - amxmodx_mm_i386. v1.8.3-d ini Start ANY
[ 5] WHBlocker RUN - whblocker_mm_i38 v1.5.626 ini Chlvl ANY
[ 6] VoiceTranscoder RUN - VoiceTranscoder. v2.0RC1 ini ANY ANY
[ 7] ReAuthCheck RUN - reauthcheck_mm_i v0.1.2 ini Start Never
[ 8] Rechecker RUN - rechecker_mm_i38 v2.1 ini Chlvl ANY
[ 9] Fun RUN - fun_amxx_i386.so v1.8.3-d pl4 ANY ANY
[10] FakeMeta RUN - fakemeta_amxx_i3 v1.8.3-d pl4 ANY ANY
[11] MySQL RUN - mysql_amxx_i386. v1.8.3-d pl4 ANY ANY
[12] Engine RUN - engine_amxx_i386 v1.8.3-d pl4 ANY ANY
[13] Ham Sandwich RUN - hamsandwich_amxx v1.8.3-d pl4 ANY ANY
[14] GeoIP RUN - geoip_amxx_i386. v1.8.3-d pl4 ANY ANY
14 plugins, 14 running
Код:
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 14:54:31 Jun 20 2016 (800)
ReHLDS API version 2.13
Судя по всему отображается неверное меню. Но, неясно почему.
Отредактировал: Inline, - 7.7.2016, 7:38