PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
new msgScreenFade;
new maxplayers;
new bool:is_hide;
new bool:is_hide_after;
new Float:user_speed[33];
new MsgSync;
public plugin_init() {
register_plugin("Cache Cache", "1.0", "XAmPer")
register_logevent("round_end", 2, "1=Round_End");
register_clcmd("say /cache", "clcmd_hide", -1, "", -1);
register_event("HLTV", "event_round_start", "a", "1=0", "2=0");
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage", 0);
register_message(get_user_msgid("CurWeapon"), "message_cur_weapon");
msgScreenFade = get_user_msgid("ScreenFade");
maxplayers = get_maxplayers();
MsgSync = CreateHudSyncObj(0);
}
public event_round_start()
{
remove_task(3000, 0);
RemoveLimit();
is_hide_after = false;
precache_sound("Jeux/Cache.mp3");
}
public message_cur_weapon(msg_id, msg_dest, msg_entity)
{
if (!is_hide || !is_user_alive(msg_entity) || fm_cs_get_user_team(msg_entity) == 2)
{
return 0;
}
set_pev(msg_entity, pev_maxspeed, 1.00);
return 0;
}
public fw_PlayerSpawn_Post(id)
{
if (!is_hide || !is_user_alive(id) || fm_cs_get_user_team(id) == 2)
{
return 0;
}
SetLimit(id);
return 0;
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if (attacker != victim && !is_user_connected(attacker))
{
return 1;
}
if (is_hide && fm_cs_get_user_team(attacker) == 2)
{
return 4;
}
if ((is_hide_after || is_hide) && (fm_cs_get_user_team(attacker) == 1 && GetCountAliveT() > 1))
{
return 4;
}
return 1;
}
public clcmd_hide(id, level, cid)
{
if (cs_get_user_team(id, 0) == 2 && !is_user_alive(id))
{
return 1;
}
if (is_hide)
{
return 1;
}
static i;
i = 1;
while (i <= maxplayers)
{
if (!is_user_alive(i) || fm_cs_get_user_team(i) == 2)
{
}
else
{
SetLimit(i);
}
i += 1;
}
set_task(float(60), "RemoveLimit", 3000, 0, 0);
is_hide = 1;
HudLeft();
return 1;
}
public round_end()
{
RemoveLimit();
return 0;
}
public Freeze()
{
static i;
i = 1;
while (i <= maxplayers)
{
if (!is_user_alive(i) || fm_cs_get_user_team(i) == 1)
{
}
else
{
pev(i, pev_maxspeed, user_speed[i]);
set_pev(i, pev_maxspeed, 1.00);
}
i += 1;
}
return 0;
}
SetLimit(id)
{
message_begin(MSG_ONE, msgScreenFade, 1112, id);
write_short(4096);
write_short(256);
write_short(1);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
pev(id, pev_maxspeed, user_speed[id]);
set_pev(id, pev_maxspeed, 1.00);
set_task(0.80, "DelayFade", id, "", 0, "", 0);
return 0;
}
RemoveFade(id)
{
message_begin(MSG_ONE, msgScreenFade, 1112, id);
write_short(4096);
write_short(256);
write_short(2);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
set_pev(id, pev_maxspeed, user_speed[id]);
return 0;
}
public DelayFade(id)
{
message_begin(MSG_ONE, msgScreenFade, 1112, id);
write_short(1);
write_short(1);
write_short(4);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
return 0;
}
public RemoveLimit()
{
!!! Removed Phi
static i;
i = 1;
while (i <= maxplayers)
{
if (!is_user_alive(i) || fm_cs_get_user_team(i) == 2)
{
}
else
{
RemoveFade(i);
}
i += 1;
}
is_hide = 0;
is_hide_after = 1;
return 0;
}
public HudLeft()
{
static show_time;
if (!is_hide)
{
if (is_hide_after)
{
set_hudmessage(0, 255, 0, 0.35, 0.20, 0, 6.00, 5.00, 0.00, 0.00, -1);
show_hudmessage(0, "We're Going To Look ! Beware, The Prisoners !");
}
show_time = 0;
return 0;
}
if (!show_time)
{
show_time = 60;
}
set_hudmessage(0, 255, 0, 0.31, 0.10, 0, 6.00, 1.10, 0.00, 0.00, -1);
show_time += -1;
ShowSyncHudMsg(0, MsgSync, "Playing Cache Cache !^nThe Prisoners Have %d Seconds To Hide !", show_time);
set_task(1.00, "HudLeft", 0, "", 0, "", 0);
return 0;
}
fm_cs_get_user_team(id)
{
return get_pdata_int(id, 114, 5);
}
GetCountAliveT()
{
static count;
static i;
i = 1;
count = 0;
while (i <= maxplayers)
{
if (is_user_alive(i) && fm_cs_get_user_team(i) == 1)
{
count += 1;
i += 1;
}
i += 1;
}
return count;
}