From ed15563c944aae732494d9a243a0591d06e04ec1 Mon Sep 17 00:00:00 2001 From: malufett Date: Tue, 18 Jun 2013 04:39:41 -0700 Subject: Fixed Bug#7396 -map crash in using GN_BLOOD_SUCKER. --- src/map/battle.c | 24 +++++++++++------------- src/map/status.c | 4 ++-- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/map/battle.c b/src/map/battle.c index 731c6f618..ace947aca 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -4345,15 +4345,11 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list wd.damage = sstatus->max_hp* 9/100; wd.damage2 = 0; break; - -#ifdef RENEWAL - case MO_EXTREMITYFIST: // [malufett] - wd.damage = battle->calc_base_damage(src, target, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, EQI_HAND_R, (sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|8, wd.flag); - // first value is still not confirm. - wd.damage = status_get_sp(src) + 10 * status_get_sp(src) * wd.damage / 100 + 8 * wd.damage; - flag.tdef = 1; - break; case NJ_ISSEN: // [malufett] +#ifndef RENEWAL + wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35); + wd.damage2 = 0; +#else { short totaldef = status_get_total_def(target); i = 0; @@ -4367,12 +4363,14 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list ATK_RATE(50); flag.idef = 1; } -#else - - wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35); - wd.damage2 = 0; -#endif break; + case MO_EXTREMITYFIST: // [malufett] + wd.damage = battle->calc_base_damage(src, target, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, EQI_HAND_R, (sc && sc->data[SC_MAXIMIZEPOWER]?1:0)|8, wd.flag); + // first value is still not confirm. + wd.damage = status_get_sp(src) + 10 * status_get_sp(src) * wd.damage / 100 + 8 * wd.damage; + flag.tdef = 1; +#endif + break; #ifndef RENEWAL case LK_SPIRALPIERCE: case ML_SPIRALPIERCE: diff --git a/src/map/status.c b/src/map/status.c index 992cc0855..55b79fff7 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -8329,10 +8329,10 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val break; case SC_BLOOD_SUCKER: { - struct block_list *src = iMap->id2bl(sce->val2); + struct block_list *src = iMap->id2bl(val2); val3 = 1; if(src) - val3 = 200 + 100 * sce->val1 + status_get_int(src); + val3 = 200 + 100 * val1 + status_get_int(src); val4 = tick / 1000; tick_time = 1000; // [GodLesZ] tick time } -- cgit v1.2.3-70-g09d2