From cc30d9df09cacb55fbfcb7fdb88bd8a59b4a9427 Mon Sep 17 00:00:00 2001 From: aleos89 Date: Mon, 23 May 2016 14:55:49 -0400 Subject: [PATCH] Resolved some map blocks not getting freed * Fixes Bio Explosion, Suicide Bombing, and Summon Legion not properly freeing map blocks. Thanks to @Tokeiburu! --- src/map/skill.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/map/skill.c b/src/map/skill.c index a2fbdcfb9d..333f38c856 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6905,8 +6905,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|i, skill_castend_damage_id); - if(map_addblock(src)) + if(map_addblock(src)) { + map_freeblock_unlock(); return 1; + } status_damage(src, src, sstatus->max_hp,0,0,1); break; @@ -10632,7 +10634,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui int maxcount = qty[skill_lv-1]; i_slave = map_foreachinmap(skill_check_condition_mob_master_sub ,hd->bl.m, BL_MOB, hd->bl.id, summons[skill_lv-1], skill_id, &c); - if(c >= maxcount) return 0; //max qty already spawned + if(c >= maxcount) { + map_freeblock_unlock(); + return 0; //max qty already spawned + } for(i_slave=0; i_slavem, src->x, src->y, status_get_name(src), summons[skill_lv - 1], "", SZ_SMALL, AI_ATTACK);