PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#define PLUGIN "Restart Harlem Shake"
#define VERSION "1.0"
#define AUTHOR "EFFx"
#define PrefixName "!g[RRHarlemShake]!y:"
new iScreenFade,iScreenShake
new const HarlemSound[] = "HarlemShake/harlemsound.wav"
new const g_szSound[][] =
{
"",
"fvox/one",
"fvox/two",
"fvox/three",
"fvox/four",
"fvox/five",
"fvox/six",
"fvox/seven",
"fvox/eight",
"fvox/nine",
"fvox/ten"
}
new bool:isRRHarlemRunning
new SyncHuds
new CountDownTime = 10
new iLightsCountDown
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
SyncHuds = CreateHudSyncObj()
iScreenFade = get_user_msgid("ScreenFade")
iScreenShake = get_user_msgid("ScreenShake")
RegisterHam( Ham_TakeDamage, "player", "OnTakingDamage" )
register_clcmd("kill","BlockKillCmd")
register_clcmd("say /live","ShowHs")
}
public plugin_precache()
{
precache_sound(HarlemSound)
}
public OnTakingDamage(id,victim)
{
if(isRRHarlemRunning)
return HAM_SUPERCEDE
return HAM_IGNORED
}
public BlockKillCmd(id)
{
if(isRRHarlemRunning)
{
console_print(id,"[%s]: The %s is running. You cannot do it right now.",PLUGIN,PLUGIN)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public ShowHs(id)
{
if(get_user_flags(id) & ADMIN_BAN)
{
new iAdminNick[32]
get_user_name(id,iAdminNick,charsmax(iAdminNick))
isRRHarlemRunning = true
rr_chatcolor(0,"ADMIN!g %s!y has used the !g%s",iAdminNick,PLUGIN)
set_task(1.0,"HudCountDownForStartHS",_,_,_,"a",10)
new iPlayers[32],iNum,id
get_players(iPlayers,iNum,"ch")
for(new i;i < iNum;i++)
{
id = iPlayers[i]
if(!is_user_alive(id))
{
ExecuteHam(Ham_CS_RoundRespawn,id)
}
}
}
else
{
rr_chatcolor(id,"You have not access to this command!")
}
return PLUGIN_HANDLED
}
public HudCountDownForStartHS()
{
set_hudmessage(255,255,255, -1.0, 0.30, 0,1.0, 0.5)
ShowSyncHudMsg(0,SyncHuds,"RESTART HARLEM SHAKE^n[ %d ]",CountDownTime)
message_begin(MSG_BROADCAST, iScreenShake)
write_short(215<< 9)
write_short(10 << 9)
write_short(215<< 9)
message_end()
client_cmd(0, "spk %s", g_szSound[CountDownTime--]);
if(CountDownTime == 4)
StartLights()
else if(CountDownTime == 0)
{
set_task(1.0,"StartMusic")
set_task(1.0,"ConLoTr")
CountDownTime = 10
}
}
public StartLights()
{
switch(iLightsCountDown)
{
case 0:
{
set_lights("e")
set_task(1.0,"StartLights")
}
case 1:
{
set_lights("d")
set_task(1.0,"StartLights")
}
case 2:
{
set_lights("c")
set_task(1.0,"StartLights")
}
case 3:
{
set_lights("b")
set_task(1.0,"StartLights")
}
case 4:
{
set_lights("a")
iLightsCountDown = 0
}
}
iLightsCountDown++
}
public StartMusic()
{
client_cmd(0,"spk ^"%s^"",HarlemSound)
set_lights("m")
set_task(0.5,"ScreenShake",_,_,_,"a",65)
set_task(0.4,"Fade",_,_,_,"a",80)
set_task(15.4,"StartCrazy")
}
public Fade()
{
message_begin(MSG_BROADCAST , iScreenFade);
write_short( 3<<6 );
write_short( 3<<6 );
write_short( 3<<6 );
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
}
public ScreenShake()
{
message_begin(MSG_BROADCAST, iScreenShake)
write_short(215<< 10)
write_short(10 << 10)
write_short(215<< 10)
message_end()
}
public StartCrazy()
{
set_task(0.1,"crazy",_,_,_,"a",125)
set_task(18.0,"RestartTheRound")
}
public crazy()
{
new iPlayers[32],iNum,id
get_players(iPlayers,iNum,"ch")
for(new i;i < iNum;i++)
{
id = iPlayers[i]
new Float:fVec[3];
fVec[0] = random_float(0.0, 255.0);
fVec[1] = random_float(0.0, 255.0);
fVec[2] = random_float(0.0, 255.0);
entity_set_vector(id , EV_VEC_punchangle , fVec);
}
message_begin(MSG_BROADCAST , iScreenFade);
write_short( 1<<10 );
write_short( 1<<10 );
write_short( 1<<12 );
write_byte( random_num(0,255) );
write_byte( random_num(0,255) );
write_byte( random_num(0,255) );
write_byte( 95 );
message_end();
}
public RestartTheRound()
{
log_to_file("RestartHarlemShake.log","[%s]: Restart Harlem Shake executed with success!",PLUGIN)
server_cmd("sv_restart 1")
isRRHarlemRunning = false
}
public ConLoTr()
{
set_dhudmessage(0,100,200,-1.0,0.20,0,1.0,0.5)
show_dhudmessage(0,"CON LO TERRORISTA!")
set_task(2.0,"StartTa")
set_task(3.5,"StartTa2")
set_task(5.5,"StartTa3")
set_task(7.0,"StartTa")
set_task(8.5,"StartTa2")
set_task(9.5,"StartTa3")
set_task(10.3,"StartTa")
set_task(11.3,"StartTa2")
set_task(11.9,"StartTa3")
set_task(12.2,"StartTa")
set_task(12.8,"StartTa2")
set_task(13.2,"StartTa3")
set_task(13.8,"StartTa")
set_task(14.1,"StartTa2")
set_task(14.8,"LetsDo")
set_task(21.5,"Hey")
set_task(26.0,"ConLoTr2")
set_task(28.4,"WRHOOOOOO")
}
public StartTa()
{
set_dhudmessage(0,100,200,-1.0,0.20,0,1.0,0.1)
show_dhudmessage(0,"TAH!")
}
public StartTa2()
{
set_dhudmessage(0,100,200,-1.0,0.25,0,1.0,0.1)
show_dhudmessage(0,"TAH!")
}
public StartTa3()
{
set_dhudmessage(0,100,200,-1.0,0.30,0,1.0,0.1)
show_dhudmessage(0,"TAH!")
}
public LetsDo()
{
set_dhudmessage(0,100,200,-1.0,0.20,0,1.0,0.1)
show_dhudmessage(0,"LETS DO THE HARLEM SHAKE!")
}
public Hey()
{
set_dhudmessage(0,100,200,-1.0,0.20,0,1.0,0.1)
show_dhudmessage(0,"HEY!")
}
public ConLoTr2()
{
set_dhudmessage(0,100,200,-1.0,0.20,0,1.0,0.1)
show_dhudmessage(0,"CON LO TERRORISTA!")
}
public WRHOOOOOO()
{
set_dhudmessage(0,100,200,-1.0,0.20,0,1.0,0.1)
show_dhudmessage(0,"WRAOOOOOOOOOOOH!")
}
stock rr_chatcolor(const id, const input[], any:...)
{
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )
format(msg,sizeof msg,"%s %s",PrefixName,msg)
replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!y", "^1" )
replace_all( msg, 190, "!t", "^3" )
if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for(new i = 0; i < count; i++)
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end( )
}
}
}
}