示例#1
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());
        }
示例#2
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            buffer.WriteByte(PlayerID);
            buffer.WriteByte(Paused ? 1 : 0);

            return(buffer.GetMessageBuffer());
        }
示例#3
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());
        }
示例#4
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());
        }
示例#5
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());
        }
示例#6
0
 public void Pack(DynamicOutputBuffer buffer)
 {
     buffer.WriteByte(PlayerID);
     buffer.WriteUInt16(Wins);
     buffer.WriteUInt16(Losses);
     buffer.WriteUInt16(TeamKills);
 }
示例#7
0
        protected void PackHeader(DynamicOutputBuffer buffer)
        {
            buffer.WriteFloat(TimeStamp);
            buffer.WriteByte((byte)PlayerID);

            buffer.WriteInt32(Order);
            buffer.WriteInt16((Int16)Status);
        }
示例#8
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

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

            return(buffer.GetMessageBuffer());
        }
示例#9
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

            if (!IsOnServer)
            {
                buffer.WriteByte((byte)PlayerID);
            }
            return(buffer.GetMessageBuffer());
        }
示例#10
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());
        }
示例#11
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());
        }
示例#12
0
        public override byte[] Pack()
        {
            DynamicOutputBuffer buffer = DynamicOutputBuffer.Get(Code);

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

            return(buffer.GetMessageBuffer());
        }
示例#13
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());
        }
示例#14
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());
        }
示例#15
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());
        }
示例#16
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());
        }
示例#17
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());
        }
示例#18
0
        protected void PackFooter(DynamicOutputBuffer buffer)
        {
            if (Status == PlayerStatuses.JumpJets)
            {
                buffer.WriteSmallScale(JumpSquish);                             //2
            }
            if (Status == PlayerStatuses.OnDriver)
            {
                buffer.WriteInt32(OnDriver);                                            //4
            }
            if (Status == PlayerStatuses.UserInputs)
            {
                buffer.WriteSmallVel(UserSpeed);                                //6
                buffer.WriteSmallAngVel(UserAngVel);                            //8
            }

            if (Status == PlayerStatuses.PlaySound)
            {
                buffer.WriteByte((byte)Sounds);                 //9
            }
        }
示例#19
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);
            }
        }