From 290a5c8b93c7361c80e8328197c5a25dcf5aebce Mon Sep 17 00:00:00 2001 From: shennetsind Date: Sun, 11 Dec 2011 23:44:35 +0000 Subject: Renewal Weapon MATK boost fix, bugreport:5115 Fixed Renewal DEF (r15051) char/short issue git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15066 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/battle.c | 10 +++++++++- src/map/status.c | 7 +++++-- src/map/status.h | 6 +++++- 3 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/map/battle.c b/src/map/battle.c index 8b0aa22fb..0df68a572 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2092,7 +2092,11 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo if (!flag.idef || !flag.idef2) { //Defense reduction short vit_def; +#if RRMODE + short def1 = status_get_def(target); //Don't use tstatus->def1 due to skill timer reductions. +#else signed char def1 = status_get_def(target); //Don't use tstatus->def1 due to skill timer reductions. +#endif short def2 = (short)tstatus->def2; if( sd ) @@ -2708,7 +2712,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list * -> statusMATK holds the %Matk modifier stuff from earlier and lastly: * -> the mdef part is not applied at this point, but later. **/ //1:bugreport:5101 //1:bugreport:5101 - MATK_ADD((1+sstatus->matk_max) * 2 + 15/10 * sstatus->matk_min + rand()% ( sstatus->matk_max + (1 + (sstatus->matk_max*sstatus->wlv) / 10 * 2 * 10/15 * sstatus->matk_min ) )); + MATK_ADD((1+sstatus->matk_max) * 2 + 15/10 * sstatus->matk_min + rand()% ( sstatus->matk_max + (1 + (sstatus->matk_max*sstatus->wlv) / 10 * 2 + 10/15 * sstatus->matk_min ) )); #else //Ancient MATK Appliance if (sstatus->matk_max > sstatus->matk_min) { MATK_ADD(sstatus->matk_min+rand()%(1+sstatus->matk_max-sstatus->matk_min)); @@ -3021,7 +3025,11 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list } if(!flag.imdef){ +#if RRMODE + short mdef = tstatus->mdef; +#else char mdef = tstatus->mdef; +#endif int mdef2= tstatus->mdef2; if(sd) { i = sd->ignore_mdef[is_boss(target)?RC_BOSS:RC_NONBOSS]; diff --git a/src/map/status.c b/src/map/status.c index dd528660b..ce286d89a 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4782,8 +4782,11 @@ struct status_data *status_get_base_status(struct block_list *bl) return NULL; } } - -signed char status_get_def(struct block_list *bl) +#if RRMODE + short status_get_def(struct block_list *bl) +#else + signed char status_get_def(struct block_list *bl) +#endif { struct unit_data *ud; struct status_data *status = status_get_status_data(bl); diff --git a/src/map/status.h b/src/map/status.h index 4bf0b627d..27d60b5a9 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -1494,7 +1494,11 @@ int status_get_lv(struct block_list *bl); #define status_get_luk(bl) status_get_status_data(bl)->luk #define status_get_hit(bl) status_get_status_data(bl)->hit #define status_get_flee(bl) status_get_status_data(bl)->flee -signed char status_get_def(struct block_list *bl); +#if RRMODE + short status_get_def(struct block_list *bl); +#else + signed char status_get_def(struct block_list *bl); +#endif #define status_get_mdef(bl) status_get_status_data(bl)->mdef #define status_get_flee2(bl) status_get_status_data(bl)->flee2 #define status_get_def2(bl) status_get_status_data(bl)->def2 -- cgit v1.2.3-60-g2f50