diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-04-17 23:54:49 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-04-17 23:54:49 +0000 |
commit | 6ed44f7303f11ed2de589fca48b19092c2738409 (patch) | |
tree | 7240e16cfb7e7a3b0e0433aab2e0c8c741a5b2bd /src/map/unit.c | |
parent | b48816ba37affa20998a64300af083faa6c70127 (diff) | |
download | hercules-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.c | 7 |
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
|