Fixed mobskill_event not triggering with plant mode monsters (#5264)

This commit is contained in:
Daegaladh
2020-08-06 00:32:42 +02:00
committed by GitHub
parent ec479635c6
commit 36b9b942c9

View File

@@ -276,10 +276,18 @@ void battle_damage(struct block_list *src, struct block_list *target, int64 dama
if (dmg_lv > ATK_BLOCK && attack_type)
skill_counter_additional_effect(src, target, skill_id, skill_lv, attack_type, tick);
// This is the last place where we have access to the actual damage type, so any monster events depending on type must be placed here
if (target->type == BL_MOB && damage && (attack_type&BF_NORMAL)) {
// Monsters differentiate whether they have been attacked by a skill or a normal attack
if (target->type == BL_MOB) {
struct mob_data* md = BL_CAST(BL_MOB, target);
md->norm_attacked_id = md->attacked_id;
if (!status_isdead(target) && src != target) {
if (damage > 0 )
mobskill_event(md, src, tick, attack_type);
if (skill_id)
mobskill_event(md, src, tick, MSC_SKILLUSED|(skill_id<<16));
}
if (damage && (attack_type&BF_NORMAL)) // Monsters differentiate whether they have been attacked by a skill or a normal attack
md->norm_attacked_id = md->attacked_id;
}
map_freeblock_unlock();
}
@@ -1708,12 +1716,6 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
damage = div_;
}
if( bl->type == BL_MOB && !status_isdead(bl) && src != bl) {
if (damage > 0 )
mobskill_event((TBL_MOB*)bl,src,gettick(),flag);
if (skill_id)
mobskill_event((TBL_MOB*)bl,src,gettick(),MSC_SKILLUSED|(skill_id<<16));
}
if (sd && pc_ismadogear(sd)) {
short element = skill_get_ele(skill_id, skill_lv);