From f1d8c8e37a3de3ea24b43b8dbccf4ee03c8f21b2 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 16 Oct 2023 15:46:13 +0800 Subject: [PATCH] 1 --- server/gameserver/new_hero_agent.cc | 1 + server/gameserver/room.cc | 20 +++++++++++--------- server/gameserver/room.h | 1 + 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/server/gameserver/new_hero_agent.cc b/server/gameserver/new_hero_agent.cc index 71698827..a7ca91d1 100644 --- a/server/gameserver/new_hero_agent.cc +++ b/server/gameserver/new_hero_agent.cc @@ -329,6 +329,7 @@ behaviac::EBTStatus HeroAgent::SearchEnemy(float range) } return true; }); + return behaviac::BT_RUNNING; } behaviac::EBTStatus HeroAgent::CoIdle(int min_val, int max_val) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 81e2be48..40cb819a 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1213,9 +1213,6 @@ Team* Room::NewTeam() void Room::TraversePlayerList(std::function func) { - if (!func) { - return; - } for (auto& pair : accountid_hash_) { if (pair.second) { func(pair.second); @@ -1225,9 +1222,6 @@ void Room::TraversePlayerList(std::function func) void Room::TraverseHumanList(std::function func) { - if (!func) { - return; - } for (auto& pair : human_hash_) { if (pair.second) { if (!func(pair.second)) { @@ -1237,11 +1231,19 @@ void Room::TraverseHumanList(std::function func) } } +void Room::TraverseAliveHumanList(std::function func) +{ + for (auto& pair : alive_human_hash_) { + if (pair.second) { + if (!func(pair.second)) { + break; + } + } + } +} + void Room::TraverseEntityList(std::function func) { - if (!func) { - return; - } for (auto& pair : uniid_hash_) { if (pair.second) { if (!func(pair.second)) { diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 7854fca7..dc330403 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -156,6 +156,7 @@ public: void TraversePlayerList(std::function func); void TraverseHumanList(std::function func); + void TraverseAliveHumanList(std::function func); void TraverseEntityList(std::function func); void TraverseAlivePlayers(std::function func); void BroadcastDebugMsg(const std::string& debug_msg);