diff --git a/server/gameserver/custom_battle.cc b/server/gameserver/custom_battle.cc index 76bae224..ad936e55 100644 --- a/server/gameserver/custom_battle.cc +++ b/server/gameserver/custom_battle.cc @@ -59,6 +59,7 @@ void CustomBattle::ParseResult(a8::XObject& obj) return; } auto member = std::make_shared(); + member->team_ = team.get(); member->account_id_ = member_obj->Get("account_id").GetString(); member->session_id_ = member_obj->Get("session_id").GetString(); member->battle_context_ = std::make_shared(); diff --git a/server/gameserver/custom_member.h b/server/gameserver/custom_member.h index e6765eb7..0f153d8a 100644 --- a/server/gameserver/custom_member.h +++ b/server/gameserver/custom_member.h @@ -2,11 +2,13 @@ struct BattleDataContext; class Player; +class CustomTeam; class CustomMember { public: void Join(Player* hum); + CustomTeam* GetTeam() { return team_; } bool IsJoined() { return joined_; } int GetJoinTime() { return join_time_; } bool IsViewer() { return is_viewer_; } @@ -15,6 +17,7 @@ class CustomMember std::shared_ptr& GetNetData() { return battle_context_; }; private: + CustomTeam *team_ = nullptr; bool joined_ = false; int join_time_ = 0; bool is_viewer_ = false; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 6ddcae60..67faab38 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3551,7 +3551,7 @@ void Room::FillCustomBattleHuman() if (!member->IsJoined()) { auto p = custom_battle_; cs::CMJoin msg; - CustomTeam *team; + CustomTeam *team = member->GetTeam(); int socket_handle = 0; int ip_saddr = 0;