#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#define WAR_TIME 120
new g_pBuyTime, g_OldBuyTime;
new g_iCountTime = WAR_TIME;
new HamHook:HamFwdSpawn, HamHook:HamFwdKilled;
new g_HudSync;
#define TASK 234328765
public plugin_init()
{
register_plugin("Warmup Private", "1.1", "neygomon");
register_event("TextMsg", "eGameCommencing", "a", "2=#Game_Commencing");
register_clcmd("menuselect", "JoinClassHook");
register_clcmd("joinclass", "JoinClassHook");
HamFwdSpawn = RegisterHam(Ham_Spawn, "player", "fwd_PlayerSpawnPost", true);
HamFwdKilled = RegisterHam(Ham_Killed, "player", "fwd_PlayerKilledPost", true);
g_pBuyTime = get_cvar_pointer("mp_buytime");
g_HudSync = CreateHudSyncObj();
}
public JoinClassHook(id)
{
if(!task_exists(TASK)) return;
#define OFF_JOINEDSTATE 121
#define OFF_MENU 205
#define OFF_MENU_CHOOSEAPPEARANCE 3
#define OFF_STATE_PICKINGCLASS 4
if(get_pdata_int(id, OFF_MENU) == OFF_MENU_CHOOSEAPPEARANCE && get_pdata_int(id, OFF_JOINEDSTATE) == OFF_STATE_PICKINGCLASS)
set_task(2.0, "FirstSpawn", id);
}
public FirstSpawn(id)
{
if(!is_user_alive(id))
ExecuteHam(Ham_Spawn, id);
}
public eGameCommencing()
{
if(!g_OldBuyTime)
g_OldBuyTime = get_pcvar_num(g_pBuyTime);
set_pcvar_num(g_pBuyTime, WAR_TIME - 2);
set_task(1.0, "CountDown", TASK, _, _, "a", WAR_TIME);
}
public CountDown()
{
switch(--g_iCountTime)
{
case 0:
{
set_pcvar_num(g_pBuyTime, g_OldBuyTime);
DisableHamForward(HamFwdSpawn);
DisableHamForward(HamFwdKilled);
new players[32], pnum, frags, Fragger, MaxFrags;
get_players(players, pnum, "h");
for(new i; i < pnum; i++)
{
frags = get_user_frags(players[i]);
if(frags > MaxFrags)
{
Fragger = players[i];
MaxFrags = frags;
}
}
new name[32]; get_user_name(Fragger, name, charsmax(name));
// set_hudmessage(255, 0, 0, -1.00, 0.55, 0, 0.0, 5.0, 0.0, 0.0, 1);
// ShowSyncHudMsg(0, g_HudSync, "Победитель разминки %s^nОн набрал %d фрагов", name, MaxFrags);
client_print(0,print_chat,"Победитель разминки %s набрал %d фрагов", name, MaxFrags);
server_cmd("sv_restart 1");
}
default:
{
set_hudmessage(0, 255, 0, -1.00, 0.01, 0, 0.0, 1.03, 0.0, 0.0, 1);
ShowSyncHudMsg(0, g_HudSync, "До конца разминки %i секунд", g_iCountTime);
}
}
}
public fwd_PlayerSpawnPost(id)
{
if(!is_user_alive(id))
return;
switch(get_user_team(id))
{
case 1:
{
strip_user_weapons(id);
give_item(id, "weapon_knife");
give_item(id, "weapon_ak47");
cs_set_user_bpammo(id, CSW_AK47, 90);
}
case 2:
{
strip_user_weapons(id);
give_item(id, "weapon_knife");
give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1, 90);
}
}
cs_set_user_money(id, 16000);
give_item(id, "weapon_deagle");
give_item(id, "weapon_hegrenade");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
}
public fwd_PlayerKilledPost(pVictim, pKiller)
set_task(1.0, "Spawn", pVictim);
public Spawn(id)
{
if(!is_user_alive(id))
ExecuteHam(Ham_CS_RoundRespawn, id);
}