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)); } } }
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); }
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); } }
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)); }
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)); }
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); } }
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); }
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); }
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); }
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); }
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); } }
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); } }
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); } }
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); } }
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); }
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; } } }
public void CreateFullGuid() { Guid = new SmartGuid(Guid, Id, HighGuidType.Unit).Guid; }
public void CreateFullGuid() { Guid = new SmartGuid(Guid, Id, HighGuidType.GameObject).Guid; }
public static void CastSpell(WorldClass session, int spellId, SmartGuid castId) { SpellHandler.< CastSpell > d__6 <CastSpell> d__;
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; }
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); }
public override void Read() { Guid = Packet.Read <SmartGuid>(); }
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; } } }
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); }
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; }
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; }
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); }
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); } }
public override IClientPacket Read() { Guid = Packet.Read <SmartGuid>(); return(this); }
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; }