From 103c232fedbb76c380b46aad06b6666c1f6c9eac Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 20 Mar 2023 11:17:23 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/cond_add.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/gameserver/buff/cond_add.cc b/server/gameserver/buff/cond_add.cc index 65340e6d..60f6a721 100644 --- a/server/gameserver/buff/cond_add.cc +++ b/server/gameserver/buff/cond_add.cc @@ -251,7 +251,18 @@ void CondAddBuff::ProcLimitTimeKillTarget() kDieEvent, [this, context, target_uniid] (const a8::Args& args) { - + if (owner->dead) { + return; + } + auto itr = context->watch_targets.find(target_uniid); + if (itr != context->watch_targets.end()) { + Entity* e = owner->room->GetEntityByUniId(target_uniid); + if (e && e->IsCreature(owner->room)) { + Creature* c = (Creature*)e; + c->GetTrigger()->RemoveEventHandler(std::get<1>(itr->second)); + } + context->watch_targets.erase(itr); + } }); context->watch_targets[target->GetUniId()] = std::make_tuple(timer_wp, handler); }