Пример #1
0
        static void ConvertClientVersion(int fromVersion, int toVersion, bool useAlpha)
        {
            string datFile = fromVersion.ToString() + "/Tibia.dat";
            string sprFile = fromVersion.ToString() + "/Tibia.spr";

            if (!File.Exists(datFile) || !File.Exists(sprFile))
            {
                Console.WriteLine("Tibia.dat or Tibia.spr doesn't exist");
                Environment.Exit(0);
                return;
            }

            Directory.CreateDirectory(toVersion.ToString());
            string newDatFile = toVersion.ToString() + "/Tibia.dat";
            string newSprFile = toVersion.ToString() + "/Tibia.spr";

            var datParser = new Core.Sprites.ContentData(File.ReadAllBytes(datFile), fromVersion);

            datParser.Parse();

            byte[] result = datParser.ConvertTo(toVersion);
            File.WriteAllBytes(newDatFile, result);

            var sprParser = new Core.Sprites.ContentSprites(File.ReadAllBytes(sprFile), fromVersion, useAlpha);

            sprParser.Parse();

            result = sprParser.ConvertTo(toVersion);
            File.WriteAllBytes(newSprFile, result);

            Console.WriteLine("Convertion Successfull to " + toVersion + ".");
        }
Пример #2
0
        /// <summary>
        /// Loads tibia.dat and generates new a list of appearances
        /// </summary>
        /// <param name="datFile">the attributes file (tibia.dat)</param>
        /// <param name="clientVersion">the client version of this dat</param>
        /// <returns></returns>
        static Appearances GenerateAppearances(string datFile, int clientVersion)
        {
            try {
                Core.Sprites.ContentData datParser = new Core.Sprites.ContentData(File.ReadAllBytes(datFile), clientVersion);
                datParser.Parse();

                Appearances appearances = new Appearances();
                for (int i = 0; i < datParser.ThingTypeDictionaries.Length; i++)
                {
                    var dict = datParser.ThingTypeDictionaries[i];
                    foreach (var pair in dict)
                    {
                        Appearance appearance = GenerateAppearance(pair.Value);
                        switch (i)
                        {
                        case 0: appearances.Objects.Add(appearance); break;

                        case 1: appearances.Outfits.Add(appearance); break;

                        case 2: appearances.Effects.Add(appearance); break;

                        case 3: appearances.Missles.Add(appearance); break;
                        }
                    }
                }

                jsonTokens.Add(new AppearancesToken()
                {
                    file = "appearances.dat"
                });
                return(appearances);
            } catch (Exception e) {
                Console.WriteLine(e.Message + '\n' + e.StackTrace);
                Environment.Exit(0);
            }

            return(null);
        }