From f3042168a45531bbb7e7ff1b1dbacf932fd9266b Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 2 Feb 2024 16:20:18 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 0e6e4e77..2eba5ff2 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1979,19 +1979,23 @@ void Room::ShuaPlane() plane.curr_pos = plane.start_point; last_player_jump_pos = plane.curr_pos; - for (auto& pair : human_hash_) { - pair.second->MustBeAddBuff(pair.second, FLY_BUFFID); - pair.second->ResetAllSkillCd(); - App::Instance()->verify_set_pos = 1; - pair.second->GetMutablePos().FromGlmVec3(plane.curr_pos); - App::Instance()->verify_set_pos = 0; - pair.second->GetMovement()->ClearPath(); - pair.second->SetAttackDir(plane.dir); - pair.second->SetMoveDir(plane.dir); - grid_service->MoveCreature(pair.second); - pair.second->AddToNewObjects(pair.second); - pair.second->ActiveAllSkill(); - } + TraverseHumanList + ( + [this] (Human* ele_hum) -> bool + { + ele_hum->MustBeAddBuff(ele_hum, FLY_BUFFID); + ele_hum->ResetAllSkillCd(); + App::Instance()->verify_set_pos = 1; + ele_hum->GetMutablePos().FromGlmVec3(plane.curr_pos); + App::Instance()->verify_set_pos = 0; + ele_hum->GetMovement()->ClearPath(); + ele_hum->SetAttackDir(plane.dir); + ele_hum->SetMoveDir(plane.dir); + grid_service->MoveCreature(ele_hum); + ele_hum->AddToNewObjects(ele_hum); + ele_hum->ActiveAllSkill(); + return true; + }); } RoomObstacle* Room::InternalCreateObstacle(int id, float x, float y, float z,