diff options
author | Michieru <michieru@0-mail.com> | 2014-03-04 14:12:57 -0800 |
---|---|---|
committer | Michieru <michieru@0-mail.com> | 2014-03-04 14:12:57 -0800 |
commit | d554d61417a6e7f48de96efcc69872e0b7b65da3 (patch) | |
tree | a2ec477e900229cdb43eb8fbb3a79866bde6466b /src/map/battle.c | |
parent | 15a4395a2f2de8629a21b08ac6b9ec363ad94de3 (diff) | |
download | hercules-d554d61417a6e7f48de96efcc69872e0b7b65da3.tar.gz hercules-d554d61417a6e7f48de96efcc69872e0b7b65da3.tar.bz2 hercules-d554d61417a6e7f48de96efcc69872e0b7b65da3.tar.xz hercules-d554d61417a6e7f48de96efcc69872e0b7b65da3.zip |
Fix bug 8036
http://hercules.ws/board/tracker/issue-8036-gate-of-hell-over-powered/
Fix bug 7074
http://hercules.ws/board/tracker/issue-7074-suragoh-issues/
Fix bug 6866
http://hercules.ws/board/tracker/issue-6866-gate-of-hell/?gopid=15411#entry15411
Remove cast, after cast and cool down of All Odin Power as aegis info.
All Odin Power is now watk and it's show the matk in the status window.
http://hercules.ws/board/tracker/issue-7715-odins-power-lvl-2/
Fix Insignia consume the item correctly and can't be cast on Land Protector.
Diffstat (limited to 'src/map/battle.c')
-rw-r--r-- | src/map/battle.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index e9e17708c..40f3d2482 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3220,6 +3220,14 @@ int battle_range_type(struct block_list *src, struct block_list *target, uint16 return BF_SHORT; return BF_LONG; } + + if (skill_id == SR_GATEOFHELL) { + if (skill_lv < 5) + return BF_SHORT; + else + return BF_LONG; + } + //based on used skill's range if (skill->get_range2(src, skill_id, skill_lv) < 5) return BF_SHORT; @@ -4441,8 +4449,11 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list if( !sd ) hitrate = cap_value(hitrate, 5, 95); #endif - if(rnd()%100 >= hitrate) + if(rnd()%100 >= hitrate){ wd.dmg_lv = ATK_FLEE; + if (skill_id == SR_GATEOFHELL) + flag.hit = 1;/* will hit with the special */ + } else flag.hit = 1; } //End hit/miss calculation @@ -4645,6 +4656,12 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list } #endif switch(skill_id){ + case SR_GATEOFHELL: + if (wd.dmg_lv != ATK_FLEE) + ATK_RATE(battle->calc_skillratio(BF_WEAPON, src, target, skill_id, skill_lv, skillratio, wflag)); + else + wd.dmg_lv = ATK_DEF; + break; #ifdef RENEWAL case NJ_TATAMIGAESHI: ATK_RATE(200); |