надо чтоб НЕ наблюдатель писал /ask, а игрок либо за CT либо за T, если допустим ЕСТЬ ДЕЙСТВУЮЩИЕ наблюдатели только тогда запрос подаётся, и если НАБЛЮДАТЕЛЬ нажимает (1 т.е Да ) кто отправляет запрос автоматически выходит с сервера и ему выдаётся окно (Вас заменили).
Код
#include <amxmodx>
#include <reapi>
#pragma semicolon 1
#pragma compress 1
new g_iAskID[MAX_PLAYERS + 1];
public plugin_init()
{
register_plugin("", "", "xD");
register_menucmd(register_menuid("Show_AskMenu"), MENU_KEY_1 | MENU_KEY_2, "Handle_AskMenu");
register_clcmd("say /ask", "ClCmd_Ask");
}
public ClCmd_Ask(id)
{
g_iAskID[id] = id;
for(new i = 1; i <= MaxClients; i++) if(get_member(i, m_iTeam) == 3) Show_AskMenu(i);
}
Show_AskMenu(id)
{
new szMenu[MAX_MENU_LENGTH],
iLen = formatex(szMenu, charsmax(szMenu), "\yХочешь вступить в игру?^n^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1. \wДа^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y2. \wНет^n");
return show_menu(id, MENU_KEY_1 | MENU_KEY_2, szMenu, -1, "Show_AskMenu");
}
public Handle_AskMenu(id, iKey)
{
switch(iKey)
{
case 0:
{
if(get_member(id, m_iTeam) == 3 && get_member(g_iAskID[id], m_iTeam) != 3)
{
new iTeamID = get_member(g_iAskID[id], m_iTeam);
rg_set_user_team(id, iTeamID);
rg_set_user_team(g_iAskID[id], 3);
g_iAskID[id] = 0;
for(new i = 1; i <= MaxClients; i++) if(get_member(i, m_iTeam) == 3) show_menu(i, 0, "", 1);
}
}
case 1: return;
}
}