コード例 #1
0
ファイル: Program.cs プロジェクト: starcasters/gslibrary
        static void Main()
        {
            d3mpqs.MPQStorage.MpqRoot = "S:/D3/egris/src/Mooege/bin/Debug/Assets/MPQ/MPQs";
            d3mpqs.MPQStorage.Initialize(9359);
            var scene = d3mpqs.MPQStorage.Data.Assets[d3mpqs.SNOGroup.Scene][0x00008245];
            var file = (scene as d3mpqs.MPQAsset).MpqFile.Open();
            var _scene = new gslibrary.packets.Scene();
            _scene.FileRead(file, 16);

            foreach (var lworld in d3mpqs.MPQStorage.Data.Assets[d3mpqs.SNOGroup.Worlds])
            {
                Console.WriteLine("{0} {1}", lworld.Value.SNOId, lworld.Value.Name);
            }
            var quest = d3mpqs.MPQStorage.Data.Assets[d3mpqs.SNOGroup.Quest];
            foreach (var lquest in quest)
            {
                Console.WriteLine("{0} {1} ", lquest.Value.SNOId, lquest.Value.Name);
            }
            var yquest = d3mpqs.MPQStorage.Data.Assets[d3mpqs.SNOGroup.Quest][87700];
            var qfile = (yquest as d3mpqs.MPQAsset).MpqFile.Open();
            var _quest = new gslibrary.packets.Quest();
            _quest.FileRead(qfile, 16);
            var afile = new System.IO.FileStream("file.txt", System.IO.FileMode.Create);
            afile.WriteString(_quest.AsText());
            afile.Close();
            Console.WriteLine("-------------");
            foreach (var lquest in d3mpqs.MPQStorage.Data.Assets[d3mpqs.SNOGroup.GameBalance])
            {
                Console.WriteLine("{0} {1} ", lquest.Value.SNOId, lquest.Value.Name);
                try
                {
                    var gbfile = (lquest.Value as d3mpqs.MPQAsset).MpqFile.Open();
                    var _gb = new gslibrary.packets.GameBalance();
                    _gb.FileRead(gbfile, 16);
                    var bfile = new System.IO.FileStream(lquest.Value.Name + ".gam.txt", System.IO.FileMode.Create);
                    bfile.WriteString(_gb.AsText());
                    bfile.Close();
                }
                catch
                {
                    Console.WriteLine("failed");
                }
            }

            /*var file = (scene as d3mpqs.MPQAsset).MpqFile.Open();
            var _scene = new gslibrary.packets.Scene();
            _scene.FileRead(file, 16);
            */
            Form1.map = new System.Drawing.Bitmap(96, 96);
            for (int y = 0; y < 96; y++)
            {
                for (int x = 0; x < 96; x++)
                {
                    var color = System.Drawing.Color.Black;
                    if ((_scene.Field5.Squares[x + y * 96].Flags & 1) == 1)
                        color = System.Drawing.Color.Red;
                    Form1.map.SetPixel(x, y, color);
                }
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }