diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index d655f01..b807924 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -10,6 +10,7 @@ #include "hero.h" #include "collider.h" #include "roomobstacle.h" +#include "trigger.h" void InternalShot(Creature* c, MetaData::Equip* weapon_meta, @@ -98,6 +99,7 @@ void InternalShot(Creature* c, Creature::Creature():MoveableEntity() { + trigger_ = new Trigger(this); weapons.reserve(MAX_WEAPON_NUM); for (size_t i = 0; i < MAX_WEAPON_NUM; ++i) { auto& weapon = a8::FastAppend(weapons); @@ -124,6 +126,7 @@ Creature::~Creature() } skill_hash_.clear(); ClearPassiveSkill(); + A8_SAFE_DELETE(trigger_); } bool Creature::HasBuffEffect(int buff_effect_id) diff --git a/server/gameserver/trigger.h b/server/gameserver/trigger.h index 1d52586..2d499c9 100644 --- a/server/gameserver/trigger.h +++ b/server/gameserver/trigger.h @@ -7,6 +7,7 @@ class Trigger { public: + Trigger(Creature* owner) { owner_ = owner; }; void Init(); void UnInit(); Creature* GetOwner() { return owner_; };