Inquisetor90
Members-
Content Count
4 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Inquisetor90
-
Ok, good luck testing it with regards to the following! Damage - Hopefully it does over 10000 damage now with all stats at 120 for a RK. Size Racial (test with hydra and thara frog cards.) Elemental Defense Flee/Hit Perfect Dodge Range (Test with defending aura, horn card and pneuma). Base level (100% at level 150)
-
RE_LVL_MDMOD(150); Replace that with RE_LVL_DMOD(150); I forgotten that the RE_LVL_MDMOD relied on the md.damage variable instead of wd.damage.
-
The skill_db.txt change was correct. So we'll move onto /src/map/battle.c (link provided but this including the matching line numbers can change at any time). First Step: Remove the part I just bolded in red out. You can ctrl+f that. 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; Ok, now in struct Damage battle_calc_weapon_attack( Under the boolean if (flag.hit && !flag.infdef) //No need to do the math for plants { //Hitting attack In the switch statement //Constant/misc additions from skills switch (skill_id) { <-- line 4679 case KO_MAKIBISHI: wd.damage = 20 * skill_lv; break; case KO_SETSUDAN: if( tsc && tsc->data[sC_SOULLINK] ){ ATK_ADDRATE(200*tsc->data[sC_SOULLINK]->val1); status_change_end(target,SC_SOULLINK,INVALID_TIMER); } break; <-- line 4763 case RK_DRAGONBREATH: case RK_DRAGONBREATH_WATER: wd.damage = ((status_get_hp(src)/50) + (status_get_max_sp(src) / 4)) * skill_lv; RE_LVL_MDMOD(150); if (sd) wd.damage = wd.damage * (95 + 5 * pc->checkskill(sd,RK_DRAGONTRAINING)) / 100; break; } <--line 4764 #ifndef RENEWAL //Div fix. damage_div_fix(wd.damage, wd.div_); The blue bit is what you add. Like I said this is only a temporary fix (not even perfect) as I don't know how size/ele/race codes will modify it by putting it there. The skill_db.txt already states that dragon breath has a range of 9 hence it should be ranged/LONG skill without needed to change it in the source. Otherwise alternatively change that to -9 (that's what AC_SHOWER looks like) and see whether it'll work.
-
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.