コード例 #1
0
ファイル: UpdateObject.cs プロジェクト: bmjoy/Servidor-Wow
        // Create Game Object on World
        internal static UpdateObject CreateGameObject(zoneObjeto gameObject)
        {
            BinaryWriter writer = new BinaryWriter(new MemoryStream());

            writer.Write((byte)ObjectUpdateType.UPDATETYPE_CREATE_OBJECT);

            GameObjectEntity entity = new GameObjectEntity(gameObject);

            writer.WritePackedUInt64(entity.ObjectGuid.RawGuid);

            writer.Write((byte)TypeId.TypeidGameobject);

            ObjectUpdateFlag updateFlags = ObjectUpdateFlag.UpdateflagTransport |
                                           ObjectUpdateFlag.UpdateflagAll |
                                           ObjectUpdateFlag.UpdateflagHasPosition;

            writer.Write((byte)updateFlags);

            writer.Write(gameObject.map.mapX);
            writer.Write(gameObject.map.mapY);
            writer.Write(gameObject.map.mapZ);

            writer.Write((float)0);

            writer.Write((uint)0x1);
            writer.Write((uint)0);

            entity.WriteUpdateFields(writer);

            return(new UpdateObject(new List <byte[]> {
                (writer.BaseStream as MemoryStream)?.ToArray()
            }, 1));
        }
コード例 #2
0
ファイル: UpdateObject.cs プロジェクト: bmjoy/Servidor-Wow
        // USO INTERNO Criando OBJETO
        internal static UpdateObject CreateGameObject(float x, float y, float z)
        {
            BinaryWriter writer = new BinaryWriter(new MemoryStream());

            writer.Write((byte)ObjectUpdateType.UPDATETYPE_CREATE_OBJECT);

            var abacate = XmlReader.ObjectsAzeroth.objeto.First(a => a.id == 31000001);

            Console.WriteLine(abacate.name);

            GameObjectEntity entity = new GameObjectEntity(abacate);

            writer.WritePackedUInt64(entity.ObjectGuid.RawGuid);

            writer.Write((byte)TypeId.TypeidGameobject);

            ObjectUpdateFlag updateFlags = ObjectUpdateFlag.UpdateflagTransport |
                                           ObjectUpdateFlag.UpdateflagAll |
                                           ObjectUpdateFlag.UpdateflagHasPosition;

            writer.Write((byte)updateFlags);

            // Position

            writer.Write(x);
            writer.Write(y);
            writer.Write(z);

            writer.Write((float)0);  // R

            writer.Write((uint)0x1); // Unkown... time?
            writer.Write((uint)0);   // Unkown... time?

            entity.WriteUpdateFields(writer);

            return(new UpdateObject(new List <byte[]> {
                (writer.BaseStream as MemoryStream)?.ToArray()
            }, 1));
        }