diff --git a/server/gameserver/buff/cond_add.cc b/server/gameserver/buff/cond_add.cc index 34ff3655..9f5e4b88 100644 --- a/server/gameserver/buff/cond_add.cc +++ b/server/gameserver/buff/cond_add.cc @@ -232,11 +232,11 @@ void CondAddBuff::ProcLimitTimeKillTarget() auto holder = std::make_shared ( - [this, context] (const a8::Args& args) + [owner = owner->GetWeakPtrRef(), context] (const a8::Args& args) mutable { - if (!owner->room->IsDestorying()) { + if (owner.Get() && !owner.Get()->room->IsDestorying()) { for (auto& pair : context->watch_targets) { - owner->GetTrigger()->RemoveEventHandler(std::get<1>(pair.second)); + owner.Get()->GetTrigger()->RemoveEventHandler(std::get<1>(pair.second)); } } });