This is my currently codes. Please help with this: If a user kill a berserker, he will become a berserker too, the old berserker will become a normal player.
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <amxmisc>
#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" }
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" )
cvar_respawndelay = register_cvar( "berserker_respawndelay", "15.0" )
}
public plugin_precache( )
{
precache_sound( BerserkerFound )
}
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
for( new i=1; i<33; i++ )
if ( is_user_alive( i ) )
players[ num++ ] = i
new_berserker = players[ random( num ) ]
if ( new_berserker )
{
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 )
}
new iVictim
iVictim = read_data( 2 )
if ( iVictim == new_berserker )
{
new iKiller
if ( is_user_alive( iKiller ) )
{
new_berserker = iKiller
}
else
{
if ( new_berserker == 0 )
{
new players[ 32 ], num
for( new i=1; i<33; i++ )
if ( is_user_alive( i ) )
players[ num++ ] = i
new_berserker = players[ random( num ) ]
}
}
}
}
public Event_DeathMsg( )
{
if ( get_pcvar_num( pcvar_berserker_toggle ) == 1 )
{
new id = read_data( 2 )
cooldown_time[ id ] = get_pcvar_num( cvar_respawndelay )
set_task( get_pcvar_float( cvar_respawndelay ), "Respawn_Player", id )
set_task( 1.0, "ShowHUD", id, _, _, "a", cooldown_time[ id ] )
}
if ( get_pcvar_num( pcvar_berserker_toggle ) == 0 )
{
new id = read_data( 2 )
remove_task( id )
}
if ( read_data( 2 ) == new_berserker )
{
new_berserker = read_data( 1 )
}
}
public Respawn_Player( id )
{
new name[32]
get_user_name( id, name, 31 )
if ( !is_user_connected( id ) || is_user_alive( id ) || cs_get_user_team( id ) == CS_TEAM_SPECTATOR )
return;
client_print( 0, print_chat, "Player %s is respawning.", name )
set_pev( id, pev_deadflag, DEAD_RESPAWNABLE )
dllfunc( DLLFunc_Think, id )
if ( is_user_bot( id ) && pev( id, pev_deadflag ) == DEAD_RESPAWNABLE )
{
dllfunc( DLLFunc_Spawn, id )
}
}
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 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
}