# Forum > World of Warcraft > World of Warcraft Bots and Programs > WoW Memory Editing >  [4.0.0 12025] Opcode ID changed ?

## Woweur

Hey, i have patched my cataclysm alpha to the next build (12025) and i have try to adapt emulator for this. Ok, so i have decompile with IDA in pseudo-code wow.exe ...etc.

When i try to find the new offset for ReadUint32, HandleOpcode i have find that : 



```
//----- (004BC690) --------------------------------------------------------
void __cdecl sub_4BC690()
{
  void *v0; // [email protected]

  if ( !dword_C1C980 )
  {
    v0 = sub_7A6F40(57752, (int)".\\FriendList.cpp", 1207, 0);
    if ( v0 )
      dword_C1C980 = sub_4B68E0(v0);
    else
      dword_C1C980 = 0;
    sub_4B3B80(0x2FEDu, (int)sub_4BC370, 0);
    sub_4B3B80(0x3B68u, (int)sub_4B69D0, 0);
    sub_4B3B80(0xCBEBu, (int)sub_4B6A10, 0);
    sub_4B3B80(0xBFECu, (int)sub_4BC350, 0);
    sub_4B3B80(0x7FECu, (int)sub_4BC300, 0);
    sub_5F9E60((int)"whois", (int)sub_4B78F0, 0, (int)"Ask the server to do an account/real name lookup on a character name");
```

Ok, so sub_4B3B80 is a function for handle recv opcode from the server, so the first argument of the function is opcode id ! 

Here you can view the same function for build 11927 :



```
//----- (00FriendList__Initialize) --------------------------------------------------------
void __cdecl sub_FriendList__Initialize()
{
  void *v0; // [email protected]

  if ( !dword_B8E3E0 )
  {
    v0 = sub_SMemAlloc(57752, (signed int)".\\FriendList.cpp", 1207, 0);
    if ( v0 )
      dword_B8E3E0 = sub_FriendList__FriendList(v0);
    else
      dword_B8E3E0 = 0;
    sub_ClientServices_SetMessageHandler(99, (int)sub_Packet_Packet_SMSG_WHO, 0);
    sub_ClientServices_SetMessageHandler(101, (int)sub_Packet_Packet_SMSG_WHOIS, 0);
    sub_ClientServices_SetMessageHandler(510, (int)sub_Packet_Packet_SMSG_RWHOIS, 0);
    sub_ClientServices_SetMessageHandler(103, (int)sub_Packet_Packet_SMSG_CONTACT_LIST, 0);
    sub_ClientServices_SetMessageHandler(104, (int)sub_Packet_Packet_SMSG_FRIEND_STATUS, 0);
    sub_ConsoleCommandRegister("whois", (int)sub_4B1890, 0, (int)"Ask the server to do an account/real name lookup on a character name");
```

so, WTF ? Blizzard has change all opcode id ?

----------


## TOM_RUS

Yeah. Looks like they randomized all opcodes  :Big Grin:

----------


## Woweur

Ok so i'm no crasy =P.
I don't think it's random opcode id, maybe formule, flags or something.

----------


## XTZGZoReX

All research so far shows that they're completely randomized during compile-time.

The randomized IDs are "condensed" though, but it's seemingly not anything that'd be useful to us.

So until someone works their magic, we're pretty much ****ed.

----------


## Woweur

I Try to make a little tool for convert old server's opcode to new server's opcode, i just need go into a game with new build. Noby has a sandbox source ? (because with sandbox, we havn't a lot of opcode to change manualy =P).

----------


## Hiperzone

lol anyone having trouble locating SMSG_AUTH_CHALLENGE and SMSG_COMPRESSED_OBJECT opcodes? cant seem to find the ids at all.

----------


## XTZGZoReX

> lol anyone having trouble locating SMSG_AUTH_CHALLENGE and SMSG_COMPRESSED_OBJECT opcodes? cant seem to find the ids at all.


I hope you're not searching for their old, non-randomized value...




> I Try to make a little tool for convert old server's opcode to new server's opcode, i just need go into a game with new build. Noby has a sandbox source ? (because with sandbox, we havn't a lot of opcode to change manualy =P).


How would you even achieve that?

----------


## Woweur

45027 is a new randomized ID for smsg_compress_object_update and 7651 is a new randomized ID for SMSG_AUTH_CHALLENGE.

----------


## Hiperzone

ye i found the challenge one by myself, thx for the other. im able to reach char enum now, just need to get CMSG_CHAR_LOGIN for world enter.

----------


## Woweur

it's 35820 for CMSG_CHAR_LOGIN.

----------


## Hurrr

Here's a (long and painful) way to find the new values for all the SMSG opcodes.

Run two instances of IDA pro side-by-side, one with the 11927 client and one with the 12025 client.

In the old client, the function located at 4AE1A0 registers a handler function for a given SMSG opcode. You can find all references to it, it's called with the opcode as first parameter (so pushed last before the call).

In the new client, that function is at 4B3B80 and works the exact same way, except with the randomized value for that opcode.

So in both IDA, go to that function and open the xref pane (view -> open subview -> cross references). Dock it to the side. 

Now the nice thing is that the calls to those functions appears to be mostly in the same order in both versions of the client (ie the code looks the same in both place except for the opcode. I also looked at the handler code for a couple opcodes that were registered in the same place and the handler code seemed to match too).

So by going through each call one by one on each side you can establish a correspondence table between the old opcode values and the new ones.

I guess some script could be made to parse the disassembled code for both client and automatically build that correspondence table, the problem is that so far from what I seen the order can differ slightly, I've seen one small function registering just one opcode in the old client that wasn't there at the same place in the new one.

But to fish out individual opcodes I guess it's workable. I had started to collect all the opcodes manually but it's an awful lot of work to do by hand and it's error prone.

----------


## Woweur

Yeah, i have already done a little script for that (detour a function with injected DLL) but that work only if you can go in game AND it's work only for server opcode (SMSG).

----------


## Hurrr

I found the function that sends a CMSG. It's at 798080 in the new client and at 758790 in the 11927 client. It takes the opcode as first parameter on the stack. The same method as with the function that registers the SMSG handlers can probably be applied.

Gonna try to see if I can get mangos to work.

----------


## Robske

The ones I checked (mainly those related to movement) are correct.

Is this Blizzard's response to those 'teleport' hacks?...


```
enum RealmServerOpCode
{
	SMSG_TUTORIAL_FLAGS = 0x5D62,

	SMSG_NOTIFICATION = 0x99EE,

	SMSG_PLAYED_TIME = 0x1F69,

	SMSG_NEW_WORLD = 0x2D62,

	SMSG_TRANSFER_PENDING = 0x29EC,

	SMSG_TRANSFER_ABORTED = 0x79EA,

	SMSG_LOGIN_VERIFY_WORLD = 0xF96E,

	SMSG_KICK_REASON = 0x1F6D,

	SMSG_SPELL_START = 0xCFE8,

	SMSG_SPELL_GO = 0xEBE8,

	SMSG_CAST_FAILED = 0x9B69,

	SMSG_SPELL_FAILURE = 0x6F6B,

	SMSG_SPELL_FAILED_OTHER = 0xED6D,

	SMSG_PET_CAST_FAILED = 0x6DED,

	SMSG_SPELL_COOLDOWN = 0x1964,

	SMSG_ITEM_COOLDOWN = 0xCD6E,

	SMSG_COOLDOWN_EVENT = 0xEB66,

	SMSG_CLEAR_COOLDOWN = 0xE9E0,

	SMSG_MODIFY_COOLDOWN = 0x7D6E,

	SMSG_COOLDOWN_CHEAT = 0x59EF,

	SMSG_PET_TAME_FAILURE = 0xF9E2,

	SMSG_SPELL_DELAYED = 0x496A,

	MSG_CHANNEL_START = 0x1D69,

	MSG_CHANNEL_UPDATE = 0x7FE3,

	SMSG_PLAY_SPELL_VISUAL = 0xBDE8,

	SMSG_PLAY_SPELL_IMPACT = 0xFD61,

	SMSG_SET_FLAT_SPELL_MODIFIER = 0x2FED,

	SMSG_SET_PCT_SPELL_MODIFIER = 0x3B68,

	SMSG_GAMEOBJECT_RESET_STATE = 0xCBEB,

	SMSG_FEIGN_DEATH_RESISTED = 0xBFEC,

	SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0x7FEC,

	SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x2B6D,

	SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x5B67,

	SMSG_UNKNOWN_1215 = 0xB960,

	SMSG_MEETINGSTONE_IN_PROGRESS = 0xEFE0,

	SMSG_DAMAGE_TAKEN_OBSOLETE = 0xCFED,

	SMSG_WARDEN_DATA = 0xBD65,

	SMSG_GAMESPEED_SET = 0xBF66,

	SMSG_LOGIN_SETTIMESPEED = 0xBD67,

	SMSG_GAMETIME_UPDATE = 0x4B6D,

	SMSG_SERVERTIME = 0x8FE6,

	SMSG_GAMETIME_SET = 0x3F68,

	SMSG_MOUNTRESULT = 0xFBE8,

	SMSG_DISMOUNTRESULT = 0x7D62,

	SMSG_INVENTORY_CHANGE_FAILURE = 0x0969,

	SMSG_OPEN_CONTAINER = 0x3F60,

	SMSG_ITEM_PUSH_RESULT = 0xFDED,

	SMSG_LIST_INVENTORY = 0x2DE0,

	SMSG_BUY_FAILED = 0x7DEE,

	SMSG_BUY_ITEM = 0x5FE6,

	SMSG_SELL_ITEM = 0xEB6F,

	SMSG_UNKNOWN_1202 = 0xADED,

	SMSG_UNKNOWN_1205 = 0x7F62,

	SMSG_LOOT_RESPONSE = 0xABE7,

	SMSG_LOOT_RELEASE_RESPONSE = 0xAF60,

	SMSG_LOOT_REMOVED = 0xFB65,

	SMSG_LOOT_MONEY_NOTIFY = 0x3D62,

	SMSG_LOOT_ITEM_NOTIFY = 0x5968,

	SMSG_LOOT_CLEAR_MONEY = 0xBDEA,

	SMSG_LEARNED_SPELL = 0x7D6A,

	SMSG_REMOVED_SPELL = 0x8FE3,

	SMSG_SUPERCEDED_SPELL = 0xEB63,

	SMSG_INITIAL_SPELLS = 0xE9E6,

	SMSG_ACTION_BUTTONS = 0xFBED,

	SMSG_GROUP_INVITE = 0xDFE5,

	SMSG_GROUP_CANCEL = 0x1D6E,

	SMSG_GROUP_DECLINE = 0x3D67,

	SMSG_GROUP_UNINVITE = 0xDF6B,

	SMSG_GROUP_SET_LEADER = 0xADE0,

	SMSG_GROUP_DESTROYED = 0xBFEA,

	SMSG_PARTY_COMMAND_RESULT = 0x3FE7,

	SMSG_GROUP_LIST = 0xF968,

	SMSG_REAL_GROUP_UPDATE = 0xFDE1,

	SMSG_QUESTGIVER_QUEST_LIST = 0x0B6F,

	SMSG_QUESTGIVER_QUEST_INVALID = 0xED6B,

	SMSG_QUESTGIVER_QUEST_DETAILS = 0xBBEA,

	SMSG_QUESTGIVER_REQUEST_ITEMS = 0x9D64,

	SMSG_QUESTGIVER_OFFER_REWARD = 0xC9E7,

	SMSG_QUESTGIVER_QUEST_COMPLETE = 0xFBE5,

	SMSG_QUESTGIVER_QUEST_FAILED = 0x796C,

	SMSG_QUESTGIVER_STATUS = 0xF96A,

	SMSG_QUESTGIVER_STATUS_MULTIPLE = 0x7DE6,

	SMSG_QUESTLOG_FULL = 0x2FEE,

	SMSG_TRAINER_LIST = 0xDFE8,

	SMSG_TRAINER_BUY_FAILED = 0xC960,

	SMSG_SET_PROFICIENCY = 0x4B65,

	SMSG_RESURRECT_REQUEST = 0xCDE2,

	SMSG_PLAYER_SKINNED = 0x3DEC,

	SMSG_INSPECT = 0x0B64,

	SMSG_INSPECT_TALENT = 0x5DEB,

	SMSG_READ_ITEM_OK = 0xD96E,

	SMSG_READ_ITEM_FAILED = 0xCDE6,

	SMSG_CANCEL_COMBAT = 0x1B62,

	SMSG_TAXINODE_STATUS = 0x0B62,

	SMSG_SHOWTAXINODES = 0x296D,

	SMSG_ACTIVATETAXIREPLY = 0x1FEC,

	SMSG_GUILD_INVITE = 0x7BEB,

	SMSG_GUILD_DECLINE = 0x7BEF,

	SMSG_GUILD_INFO = 0xC96E,

	SMSG_GUILD_EVENT = 0xBD63,

	SMSG_GUILD_COMMAND_RESULT = 0xBB63,

	MSG_SAVE_GUILD_EMBLEM = 0xCFE0,

	MSG_TABARDVENDOR_ACTIVATE = 0x5FE0,

	SMSG_PETITION_SHOWLIST = 0xBDED,

	SMSG_PETITION_SHOW_SIGNATURES = 0x79EC,

	SMSG_PETITION_SIGN_RESULTS = 0x6FE9,

	MSG_PETITION_DECLINE = 0xE9EE,

	SMSG_TURN_IN_PETITION_RESULTS = 0xEB6A,

	MSG_PETITION_RENAME = 0x6B68,

	SMSG_BINDPOINTUPDATE = 0x3BED,

	SMSG_BINDZONEREPLY = 0xEBEA,

	SMSG_EMOTE = 0xAFEA,

	SMSG_PLAYERBOUND = 0xEDEA,

	SMSG_PLAYERBINDERROR = 0x0FE9,

	SMSG_NEW_TAXI_PATH = 0x3F6D,

	SMSG_PET_NAME_INVALID = 0xCBE4,

	SMSG_EXPLORATION_EXPERIENCE = 0x9BE6,

	SMSG_PARTY_MEMBER_STATS = 0x9D63,

	SMSG_PARTY_MEMBER_STATS_FULL = 0x6FEC,

	SMSG_QUESTUPDATE_FAILED = 0x99E7,

	SMSG_QUESTUPDATE_FAILEDTIMER = 0x0BED,

	SMSG_QUESTUPDATE_COMPLETE = 0xF963,

	SMSG_QUESTUPDATE_ADD_KILL = 0x6F6E,

	SMSG_QUESTUPDATE_ADD_PVP_KILL = 0xBD66,

	SMSG_QUEST_CONFIRM_ACCEPT = 0xEBE7,

	SMSG_SHOW_BANK = 0x4962,

	SMSG_BUY_BANK_SLOT_RESULT = 0x3FE1,

	SMSG_LEVELUP_INFO = 0xEBE1,

	MSG_MINIMAP_PING = 0x7FE8,

	SMSG_TRIGGER_CINEMATIC = 0x9DE1,

	SMSG_ITEM_TIME_UPDATE = 0x4F6F,

	SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x3964,

	MSG_RANDOM_ROLL = 0xE96D,

	SMSG_FISH_NOT_HOOKED = 0xBF65,

	SMSG_FISH_ESCAPED = 0x5B6D,

	SMSG_FORCEACTIONSHOW = 0x4DE4,

	SMSG_GODMODE = 0xDF6D,

	SMSG_PETGODMODE = 0xFB6C,

	SMSG_IGNORE_REQUIREMENTS_CHEAT = 0x3DEF,

	SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT = 0x696A,

	SMSG_CLEAR_FAR_SIGHT_IMMEDIATE = 0x0B63,

	SMSG_CHAT_WRONG_FACTION = 0x8B6C,

	SMSG_CHAT_PLAYER_NOT_FOUND = 0x1DE7,

	SMSG_CHAT_RESTRICTED = 0xCDED,

	SMSG_MEETINGSTONE_MEMBER_ADDED = 0x7FEB,

	SMSG_GMTICKET_SYSTEMSTATUS = 0x9D69,

	SMSG_SPIRIT_HEALER_CONFIRM = 0x69E0,

	MSG_TALENT_WIPE_CONFIRM = 0x0BE0,

	SMSG_BINDER_CONFIRM = 0x5F6F,

	SMSG_SPELLLOGEXECUTE = 0x7F6C,

	SMSG_SPELLLOGMISS = 0x0FE6,

	SMSG_SPELLDAMAGESHIELD = 0xDFEC,

	SMSG_SPELLINSTAKILLLOG = 0xCBEF,

	SMSG_SPELLNONMELEEDAMAGELOG = 0x8961,

	SMSG_SPELLHEALLOG = 0x19E9,

	SMSG_SPELLENERGIZELOG = 0xBFEF,

	SMSG_SPELLDISPELLOG = 0x19ED,

	SMSG_SPELLSTEALLOG = 0x0FED,

	SMSG_SPELLBREAKLOG = 0xE96B,

	SMSG_RESURRECT_FAILED = 0x8B65,

	SMSG_SPELLORDAMAGE_IMMUNE = 0xBD69,

	MSG_QUEST_PUSH_RESULT = 0xCFE7,

	SMSG_DAMAGE_CALC_LOG = 0x0DE3,

	SMSG_RAID_GROUP_ONLY = 0xFBEE,

	SMSG_INSTANCE_LOCK_WARNING_QUERY = 0x996C,

	SMSG_LOOT_START_ROLL = 0x59EA,

	SMSG_LOOT_ALL_PASSED = 0xAFE6,

	SMSG_LOOT_ROLL_WON = 0x8F6C,

	SMSG_LOOT_ROLL = 0x2FE6,

	SMSG_LOOT_MASTER_LIST = 0x4BE5,

	SMSG_MEETINGSTONE_SETQUEUE = 0x2D68,

	SMSG_SUMMON_REQUEST = 0x1961,

	SMSG_SUMMON_CANCEL = 0x9D6C,

	SMSG_PLAY_TIME_WARNING = 0xA96B,

	SMSG_ARENA_TEAM_INVITE = 0x69E7,

	SMSG_ARENA_TEAM_EVENT = 0x5FE8,

	SMSG_ARENA_TEAM_COMMAND_RESULT = 0x896C,

	SMSG_ARENA_ERROR = 0xBF68,

	SMSG_DEATH_RELEASE_LOC = 0x6FE6,

	SMSG_FORCED_DEATH_UPDATE = 0xDD6F,

	SMSG_TIME_SYNC_REQ = 0x9D6A,

	SMSG_VOICE_SESSION_ROSTER_UPDATE = 0x4BED,

	SMSG_VOICE_SESSION_LEAVE = 0x6BEE,

	SMSG_VOICE_SET_TALKER_MUTED = 0x5F68,

	SMSG_VOICE_PARENTAL_CONTROLS = 0xB96C,

	SMSG_CROSSED_INEBRIATION_THRESHOLD = 0xEDEC,

	SMSG_COMPLAIN_RESULT = 0xEB62,

	SMSG_FEATURE_SYSTEM_STATUS = 0x7B67,

	SMSG_AVAILABLE_VOICE_CHANNEL = 0xE9EA,

	SMSG_CALENDAR_COMMAND_RESULT = 0x49E3,

	SMSG_REPORT_PVP_AFK_RESULT = 0x4F63,

	SMSG_GROUPACTION_THROTTLED = 0x7BEE,

	SMSG_SEND_UNLEARN_SPELLS = 0x6BE5,

	SMSG_CONVERT_RUNE = 0x9D60,

	SMSG_RESYNC_RUNES = 0x59E1,

	SMSG_ADD_RUNE_POWER = 0x1B6D,

	SMSG_UNKNOWN_1190 = 0xCD66,

	SMSG_TALENTS_INFO = 0x0F66,

	SMSG_UNKNOWN_1224 = 0x3DE3,

	SMSG_QUEST_POI_QUERY_RESPONSE = 0x1B67,

	SMSG_TOGGLE_XP_GAIN = 0xC9E6,

	SMSG_SET_REST_START_OBSOLETE = 0x6BE3,

	SMSG_TRADE_STATUS = 0xF9E7,

	SMSG_TRADE_STATUS_EXTENDED = 0x9B6E,

	SMSG_GAMEOBJECT_PAGETEXT = 0x9BEF,

	SMSG_GAMEOBJECT_CUSTOM_ANIM = 0x1FE8,

	SMSG_GAMEOBJECT_DESPAWN_ANIM = 0x2FE1,

	MSG_MOVE_START_FORWARD = 0xFD6F,

	MSG_MOVE_START_BACKWARD = 0x39E7,

	MSG_MOVE_STOP = 0x9FE5,

	MSG_MOVE_START_STRAFE_LEFT = 0x1DEE,

	MSG_MOVE_START_STRAFE_RIGHT = 0x8B61,

	MSG_MOVE_STOP_STRAFE = 0x3DEE,

	MSG_MOVE_START_ASCEND = 0xDBE3,

	MSG_MOVE_START_DESCEND = 0x9F6A,

	MSG_MOVE_STOP_ASCEND = 0x4D69,

	MSG_MOVE_JUMP = 0x5DEA,

	MSG_MOVE_START_TURN_LEFT = 0xEFE6,

	MSG_MOVE_START_TURN_RIGHT = 0xA9E2,

	MSG_MOVE_STOP_TURN = 0xFD63,

	MSG_MOVE_START_PITCH_UP = 0x796A,

	MSG_MOVE_START_PITCH_DOWN = 0x7DE1,

	MSG_MOVE_STOP_PITCH = 0x2FE7,

	MSG_MOVE_SET_RUN_MODE = 0x8DE4,

	MSG_MOVE_SET_WALK_MODE = 0xEF6C,

	MSG_MOVE_TELEPORT = 0x2D6A,

	MSG_MOVE_SET_FACING = 0x89EE,

	MSG_MOVE_SET_PITCH = 0x2D66,

	MSG_MOVE_TOGGLE_COLLISION_CHEAT = 0xCB68,

	SMSG_UNKNOWN_1234 = 0xFFE1,

	MSG_MOVE_SET_RUN_SPEED = 0xAB61,

	MSG_MOVE_SET_RUN_BACK_SPEED = 0x6FE0,

	MSG_MOVE_SET_WALK_SPEED = 0x5BE5,

	MSG_MOVE_SET_SWIM_SPEED = 0xEF66,

	MSG_MOVE_SET_SWIM_BACK_SPEED = 0x4965,

	MSG_MOVE_SET_FLIGHT_SPEED = 0x8D6C,

	MSG_MOVE_SET_FLIGHT_BACK_SPEED = 0xD9EA,

	MSG_MOVE_SET_TURN_RATE = 0x4FE0,

	MSG_MOVE_SET_PITCH_RATE = 0xDF67,

	MSG_MOVE_ROOT = 0x7FEF,

	MSG_MOVE_UNROOT = 0xEDE3,

	MSG_MOVE_START_SWIM = 0x6960,

	MSG_MOVE_STOP_SWIM = 0x5F62,

	MSG_MOVE_START_SWIM_CHEAT = 0xAD6E,

	MSG_MOVE_STOP_SWIM_CHEAT = 0x6BE7,

	MSG_MOVE_HEARTBEAT = 0xB96D,

	MSG_MOVE_FALL_LAND = 0xB96E,

	MSG_MOVE_UPDATE_CAN_FLY = 0xB9E7,

	UMSG_UPDATE_ARENA_TEAM_OBSOLETE = 0xC9E1,

	MSG_MOVE_TELEPORT_ACK = 0x1BE2,

	MSG_MOVE_TIME_SKIPPED = 0x3969,

	SMSG_MONSTER_MOVE = 0x9968,

	SMSG_MONSTER_MOVE_TRANSPORT = 0x4961,

	SMSG_FORCE_RUN_SPEED_CHANGE = 0x0B60,

	SMSG_FORCE_RUN_BACK_SPEED_CHANGE = 0x9BEE,

	SMSG_FORCE_SWIM_SPEED_CHANGE = 0x09E6,

	SMSG_FORCE_SWIM_BACK_SPEED_CHANGE = 0xADE6,

	SMSG_FORCE_FLIGHT_SPEED_CHANGE = 0x1DEB,

	SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE = 0xBBEE,

	SMSG_FORCE_WALK_SPEED_CHANGE = 0xEDE9,

	SMSG_FORCE_TURN_RATE_CHANGE = 0xB964,

	SMSG_FORCE_PITCH_RATE_CHANGE = 0xDFE0,

	SMSG_FORCE_MOVE_ROOT = 0x79E7,

	SMSG_FORCE_MOVE_UNROOT = 0x1F62,

	SMSG_MOVE_WATER_WALK = 0x296E,

	SMSG_MOVE_LAND_WALK = 0xDBEC,

	SMSG_MOVE_FEATHER_FALL = 0xCBE1,

	SMSG_MOVE_NORMAL_FALL = 0xBF69,

	SMSG_MOVE_SET_HOVER = 0xFB66,

	SMSG_MOVE_UNSET_HOVER = 0x5F6C,

	SMSG_UNKNOWN_1230 = 0x596E,

	SMSG_UNKNOWN_1232 = 0xE965,

	SMSG_MOVE_SET_CAN_FLY = 0xEBEF,

	SMSG_MOVE_UNSET_CAN_FLY = 0x4FE8,

	SMSG_MOVE_SET_FLIGHT_OBSOLETE = 0x6B61,

	SMSG_MOVE_UNSET_FLIGHT_OBSOLETE = 0xFB6D,

	SMSG_MOVE_KNOCK_BACK = 0xF9E1,

	SMSG_MOUNTSPECIAL_ANIM = 0x7FE7,

	SMSG_AI_REACTION = 0x1FE9,

	MSG_MOVE_KNOCK_BACK = 0xAD6B,

	MSG_MOVE_HOVER = 0x49E2,

	MSG_MOVE_FEATHER_FALL = 0xFBE3,

	MSG_MOVE_WATER_WALK = 0x8DE0,

	SMSG_PET_ACTION_SOUND = 0x49E8,

	SMSG_PET_DISMISS_SOUND = 0x59ED,

	SMSG_SPLINE_MOVE_ROOT = 0x9FEE,

	SMSG_UNKNOWN_1235 = 0x3DE0,

	SMSG_UNKNOWN_1236 = 0x4F6E,

	SMSG_SPLINE_MOVE_UNROOT = 0x7BE8,

	SMSG_SPLINE_MOVE_FEATHER_FALL = 0x9DEA,

	SMSG_SPLINE_MOVE_NORMAL_FALL = 0xFB6B,

	SMSG_SPLINE_MOVE_SET_HOVER = 0xF9E0,

	SMSG_SPLINE_MOVE_UNSET_HOVER = 0x39EC,

	SMSG_SPLINE_MOVE_WATER_WALK = 0x2D65,

	SMSG_SPLINE_MOVE_LAND_WALK = 0xAFE2,

	SMSG_SPLINE_MOVE_START_SWIM = 0x1B65,

	SMSG_SPLINE_MOVE_STOP_SWIM = 0x9DE9,

	SMSG_SPLINE_MOVE_SET_RUN_MODE = 0x296F,

	SMSG_SPLINE_MOVE_SET_WALK_MODE = 0x0BE2,

	SMSG_SPLINE_MOVE_SET_FLYING = 0xEBED,

	SMSG_SPLINE_MOVE_UNSET_FLYING = 0x7BEC,

	SMSG_SPLINE_SET_RUN_SPEED = 0xADE1,

	SMSG_SPLINE_SET_RUN_BACK_SPEED = 0xCDEF,

	SMSG_SPLINE_SET_SWIM_SPEED = 0x8BED,

	SMSG_SPLINE_SET_SWIM_BACK_SPEED = 0xEF60,

	SMSG_SPLINE_SET_FLIGHT_SPEED = 0x59EE,

	SMSG_SPLINE_SET_FLIGHT_BACK_SPEED = 0xEB69,

	SMSG_SPLINE_SET_WALK_SPEED = 0x1F67,

	SMSG_SPLINE_SET_TURN_RATE = 0xCF6D,

	SMSG_SPLINE_SET_PITCH_RATE = 0x1960,

	SMSG_STANDSTATE_UPDATE = 0xA9EF,

	SMSG_COMPRESSED_MOVES = 0x3DEA,

	SMSG_CLIENT_CONTROL_UPDATE = 0x7FE9,

	SMSG_FLIGHT_SPLINE_SYNC = 0xFF6A,

	SMSG_AURA_UPDATE_ALL = 0x99E6,

	SMSG_AURA_UPDATE = 0xDF68,

	SMSG_DISMOUNT = 0x4967,

	SMSG_LOOT_LIST = 0x3F67,

	SMSG_MIRRORIMAGE_DATA = 0xA9E4,

	SMSG_FORCE_DISPLAY_UPDATE = 0x2D64,

	SMSG_CANCEL_AUTO_REPEAT = 0xAFE9,

	SMSG_HEALTH_UPDATE = 0x89E6,

	SMSG_POWER_UPDATE = 0xDDEC,

	SMSG_HIGHEST_THREAT_UPDATE = 0x69E4,

	SMSG_THREAT_UPDATE = 0x6FE7,

	SMSG_THREAT_REMOVE = 0x4964,

	SMSG_THREAT_CLEAR = 0x5FE4,

	SMSG_PRE_RESURRECT = 0x5B61,

	SMSG_UNKNOWN_1191 = 0xCDEA,

	SMSG_UNKNOWN_1229 = 0xEFE8,

	SMSG_UNKNOWN_1240 = 0x8BEB,

	SMSG_PERIODICAURALOG = 0x6BE4,

	SMSG_ENCHANTMENTLOG = 0x1D6D,

	SMSG_PARTYKILLLOG = 0xFDE7,

	SMSG_PROCRESIST = 0x0DE4,

	SMSG_DISPEL_FAILED = 0x0960,

	SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x5B6B,

	SMSG_ATTACKSTART = 0x0D6D,

	SMSG_ATTACKSTOP = 0x8F64,

	SMSG_ATTACKERSTATEUPDATE = 0x99E8,

	SMSG_ATTACKSWING_NOTINRANGE = 0x1BEB,

	SMSG_ATTACKSWING_BADFACING = 0x9BEA,

	SMSG_ATTACKSWING_DEADTARGET = 0x096D,

	SMSG_ATTACKSWING_CANT_ATTACK = 0x6965,

	SMSG_ENVIRONMENTALDAMAGELOG = 0xCF6F,

	SMSG_CLEAR_TARGET = 0x4BE4,

	SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE = 0x1F61,

	SMSG_WHO = 0xDD62,

	SMSG_WHOIS = 0x0F6D,

	SMSG_RWHOIS = 0xDBE6,

	SMSG_CONTACT_LIST = 0xB9E2,

	SMSG_FRIEND_STATUS = 0xEBEB,

	SMSG_ACCOUNT_DATA_TIMES = 0xAD6F,

	SMSG_UPDATE_ACCOUNT_DATA = 0x0FE7,

	SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = 0x6FE3,

	SMSG_CHECK_FOR_BOTS = 0xF9ED,

	SMSG_CREATURE_QUERY_RESPONSE = 0x3F6B,

	SMSG_GAMEOBJECT_QUERY_RESPONSE = 0x6FEF,

	SMSG_ITEM_NAME_QUERY_RESPONSE = 0x1F6D,

	SMSG_ITEM_QUERY_SINGLE_RESPONSE = 0x8FE5,

	SMSG_ITEM_QUERY_MULTIPLE_RESPONSE = 0xEF64,

	SMSG_NPC_TEXT_UPDATE = 0xCB64,

	SMSG_NAME_QUERY_RESPONSE = 0x4D62,

	SMSG_GUILD_QUERY_RESPONSE = 0xBBE0,

	SMSG_QUEST_QUERY_RESPONSE = 0x1BEC,

	SMSG_PAGE_TEXT_QUERY_RESPONSE = 0x9FEF,

	SMSG_PET_NAME_QUERY_RESPONSE = 0xAB68,

	SMSG_PETITION_QUERY_RESPONSE = 0x0F61,

	SMSG_ITEM_TEXT_QUERY_RESPONSE = 0x2FE2,

	SMSG_INVALIDATE_PLAYER = 0xA9E6,

	SMSG_ARENA_TEAM_QUERY_RESPONSE = 0xA9E5,

	SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE = 0xD96B,

	SMSG_INVALIDATE_DANCE = 0x9B66,

	SMSG_DANCE_QUERY_RESPONSE = 0xB966,

	SMSG_CHANNEL_NOTIFY = 0xC968,

	SMSG_CHANNEL_LIST = 0x2F6A,

	SMSG_MESSAGECHAT = 0xAD60,

	SMSG_TEXT_EMOTE = 0xBD6E,

	SMSG_ZONE_UNDER_ATTACK = 0xCFE9,

	SMSG_DEFENSE_MESSAGE = 0xDDE8,

	SMSG_SERVER_MESSAGE = 0xEBE0,

	SMSG_RAID_INSTANCE_INFO = 0x8F6F,

	SMSG_RAID_INSTANCE_MESSAGE = 0x89E7,

	SMSG_INSTANCE_RESET = 0x5BE3,

	SMSG_INSTANCE_RESET_FAILED = 0x3BEC,

	SMSG_UPDATE_LAST_INSTANCE = 0xDF6F,

	SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x3B6D,

	SMSG_EXPECTED_SPAM_RECORDS = 0x8BE3,

	SMSG_TITLE_EARNED = 0xDF61,

	SMSG_RESET_FAILED_NOTIFY = 0x39E3,

	SMSG_GM_MESSAGECHAT = 0xA9EC,

	SMSG_LOG_XPGAIN = 0x5DE0,

	SMSG_DURABILITY_DAMAGE_DEATH = 0xCBE7,

	SMSG_CHANNEL_MEMBER_COUNT = 0xBDE1,

	SMSG_COMSAT_RECONNECT_TRY = 0xBB67,

	SMSG_COMSAT_DISCONNECT = 0x396B,

	SMSG_COMSAT_CONNECT_FAIL = 0x3FE8,

	SMSG_VOICE_CHAT_STATUS = 0x6DE3,

	SMSG_USERLIST_ADD = 0xEF62,

	SMSG_USERLIST_REMOVE = 0xC967,

	SMSG_USERLIST_UPDATE = 0x2D6F,

	SMSG_VOICESESSION_FULL = 0x2DEE,

	SMSG_SERVER_FIRST_ACHIEVEMENT = 0xF9E4,

	SMSG_PVP_CREDIT = 0xEF6D,

	MSG_CORPSE_QUERY = 0xEF6F,

	SMSG_CORPSE_RECLAIM_DELAY = 0x7F60,

	SMSG_GM_PLAYER_INFO = 0x2D6C,

	CMSG_GM_REQUEST_PLAYER_INFO = 0x5D68,

	SMSG_PLAY_MUSIC = 0x0B6B,

	SMSG_PLAY_SOUND = 0x9D6F,

	SMSG_PLAY_OBJECT_SOUND = 0x9B6B,

	SMSG_TRIGGER_MOVIE = 0x9DE5,

	SMSG_AREA_TRIGGER_MESSAGE = 0x7B65,

	SMSG_INIT_WORLD_STATES = 0x1962,

	SMSG_UPDATE_WORLD_STATE = 0x5BEC,

	SMSG_AREA_SPIRIT_HEALER_TIME = 0xA967,

	SMSG_INVALID_PROMOTION_CODE = 0x2DE5,

	SMSG_WEATHER = 0x1F66,

	SMSG_OVERRIDE_LIGHT = 0x99EA,

	SMSG_INSTANCE_DIFFICULTY = 0xFBEC,

	MSG_SET_DUNGEON_DIFFICULTY = 0xA9E3,

	MSG_SET_RAID_DIFFICULTY = 0x4D6A,

	SMSG_UPDATE_COMBO_POINTS = 0x9B63,

	SMSG_SET_PHASE_SHIFT = 0x2B61,

	SMSG_TOTEM_CREATED = 0x6B6F,

	SMSG_START_MIRROR_TIMER = 0x8DEB,

	SMSG_PAUSE_MIRROR_TIMER = 0x4DE3,

	SMSG_STOP_MIRROR_TIMER = 0x9960,

	SMSG_PROPOSE_LEVEL_GRANT = 0xD969,

	SMSG_REFER_A_FRIEND_FAILURE = 0xCBEA,

	SMSG_REFER_A_FRIEND_EXPIRED = 0xABE9,

	SMSG_BREAK_TARGET = 0x2F61,

	CMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE = 0x4F6B,

	SMSG_PUREMOUNT_CANCELLED_OBSOLETE = 0x3FE3,

	SMSG_WORLD_STATE_UI_TIMER_UPDATE = 0x3D69,

	SMSG_INSTANCE_SAVE_CREATED = 0x49EC,

	SMSG_POWERGAINLOG_OBSOLETE = 0x8FE9,

	SMSG_ENABLE_BARBER_SHOP = 0x2B60,

	SMSG_BARBER_SHOP_RESULT = 0x19E1,

	MSG_INSPECT_HONOR_STATS = 0x39EE,

	MSG_INSPECT_ARENA_TEAMS = 0x5BED,

	SMSG_PET_SPELLS = 0x1F6A,

	SMSG_PET_LEARNED_SPELL = 0x396A,

	SMSG_PET_REMOVED_SPELL = 0x2DE8,

	SMSG_PET_MODE = 0xE9EF,

	SMSG_PET_ACTION_FEEDBACK = 0x3FEF,

	SMSG_PET_BROKEN = 0x2F6F,

	SMSG_PET_RENAMEABLE = 0xEF69,

	SMSG_PET_UPDATE_COMBO_POINTS = 0x79E0,

	SMSG_PET_GUIDS = 0x8967,

	MSG_RAID_TARGET_UPDATE = 0xEF6E,

	MSG_RAID_READY_CHECK = 0x1BE9,

	MSG_RAID_READY_CHECK_CONFIRM = 0x2DE3,

	MSG_RAID_READY_CHECK_FINISHED = 0x0D64,

	SMSG_RAID_READY_CHECK_ERROR = 0x0F68,

	MSG_NOTIFY_PARTY_SQUELCH = 0x6BEB,

	SMSG_ECHO_PARTY_SQUELCH = 0x8FEE,

	SMSG_BATTLEFIELD_LIST = 0xFB61,

	SMSG_BATTLEFIELD_STATUS = 0xDD65,

	MSG_PVP_LOG_DATA = 0x4966,

	SMSG_GROUP_JOINED_BATTLEGROUND = 0x4DE2,

	MSG_BATTLEGROUND_PLAYER_POSITIONS = 0xFDE3,

	SMSG_BATTLEGROUND_PLAYER_JOINED = 0xA964,

	SMSG_BATTLEGROUND_PLAYER_LEFT = 0xFFE3,

	SMSG_UNKNOWN_1223 = 0x19E4,

	SMSG_BATTLEFIELD_PORT_DENIED = 0xB9E0,

	SMSG_UNKNOWN_1246 = 0x8BE2,

	SMSG_UNKNOWN_1248 = 0x5FE1,

	SMSG_UNKNOWN_1252 = 0x1F68,

	SMSG_UNKNOWN_1253 = 0x49EB,

	SMSG_UNKNOWN_1254 = 0x4D66,

	SMSG_UNKNOWN_1249 = 0xCF66,

	SMSG_UNKNOWN_1256 = 0x8DEF,

	SMSG_OFFER_PETITION_ERROR = 0x8B66,

	SMSG_GOSSIP_MESSAGE = 0xCB60,

	SMSG_GOSSIP_COMPLETE = 0xBFEE,

	SMSG_GOSSIP_POI = 0x3BEB,

	SMSG_GUILD_ROSTER = 0xBFE9,

	MSG_GUILD_PERMISSIONS = 0xCFEB,

	MSG_GUILD_EVENT_LOG_QUERY = 0x5D66,

	SMSG_GUILD_BANK_LIST = 0xEDE2,

	MSG_GUILD_BANK_LOG_QUERY = 0x7B63,

	MSG_GUILD_BANK_MONEY_WITHDRAWN = 0x0F63,

	MSG_QUERY_GUILD_BANK_TEXT = 0x3D66,

	SMSG_QUERY_TIME_RESPONSE = 0x29ED,

	CMSG_ACCEPT_LFG_MATCH = 0x1B6E,

	SMSG_LFG_TIMEDOUT = 0x59EC,

	SMSG_LFG_OTHER_TIMEDOUT = 0xD96C,

	SMSG_LFG_AUTOJOIN_FAILED = 0xBFE4,

	CMSG_SET_LOOKING_FOR_MORE = 0xFF6F,

	SMSG_LFG_DISABLED = 0x2B6E,

	CMSG_DECLINE_LFG_MATCH = 0xBFED,

	CMSG_CLEAR_LOOKING_FOR_GROUP = 0x3D6B,

	SMSG_MEETINGSTONE_JOINFAILED = 0x4D60,

	CMSG_CLEAR_LOOKING_FOR_MORE = 0x2DEF,

	SMSG_LFG_UPDATE_LFM = 0x6FE1,

	SMSG_LFG_UPDATE_QUEUED = 0xC969,

	SMSG_LFG_PENDING_MATCH_DONE = 0xB96A,

	MSG_LOOKING_FOR_GROUP = 0x09E5,

	CMSG_SET_LOOKING_FOR_GROUP = 0xAB63,

	SMSG_MEETINGSTONE_LEAVE = 0x2FEB,

	SMSG_ARENA_TEAM_ROSTER = 0xDB63,

	SMSG_ARENA_TEAM_STATS = 0x09EB,

	SMSG_CALENDAR_SEND_CALENDAR = 0x4B62,

	SMSG_CALENDAR_SEND_EVENT = 0x8964,

	SMSG_CALENDAR_EVENT_INVITE = 0xCD6A,

	SMSG_CALENDAR_EVENT_INVITE_REMOVED = 0xAB62,

	SMSG_CALENDAR_EVENT_STATUS = 0xABE5,

	MSG_MOVE_ABANDON_TRANSPORT = 0xCF6E,

	SMSG_CALENDAR_FILTER_GUILD = 0x1F65,

	SMSG_CALENDAR_ARENA_TEAM = 0x49E5,

	SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x99E4,

	SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x5967,

	SMSG_GROUP_SWAP_FAILED = 0x89E1,

	SMSG_CALENDAR_EVENT_INVITE_ALERT = 0x0DE9,

	SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT = 0x0F67,

	SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT = 0x19E0,

	CMSG_MOVE_ABANDON_TRANSPORT_ACK = 0x6962,

	SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x2DEC,

	SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0xAFED,

	SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT = 0x29EA,

	SMSG_CALENDAR_SEND_NUM_PENDING = 0xD9E2,

	SMSG_UNKNOWN_1211 = 0xFFEA,

	SMSG_PLAY_DANCE = 0xFF63,

	SMSG_STOP_DANCE = 0xED62,

	SMSG_NOTIFY_DANCE = 0x69EB,

	SMSG_LEARNED_DANCE_MOVES = 0xBD61,

	SMSG_EQUIPMENT_SET_LIST = 0xEFEA,

	SMSG_EQUIPMENT_SET_SAVED = 0x1FE1,

	SMSG_EQUIPMENT_SET_USE_RESULT = 0x8D60,

	SMSG_INITIALIZE_FACTIONS = 0x6F66,

	SMSG_SET_FACTION_ATWAR = 0x4D6F,

	SMSG_SET_FACTION_VISIBLE = 0xAD68,

	SMSG_SET_FACTION_STANDING = 0x19E5,

	SMSG_SET_FORCED_REACTIONS = 0xBFE0,

	SMSG_SEND_MAIL_RESULT = 0x7F66,

	SMSG_MAIL_LIST_RESULT = 0x8DE1,

	MSG_QUERY_NEXT_MAIL_TIME = 0xDDE9,

	SMSG_RECEIVED_MAIL = 0x696C,

	SMSG_MEETINGSTONE_COMPLETE = 0x2B65,

	SMSG_COMMENTATOR_PLAYER_INFO = 0xFDEE,

	SMSG_COMMENTATOR_MAP_INFO = 0xCB65,

	SMSG_COMMENTATOR_STATE_CHANGED = 0x196E,

	SMSG_DUEL_REQUESTED = 0x4BE1,

	SMSG_DUEL_OUTOFBOUNDS = 0xEDEB,

	SMSG_DUEL_INBOUNDS = 0x6F6C,

	SMSG_DUEL_COUNTDOWN = 0x9FE2,

	SMSG_DUEL_COMPLETE = 0x3B61,

	SMSG_DUEL_WINNER = 0xAF66,

	MSG_LIST_STABLED_PETS = 0x6FE8,

	SMSG_STABLE_RESULT = 0xCDE5,

	MSG_AUCTION_HELLO = 0x396C,

	SMSG_AUCTION_COMMAND_RESULT = 0xEDE4,

	SMSG_AUCTION_LIST_RESULT = 0x496B,

	SMSG_AUCTION_OWNER_LIST_RESULT = 0x5D6A,

	SMSG_AUCTION_BIDDER_LIST_RESULT = 0x5B6C,

	SMSG_AUCTION_BIDDER_NOTIFICATION = 0x8B67,

	SMSG_AUCTION_OWNER_NOTIFICATION = 0x296A,

	SMSG_AUCTION_REMOVED_NOTIFICATION = 0xDDEB,

	SMSG_AUCTION_LIST_PENDING_SALES = 0x7DE8,

	SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE = 0x6F68,

	SMSG_ACHIEVEMENT_EARNED = 0x0DE5,

	SMSG_CRITERIA_UPDATE = 0xB961,

	SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x1FE4,

	SMSG_ALL_ACHIEVEMENT_DATA = 0xDDED,

	SMSG_CRITERIA_DELETED = 0x5B66,

	SMSG_ACHIEVEMENT_DELETED = 0x7FE2,

	SMSG_MOTD = 0x0968,

	SMSG_GMTICKET_CREATE = 0xBD64,

	SMSG_GMTICKET_UPDATETEXT = 0xD96F,

	SMSG_GMTICKET_GETTICKET = 0x9F69,

	SMSG_GMTICKET_DELETETICKET = 0xDD63,

	SMSG_UNKNOWN_1262 = 0x7DEA,

	SMSG_UNKNOWN_1263 = 0x1DE1,

	SMSG_UNKNOWN_1265 = 0x7B64,

	SMSG_GM_TICKET_STATUS_UPDATE = 0x196A,

	SMSG_MINIGAME_SETUP = 0x7DEB,

	SMSG_MINIGAME_STATE = 0xBF61,

	SMSG_CHAR_RENAME = 0x19E8,

	SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0xBBEC,

	SMSG_CHAR_CUSTOMIZE = 0x8BE6,

	SMSG_REALM_SPLIT = 0xFDE2,

	SMSG_KICK_REASON2 = 0x9FE0,

	SMSG_CHAR_FACTION_CHANGE = 0x8D69,

	SMSG_AUTH_CHALLENGE = 0x9B60,

	SMSG_AUTH_RESPONSE = 0x0961,

	SMSG_ADDON_INFO = 0x5961,

	SMSG_CHAR_ENUM = 0xC96B,

	SMSG_CHAR_CREATE = 0xAF67,

	SMSG_CHARACTER_LOGIN_FAILED = 0xD9E1,

	SMSG_LOGOUT_COMPLETE = 0x4BEF
}
```

Related addresses:

ClientServices_SetMessageHandler	0x004B3B80
NetClient_SetMessageHandler 0x004B3BE6

----------


## RomanRom2

no one of opcodes doesnt work  :Smile:

----------


## Hurrr

Here's those that I have so far (sorry if there's duplicates of those posted by Robske). Whenever I had to convert a SMSG whose handler was set by a subroutine setting a whole bunch of them I tried to convert all of them as much as possible if things seemed to reasonably match, so there's a lot of non-essential opcodes in the list. There's a good chance that I messed up somewhere too.

With this I currently get mangos through the selection screen but the client still crashes when trying to enter the world. I still have a lot of packets sent from the server with old opcodes though (things like spell bars, talents etc.).



```
    SMSG_CHECK_FOR_BOTS                             = 0xefe0,
    SMSG_REFER_A_FRIEND_EXPIRED                     = 0x5bec,
    CMSG_CHAR_ENUM                                  = 0x0d65,
    SMSG_CHAR_CREATE                                = 0x9def,
    SMSG_CHAR_ENUM                                  = 0xfd67,
    SMSG_CHAR_DELETE                                = 0x7ded,
    CMSG_PLAYER_LOGIN                               = 0x8bec, //0x03D,
    SMSG_NEW_WORLD                                  = 0x2d62,
    SMSG_TRANSFER_PENDING                           = 0x29ec,
    SMSG_TRANSFER_ABORTED                           = 0x79ea,
    SMSG_CHARACTER_LOGIN_FAILED                     = 0xdd6b,
    SMSG_LOGIN_SETTIMESPEED                         = 0xbf66,
    SMSG_GAMETIME_UPDATE                            = 0xbd67,
    SMSG_GAMETIME_SET                               = 0x8fe6,
    SMSG_GAMESPEED_SET                              = 0xbd65,
    SMSG_SERVERTIME                                 = 0x4b6d,
    SMSG_LOGOUT_RESPONSE                            = 0x5b65,
    SMSG_LOGOUT_COMPLETE                            = 0x8f61,
    SMSG_LOGOUT_CANCEL_ACK                          = 0x79ef,
    SMSG_ITEM_COOLDOWN                              = 0x0f61,
    SMSG_TUTORIAL_FLAGS                             = 0x5d62,
    SMSG_SET_PROFICIENCY                            = 0xc960,
    SMSG_CAST_FAILED                                = 0x4d62,
    SMSG_SPELL_START                                = 0xef64,
    SMSG_SPELL_GO                                   = 0xcb64,
    SMSG_SPELL_FAILURE                              = 0xbbe0,
    SMSG_SPELL_COOLDOWN                             = 0xab68,
    SMSG_COOLDOWN_EVENT                             = 0x2fe2,
    SMSG_PET_CAST_FAILED                            = 0x9fef,
    MSG_CHANNEL_START                               = 0xc968,
    MSG_CHANNEL_UPDATE                              = 0x2f6a,
    SMSG_UNIT_SPELLCAST_START                       = 0x8be3,
    SMSG_BREAK_TARGET                               = 0xa967,
    SMSG_PUREMOUNT_CANCELLED_OBSOLETE               = 0x1f66,  // ERR_REMOVE_FROM_PVP_QUEUE_* events
    SMSG_PET_TAME_FAILURE                           = 0x9b66,
    SMSG_NOTIFICATION                               = 0x99ee,
    SMSG_PLAYED_TIME                                = 0x1f69,
    SMSG_START_MIRROR_TIMER                         = 0x9b6b,
    SMSG_PAUSE_MIRROR_TIMER                         = 0x9de5,
    SMSG_STOP_MIRROR_TIMER                          = 0x7b65,
    CMSG_PING                                       = 0x7fe5, ///0x1DC,
    SMSG_CLEAR_COOLDOWN                             = 0xa9e6,
    SMSG_COOLDOWN_CHEAT                             = 0xd96b,
    SMSG_SPELL_DELAYED                              = 0xb966,
    SMSG_INVALID_PROMOTION_CODE                     = 0xf9e4,
    SMSG_AUTH_CHALLENGE                             = 0x1DE3,
    CMSG_AUTH_SESSION                               = 0x99EC,
    SMSG_AUTH_RESPONSE                              = 0xFEF,
    SMSG_PLAY_SPELL_VISUAL                          = 0xad60,
    SMSG_COMPRESSED_UPDATE_OBJECT                   = 0xafe3,
    SMSG_PLAY_SPELL_IMPACT                          = 0xbd6e,
    SMSG_ACCOUNT_DATA_TIMES                         = 0x2b6d,
    CMSG_UPDATE_ACCOUNT_DATA                        = 0x3d6c,
    SMSG_UPDATE_ACCOUNT_DATA                        = 0x5b67,
    MSG_CORPSE_QUERY                                = 0x39e3,
    CMSG_GM_REQUEST_PLAYER_INFO                     = 0xcbe7,
    SMSG_GM_PLAYER_INFO                             = 0x5de0,
    SMSG_LOGIN_VERIFY_WORLD                         = 0xf96e,
    SMSG_SET_FLAT_SPELL_MODIFIER                    = 0xcfe9,
    SMSG_SET_PCT_SPELL_MODIFIER                     = 0xdde8,
    SMSG_CORPSE_RECLAIM_DELAY                       = 0xa9ec,
    SMSG_PLAY_MUSIC                                 = 0xbde1,
    SMSG_PLAY_OBJECT_SOUND                          = 0x396b,
    SMSG_PVP_CREDIT                                 = 0xdf61,
    SMSG_MEETINGSTONE_IN_PROGRESS                   = 0x36bd, // uint32, some UPDATE_COOLDOWN events
    SMSG_SPELL_FAILED_OTHER                         = 0x1bec,
    SMSG_GAMEOBJECT_RESET_STATE                     = 0xebe0,
    SMSG_FEIGN_DEATH_RESISTED                       = 0x8f6f,
    SMSG_AREA_TRIGGER_MESSAGE                       = 0x6de3,
    SMSG_INIT_WORLD_STATES                          = 0xc967,
    SMSG_UPDATE_WORLD_STATE                         = 0x2d6f,
    SMSG_CHAR_RENAME                                = 0x6fe3,
    SMSG_PLAY_SOUND                                 = 0xbb67,
    SMSG_AREA_SPIRIT_HEALER_TIME                    = 0x2dee,
    SMSG_ADDON_INFO                                 = 0x3B63,
    SMSG_WEATHER                                    = 0xef6d,
    SMSG_COMPRESSED_MOVES                           = 0x49e0,
    MSG_SET_DUNGEON_DIFFICULTY                      = 0x2d6c,
    SMSG_SPELL_UPDATE_CHAIN_TARGETS                 = 0x89e7,
    SMSG_INSTANCE_DIFFICULTY                        = 0x7f60,
    SMSG_REALM_SPLIT                                = 0x6fef,
    CMSG_REALM_SPLIT                                = 0x9d6e,
    SMSG_UPDATE_COMBO_POINTS                        = 0x0b6b,
    SMSG_KICK_REASON                                = 0x1f6d,
    SMSG_OVERRIDE_LIGHT                             = 0xef6f,
    SMSG_TOTEM_CREATED                              = 0x9d6f,
    SMSG_SET_PLAYER_DECLINED_NAMES_RESULT           = 0xf9ed,
    SMSG_PROPOSE_LEVEL_GRANT                        = 0x69e2,
    SMSG_REFER_A_FRIEND_FAILURE                     = 0x1962,
    SMSG_UPDATE_ACCOUNT_DATA_COMPLETE               = 0xb960,
    SMSG_TRIGGER_MOVIE                              = 0x3fe8,
    SMSG_CHAR_CUSTOMIZE                             = 0x3f6b,
    SMSG_NOTIFY_DEST_LOC_SPELL_CAST                 = 0x5be3,
    SMSG_MODIFY_COOLDOWN                            = 0xa9e5,
    SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA       = 0x3bec, // not changed 9626
    SMSG_CLIENTCACHE_VERSION                        = 0x1966, // shifted+5
    SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE         = 0x2de5, // SMSG, 3*float+float
    SMSG_SET_PROJECTILE_POSITION                    = 0xdf6f, // SMSG, uint64 caster, uint8 castId, vector3 position
    SMSG_CHAR_FACTION_CHANGE                        = 0x8fe5, // response to 1241 (PFC server response)
    MSG_SET_RAID_DIFFICULTY                         = 0x5d68, // lua: SetRaidDifficulty
    SMSG_WORLD_STATE_UI_TIMER_UPDATE                = 0x99ea,
    SMSG_TALENTS_INVOLUNTARILY_RESET                = 0xfbec, // uint8 EVENT_TALENTS_INVOLUNTARILY_RESET
    CMSG_READY_FOR_ACCOUNT_DATA_TIMES               = 0x79eb, // lua: ReadyForAccountDataTimes
    SMSG_CORPSE_IS_NOT_IN_INSTANCE                  = 0xef62, // ERR_CORPSE_IS_NOT_IN_INSTANCE = 0x1A8,
```





> [COLOR="DarkOrange"]Is this Blizzard's response to those 'teleport' hacks?...


Yeah, or their response to those "play the leaked beta clients" hacks  :Stick Out Tongue:

----------


## XTZGZoReX

> Is this Blizzard's response to those 'teleport' hacks?...


More like, the obvious move against emulation that they should've pulled off long ago.

----------


## RomanRom2

Hurr, all of your codes are correct since Robske are not instead.
anyway, thanks for work.

----------


## Hurrr

> Hurr, all of your codes are correct since Robske are not instead.
> anyway, thanks for work.


Np. I'll get more opcodes tonight after work, I just had to stop because it was 5am and well... I'm at work now :/

----------


## Hiperzone

the CMSG opcode can be detected on 00798090, the address u posted is wrong.
should give you opcode 220 as the first xref function. or in this case 0x0CF64 aka MSG_MOVE_WORLDPORT_ACK wich is used by world port and login verify world functions.

also this function is a cDataStore_WriteChar func

----------


## Hurrr

Yeah, that's right. The function I posted for CMSG is actually a method for CData, likely just a function that writes out a 32 bit int. It's used to write other things than the CMSG opcode but a lot of the CMCG opcodes seem written through it.

Still I gave up on trying to match all the opcodes in the old and new client for now.

What I've been doing for CMSG is just wait until I receive an unknown opcode from the client, look up that constant in the new client (which for those I found so far were always as constant parameter to that CData member function), then locate the matching code in the old client to find out what was the old opcode value.

Luckily there's often some code around that points to a string that exists in both clients, which helps a lot with matching locations in the code.

It still won't help much in the long run if they do randomize the opcodes in every build.

----------


## Hiperzone

atm im trying to locate all CMSG opcodes since SMSG are more easy to handle, so i have a good base where they are so its more easy to write a program whatever with a good sucess ratio.

----------


## Hurrr

I misunderstood what you said when you said the address I posted was wrong, I thought you meant CMSG were going through a different function but I just realized I simply miswritten the address. Derp

To automatize things it might be easier to work with the output of the C decompiler, so for CMSG you can search it for something like: sub_798090( something, 0xOPCODEVALUE );

For now I'm just going to continue looking for the new values manually until I get mangos somewhat working. It can be useful as reference to verify an automated or semi-automated way to extract the opcodes.

----------


## Hurrr

Here's an updated list with more opcodes. I can now get in world in mangos.

I haven't found SMSG_ALL_ACHIEVEMENT_DATA in the 11927 client so I just commented out the code that sends it for now. I think they might use SMSG_RESPOND_INSPECT_ACHIEVEMENTS for that now given it contains the same stuff anyway.

Character creation/deletion also works. I'm going to work on the movement opcodes now.



```
    SMSG_CHECK_FOR_BOTS                             = 0xefe0,
    SMSG_REFER_A_FRIEND_EXPIRED                     = 0x5bec,
    CMSG_CHAR_CREATE                                = 0x7f61,
    CMSG_CHAR_ENUM                                  = 0x0d65,
    CMSG_CHAR_DELETE                                = 0x4be6,
    SMSG_CHAR_CREATE                                = 0x9def,
    SMSG_CHAR_ENUM                                  = 0xfd67,
    SMSG_CHAR_DELETE                                = 0x7ded,
    CMSG_PLAYER_LOGIN                               = 0x8bec, //0x03D,
    SMSG_NEW_WORLD                                  = 0x2d62,
    SMSG_TRANSFER_PENDING                           = 0x29ec,
    SMSG_TRANSFER_ABORTED                           = 0x79ea,
    SMSG_CHARACTER_LOGIN_FAILED                     = 0xdd6b,
    SMSG_LOGIN_SETTIMESPEED                         = 0xbf66,
    SMSG_GAMETIME_UPDATE                            = 0xbd67,
    SMSG_GAMETIME_SET                               = 0x8fe6,
    SMSG_GAMESPEED_SET                              = 0xbd65,
    SMSG_SERVERTIME                                 = 0x4b6d,
    SMSG_LOGOUT_RESPONSE                            = 0x5b65,
    SMSG_LOGOUT_COMPLETE                            = 0x8f61,
    SMSG_LOGOUT_CANCEL_ACK                          = 0x79ef,
    SMSG_ITEM_COOLDOWN                              = 0x0f61,
    SMSG_TUTORIAL_FLAGS                             = 0x5d62,
    SMSG_INITIALIZE_FACTIONS                        = 0x1fe1,
    SMSG_SET_FACTION_VISIBLE                        = 0x6f66,
    SMSG_SET_FACTION_STANDING                       = 0xad68,
    SMSG_SET_PROFICIENCY                            = 0xc960,
    SMSG_ACTION_BUTTONS                             = 0xe9e6,
    SMSG_INITIAL_SPELLS                             = 0xeb63,
    SMSG_CAST_FAILED                                = 0x4d62,
    SMSG_SPELL_START                                = 0xef64,
    SMSG_SPELL_GO                                   = 0xcb64,
    SMSG_SPELL_FAILURE                              = 0xbbe0,
    SMSG_SPELL_COOLDOWN                             = 0xab68,
    SMSG_COOLDOWN_EVENT                             = 0x2fe2,
    SMSG_EQUIPMENT_SET_SAVED                        = 0xbd61,
    SMSG_PET_CAST_FAILED                            = 0x9fef,
    MSG_CHANNEL_START                               = 0xc968,
    MSG_CHANNEL_UPDATE                              = 0x2f6a,
    SMSG_UNIT_SPELLCAST_START                       = 0x8be3,
    SMSG_CANCEL_COMBAT                              = 0xcde6,
    SMSG_BREAK_TARGET                               = 0xa967,
    SMSG_BINDPOINTUPDATE                            = 0x3bed,
    SMSG_PUREMOUNT_CANCELLED_OBSOLETE               = 0x1f66,  // ERR_REMOVE_FROM_PVP_QUEUE_* events
    SMSG_PET_TAME_FAILURE                           = 0x9b66,
    SMSG_NOTIFICATION                               = 0x99ee,
    SMSG_PLAYED_TIME                                = 0x1f69,
    SMSG_START_MIRROR_TIMER                         = 0x9b6b,
    SMSG_PAUSE_MIRROR_TIMER                         = 0x9de5,
    SMSG_STOP_MIRROR_TIMER                          = 0x7b65,
    CMSG_PING                                       = 0x7fe5, ///0x1DC,
    SMSG_PONG                                       = 0xdd61, //0x1DD,
    SMSG_CLEAR_COOLDOWN                             = 0xa9e6,
    SMSG_COOLDOWN_CHEAT                             = 0xd96b,
    SMSG_SPELL_DELAYED                              = 0xb966,
    SMSG_INVALID_PROMOTION_CODE                     = 0xf9e4,
    SMSG_AUTH_CHALLENGE                             = 0x1DE3,
    CMSG_AUTH_SESSION                               = 0x99EC,
    SMSG_AUTH_RESPONSE                              = 0xFEF,
    SMSG_PLAY_SPELL_VISUAL                          = 0xad60,
    SMSG_COMPRESSED_UPDATE_OBJECT                   = 0xafe3,
    SMSG_PLAY_SPELL_IMPACT                          = 0xbd6e,
    SMSG_ACCOUNT_DATA_TIMES                         = 0x2b6d,
    CMSG_UPDATE_ACCOUNT_DATA                        = 0x3d6c,
    SMSG_UPDATE_ACCOUNT_DATA                        = 0x5b67,
    MSG_CORPSE_QUERY                                = 0x39e3,
    CMSG_GM_REQUEST_PLAYER_INFO                     = 0xcbe7,
    SMSG_GM_PLAYER_INFO                             = 0x5de0,
    SMSG_LOGIN_VERIFY_WORLD                         = 0xf96e,
    SMSG_SET_FLAT_SPELL_MODIFIER                    = 0xcfe9,
    SMSG_SET_PCT_SPELL_MODIFIER                     = 0xdde8,
    SMSG_CORPSE_RECLAIM_DELAY                       = 0xa9ec,
    SMSG_PLAY_MUSIC                                 = 0xbde1,
    SMSG_PLAY_OBJECT_SOUND                          = 0x396b,
    SMSG_PVP_CREDIT                                 = 0xdf61,
    SMSG_MEETINGSTONE_IN_PROGRESS                   = 0x36bd, // uint32, some UPDATE_COOLDOWN events
    SMSG_SET_FORCED_REACTIONS                       = 0x19e5,
    SMSG_SPELL_FAILED_OTHER                         = 0x1bec,
    SMSG_GAMEOBJECT_RESET_STATE                     = 0xebe0,
    SMSG_FEIGN_DEATH_RESISTED                       = 0x8f6f,
    SMSG_AREA_TRIGGER_MESSAGE                       = 0x6de3,
    SMSG_INIT_WORLD_STATES                          = 0xc967,
    SMSG_UPDATE_WORLD_STATE                         = 0x2d6f,
    SMSG_CHAR_RENAME                                = 0x6fe3,
    SMSG_PLAY_SOUND                                 = 0xbb67,
    SMSG_AREA_SPIRIT_HEALER_TIME                    = 0x2dee,
    SMSG_ADDON_INFO                                 = 0x3B63,
    SMSG_WEATHER                                    = 0xef6d,
    SMSG_COMPRESSED_MOVES                           = 0x49e0,
    SMSG_SET_FACTION_ATWAR                          = 0x8d60,
    MSG_SET_DUNGEON_DIFFICULTY                      = 0x2d6c,
    SMSG_SPELL_UPDATE_CHAIN_TARGETS                 = 0x89e7,
    SMSG_INSTANCE_DIFFICULTY                        = 0x7f60,
    SMSG_MOTD                                       = 0x8be6,
    SMSG_REALM_SPLIT                                = 0x6fef,
    CMSG_REALM_SPLIT                                = 0x9d6e,
    SMSG_TIME_SYNC_REQ                              = 0x9d6a,
    SMSG_UPDATE_COMBO_POINTS                        = 0x0b6b,
    SMSG_KICK_REASON                                = 0x1f6d,
    SMSG_FEATURE_SYSTEM_STATUS                      = 0xeb62,
    CMSG_KEEP_ALIVE                                 = 0x1de5, //0x407,
    SMSG_OVERRIDE_LIGHT                             = 0xef6f,
    SMSG_TOTEM_CREATED                              = 0x9d6f,
    SMSG_SET_PLAYER_DECLINED_NAMES_RESULT           = 0xf9ed,
    SMSG_SEND_UNLEARN_SPELLS                        = 0x6be5,
    SMSG_PROPOSE_LEVEL_GRANT                        = 0x69e2,
    SMSG_REFER_A_FRIEND_FAILURE                     = 0x1962,
    SMSG_NOTIFY_DANCE                               = 0xcf67,
    SMSG_PLAY_DANCE                                 = 0x5b66,
    SMSG_STOP_DANCE                                 = 0x7fe2,
    SMSG_LEARNED_DANCE_MOVES                        = 0x0968,
    SMSG_UPDATE_ACCOUNT_DATA_COMPLETE               = 0xb960,
    SMSG_TRIGGER_MOVIE                              = 0x3fe8,
    SMSG_CHAR_CUSTOMIZE                             = 0x3f6b,
    //SMSG_ALL_ACHIEVEMENT_DATA                       = 0x47D,	// Seems to have been removed in cata
    SMSG_NOTIFY_DEST_LOC_SPELL_CAST                 = 0x5be3,
    SMSG_MODIFY_COOLDOWN                            = 0xa9e5,
    SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA       = 0x3bec, // not changed 9626
    SMSG_CLIENTCACHE_VERSION                        = 0x1966, // shifted+5
    SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE         = 0x2de5, // SMSG, 3*float+float
    SMSG_EQUIPMENT_SET_LIST                         = 0x69eb, // SMSG, equipment manager list?
    SMSG_SET_PROJECTILE_POSITION                    = 0xdf6f, // SMSG, uint64 caster, uint8 castId, vector3 position
    SMSG_TALENTS_INFO                               = 0x0f66, // SMSG, talents related
    SMSG_EQUIPMENT_SET_USE_RESULT                   = 0xefea, // SMSG, UseEquipmentSetResult?
    SMSG_CHAR_FACTION_CHANGE                        = 0x8fe5, // response to 1241 (PFC server response)
    MSG_SET_RAID_DIFFICULTY                         = 0x5d68, // lua: SetRaidDifficulty
    SMSG_WORLD_STATE_UI_TIMER_UPDATE                = 0x99ea,
    SMSG_TALENTS_INVOLUNTARILY_RESET                = 0xfbec, // uint8 EVENT_TALENTS_INVOLUNTARILY_RESET
    CMSG_READY_FOR_ACCOUNT_DATA_TIMES               = 0x79eb, // lua: ReadyForAccountDataTimes
    SMSG_CORPSE_IS_NOT_IN_INSTANCE                  = 0xef62, // ERR_CORPSE_IS_NOT_IN_INSTANCE = 0x1A8,
    SMSG_UNKNOWN_1329                               = 0x4d6f, // faction related
```

----------


## Hurrr

Here are some more opcodes. It's more stable (no crash when logging on a new character).
Movement opcodes are done. I can't do much testing yet because something is amiss with skills so my char doesn't know any language and can't use any gm command. Besides I haven't converted the chat opcodes yet either.

I need to double check if I didn't mess up the initial_skills opcode (although because of the assertions the client normally crashes whenever you send it a wrong packet).

Opcode list

And here's my current mangos patch as a whole (which can be applied on top of 400 branch of the mangos git repository)

Mangos patch with the new opcodes

----------


## TOM_RUS

Paste2: Next Generation Pastebin - Viewing Paste 837756 that's the enum I used in my sandbox, may be useful for someone.

Also SMSG_ALL_ACHIEVEMENT_DATA and others are still there, but handlers initialized in weird way, take a look at sub_482D70->sub_47E640 (case 0x17 = SMSG_RESPOND_INSPECT_ACHIEVEMENTS, 0x1E = SMSG_ALL_ACHIEVEMENT_DATA).

sub_8C40E0:


```
  RegisterOpcodeHandler(0xBFE0u, sub_8C2240, 0);  // SMSG_ACHIEVEMENT_EARNED
  RegisterOpcodeHandler(0x7F66u, sub_8C0A90, 0);  // SMSG_CRITERIA_UPDATE
  sub_8BE8E0(sub_8C0C20);                         // SMSG_RESPOND_INSPECT_ACHIEVEMENTS
  sub_8BE880(sub_8C2350);                         // SMSG_ALL_ACHIEVEMENT_DATA
  RegisterOpcodeHandler(0x8DE1u, sub_8C0EB0, 0);  // SMSG_CRITERIA_DELETED
  RegisterOpcodeHandler(0xDDE9u, sub_8C0DD0, 0);  // SMSG_ACHIEVEMENT_DELETED
  RegisterOpcodeHandler(0x696Cu, sub_8C29E0, 0);  // SMSG_QUERY_QUESTS_COMPLETED_RESPONSE
```

----------


## Woweur

So now we need CMSG packet.

----------


## Hurrr

> So now we need CMSG packet.


Yeah. Combining TOM_RUS' list and mine would be a good start though, there's many opcodes he have that I don't and the other way around.
I'll do it tonight if no one had done it by then =)

There's also a couple for which we have different values. One is related to logout and tom's value is probably the right one seeing how logging out doesn't even work for me yet.

The other one where we differ is SMSG_COMPRESSED_MOVES, I don't know which is right.

----------


## doityourself

> Here are some more opcodes. It's more stable (no crash when logging on a new character).
> Movement opcodes are done. I can't do much testing yet because something is amiss with skills so my char doesn't know any language and can't use any gm command. Besides I haven't converted the chat opcodes yet either.
> 
> I need to double check if I didn't mess up the initial_skills opcode (although because of the assertions the client normally crashes whenever you send it a wrong packet).
> 
> Opcode list
> 
> And here's my current mangos patch as a whole (which can be applied on top of 400 branch of the mangos git repository)
> 
> Mangos patch with the new opcodes


The changes in DBCfmt are wrong. dbc structure is the same as 11927.

----------


## Hurrr

> The changes in DBCfmt are wrong. dbc structure is the same as 11927.


Are you sure? Mangos was complaining I was using 11927 dbc files, so I extracted the 12025 ones and then it complained about mismatching number of columns, and it did seem that there was some extra columns in those DBCs.
I just added x at the end of the format string to account for the extra columns so mangos would start but I haven't looked more into that. Anyway most of the things I did in that patch were just quick and dirty hacks to get mangos to work so I don't expect it to necessarily be correct, the only part I really focus on are the opcodes.

----------


## TOM_RUS

> The changes in DBCfmt are wrong. dbc structure is the same as 11927.


Wrong. Spell.dbc and some other dbc struct changed in 12025...

----------


## notagain

hey tom can u or someone else hook me up with a link to a ad.exe that extracts 12025 ? my old one doesnt read past 11927 dbcs
or a link to the dbcs and maps of 12025

----------


## Hurrr

> hey tom can u or someone else hook me up with a link to a ad.exe that extracts ? my old one doesnt read past 11927 dbcs


Use MPQ Archives - Downloads, the new dbc are in patch-enUS.MPQ

----------


## notagain

yea cheers i had this exe must have been an old one keep closing so i del it

any luck on maps ?

----------


## Ravenheart

This Ad.exe works on 4.0 .. tested od 11927 .. should work on 12025 too
ad 4.0.exe

----------


## notagain

yea got that one it extracts the 11927 ones i cannot make it do 12025 ones
i think its hardcoded

----------


## HGPhoenix

> yea got that one it extracts the 11927 ones i cannot make it do 12025 ones
> i think its hardcoded


Notagain > Use the link Hurrr posted(MPQ Editor). Run the MPQ Editor and open Patch-enUS.mpq then extract the DBC files within. I pulled out 99 DBC files.

Edit: Also Locale-enUS.mpq this gave me a total of 270, and im still missing some.

----------


## XTZGZoReX

> Notagain > Use the link Hurr posted. Run the MPQ Editor and open Patch-enUS.mpq then extract the DBC files within. I pulled out 99 DBC files.


There are many more. Look in the other MPQs, too.

----------


## HGPhoenix

> There are many more. Look in the other MPQs, too.


 Im looking, thus explains why i got an error. I know with the previous one there was 272.

----------


## doityourself

> Wrong. Spell.dbc and some other dbc struct changed in 12025...


core start without dbcfmt changes and 12025 dbcs

/edit

oh wtf my cataclysm haven't patched my locale-enUS from 11927 to 12025. grrrrrr no changes in my file -.-

---------- Post added at 03:26 PM ---------- Previous post was at 03:10 PM ----------

Oh a new patch: 4.0.0.12065

----------


## HGPhoenix

We barely got this one X.x

King48488 > It appears i ended up with the same thing on the locale-enUS not patching.

Edit: Wasnt the last patch only two days ago? They are working.

----------


## doityourself

but there is a new patch now Oo

Patch 4.0.0.12065 Downloader:
http://filebeam.com/f07e601c3e2c7589d4c8bcf683fd6ab4

----------


## XTZGZoReX

New build has no apparent opcode changes.

You can continue researching opcodes safely.

----------


## doityourself

hmm but with 12025 I get a wow crash without opcode changes. with 12065, I haven't a wow crash without opcodes changes. There must be a few opcode changes?

----------


## XTZGZoReX

Of course there can be packet structure changes.

----------


## Hurrr

Here is a merged list of the opcodes values I found and those provided by tom_rus (thanks a lot!). There's also a handful additional ones.

Paste2: Next Generation Pastebin - Viewing Paste 841350

And here's the patch for mangos's 400 branch with all those opcodes in:
Paste2: Next Generation Pastebin - Viewing Paste 841346

I still can't figure out why my client stubbornly says "You cannot speak that language" when trying to say something in chat. I don't know that much about wow server emulation, so I can't figure out what thing the client needs to be sent for it to work.
It seem to work rather well other than that so far but testing is kinda limited without access to gm commands.

I guess that I'm gonna look into spell casting related opcodes instead next.

Also it's a relief that blizz don't seem to randomize the opcodes automatically right in their build scripts =)

----------


## Aelan

The interesting thing about the "You cannot speak that language" bullshit is that you can still send messages via 

```
/run SendChatMessage(".help")
```

Also, if you just write the command in a macro, it will send.

Weird stuff.

----------


## Hurrr

> The interesting thing about the "You cannot speak that language" bullshit is that you can still send messages via 
> 
> ```
> /run SendChatMessage(".help")
> ```
> 
> Also, if you just write the command in a macro, it will send.
> 
> Weird stuff.


Aha, thanks!

----------


## myran2

> Aha, thanks!


Or you can add the spell 669 in the playercreateinfo_spell table 
for each horde race/class combo

and 668 for each alliance race/class combo

----------


## Hurrr

> Or you can add the spell 669 in the playercreateinfo_spell table 
> for each horde race/class combo
> 
> and 668 for each alliance race/class combo


I double checked this already and even made sure it got sent in the initial_spells packet, but no cigar (despite the fact the other default spells and racials do show up in the client)

---------- Post added at 03:22 AM ---------- Previous post was at 03:00 AM ----------

Here's the dbc files from build 12065 for those who have trouble extracting them:
MEGAUPLOAD - The leading online storage and file delivery service

(sorry for the slight off-topic, HGPhoenix needed this but his mailbox is full)

----------


## HGPhoenix

hehe, thanks Hurrr, didnt relize that. You saved me from killing my core, damn thing hated me i guess.

----------


## notagain

some more opcodes i got 
Paste2: Next Generation Pastebin - Viewing Paste 842896

----------


## Hurrr

> some more opcodes i got 
> Paste2: Next Generation Pastebin - Viewing Paste 842896


Thanks for those!

Here's the updated list with those and some others new ones:
Paste2: Next Generation Pastebin - Viewing Paste 843399

And the patch, still for the 400 branch of mangos:
Paste2: Next Generation Pastebin - Viewing Paste 843392

----------


## notagain

some more opcodes still player based ones will look into party and raid shortly

the melee attack/set reaction is beyond me



```
    CMSG_MOVE_HOVER_ACK                             = 0x596a,
    CMSG_TEXT_EMOTE                                 = 0x9d68,
    CMSG_AUTOSTORE_LOOT_ITEM                        = 0x8b6a,
    CMSG_BATTLEFIELD_JOIN                           = 0x8f68,
    CMSG_SEARCH_LFG_JOIN                            = 0x5d6e,
    CMSG_LEARN_PREVIEW_TALENTS                      = 0x39e2,
```

----------


## doityourself

Any News? These are not all opcodes?

----------


## notagain

not sure i rolled back my server to 11927 i got friends nagging me to play im just wait for chat and items to work then ill update

----------


## doityourself

```
SMSG_PLAYERBOUND                                = 0xEDEA,    // 60906 - 4.0.0.12065
```

----------


## doityourself

/edit
ok its right

----------


## notagain

diamondcore have got a fair few opcodes
Fabi's diamondcore at 400 - GitHub

----------


## doityourself

What mean the errormessage ERROR:MOEP: in the core?

I don't know the word MOEP ^^

----------


## XTZGZoReX

Fabi is just copy-pasting from here, as far as I can see. Without credits, as usual, too.

----------


## doityourself

Of course I have the most opcodes from here, but not all.

Sorry that I have forgotten the credits.

----------


## doityourself

Speaking with any npcs don't work. I think there is a new opcode

// Unknown Opcode: 0xADEE (Speak with any NPC's)

----------


## doityourself

new patch 4.0.0.12122

----------


## AbdulHahmed

And again: opcode changed!  :Frown: 




> new patch 4.0.0.12122

----------


## doityourself

oh yes again opcode changes ^^

Disassemble the wow.exe at this moment  :Big Grin:

----------


## Hurrr

The good thing is that the previous randomized opcodes are easy to find in the disassembly because of their relatively unique values, and since both the old and new client are built with asserts matching corresponding locations in the code should be much easier.

It's still a lot of work, I'm just going to find whatever's necessary to just explore in mangos. After all that's all I really care about  :Stick Out Tongue:

----------


## Hurrr

Here's a few. I have a hard time with SMSG_AUTH_CHALLENGE :|



```
   SMSG_CHAR_CREATE                                = 0xc634,
    SMSG_CHAR_ENUM                                  = 0xd07e,
    SMSG_CHAR_DELETE                                = 0x8012,
    SMSG_NEW_WORLD                                  = 0x442c,
    SMSG_CHARACTER_LOGIN_FAILED                     = 0x161e,
    SMSG_LOGOUT_RESPONSE                            = 0x8002,
    SMSG_LOGOUT_COMPLETE                            = 0xd270,
    SMSG_LOGOUT_CANCEL_ACK                          = 0x1214,
    SMSG_QUEST_POI_QUERY_RESPONSE                   = 0xd266,
    SMSG_AUTH_RESPONSE                              = 0x0442,
    SMSG_ADDON_INFO                                 = 0xd074,
    SMSG_CLIENTCACHE_VERSION                        = 0x9650,
```

----------


## AbdulHahmed

Do they follow a logic or are completely randomized?

And also: why the SMSG_AUTH_CHALLENGE is more difficult to find that other ones? Have they changed something else?




> Here's a few. I have a hard time with SMSG_AUTH_CHALLENGE :|
> 
> 
> 
> ```
>    SMSG_CHAR_CREATE                                = 0xc634,
>     SMSG_CHAR_ENUM                                  = 0xd07e,
>     SMSG_CHAR_DELETE                                = 0x8012,
>     SMSG_NEW_WORLD                                  = 0x442c,
> ...

----------


## XTZGZoReX

> Do they follow a logic or are completely randomized?


So far, everything indicates the latter.

----------


## AbdulHahmed

Was it the same with the previous build ?




> So far, everything indicates the latter.

----------


## doityourself

They randomize all opcodes with every patch?! A new system against wow emulators?

----------


## Hurrr

SMSG_AUTH_CHALLENGE have been a pain in the ass to find because they used to register a handler function for it that was shared with some other opcodes and was using a switch to handle them.
However it did not seem to actually do anything for SMSG_AUTH_CHALLENGE so they removed that handler registration.
Instead, it's handled through a switch in a different function that takes care of a few other special opcodes such as SMSG_PING.

The problem is that due to optimisations, switches can result in rather obfuscated code for those randomized opcode values where the compiler transform some range of values through various logical ops and use the result in a jump table.

The actual opcode values don't always appear directly in the code in those cases.

And this code end up being very different depending on the opcode values so it's difficult to compare it directly with the old code.

Furthermore they seem to have changed the code around there because that function now hands off the handling of some of the opcodes to another function that does another switch. Lastly I think they changed the authentication system so even the code that handles SMSG_AUTH_CHALLENGE is different.

So I have found something which I reasonably think looks like SMSG_AUTH_CHALLENGE, which is 0x804. The corresponding code is rather similar, and after replacing the opcode value in mangos I did get an interesting reaction from the client: it said "connected" briefly before disconnecting.

It turns out that it replied a single packet:
2010-05-28 16:11:16 
CLIENT:
SOCKET: 728
LENGTH: 4
OPCODE: UNKNOWN (0x2100)
DATA:
01 00 00 00 

And bailed out. Now the interesting thing is that the code I've found that I think handles SMSG_AUTH_CHALLENGE looks similar enough except that it doesn't read the challenge data from the packet (at least not right away at the start of the function like the old code)

Basically I think they changed the auth system and that in the new system opcode 0x804 is what the client seems to expect to receive first (other opcode values seem to be ignored at that point), but other than that I don't know how it works.

[edit: the function that handles SMSG_AUTH_CHALLENGE is at 483d70 in the 12065 client and the function that I think does the same in 12122 is at 487d10]

----------


## doityourself

I Have begin with opcode research and have uplaoded a few changes to my git repo. Mire come later:
Commit 6cd91bb254bb4590d2c627ac78e0e52d51018fdf to Fabi's diamondcore - GitHub
Commit c9a96b13b4c10d5340fc88e4d2c6638f9b6fa0f0 to Fabi's diamondcore - GitHub

/Edit
More updates:
http://github.com/Fabi/diamondcore/c...0f03c668a1ae15
More come later

----------


## AbdulHahmed

RomanRom2 of Wowcore has just posted the opcodes he needs for his sandbox:

"Here are the opcode, I use a Sandbox.I subscribe to here, what would the next time not to seek out and write :Smile: 

SMSG_AUTH_CHALLENGE
CMSG_AUTH_SESSION
SMSG_AUTH_RESPONSE = $0442;
CMSG_CHAR_ENUM
SMSG_CHAR_ENUM = $D07E;
CMSG_CHAR_CREATE
SMSG_CHAR_CREATE = $C634;
CMSG_CHAR_DELETE
SMSG_CHAR_DELETE = $8012;
CMSG_PING
SMSG_PONG
CMSG_ITEM_QUERY_SINGLE = $8236;
SMSG_ITEM_QUERY_SINGLE_RESPONSE = $8450;
CMSG_CREATURE_QUERY = $427C;
SMSG_CREATURE_QUERY_RESPONSE = $040E;
CMSG_GAMEOBJECT_QUERY = $904A;
SMSG_GAMEOBJECT_QUERY_RESPONSE = $C072;
CMSG_NPC_TEXT_QUERY = $C242;
SMSG_NPC_TEXT_UPDATE = $D01E;
CMSG_JOIN_CHANNEL
SMSG_CHANNEL_NOTIFY = 402C;
CMSG_MESSAGECHAT
CMSG_LOGOUT_REQUEST
SMSG_LOGOUT_COMPLETE = $D270;
CMSG_DESTROYITEM

SMSG_GOSSIP_COMPLETE
SMSG_GOSSIP_MESSAGE
SMSG_UPDATE_OBJECT
SMSG_ITEM_PUSH_RESULT
SMSG_INVENTORY_CHANGE_FAILURE
SMSG_MOVE_UNSET_CAN_FLY
SMSG_MOVE_SET_CAN_FLY

SMSG_CHARACTER_LOGIN_FAILED = $161E;
SMSG_ACCOUNT_DATA_TIMES = $D632;
MSG_SET_DUNGEON_DIFFICULTY
SMSG_LOGIN_VERIFY_WORLD = $5612;
SMSG_FEATURE_SYSTEM_STATUS = $9244;
SMSG_BINDPOINTUPDATE
SMSG_TUTORIAL_FLAGS
SMSG_INITIAL_SPELLS
SMSG_ACTION_BUTTONS
SMSG_TIME_SYNC_REQ = $C65E;
CMSG_PLAYER_LOGIN
CMSG_REQUEST_ACCOUNT_DATA
CMSG_UPDATE_ACCOUNT_DATA
SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = $C428;
MSG_MOVE_WORLDPORT_ACK
CMSG_NAME_QUERY = $4616;
SMSG_NAME_QUERY_RESPONSE = $D200;
CMSG_QUERY_TIME
SMSG_QUERY_TIME_RESPONSE
CMSG_SET_SELECTION
CMSG_AREATRIGGER
CMSG_SWAP_INV_ITEM
CMSG_AUTOEQUIP_ITEM
CMSG_ATTACKSWING
CMSG_ATTACKSTOP
CMSG_QUESTGIVER_STATUS_QUERY
SMSG_QUESTGIVER_STATUS
CMSG_QUESTGIVER_HELLO
SMSG_QUESTGIVER_QUEST_LIST
CMSG_STANDSTATECHANGE
SMSG_STANDSTATE_UPDATE
CMSG_SETSHEATHED
CMSG_GOSSIP_SELECT_OPTION
CMSG_CAST_SPELL

SMSG_TRANSFER_PENDING = $D468;
SMSG_NEW_WORLD = $0412;
MSG_MOVE_TELEPORT_ACK
SMSG_MESSAGECHAT
SMSG_MOTD
SMSG_DESTROY_OBJECT
SMSG_FORCE_RUN_SPEED_CHANGE
SMSG_FORCE_SWIM_SPEED_CHANGE
SMSG_FORCE_FLIGHT_SPEED_CHANGE
SMSG_ATTACKSTART
SMSG_ATTACKSTOP
SMSG_SPELL_START
SMSG_SPELL_GO

MSG_MOVE_SET_FACING = $902C;
MSG_MOVE_START_STRAFE_LEFT = $8254;
MSG_MOVE_START_STRAFE_RIGHT = $8272;
MSG_MOVE_STOP_STRAFE = $443E;
MSG_MOVE_START_FORWARD = $860E;
MSG_MOVE_START_BACKWARD = $8612;
MSG_MOVE_HEARTBEAT
MSG_MOVE_STOP = $927C;
MSG_MOVE_JUMP = $9F6A;
MSG_MOVE_START_TURN_RIGHT = $0650;
MSG_MOVE_START_TURN_LEFT = $420C;
MSG_MOVE_STOP_TURN = $8424;
MSG_MOVE_SET_PITCH = $0006;
MSG_MOVE_START_ASCEND = $905C;
MSG_MOVE_STOP_ASCEND = $1254;
MSG_MOVE_START_SWIM 

nachtu fill right here. like finish - produces Sandbox :Smile: 

pass straight here for parties.
omissions indicate that the code is not found. can a little help with the search :Smile: 

hmm, that is all as it is sad ..."

Source: Google Traduci

(Translated by Google Translate...)

Posted it here in the hope someone can help him in this search.

----------


## doityourself

My changes have already theses opciodes?

----------


## AbdulHahmed

Don't know. Can you check please? And if so, can you post it ? 




> My changes have already theses opciodes?

----------


## RomanRom2

> I Have begin with opcode research and have uplaoded a few changes to my git repo. Mire come later:
> Commit 6cd91bb254bb4590d2c627ac78e0e52d51018fdf to Fabi's diamondcore - GitHub
> Commit c9a96b13b4c10d5340fc88e4d2c6638f9b6fa0f0 to Fabi's diamondcore - GitHub
> 
> 
> /Edit
> More updates:
> Commit 6eb636b8f33c30a7ec8bac9ea30f03c668a1ae15 to Fabi's diamondcore - GitHub
> More come later


king48488, I took opcodes from your links.

----------


## doityourself

```
SMSG_AUTH_CHALLENGE & CMSG_AUTH_SESSION need fix?
```

----------


## AbdulHahmed

So, these ones are correct?



```
SMSG_AUTH_CHALLENGE                             = 0x442,     // 1090  - 4.0.0.12122
SMSG_AUTH_RESPONSE                              = 0xD074,    // 53364 - 4.0.0.12122
```




> ```
> SMSG_AUTH_CHALLENGE & CMSG_AUTH_SESSION need fix?
> ```

----------


## doityourself

Yes I think that 


```
SMSG_AUTH_CHALLENGE                             = 0x442,     // 1090  - 4.0.0.12122
SMSG_AUTH_RESPONSE                              = 0xD074,    // 53364 - 4.0.0.12122
```

So we need CMSG_AUTH_SESSION, becuase we have stuck on the realmlist

----------


## AbdulHahmed

Understand, I suppose this one is the last big obstacle to have a sandbox working...




> So we need CMSG_AUTH_SESSION, becuase we have stuck on the realmlist

----------


## AbdulHahmed

Updated list from Wowcore:



```
SMSG_AUTH_CHALLENGE = $0442;
CMSG_AUTH_SESSION = 0;
SMSG_AUTH_RESPONSE = $D074;
CMSG_CHAR_ENUM = 0;
SMSG_CHAR_ENUM = $D07E;
CMSG_CHAR_CREATE = 0;
SMSG_CHAR_CREATE = $C634;
CMSG_CHAR_DELETE = 0;
SMSG_CHAR_DELETE = $8012;
CMSG_PING = 0;
SMSG_PONG = 0;
CMSG_ITEM_QUERY_SINGLE = $8236;
SMSG_ITEM_QUERY_SINGLE_RESPONSE = $8450;
CMSG_CREATURE_QUERY = $427C;
SMSG_CREATURE_QUERY_RESPONSE = $040E;
CMSG_GAMEOBJECT_QUERY = $904A;
SMSG_GAMEOBJECT_QUERY_RESPONSE = $C072;
CMSG_NPC_TEXT_QUERY = $C242;
SMSG_NPC_TEXT_UPDATE = $D01E;
CMSG_JOIN_CHANNEL = 0;
SMSG_CHANNEL_NOTIFY = $402C;
CMSG_MESSAGECHAT = 0;
CMSG_LOGOUT_REQUEST = 0;
SMSG_LOGOUT_COMPLETE = $D270;
CMSG_DESTROYITEM = 0;

SMSG_GOSSIP_COMPLETE = 0;
SMSG_GOSSIP_MESSAGE = 0;
SMSG_UPDATE_OBJECT = 0;
SMSG_ITEM_PUSH_RESULT = 0;
SMSG_INVENTORY_CHANGE_FAILURE = 0;
SMSG_MOVE_UNSET_CAN_FLY = 0;
SMSG_MOVE_SET_CAN_FLY = 0;

SMSG_CHARACTER_LOGIN_FAILED = $161E;
SMSG_ACCOUNT_DATA_TIMES = $D632;
MSG_SET_DUNGEON_DIFFICULTY = 0;
SMSG_LOGIN_VERIFY_WORLD = $5612;
SMSG_FEATURE_SYSTEM_STATUS = $9244;
SMSG_BINDPOINTUPDATE = 0;
SMSG_TUTORIAL_FLAGS = 0;
SMSG_INITIAL_SPELLS = 0;
SMSG_ACTION_BUTTONS = 0;
SMSG_TIME_SYNC_REQ = $C65E;
CMSG_PLAYER_LOGIN = 0;
CMSG_REQUEST_ACCOUNT_DATA = 0;
CMSG_UPDATE_ACCOUNT_DATA = 0;
SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = $C428;
MSG_MOVE_WORLDPORT_ACK = 0;
CMSG_NAME_QUERY = $4616;
SMSG_NAME_QUERY_RESPONSE = $D200;
CMSG_QUERY_TIME = 0;
SMSG_QUERY_TIME_RESPONSE = 0;
CMSG_SET_SELECTION = 0;
CMSG_AREATRIGGER = 0;
CMSG_SWAP_INV_ITEM = 0;
CMSG_AUTOEQUIP_ITEM = 0;
CMSG_ATTACKSWING = 0;
CMSG_ATTACKSTOP = 0;
CMSG_QUESTGIVER_STATUS_QUERY = 0;
SMSG_QUESTGIVER_STATUS = 0;
CMSG_QUESTGIVER_HELLO = 0;
SMSG_QUESTGIVER_QUEST_LIST = 0;
CMSG_STANDSTATECHANGE = 0;
SMSG_STANDSTATE_UPDATE = 0;
CMSG_SETSHEATHED = 0;
CMSG_GOSSIP_SELECT_OPTION = 0;
CMSG_CAST_SPELL = 0;
SMSG_LOGIN_SETTIMESPEED = 0;
SMSG_WORLD_STATE_UI_TIMER_UPDATE = 0;

SMSG_TRANSFER_PENDING = $D468;
SMSG_NEW_WORLD = $0412;
MSG_MOVE_TELEPORT_ACK = 0;
SMSG_MESSAGECHAT = 0;
SMSG_MOTD = 0;
SMSG_DESTROY_OBJECT = 0;
SMSG_FORCE_RUN_SPEED_CHANGE = 0;
SMSG_FORCE_SWIM_SPEED_CHANGE = 0;
SMSG_FORCE_FLIGHT_SPEED_CHANGE = 0;
SMSG_ATTACKSTART = 0;
SMSG_ATTACKSTOP = 0;
SMSG_SPELL_START = 0;
SMSG_SPELL_GO = 0;

MSG_MOVE_SET_FACING = $902C;
MSG_MOVE_START_STRAFE_LEFT = $8254;
MSG_MOVE_START_STRAFE_RIGHT = $8272;
MSG_MOVE_STOP_STRAFE = $443E;
MSG_MOVE_START_FORWARD = $860E;
MSG_MOVE_START_BACKWARD = $8612;
MSG_MOVE_HEARTBEAT = 0;
MSG_MOVE_STOP = $927C;
MSG_MOVE_JUMP = $9F6A;
MSG_MOVE_START_TURN_RIGHT = $0650;
MSG_MOVE_START_TURN_LEFT = $420C;
MSG_MOVE_STOP_TURN = $8424;
MSG_MOVE_SET_PITCH = $0006;
MSG_MOVE_START_ASCEND = $905C;
MSG_MOVE_STOP_ASCEND = $1254;
MSG_MOVE_START_SWIM = 0;
```

0 means he still needs those values.

----------


## RomanRom2

SMSG_AUTH_CHALLENGE = $0442;
this opcode is wrong. client go back to realmlist during send this. or opcode is changed  :Smile:

----------


## doityourself

I have this lines:



```
sub_4868E0((void *)v3, 0x442u, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0xD074u, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0xD07Eu, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0xC634u, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0x161Eu, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0xD270u, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0x1214u, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0x8002u, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0x8012u, (int)sub_618440, v3);
  sub_4868E0((void *)v3, 0x9650u, (int)sub_618440, v3);
```

And SMSG_AUTH_CHALLENGE should be 0x442 or the location from this opcode has been changed, but here are the lines from 12065:


```
sub_482E40((void *)v3, 0x1DE3u, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0xFEFu, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0x3B63u, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0xFD67u, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0x9DEFu, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0xDD6Bu, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0x8F61u, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0x79EFu, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0x5B65u, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0x7DEDu, (int)sub_615EE0, v3);
  sub_482E40((void *)v3, 0x1966u, (int)sub_615EE0, v3);
```

----------


## Hiperzone

```
	SMSG_AUTH_CHALLENGE           = 0x8924,
	CMSG_AUTH_SESSION             = 0xA000,
	SMSG_AUTH_RESPONSE            = 1090,
	SMSG_LOGOUT_CANCEL_ACK        = 4628,
	SMSG_CHARACTER_LOGIN_FAILED   = 5662,
	SMSG_UPDATE_OBJECT            = 0x9028,
	SMSG_DESTROY_OBJECT           = 0x123C,
	SMSG_LOGOUT_RESPONSE          = 32770,
	SMSG_CHAR_DELETE              = 32786,
	SMSG_CLIENTCACHE_VERSION      = 38480,
	SMSG_CHAR_CREATE              = 50740,
	SMSG_CHAR_ENUM                = 53374,
	CMSG_CHAR_ENUM                = 0xC636,
	CMSG_REALM_SPLIT              = 0x8014,
	SMSG_REALM_SPLIT              = 0x527C,
	SMSG_ADDON_INFO               = 53364,
	SMSG_LOGOUT_COMPLETE          = 53872,
	SMSG_COMPRESSED_UPDATE_OBJECT = 0x9468,
	SMSG_COMPRESSED_MOVES         = 0x49E0,
	SMSG_TUTORIAL_FLAGS           = 0x5012,
	SMSG_ACCOUNT_DATA_TIMES       = 0xD632,
	SMSG_WARDEN_DATA              = 0x1026,
	CMSG_WARDEN_DATA              = 0x0612,
	MSG_SET_DUNGEON_DIFFICULTY    = 0x5672,
	SMSG_LOGIN_VERIFY_WORLD       = 0x5612,
	SMSG_FEATURE_SYSTEM_STATUS    = 0x9244,
	SMSG_MOTD                     = 0x5218,
	SMSG_LEARNED_DANCE_MOVES      = 0x547C,
	SMSG_CONTACT_LIST             = 0x821A,
	SMSG_SET_PROFICIENCY          = 0x041E,
	SMSG_BINDPOINTUPDATE          = 0x5406,
	SMSG_PET_SPELLS               = 0xC272,
	SMSG_INITIAL_SPELLS           = 0x9618,
	SMSG_ACTION_BUTTONS           = 0x146E,
	SMSG_INITIALIZE_FACTIONS      = 0x502A,
	SMSG_CORPSE_RECLAIM_DELAY     = 0x1616,
	SMSG_INIT_WORLD_STATES        = 0x8406,
	SMSG_LOGIN_SETTIMESPEED       = 0x025E,
	SMSG_UPDATE_WORLD_STATE       = 0x4672,
	SMSG_SPELL_START              = 0xC416,
	SMSG_SPELL_GO                 = 0xD67E,
	SMSG_AURA_UPDATE              = 0x0470,
	CMSG_ITEM_QUERY_SINGLE        = 0x8236,
	SMSG_ITEM_QUERY_SINGLE_RESPONSE = 0x8450,
	MSG_MOVE_WORLDPORT_ACK          = 0xD20A,
	SMSG_NEW_WORLD                  = 0x412,
```

my contribution, should be 98% accurate, some were extracted by packet log comparation and a few from the client itself. my auth opcodes are currect

----------


## doityourself

Hmm ok I will test the auth opcodes :P

SMSG_AUTH_CHALLENGE = 0x8924,
CMSG_AUTH_SESSION = 0xA00,
SMSG_AUTH_RESPONSE = 1090,

not correct, stuck on connect

I have

sub_4868E0((void *)v3, 0x442u, (int)sub_618440, v3); // SMSG_AUTH_CHALLENGE 
sub_4868E0((void *)v3, 0xD074u, (int)sub_618440, v3); // SMSG_AUTH_RESPONSE

----------


## Hiperzone

yes but thats wrong because they removed challenge from the handler. that opcode is actualy SMSG_AUTH_RESPONSE now wich followed challenge before.

---------- Post added at 08:59 AM ---------- Previous post was at 08:44 AM ----------

hmm lol theres a missing 0 there in the session one its 0xA000, try again with this one

----------


## doityourself

It can't work. new opcode 0x2100. we need this to connect.

2010-05-29 16:13:04 ERROR:WorldSocket::ProcessIncoming: Client not authed opcode = 8448

----------


## Hiperzone

i dont see anything special about it.



```
{CLIENT} Packet: (0x2100) UNKNOWN PacketSize = 4

|------------------------------------------------|----------------|

|00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |0123456789ABCDEF|

|------------------------------------------------|----------------|

|11 00 00 00                                     |....            |

-------------------------------------------------------------------
```



---------- Post added at 09:19 AM ---------- Previous post was at 09:15 AM ----------

i compared the logs and there isnt anything new, so dont know whats wrong with your server

----------


## TOM_RUS

```
SMSG_AUTH_CHALLENGE = 0x8924,
CMSG_AUTH_SESSION = 0xA000,
```

structure changed, I'll let you find new one :P

----------


## doityourself

/Edit:

Hmm ok

Tom_Rus help us  :Big Grin: 

I have found a lot of opcodes, but have problems on this -.-

----------


## Hiperzone

ye i realized that now tom, since my client was stuck at connected after challenge being sent, gonna try to check for the struct.

----------


## Hurrr

So I did find the right code to handle SMSG_AUTH_CHALLENGE, just not the right opcode value :|

Anyway, the new structure is:

8 longs
1 byte
1 long

Changing the mangos code like this:


```
    WorldPacket packet (SMSG_AUTH_CHALLENGE, 24);
   // packet << uint32(1);                                    // 1...31
    //packet << m_Seed;

    BigNumber seed1;
    seed1.SetRand(16 * 8);
    packet.append(seed1.AsByteArray(16), 16);               // new encryption seeds

    BigNumber seed2;
    seed2.SetRand(16 * 8);
    packet.append(seed2.AsByteArray(16), 16);               // new encryption seeds

	packet << uint8( 1 );
	packet << m_Seed;
```

Seems to work (I receive the A000 response from the client), although I'm not sure the actual value sent in this packet really matter since mangos doesn't verify the client response anyway.

TOM_RUS' sandbox sends all zeros with just some stuff in the last long and it works.

Gonna integrate all those other opcodes that have been found and see how it goes...

----------


## Hiperzone

ye :| my problem is the next opcode, and im too noob at ida to find the right structures, my client isnt documented enough, im only handling atm CMSG and SMSG opcode enumeration. but i think digest got changed to the first position followed by 3 uint32 zeros then uint32 value, possible 16 bit clientversion, 8 bit unk, string account, rest i dont know, prolly im wrong about digest also so ;P.
Btw whats the offset where u found the challenge handling?

---------- Post added at 11:45 AM ---------- Previous post was at 11:37 AM ----------

lol funny enough i can go to char enum etc if i just ignore the digest check etc -.-

----------


## Hurrr

> ye :| my problem is the next opcode, and im too noob at ida to find the right structures, my client isnt documented enough, im only handling atm CMSG and SMSG opcode enumeration. but i think digest got changed to the first position followed by 3 uint32 zeros then uint32 value, possible 16 bit clientversion, 8 bit unk, string account, rest i dont know, prolly im wrong about digest also so ;P.
> Btw whats the offset where u found the challenge handling?[COLOR="Silver"]


935fb0

Basically it used to be part of a bigger function that handled the auth challenge but it has been split out into a separate function. That's why I thought it was gone altogether at first.

I'm slacking right now, gotta integrate those other opcodes to continue working on this.




> lol funny enough i can go to char enum etc if i just ignore the digest check etc -.-


Yeah, you can ignore a lot of things. The auth exchange apparently serves for the client to prove to the blizzard server that it's the actual client and not some third party program (ie server send random numbers, client do some secret stuff on it and send the result back, server check that the result is what's expected). In your own server you don't really care about that  :Smile:  that's why mangos seem to pretty much ignore CMSG_AUTH_SESSION altogether.

----------


## andy012345

Edit: nvm I'm wrong :P

----------


## Hurrr

> I have this lines:
> 
> 
> 
> ```
> sub_4868E0((void *)v3, 0x442u, (int)sub_618440, v3);
>   sub_4868E0((void *)v3, 0xD074u, (int)sub_618440, v3);
>   sub_4868E0((void *)v3, 0xD07Eu, (int)sub_618440, v3);
>   sub_4868E0((void *)v3, 0xC634u, (int)sub_618440, v3);
> ...


There's one more in the second list: sub_482E40((void *)v3, 0x1DE3u, (int)sub_615EE0, v3); which is SMSG_AUTH_CHALLENGE but it has been removed from that place in the new client. So basically you are off by one, you should remove the first line from the second list (ie 0x442 in the 12122 correspond to 0xfef in the old one and so on).

Fix those + the structure of SMSG_AUTH_CHALLENGE and you should get pretty far imo. I can't confirm that however because I've screwed up something in my mangos and it sends a one byte response for SMSG_AUTH_RESPONSE so it fails and I need to go somewhere now.

----------


## RomanRom2

guys, i released the sandbox, but with some limitations. anyway - basic functionality works fine (teleports, flights, speed up). thank you for the opcode researching, i cannot do it by myself  :Frown:  i am coder only...
finally, i would say that clients behaviour is very strange - it do not send many opcode such as movement, spell_start... i guess we need to send some new opcode to initiate some ... trigger... or ... process, which switch on in the client functions to send our opcodes. or something like this.

----------


## Hurrr

So I was wrong about mangos not caring about CMSG_AUTH_SESSION. I'm such a noob :|

Here's how to fix it, replace the beginning of WorldSocket::HandleAuthSession with this:



```
int WorldSocket::HandleAuthSession (WorldPacket& recvPacket)
{
    // NOTE: ATM the socket is singlethread, have this in mind ...    uint8 digest[20];
    uint32 clientSeed;
    uint32 unk2;
	uint8 unk3;
    uint64 unk4;
    uint16 ClientBuild;
    uint32 id, security;
    uint8 expansion = 0;
    LocaleConstant locale;
    std::string account;
    Sha1Hash sha1;
    BigNumber v, s, g, N;
    WorldPacket packet, SendAddonPacked;

    BigNumber K;

    // Read the content of the packet
    recvPacket.read (digest, 20);
	recvPacket >> unk4;
    recvPacket >> unk2;
    recvPacket >> clientSeed;
	recvPacket >> ClientBuild;
	recvPacket >> unk3;
    recvPacket >> account;
```

Now I need to find what SMSG is wrong that prevents me from getting in world but even though I prefer using mangos to explore since there are two working sandboxes I guess I cba anymore until they mess up the opcodes again  :Stick Out Tongue:

----------


## doityourself

I get
WorldSocket::HandleAuthSession: Sent Auth Response (authentification failed).

----------


## Hiperzone

you missing a uint32 after account btw ;P

----------


## Haith

Anyone have luck yet with the opcode preventing world login? I seem to be hanging at the loading screen, and can't pick up which code is interfering.

[Edit]: I updated a couple of my missing opcodes from Hiperzone's post on pg 6, and got in world now. Thanks for the list  :Smile:

----------


## doityourself

> you missing a uint32 after account btw ;P




which uint32?

----------


## doityourself

I still get this error message -.-
WorldSocket::HandleAuthSession: Sent Auth Response (authentification failed).

----------


## Haith

Are you using these opcodes for Auth?



```
SMSG_AUTH_CHALLENGE           = 0x8924,
CMSG_AUTH_SESSION             = 0xA000,
SMSG_AUTH_RESPONSE            = 0x442,
```

I also used



```
CMSG_READY_FOR_ACCOUNT_DATA_TIMES               = 0xC426,
```

That one may or may not be correct, but i got in world using it.

And lastly, take the structure from Hurr, and and change the first two lines to be:



```
int WorldSocket::HandleAuthSession (WorldPacket& recvPacket)
{
    // NOTE: ATM the socket is singlethread, have this in mind ...    
    uint8 digest[20];
    uint32 clientSeed;
    uint32 unk2;
	uint8 unk3;
    uint64 unk4;
    uint16 ClientBuild;
    uint32 id, security;
    uint8 expansion = 0;
    LocaleConstant locale;
    std::string account;
    Sha1Hash sha1;
    BigNumber v, s, g, N;
    WorldPacket packet, SendAddonPacked;

    BigNumber K;

    // Read the content of the packet
    recvPacket.read (digest, 20);
	recvPacket >> unk4;
    recvPacket >> unk2;
    recvPacket >> clientSeed;
	recvPacket >> ClientBuild;
	recvPacket >> unk3;
    recvPacket >> account;
```

Hope this helps!

-Haith

----------


## doityourself

hmm same problem -.-

----------


## Haith

This is the complete opcode list I have. Some of these I found on my own, and some were from Hurr's list on page 6. I labeled most of the ones I changed with a "Haith" comment, however, I am not taking credit for all of the labeled ones  :Stick Out Tongue: 

(This is from my copy of DiamondCore's latest rev)

[Edit]: I don't know how many of my additions are correct, but they work for me. lol



```
enum Opcodes
{
    MSG_NULL_ACTION                                 = 0x000,
    CMSG_BOOTME                                     = 0x001,
    CMSG_DBLOOKUP                                   = 0x002,
    SMSG_DBLOOKUP                                   = 0x003,
    CMSG_QUERY_OBJECT_POSITION                      = 0x004,
    SMSG_QUERY_OBJECT_POSITION                      = 0x005,
    CMSG_QUERY_OBJECT_ROTATION                      = 0x006,
    SMSG_QUERY_OBJECT_ROTATION                      = 0x007,
    CMSG_WORLD_TELEPORT                             = 0x008,
    CMSG_TELEPORT_TO_UNIT                           = 0x009,
    CMSG_ZONE_MAP                                   = 0x00A,
    SMSG_ZONE_MAP                                   = 0x00B,
    CMSG_DEBUG_CHANGECELLZONE                       = 0x00C,
    CMSG_MOVE_CHARACTER_CHEAT                       = 0x00D,
    SMSG_MOVE_CHARACTER_CHEAT                       = 0x00E,
    CMSG_RECHARGE                                   = 0x00F,
    CMSG_LEARN_SPELL                                = 0x010,
    CMSG_CREATEMONSTER                              = 0x011,
    CMSG_DESTROYMONSTER                             = 0x012,
    CMSG_CREATEITEM                                 = 0x013,
    CMSG_CREATEGAMEOBJECT                           = 0x014,
    SMSG_CHECK_FOR_BOTS                             = 0x8052,    // 32850 - 4.0.0.12122
    CMSG_MAKEMONSTERATTACKGUID                      = 0x016,
    CMSG_BOT_DETECTED2                              = 0x017,
    CMSG_FORCEACTION                                = 0x018,
    CMSG_FORCEACTIONONOTHER                         = 0x019,
    CMSG_FORCEACTIONSHOW                            = 0x01A,
    SMSG_FORCEACTIONSHOW                            = 0x423C,    // 16956 - 4.0.0.12122
    CMSG_PETGODMODE                                 = 0x01C,
    SMSG_PETGODMODE                                 = 0xE,       // 14    - 4.0.0.12122
    SMSG_REFER_A_FRIEND_EXPIRED                     = 0x5BEC,    // 23532 - 4.0.0.12065
    CMSG_WEATHER_SPEED_CHEAT                        = 0x01F,
    CMSG_UNDRESSPLAYER                              = 0x020,
    CMSG_BEASTMASTER                                = 0x021,
    CMSG_GODMODE                                    = 0x022,
    SMSG_GODMODE                                    = 0x8032,    // 32818 - 4.0.0.12122
    CMSG_CHEAT_SETMONEY                             = 0x024,
    CMSG_LEVEL_CHEAT                                = 0x025,
    CMSG_PET_LEVEL_CHEAT                            = 0x026,
    CMSG_SET_WORLDSTATE                             = 0x027,
    CMSG_COOLDOWN_CHEAT                             = 0x028,
    CMSG_USE_SKILL_CHEAT                            = 0x029,
    CMSG_FLAG_QUEST                                 = 0x02A,
    CMSG_FLAG_QUEST_FINISH                          = 0x02B,
    CMSG_CLEAR_QUEST                                = 0x02C,
    CMSG_SEND_EVENT                                 = 0x02D,
    CMSG_DEBUG_AISTATE                              = 0x02E,
    SMSG_DEBUG_AISTATE                              = 0x02F,
    CMSG_DISABLE_PVP_CHEAT                          = 0x030,
    CMSG_ADVANCE_SPAWN_TIME                         = 0x031,
    SMSG_DESTRUCTIBLE_BUILDING_DAMAGE               = 0x8640,    // 34368 - 4.0.0.12122
    CMSG_AUTH_SRP6_BEGIN                            = 0x033,
    CMSG_AUTH_SRP6_PROOF                            = 0x034,
    CMSG_AUTH_SRP6_RECODE                           = 0x035,
    CMSG_CHAR_CREATE                                = 0x9202,    // 37378 - 4.0.0.12122
    CMSG_CHAR_ENUM                                  = 0xC636,    // 50742 - 4.0.0.12122
    CMSG_CHAR_DELETE                                = 0x1048,    // 4168  - 4.0.0.12122
    SMSG_AUTH_SRP6_RESPONSE                         = 0x039,
	SMSG_CHAR_CREATE              = 0xC634,
	SMSG_CHAR_ENUM                = 0xD07E,
	SMSG_CHAR_DELETE                                = 0x8012,    //Haith
    CMSG_PLAYER_LOGIN                               = 0x5066,    // 20582 - 4.0.0.12122
    SMSG_NEW_WORLD                                  = 0x412,     // 1042  - 4.0.0.12122
    SMSG_TRANSFER_PENDING                           = 0xD468,    // 54376 - 4.0.0.12122
    SMSG_TRANSFER_ABORTED                           = 0x4636,    // 17974 - 4.0.0.12122
    SMSG_CHARACTER_LOGIN_FAILED                     = 0xC634,    // 5662  - 4.0.0.12122
    SMSG_LOGIN_SETTIMESPEED                         = 0x025E,     // Haith
    SMSG_GAMETIME_UPDATE                            = 0x121A,    // 4634  - 4.0.0.12122
    CMSG_GAMETIME_SET                               = 0x044,
    SMSG_GAMETIME_SET                               = 0x1642,    // 5698  - 4.0.0.12122
    CMSG_GAMESPEED_SET                              = 0x046,
    SMSG_GAMESPEED_SET                              = 0x1444,    // 1444  - 4.0.0.12122
    CMSG_SERVERTIME                                 = 0x845A,    // 33882 - 4.0.0.12122
    SMSG_SERVERTIME                                 = 0x049,
    CMSG_PLAYER_LOGOUT                              = 0x1018,    // 4120  - 4.0.0.12122
    CMSG_LOGOUT_REQUEST                             = 0x1424,    // 5156  - 4.0.0.12122
    SMSG_LOGOUT_RESPONSE                            = 0x8002,    // Haith
    SMSG_LOGOUT_COMPLETE                            = 0xD270,    // Haith
    CMSG_LOGOUT_CANCEL                              = 0x04E,
    SMSG_LOGOUT_CANCEL_ACK                          = 0x1214,    // Haith
    CMSG_NAME_QUERY                                 = 0x4616,    // 17942 - 4.0.0.12122
    SMSG_NAME_QUERY_RESPONSE                        = 0xD200,    // 53760 - 4.0.0.12122
    CMSG_PET_NAME_QUERY                             = 0x9040,    // 36928 - 4.0.0.12122
    SMSG_PET_NAME_QUERY_RESPONSE                    = 0x440C,    // 17420 - 4.0.0.12122
    CMSG_GUILD_QUERY                                = 0x0636,    // 1590  - 4.0.0.12122
    SMSG_GUILD_QUERY_RESPONSE                       = 0xC042,    // 49218 - 4.0.0.12122
    CMSG_ITEM_QUERY_SINGLE                          = 0x8236,    // 33334 - 4.0.0.12122
    CMSG_ITEM_QUERY_MULTIPLE                        = 0x966E,    // 38510 - 4.0.0.12122
    SMSG_ITEM_QUERY_SINGLE_RESPONSE                 = 0x8450,    // 33872 - 4.0.0.12122
    SMSG_ITEM_QUERY_MULTIPLE_RESPONSE               = 0x1234,    // 4660  - 4.0.0.12122
    CMSG_PAGE_TEXT_QUERY                            = 0x163A,    // 5690  - 4.0.0.12122
    SMSG_PAGE_TEXT_QUERY_RESPONSE                   = 0x41A ,    // 1050  - 4.0.0.12122
    CMSG_QUEST_QUERY                                = 0x060E,    // 1550  - 4.0.0.12122
    SMSG_QUEST_QUERY_RESPONSE                       = 0x422A,    // 16938 - 4.0.0.12122
    CMSG_GAMEOBJECT_QUERY                           = 0x427C,    // 36938 - 4.0.0.12122
	//Not sure about Gameobject_Query
    SMSG_GAMEOBJECT_QUERY_RESPONSE                  = 0xC072,    // 49266 - 4.0.0.12122
    CMSG_CREATURE_QUERY                             = 0x427C,    // 17020 - 4.0.0.12122
    SMSG_CREATURE_QUERY_RESPONSE                    = 0x40E ,    // 1038  - 4.0.0.12122
    CMSG_WHO                                        = 0xFDE9,    // 65001 - 4.0.0.12065
    SMSG_WHO                                        = 0x401E,    // 16414 - 4.0.0.12122
    CMSG_WHOIS                                      = 0x064,
    SMSG_WHOIS                                      = 0x632,     // 1586  - 4.0.0.12122
    CMSG_CONTACT_LIST                               = 0x066,
    SMSG_CONTACT_LIST                               = 0x821A,    // 33306 - 4.0.0.12122
    SMSG_FRIEND_STATUS                              = 0x521A,    // 21018 - 4.0.0.12122
    CMSG_ADD_FRIEND                                 = 0xAF6F,    // 44911 - 4.0.0.12065
    CMSG_DEL_FRIEND                                 = 0x06A,
    CMSG_SET_CONTACT_NOTES                          = 0x06B,
    CMSG_ADD_IGNORE                                 = 0x06C,
    CMSG_DEL_IGNORE                                 = 0x06D,
    CMSG_GROUP_INVITE                               = 0x06E,
    SMSG_GROUP_INVITE                               = 0x7E,      // 126   - 4.0.0.12122
    CMSG_GROUP_CANCEL                               = 0x070,
    SMSG_GROUP_CANCEL                               = 0x4406,    // 17414 - 4.0.0.12122
    CMSG_GROUP_ACCEPT                               = 0x072,
    CMSG_GROUP_DECLINE                              = 0x073,
    SMSG_GROUP_DECLINE                              = 0x64,      // 100   - 4.0.0.12122
    CMSG_GROUP_UNINVITE                             = 0x075,
    CMSG_GROUP_UNINVITE_GUID                        = 0x076,
    SMSG_GROUP_UNINVITE                             = 0xC056,    // 49238 - 4.0.0.12122
    CMSG_GROUP_SET_LEADER                           = 0x078,
    SMSG_GROUP_SET_LEADER                           = 0x5660,    // 22112 - 4.0.0.12122
    CMSG_LOOT_METHOD                                = 0x07A,
    CMSG_GROUP_DISBAND                              = 0x07B,
    SMSG_GROUP_DESTROYED                            = 0x3C,      // 60    - 4.0.0.12122
    SMSG_GROUP_LIST                                 = 0x166E,    // 5742  - 4.0.0.12122
    SMSG_PARTY_MEMBER_STATS                         = 0x8226,    // 33318 - 4.0.0.12122
    SMSG_PARTY_COMMAND_RESULT                       = 0x861E,    // 34334 - 4.0.0.12122
    UMSG_UPDATE_GROUP_MEMBERS                       = 0x080,
    CMSG_GUILD_CREATE                               = 0x081,
    CMSG_GUILD_INVITE                               = 0x082,
    SMSG_GUILD_INVITE                               = 0x4050,    // 16464 - 4.0.0.12122
    CMSG_GUILD_ACCEPT                               = 0x084,
    CMSG_GUILD_DECLINE                              = 0x085,
    SMSG_GUILD_DECLINE                              = 0x4066,    // 16486 - 4.0.0.12122
    CMSG_GUILD_INFO                                 = 0x087,
    SMSG_GUILD_INFO                                 = 0x461C,    // 17948 - 4.0.0.12122
    CMSG_GUILD_ROSTER                               = 0x089,
    SMSG_GUILD_ROSTER                               = 0x08A,
    CMSG_GUILD_PROMOTE                              = 0x08B,
    CMSG_GUILD_DEMOTE                               = 0x08C,
    CMSG_GUILD_LEAVE                                = 0x08D,
    CMSG_GUILD_REMOVE                               = 0x08E,
    CMSG_GUILD_DISBAND                              = 0x08F,
    CMSG_GUILD_LEADER                               = 0x090,
    CMSG_GUILD_MOTD                                 = 0x091,
    SMSG_GUILD_EVENT                                = 0x4664,    // 18020 - 4.0.0.12122
    SMSG_GUILD_COMMAND_RESULT                       = 0x841E,    // 33822 - 4.0.0.12122
    UMSG_UPDATE_GUILD                               = 0x094,
    CMSG_MESSAGECHAT                                = 0x5644,    // 22084 - 4.0.0.12122
    SMSG_MESSAGECHAT                                = 0x161C,    // 5660  - 4.0.0.12122
    CMSG_JOIN_CHANNEL                               = 0x920A,     // 37386 - 4.0.0.12122
    CMSG_LEAVE_CHANNEL                              = 0x098,
    SMSG_CHANNEL_NOTIFY                             = 0x402C,    // 16428 - 4.0.0.12122
    CMSG_CHANNEL_LIST                               = 0x09A,
    SMSG_CHANNEL_LIST                               = 0xD24E,    // 53838 - 4.0.0.12122
    CMSG_CHANNEL_PASSWORD                           = 0x09C,
    CMSG_CHANNEL_SET_OWNER                          = 0x09D,
    CMSG_CHANNEL_OWNER                              = 0x09E,
    CMSG_CHANNEL_MODERATOR                          = 0x09F,
    CMSG_CHANNEL_UNMODERATOR                        = 0x0A0,
    CMSG_CHANNEL_MUTE                               = 0x0A1,
    CMSG_CHANNEL_UNMUTE                             = 0x0A2,
    CMSG_CHANNEL_INVITE                             = 0x0A3,
    CMSG_CHANNEL_KICK                               = 0x0A4,
    CMSG_CHANNEL_BAN                                = 0x0A5,
    CMSG_CHANNEL_UNBAN                              = 0x0A6,
    CMSG_CHANNEL_ANNOUNCEMENTS                      = 0x0A7,
    CMSG_CHANNEL_MODERATE                           = 0x0A8,
    SMSG_UPDATE_OBJECT                              = 0x9028,    // Haith
    SMSG_DESTROY_OBJECT                             = 0x123C,    // Haith
    CMSG_USE_ITEM                                   = 0x0AB,
    CMSG_OPEN_ITEM                                  = 0x0AC,
    CMSG_READ_ITEM                                  = 0x0AD,
    SMSG_READ_ITEM_OK                               = 0x216,     // 534   - 4.0.0.12122
    SMSG_READ_ITEM_FAILED                           = 0x5010,    // 20496 - 4.0.0.12122
    SMSG_ITEM_COOLDOWN                              = 0x9472,    // 38002 - 4.0.0.12122
    CMSG_GAMEOBJ_USE                                = 0x1012,    // 4114  - 4.0.0.12122
    CMSG_DESTROY_ITEMS                              = 0x0B2,
    SMSG_GAMEOBJECT_CUSTOM_ANIM                     = 0x9436,    // 37942 - 4.0.0.12122
    CMSG_AREATRIGGER                                = 0x0B4,
    MSG_MOVE_START_FORWARD                          = 0x860E,    // 34318 - 4.0.0.12122
    MSG_MOVE_START_BACKWARD                         = 0x8612,    // 34322 - 4.0.0.12122
    MSG_MOVE_STOP                                   = 0x927C,    // 37500 - 4.0.0.12122
    MSG_MOVE_START_STRAFE_LEFT                      = 0x8254,    // 33364 - 4.0.0.12122
    MSG_MOVE_START_STRAFE_RIGHT                     = 0x8272,    // 33394 - 4.0.0.12122
    MSG_MOVE_STOP_STRAFE                            = 0x443E,    // 17470 - 4.0.0.12122
    MSG_MOVE_JUMP                                   = 0x9F6A,    // 17458 - 4.0.0.12122
    MSG_MOVE_START_TURN_LEFT                        = 0x420C,    // 16908 - 4.0.0.12122
    MSG_MOVE_START_TURN_RIGHT                       = 0x650,     // 1616  - 4.0.0.12122
    MSG_MOVE_STOP_TURN                              = 0x8424,    // 33828 - 4.0.0.12122
    MSG_MOVE_START_PITCH_UP                         = 0x4012,    // 16402 - 4.0.0.12122
    MSG_MOVE_START_PITCH_DOWN                       = 0xC212,    // 49682 - 4.0.0.12122
    MSG_MOVE_STOP_PITCH                             = 0xC624,    // 50724 - 4.0.0.12122
    MSG_MOVE_SET_RUN_MODE                           = 0xD65C,    // 54876 - 4.0.0.12122
    MSG_MOVE_SET_WALK_MODE                          = 0x4462,    // 17506 - 4.0.0.12122
    MSG_MOVE_TOGGLE_LOGGING                         = 0x0C4,
    MSG_MOVE_TELEPORT                               = 0x462,     // 1122  - 4.0.0.12122
    MSG_MOVE_TELEPORT_CHEAT                         = 0x0C6,
    MSG_MOVE_TELEPORT_ACK                           = 0xD65A,    // 54874 - 4.0.0.12122
    MSG_MOVE_TOGGLE_FALL_LOGGING                    = 0x0C8,
    MSG_MOVE_FALL_LAND                              = 0x9068,    // 36968 - 4.0.0.12122
    MSG_MOVE_START_SWIM                             = 0x9644,    // 38468 - 4.0.0.12122
    MSG_MOVE_STOP_SWIM                              = 0x5210,    // 21008 - 4.0.0.12122
    MSG_MOVE_SET_RUN_SPEED_CHEAT                    = 0x0CC,
    MSG_MOVE_SET_RUN_SPEED                          = 0xD21C,    // 53788 - 4.0.0.12122
    MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT               = 0x0CE,
    MSG_MOVE_SET_RUN_BACK_SPEED                     = 0x465C,    // 18012 - 4.0.0.12122
    MSG_MOVE_SET_WALK_SPEED_CHEAT                   = 0x0D0,
    MSG_MOVE_SET_WALK_SPEED                         = 0xD27E,    // 53886 - 4.0.0.12122
    MSG_MOVE_SET_SWIM_SPEED_CHEAT                   = 0x0D2,
    MSG_MOVE_SET_SWIM_SPEED                         = 0x5038,    // 20536 - 4.0.0.12122
    MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT              = 0x0D4,
    MSG_MOVE_SET_SWIM_BACK_SPEED                    = 0xD464,    // 54372 - 4.0.0.12122
    MSG_MOVE_SET_ALL_SPEED_CHEAT                    = 0x0D6,
    MSG_MOVE_SET_TURN_RATE_CHEAT                    = 0x0D7,
    MSG_MOVE_SET_TURN_RATE                          = 0x444E,    // 17486 - 4.0.0.12122
    MSG_MOVE_TOGGLE_COLLISION_CHEAT                 = 0x214,     // 532   - 4.0.0.12122
    MSG_MOVE_SET_FACING                             = 0x902C,    // 36908 - 4.0.0.12122
    MSG_MOVE_SET_PITCH                              = 0x0006,    // 6     - 4.0.0.12122
    MSG_MOVE_WORLDPORT_ACK                          = 0xD20A,    // 53770 - 4.0.0.12122
    SMSG_MONSTER_MOVE                               = 0x602,     // 1538  - 4.0.0.12122
    SMSG_MOVE_WATER_WALK                            = 0xC678,    // 50808 - 4.0.0.12122
    SMSG_MOVE_LAND_WALK                             = 0x507C,    // 20604 - 4.0.0.12122
    MSG_MOVE_SET_RAW_POSITION_ACK                   = 0x0E0,
    CMSG_MOVE_SET_RAW_POSITION                      = 0x0E1,
    SMSG_FORCE_RUN_SPEED_CHANGE                     = 0x9642,    // 38466 - 4.0.0.12122
    CMSG_FORCE_RUN_SPEED_CHANGE_ACK                 = 0x09E2,    // 2530  - 4.0.0.12065
    SMSG_FORCE_RUN_BACK_SPEED_CHANGE                = 0x940E,    // 37902 - 4.0.0.12122
    CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK            = 0x0E5,
    SMSG_FORCE_SWIM_SPEED_CHANGE                    = 0x0B60,    // 2912  - 4.0.0.12065
    CMSG_FORCE_SWIM_SPEED_CHANGE_ACK                = 0x0E7,
    SMSG_FORCE_MOVE_ROOT                            = 0x1002,    // 4098  - 4.0.0.12122
    CMSG_FORCE_MOVE_ROOT_ACK                        = 0x0E9,
    SMSG_FORCE_MOVE_UNROOT                          = 0xC052,    // 49234 - 4.0.0.12122
    CMSG_FORCE_MOVE_UNROOT_ACK                      = 0x0EB,
    MSG_MOVE_ROOT                                   = 0x501C,    // 20508 - 4.0.0.12122
    MSG_MOVE_UNROOT                                 = 0x9644,    // 38468 - 4.0.0.12122
    MSG_MOVE_HEARTBEAT                              = 0x8672,    // 34418 - 4.0.0.12122
    SMSG_MOVE_KNOCK_BACK                            = 0x4422,    // 17442 - 4.0.0.12122
    CMSG_MOVE_KNOCK_BACK_ACK                        = 0x0F0,
    MSG_MOVE_KNOCK_BACK                             = 0xD412,    // 54290 - 4.0.0.12122
    SMSG_MOVE_FEATHER_FALL                          = 0x9016,    // 36886 - 4.0.0.12122
    SMSG_MOVE_NORMAL_FALL                           = 0x676,     // 1654  - 4.0.0.12122
    SMSG_MOVE_SET_HOVER                             = 0x9674,    // 38516 - 4.0.0.12122
    SMSG_MOVE_UNSET_HOVER                           = 0xD648,    // 54856 - 4.0.0.12122
    CMSG_MOVE_HOVER_ACK                             = 0x596A,    // 22890 - 4.0.0.12065
    MSG_MOVE_HOVER                                  = 0x8068,    // 32872 - 4.0.0.12122
    CMSG_TRIGGER_CINEMATIC_CHEAT                    = 0x0F8,
    CMSG_OPENING_CINEMATIC                          = 0x0F9,
    SMSG_TRIGGER_CINEMATIC                          = 0x562A,    // 22058 - 4.0.0.12122
    CMSG_NEXT_CINEMATIC_CAMERA                      = 0x0FB,
    CMSG_COMPLETE_CINEMATIC                         = 0x0FC,
    SMSG_TUTORIAL_FLAGS                             = 0x5012,    // Haith
    CMSG_TUTORIAL_FLAG                              = 0x0FE,
    CMSG_TUTORIAL_CLEAR                             = 0x0FF,
    CMSG_TUTORIAL_RESET                             = 0x100,
    CMSG_STANDSTATECHANGE                           = 0x101,
    CMSG_EMOTE                                      = 0xF9EE,    // 63982 - 4.0.0.12065
    SMSG_EMOTE                                      = 0x1438,   // 5176  - 4.0.0.12122
    CMSG_TEXT_EMOTE                                 = 0x9D68,    // 40296 - 4.0.0.12065
    SMSG_TEXT_EMOTE                                 = 0x2B61,    // 11105 - 4.0.0.12065
    CMSG_AUTOEQUIP_GROUND_ITEM                      = 0x106,
    CMSG_AUTOSTORE_GROUND_ITEM                      = 0x107,
    CMSG_AUTOSTORE_LOOT_ITEM                        = 0x8B6A,    // 35690 - 4.0.0.12065
    CMSG_STORE_LOOT_IN_SLOT                         = 0x109,
    CMSG_AUTOEQUIP_ITEM                             = 0x10A,
    CMSG_AUTOSTORE_BAG_ITEM                         = 0x10B,
    CMSG_SWAP_ITEM                                  = 0x10C,
    CMSG_SWAP_INV_ITEM                              = 0x10D,
    CMSG_SPLIT_ITEM                                 = 0x10E,
    CMSG_AUTOEQUIP_ITEM_SLOT                        = 0x10F,
    OBSOLETE_DROP_ITEM                              = 0x110,
    CMSG_DESTROYITEM                                = 0x111,
    SMSG_INVENTORY_CHANGE_FAILURE                   = 0x5236,    // 21046 - 4.0.0.12122
    SMSG_OPEN_CONTAINER                             = 0xD212,    // 53778 - 4.0.0.12122
    CMSG_INSPECT                                    = 0x114,
    SMSG_INSPECT                                    = 0xD460,    // 54368 - 4.0.0.12122
    CMSG_INITIATE_TRADE                             = 0x116,
    CMSG_BEGIN_TRADE                                = 0x117,
    CMSG_BUSY_TRADE                                 = 0x118,
    CMSG_IGNORE_TRADE                               = 0x119,
    CMSG_ACCEPT_TRADE                               = 0x11A,
    CMSG_UNACCEPT_TRADE                             = 0x11B,
    CMSG_CANCEL_TRADE                               = 0x11C,
    CMSG_SET_TRADE_ITEM                             = 0x11D,
    CMSG_CLEAR_TRADE_ITEM                           = 0x11E,
    CMSG_SET_TRADE_GOLD                             = 0x11F,
    SMSG_TRADE_STATUS                               = 0x120,
    SMSG_TRADE_STATUS_EXTENDED                      = 0x121,
    SMSG_INITIALIZE_FACTIONS                        = 0x502A,    // Haith
    SMSG_SET_FACTION_VISIBLE                        = 0x6F66,    // 28518 - 4.0.0.12065
    SMSG_SET_FACTION_STANDING                       = 0xAD68,    // 44392 - 4.0.0.12065
    CMSG_SET_FACTION_ATWAR                          = 0x125,
    CMSG_SET_FACTION_CHEAT                          = 0x126,
    SMSG_SET_PROFICIENCY                            = 0x041E,     // 1054  - 4.0.0.12122
    CMSG_SET_ACTION_BUTTON                          = 0x8460,    // 33888 - 4.0.0.12122
    SMSG_ACTION_BUTTONS                             = 0x146E,    // 5230  - 4.0.0.12122
    SMSG_INITIAL_SPELLS                             = 0x9618,    // 38424 - 4.0.0.12122
    SMSG_LEARNED_SPELL                              = 0x244,     // 580   - 4.0.0.12122
    SMSG_SUPERCEDED_SPELL                           = 0x466A,    // 18026 - 4.0.0.12122
    CMSG_NEW_SPELL_SLOT                             = 0x12D,
    CMSG_CAST_SPELL                                 = 0xA962,    // 43362 - 4.0.0.12065
    CMSG_CANCEL_CAST                                = 0x242,     // 578   - 4.0.0.12122
    SMSG_CAST_FAILED                                = 0xD238,    // 53816 - 4.0.0.12122
    SMSG_SPELL_START                                = 0xC416,    // 50198 - 4.0.0.12122
    SMSG_SPELL_GO                                   = 0xD67E,    // 54910 - 4.0.0.12122
    SMSG_SPELL_FAILURE                              = 0x461E,    // 17950 - 4.0.0.12122
    SMSG_SPELL_COOLDOWN                             = 0xC67C,    // 50812 - 4.0.0.12122
    SMSG_COOLDOWN_EVENT                             = 0x524A,    // 21066 - 4.0.0.12122
    CMSG_CANCEL_AURA                                = 0xDF6C,    // 57196 - 4.0.0.12065
    SMSG_EQUIPMENT_SET_SAVED                        = 0xBD61,    // 48481 - 4.0.0.12065
    SMSG_PET_CAST_FAILED                            = 0x447A,    // 17530 - 4.0.0.12122
    MSG_CHANNEL_START                               = 0x5448,    // 21576 - 4.0.0.12122
    MSG_CHANNEL_UPDATE                              = 0x8622,    // 34338 - 4.0.0.12122
    CMSG_CANCEL_CHANNELLING                         = 0x13B,
    SMSG_AI_REACTION                                = 0x4238,    // 16952 - 4.0.0.12122
    CMSG_SET_SELECTION                              = 0x13D,
    CMSG_EQUIPMENT_SET_DELETE                       = 0x8420,    // 33824 - 4.0.0.12122
    CMSG_INSTANCE_LOCK_WARNING_RESPONSE             = 0x13F,
    CMSG_UNUSED2                                    = 0x140,
    CMSG_ATTACKSWING                                = 0x141,
    CMSG_ATTACKSTOP                                 = 0x142,
    SMSG_ATTACKSTART                                = 0xD248,    // 53832 - 4.0.0.12122
    SMSG_ATTACKSTOP                                 = 0xC40C,    // 50188 - 4.0.0.12122
    SMSG_ATTACKSWING_NOTINRANGE                     = 0x547A,    // 21626 - 4.0.0.12122
    SMSG_ATTACKSWING_BADFACING                      = 0x5262,    // 21090 - 4.0.0.12122
    SMSG_INSTANCE_LOCK_WARNING_QUERY                = 0x424E,    // 16974 - 4.0.0.12122
    SMSG_ATTACKSWING_DEADTARGET                     = 0xD008,    // 53256 - 4.0.0.12122
    SMSG_ATTACKSWING_CANT_ATTACK                    = 0x823A,    // 33338 - 4.0.0.12122
    SMSG_ATTACKERSTATEUPDATE                        = 0x123E,    // 4670  - 4.0.0.12122
    SMSG_BATTLEFIELD_PORT_DENIED                    = 0xD654,    // 54868 - 4.0.0.12122
    SMSG_DAMAGE_DONE_OBSOLETE                       = 0x14C,
    SMSG_UNIT_SPELLCAST_START                       = 0x1028,    // 4136  - 4.0.0.12122
    SMSG_CANCEL_COMBAT                              = 0xC058,    // 49240 - 4.0.0.12122
    SMSG_SPELLBREAKLOG                              = 0x6C,      // 108   - 4.0.0.12122
    SMSG_SPELLHEALLOG                               = 0x60,      // 96    - 4.0.0.12122
    SMSG_SPELLENERGIZELOG                           = 0xC226,    // 49702 - 4.0.0.12122
    SMSG_BREAK_TARGET                               = 0x4034,    // 16436 - 4.0.0.12122
    CMSG_SAVE_PLAYER                                = 0x153,
    CMSG_SETDEATHBINDPOINT                          = 0x154,
    SMSG_BINDPOINTUPDATE                            = 0x5406,    // Haith
    CMSG_GETDEATHBINDZONE                           = 0x156,
    SMSG_BINDZONEREPLY                              = 0x5406,    // 21510 - 4.0.0.12122
    SMSG_PLAYERBOUND                                = 0xD02C,    // 53292 - 4.0.0.12122
    SMSG_CLIENT_CONTROL_UPDATE                      = 0x256,     // 598   - 4.0.0.12122
    CMSG_REPOP_REQUEST                              = 0x15A,
    SMSG_RESURRECT_REQUEST                          = 0x9466,    // 37990 - 4.0.0.12122
    CMSG_RESURRECT_RESPONSE                         = 0x15C,
    CMSG_LOOT                                       = 0x15D,
    CMSG_LOOT_MONEY                                 = 0x15E,
    CMSG_LOOT_RELEASE                               = 0x15F,  
    SMSG_LOOT_RESPONSE                              = 0x4268,    // 17000 - 4.0.0.12122
    SMSG_LOOT_RELEASE_RESPONSE                      = 0x9632,    // 38450 - 4.0.0.12122
    SMSG_LOOT_REMOVED                               = 0x248,     // 584   - 4.0.0.12122
    SMSG_LOOT_MONEY_NOTIFY                          = 0x562C,    // 22060 - 4.0.0.12122
    SMSG_LOOT_ITEM_NOTIFY                           = 0x4A,      // 74    - 4.0.0.12122
    SMSG_LOOT_CLEAR_MONEY                           = 0x8404,    // 33796 - 4.0.0.12122
    SMSG_ITEM_PUSH_RESULT                           = 0x924E,    // 37454 - 4.0.0.12122
    SMSG_DUEL_REQUESTED                             = 0x167,
    SMSG_DUEL_OUTOFBOUNDS                           = 0x168,
    SMSG_DUEL_INBOUNDS                              = 0x169,
    SMSG_DUEL_COMPLETE                              = 0x16A,
    SMSG_DUEL_WINNER                                = 0x16B,
    CMSG_DUEL_ACCEPTED                              = 0x16C,
    CMSG_DUEL_CANCELLED                             = 0x16D,
    SMSG_MOUNTRESULT                                = 0x863A,    // 34362 - 4.0.0.12122
    SMSG_DISMOUNTRESULT                             = 0x466E,    // 18030 - 4.0.0.12122
    SMSG_PUREMOUNT_CANCELLED_OBSOLETE               = 0x1F66,    // 8038  - 4.0.0.12065, ERR_REMOVE_FROM_PVP_QUEUE_* events
    CMSG_MOUNTSPECIAL_ANIM                          = 0x171,
    SMSG_MOUNTSPECIAL_ANIM                          = 0x5624,    // 22052 - 4.0.0.12122
    SMSG_PET_TAME_FAILURE                           = 0xD230,    // 53808 - 4.0.0.12122
    CMSG_PET_SET_ACTION                             = 0x174,
    CMSG_PET_ACTION                                 = 0x175,
    CMSG_PET_ABANDON                                = 0x176,
    CMSG_PET_RENAME                                 = 0x177,
    SMSG_PET_NAME_INVALID                           = 0x8226,    // 33318 - 4.0.0.12122
    SMSG_PET_SPELLS                                 = 0x179,
    SMSG_PET_MODE                                   = 0x17A,
    CMSG_GOSSIP_HELLO                               = 0x8476,    // 33910 - 4.0.0.12122
    CMSG_GOSSIP_SELECT_OPTION                       = 0x17C,
    SMSG_GOSSIP_MESSAGE                             = 0x17D,
    SMSG_GOSSIP_COMPLETE                            = 0x17E,
    CMSG_NPC_TEXT_QUERY                             = 0xC242,    // 49730 - 4.0.0.12122
    SMSG_NPC_TEXT_UPDATE                            = 0xD01E,    // 53278 - 4.0.0.12122
    SMSG_NPC_WONT_TALK                              = 0x181,
    CMSG_QUESTGIVER_STATUS_QUERY                    = 0x182,
    SMSG_QUESTGIVER_STATUS                          = 0xC424,    // 50212 - 4.0.0.12122
    CMSG_QUESTGIVER_HELLO                           = 0x184,
    SMSG_QUESTGIVER_QUEST_LIST                      = 0xC476,    // 50294 - 4.0.0.12122
    CMSG_QUESTGIVER_QUERY_QUEST                     = 0x186,
    CMSG_QUESTGIVER_QUEST_AUTOLAUNCH                = 0x187,
    SMSG_QUESTGIVER_QUEST_DETAILS                   = 0x564A,    // 22090 - 4.0.0.12122
    CMSG_QUESTGIVER_ACCEPT_QUEST                    = 0x189,
    CMSG_QUESTGIVER_COMPLETE_QUEST                  = 0x18A,
    SMSG_QUESTGIVER_REQUEST_ITEMS                   = 0x404E,    // 16462 - 4.0.0.12122
    CMSG_QUESTGIVER_REQUEST_REWARD                  = 0x18C,
    SMSG_QUESTGIVER_OFFER_REWARD                    = 0x1648,    // 5704  - 4.0.0.12122
    CMSG_QUESTGIVER_CHOOSE_REWARD                   = 0x18E,
    SMSG_QUESTGIVER_QUEST_INVALID                   = 0x925C,    // 37468 - 4.0.0.12122
    CMSG_QUESTGIVER_CANCEL                          = 0x190,
    SMSG_QUESTGIVER_QUEST_COMPLETE                  = 0xD26C,    // 53868 - 4.0.0.12122
    SMSG_QUESTGIVER_QUEST_FAILED                    = 0x65C,     // 1628  - 4.0.0.12122
    CMSG_QUESTLOG_SWAP_QUEST                        = 0x193,
    CMSG_QUESTLOG_REMOVE_QUEST                      = 0x194,
    SMSG_QUESTLOG_FULL                              = 0xC44C,    // 50252 - 4.0.0.12122
    SMSG_QUESTUPDATE_FAILED                         = 0x5452,    // 21586 - 4.0.0.12122
    SMSG_QUESTUPDATE_FAILEDTIMER                    = 0xC00E,    // 49166 - 4.0.0.12122
    SMSG_QUESTUPDATE_COMPLETE                       = 0x1056,    // 4182  - 4.0.0.12122
    SMSG_QUESTUPDATE_ADD_KILL                       = 0x9262,    // 37474 - 4.0.0.12122
    SMSG_QUESTUPDATE_ADD_ITEM                       = 0x19A,
    CMSG_QUEST_CONFIRM_ACCEPT                       = 0x19B,
    SMSG_QUEST_CONFIRM_ACCEPT                       = 0xC258,    // 49752 - 4.0.0.12122
    CMSG_PUSHQUESTTOPARTY                           = 0x19D,
    CMSG_LIST_INVENTORY                             = 0x19E,
    SMSG_LIST_INVENTORY                             = 0x807E,    // 32894 - 4.0.0.12122
    CMSG_SELL_ITEM                                  = 0x1A0,
    SMSG_SELL_ITEM                                  = 0xC47E,    // 50302 - 4.0.0.12122
    CMSG_BUY_ITEM                                   = 0x1A2,
    CMSG_BUY_ITEM_IN_SLOT                           = 0x1A3,
    SMSG_BUY_ITEM                                   = 0x9652,    // 38482 - 4.0.0.12122
    SMSG_BUY_FAILED                                 = 0x4264,    // 16996 - 4.0.0.12122
    CMSG_TAXICLEARALLNODES                          = 0x1A6,
    CMSG_TAXIENABLEALLNODES                         = 0x1A7,
    CMSG_TAXISHOWNODES                              = 0x1A8,
    SMSG_SHOWTAXINODES                              = 0x407E,    // 16510 - 4.0.0.12122
    CMSG_TAXINODE_STATUS_QUERY                      = 0x1AA,
    SMSG_TAXINODE_STATUS                            = 0x9612,    // 38418 - 4.0.0.12122
    CMSG_TAXIQUERYAVAILABLENODES                    = 0x1AC,
    CMSG_ACTIVATETAXI                               = 0x1AD,
    SMSG_ACTIVATETAXIREPLY                          = 0x68,      // 104   - 4.0.0.12122
    SMSG_NEW_TAXI_PATH                              = 0x961A,    // 38426 - 4.0.0.12122
    CMSG_TRAINER_LIST                               = 0x1B0,
    SMSG_TRAINER_LIST                               = 0xC238,    // 49720 - 4.0.0.12122
    CMSG_TRAINER_BUY_SPELL                          = 0x1B2,
    SMSG_TRAINER_BUY_SUCCEEDED                      = 0x1B3,
    SMSG_TRAINER_BUY_FAILED                         = 0xD61C,    // 54812 - 4.0.0.12122, uint64, uint32, uint32 (0...2)
    CMSG_BINDER_ACTIVATE                            = 0x1B5,
    SMSG_PLAYERBINDERROR                            = 0x8470,    // 33904 - 4.0.0.12122
    CMSG_BANKER_ACTIVATE                            = 0x1B7,
    SMSG_SHOW_BANK                                  = 0x5242,    // 21058 - 4.0.0.12122
    CMSG_BUY_BANK_SLOT                              = 0x1B9,
    SMSG_BUY_BANK_SLOT_RESULT                       = 0x9626,    // 38438 - 4.0.0.12122
    CMSG_PETITION_SHOWLIST                          = 0x1BB,
    SMSG_PETITION_SHOWLIST                          = 0x4648,    // 17992 - 4.0.0.12122
    CMSG_PETITION_BUY                               = 0x1BD,
    CMSG_PETITION_SHOW_SIGNATURES                   = 0x1BE,
    SMSG_PETITION_SHOW_SIGNATURES                   = 0x9200,    // 37376 - 4.0.0.12122
    CMSG_PETITION_SIGN                              = 0x1C0,
    SMSG_PETITION_SIGN_RESULTS                      = 0xD04E,    // 53326 - 4.0.0.12122
    MSG_PETITION_DECLINE                            = 0x4464,    // 17508 - 4.0.0.12122
    CMSG_OFFER_PETITION                             = 0x1C3,
    CMSG_TURN_IN_PETITION                           = 0x1C4,
    SMSG_TURN_IN_PETITION_RESULTS                   = 0x1474,    // 5236  - 4.0.0.12122
    CMSG_PETITION_QUERY                             = 0x1232,    // 4658  - 4.0.0.12122
    SMSG_PETITION_QUERY_RESPONSE                    = 0xD61A,    // 54810 - 4.0.0.12122
    SMSG_FISH_NOT_HOOKED                            = 0xD66C,    // 54892 - 4.0.0.12122
    SMSG_FISH_ESCAPED                               = 0xC25E,    // 49758 - 4.0.0.12122
    CMSG_BUG                                        = 0x1CA,
    SMSG_NOTIFICATION                               = 0x1458,    // 5208  - 4.0.0.12122
    CMSG_PLAYED_TIME                                = 0x560E,    // 22030 - 4.0.0.12122
    SMSG_PLAYED_TIME                                = 0x442C,    // 17452 - 4.0.0.12122
    CMSG_QUERY_TIME                                 = 0xF967,    // 63847 - 4.0.0.12065
    SMSG_QUERY_TIME_RESPONSE                        = 0x3D6B,    // 15723 - 4.0.0.12065
    SMSG_LOG_XPGAIN                                 = 0x8FE9,    // 36841 - 4.0.0.12065
    SMSG_AURACASTLOG                                = 0x1D1,
    CMSG_RECLAIM_CORPSE                             = 0x1D2,
    CMSG_WRAP_ITEM                                  = 0x1D3,
    SMSG_LEVELUP_INFO                               = 0xC41E,    // 50206 - 4.0.0.12122
    MSG_MINIMAP_PING                                = 0x9424,    // 37924 - 4.0.0.12122
    SMSG_RESISTLOG                                  = 0x1D6,
    SMSG_ENCHANTMENTLOG                             = 0x9434,    // 37940 - 4.0.0.12122
    CMSG_SET_SKILL_CHEAT                            = 0x1D8,
    SMSG_START_MIRROR_TIMER                         = 0x9B6B,    // 39787 - 4.0.0.12065
    SMSG_PAUSE_MIRROR_TIMER                         = 0x9DE5,    // 40421 - 4.0.0.12065
    SMSG_STOP_MIRROR_TIMER                          = 0x7B65,    // 31589 - 4.0.0.12065
    CMSG_PING                                       = 0x7FE5,    // 32741 - 4.0.0.12065
    SMSG_PONG                                       = 0xDD61,    // 56673 - 4.0.0.12065
    SMSG_CLEAR_COOLDOWN                             = 0x5220,    // 21024 - 4.0.0.12122
    SMSG_GAMEOBJECT_PAGETEXT                        = 0x8436,    // 33846 - 4.0.0.12122
    CMSG_SETSHEATHED                                = 0x1E0,
    SMSG_COOLDOWN_CHEAT                             = 0xD650,    // 54864 - 4.0.0.12122
    SMSG_SPELL_DELAYED                              = 0x9208,    // 37384 - 4.0.0.12122
    CMSG_QUEST_POI_QUERY                            = 0x1E3,
    SMSG_QUEST_POI_QUERY_RESPONSE                   = 0xD266,    // 53862 - 4.0.0.12122
    CMSG_GHOST                                      = 0x1E5,
    CMSG_GM_INVIS                                   = 0x1E6,
    SMSG_INVALID_PROMOTION_CODE                     = 0xF9E4,    // 63972 - 4.0.0.12065
    MSG_GM_BIND_OTHER                               = 0x1E8,
    MSG_GM_SUMMON                                   = 0x1E9,
    SMSG_ITEM_TIME_UPDATE                           = 0x9678,    // 38520 - 4.0.0.12122
    SMSG_ITEM_ENCHANT_TIME_UPDATE                   = 0x5668,    // 22120 - 4.0.0.12122
	SMSG_AUTH_CHALLENGE           = 0x8924,
	CMSG_AUTH_SESSION             = 0xA000,			//Added from MMOWNED post - This line worked
	SMSG_AUTH_RESPONSE            = 0x442,     //Working
	/*SMSG_AUTH_CHALLENGE                             = 0xA000,     // 1090  - 4.0.0.12122 
    CMSG_AUTH_SESSION                               = 0x99EC,    //       - 4.0.0.12122
    SMSG_AUTH_RESPONSE                              = 0x442,    // 53364 - 4.0.0.12122*/
    MSG_GM_SHOWLABEL                                = 0x1EF,
    CMSG_PET_CAST_SPELL                             = 0x1F0,
    MSG_SAVE_GUILD_EMBLEM                           = 0x446,     // 1094  - 4.0.0.12122
    MSG_TABARDVENDOR_ACTIVATE                       = 0x863C,    // 34364 - 4.0.0.12122
    SMSG_PLAY_SPELL_VISUAL                          = 0xC222,    // 49698 - 4.0.0.12122
    CMSG_ZONEUPDATE                                 = 0x9FE7,    // 40935  - 4.0.0.12065
    SMSG_PARTYKILLLOG                               = 0x9608,    // 38408 - 4.0.0.12122
    SMSG_COMPRESSED_UPDATE_OBJECT                   = 0x9468,    // Haith
    SMSG_PLAY_SPELL_IMPACT                          = 0x9468,    // 48494  - 4.0.0.12065
    SMSG_EXPLORATION_EXPERIENCE                     = 0x863A,    // 34362 - 4.0.0.12122
    CMSG_GM_SET_SECURITY_GROUP                      = 0x1F9,
    CMSG_GM_NUKE                                    = 0x1FA,
    MSG_RANDOM_ROLL                                 = 0x5652,    // 22098 - 4.0.0.12122
    SMSG_ENVIRONMENTALDAMAGELOG                     = 0x1054,    // 4180  - 4.0.0.12122
    CMSG_PLAYER_DIFFICULTY_CHANGE                   = 0x1FD,
    SMSG_RWHOIS                                     = 0x9022,    // 36898 - 4.0.0.12122
    SMSG_LFG_PLAYER_REWARD                          = 0x1FF,     // uint32, uint8, uint32, uint32, uint32, uint32, uint32, uint8, for(uint8) {uint32,uint32,uint32}
    SMSG_LFG_TELEPORT_DENIED                        = 0x200,     // uint32 (1,2,4,6;0,5,7)
    CMSG_UNLEARN_SPELL                              = 0x201,
    CMSG_UNLEARN_SKILL                              = 0x202,
    SMSG_REMOVED_SPELL                              = 0x4440,    // 17472 - 4.0.0.12122
    CMSG_DECHARGE                                   = 0x204,
    CMSG_GMTICKET_CREATE                            = 0x2BEC,    // 11244  - 4.0.0.12065
    SMSG_GMTICKET_CREATE                            = 0xFDE2,    // 64994  - 4.0.0.12065
    CMSG_GMTICKET_UPDATETEXT                        = 0x207,
    SMSG_GMTICKET_UPDATETEXT                        = 0x9FE0,    // 40928  - 4.0.0.12065
    SMSG_ACCOUNT_DATA_TIMES                         = 0xD632,    // 54834  - 4.0.0.12122
    CMSG_REQUEST_ACCOUNT_DATA                       = 0x20A,
    CMSG_UPDATE_ACCOUNT_DATA                        = 0x9622,    // 38434 - 4.0.0.12122
    SMSG_UPDATE_ACCOUNT_DATA                        = 0xD442,    // 54338 - 4.0.0.12122
    SMSG_CLEAR_FAR_SIGHT_IMMEDIATE                  = 0xC45C,    // 50268 - 4.0.0.12122
    SMSG_PLAYER_DIFFICULTY_CHANGE                   = 0x20E,
    CMSG_GM_TEACH                                   = 0x20F,
    CMSG_GM_CREATE_ITEM_TARGET                      = 0x210,
    CMSG_GMTICKET_GETTICKET                         = 0x6B6E,    // 27502  - 4.0.0.12065
    SMSG_GMTICKET_GETTICKET                         = 0x8D69,    // 36201  - 4.0.0.12065
    CMSG_UNLEARN_TALENTS                            = 0x213,
    SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE             = 0x214,
    SMSG_GAMEOBJECT_DESPAWN_ANIM                    = 0x460C,    // 17932 - 4.0.0.12122
    MSG_CORPSE_QUERY                                = 0x39E3,    // 14819 - 4.0.0.12065
    CMSG_GMTICKET_DELETETICKET                      = 0x217,
    SMSG_GMTICKET_DELETETICKET                      = 0x9B60,    // 39776  - 4.0.0.12065
    SMSG_CHAT_WRONG_FACTION                         = 0xD05A,    // 53338 - 4.0.0.12122
    CMSG_GMTICKET_SYSTEMSTATUS                      = 0x21A,
    SMSG_GMTICKET_SYSTEMSTATUS                      = 0x1076,    // 4214  - 4.0.0.12122
    CMSG_SPIRIT_HEALER_ACTIVATE                     = 0x21C,
    CMSG_SET_STAT_CHEAT                             = 0x21D,
    SMSG_QUEST_FORCE_REMOVED                        = 0xD61E,    // 54814 - 4.0.0.12122, uint32 questid
    CMSG_SKILL_BUY_STEP                             = 0x21F,
    CMSG_SKILL_BUY_RANK                             = 0x220,
    CMSG_XP_CHEAT                                   = 0x221,
    SMSG_SPIRIT_HEALER_CONFIRM                      = 0x8410,    // 33808 - 4.0.0.12122
    CMSG_CHARACTER_POINT_CHEAT                      = 0x223,
    SMSG_GOSSIP_POI                                 = 0x224,
    CMSG_CHAT_IGNORED                               = 0x225,
    CMSG_GM_VISION                                  = 0x226,
    CMSG_SERVER_COMMAND                             = 0x227,
    CMSG_GM_SILENCE                                 = 0x228,
    CMSG_GM_REVEALTO                                = 0x229,
    CMSG_GM_RESURRECT                               = 0x22A,
    CMSG_GM_SUMMONMOB                               = 0x22B,
    CMSG_GM_MOVECORPSE                              = 0x22C,
    CMSG_GM_FREEZE                                  = 0x22D,
    CMSG_GM_UBERINVIS                               = 0x22E,
    CMSG_GM_REQUEST_PLAYER_INFO                     = 0xCBE7,    // 52199  - 4.0.0.12065
    SMSG_GM_PLAYER_INFO                             = 0x5DE0,    // 24032  - 4.0.0.12065
    CMSG_GUILD_RANK                                 = 0x231,
    CMSG_GUILD_ADD_RANK                             = 0x232,
    CMSG_GUILD_DEL_RANK                             = 0x233,
    CMSG_GUILD_SET_PUBLIC_NOTE                      = 0x234,
    CMSG_GUILD_SET_OFFICER_NOTE                     = 0x235,
    SMSG_LOGIN_VERIFY_WORLD                         = 0x5612,    // 22034  - 4.0.0.12122
    CMSG_CLEAR_EXPLORATION                          = 0x237,
    CMSG_SEND_MAIL                                  = 0x238,
    SMSG_SEND_MAIL_RESULT                           = 0x239,
    CMSG_GET_MAIL_LIST                              = 0x23A,
    SMSG_MAIL_LIST_RESULT                           = 0x23B,
    CMSG_BATTLEFIELD_LIST                           = 0xA9E7,    // 43495  - 4.0.0.12065
    SMSG_BATTLEFIELD_LIST                           = 0x23D,
    CMSG_BATTLEFIELD_JOIN                           = 0x8F68,    // 36712  - 4.0.0.12065
    SMSG_BATTLEFIELD_WIN_OBSOLETE                   = 0xD01C,    // 53276  - 4.0.0.12122
    SMSG_BATTLEFIELD_LOSE_OBSOLETE                  = 0x240,
    CMSG_TAXICLEARNODE                              = 0x241,
    CMSG_TAXIENABLENODE                             = 0x242,
    CMSG_ITEM_TEXT_QUERY                            = 0x0456,    // 1110   - 4.0.0.12122
    SMSG_ITEM_TEXT_QUERY_RESPONSE                   = 0xD252,    // 53842  - 4.0.0.12122
    CMSG_MAIL_TAKE_MONEY                            = 0x245,
    CMSG_MAIL_TAKE_ITEM                             = 0x246,
    CMSG_MAIL_MARK_AS_READ                          = 0x247,
    CMSG_MAIL_RETURN_TO_SENDER                      = 0x248,
    CMSG_MAIL_DELETE                                = 0x249,
    CMSG_MAIL_CREATE_TEXT_ITEM                      = 0x24A,
    SMSG_SPELLLOGMISS                               = 0x67C,     // 1660  - 4.0.0.12122
    SMSG_SPELLLOGEXECUTE                            = 0x140E,    // 5134  - 4.0.0.12122
    SMSG_DEBUGAURAPROC                              = 0x24D,
    SMSG_PERIODICAURALOG                            = 0x101C,    // 4124  - 4.0.0.12122
    SMSG_SPELLDAMAGESHIELD                          = 0xC240,    // 49728 - 4.0.0.12122
    SMSG_SPELLNONMELEEDAMAGELOG                     = 0x1466,    // 5222  - 4.0.0.12122
    CMSG_LEARN_TALENT                               = 0xDBE2,    // 56290  - 4.0.0.12065
    SMSG_RESURRECT_FAILED                           = 0x565C,    // 22108 - 4.0.0.12122
    CMSG_TOGGLE_PVP                                 = 0x8B6D,    // 35693  - 4.0.0.12065
    SMSG_ZONE_UNDER_ATTACK                          = 0x6B6F,    // 27503  - 4.0.0.12065
    MSG_AUCTION_HELLO                               = 0x255,
    CMSG_AUCTION_SELL_ITEM                          = 0x256,
    CMSG_AUCTION_REMOVE_ITEM                        = 0x257,
    CMSG_AUCTION_LIST_ITEMS                         = 0x258,
    CMSG_AUCTION_LIST_OWNER_ITEMS                   = 0x259,
    CMSG_AUCTION_PLACE_BID                          = 0x25A,
    SMSG_AUCTION_COMMAND_RESULT                     = 0x25B,
    SMSG_AUCTION_LIST_RESULT                        = 0x25C,
    SMSG_AUCTION_OWNER_LIST_RESULT                  = 0x25D,
    SMSG_AUCTION_BIDDER_NOTIFICATION                = 0x25E,
    SMSG_AUCTION_OWNER_NOTIFICATION                 = 0x25F,
    SMSG_PROCRESIST                                 = 0x8662,    // 34402 - 4.0.0.12122
    SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE         = 0x9234,    // 37428 - 4.0.0.12122
    SMSG_DISPEL_FAILED                              = 0x9210,    // 37392 - 4.0.0.12122
    SMSG_SPELLORDAMAGE_IMMUNE                       = 0x4032,    // 16434 - 4.0.0.12122
    CMSG_AUCTION_LIST_BIDDER_ITEMS                  = 0x264,
    SMSG_AUCTION_BIDDER_LIST_RESULT                 = 0x265,
    SMSG_SET_FLAT_SPELL_MODIFIER                    = 0x504A,    // 20554 - 4.0.0.12122
    SMSG_SET_PCT_SPELL_MODIFIER                     = 0x4672,    // 18034 - 4.0.0.12122
    CMSG_SET_AMMO                                   = 0x268,
    SMSG_CORPSE_RECLAIM_DELAY                       = 0xFBEC,    // 64492 - 4.0.0.12065
    CMSG_SET_ACTIVE_MOVER                           = 0xC64A,    // 50762 - 4.0.0.12122
    CMSG_PET_CANCEL_AURA                            = 0x26B,
    CMSG_PLAYER_AI_CHEAT                            = 0x26C,
    CMSG_CANCEL_AUTO_REPEAT_SPELL                   = 0x26D,
    MSG_GM_ACCOUNT_ONLINE                           = 0x26E,
    MSG_LIST_STABLED_PETS                           = 0x26F,
    CMSG_STABLE_PET                                 = 0x270,
    CMSG_UNSTABLE_PET                               = 0x271,
    CMSG_BUY_STABLE_SLOT                            = 0x272,
    SMSG_STABLE_RESULT                              = 0x273,
    CMSG_STABLE_REVIVE_PET                          = 0x274,
    CMSG_STABLE_SWAP_PET                            = 0x275,
    MSG_QUEST_PUSH_RESULT                           = 0x1240,    // 4672  - 4.0.0.12122
    SMSG_PLAY_MUSIC                                 = 0xCBE7,    // 52199 - 4.0.0.12065
    SMSG_PLAY_OBJECT_SOUND                          = 0x396B,    // 14699 - 4.0.0.12065
    CMSG_REQUEST_PET_INFO                           = 0x279,
    CMSG_FAR_SIGHT                                  = 0x27A,
    SMSG_SPELLDISPELLOG                             = 0x1468,    // 5224  - 4.0.0.12122
    SMSG_DAMAGE_CALC_LOG                            = 0xC470,    // 50288 - 4.0.0.12122
    CMSG_ENABLE_DAMAGE_LOG                          = 0x27D,
    CMSG_GROUP_CHANGE_SUB_GROUP                     = 0x27E,
    CMSG_REQUEST_PARTY_MEMBER_STATS                 = 0x27F,
    CMSG_GROUP_SWAP_SUB_GROUP                       = 0x280,
    CMSG_RESET_FACTION_CHEAT                        = 0x281,
    CMSG_AUTOSTORE_BANK_ITEM                        = 0x282,
    CMSG_AUTOBANK_ITEM                              = 0x283,
    MSG_QUERY_NEXT_MAIL_TIME                        = 0x6FE1,    // 28641 - 4.0.0.12065
    SMSG_RECEIVED_MAIL                              = 0x285,
    SMSG_RAID_GROUP_ONLY                            = 0xC026,    // 49190 - 4.0.0.12122
    CMSG_SET_DURABILITY_CHEAT                       = 0x287,
    CMSG_SET_PVP_RANK_CHEAT                         = 0x288,
    CMSG_ADD_PVP_MEDAL_CHEAT                        = 0x289,
    CMSG_DEL_PVP_MEDAL_CHEAT                        = 0x28A,
    CMSG_SET_PVP_TITLE                              = 0x28B,
    SMSG_PVP_CREDIT                                 = 0xDF61,    // 57185 - 4.0.0.12065
    SMSG_AUCTION_REMOVED_NOTIFICATION               = 0x28D,
    CMSG_GROUP_RAID_CONVERT                         = 0x28E,
    CMSG_GROUP_ASSISTANT_LEADER                     = 0x28F,
    CMSG_BUYBACK_ITEM                               = 0x290,
    SMSG_SERVER_MESSAGE                             = 0x4DE3,    // 19939 - 4.0.0.12065
    CMSG_SET_SAVED_INSTANCE_EXTEND                  = 0x292,     // lua: SetSavedInstanceExtend
    SMSG_LFG_OFFER_CONTINUE                         = 0x293,
    CMSG_MEETINGSTONE_CHEAT                         = 0x294,     // not found 3.3
    SMSG_MEETINGSTONE_SETQUEUE                      = 0x925A,    // 37466 - 4.0.0.12122, string, showed in console
    CMSG_MEETINGSTONE_INFO                          = 0x3B60,    // 15200 - 4.0.0.12065, EVENT_LFG_UPDATE
    SMSG_MEETINGSTONE_COMPLETE                      = 0x297,     // mail open from gossip?, EVENT_MAIL_SHOW
    SMSG_MEETINGSTONE_IN_PROGRESS                   = 0x36BD,    // 14013 - 4.0.0.12065, uint32, some UPDATE_COOLDOWN events
    SMSG_MEETINGSTONE_MEMBER_ADDED                  = 0xC430,    // 50224 - 4.0.0.12122, uint32, errors: ERR_NOT_IN_GROUP (2,51) and ERR_NOT_IN_RAID (3,39,40)
    CMSG_GMTICKETSYSTEM_TOGGLE                      = 0x29A,
    CMSG_CANCEL_GROWTH_AURA                         = 0x29B,
    SMSG_CANCEL_AUTO_REPEAT                         = 0x4228,    // 16936 - 4.0.0.12122
    SMSG_STANDSTATE_UPDATE                          = 0x448,     // 1096  - 4.0.0.12122
    SMSG_LOOT_ALL_PASSED                            = 0x5250,    // 21072 - 4.0.0.12122
    SMSG_LOOT_ROLL_WON                              = 0x5022,    // 20514 - 4.0.0.12122
    CMSG_LOOT_ROLL                                  = 0x2A0,
    SMSG_LOOT_START_ROLL                            = 0x7C,      // 124   - 4.0.0.12122
    SMSG_LOOT_ROLL                                  = 0x542A,    // 21546 - 4.0.0.12122
    CMSG_LOOT_MASTER_GIVE                           = 0x2A3,
    SMSG_LOOT_MASTER_LIST                           = 0xD25E,    // 53854 - 4.0.0.12122
    SMSG_SET_FORCED_REACTIONS                       = 0x19E5,    // 6629  - 4.0.0.12065
    SMSG_SPELL_FAILED_OTHER                         = 0x545A,    // 21594 - 4.0.0.12122
    SMSG_GAMEOBJECT_RESET_STATE                     = 0x466C,    // 18028 - 4.0.0.12122
    CMSG_REPAIR_ITEM                                = 0x2A8,
    SMSG_CHAT_PLAYER_NOT_FOUND                      = 0x4274,    // 17012 - 4.0.0.12122
    MSG_TALENT_WIPE_CONFIRM                         = 0x652,     // 1618  - 4.0.0.12122
    SMSG_SUMMON_REQUEST                             = 0xD404,    // 54276 - 4.0.0.12122
    CMSG_SUMMON_RESPONSE                            = 0x2AC,
    MSG_MOVE_TOGGLE_GRAVITY_CHEAT                   = 0x2AD,
    SMSG_MONSTER_MOVE_TRANSPORT                     = 0x966A,    // 38506 - 4.0.0.12122
    SMSG_PET_BROKEN                                 = 0x2AF,
    MSG_MOVE_FEATHER_FALL                           = 0x5234,    // 21044 - 4.0.0.12122
    MSG_MOVE_WATER_WALK                             = 0x646,     // 1606  - 4.0.0.12122
    CMSG_SERVER_BROADCAST                           = 0x2B2,
    CMSG_SELF_RES                                   = 0x2B3,
    SMSG_FEIGN_DEATH_RESISTED                       = 0x424,     // 1060  - 4.0.0.12122
    CMSG_RUN_SCRIPT                                 = 0x2B5,
    SMSG_SCRIPT_MESSAGE                             = 0x2B6,
    SMSG_DUEL_COUNTDOWN                             = 0x2B7,
    SMSG_AREA_TRIGGER_MESSAGE                       = 0x6DE3,    // 28131 - 4.0.0.12065
    CMSG_SHOWING_HELM                               = 0x2B9,
    CMSG_SHOWING_CLOAK                              = 0x2BA,
    SMSG_LFG_ROLE_CHOSEN                            = 0x2BB,
    SMSG_PLAYER_SKINNED                             = 0xC622,    // 50722 - 4.0.0.12122
    SMSG_DURABILITY_DAMAGE_DEATH                    = 0x2B60,    // 11104 - 4.0.0.12065
    CMSG_SET_EXPLORATION                            = 0x2BE,
    CMSG_SET_ACTIONBAR_TOGGLES                      = 0xADE3,    // 44515 - 4.0.0.12065
    UMSG_DELETE_GUILD_CHARTER                       = 0x2C0,
    MSG_PETITION_RENAME                             = 0x4078,    // 16504 - 4.0.0.12122
    //SMSG_INIT_WORLD_STATES                          = 0xC967,    // 51559 - 4.0.0.12065
	SMSG_INIT_WORLD_STATES = 0x8406,							 //Haith - World States
    //SMSG_UPDATE_WORLD_STATE                         = 0x1440,    // 5184  - 4.0.0.12122	
	SMSG_UPDATE_WORLD_STATE = 0x4672,
    CMSG_ITEM_NAME_QUERY                            = 0xD40E,    // 54286 - 4.0.0.12122
    SMSG_ITEM_NAME_QUERY_RESPONSE                   = 0x104A,    // 4170  - 4.0.0.12122
    SMSG_PET_ACTION_FEEDBACK                        = 0x2C6,
    CMSG_CHAR_RENAME                                = 0x2C7,
    SMSG_CHAR_RENAME                                = 0x8210,    // 33296 - 4.0.0.12122
    CMSG_MOVE_SPLINE_DONE                           = 0x2C9,
    CMSG_MOVE_FALL_RESET                            = 0x2CA,
    SMSG_INSTANCE_SAVE_CREATED                      = 0x2CB,
    SMSG_RAID_INSTANCE_INFO                         = 0x9960,    // 39264 - 4.0.0.12065
    CMSG_REQUEST_RAID_INFO                          = 0x9B6A,    // 39786 - 4.0.0.12065
    CMSG_MOVE_TIME_SKIPPED                          = 0x9FEA,    // 40938 - 4.0.0.12065
    CMSG_MOVE_FEATHER_FALL_ACK                      = 0x2CF,
    CMSG_MOVE_WATER_WALK_ACK                        = 0x2D0,
    CMSG_MOVE_NOT_ACTIVE_MOVER                      = 0x2D1,
    SMSG_PLAY_SOUND                                 = 0x0278,    // 632   - 4.0.0.12122
    CMSG_BATTLEFIELD_STATUS                         = 0x2BE4,    // 11236 - 4.0.0.12065
    SMSG_BATTLEFIELD_STATUS                         = 0x2D4,
    CMSG_BATTLEFIELD_PORT                           = 0x2D5,
    MSG_INSPECT_HONOR_STATS                         = 0x2D6,
    CMSG_BATTLEMASTER_HELLO                         = 0x2D7,
    CMSG_MOVE_START_SWIM_CHEAT                      = 0x2D8,
    CMSG_MOVE_STOP_SWIM_CHEAT                       = 0x2D9,
    SMSG_FORCE_WALK_SPEED_CHANGE                    = 0x5226,    // 21030 - 4.0.0.12122
    CMSG_FORCE_WALK_SPEED_CHANGE_ACK                = 0x2DB,
    SMSG_FORCE_SWIM_BACK_SPEED_CHANGE               = 0x8458,    // 33880 - 4.0.0.12122
    CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK           = 0x2DD,
    SMSG_FORCE_TURN_RATE_CHANGE                     = 0x945E,    // 37982 - 4.0.0.12122
    CMSG_FORCE_TURN_RATE_CHANGE_ACK                 = 0x2DF,
    MSG_PVP_LOG_DATA                                = 0x2E0,
    CMSG_LEAVE_BATTLEFIELD                          = 0x2E1,
    CMSG_AREA_SPIRIT_HEALER_QUERY                   = 0x2E2,
    CMSG_AREA_SPIRIT_HEALER_QUEUE                   = 0x2E3,
    SMSG_AREA_SPIRIT_HEALER_TIME                    = 0x2DEE,    // 11758 - 4.0.0.12065
    CMSG_GM_UNTEACH                                 = 0x2E5,
    SMSG_WARDEN_DATA                                = 0x1026,    // 4134  - 4.0.0.12122
    CMSG_WARDEN_DATA                                = 0x2E7,
    SMSG_GROUP_JOINED_BATTLEGROUND                  = 0x2E8,
    MSG_BATTLEGROUND_PLAYER_POSITIONS               = 0x2E9,
    CMSG_PET_STOP_ATTACK                            = 0x2EA,
    SMSG_BINDER_CONFIRM                             = 0x162E,    // 5678  - 4.0.0.12122
    SMSG_BATTLEGROUND_PLAYER_JOINED                 = 0x2EC,
    SMSG_BATTLEGROUND_PLAYER_LEFT                   = 0x2ED,
    CMSG_BATTLEMASTER_JOIN                          = 0x2EE,
    SMSG_ADDON_INFO                                 = 0xD074,    // 53364 - 4.0.0.12122
    CMSG_PET_UNLEARN                                = 0x2F0,
    SMSG_PET_UNLEARN_CONFIRM                        = 0x2F1,
    SMSG_PARTY_MEMBER_STATS_FULL                    = 0x1212,    // 4626  - 4.0.0.12122
    CMSG_PET_SPELL_AUTOCAST                         = 0x2F3,
    SMSG_WEATHER                                    = 0xDF61,    // 57185 - 4.0.0.12065
    SMSG_PLAY_TIME_WARNING                          = 0x5418,    // 21528 - 4.0.0.12122
    SMSG_MINIGAME_SETUP                             = 0x2F6,
    SMSG_MINIGAME_STATE                             = 0x2F7,
    CMSG_MINIGAME_MOVE                              = 0x2F8,
    SMSG_MINIGAME_MOVE_FAILED                       = 0x2F9,
    SMSG_RAID_INSTANCE_MESSAGE                      = 0xD969,    // 55657 - 4.0.0.12065
    SMSG_COMPRESSED_MOVES                           = 0x49E0,    // Haith
    CMSG_GUILD_INFO_TEXT                            = 0x2FC,
    SMSG_CHAT_RESTRICTED                            = 0x8034,    // 32820 - 4.0.0.12122
    SMSG_SPLINE_SET_RUN_SPEED                       = 0x901A,    // 36890 - 4.0.0.12122
    SMSG_SPLINE_SET_RUN_BACK_SPEED                  = 0x670,     // 1648  - 4.0.0.12122
    SMSG_SPLINE_SET_SWIM_SPEED                      = 0x8020,    // 32800 - 4.0.0.12122
    SMSG_SPLINE_SET_WALK_SPEED                      = 0xD64C,    // 54860 - 4.0.0.12122
    SMSG_SPLINE_SET_SWIM_BACK_SPEED                 = 0x160C,    // 5644  - 4.0.0.12122
    SMSG_SPLINE_SET_TURN_RATE                       = 0xC06E,    // 49262 - 4.0.0.12122
    SMSG_SPLINE_MOVE_UNROOT                         = 0xD07A,    // 53370 - 4.0.0.12122
    SMSG_SPLINE_MOVE_FEATHER_FALL                   = 0xC43A,    // 50234 - 4.0.0.12122
    SMSG_SPLINE_MOVE_NORMAL_FALL                    = 0x8248,    // 33352 - 4.0.0.12122
    SMSG_SPLINE_MOVE_SET_HOVER                      = 0x4250,    // 16976 - 4.0.0.12122
    SMSG_SPLINE_MOVE_UNSET_HOVER                    = 0x1406,    // 5126  - 4.0.0.12122
    SMSG_SPLINE_MOVE_WATER_WALK                     = 0x566C,    // 22124 - 4.0.0.12122
    SMSG_SPLINE_MOVE_LAND_WALK                      = 0x668,     // 1640  - 4.0.0.12122
    SMSG_SPLINE_MOVE_START_SWIM                     = 0x8644,    // 34372 - 4.0.0.12122
    SMSG_SPLINE_MOVE_STOP_SWIM                      = 0xC05A,    // 49242 - 4.0.0.12122
    SMSG_SPLINE_MOVE_SET_RUN_MODE                   = 0xD430,    // 54320 - 4.0.0.12122
    SMSG_SPLINE_MOVE_SET_WALK_MODE                  = 0x1638,    // 5688  - 4.0.0.12122
    CMSG_GM_NUKE_ACCOUNT                            = 0x30F,
    MSG_GM_DESTROY_CORPSE                           = 0x310,
    CMSG_GM_DESTROY_ONLINE_CORPSE                   = 0x311,
    CMSG_ACTIVATETAXIEXPRESS                        = 0x312,
    SMSG_SET_FACTION_ATWAR                          = 0x8D60,    // 36192 - 4.0.0.12065
    SMSG_GAMETIMEBIAS_SET                           = 0x314,
    CMSG_DEBUG_ACTIONS_START                        = 0x315,
    CMSG_DEBUG_ACTIONS_STOP                         = 0x316,
    CMSG_SET_FACTION_INACTIVE                       = 0xC96D,    // 51565 - 4.0.0.12065
    CMSG_SET_WATCHED_FACTION                        = 0xD96A,    // 55658 - 4.0.0.12065
    MSG_MOVE_TIME_SKIPPED                           = 0x5604,    // 22020 - 4.0.0.12122
    SMSG_SPLINE_MOVE_ROOT                           = 0x843A,    // 33850 - 4.0.0.12122
    CMSG_SET_EXPLORATION_ALL                        = 0x31B,
    SMSG_INVALIDATE_PLAYER                          = 0x4466,    // 17510 - 4.0.0.12122
    CMSG_RESET_INSTANCES                            = 0xBF6B,    // 49003 - 4.0.0.12065
    SMSG_INSTANCE_RESET                             = 0xCBEA,    // 52202 - 4.0.0.12065
    SMSG_INSTANCE_RESET_FAILED                      = 0xABE9,    // 44009 - 4.0.0.12065
    SMSG_UPDATE_LAST_INSTANCE                       = 0x2F61,    // 12129 - 4.0.0.12065
    MSG_RAID_TARGET_UPDATE                          = 0x321,
    MSG_RAID_READY_CHECK                            = 0x322,
    CMSG_LUA_USAGE                                  = 0x323,
    SMSG_PET_ACTION_SOUND                           = 0x9000,    // 36864 - 4.0.0.12122
    SMSG_PET_DISMISS_SOUND                          = 0x9428,    // 37928 - 4.0.0.12122
    SMSG_GHOSTEE_GONE                               = 0x326,
    CMSG_GM_UPDATE_TICKET_STATUS                    = 0x327,
    SMSG_GM_TICKET_STATUS_UPDATE                    = 0xAF67,    // 44903 - 4.0.0.12065
    MSG_SET_DUNGEON_DIFFICULTY                      = 0x2D6C,    // 11628 - 4.0.0.12065
    CMSG_GMSURVEY_SUBMIT                            = 0x32A,
    SMSG_UPDATE_INSTANCE_OWNERSHIP                  = 0x4F6B,    // 20331 - 4.0.0.12065
    CMSG_IGNORE_KNOCKBACK_CHEAT                     = 0x32C,
    SMSG_CHAT_PLAYER_AMBIGUOUS                      = 0x32D,
    MSG_DELAY_GHOST_TELEPORT                        = 0x32E,
    SMSG_SPELLINSTAKILLLOG                          = 0x6E,      // 110   - 4.0.0.12122
    SMSG_SPELL_UPDATE_CHAIN_TARGETS                 = 0x43A,     // 1082  - 4.0.0.12122
    CMSG_CHAT_FILTERED                              = 0x331,
    SMSG_EXPECTED_SPAM_RECORDS                      = 0x3FE3,    // 16355 - 4.0.0.12065
    SMSG_SPELLSTEALLOG                              = 0xC602,    // 50690 - 4.0.0.12122
    CMSG_LOTTERY_QUERY_OBSOLETE                     = 0x334,
    SMSG_LOTTERY_QUERY_RESULT_OBSOLETE              = 0x335,
    CMSG_BUY_LOTTERY_TICKET_OBSOLETE                = 0x336,
    SMSG_LOTTERY_RESULT_OBSOLETE                    = 0x337,
    SMSG_CHARACTER_PROFILE                          = 0x338,
    SMSG_CHARACTER_PROFILE_REALM_CONNECTED          = 0x339,
    SMSG_DEFENSE_MESSAGE                            = 0x8DEB,    // 36331 - 4.0.0.12065
    SMSG_INSTANCE_DIFFICULTY                        = 0x7F60,    // 32608 - 4.0.0.12065
    MSG_GM_RESETINSTANCELIMIT                       = 0x33C,
    SMSG_MOTD                                       = 0x5218,    // Haith
    SMSG_MOVE_SET_FLIGHT                            = 0x8658,    // 34392 - 4.0.0.12122
    SMSG_MOVE_UNSET_FLIGHT                          = 0x5254,    // 21076 - 4.0.0.12122
    CMSG_MOVE_FLIGHT_ACK                            = 0x340,
    MSG_MOVE_START_SWIM_CHEAT                       = 0x60C,     // 1548  - 4.0.0.12122
    MSG_MOVE_STOP_SWIM_CHEAT                        = 0x9462,    // 37986 - 4.0.0.12122
    SMSG_MOVE_SET_CAN_FLY                           = 0xD63C,    // 54844 - 4.0.0.12122
    SMSG_MOVE_UNSET_CAN_FLY                         = 0x5626,    // 22054 - 4.0.0.12122
    CMSG_MOVE_SET_CAN_FLY_ACK                       = 0xC9E9,    // 51689 - 4.0.0.12065
    CMSG_MOVE_SET_FLY                               = 0x346,
    CMSG_SOCKET_GEMS                                = 0x347,
    CMSG_ARENA_TEAM_CREATE                          = 0x348,
    SMSG_ARENA_TEAM_COMMAND_RESULT                  = 0x864C,    // 34380 - 4.0.0.12122
    UMSG_UPDATE_ARENA_TEAM_OBSOLETE                 = 0x9258,    // 37464 - 4.0.0.12122
    CMSG_ARENA_TEAM_QUERY                           = 0x5276,    // 21110 - 4.0.0.12122
    SMSG_ARENA_TEAM_QUERY_RESPONSE                  = 0x4262,    // 16994 - 4.0.0.12122
    CMSG_ARENA_TEAM_ROSTER                          = 0x34D,
    SMSG_ARENA_TEAM_ROSTER                          = 0x34E,
    CMSG_ARENA_TEAM_INVITE                          = 0x34F,
    SMSG_ARENA_TEAM_INVITE                          = 0x5E,      // 94    - 4.0.0.12122
    CMSG_ARENA_TEAM_ACCEPT                          = 0x351,
    CMSG_ARENA_TEAM_DECLINE                         = 0x352,
    CMSG_ARENA_TEAM_LEAVE                           = 0x353,
    CMSG_ARENA_TEAM_REMOVE                          = 0x354,
    CMSG_ARENA_TEAM_DISBAND                         = 0x355,
    CMSG_ARENA_TEAM_LEADER                          = 0x356,
    SMSG_ARENA_TEAM_EVENT                           = 0x4222,    // 16930 - 4.0.0.12122
    CMSG_BATTLEMASTER_JOIN_ARENA                    = 0x358,
    MSG_MOVE_START_ASCEND                           = 0x905C,    // 36956 - 4.0.0.12122
    MSG_MOVE_STOP_ASCEND                            = 0x1254,    // 4692  - 4.0.0.12122
    SMSG_ARENA_TEAM_STATS                           = 0x35B,
    CMSG_LFG_JOIN                                   = 0x35C,     // CMSG JoinLFG
    CMSG_LFG_LEAVE                                  = 0x35D,     // CMSG LeaveLFG
    CMSG_SEARCH_LFG_JOIN                            = 0x5D6E,    // 23918 - 4.0.0.12065, CMSG SearchLFGJoin
    CMSG_SEARCH_LFG_LEAVE                           = 0x35F,     // CMSG SearchLFGLeave
    SMSG_UPDATE_LFG_LIST                            = 0x360,     // SMSG uint32, uint32, if(uint8) { uint32 count, for(count) { uint64} }, uint32 count2, uint32, for(count2) { uint64, uint32 flags, if(flags & 0x2) {string}, if(flags & 0x10) {for(3) uint8}, if(flags & 0x80) {uint64, uint32}}, uint32 count3, uint32, for(count3) {uint64, uint32 flags, if(flags & 0x1) {uint8, uint8, uint8, for(3) uint8, uint32, uint32, uint32, uint32, uint32, uint32, float, float, uint32, uint32, uint32, uint32, uint32, float, uint32, uint32, uint32, uint32, uint32, uint32}, if(flags&0x2) string, if(flags&0x4) uint8, if(flags&0x8) uint64, if(flags&0x10) uint8, if(flags&0x20) uint32, if(flags&0x40) uint8, if(flags& 0x80) {uint64, uint32}}
    SMSG_LFG_PROPOSAL_UPDATE                        = 0x361,     // SMSG uint32, uint8, uint32, uint32, uint8, for(uint8) {uint32,uint8,uint8,uint8,uint8}
    CMSG_LFG_PROPOSAL_RESULT                        = 0x362,     // CMSG AcceptProposal, RejectProposal
    SMSG_LFG_ROLE_CHECK_UPDATE                      = 0x363,     // SMSG uint32, uint8, for(uint8) uint32, uint8, for(uint8) { uint64, uint8, uint32, uint8, }
    SMSG_LFG_JOIN_RESULT                            = 0x364,     // SMSG uint32 unk, uint32, if(unk==6) { uint8 count, for(count) uint64 }
    SMSG_LFG_QUEUE_STATUS                           = 0x365,     // SMSG uint32 dungeon, uint32 lfgtype, uint32, uint32, uint32, uint32, uint8, uint8, uint8, uint8
    CMSG_SET_LFG_COMMENT                            = 0x366,     // CMSG SetLFGComment
    SMSG_LFG_UPDATE_PLAYER                          = 0x367,     // SMSG uint8, if(uint8) { uint8, uint8, uint8, uint8, if(uint8) for(uint8) uint32, string}
    SMSG_LFG_UPDATE_PARTY                           = 0x368,     // SMSG uint8, if(uint8) { uint8, uint8, uint8, for(3) uint8, uint8, if(uint8) for(uint8) uint32, string}
    SMSG_LFG_UPDATE_SEARCH                          = 0x369,     // SMSG uint8
    CMSG_LFG_SET_ROLES                              = 0x36A,     // CMSG SetLFGRoles
    CMSG_LFG_SET_NEEDS                              = 0x36B,     // CMSG SetLFGNeeds
    CMSG_LFG_SET_BOOT_VOTE                          = 0x36C,     // CMSG SetLFGBootVote
    SMSG_LFG_BOOT_PLAYER                            = 0x36D,     // SMSG uint8, uint8, uint8, uint64, uint32, uint32, uint32, uint32
    CMSG_LFD_PLAYER_LOCK_INFO_REQUEST               = 0x1B6C,    // 7020 - 4.0.0.12065, CMSG RequestLFDPlayerLockInfo
    SMSG_LFG_PLAYER_INFO                            = 0x36F,     // SMSG uint8, for(uint8) { uint32, uint8, uint32, uint32, uint32, uint32, uint8, for(uint8) {uint32,uint32, uint32}}, uint32, for(uint32) {uint32,uint32}
    CMSG_LFG_TELEPORT                               = 0x370,     // CMSG LFGTeleport
    CMSG_LFD_PARTY_LOCK_INFO_REQUEST                = 0x371,     // CMSG RequestLFDPartyLockInfo
    SMSG_LFG_PARTY_INFO                             = 0x372,     // SMSG uint8, for(uint8) uint64
    SMSG_TITLE_EARNED                               = 0x3D69,    // 15721 - 4.0.0.12065
    CMSG_SET_TITLE                                  = 0x374,
    CMSG_CANCEL_MOUNT_AURA                          = 0x375,
    SMSG_ARENA_ERROR                                = 0x165A,    // 5722  - 4.0.0.12122
    MSG_INSPECT_ARENA_TEAMS                         = 0x377,
    SMSG_DEATH_RELEASE_LOC                          = 0xC064,    // 49252 - 4.0.0.12122
    CMSG_CANCEL_TEMP_ENCHANTMENT                    = 0x379,
    SMSG_FORCED_DEATH_UPDATE                        = 0x442E,    // 17454 - 4.0.0.12122
    CMSG_CHEAT_SET_HONOR_CURRENCY                   = 0x37B,
    CMSG_CHEAT_SET_ARENA_CURRENCY                   = 0x37C,
    MSG_MOVE_SET_FLIGHT_SPEED_CHEAT                 = 0x37D,
    MSG_MOVE_SET_FLIGHT_SPEED                       = 0xC402,    // 50178 - 4.0.0.12122
    MSG_MOVE_SET_FLIGHT_BACK_SPEED_CHEAT            = 0x37F,
    MSG_MOVE_SET_FLIGHT_BACK_SPEED                  = 0x544C,    // 21580 - 4.0.0.12122
    SMSG_FORCE_FLIGHT_SPEED_CHANGE                  = 0x09E6,    // 2534  - 4.0.0.12065
    CMSG_FORCE_FLIGHT_SPEED_CHANGE_ACK              = 0x09E1,    // 2529  - 4.0.0.12065
    SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE             = 0x1246,    // 4678  - 4.0.0.12122
    CMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK         = 0x384,
    SMSG_SPLINE_SET_FLIGHT_SPEED                    = 0x220,     // 544   - 4.0.0.12122
    SMSG_SPLINE_SET_FLIGHT_BACK_SPEED               = 0x964E,    // 38478 - 4.0.0.12122
    CMSG_MAELSTROM_INVALIDATE_CACHE                 = 0x387,
    SMSG_FLIGHT_SPLINE_SYNC                         = 0x1238,    // 4664  - 4.0.0.12122
    CMSG_SET_TAXI_BENCHMARK_MODE                    = 0x389,
    SMSG_JOINED_BATTLEGROUND_QUEUE                  = 0x38A,
    SMSG_REALM_SPLIT                                = 0x527C,    // 21116 - 4.0.0.12122
    CMSG_REALM_SPLIT                                = 0x8014,    // 32788 - 4.0.0.12122
    CMSG_MOVE_CHNG_TRANSPORT                        = 0x38D,
    MSG_PARTY_ASSIGNMENT                            = 0x38E,
    SMSG_OFFER_PETITION_ERROR                       = 0x38F,
    SMSG_TIME_SYNC_REQ                              = 0xC65E,    // 50782 - 4.0.0.12122
    CMSG_TIME_SYNC_RESP                             = 0x1BE4,    // 7140  - 4.0.0.12065
    CMSG_SEND_LOCAL_EVENT                           = 0x392,
    CMSG_SEND_GENERAL_TRIGGER                       = 0x393,
    CMSG_SEND_COMBAT_TRIGGER                        = 0x394,
    CMSG_MAELSTROM_GM_SENT_MAIL                     = 0x395,
    SMSG_RESET_FAILED_NOTIFY                        = 0x8B6F,    // 35695 - 4.0.0.12065
    SMSG_REAL_GROUP_UPDATE                          = 0xD67A,    // 54906 - 4.0.0.12122
    SMSG_LFG_DISABLED                               = 0x398,
    CMSG_ACTIVE_PVP_CHEAT                           = 0x399,
    CMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY                = 0x39A,
    SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE       = 0x824A,    // 33354 - 4.0.0.12122
    SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE_WRITE_FILE = 0x39C,
    SMSG_UPDATE_COMBO_POINTS                        = 0x0B6B,    // 2923  - 4.0.0.12065
    SMSG_VOICE_SESSION_ROSTER_UPDATE                = 0x944C,    // 37964 - 4.0.0.12122
    SMSG_VOICE_SESSION_LEAVE                        = 0x4010,    // 16400 - 4.0.0.12122
    SMSG_VOICE_SESSION_ADJUST_PRIORITY              = 0x3A0,
    CMSG_VOICE_SET_TALKER_MUTED_REQUEST             = 0x3A1,
    SMSG_VOICE_SET_TALKER_MUTED                     = 0x1278,    // 4728  - 4.0.0.12122
    SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE              = 0x3A3,
    SMSG_SET_EXTRA_AURA_INFO_OBSOLETE               = 0x3A4,
    SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE_OBSOLETE   = 0x3A5,
    SMSG_CLEAR_EXTRA_AURA_INFO_OBSOLETE             = 0x3A6,
    MSG_MOVE_START_DESCEND                          = 0x9400,    // 37888 - 4.0.0.12122
    CMSG_IGNORE_REQUIREMENTS_CHEAT                  = 0x3A8,
    SMSG_IGNORE_REQUIREMENTS_CHEAT                  = 0x8416,    // 33814 - 4.0.0.12122
    SMSG_SPELL_CHANCE_PROC_LOG                      = 0x3AA,
    CMSG_MOVE_SET_RUN_SPEED                         = 0x3AB,
    SMSG_DISMOUNT                                   = 0x844A,    // 33866 - 4.0.0.12122
    MSG_MOVE_UPDATE_CAN_FLY                         = 0x9042,    // 36930 - 4.0.0.12122
    MSG_RAID_READY_CHECK_CONFIRM                    = 0x3AE,
    CMSG_VOICE_SESSION_ENABLE                       = 0x3965,    // 14693 - 4.0.0.12065
    SMSG_VOICE_SESSION_ENABLE                       = 0x3B0,
    SMSG_VOICE_PARENTAL_CONTROLS                    = 0x944A,    // 37962 - 4.0.0.12122
    CMSG_GM_WHISPER                                 = 0x3B2,
    SMSG_GM_MESSAGECHAT                             = 0x49EC,    // 18924 - 4.0.0.12065
    MSG_GM_GEARRATING                               = 0x3B4,
    CMSG_COMMENTATOR_ENABLE                         = 0x3B5,
    SMSG_COMMENTATOR_STATE_CHANGED                  = 0x3B6,
    CMSG_COMMENTATOR_GET_MAP_INFO                   = 0x3B7,
    SMSG_COMMENTATOR_MAP_INFO                       = 0x3B8,
    CMSG_COMMENTATOR_GET_PLAYER_INFO                = 0x3B9,
    SMSG_COMMENTATOR_GET_PLAYER_INFO                = 0x3BA,
    SMSG_COMMENTATOR_PLAYER_INFO                    = 0x3BB,
    CMSG_COMMENTATOR_ENTER_INSTANCE                 = 0x3BC,
    CMSG_COMMENTATOR_EXIT_INSTANCE                  = 0x3BD,
    CMSG_COMMENTATOR_INSTANCE_COMMAND               = 0x3BE,
    SMSG_CLEAR_TARGET                               = 0x63C,     // 1596  - 4.0.0.12122
    CMSG_BOT_DETECTED                               = 0x3C0,
    SMSG_CROSSED_INEBRIATION_THRESHOLD              = 0x841A,    // 33818 - 4.0.0.12122
    CMSG_CHEAT_PLAYER_LOGIN                         = 0x3C2,
    CMSG_CHEAT_PLAYER_LOOKUP                        = 0x3C3,
    SMSG_CHEAT_PLAYER_LOOKUP                        = 0x3C4,
    SMSG_KICK_REASON                                = 0x5666,    // 22118 - 4.0.0.12122
    MSG_RAID_READY_CHECK_FINISHED                   = 0x3C6,
    CMSG_COMPLAIN                                   = 0x3C7,
    SMSG_COMPLAIN_RESULT                            = 0x5476,    // 21622 - 4.0.0.12122
    SMSG_FEATURE_SYSTEM_STATUS                      = 0x9244,    // 37444 - 4.0.0.12122
    CMSG_GM_SHOW_COMPLAINTS                         = 0x3CA,
    CMSG_GM_UNSQUELCH                               = 0x3CB,
    CMSG_CHANNEL_SILENCE_VOICE                      = 0x3CC,
    CMSG_CHANNEL_SILENCE_ALL                        = 0x3CD,
    CMSG_CHANNEL_UNSILENCE_VOICE                    = 0x3CE,
    CMSG_CHANNEL_UNSILENCE_ALL                      = 0x3CF,
    CMSG_TARGET_CAST                                = 0x3D0,
    CMSG_TARGET_SCRIPT_CAST                         = 0x3D1,
    CMSG_CHANNEL_DISPLAY_LIST                       = 0x3D2,
    CMSG_SET_ACTIVE_VOICE_CHANNEL                   = 0x3D3,
    CMSG_GET_CHANNEL_MEMBER_COUNT                   = 0x3D4,
    SMSG_CHANNEL_MEMBER_COUNT                       = 0x19E1,    // 6625  - 4.0.0.12065
    CMSG_CHANNEL_VOICE_ON                           = 0x3D6,
    CMSG_CHANNEL_VOICE_OFF                          = 0x3D7,
    CMSG_DEBUG_LIST_TARGETS                         = 0x3D8,
    SMSG_DEBUG_LIST_TARGETS                         = 0x3D9,
    SMSG_AVAILABLE_VOICE_CHANNEL                    = 0x145E,    // 5214  - 4.0.0.12122
    CMSG_ADD_VOICE_IGNORE                           = 0x3DB,
    CMSG_DEL_VOICE_IGNORE                           = 0x3DC,
    CMSG_PARTY_SILENCE                              = 0x3DD,
    CMSG_PARTY_UNSILENCE                            = 0x3DE,
    MSG_NOTIFY_PARTY_SQUELCH                        = 0x3DF,
    SMSG_COMSAT_RECONNECT_TRY                       = 0x39EE,    // 14830 - 4.0.0.12065
    SMSG_COMSAT_DISCONNECT                          = 0x5BED,    // 23533 - 4.0.0.12065
    SMSG_COMSAT_CONNECT_FAIL                        = 0x1F6A,    // 8042 - 4.0.0.12065
    SMSG_VOICE_CHAT_STATUS                          = 0x396A,    // 14698 - 4.0.0.12065
    CMSG_REPORT_PVP_AFK                             = 0x3E4,
    SMSG_REPORT_PVP_AFK_RESULT                      = 0x62E,     // 1582  - 4.0.0.12122, SMSG?
    CMSG_GUILD_BANKER_ACTIVATE                      = 0x3E6,
    CMSG_GUILD_BANK_QUERY_TAB                       = 0x3E7,
    SMSG_GUILD_BANK_LIST                            = 0x3E8,
    CMSG_GUILD_BANK_SWAP_ITEMS                      = 0x3E9,
    CMSG_GUILD_BANK_BUY_TAB                         = 0x3EA,
    CMSG_GUILD_BANK_UPDATE_TAB                      = 0x3EB,
    CMSG_GUILD_BANK_DEPOSIT_MONEY                   = 0x3EC,
    CMSG_GUILD_BANK_WITHDRAW_MONEY                  = 0x3ED,
    MSG_GUILD_BANK_LOG_QUERY                        = 0x3EE,
    CMSG_SET_CHANNEL_WATCH                          = 0x3EF,
    SMSG_USERLIST_ADD                               = 0x2DE8,    // 11752 - 4.0.0.12065
    SMSG_USERLIST_REMOVE                            = 0xE9EF,    // 59887 - 4.0.0.12065
    SMSG_USERLIST_UPDATE                            = 0x3FEF,    // 16367 - 4.0.0.12065
    CMSG_CLEAR_CHANNEL_WATCH                        = 0x3F3,
    SMSG_INSPECT_TALENT                             = 0x1426,    // 5158  - 4.0.0.12122
    SMSG_GOGOGO_OBSOLETE                            = 0x3F5,
    SMSG_ECHO_PARTY_SQUELCH                         = 0x3F6,
    CMSG_SET_TITLE_SUFFIX                           = 0x3F7,
    CMSG_SPELLCLICK                                 = 0x3F8,
    SMSG_LOOT_LIST                                  = 0x4957,    // 18775 - 4.0.0.12065
    CMSG_GM_CHARACTER_RESTORE                       = 0x3FA,
    CMSG_GM_CHARACTER_SAVE                          = 0x3FB,
    SMSG_VOICESESSION_FULL                          = 0x2F6F,    // 12143 - 4.0.0.12065
    MSG_GUILD_PERMISSIONS                           = 0x3FD,
    MSG_GUILD_BANK_MONEY_WITHDRAWN                  = 0x1FE4,    // 8164 - 4.0.0.12065
    MSG_GUILD_EVENT_LOG_QUERY                       = 0x3FF,
    CMSG_MAELSTROM_RENAME_GUILD                     = 0x400,
    CMSG_GET_MIRRORIMAGE_DATA                       = 0x401,
    SMSG_MIRRORIMAGE_DATA                           = 0xD034,    // 53300 - 4.0.0.12122
    SMSG_FORCE_DISPLAY_UPDATE                       = 0xC03C,    // 49212 - 4.0.0.12122
    SMSG_SPELL_CHANCE_RESIST_PUSHBACK               = 0x404,
    CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT           = 0x405,
    SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT           = 0x147C,    // 5244  - 4.0.0.12122
    CMSG_KEEP_ALIVE                                 = 0x1DE5,    // 7653  - 4.0.0.12065
    SMSG_RAID_READY_CHECK_ERROR                     = 0x408,
    CMSG_OPT_OUT_OF_LOOT                            = 0x409,
    MSG_QUERY_GUILD_BANK_TEXT                       = 0x40A,
    CMSG_SET_GUILD_BANK_TEXT                        = 0x40B,
    CMSG_SET_GRANTABLE_LEVELS                       = 0x40C,
    CMSG_GRANT_LEVEL                                = 0x40D,
    CMSG_REFER_A_FRIEND                             = 0x40E,
    MSG_GM_CHANGE_ARENA_RATING                      = 0x40F,
    CMSG_DECLINE_CHANNEL_INVITE                     = 0x410,
    SMSG_GROUPACTION_THROTTLED                      = 0x864A,    // 34378 - 4.0.0.12122, SMSG?
    SMSG_OVERRIDE_LIGHT                             = 0xEF6F,    // 61295 - 4.0.0.12065
    SMSG_TOTEM_CREATED                              = 0x9D6F,    // 40303 - 4.0.0.12065
    CMSG_TOTEM_DESTROYED                            = 0x414,
    CMSG_EXPIRE_RAID_INSTANCE                       = 0x415,
    CMSG_NO_SPELL_VARIANCE                          = 0x416,
    CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY           = 0x8B6A,    // 35690 - 4.0.0.12065
    SMSG_QUESTGIVER_STATUS_MULTIPLE                 = 0x5638,    // 22072 - 4.0.0.12122
    CMSG_SET_PLAYER_DECLINED_NAMES                  = 0x419,
    SMSG_SET_PLAYER_DECLINED_NAMES_RESULT           = 0x8276,    // 33398 - 4.0.0.12122
    CMSG_QUERY_SERVER_BUCK_DATA                     = 0x41B,
    CMSG_CLEAR_SERVER_BUCK_DATA                     = 0x41C,
    SMSG_SERVER_BUCK_DATA                           = 0x41D,
    SMSG_SEND_UNLEARN_SPELLS                        = 0xD664,    // 54884 - 4.0.0.12122
    SMSG_PROPOSE_LEVEL_GRANT                        = 0x69E2,    // 27106 - 4.0.0.12065
    CMSG_ACCEPT_LEVEL_GRANT                         = 0x420,
    SMSG_REFER_A_FRIEND_FAILURE                     = 0x1962,    // 6498  - 4.0.0.12065
    SMSG_SPLINE_MOVE_SET_FLYING                     = 0x0BE2,    // 3042  - 4.0.0.12065
    SMSG_SPLINE_MOVE_UNSET_FLYING                   = 0x8024,    // 32804 - 4.0.0.12122
    SMSG_SUMMON_CANCEL                              = 0x9418,    // 37912 - 4.0.0.12122
    CMSG_CHANGE_PERSONAL_ARENA_RATING               = 0x425,
    CMSG_ALTER_APPEARANCE                           = 0x426,
    SMSG_ENABLE_BARBER_SHOP                         = 0x427,
    SMSG_BARBER_SHOP_RESULT                         = 0x428,
    CMSG_CALENDAR_GET_CALENDAR                      = 0x429,
    CMSG_CALENDAR_GET_EVENT                         = 0x42A,
    CMSG_CALENDAR_GUILD_FILTER                      = 0x42B,
    CMSG_CALENDAR_ARENA_TEAM                        = 0x42C,
    CMSG_CALENDAR_ADD_EVENT                         = 0x8FE4,    // 36836 - 4.0.0.12065
    CMSG_CALENDAR_UPDATE_EVENT                      = 0x42E,
    CMSG_CALENDAR_REMOVE_EVENT                      = 0x42F,
    CMSG_CALENDAR_COPY_EVENT                        = 0x430,
    CMSG_CALENDAR_EVENT_INVITE                      = 0x431,
    CMSG_CALENDAR_EVENT_RSVP                        = 0x432,
    CMSG_CALENDAR_EVENT_REMOVE_INVITE               = 0x433,
    CMSG_CALENDAR_EVENT_STATUS                      = 0x434,
    CMSG_CALENDAR_EVENT_MODERATOR_STATUS            = 0x435,
    SMSG_CALENDAR_SEND_CALENDAR                     = 0x436,
    SMSG_CALENDAR_SEND_EVENT                        = 0x437,
    SMSG_CALENDAR_FILTER_GUILD                      = 0x438,
    SMSG_CALENDAR_ARENA_TEAM                        = 0x439,
    SMSG_CALENDAR_EVENT_INVITE                      = 0x43A,
    SMSG_CALENDAR_EVENT_INVITE_REMOVED              = 0x43B,
    SMSG_CALENDAR_EVENT_STATUS                      = 0x43C,
    SMSG_CALENDAR_COMMAND_RESULT                    = 0x8230,    // 33328 - 4.0.0.12122
    SMSG_CALENDAR_RAID_LOCKOUT_ADDED                = 0x43E,
    SMSG_CALENDAR_RAID_LOCKOUT_REMOVED              = 0x43F,
    SMSG_CALENDAR_EVENT_INVITE_ALERT                = 0x440,
    SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT        = 0x441,
    SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT         = 0x442,
    SMSG_CALENDAR_EVENT_REMOVED_ALERT               = 0x443,
    SMSG_CALENDAR_EVENT_UPDATED_ALERT               = 0x444,
    SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT      = 0x445,
    CMSG_CALENDAR_COMPLAIN                          = 0x446,
    CMSG_CALENDAR_GET_NUM_PENDING                   = 0xC964,    // 51556 - 4.0.0.12065
    SMSG_CALENDAR_SEND_NUM_PENDING                  = 0x448,
    CMSG_SAVE_DANCE                                 = 0x449,
    SMSG_NOTIFY_DANCE                               = 0xCF67,    // 53095 - 4.0.0.12065
    CMSG_PLAY_DANCE                                 = 0x44B,
    SMSG_PLAY_DANCE                                 = 0x5B66,    // 23398 - 4.0.0.12065
    CMSG_LOAD_DANCES                                = 0x44D,
    CMSG_STOP_DANCE                                 = 0x44E,
    SMSG_STOP_DANCE                                 = 0x7FE2,    // 32738 - 4.0.0.12065
    CMSG_SYNC_DANCE                                 = 0x450,
    CMSG_DANCE_QUERY                                = 0x4024,    // 16420 - 4.0.0.12122
    SMSG_DANCE_QUERY_RESPONSE                       = 0x866C,    // 34412 - 4.0.0.12122
    SMSG_INVALIDATE_DANCE                           = 0xD604,    // 54788 - 4.0.0.12122
    CMSG_DELETE_DANCE                               = 0x454,
    SMSG_LEARNED_DANCE_MOVES                        = 0x547C,    // Haith
    CMSG_LEARN_DANCE_MOVE                           = 0x456,
    CMSG_UNLEARN_DANCE_MOVE                         = 0x457,
    CMSG_SET_RUNE_COUNT                             = 0x458,
    CMSG_SET_RUNE_COOLDOWN                          = 0x459,
    MSG_MOVE_SET_PITCH_RATE_CHEAT                   = 0x45A,
    MSG_MOVE_SET_PITCH_RATE                         = 0xD9ED,    // 55789 - 4.0.0.12065
    SMSG_FORCE_PITCH_RATE_CHANGE                    = 0xC612,    // 50706 - 4.0.0.12122
    CMSG_FORCE_PITCH_RATE_CHANGE_ACK                = 0x45D,
    SMSG_SPLINE_SET_PITCH_RATE                      = 0x5064,    // 20580 - 4.0.0.12122
    SMSG_MOVE_ABANDON_TRANSPORT                     = 0x45F,
    SMSG_CALENDAR_UPDATE_INVITE_LIST                = 0x460,
    SMSG_CALENDAR_UPDATE_INVITE_LIST2               = 0x461,
    CMSG_UPDATE_MISSILE_TRAJECTORY                  = 0x462,
    SMSG_UPDATE_ACCOUNT_DATA_COMPLETE               = 0xC428,    // 50216 - 4.0.0.12122
    SMSG_TRIGGER_MOVIE                              = 0x3FE8,    // 16360 - 4.0.0.12065
    CMSG_COMPLETE_MOVIE                             = 0x465,
    CMSG_SET_GLYPH_SLOT                             = 0x466,
    CMSG_SET_GLYPH                                  = 0x467,
    SMSG_ACHIEVEMENT_EARNED                         = 0xBFE0,    // 49120 - 4.0.0.12065
    SMSG_DYNAMIC_DROP_ROLL_RESULT                   = 0x469,
    SMSG_CRITERIA_UPDATE                            = 0x7F66,    // 32614 - 4.0.0.12065
    CMSG_QUERY_INSPECT_ACHIEVEMENTS                 = 0x46B,
    SMSG_RESPOND_INSPECT_ACHIEVEMENTS               = 0x46C,
    CMSG_DISMISS_CONTROLLED_VEHICLE                 = 0x46D,
    CMSG_COMPLETE_ACHIEVEMENT_CHEAT                 = 0x46E,
    SMSG_QUESTUPDATE_ADD_PVP_KILL                   = 0xD26A,    // 53866 - 4.0.0.12122
    CMSG_SET_CRITERIA_CHEAT                         = 0x470,
    SMSG_CALENDAR_UPDATE_INVITE_LIST3               = 0x471,
    CMSG_UNITANIMTIER_CHEAT                         = 0x472,
    CMSG_CHAR_CUSTOMIZE                             = 0x473,
    SMSG_CHAR_CUSTOMIZE                             = 0xD462,    // 54370 - 4.0.0.12122
    SMSG_PET_RENAMEABLE                             = 0x475,
    CMSG_REQUEST_VEHICLE_EXIT                       = 0x476,
    CMSG_REQUEST_VEHICLE_PREV_SEAT                  = 0x477,
    CMSG_REQUEST_VEHICLE_NEXT_SEAT                  = 0x478,
    CMSG_REQUEST_VEHICLE_SWITCH_SEAT                = 0x479,
    CMSG_PET_LEARN_TALENT                           = 0x47A,
    CMSG_PET_UNLEARN_TALENTS                        = 0x47B,
    SMSG_SET_PHASE_SHIFT                            = 0x47C,
    SMSG_ALL_ACHIEVEMENT_DATA                       = 0x47D,
    CMSG_FORCE_SAY_CHEAT                            = 0x47E,
    SMSG_HEALTH_UPDATE                              = 0x8660,    // 34400 - 4.0.0.12122
    SMSG_POWER_UPDATE                               = 0xD040,    // 53312 - 4.0.0.12122
    CMSG_GAMEOBJ_REPORT_USE                         = 0x481,
    SMSG_HIGHEST_THREAT_UPDATE                      = 0x902A,    // 36906 - 4.0.0.12122
    SMSG_THREAT_UPDATE                              = 0xD068,    // 53352 - 4.0.0.12122
    SMSG_THREAT_REMOVE                              = 0x5018,    // 20504 - 4.0.0.12122
    SMSG_THREAT_CLEAR                               = 0xC046,    // 49222 - 4.0.0.12122
    SMSG_CONVERT_RUNE                               = 0x4210,    // 16912 - 4.0.0.12122
    SMSG_RESYNC_RUNES                               = 0x8246,    // 33350 - 4.0.0.12122
    SMSG_ADD_RUNE_POWER                             = 0x402,     // 1026  - 4.0.0.12122
    CMSG_START_QUEST                                = 0x489,
    CMSG_REMOVE_GLYPH                               = 0x48A,
    CMSG_DUMP_OBJECTS                               = 0x48B,
    SMSG_DUMP_OBJECTS_DATA                          = 0x48C,
    CMSG_DISMISS_CRITTER                            = 0x48D,
    SMSG_NOTIFY_DEST_LOC_SPELL_CAST                 = 0x565E,    // 22110 - 4.0.0.12122
    CMSG_AUCTION_LIST_PENDING_SALES                 = 0x48F,
    SMSG_AUCTION_LIST_PENDING_SALES                 = 0x490,
    SMSG_MODIFY_COOLDOWN                            = 0x4430,    // 17456 - 4.0.0.12122
    SMSG_PET_UPDATE_COMBO_POINTS                    = 0x492,
    CMSG_ENABLETAXI                                 = 0x493,
    SMSG_PRE_RESURRECT                              = 0x120E,    // 4622  - 4.0.0.12122
    SMSG_AURA_UPDATE_ALL                            = 0x65A,     // 1626  - 4.0.0.12122
    SMSG_AURA_UPDATE                                = 0x0470,     // Haith
    CMSG_FLOOD_GRACE_CHEAT                          = 0x497,
    SMSG_SERVER_FIRST_ACHIEVEMENT                   = 0xEF69,    // 61289 - 4.0.0.12065
    SMSG_PET_LEARNED_SPELL                          = 0x499,
    SMSG_PET_REMOVED_SPELL                          = 0x49A,
    CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE         = 0x49B,
    CMSG_HEARTH_AND_RESURRECT                       = 0x49C,     // not changed in 3.1
    SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA       = 0x8606,    // 34310 - 4.0.0.12122
    SMSG_CRITERIA_DELETED                           = 0x8DE1,    // 36321 - 4.0.0.12065
    SMSG_ACHIEVEMENT_DELETED                        = 0xDDE9,    // 56809 - 4.0.0.12065
    CMSG_SERVER_INFO_QUERY                          = 0x4A0,     // not found
    SMSG_SERVER_INFO_RESPONSE                       = 0x4A1,     // not found
    CMSG_CHECK_LOGIN_CRITERIA                       = 0x4A2,     // not found
    SMSG_SERVER_BUCK_DATA_START                     = 0x4A3,     // not found
    CMSG_QUERY_VEHICLE_STATUS                       = 0x4A4,     // not found
    UMSG_UNKNOWN_1189                               = 0x4A5,     // not found, old SMSG_PET_GUIDS
    SMSG_BATTLEGROUND_INFO_THROTTLED                = 0x4424,    // 17444 - 4.0.0.12122, empty, "You can't do that yet"
    SMSG_PLAYER_VEHICLE_DATA                        = 0x454,     // 1108  - 4.0.0.12122, smsg guid+uint32 (vehicle) EVENT_PLAYER_GAINS_VEHICLE_DATA/EVENT_PLAYER_LOSES_VEHICLE_DATA
    CMSG_UNKNOWN_1192                               = 0x4A8,     // cmsg uint64
    CMSG_EJECT_PASSENGER                            = 0x4A9,     // cmsg uint64
    SMSG_PET_GUIDS                                  = 0x4AA,     // shifted+5
    SMSG_CLIENTCACHE_VERSION                        = 0x9012,    // 38480- 4.0.0.12122, shifted+5
    UMSG_UNKNOWN_1196                               = 0x4AC,     // not found
    UMSG_UNKNOWN_1197                               = 0x4AD,     // not found
    UMSG_UNKNOWN_1198                               = 0x4AE,     // not found
    UMSG_UNKNOWN_1199                               = 0x4AF,     // not found
    UMSG_UNKNOWN_1200                               = 0x4B0,     // not found
    UMSG_UNKNOWN_1201                               = 0x4B1,     // not found
    SMSG_ITEM_REFUND_INFO_RESPONSE                  = 0x1236,    // 4662  - 4.0.0.12122, refund item info
    CMSG_ITEM_REFUND_INFO                           = 0x4B3,     // refund request?
    CMSG_ITEM_REFUND                                = 0x4B4,     // lua: ContainerRefundItemPurchase
    SMSG_ITEM_REFUND_RESULT                         = 0x1614,    // 5652  - 4.0.0.12122, refund item result
    CMSG_CORPSE_MAP_POSITION_QUERY                  = 0x4B6,     // CMSG, uint32
    SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE         = 0x2DE5,    // 11749 - 4.0.0.12065, SMSG, 3*float+float
    UMSG_UNKNOWN_1208                               = 0x4B8,     // not found
    UMSG_UNKNOWN_1209                               = 0x4B9,     // not found
    CMSG_CALENDAR_CONTEXT_EVENT_SIGNUP              = 0x4BA,     // CMSG, uint64, lua: CalendarContextEventSignUp
    SMSG_CALENDAR_ACTION_PENDING                    = 0x4BB,     // SMSG, calendar related EVENT_CALENDAR_ACTION_PENDING
    SMSG_EQUIPMENT_SET_LIST                         = 0x69EB,    // 27115 - 4.0.0.12065, SMSG, equipment manager list?
    CMSG_EQUIPMENT_SET_SAVE                         = 0x096B,    // 2411  - 4.0.0.12065, CMSG, lua: SaveEquipmentSet
    CMSG_UPDATE_PROJECTILE_POSITION                 = 0x4BE,     // CMSG, uint64 caster, uint32 spellId, uint8 castId, vector3 position
	SMSG_SET_PROJECTILE_POSITION                    = 0x5650,    // 22096 - 4.0.0.12122, SMSG, uint64 caster, uint8 castId, vector3 position
    SMSG_TALENTS_INFO                               = 0x447E,    // 17534 - 4.0.0.12122, SMSG, talents related
    CMSG_LEARN_PREVIEW_TALENTS                      = 0x39E2,    // 14818 - 4.0.0.12065, CMSG, lua: LearnPreviewTalents (for player?)
    CMSG_LEARN_PREVIEW_TALENTS_PET                  = 0x4C2,     // CMSG, lua: LearnPreviewTalents (for pet?)
    UMSG_UNKNOWN_1219                               = 0x4C3,     // not found 3.2
    UMSG_UNKNOWN_1220                               = 0x4C4,     // not found 3.2
    UMSG_UNKNOWN_1221                               = 0x4C5,     // not found 3.2
    UMSG_UNKNOWN_1222                               = 0x4C6,     // not found 3.2
    SMSG_ARENA_OPPONENT_UPDATE                      = 0x4C7,     // uint64, EVENT_ARENA_OPPONENT_UPDATE
    SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED            = 0x276,     // 630   - 4.0.0.12122, uint32 "Can't modify arena team while queued or in a match." 3.2
    UMSG_UNKNOWN_1225                               = 0x4C9,     // not found 3.2
    UMSG_UNKNOWN_1226                               = 0x4CA,     // not found 3.2
    UMSG_UNKNOWN_1227                               = 0x4CB,     // not found 3.2
    UMSG_UNKNOWN_1228                               = 0x4CC,     // not found 3.2
    SMSG_MULTIPLE_PACKETS                           = 0xC62A,    // 50730 - 4.0.0.12122, SMSG, handles any opcode
    SMSG_FORCE_UNK1_SPEED_CHANGE                    = 0x127E,    // 4734  - 4.0.0.12122, SMSG, movement related
    CMSG_FORCE_UNK1_SPEED_CHANGE_ACK                = 0x4CF,     // movement related
    SMSG_FORCE_UNK2_SPEED_CHANGE                    = 0x160A,    // 5642  - 4.0.0.12122, SMSG, movement related
    CMSG_FORCE_UNK2_SPEED_CHANGE_ACK                = 0x4D1,     // movement related
    MSG_MOVE_UNKNOWN_1234                           = 0x43C,     // 1084  - 4.0.0.12122, SMSG, movement related
    SMSG_SPLINE_MOVE_UNKNOWN_1235                   = 0x8064,    // 32868 - 4.0.0.12122, SMSG, movement related
    SMSG_SPLINE_MOVE_UNKNOWN_1236                   = 0x648,     // 1608  - 4.0.0.12122, SMSG, movement related
    CMSG_EQUIPMENT_SET_USE                          = 0x19EC,    // 6636  - 4.0.0.12065, CMSG, lua: UseEquipmentSet
    SMSG_EQUIPMENT_SET_USE_RESULT                   = 0xEFEA,    // 61418 - 4.0.0.12065, SMSG, UseEquipmentSetResult?
    UMSG_UNKNOWN_1239                               = 0x4D7,     // not found 3.2
    SMSG_UNKNOWN_1240                               = 0x4D8,     // SMSG, uint64, string, doing nothing
    CMSG_CHAR_FACTION_CHANGE                        = 0x4D9,     // lua: CreateCharacter (PFC client response)
    SMSG_CHAR_FACTION_CHANGE                        = 0xD236,    // 53814 - 4.0.0.12122, response to 1241 (PFC server response)
    UMSG_UNKNOWN_1243                               = 0x4DB,     // not found 3.2
    UMSG_UNKNOWN_1244                               = 0x4DC,     // not found 3.2
    UMSG_UNKNOWN_1245                               = 0x4DD,     // not found 3.2
    SMSG_BATTLEFIELD_MGR_ENTRY_INVITE               = 0x4DE,     // uint32, EVENT_BATTLEFIELD_MGR_ENTRY_INVITE
    CMSG_BATTLEFIELD_MGR_ENTRY_INVITE_RESPONSE      = 0x4DF,     // lua: BattlefieldMgrEntryInviteResponse
    SMSG_BATTLEFIELD_MGR_ENTERED                    = 0x4E0,     // uint32, uint8, uint8 EVENT_BATTLEFIELD_MGR_ENTERED
    SMSG_BATTLEFIELD_MGR_QUEUE_INVITE               = 0x4E1,     // uint32 EVENT_BATTLEFIELD_MGR_QUEUE_INVITE
    CMSG_BATTLEFIELD_MGR_QUEUE_INVITE_RESPONSE      = 0x4E2,     // lua: BattlefieldMgrQueueInviteResponse
    CMSG_BATTLEFIELD_MGR_QUEUE_REQUEST              = 0x4E3,     // lua: BattlefieldMgrQueueRequest
    SMSG_BATTLEFIELD_MGR_QUEUE_REQUEST_RESPONSE     = 0x4E4,     // uint32, uint8 EVENT_BATTLEFIELD_MGR_QUEUE_REQUEST_RESPONSE
    SMSG_BATTLEFIELD_MGR_EJECT_PENDING              = 0x4E5,     // uint32 EVENT_BATTLEFIELD_MGR_EJECT_PENDING
    SMSG_BATTLEFIELD_MGR_EJECTED                    = 0x4E6,     // uint32, uint32, uint8 EVENT_BATTLEFIELD_MGR_EJECTED
    CMSG_BATTLEFIELD_MGR_EXIT_REQUEST               = 0x4E7,     // lua: BattlefieldMgrExitRequest
    SMSG_BATTLEFIELD_MGR_STATE_CHANGE               = 0x4E8,     // uint32, uint32 EVENT_BATTLEFIELD_MGR_STATE_CHANGE
    UMSG_UNKNOWN_1257                               = 0x4E9,     // not found 3.2
    UMSG_UNKNOWN_1258                               = 0x4EA,     // not found 3.2
    MSG_SET_RAID_DIFFICULTY                         = 0x5D68,    // 23912 - 4.0.0.12065, lua: SetRaidDifficulty
    UMSG_UNKNOWN_1260                               = 0x4EC,     // not found 3.2
    SMSG_TOGGLE_XP_GAIN                             = 0x47C,     // 1148  - 4.0.0.12122, enable/disable XP gain console message
    SMSG_GMRESPONSE_DB_ERROR                        = 0x0961,    // 2401  - 4.0.0.12065, empty
    SMSG_GMRESPONSE_RECEIVED                        = 0x5961,    // 22881 - 4.0.0.12065, uint32, uint32, string[2000], string[4000][4]
    CMSG_GMRESPONSE_RESOLVE                         = 0x4F0,     // lua: GMResponseResolve
    SMSG_GMRESPONSE_STATUS_UPDATE                   = 0xC96B,    // 51563 - 4.0.0.12065, uint8 (1 - EVENT_GMSURVEY_DISPLAY, 0 - EVENT_UPDATE_TICKET)
    UMSG_UNKNOWN_1266                               = 0x4F2,     // not found 3.2
    UMSG_UNKNOWN_1267                               = 0x4F3,     // not found 3.2
    UMSG_UNKNOWN_1268                               = 0x4F4,     // not found 3.2
    UMSG_UNKNOWN_1269                               = 0x4F5,     // not found 3.2
    CMSG_WORLD_STATE_UI_TIMER_UPDATE                = 0x0B61,    // 2913  - 4.0.0.12065
    SMSG_WORLD_STATE_UI_TIMER_UPDATE                = 0x99EA,    // 39402 - 4.0.0.12065
    CMSG_CHAR_RACE_CHANGE                           = 0x4F8,     // called from lua: CreateCharacter, paid race change
    UMSG_UNKNOWN_1273                               = 0x4F9,     // not found 10554
    SMSG_TALENTS_INVOLUNTARILY_RESET                = 0xFBEC,    // 64492 - 4.0.0.12065, uint8 EVENT_TALENTS_INVOLUNTARILY_RESET
    UMSG_UNKNOWN_1275                               = 0x4FB,     // not found 10554
    SMSG_UNKNOWN_1276                               = 0xC214,    // 49684 - 4.0.0.12122
    SMSG_LOOT_SLOT_CHANGED                          = 0xC032,    // 49202 - 4.0.0.12122, EVENT_LOOT_SLOT_CHANGED
    UMSG_UNKNOWN_1278                               = 0x4FE,     // not found 10596
	CMSG_READY_FOR_ACCOUNT_DATA_TIMES               = 0xC426,
	//CMSG_READY_FOR_ACCOUNT_DATA_TIMES               = 0x79EB,    // 31211 - 4.0.0.12065, lua: ReadyForAccountDataTimes
    CMSG_QUERY_QUESTS_COMPLETED                     = 0x500,     // lua: QueryQuestsCompleted
    SMSG_QUERY_QUESTS_COMPLETED_RESPONSE            = 0x696C,    // 26988 - 4.0.0.12065, response to CMSG_QUERY_QUESTS_COMPLETED
    CMSG_GM_REPORT_LAG                              = 0x502,     // lua: GMReportLag
    UMSG_UNKNOWN_1283                               = 0x503,     // not found
    UMSG_UNKNOWN_1284                               = 0x504,     // not found
    UMSG_UNKNOWN_1285                               = 0x505,     // not found
    SMSG_CORPSE_IS_NOT_IN_INSTANCE                  = 0xEF62,    // 61282 - 4.0.0.12065, ERR_CORPSE_IS_NOT_IN_INSTANCE = 0x1A8,
    UMSG_UNKNOWN_1287                               = 0x507,     // not found
    CMSG_SET_ALLOW_LOW_LEVEL_RAID1                  = 0x508,     // lua: SetAllowLowLevelRaid
    CMSG_SET_ALLOW_LOW_LEVEL_RAID2                  = 0x509,     // lua: SetAllowLowLevelRaid
    SMSG_CAMERA_SHAKE                               = 0x468,     // 1128  - 4.0.0.12122, uint32 SpellEffectCameraShakes.dbc index, uint32
    SMSG_UPDATE_ITEM_ENCHANTMENTS                   = 0xC206,    // 49670 - 4.0.0.12122, some item update packet?
    UMSG_UNKNOWN_1292                               = 0x50C,     // not found
    SMSG_REDIRECT_CLIENT                            = 0x50D,     // uint32 ip, uint16 port, uint32 unk, uint8[20] hash (ip + port, seed=sessionkey)
    CMSG_REDIRECTION_FAILED                         = 0x50E,     // something with networking
    SMSG_UNKNOWN_1295                               = 0x50F,     //
    CMSG_UNKNOWN_1296                               = 0x510,     // something with networking
    SMSG_FORCE_SEND_QUEUED_PACKETS                  = 0xD960,    // 55648 - 4.0.0.12065
	CMSG_REDIRECTION_AUTH_PROOF                     = 0x512,     // something with networking 
    UMSG_UNKNOWN_1299                               = 0x513,     // not found
    SMSG_COMBAT_LOG_MULTIPLE                        = 0x9450,    // 37968 - 4.0.0.12122, SMSG, multi combatlog
    SMSG_LFG_OPEN_FROM_GOSSIP                       = 0x515,     // event EVENT_LFG_OPEN_FROM_GOSSIP (opens dungeon finder, probably for outdoor bosses)
    SMSG_UNKNOWN_1302                               = 0xD23A,    // 53818 - 4.0.0.12122, something with player movement (move event 58?)
    CMSG_UNKNOWN_1303                               = 0x517,     // something with player movement (move event 58?)
    SMSG_UNKNOWN_1304                               = 0xC474,    // 50292 - 4.0.0.12122, something with player movement (move event 58?), speed packet
    UMSG_UNKNOWN_1305                               = 0x519,     // not found
    UMSG_UNKNOWN_1306                               = 0x51A,     // not found
    CMSG_UNKNOWN_1307                               = 0x51B,     // Lua_CommentatorSetSkirmishMatchmakingMode and Lua_CommentatorRequestSkirmishQueueData
    SMSG_UNKNOWN_1308                               = 0x51C,     // EVENT_COMMENTATOR_SKIRMISH_QUEUE_REQUEST
    CMSG_UNKNOWN_1309                               = 0x51D,     // Lua_Transform
    SMSG_UNKNOWN_1310                               = 0x8BEB,    // 35819 - 4.0.0.12065, ERR_ALTERED_FORM_CANT_TRANSFORM_RIGHT_NOW or ERR_ALTERED_FORM_CAN_NEVER_TRANSFORM
    SMSG_UNKNOWN_1311                               = 0x401C,    // 16412 - 4.0.0.12122, related to transform
    SMSG_UNKNOWN_1312                               = 0x42C,     // 1068  - 4.0.0.12122, related to transform
    UMSG_UNKNOWN_1313                               = 0x521,     // not found
    SMSG_UNKNOWN_1314                               = 0xFDE7,    // 64999 - 4.0.0.12065, sets unit+4336 to value from packet
    SMSG_UNKNOWN_1315                               = 0xD63E,    // 54846 - 4.0.0.12122, related to opcode 0x522
    SMSG_UNKNOWN_1316                               = 0x0960,    // 2400  - 4.0.0.12065, sets unit+4338 to value from packet
    SMSG_UNKNOWN_1317                               = 0x4652,    // 18002 - 4.0.0.12122, sets unit+4340 to value from packet
    UMSG_UNKNOWN_1318                               = 0x526,     // not found
    UMSG_UNKNOWN_1319                               = 0x527,     // not found
    CMSG_UNKNOWN_1320                               = 0x528,     // setcurrency console command?
    UMSG_UNKNOWN_1321                               = 0x529,     // not found
    UMSG_UNKNOWN_1322                               = 0x52A,     // not found
    UMSG_UNKNOWN_1323                               = 0x52B,     // not found
    UMSG_UNKNOWN_1324                               = 0x52C,     // not found
    UMSG_UNKNOWN_1325                               = 0x52D,     // not found
    UMSG_UNKNOWN_1326                               = 0x52E,     // not found
    UMSG_UNKNOWN_1327                               = 0x52F,     // not found
    UMSG_UNKNOWN_1328                               = 0x530,     // not found
    SMSG_UNKNOWN_1329                               = 0x4D6F,    // 19823 - 4.0.0.12065, faction related
    UMSG_UNKNOWN_1330                               = 0x532,     // not found
    UMSG_UNKNOWN_1331                               = 0x533,     // not found
    UMSG_UNKNOWN_1332                               = 0x534,     // not found
    UMSG_UNKNOWN_1333                               = 0x535,     // not found
    UMSG_UNKNOWN_1334                               = 0x536,     // not found
	UMSG_UNKNOWN_1335                               = 0xEB64,    // 60260 - 4.0.0.12065 ,not found
	UMSG_UNKNOWN_1336                               = 0x8DE6,    // 36326 - 4.0.0.12065 ,not found
	UMSG_UNKNOWN_1337                               = 0xED63,    // 60771 - 4.0.0.12065 ,not found
	UMSG_UNKNOWN_1338                               = 0xABE4,    // 44004 - 4.0.0.12065 ,not found
	UMSG_UNKNOWN_1339								= 0xD6D,     // 3437  - 4.0.0.12065 ,not found
	NUM_MSG_TYPES                                   = 0xFFFF
```

----------


## doityourself

also CMSG_READY_FOR_ACCOUNT_DATA_TIMES = 0xC426,

is correct. found this in wow.-exe

---------- Post added at 04:26 PM ---------- Previous post was at 04:24 PM ----------



Error message: authentification failed -.-^^

----------


## Haith

Yeah I'v been playing around with your core since the first day you posted it on [site name edited out] (The other forum you posted it on first lol)  :Stick Out Tongue: 

Try updating your char_enum's as well as create/delete, that was one fix I did before getting into the realmlist my first time:

[Edit]: I removed the comments from the codes below, as they contained the old decimal opcodes, which don't match my new hex ones  :Stick Out Tongue: 



```
CMSG_CHAR_CREATE                                = 0x9202,   
    CMSG_CHAR_ENUM                                  = 0xC636,    
    CMSG_CHAR_DELETE                                = 0x1048,  
    SMSG_CHAR_CREATE              = 0xC634,
    SMSG_CHAR_ENUM                = 0xD07E,
    SMSG_CHAR_DELETE                                = 0x8012,
```

-Haith

----------


## doityourself

This opcodes are already in diamondcore^^

---------- Post added at 04:37 PM ---------- Previous post was at 04:36 PM ----------

ahh ok it was another reason.

I have forgiotten a change :P

----------


## Haith

Oh, haha, oops. Glad you got it working  :Stick Out Tongue:

----------


## doityourself

your CMSG_GAMEOBJECT_QUERY = 0x427C is worng must be
0x904A

---------- Post added at 05:02 PM ---------- Previous post was at 04:49 PM ----------

and SMSG_COMPRESSED_MOVES is:
SMSG_COMPRESSED_MOVES = 0xD240, // 53824 - 4.0.0.12122

and your SMSG_CLIENTCACHE_VERSION is wrong, too must be
SMSG_CLIENTCACHE_VERSION = 0x9650

but thanks for the other opcodes

----------


## Haith

I found a few more new ones, which seemed to correct some errors that my WorldServer was complaining about**:



```
[Edit]: Unsure about these opcodes so removing them for now.
```



---------- Post added at 07:04 PM ---------- Previous post was at 06:50 PM ----------

Has anyone managed to find the use for the opcodes 0x2000 and 0x122C? They seem to be giving me trouble.

----------


## Hiperzone

haith or someone else, i tried to do a patchdiff 2 from 11927 to 12122 build and im having a problem where a few unmatched functions are displayed in the identical function window, more precisely the cDatastore functions. I dont know whats wrong, can you check if that happens to you also?

----------


## doityourself

4.0.0.12164 is out

----------


## califpornia

with unchanged opcode IDs

----------


## doityourself

yes. I'm happy  :Smile:

----------


## doityourself

grr need new updatefields from 12164 -.-

----------


## DarkLinux

How often do they change the offset values. They come out with updates to often I think. But to they change every time?

----------


## doityourself

I have the wow offset dumper, but he is outdated. I know that the descriptornames are removed since 400.

----------


## Flushie

/----- (004BC690) --------------------------------------------------------
void __cdecl sub_4BC690()
{
void *v0; // [email protected]

if ( !dword_C1C980 )
{
v0 = sub_7A6F40(57752, (int)".\\FriendList.cpp", 1207, 0);
if ( v0 )
dword_C1C980 = sub_4B68E0(v0);
else
dword_C1C980 = 0;
sub_4B3B80(0x2FEDu, (int)sub_4BC370, 0);
sub_4B3B80(0x3B68u, (int)sub_4B69D0, 0);
sub_4B3B80(0xCBEBu, (int)sub_4B6A10, 0);
sub_4B3B80(0xBFECu, (int)sub_4BC350, 0);
sub_4B3B80(0x7FECu, (int)sub_4BC300, 0);
sub_5F9E60((int)"whois", (int)sub_4B78F0, 0, (int)"Ask the server to do an account/real name lookup on a character name");


That pretty ****ed up haha, looks like a decompile of assembly. Looks like we have the main function, that then creates a
pointer of type void (this will we need to be typecasted if you want to use it correctly, void doesn't have a Definied-Memory usage)
Then you have something about if its not double word, then continue. v0 now points to most likely a void function that
takes an integer, and then looks like another in a typecasted number?, and a couple of more integers.
then you have an if statement, and then an else, basicly looks like a check to see if v0 worked correctly.

----------


## XTZGZoReX

> That pretty ****ed up haha, looks like a decompile of assembly.


Oh really?

----------


## MaiN

> /----- (004BC690) --------------------------------------------------------
> void __cdecl sub_4BC690()
> {
> void *v0; // [email protected]
> 
> if ( !dword_C1C980 )
> {
> v0 = sub_7A6F40(57752, (int)".\\FriendList.cpp", 1207, 0);
> if ( v0 )
> ...


A void pointer is just a pointer to anything.

----------


## Flushie

Yes it can point to anything as long as its typecasted

----------


## XTZGZoReX

> That pretty ****ed up haha, looks like a decompile of assembly. Looks like we have the main function, that then creates a
> pointer of type void (this will we need to be typecasted if you want to use it correctly, void doesn't have a Definied-Memory usage)
> Then you have something about if its not double word, then continue. v0 now points to most likely a void function that
> takes an integer, and then looks like another in a typecasted number?, and a couple of more integers.
> then you have an if statement, and then an else, basicly looks like a check to see if v0 worked correctly.


At least 5 things were not correct.

----------


## doityourself

Patch 4.0.0.12232

Cataclysm Beta realms going live, blizzard have extended maintance today

NO opcode changes in this patch again. Need only new updatefields.

And they have changeed the spell.dbc fields from 178 to 48 Oo


We will be performing extended maintenance on the realms listed below on wednesday, June 16th, beginning at 00:01 CEST. The maintenance is scheduled for 24 hours as we prepare for the upcoming expansion. These realms will be playable again at approximately 23:59 on wednesday, June 16th.

----------


## Hiperzone

hmm haith
SMSG_COMPRESSED_MOVES = 0x49E0, // Haith

how you got this one cause the one i have, got a diferent opcode and acording to my research its correct. The weird thing is i got that one also before and i dont know how i got it lol.

----------


## Hurrr

Has anyone looked at build 12479 yet?

----------


## doityourself

hmm yes. many opcodes have been changed again but not all opcodes. 

I have changed some opcodes to fix stuck on connected and a few other opcode errors.

Commit f0e7182bebbab0bcb63b51882f1b1001182e5e4f to Fabi's diamondcore - GitHub


and I hope that this dbc fixes are right  :Stick Out Tongue: 

http://github.com/Fabi/diamondcore/c...bd300f90aa924d

----------


## Hurrr

> hmm yes. many opcodes have been changed again but not all opcodes. 
> 
> I have changed some opcodes to fix stuck on connected and a few other opcode errors.


Ah nice. I think I'm going to go opcode hunting again myself tonight since there are no working sandboxes atm and I'm bored.

----------


## doityourself

world entering need fix :P

----------


## doityourself

> Ah nice. I think I'm going to go opcode hunting again myself tonight since there are no working sandboxes atm and I'm bored.



maybe you can help to search some opcodes in 12539/12604 i both are the same. I have found some opcodes, but need a little help. hmm can't find SMSG_AUTH_CHALLENGE

---------- Post added at 11:26 PM ---------- Previous post was at 10:16 PM ----------

now 12644 :P same opcodes

----------


## Hurrr

> maybe you can help to search some opcodes in 12539/12604 i both are the same. I have found some opcodes, but need a little help. hmm can't find SMSG_AUTH_CHALLENGE
> 
> ---------- Post added at 11:26 PM ---------- Previous post was at 10:16 PM ----------
> 
> now 12644 :P same opcodes


I'm lazy as **** and I have other things to do that distract me from this, I'm not going to make promises anymore but I'll try to muster some motivation :|
By the way has anyone not in the beta got their hands on the new downloader yet? Because we're stuck with 12644 until then.

----------


## Hurrr

Found it: enUS WoW Patch Mirror
New installer for build 12635, then it should patch to build 12694 with the new downloader.

----------


## doityourself

opcodes not changed since 12539. but I stuck on the world loading screen.

----------


## andy012345

Looks like the redirection system from bnet is now also used for game servers. When connected you now do.

Connect to bnet, auth
Connect to grunt, get realmlist,
Connect to realm
Disconnect from grunt

That brings you to char list.

Entering world then makes a new connection to the game server.
Switching servers (for example to instances) now creates a new game server connection and disconnects the old one (theres some challenge and proof that happens with this)

----------


## XTZGZoReX

> Connect to grunt, get realmlist,


Uh.. Grunt is not even used in 3.3.5a. Why would they use it in 4.x?

----------


## doityourself

nothing to do with a new connection I think. it's any other thing but don't know which

----------


## andy012345

Sorry Zor is right, the connection that connects and disconnects is realm connection (auth session, char enum, etc), no idea wtf the other one is, maybe used for redirection.

----------


## XTZGZoReX

To clarify: Since around 3.2.x or so (I forgot, to be honest), all authentication goes through Battle.net which uses auth modules to do the actual authentication. I'm not sure either why Andy's getting a connection on the old Grunt port, but I highly doubt that it's actually being used.

See this blog post for a 3.3.5a-compatible description of the redirection going on since 3.3.x: WoW 3.3.3a: New Battle.net Redirection « Zor&#039;s Blog - Note that it, apparently, behaves differently in 4.x, though.

----------


## doityourself

but connect works fine only stuck on the end of the world loading screen

12479 world login work
126xx world login work not

----------


## andy012345

Zor: the reason I'm thinking it's grunt is because some of the servers are on 3724 now. They also appear on 4000 and 6112.

And yeh some structures of the redirections have changed. They look the same though.

Maybe I should shout at hiperzone to make a post here on what's changed so far, but he's still busy trying to figure out which sockets handle which packets now.

----------


## XTZGZoReX

> Zor: the reason I'm thinking it's grunt is because some of the servers are on 3724 now. They also appear on 4000 and 6112.


Who knows, it's Blizzard... ****-ups and laziness are both common. Maybe they were just too lazy to reconfigure ports...

Do you have a packet dump from that connection? I can quickly tell if it's Battle.net traffic or not.




> Maybe I should shout at hiperzone to make a post here on what's changed so far, but he's still busy trying to figure out which sockets handle which packets now.


Hook WinSock functions and you're golden (socket, connect, recv, send, ...).

----------


## andy012345

No I mean which sockets handle which packets because of the redirection stuff, not because of bnet.

Example:

{SERVER} Packet: (0x998C) SMSG_LFG_UPDATE_PLAYER PacketSize = 2 Socket ID 9292
{SERVER} Packet: (0x924C) SMSG_AURA_UPDATE PacketSize = 10 Socket ID 10284

----------


## Cromon

For Client 12759 you can find the address of the function that handles a certain opcode like that:


```
public static uint CalcOff(uint opcode)
{
     uint a = (opcode >> 1) & 0x7000;
     uint b = opcode & 0x800;
     a |= b;
     a >>= 1;
     b = opcode & 0x3C0;
     a |= b;
     a >>= 1;
     b = opcode & 0x10;
     a |= b;
     a >>= 1;
     b = opcode & 0x06;
     a |= b;
     a >>= 1;
     uint off = a * 4 + 0x538;
     return off;
}


uint offset = CalcOff(myOpcode);
IntPtr funcAddr = Read<IntPtr>(0xCF55B4 + offset);
```

----------


## TOM_RUS

That code prints whole SMSG opcode handlers table as:
condensedId - handlerOffset - UnkOffset

Some opcodes still missing in this table as they have special handling...

You can convert opcodeId to it's condensedId using this code:


```
uint condensedId = (opcode & 6 | ((opcode & 0x10 | ((opcode & 0x3C0 | ((opcode & 0x800 | (opcode >> 1) & 0x7000) >> 1)) >> 1)) >> 1)) >> 1;
```

You have to be in world to dump opcode handlers table (client initializes it only after you enter world).



```
[StructLayout(LayoutKind.Sequential)]
struct ClientConnection
{
    public int vTable;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1280)]
    public byte[] unk1; // some crap, may be account name
    public int unk2;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
    public byte[] SessionKey;   // session key or pointer to session key...
    public int unk3;
    public int State;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2048)]
    public int[] Handlers;         // stores handler pointer
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2048)]
    public int[] HandlersState;  // stores some pointer
}

using (var pm = new ProcessMemory(GetProcess("Wow")))
{
    // offset for 4.0.0.12759
    var conn = pm.Read<ClientConnection>(pm.Read<uint>(0x00CF55B4));

    for (var i = 0; i < conn.Handlers.Length; ++i)
    {
        if (conn.Handlers[i] != 0 || conn.HandlersState[i] != 0)
            Console.WriteLine("{0:X4} - {1:X8} - {2:X8}", i, conn.Handlers[i], conn.HandlersState[i]);
    }
}
```

Handlers (build 12759) before world login:
http://paste2.org/p/951555
after entering world:
http://paste2.org/p/951556

----------


## Hiperzone

alright i will contribute with my research so far.
this is what the server does after connecting the the character list server.
It will create 2 connections, one for the realm server aka for example "Grim Batol" server
and second one will be created once entering world to handle most of world opcodes.
Packets are split between the realm and world servers, i cant tell wich ones atm but a quick IDA search leads to over 20 or so opcodes wich are handled in a special switch.

this is the actual struct of the redirection protocol but im stuck atm after proof.

SMSG_REDIRECT_CLIENT
uint8 connection index //-> connection 1 -> 0x00, connection 2: 0x01
uint32 token // -> 0x0B is used on all the logs i got
uint32 Ip;
HMACSHA1 digest[20];
uint16 port;


theres the digest calculation:
HMACSHA1 sha(40, K.AsByteArray());
sha.UpdateData((uint8 *)&token, 4);
sha.UpdateData((uint8 *)&Ip, 4);
sha.UpdateData((uint8 *)&_acct->redirectionindex, 1);
sha.UpdateData((uint8 *)&port, 2);
sha.Finalize();

after this opcode CHALLENGE is requested and client replies with CMSG_REDIRECTION_AUTH_PROOF

CMSG_REDIRECTION_AUTH_PROOF
uint64 unk;
SHA1 DIGEST[20];
string account;

digest then can be verified with:
Sha1Hash sha;
sha.Initialize();
sha.UpdateData(accountt);
sha.UpdateData(K.AsByteArray(),40);
sha.UpdateData((uint8*)&_seed,4);
sha.Finalize();

if (memcmp(sha.GetDigest(), digest, 20)) { failed }

now the problematic part where im stuck.
on the first connection.
server sends SMSG_UNKOP_1295 with uint32 0x0F from the character list connection;
wich then client replies with another opcode with the same value. opcode 0x8A20

if i send it like that, client stops accepting any packets i send and will disconnect the main connection once my sandbox sends a pong after a few seconds of wait.
NOTE: the new connection is still kept alive but its useless since the client dced and didnt do the switch propely.
once 0x8A20 is sent. SERVER will send SMSG_FORCE_SEND_QUEUED_PACKETS on the new connection made.
END

once you enter world a second connection is made
wich will CHALLENGE AND PROOF like the first one but except now server will only send
SMSG_FORCE_SEND_QUEUED_PACKETS.

everything from here should now work as intended.

NOTE: CHALLENGE uint8 var seems to alternate between 1 and 6, 1 on the first connection and 6 on the second one.

prolly tom can research this better and find where the problem is, i cant seem to find the reason why it isnt working, i simulate the packet order etc fine.
It might be a crypt issue, i tried many things but no luck, and i dont have any means atm to check if the packet is really received from the client since the logger doesnt log anything.

thats all i can help.

ports used for both connections are 6112.
atm i cant provide a log with the nwest version since i need to fix some stuff but i got a semi decent log from the previous build if you want, its only missing cmsg opcodes after login.
GL  :Wink: 

---------- Post added at 01:49 PM ---------- Previous post was at 01:35 PM ----------

heres a decent log Paste2: Next Generation Pastebin - Viewing Paste 951540

----------


## Flushie

Its very interesting, now I have a question did you pull this code out of IDA pro? Or did you do a decompile of it? I am just curious because I have been wondering how exactly you managed to get the exact parameters the function took.

----------


## Hiperzone

i used packet logs and old research data with the help of IDA also to fill up the missing stuff.
thx goes to zor and tom for adding/commenting the 3.3.5 stuff.

----------


## Woweur

Handler for 4.0.1 13131 release : Paste2: Next Generation Pastebin - Viewing Paste 1015725

----------

