summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2020-05-04 14:22:53 +0200
committerGitHub <noreply@github.com>2020-05-04 14:22:53 +0200
commit43b9a6987c5fc22c15c817a7c364393b49fb5f36 (patch)
treeb8b994d41faafbcdea5a7c2cac6212fe014b9ad6
parent5640ea4d8da3a3d6b358cc29ff575999d01d3295 (diff)
parent516475153e09e71b51392515539bf60dca06fd92 (diff)
downloadhercules-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.c15
-rw-r--r--src/map/skill.c2
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: {