Inquisetor90
New member
- Messages
- 4
- Points
- 0
- Emulator
Related to Bug issue 8029
In /db/re/skill_db.txt you set RK_DRAGONBREATH as weapon from misc. I wonder whether md.damage (a misc damage variable) has anything to do with it?
Note that there is no wd.damage variable in /src/map/battle.c for RK_DRAGONBREATH. The damage of RK_DRAGONBREATH is determined by the variable md.damage.
Also note that wd.damage and md.damage exists in two different functions.
This in the function battle_calc_misc_attack
https://github.com/HerculesWS/Hercules/blob/master/src/map/battle.c
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;
End of this function has
return md;
A lot of skills that I checked with in this very function were labelled as misc in /db/re/skill_db.txt instead of weapon. Examples include CR_ACIDDEMONSTRATION, NJ_ZENYNAGE, trap skills .etc.
Maybe we should test this out by changing NJ_ZENYNAGE in /db/re/skill_db.txt from misc to weapon and see whether it still works.
_____________
My suggestion:
Move dragon breath coding in battle.c to battle_calc_weapon_attack from battle_calc_misc_attack function and rename md.damage as wd.damage instead. Also, I think md.flag would become wd.flag.
In /db/re/skill_db.txt you set RK_DRAGONBREATH as weapon from misc. I wonder whether md.damage (a misc damage variable) has anything to do with it?
Note that there is no wd.damage variable in /src/map/battle.c for RK_DRAGONBREATH. The damage of RK_DRAGONBREATH is determined by the variable md.damage.
Also note that wd.damage and md.damage exists in two different functions.
This in the function battle_calc_misc_attack
https://github.com/HerculesWS/Hercules/blob/master/src/map/battle.c
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;
End of this function has
return md;
A lot of skills that I checked with in this very function were labelled as misc in /db/re/skill_db.txt instead of weapon. Examples include CR_ACIDDEMONSTRATION, NJ_ZENYNAGE, trap skills .etc.
Maybe we should test this out by changing NJ_ZENYNAGE in /db/re/skill_db.txt from misc to weapon and see whether it still works.
_____________
My suggestion:
Move dragon breath coding in battle.c to battle_calc_weapon_attack from battle_calc_misc_attack function and rename md.damage as wd.damage instead. Also, I think md.flag would become wd.flag.
Last edited by a moderator: