Index: src/map/skill.c =================================================================== --- src/map/skill.c (revision 17294) +++ src/map/skill.c (working copy) @@ -367,13 +368,13 @@ struct status_change* sc; switch( skill_id ) { - case BA_APPLEIDUN: - #ifdef RENEWAL - hp = 100+5*skill_lv+5*(status_get_vit(src)/10); // HP recovery - #else - hp = 30+5*skill_lv+5*(status_get_vit(src)/10); // HP recovery - #endif - if( sd ) + case BA_APPLEIDUN: + #ifdef RENEWAL + hp = 100+5*skill_lv+5*(status_get_vit(src)/10); // HP recovery + #else + hp = 30+5*skill_lv+5*(status_get_vit(src)/10); // HP recovery + #endif + if( sd ) hp += 5*pc_checkskill(sd,BA_MUSICALLESSON); break; case PR_SANCTUARY: @@ -385,15 +386,24 @@ default: if (skill_lv >= battle_config.max_heal_lv) return battle_config.max_heal; - #ifdef RENEWAL - /** - * Renewal Heal Formula - * Formula: ( [(Base Level + INT) / 5] x 30 ) x (Heal Level / 10) x (Modifiers) + MATK - **/ - hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * skill_lv / 10; - #else - hp = ( status_get_lv(src) + status_get_int(src) ) / 8 * (4 + ( skill_id == AB_HIGHNESSHEAL ? ( sd ? pc_checkskill(sd,AL_HEAL) : 10 ) : skill_lv ) * 8); - #endif + if (skill_id == AB_HIGHNESSHEAL) { + /** + * Highness Heal Formula + * Formula: ( [ {(INT + Base Level)/8} X {(Heal Skill Level x 8) + 4} ] ) + **/ + hp = (status_get_int(src) + status_get_lv(src) / 8) * (sd ? pc_checkskill(sd,AL_HEAL) : 10); + hp *= ( 17 + 3 * skill_lv ) / 10; + } else { + #ifdef RENEWAL + /** + * Renewal Heal Formula + * Formula: ( [(Base Level + INT) / 5] x 30 ) x (Heal Level / 10) x (Modifiers) + MATK + **/ + hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * skill_lv / 10; + #else + hp = ( status_get_lv(src) + status_get_int(src) ) / 8 * (4 + ( skill_lv * 8)); + #endif + } if( sd && ((skill = pc_checkskill(sd, HP_MEDITATIO)) > 0) ) hp += hp * skill * 2 / 100; else if( src->type == BL_HOM && (skill = merc_hom_checkskill(((TBL_HOM*)src), HLIF_BRAIN)) > 0 ) @@ -423,8 +433,8 @@ } #ifdef RENEWAL - // MATK part of the RE heal formula [malufett] - // Note: in this part matk bonuses from items or skills are not applied + // MATK part of the RE heal formula [malufett] + // Note: in this part matk bonuses from items or skills are not applied switch( skill_id ) { case BA_APPLEIDUN: case PR_SANCTUARY: case NPC_EVILLAND: break; @@ -4928,12 +4981,8 @@ **/ case AB_HIGHNESSHEAL: { - int heal = skill_calc_heal(src, bl, (skill_id == AB_HIGHNESSHEAL)?AL_HEAL:skill_id, (skill_id == AB_HIGHNESSHEAL)?10:skill_lv, true); + int heal = skill_calc_heal(src, bl, skill_id, skill_lv, true); int heal_get_jobexp; - //Highness Heal: starts at 1.7 boost + 0.3 for each level - if( skill_id == AB_HIGHNESSHEAL ) { - heal = heal * ( 17 + 3 * skill_lv ) / 10; - } if( status_isimmune(bl) || (dstmd && (dstmd->class_ == MOBID_EMPERIUM || mob_is_battleground(dstmd))) || (dstsd && pc_ismadogear(dstsd)) )//Mado is immune to heal @@ -4942,8 +4991,7 @@ if( sd && dstsd && sd->status.partner_id == dstsd->status.char_id && (sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.sex == 0 ) heal = heal*2; - if( tsc && tsc->count ) - { + if( tsc && tsc->count ) { if( tsc->data[SC_KAITE] && !(sstatus->mode&MD_BOSS) ) { //Bounce back heal if (--tsc->data[SC_KAITE]->val2 <= 0)