diff options
author | Haru <haru@dotalux.com> | 2020-05-04 14:22:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-04 14:22:53 +0200 |
commit | 43b9a6987c5fc22c15c817a7c364393b49fb5f36 (patch) | |
tree | b8b994d41faafbcdea5a7c2cac6212fe014b9ad6 | |
parent | 5640ea4d8da3a3d6b358cc29ff575999d01d3295 (diff) | |
parent | 516475153e09e71b51392515539bf60dca06fd92 (diff) | |
download | hercules-43b9a6987c5fc22c15c817a7c364393b49fb5f36.tar.gz hercules-43b9a6987c5fc22c15c817a7c364393b49fb5f36.tar.bz2 hercules-43b9a6987c5fc22c15c817a7c364393b49fb5f36.tar.xz hercules-43b9a6987c5fc22c15c817a7c364393b49fb5f36.zip |
Merge pull request #1304 from inhyositsu/master
Fix some skills bugs
-rw-r--r-- | src/map/battle.c | 15 | ||||
-rw-r--r-- | src/map/skill.c | 2 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 40c645cf7..c8cd71b94 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3750,7 +3750,7 @@ static struct Damage battle_calc_magic_attack(struct block_list *src, struct blo if (sc){ if( sc->data[SC_TELEKINESIS_INTENSE] && s_ele == ELE_GHOST ) - ad.damage += sc->data[SC_TELEKINESIS_INTENSE]->val3; + ad.damage += ad.damage * sc->data[SC_TELEKINESIS_INTENSE]->val3 / 100; } switch(skill_id){ case MG_FIREBOLT: @@ -4124,13 +4124,6 @@ static struct Damage battle_calc_misc_attack(struct block_list *src, struct bloc case NPC_EVILLAND: md.damage = skill->calc_heal(src,target,skill_id,skill_lv,false); break; - case RK_DRAGONBREATH: - case RK_DRAGONBREATH_WATER: - md.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv; - RE_LVL_MDMOD(150); - if (sd) md.damage = md.damage * (95 + 5 * pc->checkskill(sd,RK_DRAGONTRAINING)) / 100; - md.flag |= BF_LONG|BF_WEAPON; - break; /** * Ranger **/ @@ -4958,6 +4951,12 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl break; } break; + case RK_DRAGONBREATH: + case RK_DRAGONBREATH_WATER: + wd.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv; + wd.damage = wd.damage * status->get_lv(src) / 150; + if (sd) wd.damage = wd.damage * (95 + 5 * pc->checkskill(sd, RK_DRAGONTRAINING)) / 100; + break; default: { i = (flag.cri diff --git a/src/map/skill.c b/src/map/skill.c index 6f6effddc..0ead96472 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5019,7 +5019,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl if( (tsc = status->get_sc(bl)) && (tsc->data[SC_HIDING] )) { clif->skill_nodamage(src,src,skill_id,skill_lv,1); } else - skill->attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); + skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); } break; case NPC_SELFDESTRUCTION: { |