示例#1
0
        protected WorldObject(ObjectType type, ObjectGuid guid)
        {
            Type = type;
            Guid = guid;

            GameData    = new GameData();
            ModelData   = new ModelData();
            PhysicsData = new PhysicsData();
        }
示例#2
0
        protected WorldObject(ObjectType type, ObjectGuid guid)
        {
            Type = type;
            Guid = guid;

            GameData    = new GameData();
            ModelData   = new ModelData();
            PhysicsData = new PhysicsData();

            Sequences = new SequenceManager();
            Sequences.AddSequence(SequenceType.MotionMessage, new UShortSequence(2));
            Sequences.AddSequence(SequenceType.Motion, new UShortSequence(1));
        }
示例#3
0
        protected WorldObject(ObjectType type, ObjectGuid guid)
        {
            Type = type;
            Guid = guid;

            GameData  = new GameData();
            ModelData = new ModelData();

            Sequences = new SequenceManager();
            Sequences.AddOrSetSequence(SequenceType.ObjectPosition, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.ObjectMovement, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.ObjectState, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.ObjectVector, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.ObjectTeleport, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.ObjectServerControl, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.ObjectForcePosition, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.ObjectVisualDesc, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.ObjectInstance, new UShortSequence());
            Sequences.AddOrSetSequence(SequenceType.Motion, new UShortSequence(1));

            PhysicsData = new PhysicsData(Sequences);
        }
示例#4
0
        public virtual void SerializeCreateObject(BinaryWriter writer)
        {
            writer.WriteGuid(Guid);

            ModelData.Serialize(writer);
            PhysicsData.Serialize(this, writer);

            writer.Write((uint)WeenieFlags);
            writer.WriteString16L(Name);
            writer.WritePackedDword(WeenieClassid);
            writer.WritePackedDwordOfKnownType(Icon, 0x6000000);
            writer.Write((uint)Type);
            writer.Write((uint)DescriptionFlags);
            writer.Align();

            if ((DescriptionFlags & ObjectDescriptionFlag.AdditionFlags) != 0)
            {
                writer.Write((uint)WeenieFlags2);
            }

            if ((WeenieFlags & WeenieHeaderFlag.PuralName) != 0)
            {
                writer.WriteString16L(GameData.NamePlural);
            }

            if ((WeenieFlags & WeenieHeaderFlag.ItemCapacity) != 0)
            {
                writer.Write(GameData.ItemCapacity);
            }

            if ((WeenieFlags & WeenieHeaderFlag.ContainerCapacity) != 0)
            {
                writer.Write(GameData.ContainerCapacity);
            }

            if ((WeenieFlags & WeenieHeaderFlag.AmmoType) != 0)
            {
                writer.Write((ushort)GameData.AmmoType);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Value) != 0)
            {
                writer.Write(GameData.Value);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Usable) != 0)
            {
                writer.Write((uint)GameData.Usable);
            }

            if ((WeenieFlags & WeenieHeaderFlag.UseRadius) != 0)
            {
                writer.Write(GameData.UseRadius);
            }

            if ((WeenieFlags & WeenieHeaderFlag.TargetType) != 0)
            {
                writer.Write((uint)GameData.TargetType);
            }

            if ((WeenieFlags & WeenieHeaderFlag.UiEffects) != 0)
            {
                writer.Write((uint)GameData.UiEffects);
            }

            if ((WeenieFlags & WeenieHeaderFlag.CombatUse) != 0)
            {
                writer.Write((byte)GameData.CombatUse);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Struture) != 0)
            {
                writer.Write((ushort)GameData.Struture);
            }

            if ((WeenieFlags & WeenieHeaderFlag.MaxStructure) != 0)
            {
                writer.Write((ushort)GameData.MaxStructure);
            }

            if ((WeenieFlags & WeenieHeaderFlag.StackSize) != 0)
            {
                writer.Write(GameData.StackSize);
            }

            if ((WeenieFlags & WeenieHeaderFlag.MaxStackSize) != 0)
            {
                writer.Write(GameData.MaxStackSize);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Container) != 0)
            {
                writer.Write(GameData.ContainerId);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Wielder) != 0)
            {
                writer.Write(GameData.Wielder);
            }

            if ((WeenieFlags & WeenieHeaderFlag.ValidLocations) != 0)
            {
                writer.Write((uint)GameData.ValidLocations);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Location) != 0)
            {
                writer.Write((uint)GameData.Location);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Priority) != 0)
            {
                writer.Write((uint)GameData.Priority);
            }

            if ((WeenieFlags & WeenieHeaderFlag.BlipColour) != 0)
            {
                writer.Write((byte)GameData.RadarColour);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Radar) != 0)
            {
                writer.Write((byte)GameData.RadarBehavior);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Script) != 0)
            {
                writer.Write(GameData.Script);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Workmanship) != 0)
            {
                writer.Write(GameData.Workmanship);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Burden) != 0)
            {
                writer.Write(GameData.Burden);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Spell) != 0)
            {
                writer.Write((uint)GameData.Spell);
            }

            if ((WeenieFlags & WeenieHeaderFlag.HouseOwner) != 0)
            {
                writer.Write(GameData.HouseOwner);
            }

            /*if ((WeenieFlags & WeenieHeaderFlag.HouseRestrictions) != 0)
             * {
             * }*/

            if ((WeenieFlags & WeenieHeaderFlag.HookItemTypes) != 0)
            {
                writer.Write(GameData.HookItemTypes);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Monarch) != 0)
            {
                writer.Write(GameData.Monarch);
            }

            if ((WeenieFlags & WeenieHeaderFlag.HookType) != 0)
            {
                writer.Write(GameData.HookType);
            }

            if ((WeenieFlags & WeenieHeaderFlag.IconOverlay) != 0)
            {
                writer.WritePackedDwordOfKnownType(GameData.IconOverlay, 0x6000000);
            }

            if ((WeenieFlags2 & WeenieHeaderFlag2.IconUnderlay) != 0)
            {
                writer.WritePackedDwordOfKnownType(GameData.IconUnderlay, 0x6000000);
            }

            if ((WeenieFlags & WeenieHeaderFlag.Material) != 0)
            {
                writer.Write((uint)GameData.Material);
            }

            /*if ((WeenieFlags2 & WeenieHeaderFlag2.Cooldown) != 0)
             *  writer.Write(0u);*/

            /*if ((WeenieFlags2 & WeenieHeaderFlag2.CooldownDuration) != 0)
             *  writer.Write(0.0d);*/

            /*if ((WeenieFlags2 & WeenieHeaderFlag2.PetOwner) != 0)
             *  writer.Write(0u);*/

            writer.Align();
        }