diff --git a/src/map/battle.cpp b/src/map/battle.cpp index 06aeadfc6b..69c26d4bc9 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -1459,13 +1459,22 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam case HW_GRAVITATION: #endif case SP_SOULEXPLOSION: + // Adjust these based on any possible PK damage rates. + if (battle_config.pk_mode == 1 && map_getmapflag(bl->m, MF_PVP) > 0) + damage = battle_calc_pk_damage(*src, *bl, damage, skill_id, flag); + return damage; //These skills bypass everything else. - } + } // Nothing can reduce the damage, but Safety Wall and Millennium Shield can block it completely. // So can defense sphere's but what the heck is that??? [Rytech] - if (skill_id == SJ_NOVAEXPLOSING && !(sc && (sc->data[SC_SAFETYWALL] || sc->data[SC_MILLENNIUMSHIELD]))) + if (skill_id == SJ_NOVAEXPLOSING && !(sc && (sc->data[SC_SAFETYWALL] || sc->data[SC_MILLENNIUMSHIELD]))) { + // Adjust this based on any possible PK damage rates. + if (battle_config.pk_mode == 1 && map_getmapflag(bl->m, MF_PVP) > 0) + damage = battle_calc_pk_damage(*src, *bl, damage, skill_id, flag); + return damage; + } if( sc && sc->count ) { if (!battle_status_block_damage(src, bl, sc, d, damage, skill_id, skill_lv)) // Statuses that reduce damage to 0. @@ -1818,7 +1827,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam } //End of caster SC_ check //PK damage rates - if (map_getmapflag(bl->m, MF_PVP) > 0) + if (battle_config.pk_mode == 1 && map_getmapflag(bl->m, MF_PVP) > 0) damage = battle_calc_pk_damage(*src, *bl, damage, skill_id, flag); if(battle_config.skill_min_damage && damage > 0 && damage < div_) {