From 1eae20f2629256ac88c24748c42b9a58fb8043bd Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 6 Nov 2023 19:15:16 +0800 Subject: [PATCH 1/2] 1 --- server/gameserver/frameevent.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/gameserver/frameevent.cc b/server/gameserver/frameevent.cc index e18b55f4..d780855c 100644 --- a/server/gameserver/frameevent.cc +++ b/server/gameserver/frameevent.cc @@ -183,7 +183,7 @@ void FrameEvent::AddExplosionEx(CreatureWeakPtr& sender, int item_id, Position b p.set_player_id(sender.Get()->GetUniId()); #endif p.set_effect(effect); - p.set_effect(bullet_uniid); + p.set_bullet_uniid(bullet_uniid); } { std::set grid_list; From 8e974d5de90c5f9c064e4e4fe56b9bd3f0e7ee43 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 7 Nov 2023 11:26:37 +0800 Subject: [PATCH 2/2] 1 --- server/gameserver/buff/callfunc.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 46fbe625..92a292aa 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -1071,7 +1071,7 @@ void CallFuncBuff::RangeHoldBuff() } } }; - owner->room->xtimer.SetIntervalWpEx + auto check_timer = owner->room->xtimer.SetIntervalWpEx ( SERVER_FRAME_RATE, [this, context, on_enter, on_stay, on_leave, check_cb] @@ -1086,8 +1086,9 @@ void CallFuncBuff::RangeHoldBuff() event_handlers_.push_back(owner->GetTrigger()->AddListener ( kDieEvent, - [this, context] (const a8::Args& args) mutable + [this, context, check_timer] (const a8::Args& args) mutable { + owner->room->xtimer.Delete(check_timer); for (auto& pair : context->in_human_infos) { for (int buff_uniid : pair.second.buff_uniids) { if (pair.second.c.Get()) { @@ -1095,6 +1096,7 @@ void CallFuncBuff::RangeHoldBuff() } } } + context->in_human_infos.clear(); } )); }