Exemple #1
0
        public void startExtractCharacters()
        {
            WzFile file = new WzFile(wzDir + @"\Character.wz", Version);

            //WzFile file = new WzFile(wzDir + @"\Data - kopie.wz", Version);
            file.ParseWzFile();
            //Console.WriteLine("Version: {0}", file.);

            string      tempDir = currentDir;
            WzDirectory loldir  = file.WzDirectory.GetDirectoryByName("Character");

            if (loldir == null)
            {
                loldir = file.WzDirectory;
            }
            loldir.ParseImages();

            foreach (WzImage img in loldir.WzImages)
            {
                currentDir += img.Name + "\\";
                parseImage(img);
                currentDir = tempDir;
            }

            foreach (WzDirectory dir in loldir.WzDirectories)
            {
                currentDir += dir.Name + "\\";
                parseDir(dir);
                currentDir = tempDir;
            }
        }
Exemple #2
0
        public override void Start()
        {
            WzFile      file         = MapleFileCache.Instance["Etc"];
            WzDirectory familiarscwz = MapleFileCache.Instance["Character"].GetObjectFromPath("Character.wz/Familiar") as WzDirectory;

            if (familiarscwz != null)
            {
                WzFile mobfile = MapleFileCache.Instance["Mob"];

                familiarscwz.ParseImages();

                string familiarDir = exDir + "Character" + Path.DirectorySeparatorChar + "Familiar" + Path.DirectorySeparatorChar;
                //if (false)
                {
                    foreach (WzSubProperty prop in (file.WzDirectory["FamiliarInfo.img"] as WzImage).WzProperties)
                    {
                        int    famid   = int.Parse(prop.Name);
                        int    mobid   = prop["mob"].ToInt();
                        string tempdir = familiarDir + string.Format("{0:D7}.img", famid) + Path.DirectorySeparatorChar;

                        WzSubProperty charwzProp   = familiarscwz.GetImageByName(string.Format("{0}.img", famid))["info"] as WzSubProperty;
                        WzSubProperty skillSubProp = prop["skill"] as WzSubProperty;
                        FamiliarInfoSQL.Instance.AddFamiliar(famid, prop["consume"].ToInt(), mobid, charwzProp["grade"].ToInt(), charwzProp["range"].ToInt(), skillSubProp == null ? 0 : skillSubProp["id"].ToInt());

                        // Export images, too

                        WzImage mobimg = mobfile.WzDirectory[string.Format("{0:D7}.img", mobid)] as WzImage;

                        if (mobimg["info"] != null && mobimg["info"]["link"] != null)
                        {
                            // ---
                            Console.WriteLine("Nekson leik links");
                            mobimg = mobfile.WzDirectory[string.Format("{0:D7}.img", mobimg["info"]["link"].ToInt())] as WzImage;
                        }

                        if (mobimg["stand"] != null)
                        {
                            WzSubProperty subprop = mobimg["stand"] as WzSubProperty;
                            ExportIfExists(tempdir, subprop["0"], "stand");
                            foreach (var prop2 in subprop["0"].WzProperties)
                            {
                                ExportIfExists(tempdir, prop2, "stand.0");
                            }
                        }
                        else if (mobimg["fly"] != null)
                        {
                            WzSubProperty subprop = mobimg["fly"] as WzSubProperty;
                            ExportIfExists(tempdir, subprop["0"], "stand");
                            foreach (var prop2 in subprop["0"].WzProperties)
                            {
                                ExportIfExists(tempdir, prop2, "stand.0");
                            }
                        }
                    }
                }
            }

            this.currentID = 90000000;
            foreach (WzSubProperty prop in (file.WzDirectory["SetItemInfo.img"] as WzImage).WzProperties)
            {
                ExportProps(prop, prop.Name);
            }
        }