예제 #1
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(PlayerID);
            return(buffer.GetMessageBuffer());
        }
예제 #2
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteInt64(NetTime);
            return(buffer.GetMessageBuffer());
        }
예제 #3
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteUInt16(SequenceNumber);
            return(buffer.GetMessageBuffer());
        }
예제 #4
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(VictimID);
            buffer.WriteByte(KillerID);

            int r = (int)Reason;

            if (Reason == BlowedUpReasons.DeathTouch)
            {
                r = Constants.PhysicsDriverDeath;
            }
            buffer.WriteInt16(r);

            buffer.WriteInt16(ShotID);
            buffer.WriteFixedSizeString(FlagAbreviation, 2);

            if (Reason == BlowedUpReasons.DeathTouch)
            {
                buffer.WriteInt32(PhysicsDriverID);
            }

            return(buffer.GetMessageBuffer());
        }
예제 #5
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteNullTermString(URL);

            return(buffer.GetMessageBuffer());
        }
예제 #6
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

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

            return(buffer.GetMessageBuffer());
        }
예제 #7
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            if (!IsOnServer)
            {
                buffer.WriteByte((byte)PlayerID);
            }
            return(buffer.GetMessageBuffer());
        }
예제 #8
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(PlayerID);
            buffer.WriteUInt16((UInt16)FlagID);
            buffer.WriteInt16((Int16)Team);

            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);

            foreach (var f in FlagAbrevs)
            {
                buffer.WriteFixedSizeString(f, 2);
            }

            return(buffer.GetMessageBuffer());
        }
예제 #11
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            if (NetworkMessage.IsOnServer)
            {
                buffer.WriteNullTermString((IsRandomMap ? "t" : string.Empty) + WorldHash);
            }

            return(buffer.GetMessageBuffer());
        }
예제 #12
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());
        }
예제 #13
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteUInt32(Offset);

            if (Data.Length > 0)
            {
                buffer.WriteBytes(Data);
            }
            return(buffer.GetMessageBuffer());
        }
예제 #14
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(PlayerUpdates.Count);
            foreach (var p in PlayerUpdates)
            {
                buffer.WriteByte(p.PlayerID);
                buffer.WriteByte((int)p.Attributes);
            }

            return(buffer.GetMessageBuffer());
        }
예제 #15
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            if (!IsSpawn)
            {
                buffer.WriteByte(PlayerID);
                buffer.WriteVector3F(Position);
                buffer.WriteFloat(Azimuth);
            }

            return(buffer.GetMessageBuffer());
        }
예제 #16
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());
        }
예제 #17
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());
        }
예제 #18
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());
        }
예제 #19
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());
        }
예제 #20
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());
        }
예제 #21
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            PackHeader(buffer);

            buffer.WriteSmallVector3F(Position);
            buffer.WriteSmallVelVector3F(Velocity);

            buffer.WriteSmallAngle(Azimuth);
            buffer.WriteSmallAngVel(AngularVelocity);

            PackFooter(buffer);
            return(buffer.GetMessageBuffer());
        }
예제 #22
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());
        }
예제 #23
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            if (IsServer())
            {
                buffer.WriteByte(PlayerID);
                buffer.WriteFlagUpdateData(Data, true);
            }
            else
            {
                buffer.WriteVector3F(Postion);
            }

            return(buffer.GetMessageBuffer());
        }
예제 #24
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());
        }
예제 #25
0
        public override byte[] Pack()
        {
            if (Scores.Count == 0)
            {
                return(null);
            }

            var buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(Scores.Count);
            foreach (var score in Scores)
            {
                score.Pack(buffer);
            }

            return(buffer.GetMessageBuffer());
        }
예제 #26
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            if (!IsServer())
            {
                buffer.WriteByte((byte)To);
                buffer.WriteFixedSizeString(MessageText, BZFlag.Data.Types.Constants.ChatMessageLenght);
            }
            else
            {
                buffer.WriteByte((byte)From);
                buffer.WriteByte((byte)To);
                buffer.WriteByte((byte)MessageType);
            }

            buffer.WriteFixedSizeString(MessageText, BZFlag.Data.Types.Constants.ChatMessageLenght);
            return(buffer.GetMessageBuffer());
        }
예제 #27
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteFloat(TimeSent);
            buffer.WriteByte(PlayerID);
            buffer.WriteInt16(ShotID);

            buffer.WriteVector3F(Position);
            buffer.WriteVector3F(Velocity);

            buffer.WriteFloat(DeltaTime);

            buffer.WriteInt16((UInt16)Team);

            buffer.WriteFixedSizeString(Flag, 2);
            buffer.WriteFloat(Lifetime);

            return(buffer.GetMessageBuffer());
        }
예제 #28
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());
        }
예제 #29
0
 public override byte[] Pack()
 {
     return(DynamicOutputBuffer.Get(Code).GetMessageBuffer());
 }