Write() public méthode

Writes a 1-byte boolean value to the underlying stream. False is represented by 0, true by 1.
public Write ( bool value ) : void
value bool
Résultat void
        public Packet( int packetID, int length )
        {
            m_PacketID = packetID;
            m_Length = length;

            m_Stream = PacketWriter.CreateInstance( length );// new PacketWriter( length );
            m_Stream.Write( (byte) packetID );

            PacketProfile prof = PacketProfile.GetOutgoingProfile( (byte)packetID );

            if ( prof != null )
                prof.RegConstruct();
        }
 public void EnsureCapacity( int length )
 {
     m_Stream = PacketWriter.CreateInstance( length );// new PacketWriter( length );
     m_Stream.Write( (byte) m_PacketID );
     m_Stream.Write( (short) 0 );
 }
Exemple #3
0
        protected Packet( int packetID, int length )
        {
            m_PacketID = packetID;
            m_Length = length;

            m_Stream = PacketWriter.CreateInstance( length );// new PacketWriter( length );
            m_Stream.Write( ( byte ) packetID );

            PacketSendProfile prof = PacketSendProfile.Acquire( GetType() );

            if ( prof != null ) {
                prof.Created++;
            }
        }
 public static void WriteReverse( PacketWriter stream, int cur, int max )
 {
     if ( m_Enabled && max != 0 )
     {
         stream.Write( (short) ((cur * m_Maximum) / max) );
         stream.Write( (short) m_Maximum );
     }
     else
     {
         stream.Write( (short) cur );
         stream.Write( (short) max );
     }
 }
Exemple #5
0
        protected Packet(int packetID, int length, PacketWriter stream)
        {
            m_PacketID = packetID;
            m_Length = length;

            m_Stream = stream;
            m_Stream.Write((byte)packetID);

            if (Core.Profiling)
            {
                PacketSendProfile prof = PacketSendProfile.Acquire(GetType());
                prof.Increment();
            }
        }
Exemple #6
0
        protected void Initialize( int packetID, int length )
        {
            m_PacketID = packetID;
            m_Length = length;
            m_State = State.Inactive;

            if ( m_Length > 0 )
            {
                m_Stream = PacketWriter.CreateInstance( length );
                m_Stream.Write( (byte) packetID );
            }

            // TODO: raise an event OnInitialize, in order to do profiling stuff.
        }
Exemple #7
0
        public WorldItemHS(Item item, PacketWriter stream)
            : base(0xF3, 26, stream)
        {
            stream.Write((short)0x1);

            int itemID = item.ItemID;

            if (item is BaseMulti)
                m_Stream.Write((byte)0x02);
            else if (item is IDamageable)
                m_Stream.Write((byte)0x03);
            else
                m_Stream.Write((byte)0x00);

            if (item is BaseMulti)
            {
                stream.Write((int)item.Serial);
                itemID &= 0x3FFF;
                stream.Write((ushort)itemID);
                stream.Write((byte)0);
            }
            else
            {
                stream.Write((int)item.Serial);
                itemID &= 0xFFFF;
                stream.Write((ushort)itemID);
                stream.Write((byte)0);
            }

            int amount = item.Amount;
            stream.Write((short)amount);
            stream.Write((short)amount);

            Point3D loc = item.Location;
            int x = loc.m_X & 0x7FFF;
            int y = loc.m_Y & 0x3FFF;
            stream.Write((short)x);
            stream.Write((short)y);
            stream.Write((sbyte)loc.m_Z);

            stream.Write((byte)item.Light);
            stream.Write((short)item.Hue);
            stream.Write((byte)item.GetPacketFlags());

            stream.Write((short)0x00); // ??
        }
Exemple #8
0
        public WorldItemHS(Mobile mob, PacketWriter stream)
            : base(0xF3, 26, stream)
        {
            stream.Write((short)0x1);

            stream.Write((byte)0x01);
            stream.Write((int)mob.Serial);
            stream.Write((ushort)mob.BodyValue);
            stream.Write((byte)0);

            int amount = 1;
            stream.Write((short)amount);
            stream.Write((short)amount);

            Point3D loc = mob.Location;
            int x = loc.m_X & 0x7FFF;
            int y = loc.m_Y & 0x3FFF;
            stream.Write((short)x);
            stream.Write((short)y);
            stream.Write((sbyte)loc.m_Z);

            stream.Write((byte)mob.LightLevel);
            stream.Write((short)mob.Hue);
            stream.Write((byte)mob.GetPacketFlags());

            stream.Write((short)0x00); // ??
        }
Exemple #9
0
		protected Packet(int packetID, int length)
		{
			m_PacketID = packetID;
			m_Length = length;

			m_Stream = PacketWriter.CreateInstance(length); // new PacketWriter( length );
			m_Stream.Write((byte)packetID);

			if (Core.Profiling)
			{
				PacketSendProfile prof = PacketSendProfile.Acquire(GetType());
				prof.Increment();
			}
		}
Exemple #10
0
        protected void Initialize(int packetID, int length)
        {
            m_PacketID = packetID;
            m_Length = length;

            if (m_Length > 0) {
                m_Stream = PacketWriter.CreateInstance(length);
                m_Stream.Write((byte)packetID);
            }

            PacketProfile prof = PacketProfile.GetOutgoingProfile( (byte)packetID );

            if ( prof != null )
                prof.RegConstruct();
        }
		private static void Write(PacketWriter m_Stream, Mobile m, int noto) {
			Point3D loc = m.Location;

			int hue = m.Hue;

			if ( m.SolidHueOverride >= 0 )
				hue = m.SolidHueOverride;

			m_Stream.Write( (int) m.Serial );
			m_Stream.Write( (short) m.Body );
			m_Stream.Write( (short) loc.m_X );
			m_Stream.Write( (short) loc.m_Y );
			m_Stream.Write( (sbyte) loc.m_Z );
			m_Stream.Write( (byte) m.Direction );
			m_Stream.Write( (short) hue );
			m_Stream.Write( (byte) m.GetPacketFlags() );
			m_Stream.Write( (byte) noto );//Notoriety.Compute( beholder, beheld ) );
		}
Exemple #12
0
        //Smooth Multi START
        protected Packet(int packetID, int length, PacketWriter stream)
        {
            m_PacketID = packetID;
            m_Length = length;

            m_Stream = stream;
            m_Stream.Write((byte)packetID);

            PacketSendProfile prof = PacketSendProfile.Acquire(GetType());

            if (prof != null)
            {
                prof.Created++;
            }
        }
Exemple #13
0
 public void EnsureCapacity(int length)
 {
     m_Stream = PacketWriter.CreateInstance(length); // new PacketWriter( length );
     m_Stream.Write((byte)PacketID);
     m_Stream.Write((short)0);
 }
Exemple #14
0
        private void InternalCompile(bool compress)
        {
            if (m_Length == 0)
            {
                long streamLen = m_Stream.Length;

                m_Stream.Seek(1, SeekOrigin.Begin);
                m_Stream.Write((ushort)streamLen);
            }
            else if (m_Stream.Length != m_Length)
            {
                int diff = (int)m_Stream.Length - m_Length;

                Console.WriteLine("Packet: 0x{0:X2}: Bad packet length! ({1}{2} bytes)", PacketID, diff >= 0 ? "+" : "",
                                  diff);
            }

            MemoryStream ms = m_Stream.UnderlyingStream;

            m_CompiledBuffer = ms.GetBuffer();
            int length = (int)ms.Length;

            if (compress)
            {
                byte[] buffer = ArrayPool <byte> .Shared.Rent(CompressorBufferSize);

                Compression.Compress(m_CompiledBuffer, 0, length, buffer, out length);

                if (length <= 0)
                {
                    Console.WriteLine("Warning: Compression buffer overflowed on packet 0x{0:X2} ('{1}') (length={2})",
                                      PacketID, GetType().Name, length);
                    using StreamWriter op = new StreamWriter("compression_overflow.log", true);
                    op.WriteLine("{0} Warning: Compression buffer overflowed on packet 0x{1:X2} ('{2}') (length={3})",
                                 DateTime.UtcNow, PacketID, GetType().Name, length);
                    op.WriteLine(new StackTrace());
                }
                else
                {
                    m_CompiledLength = length;

                    if ((m_State & State.Static) != 0)
                    {
                        m_CompiledBuffer = new byte[length];
                        Buffer.BlockCopy(buffer, 0, m_CompiledBuffer, 0, length);
                        ArrayPool <byte> .Shared.Return(buffer);
                    }
                    else
                    {
                        m_CompiledBuffer = buffer;
                        m_State         |= State.Buffered;
                    }
                }
            }
            else if (length > 0)
            {
                byte[] old = m_CompiledBuffer;
                m_CompiledLength = length;

                if ((m_State & State.Static) != 0)
                {
                    m_CompiledBuffer = new byte[length];
                }
                else
                {
                    m_CompiledBuffer = ArrayPool <byte> .Shared.Rent(length);

                    m_State |= State.Buffered;
                }

                Buffer.BlockCopy(old, 0, m_CompiledBuffer, 0, length);
            }

            PacketWriter.ReleaseInstance(m_Stream);
            m_Stream = null;
        }
            public SmoothMove(BaseGalleon galleon, object[] objectsonboard)
                : base(0xF6)
            {
                short packetlen = 1 + 17;

                packetlen += (short)(objectsonboard.Length * 10);

                packetlen = (short)(((packetlen & 0xff) << 8) | ((packetlen >> 8) & 0xff));
                //to little endian

                m_Stream = new PacketWriter( packetlen );
                m_Stream.Write((byte)PacketID);

                m_Stream.Write((short)packetlen);

                m_Stream.Write((int)galleon.Serial);
                m_Stream.Write((byte)galleon.Speed);
                m_Stream.Write((byte)galleon.Moving);
                m_Stream.Write((byte)galleon.Direction);

                m_Stream.Write((short)galleon.X);
                m_Stream.Write((short)galleon.Y);
                m_Stream.Write((byte)0xFF);
                m_Stream.Write((sbyte)galleon.Z);

                m_Stream.Write((byte)0x0);
                m_Stream.Write((byte)objectsonboard.Length);

                #region items
                foreach (object o in objectsonboard)
                {
                    if (o is Mobile)
                    {
                            m_Stream.Write((int)((Mobile)o).Serial);
                            m_Stream.Write((short)((Mobile)o).X);
                            m_Stream.Write((short)((Mobile)o).Y);
                            m_Stream.Write((byte)0xFF);
                            m_Stream.Write((sbyte)((Mobile)o).Z);
                    }

                    if (o is Item)
                    {
                        m_Stream.Write((int)((Item)o).Serial);
                        m_Stream.Write((short)((Item)o).X);
                        m_Stream.Write((short)((Item)o).Y);
                        m_Stream.Write((byte)0xFF);
                        m_Stream.Write((sbyte)((Item)o).Z);
                    }
                }
                #endregion


                //    * BYTE[1] 0xF6
                //    * BYTE[2] Packet Length ( little endian format )
                //    * BYTE[4] Serial Multi
                //    * BYTE[1] Movement Speed
                //    * BYTE[1] Movement Direction
                //    * BYTE[1] Multi Direction
                //    * BYTE[2] X
                //    * BYTE[2] Y
                //    * BYTE[1] Fixed 0xFF
                //    * SBYTE[1] Z
                //    * BYTE[1] Fixed 0x0
                //    * BYTE[1] List Length
                //    * BYTE[List Length * 10] List 

                //Each List Entry is Composed by:

                //    * BYTE[4] Item Serial
                //    * BYTE[2] X
                //    * BYTE[2] Y
                //    * BYTE[1] Fixed 0xFF
                //    * SBYTE[1] Z 
            }