diff --git a/server/gameserver/custom_member.h b/server/gameserver/custom_member.h index efde43bb..e6765eb7 100644 --- a/server/gameserver/custom_member.h +++ b/server/gameserver/custom_member.h @@ -9,6 +9,7 @@ class CustomMember void Join(Player* hum); bool IsJoined() { return joined_; } int GetJoinTime() { return join_time_; } + bool IsViewer() { return is_viewer_; } const std::string& GetAccountId() { return account_id_; } const std::string& GetSessionId() { return session_id_; } std::shared_ptr& GetNetData() { return battle_context_; }; @@ -16,6 +17,7 @@ class CustomMember private: bool joined_ = false; int join_time_ = 0; + bool is_viewer_ = false; std::string account_id_; std::string session_id_; std::shared_ptr battle_context_; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 55c47da5..48607e59 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -43,6 +43,7 @@ #include "batchsync.h" #include "trigger.h" #include "custom_battle.h" +#include "custom_member.h" #include "mt/Param.h" #include "mt/Hero.h" @@ -3542,5 +3543,13 @@ int Room::GetMaxTeamNum() void Room::FillCustomBattleHuman() { + custom_battle_->TraverseMemberList + ( + [] (CustomMember* member) -> bool + { + if (!member->IsJoined()) { + } + return true; + }); }