PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <fun>
#include <biohazard>
#define Plugin "Capsule"
#define Version "2.9"
#define Author "Asd'"
new CapsuleMdl[] = "models/biohazard/w_hp_armor_capsule.mdl"
new ReceivedSd[] = "biohazard/capsule_alert.wav"
new Capsule[33]
new Float:Colors[3][3] = {
{0.0, 200.0, 0.0},
{200.0, 0.0, 0.0},
{0.0, 0.0, 200.0}
}
public plugin_init( )
{
register_plugin( Plugin, Version, Author )
register_touch( "Capsule", "player", "CapsuleTouch" )
register_touch( "Capsule", "worldspawn", "CapsuleBounce" )
RegisterHam( Ham_Killed, "player", "CapsuleCreate", 1 )
RegisterHam( Ham_Spawn, "player", "CapsuleRemoved", 1 )
}
public plugin_precache( )
{
precache_model( CapsuleMdl )
precache_sound( ReceivedSd )
}
public event_infect(victim, attacker)
{
new Team = get_user_team(attacker)
new Float:Origin[3]
new Float:Velocidad[3]
if(is_user_zombie(attacker))
{
set_task(15.0, "CapsuleRemove2", attacker)
CapsuleRemove( attacker )
new Entidad = create_entity( "info_target" )
entity_get_vector( attacker, EV_VEC_origin, Origin )
entity_set_string( Entidad, EV_SZ_classname, "Capsule" )
entity_set_model( Entidad, CapsuleMdl )
entity_set_int( Entidad, EV_INT_rendermode, kRenderNormal)
entity_set_int( Entidad, EV_INT_renderfx, kRenderFxGlowShell )
entity_set_vector( Entidad, EV_VEC_rendercolor, Colors[0] )
entity_set_float( Entidad, EV_FL_renderamt, 10.0 )
entity_set_edict( Entidad, EV_ENT_owner, attacker )
entity_set_int( Entidad, EV_INT_iuser1, Team )
entity_set_int( Entidad, EV_INT_iuser2, attacker )
entity_set_size( Entidad, Float:{ -10.0, -10.0, -0.0 }, Float:{ 10.0, 10.0, 0.0 } )
entity_set_origin( Entidad, Origin )
entity_set_int( Entidad, EV_INT_solid, SOLID_TRIGGER )
entity_set_int( Entidad, EV_INT_movetype, MOVETYPE_TOSS )
entity_get_vector( attacker, EV_VEC_velocity, Velocidad )
entity_set_vector( Entidad, EV_VEC_velocity, Velocidad )
Capsule[attacker] = Entidad
entity_set_float( Entidad, EV_FL_nextthink, get_gametime( ) + 1.0 )
}
return HAM_HANDLED
}
public CapsuleCreate( Victim, Attacker, ShouldGib )
{
if( is_user_zombie( Victim ) )
return PLUGIN_HANDLED
new Float:Origin[3]
new Float:Velocidad[3]
CapsuleRemove( Victim )
new Team = get_user_team( Victim )
new Entidad = create_entity( "info_target" )
entity_get_vector( Victim, EV_VEC_origin, Origin )
entity_set_string( Entidad, EV_SZ_classname, "Capsule" )
entity_set_model( Entidad, CapsuleMdl )
entity_set_int( Entidad, EV_INT_rendermode, kRenderNormal)
entity_set_int( Entidad, EV_INT_renderfx, kRenderFxGlowShell )
entity_set_vector( Entidad, EV_VEC_rendercolor, Colors[0] )
entity_set_float( Entidad, EV_FL_renderamt, 10.0 )
entity_set_edict( Entidad, EV_ENT_owner, Victim )
entity_set_int( Entidad, EV_INT_iuser1, Team )
entity_set_int( Entidad, EV_INT_iuser2, Victim )
entity_set_size( Entidad, Float:{ -10.0, -10.0, -0.0 }, Float:{ 10.0, 10.0, 0.0 } )
entity_set_origin( Entidad, Origin )
entity_set_int( Entidad, EV_INT_solid, SOLID_TRIGGER )
entity_set_int( Entidad, EV_INT_movetype, MOVETYPE_TOSS )
entity_get_vector( Victim, EV_VEC_velocity, Velocidad )
entity_set_vector( Entidad, EV_VEC_velocity, Velocidad )
Capsule[Victim] = Entidad
entity_set_float( Entidad, EV_FL_nextthink, get_gametime( ) + 1.0 )
return HAM_HANDLED
}
public CapsuleBounce( Entidad, World )
{
if( !is_valid_ent( Entidad ) )
return PLUGIN_HANDLED
if( entity_get_edict( Entidad, EV_ENT_owner ) )
entity_set_edict( Entidad, EV_ENT_owner, 0 )
return PLUGIN_HANDLED
}
public CapsuleRemoved( id )
{
CapsuleRemove( id )
return HAM_IGNORED
}
public CapsuleTouch( Entidad, Index )
{
if( !is_user_alive( Index ) )
return PLUGIN_HANDLED
if( is_user_zombie( Index ) )
return PLUGIN_HANDLED
if( !is_valid_ent( Entidad ) )
return PLUGIN_HANDLED
if( entity_get_edict( Entidad, EV_ENT_owner ) )
return PLUGIN_HANDLED
new OldEntidad = entity_get_int( Entidad, EV_INT_iuser2 )
set_user_health(Index, get_user_health(Index) + 35)
set_user_armor(Index, get_user_armor(Index) + 35)
emit_sound( Entidad, CHAN_ITEM, ReceivedSd, 1.0, ATTN_NORM, 0, PITCH_NORM )
client_print(Index, print_center, "[You got +35HP +35ARMOR]")
CapsuleRemove( OldEntidad )
return PLUGIN_HANDLED
}
stock CapsuleRemove( Index )
{
if( ( Capsule[Index] != 0 ) && is_valid_ent( Capsule[Index] ) )
{
remove_entity( Capsule[Index] )
Capsule[Index] = 0
}
}
public CapsuleRemove2( Index )
{
if( ( Capsule[Index] != 0 ) && is_valid_ent( Capsule[Index] ) )
{
remove_entity( Capsule[Index] )
Capsule[Index] = 0
}
}