From 03e289906edcb5fe422fafafea5388b225123feb Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 3 Oct 2022 09:56:36 +0800 Subject: [PATCH] 1 --- server/gameserver/trigger.cc | 7 ++++++- server/gameserver/trigger.h | 11 +++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/server/gameserver/trigger.cc b/server/gameserver/trigger.cc index 8f5f7393..18596536 100644 --- a/server/gameserver/trigger.cc +++ b/server/gameserver/trigger.cc @@ -371,7 +371,12 @@ void Trigger::RemoveBuffs(int cond, std::vector& buffids) } } -void Trigger::AddListener(int event_id, std::function cb) +std::weak_ptr Trigger::AddListener(int event_id, std::function cb) +{ + +} + +void Trigger::RemoveEventHandler(std::weak_ptr handler) { } diff --git a/server/gameserver/trigger.h b/server/gameserver/trigger.h index 6de64b8f..409d0a8e 100644 --- a/server/gameserver/trigger.h +++ b/server/gameserver/trigger.h @@ -6,6 +6,12 @@ namespace MetaData struct Equip; }; +struct EventHandler +{ + std::function cb; + list_head entry; +}; + class Weapon; class Creature; class Skill; @@ -28,7 +34,8 @@ public: void Die(); void ActiveBuff(MetaData::Buff* buff_meta); void DeactiveBuff(MetaData::Buff* buff_meta); - void AddListener(int event_id, std::function cb); + std::weak_ptr AddListener(int event_id, std::function cb); + void RemoveEventHandler(std::weak_ptr handler); private: void TraverseCondBuffs(int cond, std::function func); @@ -41,5 +48,5 @@ public: private: Creature* owner_ = nullptr; int kill_num_ = 0; - std::map> listeners_hash_; + std::map listeners_hash_; };