unicorn97211
06-12-2006, 04:12 PM
Currently if you feign and the mob has one of your dots active on it, every tick the mob will add you back to his hate list even though you are FD. This took care of it for me....
In attack.cpp->Mob->CommonDamage change
if(attacker && damage != -5) { //no hate if we are completely immune, just laugh it off
sint32 hate = 0;
if (attack_skill == ARCHERY)
hate = 1; // almost no aggro for archery
else if(damage < 1)
hate = 1;
else if(spell_id != SPELL_UNKNOWN)
hate = (damage+1) / 2; // half aggro for spells
else
hate = damage; // normal aggro for everything else
mlog(COMBAT__HITS, "Generating hate %d towards %s", hate, attacker->GetName());
// now add done damage to the hate list
AddToHateList(attacker, hate, damage, true, false, iBuffTic);
}
to
if(attacker && damage != -5) { //no hate if we are completely immune, just laugh it off
sint32 hate = 0;
if (attack_skill == ARCHERY)
hate = 1; // almost no aggro for archery
else if(damage < 1)
hate = 1;
else if(spell_id != SPELL_UNKNOWN)
hate = (damage+1) / 2; // half aggro for spells
else
hate = damage; // normal aggro for everything else
// EverHood 6/12/06
if(attacker->IsClient()){
// check if attacker is feigned
if(attacker->CastToClient()->GetFeigned()){
hate = -1; // no hate for feigned attackers
}
}
if(hate != -1){
// attacker generated some hate so
// add damage done by attacker to the hate list
mlog(COMBAT__HITS, "Generating hate %d towards %s", hate, attacker->GetName());
AddToHateList(attacker, hate, damage, true, false, iBuffTic);
}
}
Let me know if this works for anyone else or if it causes any problems my limited testing didn't reveal.
In attack.cpp->Mob->CommonDamage change
if(attacker && damage != -5) { //no hate if we are completely immune, just laugh it off
sint32 hate = 0;
if (attack_skill == ARCHERY)
hate = 1; // almost no aggro for archery
else if(damage < 1)
hate = 1;
else if(spell_id != SPELL_UNKNOWN)
hate = (damage+1) / 2; // half aggro for spells
else
hate = damage; // normal aggro for everything else
mlog(COMBAT__HITS, "Generating hate %d towards %s", hate, attacker->GetName());
// now add done damage to the hate list
AddToHateList(attacker, hate, damage, true, false, iBuffTic);
}
to
if(attacker && damage != -5) { //no hate if we are completely immune, just laugh it off
sint32 hate = 0;
if (attack_skill == ARCHERY)
hate = 1; // almost no aggro for archery
else if(damage < 1)
hate = 1;
else if(spell_id != SPELL_UNKNOWN)
hate = (damage+1) / 2; // half aggro for spells
else
hate = damage; // normal aggro for everything else
// EverHood 6/12/06
if(attacker->IsClient()){
// check if attacker is feigned
if(attacker->CastToClient()->GetFeigned()){
hate = -1; // no hate for feigned attackers
}
}
if(hate != -1){
// attacker generated some hate so
// add damage done by attacker to the hate list
mlog(COMBAT__HITS, "Generating hate %d towards %s", hate, attacker->GetName());
AddToHateList(attacker, hate, damage, true, false, iBuffTic);
}
}
Let me know if this works for anyone else or if it causes any problems my limited testing didn't reveal.