Пример #1
0
 public void Pack(DynamicOutputBuffer buffer)
 {
     buffer.WriteByte(PlayerID);
     buffer.WriteUInt16(Wins);
     buffer.WriteUInt16(Losses);
     buffer.WriteUInt16(TeamKills);
 }
Пример #2
0
        protected byte[] CompressMap()
        {
            int uncompressedSize = DynaBuffer.GetBytesUsed();

            MemoryStream ms = new MemoryStream();

            Ionic.Zlib.ZlibStream ws = new Ionic.Zlib.ZlibStream(ms, Ionic.Zlib.CompressionMode.Compress, Ionic.Zlib.CompressionLevel.BestCompression, true);

            ws.Write(DynaBuffer.GetRawBuffer(), 0, uncompressedSize);
            ws.Flush();

            ws.Close();

            int len = (int)ms.Length;

            byte[] compressedData = ms.GetBuffer();
            // ms.Length();
            Array.Resize(ref compressedData, (int)ms.Length);

            DynamicOutputBuffer header = DynamicOutputBuffer.GetTempBuffer(64);

            header.WriteUInt16(Constants.WorldCodeHeaderSize);
            header.WriteUInt16(Constants.WorldCodeHeader);
            header.WriteUInt16(1);

            header.WriteUInt32(uncompressedSize);
            header.WriteUInt32(compressedData.Length);

            header.WriteBytes(compressedData);
            header.WriteUInt16(Constants.WorldCodeEndSize);
            header.WriteUInt16(Constants.WorldCodeEnd);

            return(header.GetFinalBuffer());
        }
Пример #3
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(PlayerID);
            buffer.WriteUInt16((UInt16)FromTPID);
            buffer.WriteUInt16((UInt16)ToTPID);

            return(buffer.GetMessageBuffer());
        }
Пример #4
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(TeamUpdates.Count);
            foreach (TeamUpdate upd in TeamUpdates)
            {
                buffer.WriteUInt16((int)upd.TeamID);
                buffer.WriteUInt16((int)upd.Size);
                buffer.WriteUInt16((int)upd.Wins);
                buffer.WriteUInt16((int)upd.Losses);
            }

            return(buffer.GetMessageBuffer());
        }
Пример #5
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(PlayerID);
            buffer.WriteUInt16((int)PlayerType);
            buffer.WriteUInt16((int)Team);
            buffer.WriteUInt16((int)Wins);
            buffer.WriteUInt16((int)Losses);
            buffer.WriteUInt16((int)TeamKills);
            buffer.WriteFixedSizeString(Callsign, Constants.CallsignLen);
            buffer.WriteFixedSizeString(Motto, Constants.MottoLen);

            return(buffer.GetMessageBuffer());
        }
Пример #6
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteUInt16(SequenceNumber);
            return(buffer.GetMessageBuffer());
        }
Пример #7
0
        protected void WriteBases(List <Base> items)
        {
            DynaBuffer.WriteInt32(items.Count);

            foreach (var o in items)
            {
                DynaBuffer.WriteUInt16((UInt16)o.TeamColor);
                DynaBuffer.WriteVector3F(o.Position);
                DynaBuffer.WriteFloat(o.Rotation);
                DynaBuffer.WriteVector3F(o.Size);

                byte state = 0;

                if (o.DriveThrough)
                {
                    state |= Constants.DRIVE_THRU;
                }
                if (o.ShootThrough)
                {
                    state |= Constants.SHOOT_THRU;
                }
                if (o.Ricochet)
                {
                    state |= Constants.RICOCHET;
                }
                DynaBuffer.WriteByte(state);
            }
        }
Пример #8
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteUInt16((UInt16)ReasonCode);
            buffer.WriteNullTermString(ReasonMessage);

            return(buffer.GetMessageBuffer());
        }
Пример #9
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(PlayerID);
            buffer.WriteInt16((UInt16)ShotID);
            buffer.WriteUInt16((UInt16)(Exploded ? 0 : 1));

            return(buffer.GetMessageBuffer());
        }
Пример #10
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteUInt16(FlagUpdates.Count);
            foreach (FlagUpdateData f in FlagUpdates)
            {
                buffer.WriteFlagUpdateData(f, HideType);
            }

            return(buffer.GetMessageBuffer());
        }
Пример #11
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteUInt16(BZDBVariables.Count);
            foreach (var v in BZDBVariables)
            {
                buffer.WritePascalString(v.Key);
                buffer.WritePascalString(v.Value);
            }

            return(buffer.GetMessageBuffer());
        }
Пример #12
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteUInt16((UInt16)PlayerType);
            buffer.WriteInt16((Int16)PlayerTeam);

            buffer.WriteFixedSizeString(Callsign, Constants.CallsignLen);
            buffer.WriteFixedSizeString(Motto, Constants.MottoLen);
            buffer.WriteFixedSizeString(Token, Constants.TokenLen);
            buffer.WriteFixedSizeString(Version, Constants.VersionLen);

            return(buffer.GetMessageBuffer());
        }
Пример #13
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(FromID);
            buffer.WriteByte(ToID);

            if (IsServer())
            {
                buffer.WriteUInt16((UInt16)FlagID);
            }

            return(buffer.GetMessageBuffer());
        }
Пример #14
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(PlayerID);
            buffer.WriteUInt16((UInt16)ShotID);
            buffer.WriteVector3F(Position);
            buffer.WriteVector3F(Velocity);
            buffer.WriteFloat(DeltaTime);
            buffer.WriteInt16((Int16)Team);
            buffer.WriteByte(TargetID);

            return(buffer.GetMessageBuffer());
        }
Пример #15
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            if (IsServer())
            {
                buffer.WriteByte(PlayerID);
                buffer.WriteFlagUpdateData(FlagData, false);
            }
            else
            {
                buffer.WriteUInt16(FlagData.FlagID);
            }

            return(buffer.GetMessageBuffer());
        }
Пример #16
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteFloat(WorldSize);
            buffer.WriteUInt16((int)GameType);
            buffer.WriteUInt16((int)GameOptions);
            buffer.WriteUInt16(MaxPlayers);
            buffer.WriteUInt16(MaxShots);
            buffer.WriteUInt16(MaxFlags);

            buffer.WriteFloat(LinearAcceleration);
            buffer.WriteFloat(AngularAcceleration);

            buffer.WriteUInt16((int)(ShakeTimeout / 0.1f));
            buffer.WriteUInt16(ShakeWins);

            buffer.WriteUInt32(UsedToBeSyncTime);

            return(buffer.GetMessageBuffer());
        }