|
@@ -2156,7 +2156,6 @@ static int battle_blewcount_bonus(struct map_session_data *sd, uint16 skill_id)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-#ifdef ADJUST_SKILL_DAMAGE
|
|
|
|
static enum e_skill_damage_type battle_skill_damage_type( struct block_list* bl ){
|
|
static enum e_skill_damage_type battle_skill_damage_type( struct block_list* bl ){
|
|
switch( bl->type ){
|
|
switch( bl->type ){
|
|
case BL_PC:
|
|
case BL_PC:
|
|
@@ -2192,11 +2191,14 @@ static int battle_skill_damage_skill(struct block_list *src, struct block_list *
|
|
if (!(damage->caster&src->type))
|
|
if (!(damage->caster&src->type))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- if ((damage->map&1 && (!map_getmapflag(m, MF_PVP) && !map_flag_gvg2(m) && !map_getmapflag(m, MF_BATTLEGROUND) && !map_getmapflag(m, MF_SKILL_DAMAGE) && !map_getmapflag(m, MF_RESTRICTED))) ||
|
|
|
|
|
|
+ union u_mapflag_args args = {};
|
|
|
|
+
|
|
|
|
+ args.flag_val = SKILLDMG_MAX; // Check if it's enabled first
|
|
|
|
+ if ((damage->map&1 && (!map_getmapflag(m, MF_PVP) && !map_flag_gvg2(m) && !map_getmapflag(m, MF_BATTLEGROUND) && !map_getmapflag_sub(m, MF_SKILL_DAMAGE, &args) && !map_getmapflag(m, MF_RESTRICTED))) ||
|
|
(damage->map&2 && map_getmapflag(m, MF_PVP)) ||
|
|
(damage->map&2 && map_getmapflag(m, MF_PVP)) ||
|
|
(damage->map&4 && map_flag_gvg2(m)) ||
|
|
(damage->map&4 && map_flag_gvg2(m)) ||
|
|
(damage->map&8 && map_getmapflag(m, MF_BATTLEGROUND)) ||
|
|
(damage->map&8 && map_getmapflag(m, MF_BATTLEGROUND)) ||
|
|
- (damage->map&16 && map_getmapflag(m, MF_SKILL_DAMAGE)) ||
|
|
|
|
|
|
+ (damage->map&16 && map_getmapflag_sub(m, MF_SKILL_DAMAGE, &args)) ||
|
|
(map_getmapflag(m, MF_RESTRICTED) && damage->map&(8*map[m].zone)))
|
|
(map_getmapflag(m, MF_RESTRICTED) && damage->map&(8*map[m].zone)))
|
|
{
|
|
{
|
|
return damage->rate[battle_skill_damage_type(target)];
|
|
return damage->rate[battle_skill_damage_type(target)];
|
|
@@ -2215,8 +2217,10 @@ static int battle_skill_damage_skill(struct block_list *src, struct block_list *
|
|
static int battle_skill_damage_map(struct block_list *src, struct block_list *target, uint16 skill_id) {
|
|
static int battle_skill_damage_map(struct block_list *src, struct block_list *target, uint16 skill_id) {
|
|
int rate = 0;
|
|
int rate = 0;
|
|
struct map_data *mapd = &map[src->m];
|
|
struct map_data *mapd = &map[src->m];
|
|
|
|
+ union u_mapflag_args args = {};
|
|
|
|
|
|
- if (!mapd || !map_getmapflag(src->m, MF_SKILL_DAMAGE))
|
|
|
|
|
|
+ args.flag_val = SKILLDMG_MAX; // Check if it's enabled first
|
|
|
|
+ if (!mapd || !map_getmapflag_sub(src->m, MF_SKILL_DAMAGE, &args))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
// Damage rate for all skills at this map
|
|
// Damage rate for all skills at this map
|
|
@@ -2248,7 +2252,6 @@ static int battle_skill_damage(struct block_list *src, struct block_list *target
|
|
skill_id = skill_dummy2skill_id(skill_id);
|
|
skill_id = skill_dummy2skill_id(skill_id);
|
|
return battle_skill_damage_skill(src, target, skill_id) + battle_skill_damage_map(src, target, skill_id);
|
|
return battle_skill_damage_skill(src, target, skill_id) + battle_skill_damage_map(src, target, skill_id);
|
|
}
|
|
}
|
|
-#endif
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* Calculates Minstrel/Wanderer bonus for Chorus skills.
|
|
* Calculates Minstrel/Wanderer bonus for Chorus skills.
|
|
@@ -5103,9 +5106,7 @@ struct Damage battle_calc_weapon_final_atk_modifiers(struct Damage wd, struct bl
|
|
struct status_change *tsc = status_get_sc(target);
|
|
struct status_change *tsc = status_get_sc(target);
|
|
struct status_data *sstatus = status_get_status_data(src);
|
|
struct status_data *sstatus = status_get_status_data(src);
|
|
struct status_data *tstatus = status_get_status_data(target);
|
|
struct status_data *tstatus = status_get_status_data(target);
|
|
-#ifdef ADJUST_SKILL_DAMAGE
|
|
|
|
int skill_damage = 0;
|
|
int skill_damage = 0;
|
|
-#endif
|
|
|
|
|
|
|
|
//Reject Sword bugreport:4493 by Daegaladh
|
|
//Reject Sword bugreport:4493 by Daegaladh
|
|
if(wd.damage && tsc && tsc->data[SC_REJECTSWORD] &&
|
|
if(wd.damage && tsc && tsc->data[SC_REJECTSWORD] &&
|
|
@@ -5187,10 +5188,8 @@ struct Damage battle_calc_weapon_final_atk_modifiers(struct Damage wd, struct bl
|
|
}
|
|
}
|
|
|
|
|
|
// Skill damage adjustment
|
|
// Skill damage adjustment
|
|
-#ifdef ADJUST_SKILL_DAMAGE
|
|
|
|
if ((skill_damage = battle_skill_damage(src, target, skill_id)) != 0)
|
|
if ((skill_damage = battle_skill_damage(src, target, skill_id)) != 0)
|
|
ATK_ADDRATE(wd.damage, wd.damage2, skill_damage);
|
|
ATK_ADDRATE(wd.damage, wd.damage2, skill_damage);
|
|
-#endif
|
|
|
|
return wd;
|
|
return wd;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -5679,10 +5678,7 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl
|
|
*/
|
|
*/
|
|
struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag)
|
|
struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag)
|
|
{
|
|
{
|
|
- int i, nk;
|
|
|
|
-#ifdef ADJUST_SKILL_DAMAGE
|
|
|
|
- int skill_damage = 0;
|
|
|
|
-#endif
|
|
|
|
|
|
+ int i, nk, skill_damage = 0;
|
|
short s_ele = 0;
|
|
short s_ele = 0;
|
|
|
|
|
|
TBL_PC *sd;
|
|
TBL_PC *sd;
|
|
@@ -6396,10 +6392,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|
ad.damage = battle_calc_bg_damage(src,target,ad.damage,skill_id,ad.flag);
|
|
ad.damage = battle_calc_bg_damage(src,target,ad.damage,skill_id,ad.flag);
|
|
|
|
|
|
// Skill damage adjustment
|
|
// Skill damage adjustment
|
|
-#ifdef ADJUST_SKILL_DAMAGE
|
|
|
|
if ((skill_damage = battle_skill_damage(src,target,skill_id)) != 0)
|
|
if ((skill_damage = battle_skill_damage(src,target,skill_id)) != 0)
|
|
MATK_ADDRATE(skill_damage);
|
|
MATK_ADDRATE(skill_damage);
|
|
-#endif
|
|
|
|
|
|
|
|
battle_absorb_damage(target, &ad);
|
|
battle_absorb_damage(target, &ad);
|
|
|
|
|
|
@@ -6416,9 +6410,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|
*/
|
|
*/
|
|
struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag)
|
|
struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag)
|
|
{
|
|
{
|
|
-#ifdef ADJUST_SKILL_DAMAGE
|
|
|
|
int skill_damage = 0;
|
|
int skill_damage = 0;
|
|
-#endif
|
|
|
|
short i, nk;
|
|
short i, nk;
|
|
short s_ele;
|
|
short s_ele;
|
|
|
|
|
|
@@ -6792,10 +6784,8 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
|
|
md.damage = battle_calc_bg_damage(src,target,md.damage,skill_id,md.flag);
|
|
md.damage = battle_calc_bg_damage(src,target,md.damage,skill_id,md.flag);
|
|
|
|
|
|
// Skill damage adjustment
|
|
// Skill damage adjustment
|
|
-#ifdef ADJUST_SKILL_DAMAGE
|
|
|
|
if ((skill_damage = battle_skill_damage(src,target,skill_id)) != 0)
|
|
if ((skill_damage = battle_skill_damage(src,target,skill_id)) != 0)
|
|
md.damage += (int64)md.damage * skill_damage / 100;
|
|
md.damage += (int64)md.damage * skill_damage / 100;
|
|
-#endif
|
|
|
|
|
|
|
|
battle_absorb_damage(target, &md);
|
|
battle_absorb_damage(target, &md);
|
|
|
|
|