From 1e8223a21236bce8f13074d943f8c2055eaaa726 Mon Sep 17 00:00:00 2001 From: Haru Date: Sat, 14 Mar 2015 04:02:57 +0100 Subject: Fixed a script function related memory leak on mapserver shutdown - If a script function was running when the server is shut down, the memory allocated by its local variables would not get freed. - Special thanks to Ind. Signed-off-by: Haru --- src/map/script.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src/map') diff --git a/src/map/script.c b/src/map/script.c index 235b7b8d5..39f8a7b63 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -3387,15 +3387,13 @@ void script_free_code(struct script_code* code) { nullpo_retv(code); - if( code->instances ) + if (code->instances) script->stop_instances(code); - else { - script->free_vars(code->local.vars); - if( code->local.arrays ) - code->local.arrays->destroy(code->local.arrays,script->array_free_db); - } - aFree( code->script_buf ); - aFree( code ); + script->free_vars(code->local.vars); + if (code->local.arrays) + code->local.arrays->destroy(code->local.arrays,script->array_free_db); + aFree(code->script_buf); + aFree(code); } /// Creates a new script state. -- cgit v1.2.3-70-g09d2 From 51445eeb902f9b798e62635c44bac329f2a20c43 Mon Sep 17 00:00:00 2001 From: malufett Date: Sun, 15 Mar 2015 07:30:50 +0800 Subject: Fixed Bug#8569 -http://hercules.ws/board/tracker/issue-8569-asura-strike/?gopid=24715#entry24715 Signed-off-by: malufett --- src/map/battle.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/map') diff --git a/src/map/battle.c b/src/map/battle.c index e4f4e6679..f9472692e 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -5273,6 +5273,10 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list ATK_ADD(10*sd->status.inventory[index].refine); } } + //Card Fix, tsd side + if ( tsd ) { //if player on player then it was already measured above + wd.damage = battle->calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage, (flag.lh ? 1 : 0), wd.flag); + } #endif if( flag.infdef ) { //Plants receive 1 damage when hit -- cgit v1.2.3-70-g09d2 From fb1a845c719976f72f2dfb590f72fe3e87e01185 Mon Sep 17 00:00:00 2001 From: malufett Date: Sun, 15 Mar 2015 08:23:31 +0800 Subject: Fixed Bug#8545 -http://hercules.ws/board/tracker/issue-8545-magnum-break/?gopid=24608#entry24608 Signed-off-by: malufett --- src/map/skill.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/map') diff --git a/src/map/skill.c b/src/map/skill.c index 31b8384db..a351425e1 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3947,7 +3947,7 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1 case MS_MAGNUM: if( flag&1 ) { //Damage depends on distance, so add it to flag if it is > 1 - skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag|distance_bl(src, bl)); + skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag|SD_ANIMATION|distance_bl(src, bl)); } break; -- cgit v1.2.3-70-g09d2