Ejemplo n.º 1
0
        public void WriteByMask(byte[] bitmask, BinaryWriter writer)
        {
            BitArray bitArray = new BitArray(bitmask);

            if (bitArray.Get(0))
            {
                Position.Write(writer);
            }
            if (bitArray.Get(1))
            {
                Rotation.Write(writer);
            }
            if (bitArray.Get(2))
            {
                Velocity.Write(writer);
            }
            if (bitArray.Get(3))
            {
                Acceleration.Write(writer);
            }
            if (bitArray.Get(4))
            {
                ExtraVelocity.Write(writer);
            }
            if (bitArray.Get(5))
            {
                writer.Write(LookPitch);
            }
            if (bitArray.Get(6))
            {
                writer.Write(PhysicsFlags);
            }
            if (bitArray.Get(7))
            {
                writer.Write(SpeedFlags);
            }
            if (bitArray.Get(8))
            {
                writer.Write(EntityType);
            }
            if (bitArray.Get(9))
            {
                writer.Write(CurrentMode);
            }
            if (bitArray.Get(10))
            {
                writer.Write(LastShootTime);
            }
            if (bitArray.Get(11))
            {
                writer.Write(HitCounter);
            }
            if (bitArray.Get(12))
            {
                writer.Write(LastHitTime);
            }
            if (bitArray.Get(13))
            {
                Appearance.Write(writer);
            }
            if (bitArray.Get(14))
            {
                writer.Write(Flags1);
                writer.Write(Flags2);
            }
            if (bitArray.Get(15))
            {
                writer.Write(RollTime);
            }
            if (bitArray.Get(16))
            {
                writer.Write(StunTime);
            }
            if (bitArray.Get(17))
            {
                writer.Write(SlowedTime);
            }
            if (bitArray.Get(18))
            {
                writer.Write(MakeBlueTime);
            }
            if (bitArray.Get(19))
            {
                writer.Write(SpeedUpTime);
            }
            if (bitArray.Get(20))
            {
                writer.Write(ShowPatchTime);
            }
            if (bitArray.Get(21))
            {
                writer.Write(ClassType);
            }
            if (bitArray.Get(22))
            {
                writer.Write(Specialization);
            }
            if (bitArray.Get(23))
            {
                writer.Write(ChargedMp);
            }
            if (bitArray.Get(24))
            {
                writer.Write(notUsed1);
                writer.Write(notUsed2);
                writer.Write(notUsed3);
            }
            if (bitArray.Get(25))
            {
                writer.Write(notUsed4);
                writer.Write(notUsed5);
                writer.Write(notUsed6);
            }
            if (bitArray.Get(26))
            {
                RayHit.Write(writer);
            }
            if (bitArray.Get(27))
            {
                writer.Write(HP);
            }
            if (bitArray.Get(28))
            {
                writer.Write(MP);
            }
            if (bitArray.Get(29))
            {
                writer.Write(BlockPower);
            }
            if (bitArray.Get(30))
            {
                writer.Write(MaxHpMultiplier);
                writer.Write(ShootSpeed);
                writer.Write(DamageMultiplier);
                writer.Write(ArmorMultiplier);
                writer.Write(ResistanceMultiplier);
            }
            if (bitArray.Get(31))
            {
                writer.Write(notUsed7);
            }
            if (bitArray.Get(32))
            {
                writer.Write(notUsed8);
            }
            if (bitArray.Get(33))
            {
                writer.Write(Level);
            }
            if (bitArray.Get(34))
            {
                writer.Write(CurrentXp);
            }
            if (bitArray.Get(35))
            {
                writer.Write(ParentOwner);
            }
            if (bitArray.Get(36))
            {
                writer.Write(unknownOrNotUsed1);
                writer.Write(unknownOrNotUsed2);
            }
            if (bitArray.Get(37))
            {
                writer.Write(unknownOrNotUsed3);
            }
            if (bitArray.Get(38))
            {
                writer.Write(unknownOrNotUsed4);
            }
            if (bitArray.Get(39))
            {
                writer.Write(unknownOrNotUsed5);
                writer.Write(notUsed11);
                writer.Write(notUsed12);
            }
            if (bitArray.Get(40))
            {
                writer.Write(notUsed13);
                writer.Write(notUsed14);
                writer.Write(notUsed15);
                writer.Write(notUsed16);
                writer.Write(notUsed17);
                writer.Write(notUsed18);
            }
            if (bitArray.Get(41))
            {
                writer.Write(notUsed20);
                writer.Write(notUsed21);
                writer.Write(notUsed22);
            }
            if (bitArray.Get(42))
            {
                writer.Write(notUsed19);
            }
            if (bitArray.Get(43))
            {
                ItemData.Write(writer);
            }
            if (bitArray.Get(44))
            {
                for (int i = 0; i < 13; i++)
                {
                    Equipment[i].Write(writer);
                }
            }
            if (bitArray.Get(45))
            {
                writer.Write(Encoding.UTF8.GetBytes(Name));
                writer.Write(new byte[16 - Name.Length]);
            }
            if (bitArray.Get(46))
            {
                for (int i = 0; i < 11; i++)
                {
                    writer.Write(Skills[i]);
                }
            }
            if (bitArray.Get(47))
            {
                writer.Write(IceBlockFour);
            }
        }