コード例 #1
0
 //刷新玩家
 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++;
         }
     }
 }
コード例 #2
0
    //请求玩家匹配数据
    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);
        }
    }