From 99dfdb022a10c33b7344c097ae9df1355b1cc7f0 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 2 Feb 2024 16:03:59 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 211f9fa7..d4244b63 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -959,20 +959,21 @@ Human* Room::GetWatchWarTarget(Human* hum) std::vector players; std::vector humans; - for (auto& pair : human_hash_) { - if (pair.first != hum->GetUniId() && - !pair.second->dead && - !a8::HasBitFlag(pair.second->status, CS_Disable)) { - if (pair.second->IsOb()) { - continue; - } - if (pair.second->IsPlayer()) { - players.push_back(pair.second); - } else { - humans.push_back(pair.second); - } - } - } + TraverseHumanList + ( + [hum, &players, &humans] (Human* ele_hum) -> bool + { + if (ele_hum->GetUniId() != hum->GetUniId() && + !ele_hum->dead && + !a8::HasBitFlag(ele_hum->status, CS_Disable)) { + if (ele_hum->IsPlayer()) { + players.push_back(ele_hum); + } else { + humans.push_back(ele_hum); + } + } + return true; + }); Human* target = nullptr; if (!players.empty()) {