new bool:Knife = false, bool:Warmup = false, bool:CW;
new iTeam[33], bool:IsUserConnected[33];
register_plugin("CW Menu", "1.0b", "@LLaPb@");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", true);
RegisterHam(Ham_Killed, "player", "Ham_Death");
register_event("HLTV", "Event_HLTV", "a", "1=0", "2=0");
g_iMaxPlayers = get_maxplayers();
register_forward(FM_Voice_SetClientListening, "FakeMeta_Voice_SetListening", false);
register_menucmd(register_menuid("Show_CwMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9), "Handle_CwMenu");
register_menucmd(register_menuid("Show_AdminMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9), "Handle_AdminMenu");
register_clcmd("say /cw", "Show_CwMenu");
register_clcmd("say cw", "Show_CwMenu");
register_clcmd("cw", "Show_CwMenu");
register_clcmd("SetPass", "TypePass");
public client_putinserver(id)
IsUserConnected[id] = true;
public client_disconnect(id)
IsUserConnected[id] = false;
server_cmd("mp_buytime 10.0");
public Ham_Death(iVictim, iAttacker, iCorpse)
if (IsUserConnected[iVictim] && !is_user_alive(iVictim) && cw_is_user_valid(iVictim) && (iTeam[iVictim] == 1 || iTeam[iVictim] == 2))
set_task(0.5, "fnRevivePlayer", iVictim);
public fnRevivePlayer(id)
ExecuteHamB(Ham_Spawn, id);
public FakeMeta_Voice_SetListening(iReceiver, iSender, bool:bListen)
if(IsUserConnected[iReceiver] && IsUserConnected[iSender] && iReceiver != iSender)
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true);
if(iTeam[iSender] == iTeam[iReceiver] && is_user_connected(iSender) && is_user_connected(iReceiver))
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true);
engfunc(EngFunc_SetClientListening, iReceiver, iSender, false);
engfunc(EngFunc_SetClientListening, iReceiver, iSender, false);
public Ham_PlayerSpawn_Post(id)
if(!IsUserConnected[id] || !is_user_alive(id) || !cw_is_user_valid(id))
iTeam[id] = fm_cs_get_user_team_index(id);
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
cs_set_user_money(id, 0);
set_user_health(id, 100);
cs_set_user_money(id, 16000);
set_user_health(id, 100);
set_task(0.5, "TeamMoney", id);
new szName[32], szBuffer[64], szMessage[512], iMoney, AllMoney = 0;
new Players[32], Count; get_players(Players, Count, "ah");
formatex(szMessage, charsmax(szMessage), "Деньги вашей тимы:^n^n");
get_user_name(id, szName, charsmax(szName));
iMoney = cs_get_user_money(id);
AllMoney = AllMoney + iMoney;
formatex(szBuffer, charsmax(szBuffer), "Ник: %s |Деньги: %d^n", szName, iMoney);
add(szMessage, charsmax(szMessage), szBuffer, charsmax(szBuffer));
for(new a = 1; a <= Count; a++)
if(iTeam[id] == iTeam[Players[a]] && id != a)
get_user_name(Players[a], szName, charsmax(szName));
iMoney = cs_get_user_money(Players[a]);
AllMoney = AllMoney + iMoney;
formatex(szBuffer, charsmax(szBuffer), "Ник: %s |Деньги: %d^n", szName, iMoney);
add(szMessage, charsmax(szMessage), szBuffer, charsmax(szBuffer));
formatex(szBuffer, charsmax(szBuffer), "^nСумма денег команды: %d", AllMoney);
add(szMessage, charsmax(szMessage), szBuffer, charsmax(szBuffer));
set_hudmessage(0, 255, 0, 0.01, -1.0, 0, 6.0, 12.0);
show_hudmessage(id, szMessage);
if(~get_user_flags(id) & ADMIN_RCON)
new Pass[32]; get_cvar_string("sv_password", Pass, charsmax(Pass));
new szMenu[512], iKeys = (1<<0|1<<1|1<<2|1<<3|1<<5|1<<6|1<<9), iLen;
iLen = formatex(szMenu, charsmax(szMenu), "\wCW меню by @LLaPb@^n^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r1\y| \wМеню Админа^n^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r2\y| \rЗапуск CW^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r3\y| \yЗапуск KNIFE^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r4\y| \yЗапуск WARMUP^n^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r5\y| \wТекущий пароль: \r%s^n", Pass);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r5\y| \wТекущий пароль: \yНет^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r6\y| \wПоставить пароль^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r7\y| \wУбрать пароль^n^n^n");
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y|\r0\y| \wВыход");
return show_menu(id, iKeys, szMenu, -1, "Show_CwMenu");
public Handle_CwMenu(id, iKey)
case 0: return Show_AdminMenu(id);
set_hudmessage(255, 0, 0, -1.0, -0.55, 0, 6.0, 10.0);
show_hudmessage(0, "ЗАПУСК CW!");
server_cmd("mp_freezetime 6");
server_cmd("mp_roundtime 1.75");
set_task(2.0, "Restart");
set_hudmessage(255, 0, 0, -1.0, -0.55, 0, 6.0, 10.0);
show_hudmessage(0, "ЗАПУСК РАЗМИНКИ!");
server_cmd("mp_freezetime 0");
server_cmd("mp_roundtime 10.0");
set_task(2.0, "Restart");
case 5: return client_cmd(id, "messagemode SetPass");
server_cmd("sv_password ^"^"");
return set_task(0.1, "Show_CwMenu", id);
case 9: return PLUGIN_HANDLED;
public Show_AdminMenu(id)
new szMenu[512], iKeys = (1<<0|1<<1|1<<2|1<<3|1<<8|1<<9), iLen;
iLen = formatex(szMenu, charsmax(szMenu), "\wМеню Админа^n^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r1\y| \wКикнуть Игрока^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r2\y| \wЗабанить Игрока^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r3\y| \wПереместить Игрока^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r4\y| \wСменить Карту^n^n^n^n^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r9\y| \wНазад^n");
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y|\r0\y| \wНазад");
return show_menu(id, iKeys, szMenu, -1, "Show_AdminMenu");
public Handle_AdminMenu(id, iKey)
case 0: return client_cmd(id, "amx_kickmenu");
case 1: return client_cmd(id, "amx_banmenu");
case 2: return client_cmd(id, "amx_teammenu");
case 3: return client_cmd(id, "amx_mapmenu");
case 8: return Show_CwMenu(id);
case 9: return PLUGIN_HANDLED;
return Show_AdminMenu(id);
new szArg[10]; read_argv(1, szArg, charsmax(szArg));
server_cmd("sv_password %s", szArg);
set_hudmessage(255, 0, 0, -1.0, -0.55, 0, 6.0, 10.0);
show_hudmessage(id, "Пароль %s успешно поставлен!", szArg);
set_hudmessage(255, 0, 0, -1.0, -0.55, 0, 6.0, 10.0);
show_hudmessage(id, "Введите корректый пароль!");
return set_task(0.1, "Show_CwMenu", id);
set_hudmessage(255, 0, 0, -1.0, -0.55, 0, 6.0, 10.0);
show_hudmessage(0, "ЗАПУСК РАЗМИНКИ НА НОЖАХ!");
server_cmd("mp_freezetime 0");
server_cmd("mp_roundtime 10.0");
set_task(2.0, "Restart");
server_cmd("sv_restart 1");
stock fm_give_item(pPlayer, const szItem[])
new iEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szItem));
if(!pev_valid(iEntity)) return 0;
pev(pPlayer, pev_origin, vecOrigin);
set_pev(iEntity, pev_origin, vecOrigin);
set_pev(iEntity, pev_spawnflags, pev(iEntity, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, iEntity);
dllfunc(DLLFunc_Touch, iEntity, pPlayer);
if(pev(iEntity, pev_solid) != SOLID_NOT)
engfunc(EngFunc_RemoveEntity, iEntity);
stock fm_strip_user_weapons(pPlayer, iType = 0)
static iEntity, iszWeaponStrip = 0;
if(iszWeaponStrip || (iszWeaponStrip = engfunc(EngFunc_AllocString, "player_weaponstrip"))) iEntity = engfunc(EngFunc_CreateNamedEntity, iszWeaponStrip);
if(!pev_valid(iEntity)) return 0;
if(iType && get_user_weapon(pPlayer) != CSW_KNIFE)
engclient_cmd(pPlayer, "weapon_knife");
engfunc(EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, 66, {0.0, 0.0, 0.0}, pPlayer);
dllfunc(DLLFunc_Spawn, iEntity);
dllfunc(DLLFunc_Use, iEntity, pPlayer);
engfunc(EngFunc_RemoveEntity, iEntity);
set_pdata_int(pPlayer, 116, 0, 5);