diff --git a/src/MobManager.cpp b/src/MobManager.cpp index d54795b..c02272e 100644 --- a/src/MobManager.cpp +++ b/src/MobManager.cpp @@ -1731,6 +1731,10 @@ void MobManager::enterCombat(CNSocket *sock, Mob *mob) { for (auto& pwr : MobPowers) if (pwr.skillType == NanoManager::SkillTable[skillID].skillType) pwr.handle(mob, targetData, skillID, NanoManager::SkillTable[skillID].durationTime[0], NanoManager::SkillTable[skillID].powerIntensity[0]); + + for (NPCEvent& event : NPCManager::NPCEvents) // trigger an ON_COMBAT + if (event.trigger == ON_COMBAT && event.npcType == mob->appearanceData.iNPCType) + event.handler(sock, mob); } #pragma region Mob Powers diff --git a/src/NPCManager.hpp b/src/NPCManager.hpp index b21a8e6..da6ea8c 100644 --- a/src/NPCManager.hpp +++ b/src/NPCManager.hpp @@ -12,9 +12,9 @@ #define RESURRECT_HEIGHT 400 -// placeholder; there's only one trigger type right now enum Trigger { - ON_KILLED + ON_KILLED, + ON_COMBAT }; typedef void (*NPCEventHandler)(CNSocket*, BaseNPC*);