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);