예제 #1
0
 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();
     }
 }
예제 #2
0
        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);
            }
        }