From eaa80bf3fba2fd552028d74abe6cae2e6b580dc0 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 1 Aug 2022 18:53:51 +0800 Subject: [PATCH] 1 --- server/gameserver/roomobstacle.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index c1ac10ff..e29fef13 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -812,8 +812,13 @@ void RoomObstacle::CalcTempPassObjects() RoomObstacle* obstacle = (RoomObstacle*)param.sender.GetUserData(); Room* room = obstacle->room; std::list del_objs; - for (auto& pair : *temp_pass_objects_) { - + for (auto& pair : *obstacle->temp_pass_objects_) { + if (!pair.second.Get() || !obstacle->TestCollision(room, pair.second.Get())) { + del_objs.push_back(pair.first); + } + } + for (int obj_uniid : del_objs) { + obstacle->temp_pass_objects_->erase(obj_uniid); } if (obstacle->temp_pass_objects_->empty()) { room->xtimer.DeleteTimer(room->xtimer.GetRunningTimer());