From 1dd8f371e08736dade67b25a512199867619bf50 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 10 Apr 2023 15:58:46 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/cond_add.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/server/gameserver/buff/cond_add.cc b/server/gameserver/buff/cond_add.cc index 82d4ad41..0273c1a2 100644 --- a/server/gameserver/buff/cond_add.cc +++ b/server/gameserver/buff/cond_add.cc @@ -257,14 +257,16 @@ void CondAddBuff::ProcLimitTimeKillTarget() time_limit * SERVER_FRAME_RATE, [this, context, target_uniid] (int event, const a8::Args* args) { - 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)); + if (a8::TIMER_EXEC_EVENT == event) { + 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.erase(itr); } }, &xtimer_attacher);