summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game-server/being.cpp7
-rw-r--r--src/game-server/monster.cpp2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/game-server/being.cpp b/src/game-server/being.cpp
index e0b16ed7..6cbf4c31 100644
--- a/src/game-server/being.cpp
+++ b/src/game-server/being.cpp
@@ -88,7 +88,6 @@ int Being::damage(Object *, Damage const &damage)
LOG_DEBUG("Being " << getPublicID() << " suffered "<<HPloss<<" damage. HP: "<<HP.base + HP.mod<<"/"<<HP.base);
HP.mod -= HPloss;
modifiedAttribute(BASE_ATTR_HP);
- if (HP.base + HP.mod <= 0) died();
return HPloss;
}
@@ -237,4 +236,10 @@ void Being::update()
}
++i;
}
+
+ //check if being died
+ if (getModifiedAttribute(BASE_ATTR_HP) <= 0 && mAction != DEAD)
+ {
+ died();
+ }
}
diff --git a/src/game-server/monster.cpp b/src/game-server/monster.cpp
index 10bc2b30..46225e9a 100644
--- a/src/game-server/monster.cpp
+++ b/src/game-server/monster.cpp
@@ -353,6 +353,8 @@ int Monster::damage(Object *source, Damage const &damage)
void Monster::died()
{
+ if (mAction == DEAD) return;
+
Being::died();
mCountDown = 50; // Sets remove time to 5 seconds