Senior Member
Join Date: Jul 2010
Location: Spain
|
06-28-2021
, 07:12
Re: Get 'Owner' of other third entity
|
#6
|
Quote:
Originally Posted by Celena Luna
PHP Code:
if (userHealth - damage <= 0 )
{
dmgcount[attacker] += userHealth - damage;
set_msg_block(gmsg_death, BLOCK_SET);
//ExecuteHamB(Ham_Killed, id, attacker, 2);
ExecuteHamB(Ham_TakeDamage, id , 2, attacker, float(damage), DMG_GENERIC);
set_msg_block(gmsg_death, BLOCK_NOT);
}
isn't the condition of this part is "Do when victim gonna dead"?
Because of that, it only Execute Ham_TakeDamage when people is about to dead when taking that damage
=>
But it is OK to keep it like that though. I looked into the code of ZP Bazooka and found it is actually the part after that that you suppose to change:
(look at the highlight part and compare with your code)
Spoiler
Code:
baz_damage (id, attacker, damage, weaponDescription [])
{
if ( pev (id, pev_takedamage ) == DAMAGE_NO ) return;
if ( damage <= 0 ) return;
new userHealth = get_user_health(id );
if (userHealth - damage <= 0 )
{
dmgcount [attacker ] += userHealth - damage;
set_msg_block (gmsg_death, BLOCK_SET );
ExecuteHamB (Ham_Killed, id, attacker, 2);
set_msg_block (gmsg_death, BLOCK_NOT );
message_begin(MSG_BROADCAST, gmsg_death );
write_byte(attacker );
write_byte(id );
write_byte(0);
write_string(weaponDescription );
message_end();
set_pev (attacker, pev_frags, float(get_user_frags(attacker ) + 1));
new kname [32], vname [32], kauthid [32], vauthid [32], kteam [10], vteam [10];
get_user_name(attacker, kname, 31);
get_user_team(attacker, kteam, 9);
get_user_authid(attacker, kauthid, 31);
get_user_name(id, vname, 31);
get_user_team(id, vteam, 9);
get_user_authid(id, vauthid, 31);
log_message("^"%s<%d><%s><%s>^ " killed ^"%s<%d><%s><%s>^ " with ^"%s^ "",
kname, get_user_userid(attacker ), kauthid, kteam,
vname, get_user_userid(id ), vauthid, vteam, weaponDescription );
}
else
{
dmgcount [attacker ] += damage;
new origin [3];
get_user_origin(id, origin );
message_begin(MSG_ONE,gmsg_damage, {0, 0, 0},id );
write_byte(21);
write_byte(20);
write_long(DMG_BLAST );
write_coord(origin [0]);
write_coord(origin [1]);
write_coord(origin [2]);
message_end();
set_pev(id, pev_health, pev(id, pev_health) - float(damage)); }
if ( ! get_pcvar_num(pcvar_award ) ) return;
new breaker = get_pcvar_num(pcvar_dmgforpacks );
if ( dmgcount [attacker ] > breaker )
{
new temp = dmgcount [attacker ] / breaker
if ( temp * breaker > dmgcount [attacker ] ) return; //should never be possible
dmgcount [attacker ] -= temp * breaker;
zp_set_user_ammo_packs ( attacker, zp_get_user_ammo_packs (attacker ) + temp );
}
}
The plugin "does damage" by setting player health though pev so it won't go through TakeDamage forward.
You should replace it with this:
PHP Code:
ExecuteHamB(Ham_TakeDamage, id , 2, attacker, float(damage), DMG_GENERIC);
|
It seems silly but it makes sense, now I understand it, thank you very much for everything, now work!
|
|