Код:
new g_BlockFreeze[33] // Это так для наглядности,чтобы вы не подумали что масив не создан)
public FreezeMenu(id)
{
new szText[64]
formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_TITLE_5")
new iMenu = menu_create(szText, "freeze_handler")
formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "FREEZE_MENU_ITEM_1")
menu_additem(iMenu, szText, "1", false)
formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_EXIT")
menu_setprop(iMenu, MPROP_EXITNAME, szText)
menu_display(id, iMenu, 0)
}
public freeze_handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
new szData[6], szName[64], iAccess,iCallback
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback)
new iKey = str_to_num(szData)
switch(iKey)
{
case 1:
{
FreezePlayer(id)
}
}
menu_destroy(iMenu)
return PLUGIN_HANDLED;
}
public FreezePlayer(id)
{
new szText[256]
formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_PLAYER")
new menu = menu_create(szText, "freeze_player_handler")
new s_Players[32], i_Num, i_Player
new s_Name[64], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
if(is_user_alive(i_Player))
{
if(!g_BlockFreeze[i_Player])
format(s_Name, charsmax(s_Name), "\w%s", s_Name)
else
format(s_Name, charsmax(s_Name), "\w%s %L", s_Name, LANG_PLAYER, "PREFIX_OFF")
}
else
format(s_Name, charsmax(s_Name), "\d%s %L", s_Name, LANG_PLAYER, "PREFIX_MENU_2")
menu_additem(menu, s_Name, s_Player, 0)
}
formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_NEXT")
menu_setprop(menu, MPROP_NEXTNAME, szText)
formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_BACK")
menu_setprop(menu, MPROP_BACKNAME,szText)
formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_EXIT")
menu_setprop(menu, MPROP_EXITNAME, szText)
menu_display(id, menu, 0)
}
public freeze_player_handler(id, item, menu)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback, playername[33], playername2[33]
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
if(!is_user_alive(i_Player))
{
menu_destroy(menu)
FreezePlayer(id)
return PLUGIN_HANDLED
}
cs_get_user_team(i_Player)
get_user_name(id, playername, 32)
get_user_name(i_Player, playername2, 32)
if(g_BlockFreeze[i_Player])
{
g_BlockFreeze[i_Player] = false;
set_pev(i_Player, pev_maxspeed, 250.0);
set_user_rendering(i_Player);
client_cmd(0, "spk %s", FREEZE_OFF);
ColorChat(0, NORMAL,"^1[^4%L^1] %L", LANG_SERVER, "PREFIX", LANG_SERVER, "FREEZE_2",playername, playername2);
FreezePlayer(id);
return PLUGIN_HANDLED
}
g_BlockFreeze[i_Player] = true;
set_pev(i_Player, pev_maxspeed, 0.1);
set_user_rendering(i_Player, kRenderFxGlowShell, 32, 164, 241, kRenderNormal, 30);
client_cmd(0, "spk %s", FREEZE_ON);
ColorChat(0, NORMAL,"^1[^4%L^1] %L", LANG_SERVER, "PREFIX", LANG_SERVER, "FREEZE",playername, playername2);
FreezePlayer(id);
menu_destroy(menu)
return PLUGIN_HANDLED
}