diff --git a/server/gameserver/custom_battle.cc b/server/gameserver/custom_battle.cc index 6ab86cba..7e9eaeda 100644 --- a/server/gameserver/custom_battle.cc +++ b/server/gameserver/custom_battle.cc @@ -141,3 +141,12 @@ void CustomBattle::TraverseMemberList(std::function func) } } } + +void CustomBattle::TraverseTeamList(std::function)> cb) +{ + for (auto& pair : uuid_hash_) { + if (!cb(pair.second)) { + break; + } + } +} diff --git a/server/gameserver/custom_battle.h b/server/gameserver/custom_battle.h index 1f1d4f1d..229d3294 100644 --- a/server/gameserver/custom_battle.h +++ b/server/gameserver/custom_battle.h @@ -29,6 +29,7 @@ class CustomBattle int GetMemberNum(); int GetTeamNum(); void TraverseMemberList(std::function func); + void TraverseTeamList(std::function)> cb); private: bool parse_ok_ = false; diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index 3fa24396..58c7a5fe 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -50,6 +50,9 @@ #include "roommgr.h" #include "bornpoint.h" #include "roomob.h" +#include "custom_battle.h" +#include "custom_team.h" +#include "custom_member.h" #include "mt/Param.h" #include "mt/Buff.h" @@ -2704,7 +2707,13 @@ int Room::InitWithMobaBattle(long ip_saddr, int socket_handle, std::shared_ptr msg, std::shared_ptr p) { - + std::vector> teams; + p->TraverseTeamList + ( + [&teams] (std::shared_ptr team) -> bool + { + return true; + }); } void SyncObject::FillSMSyncPosition(cs::SMSyncPosition& sync_msg)