Вариант через round_start чисто
Код:
#include < amxmodx >
#include < zombieplague >
public showMenu(id)
{
if(!is_user_connected(id))
return 1;
if(zp_get_human_count() < 0)
return 1;
new szName[32], iPlayers[32], nPlayers[10], iNum, iMenu, pId;
iMenu = menu_create("\yВыберите себе напарника", "menuHandled");
get_players(iPlayers, iNum, "c");
for(new i = 0; i < iNum; i++)
{
pId = iPlayers[i];
get_user_name(pId, szName, charsmax(szName));
num_to_str(pId, nPlayers, charsmax(nPlayers));
menu_additem(iMenu, szName, nPlayers);
}
menu_setprop(iMenu, MPROP_NUMBER_COLOR, "\y");
menu_setprop(iMenu, MPROP_NEXTNAME, "Далее");
menu_setprop(iMenu, MPROP_BACKNAME, "Назад");
menu_setprop(iMenu, MPROP_EXITNAME, "Выход");
menu_display(id, iMenu, 0);
return 1;
}
public menuHandled(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu);
return 1;
}
new szName[64], iData[6], iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, iData, charsmax(iData), szName, charsmax(szName), iCallback);
new pId = str_to_num(iData);
if((!is_user_connected(pId)) || (id == pId))
{
client_print(id, print_center, "Выберите другого игрока!");
return showMenu(id);
}
zp_make_user_survivor(pId);
return menu_destroy(iMenu);
}
public zp_round_started(gamemode, id)
{
if(gamemode == 3)
{
if(zp_get_user_survivor(id))
{
set_task(1.0, "showMenu", id);
}
}
}
[attachment=42931:Naparnik.sma]
Отредактировал: Sorokin, - 8.1.2017, 17:10