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; }
/// <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]; } }
public void SetData(ServerVO server) { Data = server; Reset(); }