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(coronavirus, EV_EDICT_owner, victim);
for: (thanks for the guidance)
PHP Code:
entity_set_edict(coronavirus, EV_ENT_owner, coronaowner)
the code was like this:
PHP Code:
//----------------------------------------------------------------------------------------------
public sh_client_death(victim, attacker)
{
if ( !sh_is_active() || !sh_is_inround() ) return
if ( victim == attacker ) return
new randnum = random_num(0, 100)
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(victim, aimvec)
message_begin(MSG_BROADCAST, SVC_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(victim, aimvec)
}
}
//----------------------------------------------------------------------------------------------
public createcoronavirus(parm[])
{
new victim = parm[0]
new coronaowner = parm[1]
new Float:vAim[3], Float:vOrigin[3]
entity_get_vector(victim, EV_VEC_origin, vOrigin)
VelocityByAim(victim, random_num(2, 4), vAim)
vOrigin[0] += vAim[0]
vOrigin[1] += vAim[1]
vOrigin[2] += 30.0
new coronavirus = create_entity("info_target")
entity_set_string(coronavirus, EV_SZ_classname, "coronavirus")
entity_set_model(coronavirus, "models/shmod/coronavirus.mdl")
entity_set_size(coronavirus, Float:{-2.5, -2.5, -1.5}, Float:{2.5, 2.5, 1.5})
entity_set_edict(coronavirus, EV_ENT_owner, coronaowner)
entity_set_int(coronavirus, EV_INT_solid, 2)
entity_set_int(coronavirus, EV_INT_movetype, 6)
entity_set_vector(coronavirus, EV_VEC_origin, vOrigin)
}
//----------------------------------------------------------------------------------------------
public pfn_touch(ptr, ptd)
{
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(ptr, EV_SZ_classname, classname, 31)
if(equal(classname, "coronavirus")) {
static pUserMsgDeathMSG = 0; if(!pUserMsgDeathMSG) pUserMsgDeathMSG = get_user_msgid("DeathMsg");
static iOwner;
iOwner = entity_get_edict(ptr, EV_ENT_owner);
if( is_user_connected(iOwner) ) {
set_user_frags(iOwner, get_user_frags(iOwner) + 1);
message_begin(MSG_ALL, pUserMsgDeathMSG, _, 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