private static void Main(string[] args) { Console.WriteLine("Starting Imagination Server!"); Console.WriteLine("Loading config..."); Config.Init(); Console.WriteLine($"Address: {Config.Current.Address}"); Console.WriteLine($"Encrypt Packets: {Config.Current.EncryptPackets}"); Console.WriteLine(" ->OK"); try { Console.WriteLine("Setting up database..."); SessionHelper.Init(); Console.WriteLine(" ->OK"); Console.WriteLine("Setting up CDClient Database..."); CdClientDb.Init(); Console.WriteLine(" ->OK"); } catch (FluentConfigurationException exception) { Console.WriteLine(exception.Message); Console.WriteLine(exception.InnerException); foreach (var reason in exception.PotentialReasons) { Console.WriteLine(" - " + reason); } Console.ReadKey(true); Environment.Exit(-1); } Console.WriteLine("Starting Auth..."); AuthServer.Init(Config.Current.Address); Console.WriteLine(" ->OK"); Console.WriteLine("Starting World..."); WorldServer.Init(Config.Current.Address); Console.WriteLine(" ->OK"); Console.WriteLine("Beginning message receiving..."); while (!Environment.HasShutdownStarted) { WorldServer.Service(); AuthServer.Service(); } }
private static WBitStream GenXmlData(Character character) { using (var cdclient = new CdClientDb()) { var xml = ""; xml += "<?xml version=\"1.0\"?>"; xml += "<obj v=\"1\">"; xml += "<buff/>"; xml += "<skil/>"; xml += "<inv>"; xml += "<bag>"; xml += "<b t=\"0\" m=\"24\"/>"; xml += "</bag>"; xml += "<items>"; xml += "<in>"; // TODO: Write items //foreach (var item in character.Items) //{ // writer.WriteStartElement("i"); // <i> // writer.WriteAttributeString("l", item.); // writer.WriteEndElement(); // </i> //} xml += "</in>"; xml += "</items>"; xml += "</inv>"; xml += "<mf/>"; xml += "<chars cc=\"100\"></char>"; xml += $"<lvl l=\"{character.Level}\"/>"; xml += "<flag/>"; xml += "<pet/>"; if (character.Missions?.Any() ?? false) { xml += "<mis>"; xml += "<done>"; xml = character.Missions.Select(mission => CharacterMission.FromJson(mission)).Aggregate(xml, (current, missionData) => current + $"<m id=\"{missionData.Id}\" cts=\"{missionData.Timestamp}\" cct=\"{missionData.Count}\"/>"); xml += "</done>"; xml += "</mis>"; } xml += "<mnt/>"; xml += "<dest/>"; xml += "</obj>"; var bitStream = new WBitStream(); Console.WriteLine(xml); bitStream.WriteChars(xml); return(bitStream); } }