#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#define PLUGIN "Eletcsomag a halott testeken"
#define AUTHOR "BREST"
#define VERSION "3.1beta"
#define MEDKIT_MINSZ Float:{ -23.160000, -13.660000, -0.050000 }
#define MEDKIT_MAXSZ Float:{ 11.470000, 12.780000, 6.720000 }
#define MODEL_KIT "models/zold.mdl"
#define SOUND_KIT "items/eletcsomag.wav"
#define FFADE_IN 0x0000
new gToggleKitEnable;
new gToggleGlowShow;
new gGMsgFade;
new gToggleFadeEnable;
new gToggleRemoveAtRstart;
new gKitHealthCvar;
new gLimitHealthCvar;
new const gMedKitClassname[] = "medkit_entity";
public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR );
register_cvar( "kit_on_body", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
register_event( "DeathMsg","drop_kit","a" );
register_logevent( "logevent_round_start", 2, "1=Round_Start" );
register_forward( FM_Touch,"ForwardTouch" );
gToggleKitEnable = register_cvar( "kit_enable", "1" );
gToggleGlowShow = register_cvar( "kit_glow", "0" );
gToggleFadeEnable = register_cvar( "kit_fade", "0" );
gToggleRemoveAtRstart = register_cvar( "kit_remove", "1" );
gKitHealthCvar = register_cvar( "kit_health", "20" );
gLimitHealthCvar = register_cvar( "kit_limit_health", "100" );
gGMsgFade = get_user_msgid( "ScreenFade" );
}
public plugin_precache()
{
precache_model( MODEL_KIT );
precache_sound( SOUND_KIT );
}
public drop_kit()
{
if( get_pcvar_num( gToggleKitEnable ) == 0 )
{
return PLUGIN_HANDLED;
}
new victim = read_data( 2 );
static Float:origin[ 3 ];
pev( victim, pev_origin, origin );
new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
origin[ 2 ] -= 36;
engfunc( EngFunc_SetOrigin, ent, origin );
if( !pev_valid( ent ) )
{
return PLUGIN_HANDLED;
}
set_pev( ent, pev_classname, gMedKitClassname );
engfunc( EngFunc_SetModel, ent, MODEL_KIT );
dllfunc( DLLFunc_Spawn, ent );
set_pev( ent, pev_solid, SOLID_BBOX );
set_pev( ent, pev_movetype, MOVETYPE_NONE );
engfunc( EngFunc_SetSize, ent, MEDKIT_MINSZ, MEDKIT_MAXSZ );
engfunc( EngFunc_DropToFloor, ent );
if( get_pcvar_num( gToggleGlowShow ) == 1 )
{
fm_set_rendering( ent, kRenderFxGlowShell, 255, 255, 255, kRenderFxNone, 27 );
}
return PLUGIN_HANDLED;
}
public ForwardTouch( ent, id )
{
if( !pev_valid( ent ) || get_pcvar_num( gToggleKitEnable ) == 0 )
{
return FMRES_IGNORED;
}
new classname[ 32 ];
pev( ent, pev_classname, classname, charsmax( classname ) );
if( !equal( classname, gMedKitClassname ) )
{
return FMRES_IGNORED;
}
new health = get_user_health( id );
new cvarhealth = get_pcvar_num( gKitHealthCvar );
new maxhealth = get_pcvar_num( gLimitHealthCvar );
if( health >= maxhealth )
{
client_print( id, print_center, "Bocsi, de neked van mar %d eletpontod. Nemtudod hasznalni ezt a csomagot! El kell vesztened: %d eletpontot, hogy fel tudd hasznalni ezt a csomagot.", health, maxhealth );
return FMRES_IGNORED;
}
ColorChat( id, GREEN, "[Hyper NoVa] ^3Kaptal ^4%d ^3eletpontot!", cvarhealth );
fm_set_user_health( id, health + cvarhealth );
emit_sound( id, CHAN_ITEM, SOUND_KIT, VOL_NORM, ATTN_NORM ,0 , PITCH_NORM );
if( get_pcvar_num( gToggleFadeEnable ) == 1 )
{
message_begin( MSG_ONE_UNRELIABLE, gGMsgFade , {0,0,0}, id );
write_short( 1<<10 );
write_short( 1<<10 );
write_short( FFADE_IN );
write_byte( 255 );
write_byte( 0 );
write_byte( 0 );
write_byte( 75 );
message_end();
}
engfunc( EngFunc_RemoveEntity, ent );
return FMRES_IGNORED;
}
public logevent_round_start()
{
if( get_pcvar_num( gToggleRemoveAtRstart ) == 1 )
{
new hkit = FM_NULLENT;
while ( ( hkit = fm_find_ent_by_class( hkit, gMedKitClassname ) ) )
{
engfunc( EngFunc_RemoveEntity, hkit );
}
}
}