Jump to content

Inquisetor90

Members
  • Content Count

    4
  • Joined

  • Last visited

Posts posted by Inquisetor90


  1. 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)


  2. 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.

  3. 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.

     

       
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.