Ejemplo n.º 1
0
        private void repackToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog FD = new OpenFileDialog();

            FD.Filter = "All MPK Files|*.mpk";
            if (FD.ShowDialog() == DialogResult.OK)
            {
                MPKManager Writer             = new MPKManager(new StreamReader(FD.FileName).BaseStream);
                string     Dir                = FD.FileName + "~\\";
                List <NPCSManager.File> Files = new List <NPCSManager.File>();
                foreach (string File in Directory.GetFiles(Dir))
                {
                    Files.Add(new NPCSManager.File()
                    {
                        Path    = Path.GetFileName(File),
                        Content = new StreamReader(File).BaseStream
                    });
                }
                Writer.InjectFiles(Files.ToArray(), new StreamWriter(FD.FileName + "-patched.mpk").BaseStream);
                foreach (NPCSManager.File f in Files)
                {
                    f.Content.Close();
                }
            }
        }
Ejemplo n.º 2
0
        private void extractToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog FD = new OpenFileDialog();

            FD.Filter = "All MPK Files|*.mpk";
            if (FD.ShowDialog() == DialogResult.OK)
            {
                MPKManager         Reader = new MPKManager(new StreamReader(FD.FileName).BaseStream);
                NPCSManager.File[] Files  = Reader.Open();
                string             Dir    = FD.FileName + "~\\";
                if (!System.IO.Directory.Exists(Dir))
                {
                    System.IO.Directory.CreateDirectory(Dir);
                }

                foreach (NPCSManager.File F in Files)
                {
                    string Name = Dir + F.Path;
                    if (System.IO.File.Exists(Name))
                    {
                        System.IO.File.Delete(Name);
                    }
                    Stream Out    = new StreamWriter(Name).BaseStream;
                    int    c      = 0;
                    byte[] Buffer = new byte[(1024 * 1024) * 5];
                    do
                    {
                        c = F.Content.Read(Buffer, 0, Buffer.Length);
                        Out.Write(Buffer, 0, c);
                    } while (c > 0);
                    Out.Close();
                }
            }
        }