/* Plugin generated by AMXX-Studio */
/*
clientcommands: cmd description
startrage start rage if enough points
cvars: cvar default description
rage 1 enables/disables bloodrage
rage_hp 200 health
rage_ap 200 armor
rage_speed 350 speed you get when in rage
rage_minpoints 8 points to reach rage
rage_time_multiplier 5 time in rage = rage_min_time * points
*/
#include <amxmodx>
#include <amxmisc>
#include <fun>
new killPoints[ 32 ]
new onRage[ 32 ]
new rage_hp, rage_ap, rage_speed, rage_minpoints, rage, rage_time_multiplier
new redScreen
public plugin_init() {
register_plugin("Bloodrage", "b1.02", "psYko.joe")
register_event("DeathMsg", "countKills", "a")
register_event("RoundTime", "roundStart", "bc")
register_event("SendAudio", "roundStart", "a", "1=0")
register_event("CurWeapon","checkSpeed","b")
register_clcmd("startrage","startRage")
rage = register_cvar("rage", "1")
rage_hp = register_cvar("rage_hp", "200")
rage_ap = register_cvar("rage_ap", "200")
rage_speed = register_cvar("rage_speed", "350")
rage_minpoints = register_cvar("rage_minpoints", "6")
rage_time_multiplier = register_cvar("rage_time_multiplier", "5" )
redScreen = get_user_msgid("ScreenFade")
return PLUGIN_CONTINUE
}
public roundStart() {
if( get_pcvar_num(rage) == 0 )
return PLUGIN_HANDLED
for ( new i = 0; i < 32; i++ ) {
if( onRage[i] == 1 )
endRage(i)
}
return PLUGIN_HANDLED
}
public client_putinserver(id) {
if( get_pcvar_num(rage) == 0 )
return PLUGIN_HANDLED
killPoints[id] = 0
return PLUGIN_CONTINUE
}
public client_disconnect(id) {
if( get_pcvar_num(rage) == 0 )
return PLUGIN_HANDLED
killPoints[id] = 0
return PLUGIN_CONTINUE
}
public countKills() {
if( get_pcvar_num(rage) == 0 )
return PLUGIN_HANDLED
new killer = read_data(1)
new victim = read_data(2)
new headshot = read_data(3)
new weapon[32]
read_data(4, weapon, 31)
killPoints[ killer ]++
if( headshot )
killPoints[ killer ]++
if( equal( weapon, "knife" ) )
killPoints[ killer ]++
killPoints[ victim ] = 0
if( onRage[ victim ] == 1 )
endRage(victim)
client_print(victim, print_chat, " 0 / %d ", get_pcvar_num(rage_minpoints) )
if( onRage[killer] == 0 ) {
client_print(killer, print_chat, " %d / %d ", killPoints[killer], get_pcvar_num(rage_minpoints) )
if( killPoints[ killer ] >= get_pcvar_num(rage_minpoints) )
client_print(killer, print_chat, " Ve'rszomj 100%" )
}
return PLUGIN_CONTINUE
}
public checkSpeed (id) {
if( onRage[id] == 0 )
return PLUGIN_HANDLED
set_user_maxspeed(id , get_pcvar_float( rage_speed ) )
return PLUGIN_CONTINUE
}
public startRage (id) {
if( ( get_pcvar_num(rage) == 0 ) || (killPoints[id] < get_pcvar_num(rage_minpoints)) || (onRage[id] == 1) )
return PLUGIN_HANDLED
set_user_health(id, get_pcvar_num(rage_hp) )
set_user_armor(id, get_pcvar_num(rage_ap) )
set_user_maxspeed(id , get_pcvar_float(rage_speed) )
onRage[id] = 1
message_begin(MSG_ONE_UNRELIABLE,redScreen,{0,0,0},id);
write_short(5000);
write_short(5000);
write_short(4);
write_byte(180);
write_byte(0);
write_byte(0);
write_byte(110);
message_end()
set_user_rendering(id,kRenderFxGlowShell,190,0,0,kRenderNormal,25)
new playerName[33]
get_user_name(id, playerName, 32)
set_hudmessage(255, 0, 42, -1.0, 0.5, 0, 6.0, 10.0)
show_hudmessage(0, "%s most tombol!!!", playerName )
set_task(float(killPoints[id]) * get_pcvar_float( rage_time_multiplier ),"endRage",id,"",0,"a",1)
return PLUGIN_HANDLED
}
public endRage (id) {
if( onRage[id] == 0 )
return PLUGIN_HANDLED
onRage[id] = 0
killPoints[id] = 0
if( get_user_health(id) > 100)
set_user_health(id, 100)
if( get_user_armor(id) > 100)
set_user_armor(id, 100)
set_user_maxspeed(id, 250.0)
message_begin(MSG_ONE_UNRELIABLE,redScreen,{0,0,0},id);
write_short(3000);
write_short(3000);
write_short(0);
write_byte(190);
write_byte(0);
write_byte(0);
write_byte(115);
message_end()
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
return PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/