|
@@ -3891,6 +3891,14 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
|
|
skill_counter_additional_effect(src, bl, skill_id, skill_lv, dmg.flag, tick);
|
|
skill_counter_additional_effect(src, bl, skill_id, skill_lv, dmg.flag, tick);
|
|
} else
|
|
} else
|
|
battle_delay_damage(tick, dmg.amotion,src,bl,dmg.flag,skill_id,skill_lv,damage,dmg.dmg_lv,dmg.dmotion, additional_effects, false);
|
|
battle_delay_damage(tick, dmg.amotion,src,bl,dmg.flag,skill_id,skill_lv,damage,dmg.dmg_lv,dmg.dmotion, additional_effects, false);
|
|
|
|
+ } else {
|
|
|
|
+ // Trigger monster skill condition for damage skills with no amotion.
|
|
|
|
+ if (bl->type == BL_MOB && src != bl && !status_isdead(bl)) {
|
|
|
|
+ if (damage > 0)
|
|
|
|
+ mobskill_event(BL_CAST(BL_MOB, bl), src, tick, dmg.flag);
|
|
|
|
+ if (skill_id > 0)
|
|
|
|
+ mobskill_event(BL_CAST(BL_MOB, bl), src, tick, MSC_SKILLUSED | (skill_id << 16));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if (tsc && skill_id != NPC_EVILLAND && skill_id != SP_SOULEXPLOSION && skill_id != SJ_NOVAEXPLOSING
|
|
if (tsc && skill_id != NPC_EVILLAND && skill_id != SP_SOULEXPLOSION && skill_id != SJ_NOVAEXPLOSING
|
|
@@ -12454,7 +12462,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
status_change_end(src,SC_CURSEDCIRCLE_ATKER,INVALID_TIMER);
|
|
status_change_end(src,SC_CURSEDCIRCLE_ATKER,INVALID_TIMER);
|
|
}
|
|
}
|
|
|
|
|
|
- if (dstmd) { //Mob skill event for no damage skills (damage ones are handled in battle_calc_damage) [Skotlex]
|
|
|
|
|
|
+ if (dstmd) { //Mob skill event for no damage skills (damage ones are handled in battle_damage/skill_attack) [Skotlex]
|
|
mob_log_damage(dstmd, src, 0); //Log interaction (counts as 'attacker' for the exp bonus)
|
|
mob_log_damage(dstmd, src, 0); //Log interaction (counts as 'attacker' for the exp bonus)
|
|
mobskill_event(dstmd, src, tick, MSC_SKILLUSED|(skill_id<<16));
|
|
mobskill_event(dstmd, src, tick, MSC_SKILLUSED|(skill_id<<16));
|
|
}
|
|
}
|