Raised This Month: $ Target: $400
 0% 

removinq one entity of a kind while others remain


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Jack86
Veteran Member
Join Date: Dec 2008
Location: Belgrade, Serbia
Old 01-03-2010 , 07:02   Re: removinq one entity of a kind while others remain
Reply With Quote #3

Here's a code, i dont know what field can i use here at drop_kit and compare it later at kitremove. Also will 10 tasks at same time cause any extra load on server ?

PHP Code:

#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <fakemeta_util>

#define PLUGIN "Healthkit on dead body"
#define AUTHOR "tuty"
#define VERSION "3.0b"

#define MEDKIT_MINSZ Float:{ -23.160000, -13.660000, -0.050000 }
#define MEDKIT_MAXSZ Float:{ 11.470000, 12.780000, 6.720000 }
#define MODEL_KIT "models/w_medkit.mdl"
#define SOUND_KIT "items/smallmedkit1.wav" 
#define FFADE_IN 0x0000
#define MAX_KITS 10

new gKitCounter
new gToggleKitEnable;
new 
gToggleGlowShow;
new 
gGMsgFade;
new 
gToggleFadeEnable;
new 
gRemoveTime;
new 
gKitHealthCvar;
new 
gLimitHealthCvar;

new const 
gMedKitClassname[] = "medkit_entity";

public 
plugin_init()
{    
    
register_pluginPLUGINVERSIONAUTHOR );
    
register_cvar"kit_on_body"VERSIONFCVAR_SERVER FCVAR_SPONLY );
    
register_event"DeathMsg","drop_kit","a" );
    
register_touch("medkit_entity","player","touched");
    
    
gToggleKitEnable register_cvar"kit_enable""1" );
    
gToggleGlowShow register_cvar"kit_glow""0" );
    
gToggleFadeEnable register_cvar"kit_fade""1" );
    
gRemoveTime register_cvar"kit_remove""10.0" );
    
gKitHealthCvar register_cvar"kit_health""25" );
    
gLimitHealthCvar register_cvar"kit_limit_health""45" );
    
    
gGMsgFade get_user_msgid"ScreenFade" );
    
gKitCounter 0
}
public 
plugin_precache()
{
    
precache_modelMODEL_KIT );
    
precache_soundSOUND_KIT );
}
public 
drop_kit()
{
    new 
chance =random_num(0,2// 33% chance ??
    
if( get_pcvar_numgToggleKitEnable ) == || gKitCounter MAX_KITS || chance==)
    {
        return 
PLUGIN_HANDLED;
    }    
    
    new 
victim read_data);
    
    static 
Float:origin];
    
pevvictimpev_originorigin );
    
    new 
ent engfuncEngFunc_CreateNamedEntityengfuncEngFunc_AllocString"info_target" ) );
    
origin] -= 36
    
engfuncEngFunc_SetOriginentorigin );
    
    if( !
pev_valident ) )
    {
        return 
PLUGIN_HANDLED;
    }
    
    
set_peventpev_classnamegMedKitClassname );
    
engfuncEngFunc_SetModelentMODEL_KIT );
    
dllfuncDLLFunc_Spawnent );
    
set_peventpev_solidSOLID_BBOX );
    
set_peventpev_movetypeMOVETYPE_NONE );
    
engfuncEngFunc_SetSizeentMEDKIT_MINSZMEDKIT_MAXSZ );
    
engfuncEngFunc_DropToFloorent );
    
gKitCounter++
    if( 
get_pcvar_numgToggleGlowShow ) == )
    {
        
fm_set_renderingentkRenderFxGlowShell255255255kRenderFxNone27 );
    }
    
set_task(get_pcvar_float(gRemoveTime),"kitremove")
    return 
PLUGIN_HANDLED;
}
public 
touchedentid )
{
    if( !
pev_valident ) || get_pcvar_numgToggleKitEnable ) == )
    {
        return 
FMRES_IGNORED;
    }
    
    new 
health get_user_healthid );
    new 
cvarhealth get_pcvar_numgKitHealthCvar );
    new 
maxhealth get_pcvar_numgLimitHealthCvar );
    
    if( 
health >= maxhealth )
    {
        
set_hudmessage25500, -1.00.8326.03.0 );
        
show_hudmessageid"You must have less then %d HP to take the kit."maxhealth );
        return 
FMRES_IGNORED;
    }

    
set_hudmessage25500, -1.00.8326.03.0 );
    
show_hudmessageid"You received %d HP"cvarhealth );
    
    
fm_set_user_healthidhealth cvarhealth );
    
emit_soundidCHAN_ITEMSOUND_KITVOL_NORMATTN_NORM ,PITCH_NORM );
    
    if( 
get_pcvar_numgToggleFadeEnable ) == )
    {
        
        
message_beginMSG_ONE_UNRELIABLEgGMsgFade , {0,0,0}, id );
        
write_short1<<10 );
        
write_short1<<10 );
        
write_shortFFADE_IN );
        
write_byte255 );
        
write_byte);
        
write_byte); 
        
write_byte75 );
        
message_end();
    }
    
engfuncEngFunc_RemoveEntityent );
    
gKitCounter--
    return 
FMRES_IGNORED;
}
public 
kitremove()
{
    new 
hkit FM_NULLENT;
    while ( ( 
hkit fm_find_ent_by_classhkitgMedKitClassname ) ) )
    {
        
engfuncEngFunc_RemoveEntityhkit )
        
gKitCounter--
    }
    

__________________


Last edited by Jack86; 01-03-2010 at 07:04.
Jack86 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 04:02.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode