View Single Post
Arje
Senior Member
Join Date: Apr 2020
Location: Córdoba, Argentina
Old 02-07-2022 , 13:53   Re: ptouched and kill
Reply With Quote #5

sorry but it didn't work that way either because it wouldn't let me compile, however in this way I replaced

PHP Code:
entity_set_edict(coronavirusEV_EDICT_ownervictim); 
for: (thanks for the guidance)

PHP Code:
entity_set_edict(coronavirusEV_ENT_ownercoronaowner
the code was like this:

PHP Code:
//----------------------------------------------------------------------------------------------
public sh_client_death(victimattacker)
{
    if ( !
sh_is_active() || !sh_is_inround() ) return
    
    if ( 
victim == attacker ) return
     
    new 
randnum random_num(0100)
    new 
coronachance floatround(get_pcvar_float(pcvarPercent) * 100)
     
    if ( 
coronachance >= randnum && is_user_alive(attacker) && gHasCoronaPower[attacker] ) {
        
            new 
parm[2]
            
parm[0] = victim
            parm
[1] = attacker 
            createcoronavirus
(parm)
            
            new 
aimvec[3]
            
get_user_origin(victimaimvec)
            
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(23)
            
write_coord(aimvec[0])
            
write_coord(aimvec[1])
            
write_coord(aimvec[2])
            
write_short(Smoke)
            
write_byte(001)
            
write_byte(65)
            
write_byte(200)
            
message_end()
            
aimvec[2] -= 100
            set_user_origin
(victimaimvec
        }


//----------------------------------------------------------------------------------------------
public createcoronavirus(parm[])
{
    new 
victim parm[0]
    new 
coronaowner parm[1]
    
    new 
Float:vAim[3], Float:vOrigin[3]
    
entity_get_vector(victimEV_VEC_originvOrigin)
    
VelocityByAim(victimrandom_num(24), vAim)
    
    
vOrigin[0] += vAim[0]
    
vOrigin[1] += vAim[1]
    
vOrigin[2] += 30.0
    
    
new coronavirus create_entity("info_target")
    
entity_set_string(coronavirusEV_SZ_classname"coronavirus")
    
entity_set_model(coronavirus"models/shmod/coronavirus.mdl")    
    
entity_set_size(coronavirusFloat:{-2.5, -2.5, -1.5}, Float:{2.52.51.5})
    
entity_set_edict(coronavirusEV_ENT_ownercoronaowner)
    
entity_set_int(coronavirusEV_INT_solid2)
    
entity_set_int(coronavirusEV_INT_movetype6)
    
entity_set_vector(coronavirusEV_VEC_originvOrigin)
    
}
//----------------------------------------------------------------------------------------------
public pfn_touch(ptrptd
{
    if(!
is_valid_ent(ptd) || !is_valid_ent(ptr))
        return 
PLUGIN_CONTINUE
            
    
if(!is_user_connected(ptd) || !is_user_alive(ptd))
        return 
PLUGIN_CONTINUE
    
    
new classname[32]
    
entity_get_string(ptrEV_SZ_classnameclassname31)
    if(
equal(classname"coronavirus")) {
        
        static 
pUserMsgDeathMSG 0; if(!pUserMsgDeathMSGpUserMsgDeathMSG get_user_msgid("DeathMsg");
        
        static 
iOwner;
        
iOwner entity_get_edict(ptrEV_ENT_owner);

        if( 
is_user_connected(iOwner) ) {
            
            
set_user_frags(iOwnerget_user_frags(iOwner) + 1);
            
message_begin(MSG_ALLpUserMsgDeathMSG_0);
            
write_byte(iOwner);
            
write_byte(ptd);
            
write_byte(0);
            
write_string("coronavirus");
            
message_end();
            
            
// This is to make the one who touches the entity die
            
set_user_health(ptd, -1);
        }
            
        
remove_entity(ptr);
    
            
            
    } 
    
    return 
PLUGIN_CONTINUE

and now the code works but wrong, for example when someone touches the entity it dies twice, the first one appears as if you killed it but it does not add frag, and the second one as if you had put kill on the console

but then when you kill someone the next time, instead of giving you a frag it gives you two frags, that's why I say it works well but badly

Sorry if I don't express it well in English I can try again
Arje is offline