PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#define HEALTH 700
#define ARMOR 700
#define GRAVITY 0.7
new pcvar_berserker_toggle
new cvar_respawndelay
new new_berserker
new cooldown_time[ 33 ]
new BerserkerFound[ ] = { "berserker/NAR29.wav" }
new BerserkerDown[ ] = { "berserker/NAR28.wav" }
public plugin_init( )
{
register_plugin( "Berserker Mod", "1.0", "ƒa†es™" )
register_event( "DeathMsg", "Event_DeathMsg", "a" )
register_concmd( "amx_berserker", "Toggle", ADMIN_LEVEL_D, " < 1 = on | 0 = off >" )
pcvar_berserker_toggle = register_cvar( "berserker_toggle", "1" )
}
public plugin_precache( )
{
precache_sound( BerserkerFound )
precache_sound( BerserkerDown )
}
public Berserker_Start( )
{
set_hudmessage( 0, 200, 0, -1.0, 0.29, 2, 6.0, 12.0, 0.1, 0.2, -1 )
show_hudmessage( 0, "BERSERKER MOD: ENABLE" )
new players[ 32 ], num
get_players( players, num, "a" )
new_berserker = players[ random( num ) ]
NewBerserker( new_berserker )
return PLUGIN_HANDLED
}
public NewBerserker( id )
{
new name[ 32 ]
get_user_name( new_berserker, name, 31 )
set_user_rendering( new_berserker, kRenderFxGlowShell, 191, 239, 255, kRenderNormal, 16 )
set_user_health( new_berserker, HEALTH )
set_user_armor( new_berserker, ARMOR )
set_user_gravity( new_berserker, GRAVITY )
set_hudmessage( 200, 0, 0, -1.0, 0.20, 2, 1.0, 1.1, 0.0, 0.0, -1 )
show_hudmessage( 0, "BERSERKER: %s | HEALTH: %d | ARMOR: %d", name, get_user_health( new_berserker ), get_user_armor( new_berserker ) )
emit_sound( new_berserker, CHAN_STREAM, BerserkerFound, 1.0, ATTN_NORM, 0, PITCH_HIGH )
return PLUGIN_HANDLED
}
public Event_DeathMsg( )
{
if ( get_pcvar_num( pcvar_berserker_toggle ) == 1 )
{
new id = read_data( 2 )
set_task( 1.0, "ShowHUD", id, _, _, "a", cooldown_time[ id ] )
}
if ( get_pcvar_num( pcvar_berserker_toggle ) == 0 )
return PLUGIN_CONTINUE
if ( read_data( 2 ) == new_berserker )
{
set_user_rendering( read_data( 2 ), kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16 )
new_berserker = read_data( 1 )
NewBerserker( new_berserker )
}
else
{
if ( read_data( 2 ) == new_berserker )
{
client_cmd(0, "spk BerserkerDown" )
}
}
return PLUGIN_CONTINUE
}
public ShowHUD( id )
{
cooldown_time[ id ] = cooldown_time[ id ] - 1;
set_hudmessage( 255, 255, 255, -1.0, 0.20, 2, 1.0, 1.1, 0.0, 0.0, -1 )
show_hudmessage( id, "Respawing in %d second.", cooldown_time[ id ] )
}
public client_disconnect( id )
{
if ( id == new_berserker )
{
new szPlayers[ 32 ], iNum
get_players( szPlayers, iNum )
new_berserker = random_num( 1, iNum )
}
return PLUGIN_HANDLED
}
public Toggle( id, level, cid )
{
if ( !cmd_access( id, level, cid, 2 ) )
{
return PLUGIN_HANDLED
}
new arg1[ 32 ]
read_argv( 1, arg1, 31 )
if ( str_to_num( arg1 ) )
{
set_pcvar_num( pcvar_berserker_toggle, 1 )
server_cmd( "sv_restartround 10" )
set_task( 15.0, "Berserker_Start" )
}
else
{
set_pcvar_num( pcvar_berserker_toggle, 0 )
server_cmd( "sv_restartround 10" )
set_hudmessage( 200, 0, 0, -1.0, 0.29, 2, 6.0, 12.0, 0.1, 0.2, -1 )
show_hudmessage( 0, "BERSERKER MOD: DISABLE" )
remove_task( id )
}
return PLUGIN_HANDLED
}
public start( )
{
if ( !new_berserker )
{
new szPlayers[ 32 ], iNum
get_players( szPlayers, iNum )
new_berserker = random_num( 1, iNum )
}
else
{
NewBerserker( new_berserker )
}
return PLUGIN_HANDLED
}