summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/map/status.c b/src/map/status.c
index b3a77dadf..fc0fe1ada 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -523,8 +523,11 @@ int status_damage(struct block_list *src,struct block_list *target,int hp, int s
status = status_get_status_data(target);
- if (status == &dummy_status || !status->hp || !target->prev)
- return 0; //Invalid targets: no damage, dead, not on a map.
+ if (status == &dummy_status || !status->hp)
+ return 0; //Invalid targets: no damage or dead
+
+ if (!target->prev && !(flag&2))
+ return 0; //Cannot damage a bl not on a map, except when "charging" hp/sp
sc = status_get_sc(target);