From 7fa4cd7f107ea3667e4bc63228485f846d1b4c38 Mon Sep 17 00:00:00 2001 From: huangxiaolei <1782360262@qq.com> Date: Sun, 11 Dec 2022 02:06:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E4=BA=BA=E4=B8=96=E7=95=8C=E9=98=9F?= =?UTF-8?q?=E4=BC=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gs/game/world_manager.go | 11 ++++++----- gs/model/team.go | 8 ++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/gs/game/world_manager.go b/gs/game/world_manager.go index 10f8b62e..4634edca 100644 --- a/gs/game/world_manager.go +++ b/gs/game/world_manager.go @@ -154,12 +154,13 @@ func (w *World) AddPlayer(player *model.Player, sceneId uint32) { // 将玩家自身当前的队伍角色信息复制到世界的玩家本地队伍 team := player.TeamConfig.GetActiveTeam() if player.PlayerID == w.owner.PlayerID { - w.SetPlayerLocalTeam(player, team.AvatarIdList) - w.SetPlayerLocalAvatarIndex(player, int(player.TeamConfig.CurrAvatarIndex)) + w.SetPlayerLocalTeam(player, team.GetAvatarIdList()) } else { - // 非房主最多复制前两个角色 - w.SetPlayerLocalTeam(player, team.AvatarIdList[0:2]) - w.SetPlayerLocalAvatarIndex(player, 0) + activeAvatarId := player.TeamConfig.GetActiveAvatarId() + w.SetPlayerLocalTeam(player, []uint32{activeAvatarId}) + } + for _, worldPlayer := range w.playerMap { + w.SetPlayerLocalAvatarIndex(worldPlayer, 0) } w.UpdateMultiplayerTeam() scene := w.GetSceneById(sceneId) diff --git a/gs/model/team.go b/gs/model/team.go index 2e5cd550..15b68d02 100644 --- a/gs/model/team.go +++ b/gs/model/team.go @@ -105,3 +105,11 @@ func (t *TeamInfo) SetTeamAvatar(teamIndex uint8, avatarIdList []uint32) { } team.AvatarIdList = avatarIdList } + +func (t *TeamInfo) GetActiveAvatarId() uint32 { + team := t.GetActiveTeam() + if team == nil { + return 0 + } + return team.AvatarIdList[t.CurrAvatarIndex] +}