Example #1
0
    public static ServerVO Parse(XElement data)
    {
        var app = new ServerVO();
        app.ID = data.Attribute("ID").Value;
        app.SID = data.Attribute("SID").Value;
        var str = data.Attribute("RequestClientVersion").Value;
        app.RequestClientVersion = ServiceManager.GetVersionValue(str);
        app.ServerState = int.Parse(data.Attribute("ServerState").Value);
        app.ServerName = data.Attribute("ServerName").Value;
        app.Url = data.Attribute("Url").Value;
        app.IsTest = bool.Parse(data.Attribute("IsTest").Value);
        app.DataUrl = data.Attribute("DataUrl").Value;

//        Logger.Log(app.ID);
//        Logger.Log(app.RequestClientVersion);
//        Logger.Log(app.ServerState);
//        Logger.Log(app.ServerName);
//        Logger.Log(app.Url);

        return app;
    }
Example #2
0
    /// <summary>
    /// Set server list.
    /// </summary>
    /// <param name="serverMap">Server xml element.</param>
    public static void SetServers(XElement serverMap)
    {
        Logger.Log(serverMap);
        //GameVersionValue = GetVersionValue(GameConfig.);

        var servers = serverMap.Elements("server");
        var temp = new List<ServerVO>();
        UsedServerArray = new List<ServerVO>();
        int suggestcount = 0;
        if (IsCheck)
        {
            foreach (var xElement in servers)
            {
                var item = ServerVO.Parse(xElement);
                if (item.Url == CheckServerUrl)
                {
                    temp.Add(item);
                }
            }
        }
        else
        {
            foreach (var server in servers.Select(item => ServerVO.Parse(item)))
            {
                if (server.ServerState == 0)continue;

                if (SystemInfo.deviceType == DeviceType.Desktop)
                {
                    temp.Add(server);
                    if (server.ServerState == 1) suggestcount++;
                }
                else if (!server.IsTest && GameConfig.VersionValue >= server.RequestClientVersion && CanNotInCheckList(server.Url))
                {
                    temp.Add(server);
                    if (server.ServerState == 1) suggestcount++;
                }
            }
        }
        //stages.OrderByDescending(stageinfo => stageinfo.TemplateId)
        //var temp = 
        AllServerArray = new List<ServerVO>(temp.OrderBy(stageinfo => stageinfo.ServerState));

        UsedServerArray = GetUsedServers();

        if (UsedServerArray.Count > 0)
        {
            ServerData = UsedServerArray[0];
        }
        else if (suggestcount > 0)
        {
            float v = Random.Range(0, suggestcount);
            var  k = (int) Mathf.Floor(v);
            ServerData = AllServerArray[k];
        }
        else if (AllServerArray.Count > 0)
        {
            ServerData = AllServerArray[0];
        }
    }
Example #3
0
    public void SetData(ServerVO server)
    {
        Data = server;

        Reset();
    }