summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
authormalufett <malufett.eat.my.binaries@gmail.com>2015-02-13 17:15:56 +0800
committermalufett <malufett.eat.my.binaries@gmail.com>2015-02-13 17:15:56 +0800
commit00ca143b9f76620b7f68559bbdb4458e6936b639 (patch)
tree4307849df67ae1021eab2a35435ee802ba077a55 /src/map/battle.c
parent8ed5039de954c702c91e43aea9ba1347424d57a2 (diff)
downloadhercules-00ca143b9f76620b7f68559bbdb4458e6936b639.tar.gz
hercules-00ca143b9f76620b7f68559bbdb4458e6936b639.tar.bz2
hercules-00ca143b9f76620b7f68559bbdb4458e6936b639.tar.xz
hercules-00ca143b9f76620b7f68559bbdb4458e6936b639.zip
Fixed Bug#8531
-http://hercules.ws/board/tracker/issue-8531-skill-rapid-smiting-bug/?gopid=24563#entry24563 Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
Diffstat (limited to 'src/map/battle.c')
-rw-r--r--src/map/battle.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 1fc7f0bc5..37e13a83f 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -4265,6 +4265,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
wd.div_ = tstatus->size + 2 + ( (rnd()%100 < 50-tstatus->size*10) ? 1 : 0 );
break;
#ifdef RENEWAL
+ case PA_SHIELDCHAIN:
case NJ_KUNAI:
case HW_MAGICCRASHER:
case NJ_SYURIKEN:
@@ -4666,9 +4667,10 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
break;
}
break;
+
+ case PA_SHIELDCHAIN:
#endif
case CR_SHIELDBOOMERANG:
- case PA_SHIELDCHAIN:
wd.damage = sstatus->batk;
if (sd) {
int damagevalue = 0;
@@ -4785,6 +4787,16 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
break;
#ifdef RENEWAL
+ case PA_SHIELDCHAIN:
+ if ( sd ) {
+ short index = sd->equip_index[EQI_HAND_L];
+ if ( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_ARMOR ) {
+ ATK_ADD(sd->inventory_data[index]->weight / 10 + 4 * sd->status.inventory[index].refine);
+ }
+ } else
+ ATK_ADD(sstatus->rhw.atk2); //Else use Atk2
+ ATK_RATE(battle->calc_skillratio(BF_WEAPON, src, target, skill_id, skill_lv, skillratio, wflag));
+ break;
case NJ_TATAMIGAESHI:
ATK_RATE(200);
/* Fall through */