diff options
author | malufett <malufett.eat.my.binaries@gmail.com> | 2015-02-13 17:15:56 +0800 |
---|---|---|
committer | malufett <malufett.eat.my.binaries@gmail.com> | 2015-02-13 17:15:56 +0800 |
commit | 00ca143b9f76620b7f68559bbdb4458e6936b639 (patch) | |
tree | 4307849df67ae1021eab2a35435ee802ba077a55 /src/map/battle.c | |
parent | 8ed5039de954c702c91e43aea9ba1347424d57a2 (diff) | |
download | hercules-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.c | 14 |
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 */ |