summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-02-26 04:09:58 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-02-26 04:09:58 +0000
commit0eca88efc69becc591428fbb6b9fddd9237afd3d (patch)
treeb1784b3698c04668520e4b22ea265034b765db76
parent7c4b730c6d8a0201512148fcb795c0f666bfe8c8 (diff)
downloadhercules-0eca88efc69becc591428fbb6b9fddd9237afd3d.tar.gz
hercules-0eca88efc69becc591428fbb6b9fddd9237afd3d.tar.bz2
hercules-0eca88efc69becc591428fbb6b9fddd9237afd3d.tar.xz
hercules-0eca88efc69becc591428fbb6b9fddd9237afd3d.zip
- indent cleanups
- Fixed Self Destruction causing double-free'd errors and triggering twice when a self-destruct cast makes other objects trigger self destruct as well git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9924 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--src/map/chrif.c4
-rw-r--r--src/map/map.c2
-rw-r--r--src/map/skill.c2
3 files changed, 5 insertions, 3 deletions
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 404685339..190038805 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -1076,7 +1076,6 @@ int chrif_disconnectplayer(int fd){
case 3: //server overpopulated
clif_authfail_fd(sd->fd, 4);
-
break;
case 4: //out of time payd for .. (avail)
@@ -1087,8 +1086,7 @@ int chrif_disconnectplayer(int fd){
clif_authfail_fd(sd->fd, 15);
break;
}
-
-return 0;
+ return 0;
}
/*==========================================
diff --git a/src/map/map.c b/src/map/map.c
index 02d3bbdeb..1ea7498f5 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -1695,6 +1695,8 @@ int map_quit(struct map_session_data *sd) {
unit_remove_map(&sd->bl, 0);
if (sd->pd && sd->pd->bl.prev != NULL)
unit_remove_map(&sd->pd->bl, 0);
+ if (sd->hd && sd->hd->bl.prev != NULL)
+ unit_remove_map(&sd->hd->bl, 0);
}
}
diff --git a/src/map/skill.c b/src/map/skill.c
index a1e7a3e01..5e5cee3ac 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -4096,10 +4096,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
i = ((!md || md->special_state.ai == 2) && !map_flag_vs(src->m))?
BCT_ENEMY:BCT_ALL;
clif_skill_nodamage(src, src, skillid, -1, 1);
+ map_delblock(src); //Required to prevent chain-self-destructions hitting back.
map_foreachinrange(skill_area_sub, bl,
skill_get_splash(skillid, skilllv), BL_CHAR,
src, skillid, skilllv, tick, flag|i,
skill_castend_damage_id);
+ map_addblock(src);
status_damage(src, src, sstatus->max_hp,0,0,1);
break;