diff options
Diffstat (limited to 'src/game-server/monster.cpp')
-rw-r--r-- | src/game-server/monster.cpp | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/src/game-server/monster.cpp b/src/game-server/monster.cpp index d0c55073..0f387917 100644 --- a/src/game-server/monster.cpp +++ b/src/game-server/monster.cpp @@ -131,7 +131,8 @@ void Monster::perform() { setTimerHard(T_M_ATTACK_TIME, mCurrentAttack->aftDelay + mCurrentAttack->preDelay); - Damage dmg(getModifiedAttribute(MOB_ATTR_PHY_ATK_MIN) * + Damage dmg(0, + getModifiedAttribute(MOB_ATTR_PHY_ATK_MIN) * mCurrentAttack->damageFactor, getModifiedAttribute(MOB_ATTR_PHY_ATK_DELTA) * mCurrentAttack->damageFactor, @@ -421,22 +422,14 @@ int Monster::damage(Actor *source, const Damage &damage) { Character *s = static_cast< Character * >(source); - std::list<size_t>::const_iterator iSkill; - for (iSkill = damage.usedSkills.begin(); - iSkill != damage.usedSkills.end(); ++iSkill) + mExpReceivers[s].insert(damage.skill); + if (!isTimerRunning(T_M_KILLSTEAL_PROTECTED) || mOwner == s + || mOwner->getParty() == s->getParty()) { - if (*iSkill) - { - mExpReceivers[s].insert(*iSkill); - if (!isTimerRunning(T_M_KILLSTEAL_PROTECTED) || mOwner == s - || mOwner->getParty() == s->getParty()) - { - mOwner = s; - mLegalExpReceivers.insert(s); - setTimerHard(T_M_KILLSTEAL_PROTECTED, - KILLSTEAL_PROTECTION_TIME); - } - } + mOwner = s; + mLegalExpReceivers.insert(s); + setTimerHard(T_M_KILLSTEAL_PROTECTED, + KILLSTEAL_PROTECTION_TIME); } } return HPLoss; |