summaryrefslogtreecommitdiff
path: root/src/map/unit.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-04-17 23:54:49 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-04-17 23:54:49 +0000
commit6ed44f7303f11ed2de589fca48b19092c2738409 (patch)
tree7240e16cfb7e7a3b0e0433aab2e0c8c741a5b2bd /src/map/unit.c
parentb48816ba37affa20998a64300af083faa6c70127 (diff)
downloadhercules-6ed44f7303f11ed2de589fca48b19092c2738409.tar.gz
hercules-6ed44f7303f11ed2de589fca48b19092c2738409.tar.bz2
hercules-6ed44f7303f11ed2de589fca48b19092c2738409.tar.xz
hercules-6ed44f7303f11ed2de589fca48b19092c2738409.zip
- skill_clear_unitgroup is now invoked in unit_remove_map only on death if the applicable battle setting is set. It is now also invoked in unit_free.
- Changed setting clear_unit_ondeath to a type 4 (bl-based) which defaults to BL_ALL. - Fixed Absorb spirit sphere not working on mobs, thanks to Vividd. - Cleared the ud->target on pc_stop_attack to prevent attack resuming an other such oddities. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6145 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/unit.c')
-rw-r--r--src/map/unit.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/map/unit.c b/src/map/unit.c
index 61420d43e..08b29cc5b 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -1526,7 +1526,8 @@ int unit_remove_map(struct block_list *bl, int clrtype) {
status_change_end(bl, SC_GOSPEL, -1);
}
- if (battle_config.clear_unit_ondeath || clrtype != 1) //Clrtype 1 = died.
+ if (clrtype == 1 && battle_config.clear_unit_ondeath && //Clrtype 1 = died.
+ battle_config.clear_unit_ondeath&bl->type)
skill_clear_unitgroup(bl); // スキルユニットグループの削除
if (bl->type&BL_CHAR) {
skill_unit_move(bl,gettick(),4);
@@ -1639,7 +1640,7 @@ int unit_free(struct block_list *bl) {
map_freeblock_lock();
if( bl->prev ) //Players are supposed to logout with a "warp" effect.
unit_remove_map(bl, bl->type==BL_PC?3:0);
-
+
if( bl->type == BL_PC ) {
struct map_session_data *sd = (struct map_session_data*)bl;
if(status_isdead(bl))
@@ -1751,6 +1752,8 @@ int unit_free(struct block_list *bl) {
if(mob_is_clone(md->class_))
mob_clone_delete(md->class_);
}
+
+ skill_clear_unitgroup(bl);
status_change_clear(bl,1);
if (bl->type != BL_PC)
{ //Players are handled by map_quit