Exemplo n.º 1
0
        public static void HandleSetSelection(ref PacketReader packet, ref WorldClass session)
        {
            byte[] guidMask  = { 2, 6, 1, 7, 4, 5, 3, 0 };
            byte[] guidBytes = { 0, 6, 3, 2, 1, 4, 7, 5 };

            BitUnpack GuidUnpacker = new BitUnpack(packet);

            ulong fullGuid = GuidUnpacker.GetPackedValue(guidMask, guidBytes);
            ulong guid     = SmartGuid.GetGuid(fullGuid);

            if (session.Character != null)
            {
                var sess = WorldMgr.GetSession(session.Character.Guid);

                if (sess != null)
                {
                    sess.Character.TargetGuid = fullGuid;
                }

                if (guid == 0)
                {
                    Log.Message(LogType.DEBUG, "Character (Guid: {0}) removed current selection.", session.Character.Guid);
                }
                else
                {
                    Log.Message(LogType.DEBUG, "Character (Guid: {0}) selected a {1} (Guid: {2}, Id: {3}).", session.Character.Guid, SmartGuid.GetGuidType(fullGuid), guid, SmartGuid.GetId(fullGuid));
                }
            }
        }
Exemplo n.º 2
0
        public void WriteSmartGuid(ulong guid, global::GuidType type = global::GuidType.Player)
        {
            SmartGuid guid2 = new SmartGuid
            {
                Type         = type,
                CreationBits = guid,
                RealmId      = 1
            };

            if (guid == 0uL)
            {
                while (true)
                {
IL_50:
                    uint arg_38_0 = 66514321u;
                    while (true)
                    {
                        uint num;
                        switch ((num = (arg_38_0 ^ 2001468684u)) % 3u)
                        {
                        case 0u:
                            goto IL_50;

                        case 1u:
                            guid2    = new SmartGuid();
                            arg_38_0 = (num * 2828181269u ^ 2346161042u);
                            continue;
                        }
                        goto Block_2;
                    }
                }
                Block_2 :;
            }
            this.WriteSmartGuid(guid2);
        }
Exemplo n.º 3
0
        public static void AddNpc(string[] args, WorldClass session)
        {
            var level       = CommandParser.Read <byte>(args, 1);
            var chatMessage = new ChatMessageValues(0, "Please enter a level between 0 and 91.");

            if (level > 90 || level < 1)
            {
                ChatHandler.SendMessage(ref session, chatMessage);
                return;
            }

            var pChar = session.Character;

            if (SmartGuid.GetGuidType(pChar.TargetGuid) == HighGuidType.Player)
            {
                if (DB.Characters.Execute("UPDATE Characters SET Level = ? WHERE Guid = ?", level, pChar.Guid))
                {
                    pChar.SetUpdateField <uint>((int)UnitFields.Level, level);

                    ObjectHandler.HandleUpdateObjectValues(ref session);
                }
            }
            else
            {
                chatMessage.Message = "Please select a player.";

                ChatHandler.SendMessage(ref session, chatMessage);
            }
        }
Exemplo n.º 4
0
        public void RemoveSpawn(GameObjectSpawn spawn)
        {
            GameObjectSpawn removedGameObject;

            GameObjectSpawns.TryRemove(spawn.Guid, out removedGameObject);

            DB.World.Execute("DELETE FROM creature_spawns WHERE Guid = ?", SmartGuid.GetGuid(spawn.Guid));
        }
Exemplo n.º 5
0
        public void RemoveSpawn(CreatureSpawn spawn)
        {
            CreatureSpawn removedSpawn;

            CreatureSpawns.TryRemove(spawn.Guid, out removedSpawn);

            DB.World.Execute("DELETE FROM creature_spawns WHERE Guid = ?", SmartGuid.GetGuid(spawn.Guid));
        }
Exemplo n.º 6
0
        public static void HandleTalkToGossip(ref PacketReader packet, WorldClass session)
        {
            BitUnpack BitUnpack = new BitUnpack(packet);

            byte[] guidMask  = { 3, 1, 7, 4, 6, 0, 2, 5 };
            byte[] guidBytes = { 0, 1, 7, 6, 5, 2, 4, 3 };

            var guid       = BitUnpack.GetPackedValue(guidMask, guidBytes);
            var gossipData = GossipMgr.GetGossip <Creature>(SmartGuid.GetGuid(guid));

            if (gossipData != null)
            {
                PacketWriter gossipMessage = new PacketWriter(ServerMessage.GossipMessage);
                BitPack      BitPack       = new BitPack(gossipMessage, guid);

                BitPack.WriteGuidMask(0, 1);
                BitPack.Write(0, 19);           // gossipData.QuestsCount
                BitPack.WriteGuidMask(2);
                BitPack.Write(0, 20);           // gossipData.OptionsCount

                // QuestsCount not supported.
                // for (int i = 0; i < gossipData.QuestsCount; i++)

                BitPack.WriteGuidMask(3);

                // OptionsCount not supported.
                // for (int i = 0; i < gossipData.OptionsCount; i++)

                BitPack.WriteGuidMask(5, 4, 6, 7);

                BitPack.Flush();

                BitPack.WriteGuidBytes(6);

                // OptionsCount not supported.
                // for (int i = 0; i < gossipData.OptionsCount; i++)

                BitPack.WriteGuidBytes(0);

                // QuestsCount not supported.
                // for (int i = 0; i < gossipData.QuestsCount; i++)

                gossipMessage.WriteInt32(gossipData.Id);

                BitPack.WriteGuidBytes(4, 3);

                gossipMessage.WriteInt32(gossipData.FriendshipFactionID);
                gossipMessage.WriteInt32(gossipData.TextID);

                BitPack.WriteGuidBytes(7, 1, 5, 1);

                session.Send(ref gossipMessage);
            }
        }
Exemplo n.º 7
0
        static void WriteSmartGuid(BinaryWriter bw, SmartGuid guid)
        {
            byte loLength, hiLength, wLoLength, wHiLength;

            var loGuid = GetPackedGuid(guid.Low, out loLength, out wLoLength);
            var hiGuid = GetPackedGuid(guid.High, out hiLength, out wHiLength);

            bw.Write(loLength);
            bw.Write(hiLength);
            bw.Write(loGuid, 0, wLoLength);
            bw.Write(hiGuid, 0, wHiLength);
        }
Exemplo n.º 8
0
        public SmartGuid ReadGuid()
        {
            SmartGuid smartGuid = new SmartGuid();

            while (true)
            {
IL_AC:
                uint arg_88_0 = 987742680u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_88_0 ^ 1441787658u)) % 6u)
                    {
                    case 0u:
                        goto IL_AC;

                    case 1u:
                    {
                        byte b;
                        smartGuid.HighGuid = this.GetSmartGuid(b);
                        arg_88_0           = (num * 355414513u ^ 3371240138u);
                        continue;
                    }

                    case 2u:
                    {
                        byte b = this.Read <byte>();
                        arg_88_0 = (num * 1336090768u ^ 1604431491u);
                        continue;
                    }

                    case 4u:
                    {
                        byte gLength = this.Read <byte>();
                        arg_88_0 = (num * 1082293947u ^ 737268760u);
                        continue;
                    }

                    case 5u:
                    {
                        byte gLength;
                        smartGuid.Guid = this.GetSmartGuid(gLength);
                        byte b;
                        arg_88_0 = (((b > 0) ? 2277857867u : 3763154427u) ^ num * 1623469582u);
                        continue;
                    }
                    }
                    return(smartGuid);
                }
            }
            return(smartGuid);
        }
Exemplo n.º 9
0
        public void WriteSmartGuid(SmartGuid guid)
        {
            byte data;
            byte int_;

            byte[] packedGuid = this.GetPackedGuid(guid.Guid, out data, out int_);
            byte   int_2;

            byte[] packedGuid2;
            while (true)
            {
IL_90:
                uint arg_6F_0 = 3222044819u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_6F_0 ^ 3599493022u)) % 5u)
                    {
                    case 0u:
                        goto IL_90;

                    case 1u:
                        this.WriteUInt8(data);
                        arg_6F_0 = (num * 1460792118u ^ 2740115011u);
                        continue;

                    case 2u:
                    {
                        byte data2;
                        this.WriteUInt8(data2);
                        PacketWriter.smethod_7(this, packedGuid, 0, (int)int_);
                        arg_6F_0 = (num * 3557611683u ^ 3621565152u);
                        continue;
                    }

                    case 3u:
                    {
                        byte data2;
                        packedGuid2 = this.GetPackedGuid(guid.HighGuid, out data2, out int_2);
                        arg_6F_0    = (num * 477547735u ^ 363270741u);
                        continue;
                    }
                    }
                    goto Block_1;
                }
            }
Block_1:
            PacketWriter.smethod_7(this, packedGuid2, 0, (int)int_2);
        }
Exemplo n.º 10
0
        public static void HandleDeleteChar(CharacterSession session, SmartGuid guid)
        {
            var gameAccount = session.GameAccount;
            var deleteChar  = new Packet(ServerMessage.DeleteChar);

            if (DB.Character.Delete <Character>(c => c.Guid == guid.Low && c.GameAccountId == gameAccount.Id))
            {
                deleteChar.Write(CharDeleteCode.Success);
            }
            else
            {
                deleteChar.Write(CharDeleteCode.Failed);
            }

            session.Send(deleteChar);
        }
Exemplo n.º 11
0
        public void Write(SmartGuid value)
        {
            var loGuid = GetPackedGuid(value.Low, out byte loLength, out byte wLoLength);
            var hiGuid = GetPackedGuid(value.High, out byte hiLength, out byte wHiLength);

            if (value.Low == 0 || value.High == 0)
            {
                Write((byte)0);
                write((byte)0);
            }
            else
            {
                Write(loLength);
                Write(hiLength);
                WriteBytes(loGuid, wLoLength);
                WriteBytes(hiGuid, wHiLength);
            }
        }
Exemplo n.º 12
0
        public static void HandleCliQueryNPCText(ref PacketReader packet, WorldClass session)
        {
            BitUnpack BitUnpack = new BitUnpack(packet);

            byte[] guidMask  = { 5, 2, 7, 3, 4, 0, 6, 1 };
            byte[] guidBytes = { 0, 7, 1, 4, 3, 5, 2, 6 };

            var gossipTextId = packet.Read <int>();
            var guid         = BitUnpack.GetPackedValue(guidMask, guidBytes);

            var gossipData = GossipMgr.GetGossip <Creature>(SmartGuid.GetGuid(guid));

            if (gossipData != null)
            {
                PacketWriter queryNPCTextResponse = new PacketWriter(ServerMessage.QueryNPCTextResponse);
                BitPack      BitPack = new BitPack(queryNPCTextResponse);

                BitPack.Write(1);
                BitPack.Flush();

                queryNPCTextResponse.WriteInt32(gossipTextId);
                queryNPCTextResponse.WriteInt32(0);

                queryNPCTextResponse.WriteFloat(1);

                for (int i = 0; i < 7; i++)
                {
                    queryNPCTextResponse.WriteUInt32(0);
                }

                queryNPCTextResponse.WriteInt32(gossipData.BroadCastText.Id);

                for (int i = 0; i < 7; i++)
                {
                    queryNPCTextResponse.WriteUInt32(0);
                }


                var size = (uint)queryNPCTextResponse.BaseStream.Length - 13;
                queryNPCTextResponse.WriteUInt32Pos(size, 9);

                session.Send(ref queryNPCTextResponse);
            }
        }
Exemplo n.º 13
0
        public void Write(SmartGuid guid)
        {
            byte loLength, hiLength, wLoLength, wHiLength;

            var loGuid = GetPackedGuid(guid.Low, out loLength, out wLoLength);
            var hiGuid = GetPackedGuid(guid.High, out hiLength, out wHiLength);

            if (guid.Low == 0 || guid.High == 0)
            {
                Write((byte)0);
                Write((byte)0);
            }
            else
            {
                Write(loLength);
                Write(hiLength);
                WriteBytes(loGuid, wLoLength);
                WriteBytes(hiGuid, wHiLength);
            }
        }
Exemplo n.º 14
0
        public static void HandleTalkToGossip(ref PacketReader packet, WorldClass session)
        {
            BitUnpack BitUnpack = new BitUnpack(packet);

            byte[] guidMask  = { 7, 3, 6, 5, 2, 1, 4, 0 };
            byte[] guidBytes = { 3, 4, 6, 1, 0, 2, 7, 5 };

            var guid       = BitUnpack.GetPackedValue(guidMask, guidBytes);
            var gossipData = GossipMgr.GetGossip <Creature>(SmartGuid.GetGuid(guid));

            if (gossipData != null)
            {
                PacketWriter gossipMessage = new PacketWriter(ServerMessage.GossipMessage);
                BitPack      BitPack       = new BitPack(gossipMessage, guid);

                BitPack.WriteGuidMask(7, 6, 0);
                BitPack.Write(0, 19);              // gossipData.QuestsCount
                BitPack.WriteGuidMask(4, 3, 2);
                BitPack.Write(0, 20);              // gossipData.OptionsCount
                BitPack.WriteGuidMask(1, 5);

                BitPack.Flush();

                BitPack.WriteGuidBytes(2, 7);

                gossipMessage.WriteInt32(gossipData.FriendshipFactionID);

                BitPack.WriteGuidBytes(3, 1);

                gossipMessage.WriteInt32(gossipData.TextID);

                BitPack.WriteGuidBytes(5);

                gossipMessage.WriteInt32(gossipData.Id);

                BitPack.WriteGuidBytes(6, 4, 0);

                session.Send(ref gossipMessage);
            }
        }
Exemplo n.º 15
0
        public static PacketWriter HandleDestroyObject(ref WorldClass session, ulong guid, bool animation = false, bool item = false)
        {
            PacketWriter packetWriter = new PacketWriter(ServerMessage.DestroyObject, true);

            while (true)
            {
IL_82:
                int arg_6C_0 = -527747855;
                while (true)
                {
                    switch ((arg_6C_0 ^ -1331919861) % 3)
                    {
                    case 0:
                        goto IL_82;

                    case 1:
                    {
                        BitPack arg_56_0 = new BitPack(packetWriter, guid, 0uL, 0uL, 0uL);
                        if (item)
                        {
                            SmartGuid guid2 = new SmartGuid(guid, 0, global::GuidType.Item, 0uL);
                            packetWriter.WriteSmartGuid(guid2);
                        }
                        else
                        {
                            packetWriter.WriteSmartGuid(guid, global::GuidType.Player);
                        }
                        arg_56_0.Write <bool>(animation);
                        arg_56_0.Flush();
                        arg_6C_0 = -1061865820;
                        continue;
                    }
                    }
                    return(packetWriter);
                }
            }
            return(packetWriter);
        }
Exemplo n.º 16
0
        public static void HandleUpdateObjectCreateItem(SmartGuid guid, Item item2, ref WorldClass session)
        {
            int id = item2.Id;

            while (true)
            {
IL_1E2:
                uint arg_1B9_0 = 2511239562u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_1B9_0 ^ 4026668597u)) % 7u)
                    {
                    case 0u:
                        goto IL_1E2;

                    case 1u:
                    {
                        PacketWriter packetWriter = new PacketWriter(ServerMessage.ObjectUpdate, true);
                        arg_1B9_0 = (num * 930516696u ^ 722285656u);
                        continue;
                    }

                    case 2u:
                    {
                        WorldObject character = session.Character;
                        arg_1B9_0 = (num * 3409398618u ^ 278691816u);
                        continue;
                    }

                    case 3u:
                    {
                        PacketWriter packetWriter;
                        uint         data = (uint)ObjectHandler.smethod_1(ObjectHandler.smethod_0(packetWriter)) - 17u;
                        arg_1B9_0 = (num * 3608865686u ^ 1852252423u);
                        continue;
                    }

                    case 4u:
                    {
                        PacketWriter packetWriter;
                        uint         data;
                        packetWriter.WriteUInt32Pos(data, 13);
                        session.Send(ref packetWriter);
                        arg_1B9_0 = (num * 1567485334u ^ 1076014059u);
                        continue;
                    }

                    case 5u:
                    {
                        PacketWriter packetWriter;
                        BitPack      arg_6D_0 = new BitPack(packetWriter, 0uL, 0uL, 0uL, 0uL);
                        packetWriter.WriteUInt32(1u);
                        WorldObject character;
                        packetWriter.WriteUInt16((ushort)character.Map);
                        packetWriter.WriteUInt8(0);
                        packetWriter.WriteInt32(0);
                        packetWriter.WriteUInt8(1);
                        packetWriter.WriteSmartGuid(guid);
                        packetWriter.WriteUInt8(1);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Write <int>(0);
                        arg_6D_0.Flush();
                        packetWriter.WriteUInt32(0u);
                        WorldObject expr_101 = new WorldObject(230);
                        expr_101.Guid = session.Character.Guid;
                        expr_101.SetItemUpdateFields(guid, id, item2.ModId);
                        expr_101.WriteUpdateFields(ref packetWriter);
                        expr_101.WriteDynamicUpdateFields(ref packetWriter);
                        arg_1B9_0 = (num * 64307666u ^ 2886005418u);
                        continue;
                    }
                    }
                    return;
                }
            }
        }
Exemplo n.º 17
0
 public void CreateFullGuid()
 {
     Guid = new SmartGuid(Guid, Id, HighGuidType.Unit).Guid;
 }
Exemplo n.º 18
0
 public void CreateFullGuid()
 {
     Guid = new SmartGuid(Guid, Id, HighGuidType.GameObject).Guid;
 }
Exemplo n.º 19
0
 public static void CastSpell(WorldClass session, int spellId, SmartGuid castId)
 {
     SpellHandler.< CastSpell > d__6 <CastSpell> d__;
Exemplo n.º 20
0
        public static void HandleDestroyItem(ref PacketReader packet, WorldClass2 session)
        {
            packet.Read <uint>();
            byte b;
            Dictionary <byte, Item> dictionary;
            WorldClass session2;

            while (true)
            {
IL_E1:
                uint arg_B8_0 = 1479706634u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_B8_0 ^ 940884380u)) % 7u)
                    {
                    case 0u:
                        goto IL_E1;

                    case 1u:
                        session.Character.Bag.Remove(b);
                        arg_B8_0 = (num * 3750115250u ^ 704789659u);
                        continue;

                    case 2u:
                        if (b >= 23)
                        {
                            arg_B8_0 = (num * 10468204u ^ 43277318u);
                            continue;
                        }
                        goto IL_439;

                    case 3u:
                    {
                        Item arg_6A_0 = session.Character.Bag[b];
                        arg_B8_0 = (num * 4157225570u ^ 1490106046u);
                        continue;
                    }

                    case 4u:
                        dictionary = new Dictionary <byte, Item>();
                        arg_B8_0   = (num * 2455461421u ^ 1748343064u);
                        continue;

                    case 5u:
                        packet.Read <byte>();
                        b        = packet.Read <byte>();
                        session2 = Manager.WorldMgr.GetSession(session.Character.Guid);
                        arg_B8_0 = (num * 1883076200u ^ 3879309864u);
                        continue;
                    }
                    goto Block_2;
                }
            }
            uint arg_63A_0;
            Item item;

            while (true)
            {
IL_635:
                uint num;
                switch ((num = (arg_63A_0 ^ 940884380u)) % 30u)
                {
                case 0u:
                    session.Character.SetUpdateField <int>(1035 + (int)(b * 2), 0, 0);
                    session.Character.SetUpdateField <ushort>(1035 + (int)(b * 2) + 1, 0, 0);
                    session.Character.SetUpdateField <ushort>(1035 + (int)(b * 2) + 1, 0, 0);
                    session.Character.SetUpdateField <ushort>(1035 + (int)(b * 2) + 1, 0, 1);
                    arg_63A_0 = (num * 2347620057u ^ 297415167u);
                    continue;

                case 1u:
                {
                    PacketWriter packetWriter = new PacketWriter(ServerMessage.ObjectUpdate, true);
                    BitPack      arg_5AD_0    = new BitPack(packetWriter, 0uL, 0uL, 0uL, 0uL);
                    packetWriter.WriteUInt32(1u);
                    Character character;
                    packetWriter.WriteUInt16((ushort)character.Map);
                    arg_5AD_0.Write <bool>(true);
                    arg_5AD_0.Flush();
                    arg_63A_0 = (num * 364780618u ^ 4039577125u);
                    continue;
                }

                case 2u:
                {
                    byte b2;
                    arg_63A_0 = (((int)b2 < session.Character.Bag.Count) ? 1177635618u : 1980991802u);
                    continue;
                }

                case 3u:
                {
                    PacketWriter packetWriter;
                    packetWriter.WriteInt32(0);
                    arg_63A_0 = (num * 1863506504u ^ 2872540547u);
                    continue;
                }

                case 4u:
                    session2.Character = session.Character;
                    arg_63A_0          = 2092284884u;
                    continue;

                case 5u:
                {
                    PacketWriter packetWriter;
                    SmartGuid    guid;
                    packetWriter.WriteSmartGuid(guid);
                    session.Send(ref packetWriter);
                    arg_63A_0 = (num * 1992055980u ^ 2561592906u);
                    continue;
                }

                case 6u:
                    arg_63A_0 = (num * 2481838976u ^ 2085966606u);
                    continue;

                case 7u:
                {
                    byte b2;
                    b2       += 1;
                    arg_63A_0 = (num * 581392080u ^ 1120063516u);
                    continue;
                }

                case 8u:
                    ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                    arg_63A_0 = (num * 3730459737u ^ 4119815487u);
                    continue;

                case 9u:
                    arg_63A_0 = (num * 4013260396u ^ 3339049186u);
                    continue;

                case 10u:
                {
                    int num2 = 0;
                    arg_63A_0 = (num * 170813716u ^ 815519874u);
                    continue;
                }

                case 11u:
                    goto IL_439;

                case 12u:
                {
                    byte      b2;
                    SmartGuid smartGuid;
                    session.Character.SetUpdateField <ulong>(1085 + (int)((23 + b2) * 4) + 2, smartGuid.HighGuid, 0);
                    arg_63A_0 = (num * 599351454u ^ 1201031827u);
                    continue;
                }

                case 13u:
                    ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                    arg_63A_0 = (num * 1722599098u ^ 78266358u);
                    continue;

                case 14u:
                {
                    int num3 = 0;
                    arg_63A_0 = (num * 2079855051u ^ 1201392757u);
                    continue;
                }

                case 15u:
                {
                    byte      b2;
                    SmartGuid smartGuid;
                    session.Character.SetUpdateField <ulong>(1085 + (int)((23 + b2) * 4), smartGuid.Guid, 0);
                    arg_63A_0 = (num * 1686053465u ^ 2337712971u);
                    continue;
                }

                case 16u:
                {
                    Character character = session.Character;
                    arg_63A_0 = (num * 2024021156u ^ 3868436006u);
                    continue;
                }

                case 17u:
                    session.Character.Bag = dictionary;
                    arg_63A_0             = (num * 2306417256u ^ 1137006036u);
                    continue;

                case 19u:
                {
                    PacketWriter packetWriter;
                    Character    character;
                    packetWriter.WriteUInt16((ushort)character.Map);
                    int num3;
                    packetWriter.WriteUInt32((uint)num3);
                    SmartGuid guid = new SmartGuid(item.Guid, 0, GuidType.Item, 0uL);
                    arg_63A_0 = (num * 3758715600u ^ 4001188091u);
                    continue;
                }

                case 20u:
                    session.Character.SetUpdateField <ulong>(1085 + (int)(b * 4), 0uL, 0);
                    session.Character.SetUpdateField <ulong>(1085 + (int)(b * 4) + 2, 0uL, 0);
                    arg_63A_0 = (num * 4263489551u ^ 4220117414u);
                    continue;

                case 21u:
                {
                    int num3;
                    arg_63A_0 = (((num3 > 0) ? 897509384u : 511989551u) ^ num * 999052215u);
                    continue;
                }

                case 22u:
                {
                    int num2;
                    arg_63A_0 = ((num2 >= 16) ? 906854550u : 933086591u);
                    continue;
                }

                case 23u:
                {
                    int num2;
                    session.Character.SetUpdateField <ulong>(1085 + (23 + num2) * 4, 0uL, 0);
                    arg_63A_0 = 869087837u;
                    continue;
                }

                case 24u:
                {
                    byte b2 = 0;
                    arg_63A_0 = (num * 877610943u ^ 4050923773u);
                    continue;
                }

                case 25u:
                {
                    int num2;
                    num2++;
                    arg_63A_0 = (num * 3409590307u ^ 4053566833u);
                    continue;
                }

                case 26u:
                {
                    byte      b2;
                    SmartGuid smartGuid = new SmartGuid(session.Character.Bag[23 + b2].Guid, 0, GuidType.Item, 0uL);
                    arg_63A_0 = 684885291u;
                    continue;
                }

                case 27u:
                {
                    int num2;
                    session.Character.SetUpdateField <ulong>(1085 + (23 + num2) * 4 + 2, 0uL, 0);
                    arg_63A_0 = (num * 2108742514u ^ 956540315u);
                    continue;
                }

                case 28u:
                    goto IL_6C0;

                case 29u:
                    arg_63A_0 = (num * 66432867u ^ 1045735881u);
                    continue;
                }
                break;
            }
            return;

Block_2:
            using (Dictionary <byte, Item> .Enumerator enumerator = session.Character.Bag.GetEnumerator())
            {
                while (true)
                {
IL_176:
                    int arg_14D_0 = (!enumerator.MoveNext()) ? 177736481 : 1734923895;
                    while (true)
                    {
                        switch ((arg_14D_0 ^ 940884380) % 4)
                        {
                        case 0:
                            arg_14D_0 = 1734923895;
                            continue;

                        case 2:
                            goto IL_176;

                        case 3:
                        {
                            KeyValuePair <byte, Item> current = enumerator.Current;
                            dictionary.Add((current.Key > b) ? (current.Key - 1) : current.Key, current.Value);
                            arg_14D_0 = 1924910954;
                            continue;
                        }
                        }
                        goto Block_10;
                    }
                }
                Block_10 :;
            }
            session.Character.Bag.Clear();
            goto IL_6C0;
IL_439:
            item = session.Character.Equipment[b];
            session.Character.Equipment.Remove(b);
            arg_63A_0 = 875231736u;
            goto IL_635;
IL_6C0:
            arg_63A_0 = 1448980257u;
            goto IL_635;
        }
Exemplo n.º 21
0
        public override void SetUpdateFields()
        {
            SmartGuid smartGuid = new SmartGuid
            {
                Type         = GuidType.Player,
                CreationBits = this.Guid,
                RealmId      = 1
            };

            while (true)
            {
IL_BA6:
                uint arg_A8C_0 = 3362022498u;
                while (true)
                {
                    uint num;
                    uint value;
                    uint arg_2AE_0;
                    switch ((num = (arg_A8C_0 ^ 4145227827u)) % 67u)
                    {
                    case 0u:
                        base.SetUpdateField <byte>(229, this.HairStyle, 2);
                        arg_A8C_0 = (num * 4191529225u ^ 1166677571u);
                        continue;

                    case 1u:
                    {
                        int num2;
                        base.SetUpdateField <uint>(1857 + num2 + 128, 300u, 0);
                        base.SetUpdateField <uint>(1857 + num2 + 192, 1u, 0);
                        arg_A8C_0 = (num * 341253735u ^ 3119224610u);
                        continue;
                    }

                    case 2u:
                        base.SetUpdateField <float>(109, 1337f, 0);
                        arg_A8C_0 = (num * 2663813069u ^ 2946050710u);
                        continue;

                    case 3u:
                    {
                        int num2;
                        base.SetUpdateField <uint>(1857 + num2 + 256, 490u, 0);
                        base.SetUpdateField <uint>(1857 + num2 + 320, 1u, 0);
                        base.SetUpdateField <uint>(1857 + num2 + 384, 1u, 0);
                        arg_A8C_0 = (num * 2943954661u ^ 83118421u);
                        continue;
                    }

                    case 4u:
                        base.SetUpdateField <byte>(231, 0, 3);
                        arg_A8C_0 = (num * 663694352u ^ 1969678795u);
                        continue;

                    case 5u:
                        base.SetUpdateField <byte>(229, this.Skin, 0);
                        arg_A8C_0 = (num * 4001737194u ^ 2492630477u);
                        continue;

                    case 6u:
                        base.SetUpdateField <float>(2324, 0f, 0);
                        arg_A8C_0 = (num * 985080521u ^ 2557173096u);
                        continue;

                    case 7u:
                        base.SetUpdateField <int>(1083, 50, 0);
                        arg_A8C_0 = (num * 3353072118u ^ 1574167544u);
                        continue;

                    case 8u:
                        base.SetUpdateField <float>(204, 100f, 0);
                        arg_A8C_0 = (num * 3907129026u ^ 79563245u);
                        continue;

                    case 9u:
                        base.SetUpdateField <uint>(89, this.Faction, 0);
                        arg_A8C_0 = (num * 2345251588u ^ 2123893132u);
                        continue;

                    case 10u:
                        base.SetUpdateField <float>(117, 1f, 0);
                        arg_A8C_0 = (num * 3198300392u ^ 322716183u);
                        continue;

                    case 11u:
                        base.SetUpdateField <float>(189, 1f, 0);
                        arg_A8C_0 = (num * 3523774928u ^ 1439404063u);
                        continue;

                    case 12u:
                        base.SetUpdateField <uint>(1076, Manager.WorldMgr.DefaultChrSpec[(uint)this.Class], 0);
                        base.SetUpdateField <float>(1078, 1f, 0);
                        arg_A8C_0 = (num * 2240443312u ^ 235484044u);
                        continue;

                    case 13u:
                        base.SetUpdateField <int>(1856, 400, 0);
                        base.SetUpdateField <uint>(107, 0u, 0);
                        arg_A8C_0 = (num * 2674944503u ^ 3928916786u);
                        continue;

                    case 14u:
                        base.SetUpdateField <float>(104, 1.5f, 0);
                        arg_A8C_0 = (num * 634593754u ^ 654435267u);
                        continue;

                    case 15u:
                        base.SetUpdateField <int>(56, 1, 0);
                        arg_A8C_0 = (num * 346485926u ^ 1433689022u);
                        continue;

                    case 16u:
                    {
                        int num2;
                        base.SetUpdateField <uint>(1857 + num2 + 64, 1u, 0);
                        arg_A8C_0 = (num * 2175926644u ^ 2161399249u);
                        continue;
                    }

                    case 18u:
                        base.SetUpdateField <uint>(105, value, 0);
                        base.SetUpdateField <uint>(106, value, 0);
                        arg_A8C_0 = (num * 2650772320u ^ 2264293372u);
                        continue;

                    case 19u:
                    {
                        int num2;
                        base.SetUpdateField <uint>(1857 + num2, this.Skills[num2].Id, 0);
                        arg_A8C_0 = (num * 1075763337u ^ 4126727761u);
                        continue;
                    }

                    case 20u:
                        base.SetUpdateField <int>(8, 65561, 0);
                        base.SetUpdateField <float>(11, 1f, 0);
                        arg_A8C_0 = (num * 1176461958u ^ 2696221759u);
                        continue;

                    case 21u:
                        base.SetUpdateField <float>(1079, 1f, 0);
                        arg_A8C_0 = (num * 1948465944u ^ 2947274196u);
                        continue;

                    case 22u:
                    {
                        Races races = Manager.WorldMgr.ChrRaces.Single((Races r) => r.Id == (uint)this.Race);
                        if (this.Gender != 0)
                        {
                            arg_A8C_0 = (num * 3206551392u ^ 2285065839u);
                            continue;
                        }
                        arg_2AE_0 = races.MaleDisplayId;
                        goto IL_2AE;
                    }

                    case 23u:
                        base.SetUpdateField <int>(129, 1, 0);
                        arg_A8C_0 = (num * 3174050420u ^ 2021044933u);
                        continue;

                    case 24u:
                        base.SetUpdateField <float>(103, 0.389f, 0);
                        arg_A8C_0 = (num * 3433571387u ^ 3881573744u);
                        continue;

                    case 25u:
                        base.SetUpdateField <float>(110, 42f, 0);
                        base.SetUpdateField <float>(111, 42f, 0);
                        arg_A8C_0 = (num * 4210040317u ^ 4279241858u);
                        continue;

                    case 26u:
                        base.SetUpdateField <int>(2305, 0, 0);
                        arg_A8C_0 = (num * 523204179u ^ 1758224075u);
                        continue;

                    case 27u:
                        base.SetUpdateField <int>(133, 0, 0);
                        arg_A8C_0 = (num * 3609259888u ^ 1437850688u);
                        continue;

                    case 28u:
                        arg_A8C_0 = (num * 1646104443u ^ 106033085u);
                        continue;

                    case 29u:
                        base.SetUpdateField <int>(84, (int)this.Level, 0);
                        base.SetUpdateField <int>(2799, 110, 0);
                        arg_A8C_0 = (num * 3785765493u ^ 1513835986u);
                        continue;

                    case 30u:
                        base.SetUpdateField <int>(58, 5000, 0);
                        base.SetUpdateField <int>(66, 5000, 0);
                        arg_A8C_0 = (num * 4254594651u ^ 4171747618u);
                        continue;

                    case 31u:
                        base.SetUpdateField <uint>(1075, 1u, 0);
                        base.SetUpdateField <int>(2671, 2, 0);
                        base.SetUpdateField <int>(100, 2000, 0);
                        base.SetUpdateField <int>(102, 2000, 0);
                        arg_A8C_0 = (num * 3804769601u ^ 520110499u);
                        continue;

                    case 32u:
                        base.SetUpdateField <float>(1080, 1f, 0);
                        arg_A8C_0 = (num * 4078682135u ^ 2875606574u);
                        continue;

                    case 33u:
                        base.SetUpdateField <byte>(229, this.Face, 1);
                        arg_A8C_0 = (num * 2559775110u ^ 2078298877u);
                        continue;

                    case 34u:
                        base.SetUpdateField <int>(117, 42, 0);
                        arg_A8C_0 = (num * 1260314422u ^ 1565665195u);
                        continue;

                    case 35u:
                        base.SetUpdateField <ulong>(0, smartGuid.Guid, 0);
                        base.SetUpdateField <ulong>(2, smartGuid.HighGuid, 0);
                        arg_A8C_0 = (num * 2433167489u ^ 2816061565u);
                        continue;

                    case 36u:
                        base.SetUpdateField <int>(2306, 21, 0);
                        base.SetUpdateField <int>(99, 4194304, 0);
                        arg_A8C_0 = (num * 100814028u ^ 3072653526u);
                        continue;

                    case 37u:
                        base.SetUpdateField <uint>(112, 65536u, 0);
                        arg_A8C_0 = (num * 62540501u ^ 646882076u);
                        continue;

                    case 38u:
                        base.SetUpdateField <byte>(53, this.Class, 1);
                        base.SetUpdateField <byte>(53, 0, 2);
                        base.SetUpdateField <byte>(53, this.Gender, 3);
                        base.SetUpdateField <uint>(54, Manager.WorldMgr.DefaultPowerTypes[(uint)this.Class], 0);
                        arg_A8C_0 = (num * 964918507u ^ 3151098252u);
                        continue;

                    case 39u:
                        base.SetUpdateField <int>(2653, 2, 0);
                        base.SetUpdateField <int>(232, 0, 0);
                        arg_A8C_0 = (num * 2130652486u ^ 2037663857u);
                        continue;

                    case 40u:
                        base.SetUpdateField <int>(128, 1, 0);
                        arg_A8C_0 = (num * 1328463574u ^ 1183088005u);
                        continue;

                    case 41u:
                        base.SetUpdateField <float>(2325, 7f, 0);
                        arg_A8C_0 = (num * 1986332979u ^ 3633177268u);
                        continue;

                    case 42u:
                        base.SetUpdateField <int>(64, 1, 0);
                        this.Faction = Manager.WorldMgr.ChrRaces.Single((Races r) => r.Id == (uint)this.Race).Faction;
                        arg_A8C_0    = (num * 506256744u ^ 1017043020u);
                        continue;

                    case 43u:
                        base.SetUpdateField <int>(1084, 50, 0);
                        arg_A8C_0 = (num * 2196478767u ^ 4068802405u);
                        continue;

                    case 44u:
                        base.SetUpdateField <int>(207, -1, 0);
                        base.SetUpdateField <int>(230, (int)this.FacialHair << 24 | (int)this.Tattoos << 16 | (int)this.BlindFolds << 8 | (int)this.HornStyle, 0);
                        base.SetUpdateField <uint>(1073, 315u, 0);
                        arg_A8C_0 = (num * 401854400u ^ 421126737u);
                        continue;

                    case 45u:
                        base.SetUpdateField <int>(2531, 2147483647, 0);
                        arg_A8C_0 = (num * 3035220601u ^ 2964939857u);
                        continue;

                    case 46u:
                        base.SetUpdateField <int>(4591, 350, 0);
                        arg_A8C_0 = (num * 4154855600u ^ 571652020u);
                        continue;

                    case 47u:
                    {
                        Races races;
                        arg_2AE_0 = races.FemaleDisplayId;
                        goto IL_2AE;
                    }

                    case 48u:
                        base.SetUpdateField <uint>(96, 8u, 0);
                        arg_A8C_0 = (num * 565745881u ^ 1871953938u);
                        continue;

                    case 49u:
                    {
                        int num2;
                        arg_A8C_0 = ((num2 >= this.Skills.Count) ? 2606039594u : 3681206070u);
                        continue;
                    }

                    case 50u:
                        base.SetUpdateField <byte>(229, this.HairColor, 3);
                        arg_A8C_0 = (num * 3816078619u ^ 932202503u);
                        continue;

                    case 51u:
                    {
                        int num2;
                        arg_A8C_0 = ((num2 >= 64) ? 4266884691u : 2608069202u);
                        continue;
                    }

                    case 52u:
                        base.SetUpdateField <byte>(53, this.Race, 0);
                        arg_A8C_0 = (num * 2478557743u ^ 1006291970u);
                        continue;

                    case 53u:
                        goto IL_BA6;

                    case 54u:
                        base.SetUpdateField <float>(108, 1337f, 0);
                        arg_A8C_0 = (num * 1672153762u ^ 3359117251u);
                        continue;

                    case 55u:
                        base.SetUpdateField <int>(1855, 0, 0);
                        base.SetUpdateField <int>(2694, 8, 0);
                        arg_A8C_0 = (num * 2837554239u ^ 2404694369u);
                        continue;

                    case 56u:
                        base.SetUpdateField <uint>(190, 1u, 0);
                        arg_A8C_0 = (num * 4197942694u ^ 3210995054u);
                        continue;

                    case 57u:
                        base.SetUpdateField <int>(127, 1, 0);
                        arg_A8C_0 = (num * 1736485825u ^ 1356110532u);
                        continue;

                    case 58u:
                    {
                        int num2;
                        num2++;
                        arg_A8C_0 = 3263568798u;
                        continue;
                    }

                    case 59u:
                        base.SetUpdateField <int>(130, 1, 0);
                        base.SetUpdateField <int>(132, 0, 0);
                        arg_A8C_0 = (num * 3127260296u ^ 4244907525u);
                        continue;

                    case 60u:
                        base.SetUpdateField <int>(139, 1, 0);
                        base.SetUpdateField <int>(164, 1, 0);
                        arg_A8C_0 = (num * 1408997502u ^ 3556141945u);
                        continue;

                    case 61u:
                        base.SetUpdateField <byte>(231, this.Gender, 2);
                        arg_A8C_0 = (num * 2417106500u ^ 3665189629u);
                        continue;

                    case 62u:
                        base.SetUpdateField <int>(2724, -1, 0);
                        arg_A8C_0 = (num * 4016402819u ^ 819527604u);
                        continue;

                    case 63u:
                    {
                        base.SetUpdateField <int>(59, 100, 0);
                        base.SetUpdateField <int>(60, 1000, 0);
                        int num2 = 0;
                        arg_A8C_0 = (num * 101977690u ^ 476485388u);
                        continue;
                    }

                    case 64u:
                        base.SetUpdateField <byte>(231, 0, 0);
                        base.SetUpdateField <byte>(231, 0, 1);
                        arg_A8C_0 = (num * 3736737872u ^ 1786945540u);
                        continue;

                    case 65u:
                        base.SetUpdateField <uint>(97, 2048u, 0);
                        arg_A8C_0 = (num * 255146829u ^ 2316109280u);
                        continue;

                    case 66u:
                        base.SetUpdateField <int>(2310, 7, 0);
                        arg_A8C_0 = (num * 3510051898u ^ 2912203465u);
                        continue;
                    }
                    goto Block_4;
IL_2AE:
                    value     = arg_2AE_0;
                    arg_A8C_0 = 2935423918u;
                }
            }
Block_4:
            base.SetUpdateField <float>(1081, 1f, 0);
            base.SetUpdateField <uint>(2695, 3840u, 0);
        }
Exemplo n.º 22
0
 public override void Read()
 {
     Guid = Packet.Read <SmartGuid>();
 }
Exemplo n.º 23
0
        public override void SetUpdateFields()
        {
            base.SetUpdateField <ulong>(0, this.Guid, 0);
            while (true)
            {
IL_2EF:
                uint arg_29E_0 = 999333535u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_29E_0 ^ 504559828u)) % 17u)
                    {
                    case 0u:
                        base.SetUpdateField <float>(21, this.GameObject.Rot.O, 0);
                        arg_29E_0 = (num * 748905259u ^ 2031209607u);
                        continue;

                    case 2u:
                        base.SetUpdateField <byte>(24, 255, 3);
                        arg_29E_0 = (num * 2507631249u ^ 571473568u);
                        continue;

                    case 3u:
                        base.SetUpdateField <float>(18, this.GameObject.Rot.X, 0);
                        arg_29E_0 = (num * 3516617196u ^ 2887152302u);
                        continue;

                    case 4u:
                    {
                        SmartGuid smartGuid = new SmartGuid(this.Guid, this.Id, GuidType.GameObject, (ulong)this.Map);
                        base.SetUpdateField <ulong>(2, smartGuid.HighGuid, 0);
                        base.SetUpdateField <ulong>(4, 0uL, 0);
                        base.SetUpdateField <int>(8, 33, 0);
                        base.SetUpdateField <int>(9, this.Id, 0);
                        arg_29E_0 = (num * 2137176038u ^ 600593551u);
                        continue;
                    }

                    case 5u:
                        base.SetUpdateField <uint>(22, this.FactionTemplate, 0);
                        base.SetUpdateField <int>(23, 0, 0);
                        arg_29E_0 = (num * 533401104u ^ 3946632066u);
                        continue;

                    case 6u:
                        base.SetUpdateField <byte>(24, (byte)this.GameObject.Type, 1);
                        base.SetUpdateField <byte>(24, 0, 2);
                        arg_29E_0 = (num * 644085778u ^ 388308084u);
                        continue;

                    case 7u:
                        goto IL_2EF;

                    case 8u:
                        base.SetUpdateField <float>(19, this.GameObject.Rot.Y, 0);
                        base.SetUpdateField <float>(20, this.GameObject.Rot.Z, 0);
                        arg_29E_0 = (num * 624909204u ^ 3760992830u);
                        continue;

                    case 9u:
                        base.SetUpdateField <int>(16, this.GameObject.DisplayInfoId, 0);
                        arg_29E_0 = (num * 1489428309u ^ 666582131u);
                        continue;

                    case 10u:
                        base.SetUpdateField <byte>(26, 255, 3);
                        arg_29E_0 = (num * 3501202112u ^ 388806276u);
                        continue;

                    case 11u:
                        base.SetUpdateField <byte>(24, this.State, 0);
                        arg_29E_0 = (num * 2994032068u ^ 4098580944u);
                        continue;

                    case 12u:
                        base.SetUpdateField <byte>(26, this.AnimProgress, 0);
                        arg_29E_0 = (num * 3740736952u ^ 1920541854u);
                        continue;

                    case 13u:
                        base.SetUpdateField <int>(17, 49, 0);
                        arg_29E_0 = (num * 596278471u ^ 1729958822u);
                        continue;

                    case 14u:
                        base.SetUpdateField <byte>(26, 0, 1);
                        arg_29E_0 = (num * 2713790489u ^ 3859455500u);
                        continue;

                    case 15u:
                        base.SetUpdateField <byte>(26, 255, 2);
                        arg_29E_0 = (num * 2506023519u ^ 1216899585u);
                        continue;

                    case 16u:
                        base.SetUpdateField <float>(11, this.GameObject.Size, 0);
                        base.SetUpdateField <ulong>(12, 0uL, 0);
                        arg_29E_0 = (num * 3058171710u ^ 441443711u);
                        continue;
                    }
                    return;
                }
            }
        }
Exemplo n.º 24
0
        public override void SetUpdateFields()
        {
            base.SetUpdateField <ulong>(0, this.Guid, 0);
            while (true)
            {
IL_836:
                uint arg_750_0 = 237886523u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_750_0 ^ 1528320836u)) % 54u)
                    {
                    case 0u:
                        base.SetUpdateField <int>(64, 1, 0);
                        arg_750_0 = (num * 3610745583u ^ 1838084446u);
                        continue;

                    case 1u:
                    {
                        int num2;
                        base.SetUpdateField <int>(153 + num2, 0, 0);
                        arg_750_0 = (num * 1619586627u ^ 3244614014u);
                        continue;
                    }

                    case 2u:
                        base.SetUpdateField <ulong>(124, 0uL, 0);
                        arg_750_0 = (num * 1812117381u ^ 2456935444u);
                        continue;

                    case 3u:
                        base.SetUpdateField <float>(117, 1f, 0);
                        arg_750_0 = (num * 3565188234u ^ 1477123020u);
                        continue;

                    case 4u:
                        goto IL_836;

                    case 5u:
                    {
                        int num2;
                        arg_750_0 = ((num2 >= 7) ? 269169050u : 586025614u);
                        continue;
                    }

                    case 6u:
                    {
                        int num3;
                        arg_750_0 = ((num3 >= 6) ? 571949700u : 737065791u);
                        continue;
                    }

                    case 7u:
                        base.SetUpdateField <int>(162, 1, 0);
                        arg_750_0 = (num * 3907973660u ^ 3394182677u);
                        continue;

                    case 8u:
                        base.SetUpdateField <int>(96, 0, 0);
                        base.SetUpdateField <int>(97, 0, 0);
                        arg_750_0 = (num * 2028371504u ^ 707893916u);
                        continue;

                    case 9u:
                    {
                        int num4;
                        arg_750_0 = ((num4 < 6) ? 909025174u : 762720453u);
                        continue;
                    }

                    case 10u:
                    {
                        int num4;
                        base.SetUpdateField <int>(66 + num4, 0, 0);
                        arg_750_0 = 1935149233u;
                        continue;
                    }

                    case 11u:
                    {
                        int num5;
                        base.SetUpdateField <int>(127 + num5, 1, 0);
                        arg_750_0 = 757635734u;
                        continue;
                    }

                    case 12u:
                    {
                        int num2;
                        base.SetUpdateField <int>(146 + num2, 0, 0);
                        arg_750_0 = (num * 2435287739u ^ 3658749741u);
                        continue;
                    }

                    case 13u:
                        base.SetUpdateField <float>(109, 0f, 0);
                        arg_750_0 = (num * 4016325890u ^ 1225666739u);
                        continue;

                    case 14u:
                        base.SetUpdateField <int>(89, 7, 0);
                        arg_750_0 = (num * 2262316087u ^ 180881922u);
                        continue;

                    case 15u:
                    {
                        int num3;
                        num3++;
                        arg_750_0 = (num * 1322641156u ^ 2613785378u);
                        continue;
                    }

                    case 16u:
                        base.SetUpdateField <int>(164, 0, 0);
                        base.SetUpdateField <int>(168, 0, 0);
                        arg_750_0 = (num * 1093106460u ^ 3967094936u);
                        continue;

                    case 17u:
                        base.SetUpdateField <float>(110, 0f, 0);
                        base.SetUpdateField <float>(111, 0f, 0);
                        arg_750_0 = (num * 631746108u ^ 281948068u);
                        continue;

                    case 18u:
                        base.SetUpdateField <int>(165, 0, 0);
                        base.SetUpdateField <int>(169, 0, 0);
                        base.SetUpdateField <float>(173, 0f, 0);
                        base.SetUpdateField <float>(174, 0f, 0);
                        base.SetUpdateField <float>(167, 0f, 0);
                        arg_750_0 = (num * 1283258722u ^ 511658920u);
                        continue;

                    case 19u:
                        base.SetUpdateField <int>(107, 0, 0);
                        arg_750_0 = (num * 3419386998u ^ 3627557574u);
                        continue;

                    case 20u:
                    {
                        int num2 = 0;
                        arg_750_0 = (num * 1883164299u ^ 2313590937u);
                        continue;
                    }

                    case 21u:
                    {
                        SmartGuid smartGuid = new SmartGuid(this.Guid, this.Id, GuidType.Creature, (ulong)this.Map);
                        base.SetUpdateField <ulong>(2, smartGuid.HighGuid, 0);
                        base.SetUpdateField <ulong>(4, 0uL, 0);
                        base.SetUpdateField <int>(9, this.Id, 0);
                        arg_750_0 = (num * 2255509972u ^ 1618986453u);
                        continue;
                    }

                    case 22u:
                        base.SetUpdateField <int>(54, 0, 0);
                        base.SetUpdateField <int>(105, this.Creature.DisplayInfoId[0], 0);
                        arg_750_0 = (num * 1813632837u ^ 2273520395u);
                        continue;

                    case 24u:
                    {
                        int num5;
                        arg_750_0 = ((num5 >= 5) ? 1782073348u : 1144773961u);
                        continue;
                    }

                    case 25u:
                        arg_750_0 = (num * 4148259167u ^ 2514504695u);
                        continue;

                    case 26u:
                        base.SetUpdateField <float>(11, 1f, 0);
                        arg_750_0 = (num * 1625486723u ^ 3338259225u);
                        continue;

                    case 27u:
                    {
                        int num5;
                        base.SetUpdateField <int>(135 + num5, 0, 0);
                        arg_750_0 = (num * 3130670064u ^ 629823659u);
                        continue;
                    }

                    case 28u:
                        base.SetUpdateField <float>(189, 1f, 0);
                        arg_750_0 = (((this.Id == 114791) ? 735727167u : 1522774325u) ^ num * 3193800621u);
                        continue;

                    case 29u:
                        base.SetUpdateField <float>(190, 6f, 0);
                        base.SetUpdateField <int>(54, 1, 0);
                        arg_750_0 = (num * 162856968u ^ 183126627u);
                        continue;

                    case 30u:
                        base.SetUpdateField <short>(102, 0, 0);
                        arg_750_0 = (num * 2555578126u ^ 3095029771u);
                        continue;

                    case 31u:
                        base.SetUpdateField <int>(106, this.Creature.DisplayInfoId[0], 0);
                        arg_750_0 = (num * 4103549470u ^ 1174276495u);
                        continue;

                    case 32u:
                        base.SetUpdateField <float>(103, 0.389f, 0);
                        arg_750_0 = (num * 2633248044u ^ 2667827738u);
                        continue;

                    case 33u:
                    {
                        int num5;
                        num5++;
                        arg_750_0 = (num * 3145927869u ^ 370126679u);
                        continue;
                    }

                    case 34u:
                        base.SetUpdateField <int>(96, 33088, 0);
                        arg_750_0 = (num * 640744838u ^ 3801238860u);
                        continue;

                    case 35u:
                    {
                        int num4;
                        num4++;
                        arg_750_0 = (num * 2594117446u ^ 2099580485u);
                        continue;
                    }

                    case 36u:
                    {
                        int num4 = 0;
                        arg_750_0 = (num * 1354476460u ^ 2712581059u);
                        continue;
                    }

                    case 37u:
                        base.SetUpdateField <int>(56, 1, 0);
                        arg_750_0 = (num * 2544577213u ^ 435928766u);
                        continue;

                    case 38u:
                        base.SetUpdateField <float>(171, 0f, 0);
                        arg_750_0 = (num * 4142851119u ^ 4208899568u);
                        continue;

                    case 39u:
                    {
                        int num2;
                        num2++;
                        arg_750_0 = (num * 627873502u ^ 1245213075u);
                        continue;
                    }

                    case 40u:
                        base.SetUpdateField <ulong>(204, 100uL, 0);
                        arg_750_0 = (num * 589149039u ^ 1827455864u);
                        continue;

                    case 41u:
                    {
                        int num3;
                        base.SetUpdateField <int>(58 + num3, 0, 0);
                        arg_750_0 = 1908405377u;
                        continue;
                    }

                    case 42u:
                        base.SetUpdateField <ulong>(112, 50331648uL, 0);
                        base.SetUpdateField <ulong>(163, 1uL, 0);
                        arg_750_0 = (num * 740895270u ^ 2494309065u);
                        continue;

                    case 43u:
                        base.SetUpdateField <int>(161, 0, 0);
                        base.SetUpdateField <int>(84, 110, 0);
                        arg_750_0 = (num * 716606811u ^ 683298147u);
                        continue;

                    case 44u:
                    {
                        int num5 = 0;
                        arg_750_0 = (num * 645724212u ^ 2219005145u);
                        continue;
                    }

                    case 45u:
                        base.SetUpdateField <int>(72, 0, 0);
                        base.SetUpdateField <int>(78, 0, 0);
                        arg_750_0 = (num * 2369184928u ^ 402976831u);
                        continue;

                    case 46u:
                    {
                        int num5;
                        base.SetUpdateField <int>(131 + num5, 0, 0);
                        arg_750_0 = (num * 3755003001u ^ 2166038637u);
                        continue;
                    }

                    case 47u:
                        base.SetUpdateField <short>(102, 0, 1);
                        arg_750_0 = (num * 1276678106u ^ 3835185211u);
                        continue;

                    case 48u:
                        base.SetUpdateField <int>(97, 4196352, 0);
                        arg_750_0 = (num * 2619014669u ^ 2577791090u);
                        continue;

                    case 49u:
                    {
                        int num3 = 0;
                        arg_750_0 = (num * 1247933337u ^ 506390079u);
                        continue;
                    }

                    case 50u:
                        base.SetUpdateField <float>(104, 1.5f, 0);
                        base.SetUpdateField <float>(108, 0f, 0);
                        arg_750_0 = (num * 263025040u ^ 294895891u);
                        continue;

                    case 51u:
                        base.SetUpdateField <int>(8, 9, 0);
                        arg_750_0 = (num * 2994754189u ^ 1955941347u);
                        continue;

                    case 52u:
                    {
                        int num2;
                        base.SetUpdateField <int>(139 + num2, 0, 0);
                        arg_750_0 = 383154904u;
                        continue;
                    }

                    case 53u:
                        base.SetUpdateField <int>(53, 16777472, 0);
                        base.SetUpdateField <int>(84, 110, 0);
                        arg_750_0 = (num * 3484837175u ^ 3470856369u);
                        continue;
                    }
                    goto Block_6;
                }
            }
Block_6:
            base.SetUpdateField <int>(126, this.Emote, 0);
        }
Exemplo n.º 25
0
        private static void AddItem(WorldClass2 session, byte bagSlot)
        {
            WorldClass session2 = Manager.WorldMgr.GetSession(session.Character.Guid);
            byte       equipSlot;
            Item       item2;
            SmartGuid  smartGuid;

            while (true)
            {
IL_14F:
                uint arg_122_0 = 3901046590u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_122_0 ^ 2735090873u)) % 8u)
                    {
                    case 0u:
                        goto IL_14F;

                    case 1u:
                        session.Character.Bag.Remove(bagSlot);
                        arg_122_0 = (num * 413465045u ^ 3934698462u);
                        continue;

                    case 3u:
                    {
                        Item item;
                        equipSlot = ItemHandler.GetEquipSlot(item.InventoryType);
                        if (!session.Character.Equipment.ContainsKey(equipSlot))
                        {
                            arg_122_0 = (num * 88286537u ^ 102903164u);
                            continue;
                        }
                        goto IL_928;
                    }

                    case 4u:
                        smartGuid = new SmartGuid(item2.Guid, 0, GuidType.Item, 0uL);
                        arg_122_0 = (num * 3934272609u ^ 2187647340u);
                        continue;

                    case 5u:
                        item2     = session.Character.Bag[bagSlot];
                        arg_122_0 = (num * 2864327870u ^ 3823397051u);
                        continue;

                    case 6u:
                    {
                        Item item;
                        session.Character.Equipment.Add(equipSlot, item);
                        if (session.Character.Bag.ContainsKey(bagSlot))
                        {
                            arg_122_0 = (num * 2375106689u ^ 756885426u);
                            continue;
                        }
                        goto IL_912;
                    }

                    case 7u:
                    {
                        Item item;
                        if (session.Character.Bag.TryGetValue(bagSlot, out item))
                        {
                            arg_122_0 = (num * 2306049815u ^ 322888747u);
                            continue;
                        }
                        goto IL_B4B;
                    }
                    }
                    goto Block_4;
                }
            }
            uint arg_A6D_0;
            int  index;
            Dictionary <byte, Item> dictionary;

            while (true)
            {
IL_A68:
                uint num;
                switch ((num = (arg_A6D_0 ^ 2735090873u)) % 52u)
                {
                case 0u:
                {
                    Item item3;
                    session.Character.SetUpdateField <ushort>(1035 + (int)(equipSlot * 2) + 1, (ushort)item3.ModId, 0);
                    arg_A6D_0 = (num * 2688365806u ^ 3665580916u);
                    continue;
                }

                case 2u:
                    session.Character.SetUpdateField <ushort>(1035 + (int)(equipSlot * 2) + 1, 0, 1);
                    arg_A6D_0 = (num * 397079707u ^ 2550042554u);
                    continue;

                case 3u:
                {
                    byte b;
                    arg_A6D_0 = (((int)b < session.Character.Bag.Count) ? 3012765023u : 3532292612u);
                    continue;
                }

                case 4u:
                {
                    Item item4 = session.Character.Equipment[equipSlot];
                    arg_A6D_0 = (num * 625219965u ^ 158864307u);
                    continue;
                }

                case 5u:
                {
                    int num2;
                    arg_A6D_0 = ((num2 >= 16) ? 3752629640u : 3003850106u);
                    continue;
                }

                case 6u:
                {
                    int num2 = 0;
                    arg_A6D_0 = (num * 2687791784u ^ 2016439126u);
                    continue;
                }

                case 7u:
                {
                    int num3;
                    index     = num3;
                    arg_A6D_0 = (num * 971334227u ^ 618718611u);
                    continue;
                }

                case 8u:
                {
                    byte b;
                    b        += 1;
                    arg_A6D_0 = (num * 1052352431u ^ 2217463802u);
                    continue;
                }

                case 9u:
                    goto IL_928;

                case 10u:
                    goto IL_912;

                case 11u:
                {
                    int num2;
                    session.Character.SetUpdateField <ulong>(1085 + (23 + num2) * 4 + 2, 0uL, 0);
                    arg_A6D_0 = (num * 3990101372u ^ 1156157827u);
                    continue;
                }

                case 12u:
                    session.Character.SetUpdateField <ulong>(1085 + (int)(equipSlot * 4), 0uL, 0);
                    arg_A6D_0 = (num * 2450056873u ^ 1905378433u);
                    continue;

                case 13u:
                    ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                    arg_A6D_0 = (num * 2846314608u ^ 3060895351u);
                    continue;

                case 14u:
                    session.Character.SetUpdateField <ushort>(1035 + (int)(equipSlot * 2) + 1, 0, 0);
                    arg_A6D_0 = (num * 3375404461u ^ 3611762605u);
                    continue;

                case 15u:
                {
                    int num2;
                    session.Character.SetUpdateField <ulong>(1085 + (23 + num2) * 4, 0uL, 0);
                    arg_A6D_0 = 3244715514u;
                    continue;
                }

                case 16u:
                    session.Character.SetUpdateField <ulong>(1085 + (int)(equipSlot * 4) + 2, 0uL, 0);
                    session.Character.SetUpdateField <ulong>(1085 + (int)(equipSlot * 4), smartGuid.Guid, 0);
                    session.Character.SetUpdateField <ulong>(1085 + (int)(equipSlot * 4) + 2, smartGuid.HighGuid, 0);
                    ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                    session.Character.SetUpdateField <int>(1035 + (int)(equipSlot * 2), 0, 0);
                    arg_A6D_0 = (num * 1510252851u ^ 1999990189u);
                    continue;

                case 17u:
                    ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                    arg_A6D_0 = (num * 1475435762u ^ 2350161561u);
                    continue;

                case 18u:
                {
                    int num2;
                    num2++;
                    arg_A6D_0 = (num * 312829336u ^ 108542544u);
                    continue;
                }

                case 19u:
                {
                    Item item3;
                    session.Character.Equipment.Add(equipSlot, item3);
                    Item item4;
                    session.Character.Bag.Add(bagSlot, item4);
                    arg_A6D_0 = (num * 2281705214u ^ 4242836535u);
                    continue;
                }

                case 20u:
                    session.Character.SetUpdateField <int>(1035 + (int)(equipSlot * 2), item2.Id, 0);
                    arg_A6D_0 = (num * 1960862831u ^ 2754346203u);
                    continue;

                case 21u:
                {
                    byte b = 0;
                    arg_A6D_0 = (num * 269226237u ^ 265745344u);
                    continue;
                }

                case 22u:
                {
                    int num3 = 0;
                    arg_A6D_0 = (num * 888651060u ^ 1045458128u);
                    continue;
                }

                case 23u:
                    arg_A6D_0 = (num * 3169614868u ^ 1615237482u);
                    continue;

                case 24u:
                    arg_A6D_0 = (num * 1798968942u ^ 2783094218u);
                    continue;

                case 25u:
                    session.Character.Equipment.Remove(equipSlot);
                    arg_A6D_0 = (num * 2316556123u ^ 1531280410u);
                    continue;

                case 26u:
                {
                    Item      item3 = session.Character.Bag[bagSlot];
                    Item      item4;
                    SmartGuid smartGuid2 = new SmartGuid(item4.Guid, 0, GuidType.Item, 0uL);
                    SmartGuid smartGuid3 = new SmartGuid(item3.Guid, 0, GuidType.Item, 0uL);
                    arg_A6D_0 = (num * 2984176438u ^ 4129044090u);
                    continue;
                }

                case 27u:
                {
                    byte      b;
                    SmartGuid smartGuid4;
                    session.Character.SetUpdateField <ulong>(1085 + (int)((23 + b) * 4) + 2, smartGuid4.HighGuid, 0);
                    arg_A6D_0 = (num * 2890893173u ^ 349214354u);
                    continue;
                }

                case 28u:
                {
                    SmartGuid smartGuid2;
                    session.Character.SetUpdateField <ulong>(1085 + (int)(bagSlot * 4), smartGuid2.Guid, 0);
                    session.Character.SetUpdateField <ulong>(1085 + (int)(bagSlot * 4) + 2, smartGuid2.HighGuid, 0);
                    arg_A6D_0 = (num * 737849647u ^ 1775535865u);
                    continue;
                }

                case 29u:
                {
                    int num3;
                    arg_A6D_0 = ((num3 < Manager.WorldMgr.CharaterList.Count) ? 4017585302u : 2853305574u);
                    continue;
                }

                case 30u:
                    goto IL_588;

                case 31u:
                {
                    int num3;
                    num3++;
                    arg_A6D_0 = 4264159176u;
                    continue;
                }

                case 32u:
                    arg_A6D_0 = ((session.Character.Equipment.ContainsKey(equipSlot) ? 3897993171u : 4023075236u) ^ num * 3842347572u);
                    continue;

                case 33u:
                    goto IL_B4B;

                case 34u:
                    session.Character.SetUpdateField <ushort>(1035 + (int)(equipSlot * 2) + 1, (ushort)item2.ModId, 0);
                    arg_A6D_0 = (num * 2822665324u ^ 3380783635u);
                    continue;

                case 35u:
                    arg_A6D_0 = (num * 3349837127u ^ 2233701625u);
                    continue;

                case 36u:
                {
                    session.Character.SetUpdateField <ulong>(1085 + (int)(equipSlot * 4) + 2, 0uL, 0);
                    SmartGuid smartGuid3;
                    session.Character.SetUpdateField <ulong>(1085 + (int)(equipSlot * 4), smartGuid3.Guid, 0);
                    arg_A6D_0 = (num * 927448395u ^ 866192737u);
                    continue;
                }

                case 37u:
                    session.Character.SetUpdateField <ushort>(1035 + (int)(equipSlot * 2) + 1, 0, 0);
                    arg_A6D_0 = (num * 1706796764u ^ 3182899609u);
                    continue;

                case 38u:
                {
                    Item item3;
                    session.Character.SetUpdateField <int>(1035 + (int)(equipSlot * 2), item3.Id, 0);
                    arg_A6D_0 = (num * 42299747u ^ 2380411742u);
                    continue;
                }

                case 39u:
                    arg_A6D_0 = (num * 1318585816u ^ 3647086635u);
                    continue;

                case 40u:
                    session.Character.Bag = dictionary;
                    arg_A6D_0             = (num * 2027637424u ^ 1585480347u);
                    continue;

                case 41u:
                    arg_A6D_0 = (((!session.Character.Bag.ContainsKey(bagSlot)) ? 1338625282u : 395459323u) ^ num * 783094712u);
                    continue;

                case 42u:
                    session.Character.SetUpdateField <int>(1035 + (int)(equipSlot * 2), 0, 0);
                    arg_A6D_0 = (num * 1468912291u ^ 969255781u);
                    continue;

                case 43u:
                    Manager.WorldMgr.CharaterList[index] = session.Character;
                    arg_A6D_0 = 2195683288u;
                    continue;

                case 44u:
                {
                    byte      b;
                    SmartGuid smartGuid4;
                    session.Character.SetUpdateField <ulong>(1085 + (int)((23 + b) * 4), smartGuid4.Guid, 0);
                    arg_A6D_0 = (num * 1452020312u ^ 1516754462u);
                    continue;
                }

                case 45u:
                    session.Character.SetUpdateField <ushort>(1035 + (int)(equipSlot * 2) + 1, 0, 1);
                    arg_A6D_0 = (num * 4099664907u ^ 2811872651u);
                    continue;

                case 46u:
                {
                    byte      b;
                    SmartGuid smartGuid4 = new SmartGuid(session.Character.Bag[23 + b].Guid, 0, GuidType.Item, 0uL);
                    arg_A6D_0 = 3795433309u;
                    continue;
                }

                case 47u:
                    session.Character.Bag.Remove(bagSlot);
                    arg_A6D_0 = (num * 75564486u ^ 2509859790u);
                    continue;

                case 48u:
                {
                    SmartGuid smartGuid3;
                    session.Character.SetUpdateField <ulong>(1085 + (int)(equipSlot * 4) + 2, smartGuid3.HighGuid, 0);
                    arg_A6D_0 = (num * 2532079306u ^ 2782626003u);
                    continue;
                }

                case 49u:
                    ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                    ObjectHandler.HandleUpdateObjectValues(ref session2, true);
                    arg_A6D_0 = (num * 617855158u ^ 1998553940u);
                    continue;

                case 50u:
                    session.Character.SetUpdateField <ulong>(1085 + (int)(equipSlot * 4), 0uL, 0);
                    arg_A6D_0 = (num * 2240052089u ^ 4263156475u);
                    continue;

                case 51u:
                {
                    int num3;
                    arg_A6D_0 = ((Manager.WorldMgr.CharaterList[num3].Guid != session.Character.Guid) ? 3122669558u : 3428108934u);
                    continue;
                }
                }
                break;
            }
            ItemHandler.smethod_1(ItemHandler.smethod_0(Helper.DataDirectory(), Module.smethod_34 <string>(1144845388u)), Json.CreateString <List <Character> >(Manager.WorldMgr.CharaterList));
            return;

Block_4:
            dictionary = new Dictionary <byte, Item>();
            using (Dictionary <byte, Item> .Enumerator enumerator = session.Character.Bag.GetEnumerator())
            {
                while (true)
                {
IL_1ED:
                    int arg_1C4_0 = enumerator.MoveNext() ? -232738112 : -1969773645;
                    while (true)
                    {
                        switch ((arg_1C4_0 ^ -1559876423) % 4)
                        {
                        case 0:
                            arg_1C4_0 = -232738112;
                            continue;

                        case 1:
                        {
                            KeyValuePair <byte, Item> current = enumerator.Current;
                            dictionary.Add((current.Key > bagSlot) ? (current.Key - 1) : current.Key, current.Value);
                            arg_1C4_0 = -1601354682;
                            continue;
                        }

                        case 3:
                            goto IL_1ED;
                        }
                        goto Block_16;
                    }
                }
                Block_16 :;
            }
            session.Character.Bag.Clear();
IL_588:
            arg_A6D_0 = 2199478937u;
            goto IL_A68;
IL_912:
            session2.Character = session.Character;
            arg_A6D_0          = 3632523060u;
            goto IL_A68;
IL_928:
            arg_A6D_0 = (session.Character.Equipment.ContainsKey(equipSlot) ? 2517109469u : 3799877539u);
            goto IL_A68;
IL_B4B:
            index     = 0;
            arg_A6D_0 = 3332340327u;
            goto IL_A68;
        }
Exemplo n.º 26
0
        public void WriteSmartGuid(ulong guid, ObjectType type, SmartGuid sGuid = null)
        {
            if (guid != 0uL)
            {
                goto IL_25;
            }
            goto IL_F5;
            uint arg_BF_0;

            while (true)
            {
IL_BA:
                uint num;
                switch ((num = (arg_BF_0 ^ 1646368848u)) % 10u)
                {
                case 0u:
                {
                    byte data;
                    this.WriteUInt8(data);
                    arg_BF_0 = (num * 860942149u ^ 3453380518u);
                    continue;
                }

                case 1u:
                {
                    byte   data;
                    byte   count;
                    byte[] smartGuid = this.GetSmartGuid((sGuid == null) ? 580726857419194368uL : sGuid.HighGuid, out data, out count);
                    arg_BF_0 = 1369678913u;
                    continue;
                }

                case 2u:
                {
                    byte   data2 = 0;
                    byte   data  = 0;
                    byte   count2;
                    byte[] smartGuid2 = this.GetSmartGuid(guid, out data2, out count2);
                    arg_BF_0 = (num * 2616288901u ^ 1468100039u);
                    continue;
                }

                case 3u:
                {
                    byte data2;
                    this.WriteUInt8(data2);
                    arg_BF_0 = (num * 2677091164u ^ 3202732928u);
                    continue;
                }

                case 4u:
                    goto IL_F5;

                case 5u:
                    return;

                case 6u:
                {
                    byte   count2;
                    byte[] smartGuid2;
                    this.WriteBytes(smartGuid2, (int)count2);
                    arg_BF_0 = (num * 3836561347u ^ 1058943091u);
                    continue;
                }

                case 8u:
                    goto IL_25;

                case 9u:
                {
                    byte   count;
                    byte[] smartGuid;
                    this.WriteBytes(smartGuid, (int)count);
                    arg_BF_0 = (num * 483692983u ^ 3257050584u);
                    continue;
                }
                }
                break;
            }
            return;

IL_25:
            arg_BF_0 = 261752828u;
            goto IL_BA;
IL_F5:
            this.WriteUInt8(0);
            this.WriteUInt8(0);
            arg_BF_0 = 72102509u;
            goto IL_BA;
        }
Exemplo n.º 27
0
        public static void HandleUnEquipItem(ref PacketReader packet, WorldClass2 session)
        {
            packet.Skip(5);
            byte b = packet.Read <byte>();
            byte b2;

            while (true)
            {
IL_303:
                uint arg_2B5_0 = 1819372127u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_2B5_0 ^ 1136699870u)) % 16u)
                    {
                    case 0u:
                    {
                        session.Character.SetUpdateField <ushort>(1035 + (int)(b2 * 2) + 1, 0, 0);
                        session.Character.SetUpdateField <ushort>(1035 + (int)(b2 * 2) + 1, 0, 1);
                        WorldClass session2;
                        ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                        ObjectHandler.HandleUpdateObjectValues(ref session2, true);
                        arg_2B5_0 = (num * 3374913412u ^ 2282626695u);
                        continue;
                    }

                    case 1u:
                        b2        = packet.Read <byte>();
                        arg_2B5_0 = (num * 1902157130u ^ 174221922u);
                        continue;

                    case 2u:
                        session.Character.Bag.Remove(b);
                        arg_2B5_0 = (num * 4091420843u ^ 2617997471u);
                        continue;

                    case 3u:
                    {
                        WorldClass session2;
                        ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                        session.Character.SetUpdateField <int>(1035 + (int)(b2 * 2), 0, 0);
                        arg_2B5_0 = (num * 3351533450u ^ 858014557u);
                        continue;
                    }

                    case 4u:
                    {
                        WorldClass session2 = Manager.WorldMgr.GetSession(session.Character.Guid);
                        arg_2B5_0 = (num * 3970539045u ^ 265521657u);
                        continue;
                    }

                    case 5u:
                        session.Character.SetUpdateField <ulong>(1085 + (int)(b2 * 4), 0uL, 0);
                        session.Character.SetUpdateField <ulong>(1085 + (int)(b2 * 4) + 2, 0uL, 0);
                        arg_2B5_0 = (num * 4224354357u ^ 2053361779u);
                        continue;

                    case 6u:
                        arg_2B5_0 = (((!session.Character.Equipment.ContainsKey(b2)) ? 1606302786u : 36007046u) ^ num * 2311842534u);
                        continue;

                    case 7u:
                    {
                        session.Character.Equipment.Remove(b2);
                        Item item;
                        session.Character.Bag.Add(b, item);
                        SmartGuid smartGuid = new SmartGuid(item.Guid, 0, GuidType.Item, 0uL);
                        arg_2B5_0 = 523317569u;
                        continue;
                    }

                    case 8u:
                        goto IL_30A;

                    case 9u:
                    {
                        WorldClass session2;
                        session2.Character = session.Character;
                        arg_2B5_0          = (num * 1020405840u ^ 1878556788u);
                        continue;
                    }

                    case 11u:
                        arg_2B5_0 = (session.Character.Bag.ContainsKey(b) ? 1868005100u : 1269139193u);
                        continue;

                    case 12u:
                    {
                        Item item = session.Character.Equipment[b2];
                        arg_2B5_0 = (num * 125860851u ^ 2899062321u);
                        continue;
                    }

                    case 13u:
                        session.Character.SetUpdateField <ushort>(1035 + (int)(b2 * 2) + 1, 0, 0);
                        arg_2B5_0 = (num * 1261327750u ^ 544625808u);
                        continue;

                    case 14u:
                        goto IL_303;

                    case 15u:
                    {
                        SmartGuid smartGuid;
                        session.Character.SetUpdateField <ulong>(1085 + (int)(b * 4), smartGuid.Guid, 0);
                        session.Character.SetUpdateField <ulong>(1085 + (int)(b * 4) + 2, smartGuid.HighGuid, 0);
                        arg_2B5_0 = (num * 4049090278u ^ 4148349777u);
                        continue;
                    }
                    }
                    goto Block_3;
                }
            }
Block_3:
            return;

IL_30A:
            ItemHandler.AddItem(session, b2);
        }
Exemplo n.º 28
0
        public static void HandleTalkToGossip(ref PacketReader packet, ref WorldClass session)
        {
            BitUnpack BitUnpack = new BitUnpack(packet);

            byte[] guidMask  = { 2, 1, 7, 3, 6, 0, 4, 5 };
            byte[] guidBytes = { 5, 3, 6, 2, 7, 0, 4, 1 };

            var guid       = BitUnpack.GetPackedValue(guidMask, guidBytes);
            var gossipData = GossipMgr.GetGossip <Creature>(SmartGuid.GetGuid(guid));

            if (gossipData != null)
            {
                PacketWriter gossipMessage = new PacketWriter(ServerMessage.GossipMessage);
                BitPack      BitPack       = new BitPack(gossipMessage, guid);

                BitPack.WriteGuidMask(0, 5);
                BitPack.Write(gossipData.OptionsCount, 20);
                BitPack.WriteGuidMask(6, 1);

                for (int i = 0; i < gossipData.OptionsCount; i++)
                {
                    // OptionsCount not supported.
                }

                BitPack.WriteGuidMask(2);
                BitPack.Write(gossipData.QuestsCount, 19);
                BitPack.WriteGuidMask(4);

                for (int i = 0; i < gossipData.QuestsCount; i++)
                {
                    // QuestsCount not supported.
                }

                BitPack.WriteGuidMask(3, 7);
                BitPack.Flush();

                for (int i = 0; i < gossipData.OptionsCount; i++)
                {
                    // OptionsCount not supported.
                }

                for (int i = 0; i < gossipData.QuestsCount; i++)
                {
                    // QuestsCount not supported.
                }

                BitPack.WriteGuidBytes(5, 2, 6, 0);

                gossipMessage.WriteInt32(gossipData.Id);

                BitPack.WriteGuidBytes(4, 7);

                gossipMessage.WriteInt32(gossipData.TextID);

                BitPack.WriteGuidBytes(3, 1);

                gossipMessage.WriteInt32(gossipData.FriendshipFactionID);

                session.Send(ref gossipMessage);
            }
        }
Exemplo n.º 29
0
        public override IClientPacket Read()
        {
            Guid = Packet.Read <SmartGuid>();

            return(this);
        }
Exemplo n.º 30
0
        public static void HandleCastSpell(ref PacketReader packet, WorldClass2 session)
        {
            SmartGuid castId = packet.ReadGuid();

            packet.Read <int>();
            WorldClass session2;
            bool       flag;
            int        num2;

            while (true)
            {
IL_A5:
                uint arg_80_0 = 88971970u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_80_0 ^ 899281459u)) % 6u)
                    {
                    case 0u:
                        session2 = Manager.WorldMgr.GetSession(session.Character.Guid);
                        arg_80_0 = (num * 2285706345u ^ 946484535u);
                        continue;

                    case 2u:
                        flag     = false;
                        arg_80_0 = (num * 2596192904u ^ 1190916770u);
                        continue;

                    case 3u:
                        num2     = packet.Read <int>();
                        arg_80_0 = (num * 1794880723u ^ 3422198762u);
                        continue;

                    case 4u:
                        goto IL_A5;

                    case 5u:
                        packet.Read <int>();
                        arg_80_0 = (num * 1876448829u ^ 2032187839u);
                        continue;
                    }
                    goto Block_1;
                }
            }
Block_1:
            uint key = 0u;

            using (Dictionary <string, Tuple <uint, uint> > .Enumerator enumerator = Manager.WorldMgr.MountSpells.GetEnumerator())
            {
                while (true)
                {
IL_178:
                    uint arg_140_0 = enumerator.MoveNext() ? 1710289446u : 1398974958u;
                    while (true)
                    {
                        uint num;
                        switch ((num = (arg_140_0 ^ 899281459u)) % 7u)
                        {
                        case 0u:
                        {
                            KeyValuePair <string, Tuple <uint, uint> > current;
                            arg_140_0 = ((((ulong)current.Value.Item2 != (ulong)((long)num2)) ? 2858814123u : 2326435399u) ^ num * 1448571402u);
                            continue;
                        }

                        case 2u:
                            goto IL_178;

                        case 3u:
                        {
                            KeyValuePair <string, Tuple <uint, uint> > current = enumerator.Current;
                            arg_140_0 = 407543239u;
                            continue;
                        }

                        case 4u:
                        {
                            KeyValuePair <string, Tuple <uint, uint> > current;
                            key       = current.Value.Item1;
                            flag      = true;
                            arg_140_0 = (num * 3736795090u ^ 2499053439u);
                            continue;
                        }

                        case 5u:
                            arg_140_0 = 1710289446u;
                            continue;
                        }
                        goto Block_8;
                    }
                }
                Block_8 :;
            }
            if (flag)
            {
                goto IL_21A;
            }
            goto IL_2AA;
            uint arg_270_0;

            while (true)
            {
IL_26B:
                uint num;
                switch ((num = (arg_270_0 ^ 899281459u)) % 11u)
                {
                case 0u:
                    goto IL_2B9;

                case 1u:
                    SpellHandler.activeSpell = num2;
                    arg_270_0 = 1254900537u;
                    continue;

                case 2u:
                    ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                    arg_270_0 = (num * 491903829u ^ 962464016u);
                    continue;

                case 3u:
                    session.Character.SetUpdateField <int>(107, 0, 0);
                    ObjectHandler.HandleUpdateObjectValues(ref session2, false);
                    arg_270_0 = (num * 848114486u ^ 2321693018u);
                    continue;

                case 4u:
                    goto IL_21A;

                case 5u:
                    session.Character.SetUpdateField <uint>(107, Manager.WorldMgr.MountDisplays[key], 0);
                    arg_270_0 = (num * 1207556804u ^ 358871447u);
                    continue;

                case 6u:
                    goto IL_2AA;

                case 7u:
                    goto IL_2C0;

                case 8u:
                    arg_270_0 = (((SpellHandler.activeSpell != 0) ? 3488354535u : 2713727219u) ^ num * 1240849208u);
                    continue;

                case 9u:
                    MoveHandler.HandleMoveSetRunSpeed(ref session, 7f);
                    arg_270_0 = (num * 4147973084u ^ 1878138665u);
                    continue;
                }
                break;
            }
            return;

IL_2B9:
            SpellHandler.activeSpell = 0;
            return;

IL_2C0:
            MoveHandler.HandleMoveSetRunSpeed(ref session, 14f);
            return;

IL_21A:
            arg_270_0 = 979607853u;
            goto IL_26B;
IL_2AA:
            SpellHandler.CastSpell(session2, num2, castId);
            arg_270_0 = 1740439945u;
            goto IL_26B;
        }