From 9616288511001033f6692846bd71820bd47b3adb Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 24 Mar 2023 18:30:02 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 9 +++++---- server/gameserver/roomobstacle.cc | 2 +- server/gameserver/weakptr.cc | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index d7ce6993..b4627b40 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2888,10 +2888,11 @@ void Creature::RemoveSkillObstacle(const mt::Skill* skill_meta) } } if (skill_meta && skill_meta->GetMagicId() == MAGIC_20301_XL) { - int save_num = skill_meta->_number_meta->number(); - while (del_obs.size() > save_num) { - del_obs[0].Get()->Destory(); - del_obs.erase(del_obs.begin()); + int save_num = skill_meta->_number_meta->number() * 2 - 2; + if (del_obs.size() > save_num & save_num > 0) { + for (int i = 0; i < del_obs.size() - save_num; ++i) { + del_obs[i].Get()->Destory(); + } } } else { for (auto ob : del_obs) { diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index 93c05921..fcc1a6cb 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -882,10 +882,10 @@ void RoomObstacle::ActiveMedicalStation() } }//end if if (hit) { - RemoveSameSkillObstacle(); } }, &xtimer_attacher); + RemoveSameSkillObstacle(); } void RoomObstacle::ForceGridList() diff --git a/server/gameserver/weakptr.cc b/server/gameserver/weakptr.cc index ac980449..0f2550f1 100644 --- a/server/gameserver/weakptr.cc +++ b/server/gameserver/weakptr.cc @@ -183,7 +183,7 @@ RoomObstacleWeakPtr&& RoomObstacleWeakPtr::operator=(RoomObstacleWeakPtr&& x) x.Detach(); } A8_ABORT(); - // return *this; + //return *this; } RoomObstacleWeakPtr::~RoomObstacleWeakPtr()