Ejemplo n.º 1
0
        private static void DumpMoveReq(object sender, CommandEventArgs e)
        {
            var gates = ResourceCache.Instance.GetGates();
            var moves = gates
                        .Where(x => x.Value.Move != -1)
                        .OrderBy(x => x.Value.Move)
                        .Select(x => x.Value);

            using (var fs = new FileStream("./MoveReq.bmd", FileMode.Create))
            {
                var num = BitConverter.GetBytes(moves.Count());
                fs.Write(num, 0, 4);

                var data = new byte[0xFA0];
                using (var ms = new MemoryStream(data))
                {
                    foreach (var mov in moves)
                    {
                        var bmdData = new MoveReqBMD
                        {
                            Gate       = mov.Number,
                            Level      = mov.ReqLevel,
                            MoveNumber = mov.Move,
                            Zen        = mov.ReqZen,
                            ClientName = mov.Name,
                            ServerName = mov.Name,
                        };
                        Serializer.Serialize(ms, bmdData);
                    }
                }

                MakeXOR(data, 0, 80);
                fs.Write(data, 0, data.Length);
            }
        }
Ejemplo n.º 2
0
        private static void DumpMoveReq(object sender, CommandEventArgs e)
        {
            var gates = ResourceCache.Instance.GetGates();
            var moves = gates
                        .Where(x => x.Value.Move != -1)
                        .OrderBy(x => x.Value.Move)
                        .Select(x => x.Value);

            using (var fs = new FileStream("./MoveReq.bmd", FileMode.Create))
            {
                var num = BitConverter.GetBytes(moves.Count());
                fs.Write(num, 0, 4);

                var data = new byte[0xFA0];
                using (var ms = new MemoryStream(data))
                {
                    foreach (var mov in moves)
                    {
                        var bmdData = new MoveReqBMD
                        {
                            Gate       = mov.Number,
                            Level      = mov.ReqLevel,
                            MoveNumber = mov.Move,
                            Zen        = mov.ReqZen,
                            ClientName = mov.Name,
                            ServerName = mov.Name,
                        };
                        Serializer.Serialize(ms, bmdData);
                    }
                }

                MakeXOR(data, 0, 80);
                fs.Write(data, 0, data.Length);
            }

            Log.Information("MoveReq.bmd Created");

            using (var fs = new FileStream("./Gate.bmd", FileMode.Create))
            {
                var num = BitConverter.GetBytes(moves.Count());
                //fs.Write(num, 0, 4);

                var data = new byte[7168];
                using (var ms = new MemoryStream(data))
                {
                    foreach (var mov in moves)
                    {
                        var bmdData = new GateBMD
                        {
                            Flag       = mov.GateType,
                            Map        = mov.Map,
                            Dir        = mov.Dir,
                            Level      = mov.ReqLevel,
                            X1         = (byte)mov.Door.Left,
                            Y1         = (byte)mov.Door.Top,
                            X2         = (byte)mov.Door.Right,
                            Y2         = (byte)mov.Door.Bottom,
                            GateNumber = (ushort)mov.Number,
                            BZLevel    = 400,
                            BZone      = 1,
                        };
                        Serializer.Serialize(ms, bmdData);
                    }
                }

                MakeXOR(data, 0, 14);
                fs.Write(data, 0, data.Length);
            }
            Log.Information("Gate.bmd Created");
        }