diff --git a/server/gameserver/buff/cond_add.cc b/server/gameserver/buff/cond_add.cc index 1b19c20e..d71a38cc 100644 --- a/server/gameserver/buff/cond_add.cc +++ b/server/gameserver/buff/cond_add.cc @@ -262,12 +262,19 @@ void CondAddBuff::ProcLimitTimeKillTarget() 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)); + auto buff_vars = std::make_shared>(); + buff_vars->push_back(target_uniid); owner->TryAddBuff(GetCaster().Get(), meta->_int_buff_param4, - skill_meta); + skill_meta, + nullptr, + buff_vars); + std::weak_ptr handler = std::get<1>(itr->second); + context->watch_targets.erase(itr); + c->GetTrigger()->RemoveEventHandler(handler); + } else { + context->watch_targets.erase(itr); } - context->watch_targets.erase(itr); } }); context->watch_targets[target->GetUniId()] = std::make_tuple(timer_wp, handler);