//刷新玩家 public void RefreshMatchPlayerInfo(bool isRefresh, bool resetIndex) { if (!isRefresh) { //从副本(除战神赛)中回到主城不需要刷新拼配伙伴 if (m_CurrentChallengeGroupIndex > 0 && m_CurrentChallengeGroupIndex <= 3) { m_CurrentChallengeGroupIndex--; } } if (resetIndex) { m_CurrentChallengeGroupIndex = 0; //从服务器取的新数据 } if (m_CurrentChallengeGroupIndex == 3) { //缓存数据已更新完 需要重新发送消息更新缓存数据 LogicSystem.EventChannelForGfx.Publish("ge_ui_connect_hint", "ui", true, true); m_CurrentChallengeGroupIndex = 0; LogicSystem.PublishLogicEvent("query_match_group", "arena"); return; } else { RoleInfo role_info = LobbyClient.Instance.CurrentRole; if (role_info != null && role_info.ArenaStateInfo != null) { ArenaStateInfo arena_info = role_info.ArenaStateInfo; if (m_CurrentChallengeGroupIndex < arena_info.MatchGroups.Count) { //默认arena_info.MatchGroups一直顺序存放着数据且数据正确 MatchGroup match_group = arena_info.MatchGroups[m_CurrentChallengeGroupIndex]; if (match_group == null) { return; } if (arenaPlayerArr.Length == 3) { if (arenaPlayerArr[0] != null) { arenaPlayerArr[0].InitPlayerInfo(match_group.One); } if (arenaPlayerArr[1] != null) { arenaPlayerArr[1].InitPlayerInfo(match_group.Two); } if (arenaPlayerArr[2] != null) { arenaPlayerArr[2].InitPlayerInfo(match_group.Three); } } } m_CurrentChallengeGroupIndex++; } } }
//请求玩家匹配数据 private void QueryMatchGroup() { RoleInfo role_info = LobbyClient.Instance.CurrentRole; if (role_info != null && role_info.ArenaStateInfo != null) { if (role_info.ArenaStateInfo.IsNeedQueryMatchGroup()) { UIDataCache.Instance.curPlayerFightingScore = role_info.FightingScore; LogicSystem.EventChannelForGfx.Publish("ge_ui_connect_hint", "ui", true, true); LogicSystem.PublishLogicEvent("query_match_group", "arena"); return; } ArenaStateInfo arena_info = role_info.ArenaStateInfo; if (arena_info.MatchGroups.Count <= 0) { LogicSystem.EventChannelForGfx.Publish("ge_ui_connect_hint", "ui", true, true); LogicSystem.PublishLogicEvent("query_match_group", "arena"); return; } MatchGroup match_group = arena_info.MatchGroups[0]; if (match_group == null) { LogicSystem.EventChannelForGfx.Publish("ge_ui_connect_hint", "ui", true, true); LogicSystem.PublishLogicEvent("query_match_group", "arena"); return; } if (match_group != null && match_group.One == null) { LogicSystem.EventChannelForGfx.Publish("ge_ui_connect_hint", "ui", true, true); LogicSystem.PublishLogicEvent("query_match_group", "arena"); return; } } //打完战神赛需要刷新一次 bool needRefresh = (UIDataCache.Instance.prevSceneType == SceneSubTypeEnum.TYPE_PVAP); if (uiPartnerPvpRightInfo != null) { uiPartnerPvpRightInfo.RefreshMatchPlayerInfo(needRefresh, false); } }