Beispiel #1
0
        public void RefreshData(UIInitArguments data)
        {
            var _args = data as ServerListArguments;

            if (_args == null || _args.Data == null)
            {
                return;
            }

            var _netdata = _args.Data;
            var _plData  = _netdata.PlayerData;

            //下次刷新时间
            var _waitSec = _netdata.WaitSec;

            if (_waitSec > 0)
            {
                refreshMark++;
                NetManager.Instance.StartCoroutine(RefurbishServerListCoroutine(_waitSec, refreshMark));
            }

            //所有服务器数据
            mServerListDataModel.ServerList.Clear();
            serverCacheDictionary.Clear();
            var _dataModel    = mServerListDataModel;
            var _responseData = _netdata.Data;

            PlayerDataManager.Instance.ServerNames.Clear();

            var             _index    = 1;
            var             _minIndex = 0;
            ServerGroupData groupdata = null;
            Uint64Array     characterList;

            {
                var _list1      = _responseData;
                var _listCount1 = _list1.Count;
                for (var __i1 = 0; __i1 < _listCount1; ++__i1)
                {
                    var _state = _list1[__i1];
                    {
                        if (_index % 10 == 1)
                        {
                            groupdata = new ServerGroupData();
                            _dataModel.ServerList.Add(groupdata);
                            _minIndex = _index;
                        }
                        var _serverInfo = new ServerInfoData();
                        _serverInfo.ServerName = _state.Name;
                        _serverInfo.ServerId   = _state.ServerId;
                        PlayerDataManager.Instance.ServerNames.Add(_serverInfo.ServerId, _serverInfo.ServerName);
                        _serverInfo.State           = _state.State;
                        _serverInfo.isNew           = (_state.IsNew != 0);
                        _serverInfo.MieShiIconStata = _state.actiResult;
                        if (_plData.TryGetValue(_state.ServerId, out characterList))
                        {
                            _serverInfo.CharacterCount = characterList.Items.Count;
                            if (_serverInfo.CharacterCount != 0)
                            {
                                groupdata.RedPromptShow = 1;
                            }
                        }
                        if (groupdata != null)
                        {
                            groupdata.ServerGroup.Add(_serverInfo);
                            //{0}-{1}区
                            groupdata.GroupName = string.Format(GameUtils.GetDictionaryText(270117), _minIndex, _index);
                            serverCacheDictionary.Add(_state.ServerId, _serverInfo);
                        }

                        if (_serverInfo.ServerId == PlayerDataManager.Instance.LastLoginServerId)
                        {
                            _dataModel.SelectedServer            = _serverInfo;
                            _dataModel.SelectedServer.IsSelected = true;
                            _dataModel.LastServer                 = _serverInfo;
                            _dataModel.SelectGroupData            = groupdata;
                            _dataModel.SelectGroupData.IsSelected = true;
                        }

                        _index++;
                    }
                }
            }
#if !UNITY_EDITOR
#if UNITY_ANDROID || UNITY_IOS
            if (1 == Table.GetClientConfig(1154).ToInt())
            {//初始化主播系统
                string _id  = "";
                string _key = "";
                if (_args.Data.Config.TryGetValue(1213, out _id) && _args.Data.Config.TryGetValue(1214, out _key))
                {
                    GVoiceManager.Instance.Init(_id, _key);
                }
                else
                {//没能取到服务器端信息,走本地
                    GVoiceManager.Instance.Init();
                }
            }
#endif
#endif
        }
    public void RefreshData(UIInitArguments data)
    {
        var args = data as ServerListArguments;

        if (args == null || args.Data == null)
        {
            return;
        }

        var netdata = args.Data;
        var plData  = netdata.PlayerData;

        //下次刷新时间
        var waitSec = netdata.WaitSec;

        if (waitSec > 0)
        {
            refreshMark++;
            NetManager.Instance.StartCoroutine(RefreshServerList(waitSec, refreshMark));
        }

        //所有服务器数据
        mServerListDataModel.ServerList.Clear();
        var dataModel    = mServerListDataModel;
        var responseData = netdata.Data;

        PlayerDataManager.Instance.ServerNames.Clear();

        var             index     = 1;
        var             minIndex  = 0;
        ServerGroupData groupdata = null;
        Uint64Array     characterList;
        {
            var __list1      = responseData;
            var __listCount1 = __list1.Count;
            for (var __i1 = 0; __i1 < __listCount1; ++__i1)
            {
                var state = __list1[__i1];
                {
                    if (index % 10 == 1)
                    {
                        groupdata = new ServerGroupData();
                        dataModel.ServerList.Add(groupdata);
                        minIndex = index;
                    }
                    var serverInfo = new ServerInfoData();
                    serverInfo.ServerName = state.Name;
                    serverInfo.ServerId   = state.ServerId;
                    PlayerDataManager.Instance.ServerNames.Add(serverInfo.ServerId, serverInfo.ServerName);
                    serverInfo.State           = state.State;
                    serverInfo.isNew           = (state.IsNew != 0);
                    serverInfo.MieShiIconStata = state.actiResult;
                    if (plData.TryGetValue(state.ServerId, out characterList))
                    {
                        serverInfo.CharacterCount = characterList.Items.Count;
                        if (serverInfo.CharacterCount != 0)
                        {
                            groupdata.RedPromptShow = 1;
                        }
                    }
                    if (groupdata != null)
                    {
                        groupdata.ServerGroup.Add(serverInfo);
                        //{0}-{1}区
                        groupdata.GroupName = string.Format(GameUtils.GetDictionaryText(270117), minIndex, index);
                    }

                    if (serverInfo.ServerId == PlayerDataManager.Instance.LastLoginServerId)
                    {
                        dataModel.SelectedServer             = serverInfo;
                        dataModel.LastServer                 = serverInfo;
                        dataModel.SelectGroupData            = groupdata;
                        dataModel.SelectGroupData.IsSelected = true;
                    }

                    index++;
                }
            }
        }
    }