コード例 #1
0
        public override void Write(BinaryWriterExt writer)
        {
            base.Write(writer);

            writer.Write((byte)1);
            writer.Write((int)Type);

            writer.Write(X);
            writer.Write(Y);
            writer.Write(Z);

            if (Type == LVDDamageShapeType.Sphere)
            {
                writer.Write(Radius);
                writer.Write(Dx);
                writer.Write(Dy);
                writer.Write(Dz);
            }
            if (Type == LVDDamageShapeType.Capsule)
            {
                writer.Write(Dx);
                writer.Write(Dy);
                writer.Write(Dz);
                writer.Write(Radius);
            }

            writer.Write(Unknown1);
            writer.Write(Unknown2);
        }
コード例 #2
0
ファイル: InventoryItem.cs プロジェクト: sortaloc/DriftCity
 public void Serialize(BinaryWriterExt writer)
 {
     writer.Write(CarId);
     writer.Write(State);
     writer.Write(Slot);
     writer.Write(StackNum);
     writer.Write(LastCarId);
     writer.Write(AssistA);
     writer.Write(AssistB);
     writer.Write(AssistC);
     writer.Write(AssistD);
     writer.Write(AssistE);
     writer.Write(AssistF);
     writer.Write(AssistG);
     writer.Write(AssistH);
     writer.Write(AssistI);
     writer.Write(AssistJ);
     writer.Write(Box);
     writer.Write(Belonging);
     writer.Write(Upgrade);
     writer.Write(UpgradePoint);
     writer.Write(ExpireTick);
     writer.Write(Durability); // Only neo, -1
     writer.Write(0);          // Unk1?!
     writer.Write(TableIndex);
     writer.Write(InventoryIndex);
     writer.Write(Random);
 }
コード例 #3
0
ファイル: Crew.cs プロジェクト: sortaloc/DriftCity
 public void SerializeShort(BinaryWriterExt writer)
 {
     writer.Write(Id);
     writer.Write(MarkId);
     writer.WriteUnicodeStatic(Name, 14);
     writer.Write((ushort)0); // NLevel?
 }
コード例 #4
0
ファイル: LVDEntry.cs プロジェクト: ssbucarlos/StudioSB
        public virtual void Write(BinaryWriterExt writer)
        {
            writer.Write(EntryFlags);
            writer.Write(EntryNumber);

            writer.Write((byte)1);
            writer.Write(EntryName);
            writer.Write(new byte[0x38 - EntryName.Length - 1]);

            writer.Write((byte)1);
            writer.Write(EntryLabel);
            writer.Write(new byte[0x40 - EntryLabel.Length - 1]);

            writer.Write((byte)1);
            writer.Write(StartPosition.X);
            writer.Write(StartPosition.Y);
            writer.Write(StartPosition.Z);
            writer.Write(UseStartPosition);

            writer.Write((byte)1);
            writer.Write(UnknownIndex2);

            writer.Write((byte)1);
            writer.Write(UnknownVector.X);
            writer.Write(UnknownVector.Y);
            writer.Write(UnknownVector.Z);
            writer.Write(UnknownIndex);

            writer.Write((byte)1);
            writer.Write(BoneName);
            writer.Write(new byte[0x40 - BoneName.Length - 1]);
        }
コード例 #5
0
ファイル: XiPlayerInfo.cs プロジェクト: sortaloc/DriftCity
        /*
         * struct XiPlayerInfo
         * {
         * wchar_t Cname[13];
         * unsigned __int16 Serial;
         * unsigned __int16 Age;
         * __unaligned __declspec(align(1)) __int64 Cid;
         * unsigned __int16 Level;
         * unsigned int Exp;
         * __unaligned __declspec(align(1)) __int64 TeamId;
         * __unaligned __declspec(align(1)) __int64 TeamMarkId;
         * wchar_t TeamName[14];
         * unsigned __int16 TeamNLevel;
         * XiVisualItem VisualItem;
         * float UseTime;
         * };
         */

        /// <summary>
        /// 216 length but 150 bytes used!
        /// Leaked files has 156 bytes :/
        /// </summary>
        /// <param name="writer"></param>
        public void Serialize(BinaryWriterExt writer)
        {
            writer.WriteUnicodeStatic(Character.Name, 13, true); // 26
            writer.Write(Serial);                                // 2
            writer.Write(Age);                                   // 2

            writer.Write(Character.Id);                          // 8
            writer.Write(Character.Level);                       // 2
            writer.Write(Character.ExperienceInfo.BaseExp);      // 4

            //writer.Write(Character.TeamId); // 8
            if (Character.Crew == null)
            {
                new Crew().SerializeShort(writer);
            }
            else
            {
                Character.Crew.SerializeShort(writer);

                /*
                 * writer.Write(Character.Team.MarkId); // 8
                 * writer.WriteUnicodeStatic(Character.Team.Name, 14, true);
                 * writer.Write(TeamNLevel); // 2
                 */
            }
            writer.Write(VisualItem); // 50?
            writer.Write(UseTime);    // 4

            writer.Write(new byte[60]);

            //writer.Write(new byte[186]);
        }
コード例 #6
0
            public void Write(BinaryWriterExt writer)
            {
                writer.Write(new char[] { 'D', 'D', 'S', ' ' });
                writer.Write(dwSize);
                writer.Write((int)dwFlags);
                writer.Write(dwHeight);
                writer.Write(dwWidth);
                writer.Write(dwPitchOrLinearSize);
                writer.Write(dwDepth);
                writer.Write(dwMipMapCount);
                foreach (var v in dwReserved1)
                {
                    writer.Write(v);
                }
                ddspf.Write(writer);
                writer.Write((int)dwCaps);
                writer.Write((int)dwCaps2);
                writer.Write(dwCaps3);
                writer.Write(dwCaps4);
                writer.Write(dwReserved2);

                if (ddspf.dwFlags.HasFlag(DDPF.FOURCC) && ddspf.dwFourCC == 0x30315844)
                {
                    DXT10Header.Write(writer);
                }
            }
コード例 #7
0
        public void TestTest()
        {
            var playerInfo = new XiPlayerInfo();

            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    playerInfo.Serialize(bs);
                }
                Assert.AreEqual(216, ms.ToArray().Length);
            }

            var team = new Crew();

            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    team.Serialize(bs);
                }
                Assert.AreEqual(0, ms.ToArray().Length);
            }

            var chara = new Character();

            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    chara.Serialize(bs);
                }
                Assert.AreEqual(0, ms.ToArray().Length);
            }
        }
コード例 #8
0
        public Packet(ushort id)
        {
            Writer = new BinaryWriterExt(new MemoryStream());
            Id     = id;

            Writer.Write(id);
        }
コード例 #9
0
ファイル: Crew.cs プロジェクト: sortaloc/DriftCity
        // We're still missing ~209 bytes of data

        /// <summary>
        /// TODO: Missing: 293 Bytes!
        /// </summary>
        /// <param name="writer"></param>
        public void Serialize(BinaryWriterExt writer)
        {
            writer.Write(Id);
            writer.Write(MarkId);
            writer.WriteUnicodeStatic(Name, 13);
            writer.WriteUnicodeStatic(Description, 61);
            writer.WriteAsciiStatic(Url, 33);
            writer.Write(CreateDate);
            writer.Write(CloseDate);
            writer.Write(BanishDate);
            writer.WriteAsciiStatic(OwnChannel, 24);
            writer.WriteAsciiStatic(State, 2);
            writer.Write(Ranking);
            writer.Write(Point);
            writer.Write(ChannelWinCnt);
            writer.Write(MemberCnt);
            writer.Write(TotalExp);
            writer.Write(TotalMoney);
            writer.Write(Version);
            writer.Write(OwnerId);
            writer.Write(LeaderId);
            writer.WriteUnicodeStatic(OwnerName, 21);
            writer.WriteUnicodeStatic(LeaderName, 21);
            writer.Write(new byte[293]);
        }
コード例 #10
0
        /// <summary>
        /// 346 Bytes missing
        ///
        /// packetId => 2
        /// field_0 => 4 (CharId?)
        /// field_1 => 155 (0x6->0xA1)
        /// field_2 => 4
        /// field_3 => 8 (0xA5->0xAD)
        /// field_4 => 4
        /// field_5 => 146 (0xB1->0x143) - Char Info end?! (321)
        /// -----------------------------------------------------
        /// field_6 => 50 (0x143->0x175) - VEHICLE INFO!! (50)
        /// -----------------------------------------------------
        /// field_7 => 112 (0x175->0x1E5) - Statistic Info
        /// -----------------------------------------------------
        /// field_8 => 4 - TeamId
        /// field_9 => 660 (0x1E9->0x47D) - Team
        /// -----------------------------------------------------
        /// field_10 => 12 (0x47D->0x489)
        /// field_11 => 6 (0x489->0x48F)
        ///     field_0 => 4
        ///     field_1 => 2
        /// field_12 => 6 (0x48F->0x495)
        ///     field_0 => 4
        ///     field_1 => 2
        /// field_13 => 4 - LocType
        ///
        /// If LocType == 1 -> LocId == AreaId
        /// </summary>
        /// <returns></returns>
        public override byte[] GetBytes()
        {
            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    Character.Serialize(bs);     // 321 here, 363 in rice.
                    Vehicle.Serialize(bs);
                    StatisticInfo.Serialize(bs); // 112 vs 80 -> 32 bytes missing?
                    if (Crew == null)            // Character is in not team.
                    {
                        bs.Write(new byte[664]);
                    }
                    else
                    {
                        Crew.Serialize(bs);
                    }

                    // field_10
                    bs.Write(new byte[12]);

                    // field_11
                    bs.Write((int)0);
                    bs.Write((short)0);

                    // field_12
                    bs.Write((int)0);
                    bs.Write((short)0);

                    bs.Write(LocType);
                }
                return(ms.ToArray());
            }
        }
コード例 #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Writer"></param>
        /// <param name="Value"></param>
        /// <param name="Type"></param>
        /// <param name="Scale"></param>
        private static void WriteData(BinaryWriterExt Writer, float Value, GXCompType Type, float Scale)
        {
            double Scaled = Value * Math.Pow(2, Scale);

            switch (Type)
            {
            case GXCompType.UInt8:
                Writer.Write((byte)Scaled);
                break;

            case GXCompType.Int8:
                Writer.Write((sbyte)Scaled);
                break;

            case GXCompType.UInt16:
                Writer.Write((ushort)Scaled);
                break;

            case GXCompType.Int16:
                Writer.Write((short)Scaled);
                break;

            case GXCompType.Float:
                Writer.Write(Scaled);
                break;

            default:
                Writer.Write((byte)Scaled);
                break;
            }
        }
コード例 #12
0
        /// <summary>
        /// writes quantanized value to stream
        /// </summary>
        /// <param name="d"></param>
        /// <param name="Value"></param>
        public void WriteValue(BinaryWriterExt d, float Value)
        {
            if (!Quantanized)
            {
                Quantanize();
            }

            switch (ValueType)
            {
            case GXAnimDataFormat.HSD_A_FRAC_FLOAT:
                d.Write(Value * ValueScale);
                break;

            case GXAnimDataFormat.HSD_A_FRAC_S16:
                d.Write((short)(Quantanize(Value, ValueType, ValueScale)));
                break;

            case GXAnimDataFormat.HSD_A_FRAC_U16:
                d.Write((ushort)(Quantanize(Value, ValueType, ValueScale)));
                break;

            case GXAnimDataFormat.HSD_A_FRAC_S8:
                d.Write((sbyte)(Quantanize(Value, ValueType, ValueScale)));
                break;

            case GXAnimDataFormat.HSD_A_FRAC_U8:
                d.Write((byte)(Quantanize(Value, ValueType, ValueScale)));
                break;

            default:
                throw new Exception("Unknown GXAnimDataFormat " + ValueType.ToString());
            }
        }
コード例 #13
0
        /*
         * Client expects:
         *
         * field_2 => 0x298u
         * field_6 => 0x1Cu
         *
         * 00000002 action          dd ?
         * 00000006 charId          db 8 dup(?)
         * 0000000E rank            dd ?
         * 00000012 teamInfo        db 664 dup(?)
         * 000002AA field_3         dw ?
         * 000002AC field_4         dd ?
         * 000002B0 field_5         dd ?
         */

        public override byte[] GetBytes()
        {
            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    // MyTeamInfoAck always Action = lpbuffer+2
                    bs.Write(Action); // Action (1003, 1004, 1031, 1034)
                    bs.Write(CharacterId);
                    bs.Write(Rank);

                    if (Crew == null)
                    {
                        bs.Write(new Crew());
                    }
                    else
                    {
                        Crew.Serialize(bs);
                    }

                    bs.Write(Age);
                    bs.Write(0); // field_4
                    bs.Write(0); // field_5
                }
                return(ms.ToArray());
            }
        }
コード例 #14
0
ファイル: Character.cs プロジェクト: sortaloc/DriftCity
 public void SerializeShort(BinaryWriterExt writer)
 {
     writer.WriteUnicodeStatic(Name, 21);
     writer.Write(Id);
     writer.Write((int)Avatar);
     writer.Write((int)Level);
     writer.Write(ActiveVehicleId);
     writer.Write(ActiveCar.CarType);
     writer.Write(ActiveCar.BaseColor);
     writer.Write(CreationDate);
     writer.Write(CrewId);
     if (Crew != null)
     {
         writer.Write(Crew.MarkId);
         writer.WriteUnicodeStatic(Crew.Name, 13);
         writer.Write((short)CrewRank);
     }
     else
     {
         writer.Write(0L);       // Is there a reason we send 0L here and not -1L?
         writer.WriteUnicodeStatic("", 13);
         writer.Write((short)0); // Crew rank
     }
     writer.Write(Guild);
 }
コード例 #15
0
        public override byte[] GetBytes()
        {
            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    bs.Write(ServerId);
                    bs.Write(ServerStartTime);
                    Character.Serialize(bs);
                    bs.Write(Vehicles.Length);
                    foreach (var vehicle in Vehicles)
                    {
                        bs.Write(vehicle.CarId);
                        bs.Write(vehicle.CarType);
                        bs.Write(vehicle.BaseColor);
                        bs.Write(vehicle.Grade);
                        bs.Write(vehicle.SlotType);
                        bs.Write(vehicle.AuctionCnt);
                        bs.Write(vehicle.Mitron);
                        bs.Write(vehicle.Kmh);

                        bs.Write(vehicle.Color);
                        bs.Write(vehicle.Color2);
                        bs.Write(vehicle.MitronCapacity);
                        bs.Write(vehicle.MitronEfficiency);
                        bs.Write(vehicle.AuctionOn);
                        bs.Write(vehicle.SBBOn);
                    }
                }
                return(ms.ToArray());
            }
        }
コード例 #16
0
        public override byte[] GetBytes()
        {
            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    for (var i = 0; i < 16; ++i)
                    {
                        bs.Write(0);
                    }
                    bs.Write(1000);
                    bs.Write(9001);
                    bs.Write(9002);
                    bs.Write(9003);
                    bs.Write(new byte[76]);
                    //StatisticInfo.Serialize(bs);
                    //EnchantBonus.Serialize(bs);
                }
                return(ms.ToArray());
            }

            /* Pulled from Rice:
             * var stat = new RicePacket(760); // StatUpdate
             * for (int i = 0; i < 16; ++i)
             *  stat.Writer.Write(0);
             * stat.Writer.Write(1000);
             * stat.Writer.Write(9001);
             * stat.Writer.Write(9002);
             * stat.Writer.Write(9003);
             * stat.Writer.Write(new byte[76]);
             * packet.Sender.Send(stat);
             */
        }
コード例 #17
0
ファイル: LVDSpawn.cs プロジェクト: youdontown/StudioSB
        public override void Write(BinaryWriterExt writer)
        {
            base.Write(writer);

            writer.Write((byte)1);
            writer.Write(X);
            writer.Write(Y);
        }
コード例 #18
0
 public void Write(BinaryWriterExt writer)
 {
     writer.Write((int)dxgiFormat);
     writer.Write((int)resourceDimension);
     writer.Write(miscFlag);
     writer.Write(arraySize);
     writer.Write(miscFlags2);
 }
コード例 #19
0
ファイル: ItemListAnswer.cs プロジェクト: tbs005/DCNC
        public override byte[] GetBytes()
        {
            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    bs.Write(262144); // First packet, 262145 would be 2nd, 3rd etc.
                    bs.Write(InventoryItems.Length);
                    foreach (var item in InventoryItems)
                    {
                        bs.Write(item);
                    }
                }
                return(ms.ToArray());
            }

            /*
             * var ack = new Packet(Packets.ItemListAck);
             * ack.Writer.Write(
             *  (uint) 0x40000); // WHAT THE? unsigned int ListUpdate; <-- Multiple pages -> Multiple packets
             * //ack.Writer.Write((uint)0); // Count
             * ack.Writer.Write((uint) 1); // Count
             * // 52 bytes of data for each item
             *
             * ack.Writer.Write((uint) 4); // CarID
             * ack.Writer.Write((ushort) 0); // State // (0 = Inventory, 1 = Equip, 4 = Auction)
             * ack.Writer.Write((ushort) 1); // Slot
             * ack.Writer.Write((uint) 1); // StateVar
             * ack.Writer.Write(1); // StackNum
             * ack.Writer.Write(0); // Random
             *
             * ack.Writer.Write((uint) 0); // AssistA
             * ack.Writer.Write((uint) 0); // AssistB
             * ack.Writer.Write((uint) 0); // Box // 255 = drop rate 5.7???
             * ack.Writer.Write((uint) 0); // Belonging (0 = , 1 = equip, 2 = get)
             * ack.Writer.Write(0); // Upgrade
             * ack.Writer.Write(0); // UpgradePoint
             * ack.Writer.Write((uint) 0); // ExpireTick
             * ack.Writer.Write((uint) 1); // TableIdx
             * ack.Writer.Write((uint) 0); // InvenIdx
             * ack.Writer.Write((uint) 0); // Is upgrade pack??
             * ack.Writer.Write((uint) 0); // Tradeable?
             * //ack.Writer.Write(new byte[46]); // 94
             *
             * /* Pulled from Rice:
             * byte[] testItem = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
             * 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
             * 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
             * 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
             * 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x91, 0x00, 0x00, 0x00, 0x00, 0x80, 0xBF,
             * 0x00, 0x00, 0x00, 0x00, 0xD9, 0x04, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
             * var ack = new RicePacket(401);
             * ack.Writer.Write(262144); // ListUpdate (262144 = First packet from list queue, 262145 = sequential)
             * ack.Writer.Write(1); // ItemNum
             * ack.Writer.Write(testItem); // Null Item (96 bytes per XiStrMyItem)
             * packet.Sender.Send(ack);
             */
        }
コード例 #20
0
        public override void Write(BinaryWriterExt writer)
        {
            base.Write(writer);

            writer.Write((byte)1);
            writer.Write(ID);

            Shape.Write(writer);
        }
コード例 #21
0
        private void SaveAndWriteTdf(string fileName)
        {
            /*_tdfFile.Header.Col = (uint) listView1.Columns.Count;
             * _tdfFile.Header.Row = (uint) listView1.Items.Count;
             * //tdfFile.Header.Offset = tdfFile.Header.Col * tdfFile.Header.Row;*/

            //_tdfFile.DataTable = new int[_tdfFile.Header.Col * _tdfFile.Header.Row];
            if (changeDateToolStripMenuItem.Checked)
            {
                _tdfFile.Header.Date.Day   = (char)DateTime.Now.Day;
                _tdfFile.Header.Date.Month = (char)DateTime.Now.Month;
                _tdfFile.Header.Date.Year  = (ushort)DateTime.Now.Year;
            }

            if (increaseVersionToolStripMenuItem.Checked)
            {
                if (_tdfFile.Version.Minor < 9)
                {
                    _tdfFile.Version.Minor++;
                }
                else
                {
                    _tdfFile.Version.Major++;
                    _tdfFile.Version.Minor = 0;
                }
            }

            var columns = (int)_tdfFile.Header.Col;
            var rows    = (int)_tdfFile.Header.Row;
            var offset  = (int)_tdfFile.Header.Offset;
            //var size = offset + (columns * 4 * rows + 24);
            var size = offset - (columns * 4 * rows + 24);

            _tdfFile.ResTable = new byte[size];

            // Each column has only 4 bytes?

            using (var writer = new BinaryWriterExt(new MemoryStream(_tdfFile.ResTable)))
            {
                for (var row = 0; row < _tdfFile.Header.Row; row++)
                {
                    for (var col = 1; col < _tdfFile.Header.Col + 1; col++)
                    {
                        var colText = listView1.Items[row].SubItems[col].Text;
                        foreach (var c in colText)
                        {
                            Debug.WriteLineIf(row == 0, "Writing char: " + c);
                            writer.Write(Encoding.ASCII.GetBytes(new[] { c }));
                            writer.Write((byte)0);
                        }
                        writer.Write(new byte[2]);
                    }
                }
            }

            _tdfFile.Save(fileName);
        }
コード例 #22
0
ファイル: Character.cs プロジェクト: sortaloc/DriftCity
        /// <summary>
        ///
        /// </summary>
        /// <param name="writer"></param>
        public void Serialize(BinaryWriterExt writer)
        {
            writer.Write(Id);
            writer.WriteUnicodeStatic(Name, 21);
            writer.WriteUnicodeStatic(LastMessageFrom, 11);
            writer.Write(LastDate);
            writer.Write(Avatar);
            writer.Write(Level);

            writer.Write(ExperienceInfo);

            writer.Write(MitoMoney);
            if (Crew == null)
            {
                writer.Write(-1L);
                writer.Write(0L);
                writer.WriteUnicodeStatic("", 13);
                writer.Write(0);
            }
            else
            {
                writer.Write(Crew.Id);
                writer.Write(Crew.MarkId);
                writer.WriteUnicodeStatic(Crew.Name, 13);
                writer.Write(CrewRank);
            }

            writer.Write(PartyType); // possibly 65 when admin or cheatable
            writer.Write(PvpCount);
            writer.Write(PvpWinCount);
            writer.Write(PvpPoint);
            writer.Write(TeamPvpCount);
            writer.Write(TeamPvpWinCount);
            writer.Write(TeamPvpPoint);
            writer.Write(QuickCount);
            writer.Write(0);             // unknown
            writer.Write(0);             // unknown
            writer.Write(TotalDistance); // NOPE! TotalDistance says 62!
            writer.Write(Position);
            writer.Write(LastChannel);
            writer.Write(City);
            writer.Write(PosState);
            writer.Write(ActiveVehicleId);
            writer.Write(QuickSlot1);
            writer.Write(QuickSlot2);
            writer.Write(TeamJoinDate);
            writer.Write(TeamCloseDate);
            writer.Write(TeamLeaveDate);
            writer.Write(new byte[12]); // filler
            writer.Write(InventoryLevel);
            writer.Write(GarageLevel);
            writer.Write(new byte[42]); // filler
            writer.Write(Flags);
            writer.Write((int)Guild);
            //writer.Write(new byte[38]); // filler
            //writer.Write(GPTeam); // DCGP team
        }
コード例 #23
0
        public override void Write(BinaryWriterExt writer)
        {
            base.Write(writer);

            writer.Write((byte)1);
            writer.Write(Position.X);
            writer.Write(Position.Y);
            writer.Write(Angle);
            writer.Write(LineIndex);
        }
コード例 #24
0
        private void WriteAt(BinaryWriterExt ext, int pos, int value)
        {
            var tmp = ext.BaseStream.Position;

            ext.BaseStream.Position = pos;

            ext.Write(value);

            ext.BaseStream.Position = tmp;
        }
コード例 #25
0
ファイル: LVDBounds.cs プロジェクト: youdontown/StudioSB
        public override void Write(BinaryWriterExt writer)
        {
            base.Write(writer);

            writer.Write((byte)1);
            writer.Write(Left);
            writer.Write(Right);
            writer.Write(Top);
            writer.Write(Bottom);
        }
コード例 #26
0
ファイル: OutPacket.cs プロジェクト: sortaloc/DriftCity
 public virtual byte[] GetBytes()
 {
     using (var ms = new MemoryStream())
     {
         using (var bs = new BinaryWriterExt(ms))
         {
         }
         return(ms.ToArray());
     }
 }
コード例 #27
0
ファイル: AreaListAnswer.cs プロジェクト: sortaloc/DriftCity
        public override byte[] GetBytes()
        {
            using (var ms = new MemoryStream())
            {
                using (var bs = new BinaryWriterExt(ms))
                {
                    bs.Write(Areas.Length);
                    foreach (var area in Areas)
                    {
                        bs.Write(area.AreaId);
                        bs.Write(area.CurrentPlayers);
                        bs.Write(area.MaxPlayers);
                        bs.Write(area.ChannelState);
                        bs.Write(area.Tax);
                        bs.Write(area.TeamId);
                        bs.Write(area.TeamMarkId);
                        bs.WriteUnicodeStatic(area.TeamName, 13);
                        bs.Write(area.Ranking);
                        bs.Write(area.Point);
                        bs.Write(area.WinCount);
                        bs.Write(area.MemberCount);
                        bs.Write(area.OwnerId);
                        bs.WriteUnicodeStatic(area.OwnerName, 21);
                        bs.Write(area.TotalExp);
                        bs.Write((long)0); // ??????
                    }
                }
                return(ms.ToArray());
            }

            /*
             * var ack = new Packet(Packets.AreaListAck);
             * ack.Writer.Write((uint) 10);
             * for (var k = 0; k < 10; ++k)
             * {
             *  ack.Writer.Write(k); // AreaId
             *  ack.Writer.Write(0); // Current?
             *  ack.Writer.Write(100); // Max?
             *  ack.Writer.Write(1); // ChannelState
             *  ack.Writer.Write((float) 0); // Tax?
             *
             *  ack.Writer.Write((long) 0); // teamID?
             *  ack.Writer.Write((long) 0); // teamMarkID
             *  ack.Writer.WriteUnicodeStatic("Staff", 13); // TeamName
             *  ack.Writer.Write((uint) 0); // Ranking
             *  ack.Writer.Write((uint) 0); // Point
             *  ack.Writer.Write((uint) 0); // WinCnt
             *  ack.Writer.Write(20); // Membercnt
             *  ack.Writer.Write((long) 1); // OwnerId
             *  ack.Writer.WriteUnicodeStatic("Administrator", 21); // OwnerName
             *  ack.Writer.Write((long) 0); // TotalExp
             *  ack.Writer.Write((long) 0); // ????????
             * }
             */
        }
コード例 #28
0
 public override byte[] GetBytes()
 {
     using (var ms = new MemoryStream())
     {
         using (var bs = new BinaryWriterExt(ms))
         {
             bs.WriteUnicodeStatic(CharacterName, 21);
         }
         return(ms.ToArray());
     }
 }
コード例 #29
0
 public override byte[] GetBytes()
 {
     using (var ms = new MemoryStream())
     {
         using (var bs = new BinaryWriterExt(ms))
         {
             bs.Write(Result);
         }
         return(ms.ToArray());
     }
 }
コード例 #30
0
 public void Serialize(BinaryWriterExt writer)
 {
     writer.Write(CarId);
     writer.Write(ItemState);
     writer.Write(TableIdx);
     writer.Write(InvenIdx);
     writer.Write(PlateName);
     writer.Write(Period);
     writer.Write(UpdateTime);
     writer.Write(CreateTime);
 }