* update to support client version 2.4.1 (build 8125)

This commit is contained in:
bluma4862 2008-04-25 15:11:05 +00:00
parent 170006b659
commit 14a2a04e94
16 changed files with 582 additions and 495 deletions

View File

@ -62,8 +62,8 @@ charname=Pseuwow
// Client emulation configuration // Client emulation configuration
ClientVersion=2.3.3 ClientVersion=2.4.1
ClientBuild=7799 ClientBuild=8125
ClientLanguage=enUS ClientLanguage=enUS
// or change to enGB, deDE, ... // or change to enGB, deDE, ...

View File

@ -12,7 +12,7 @@
#permission=10 #permission=10
SET,lang ${@1} SET,lang ${@1}
DEFAULT,lang 0 DEFAULT,lang 0
SENDCHATMESSAGE,14,{${lang}},{${@def}},{${@0}} SENDCHATMESSAGE,17,{${lang}},{${@def}},{${@0}}
UNSET lang UNSET lang
@ -75,7 +75,7 @@ DEFAULT,lang ${#DEFAULTLANG}
LOGDEBUG * Saying '${msg}' in lang ${lang} LOGDEBUG * Saying '${msg}' in lang ${lang}
SENDCHATMESSAGE,0,${lang},{${msg}} SENDCHATMESSAGE,1,${lang},{${msg}}
UNSET lang UNSET lang
UNSET msg UNSET msg
@ -93,7 +93,7 @@ default,lang 0
LOGDEBUG * Saying '${msg}' in lang ${lang} to guild LOGDEBUG * Saying '${msg}' in lang ${lang} to guild
SENDCHATMESSAGE,3,${lang},{${msg}} SENDCHATMESSAGE,4,${lang},{${msg}}
UNSET lang UNSET lang
UNSET msg UNSET msg
@ -118,7 +118,7 @@ default,lang 0
LOGDEBUG * Saying '${msg}' in lang ${lang} to party LOGDEBUG * Saying '${msg}' in lang ${lang} to party
SENDCHATMESSAGE,1,${lang},{${msg}} SENDCHATMESSAGE,2,${lang},{${msg}}
UNSET lang UNSET lang
UNSET msg UNSET msg
@ -168,7 +168,7 @@ DEFAULT,lang ${#DEFAULTLANG}
LOGDEBUG * Whisp to '{${player}}' '{${msg}}' in lang '${lang}' LOGDEBUG * Whisp to '{${player}}' '{${msg}}' in lang '${lang}'
SENDCHATMESSAGE,6,{${lang}},{${msg}},{${player}} SENDCHATMESSAGE,7,{${lang}},{${msg}},{${player}}
UNSET lang UNSET lang
UNSET msg UNSET msg
UNSET player UNSET player
@ -189,7 +189,7 @@ DEFAULT,lang ${#DEFAULTLANG}
LOGDEBUG * Yelling '${msg}' in lang ${lang} LOGDEBUG * Yelling '${msg}' in lang ${lang}
SENDCHATMESSAGE,5,${lang},{${msg}} SENDCHATMESSAGE,6,${lang},{${msg}}
UNSET lang UNSET lang
UNSET msg UNSET msg
@ -223,7 +223,7 @@ DEFAULT,lang ${#DEFAULTLANG}
LOGDEBUG * Me ${msg} (in lang ${lang}) LOGDEBUG * Me ${msg} (in lang ${lang})
SENDCHATMESSAGE,8,${lang},{${msg}} SENDCHATMESSAGE,10,${lang},{${msg}}
UNSET lang UNSET lang
UNSET msg UNSET msg

View File

@ -49,8 +49,8 @@ file->read(&header,sizeof(ModelHeader));
//Name -> not very important I think, but save it nontheless; //Name -> not very important I think, but save it nontheless;
//M2MeshName.clear(); //M2MeshName.clear();
//M2MeshName.reserve(header.nameLength); //M2MeshName.reserve(header.nameLength);
file->seek(header.nameOfs); //file->seek(header.nameOfs);
// file->read(&M2MeshName[0],header.nameLength); //file->read(&M2MeshName[0],header.nameLength);
//std::cout << "Read name:"<<M2MeshName.c_str()<<"Size: "<< M2MeshName.size() <<"|"<<M2MeshName[0]<< "\n"; //std::cout << "Read name:"<<M2MeshName.c_str()<<"Size: "<< M2MeshName.size() <<"|"<<M2MeshName[0]<< "\n";
//logger->log("Mesh Name",M2MeshName.c_str(),ELL_INFORMATION); //logger->log("Mesh Name",M2MeshName.c_str(),ELL_INFORMATION);
//Now we load all kinds of data from the file //Now we load all kinds of data from the file
@ -217,7 +217,7 @@ for(u32 i=0;i<M2MVertices.size();i++)
if (Mesh) if (Mesh)
Mesh->drop(); // crash on vc9 Mesh->drop();
Mesh=new SMesh(); Mesh=new SMesh();
@ -288,6 +288,18 @@ Mesh = 0;
aniMesh->recalculateBoundingBox(); aniMesh->recalculateBoundingBox();
M2MTriangles.clear();
M2Vertices.clear();
M2Indices.clear();
M2MIndices.clear();
M2MVertices.clear();
M2MRenderFlags.clear();
M2MTextureUnit.clear();
M2MTextureDef.clear();
M2MSubmeshes.clear();
M2MTextureFiles.clear();
M2MTextureLookup.clear();
M2MViews.clear();
return aniMesh; return aniMesh;
} }

View File

@ -44,6 +44,7 @@ video::SColor Scene::GetBackgroundColor(void)
Scene::~Scene() Scene::~Scene()
{ {
delete cursor;
DEBUG(logdebug("Scene::~Scene()")); DEBUG(logdebug("Scene::~Scene()"));
} }

View File

@ -282,7 +282,10 @@ void SceneWorld::OnDraw(void)
void SceneWorld::OnDelete(void) void SceneWorld::OnDelete(void)
{ {
DEBUG(logdebug("~SceneWorld()")); DEBUG(logdebug("~SceneWorld()"));
_doodads.clear();
gui->domgr.Clear(); gui->domgr.Clear();
delete camera;
delete eventrecv;
//sky->drop(); //sky->drop();
} }

View File

@ -1,8 +1,8 @@
#ifndef _HELPERDEFS_H #ifndef _HELPERDEFS_H
#define _HELPERDEFS_H #define _HELPERDEFS_H
#define GUID_HIPART(x) (*(((uint32*)&(x))+1)) #define GUID_HIPART(x) (*(((uint16*)&(x))+3))
#define GUID_LOPART(x) (*((uint32*)&(x))) #define GUID_LOPART(x) ((uint32)(uint64(x) & 0x00FFFFFF))
#define MAKE_GUID(l, h) uint64( uint32(l) | ( uint64(h) << 32 ) ) #define MAKE_GUID(l, h) uint64( uint32(l) | ( uint64(h) << 32 ) )
#define CHAT_ITEM_BEGIN_STRING "|Hitem:" #define CHAT_ITEM_BEGIN_STRING "|Hitem:"

View File

@ -89,7 +89,9 @@ struct sAuthLogonProof_S
uint8 cmd; uint8 cmd;
uint8 error; uint8 error;
uint8 M2[20]; uint8 M2[20];
uint16 unk1;
uint32 unk2; uint32 unk2;
uint32 unk3;
}; };
RealmSession::RealmSession(PseuInstance* instance) RealmSession::RealmSession(PseuInstance* instance)

View File

@ -32,8 +32,7 @@ void Object::Create( uint64 guid )
if(!_uint32values) if(!_uint32values)
_InitValues(); _InitValues();
SetUInt32Value( OBJECT_FIELD_GUID, GUID_LOPART(guid) ); SetUInt64Value( OBJECT_FIELD_GUID, guid );
SetUInt32Value( OBJECT_FIELD_GUID+1, GUID_HIPART(guid) );
SetUInt32Value( OBJECT_FIELD_TYPE, _type ); SetUInt32Value( OBJECT_FIELD_TYPE, _type );
} }

View File

@ -82,6 +82,10 @@ public:
{ {
_uint32values[ index ] = value; _uint32values[ index ] = value;
} }
inline void SetUInt64Value( uint16 index, uint64 value )
{
*((uint64*)&(_uint32values[ index ])) = value;
}
inline void SetName(std::string name) { _name = name; } inline void SetName(std::string name) { _name = name; }
inline std::string GetName(void) { return _name; } inline std::string GetName(void) { return _name; }
@ -160,7 +164,6 @@ inline uint8 GetTypeIdByGuid(uint64 guid)
case HIGHGUID_PLAYER: case HIGHGUID_PLAYER:
return TYPEID_PLAYER; return TYPEID_PLAYER;
case HIGHGUID_CORPSE: case HIGHGUID_CORPSE:
case HIGHGUID_PLAYER_CORPSE: // not sure
return TYPEID_CORPSE; return TYPEID_CORPSE;
case HIGHGUID_ITEM: // == HIGHGUID_CONTAINER case HIGHGUID_ITEM: // == HIGHGUID_CONTAINER
return TYPEID_ITEM; return TYPEID_ITEM;

View File

@ -21,16 +21,16 @@
enum HighGuid enum HighGuid
{ {
HIGHGUID_ITEM = 0x40000000, // blizz 40000000 HIGHGUID_ITEM = 0x4000, // blizz 4000
HIGHGUID_CONTAINER = 0x40000000, // blizz 40000000 HIGHGUID_CONTAINER = 0x4000, // blizz 4000
HIGHGUID_UNIT = 0xF0070000, // blizz F009????, where "????" is unit entry HIGHGUID_PLAYER = 0x0000, // blizz 0000
HIGHGUID_PLAYER = 0x00000000, // blizz 00000000 HIGHGUID_GAMEOBJECT = 0xF110, // blizz F110
HIGHGUID_GAMEOBJECT = 0xF0060000, // blizz F0090000 HIGHGUID_TRANSPORT = 0xF120, // blizz F120 (for GAMEOBJECT_TYPE_TRANSPORT)
HIGHGUID_DYNAMICOBJECT = 0xF00A0000, // blizz F0090000, F0320000 HIGHGUID_UNIT = 0xF130, // blizz F130
HIGHGUID_CORPSE = 0xF0090000, // blizz F0090000, F0320000 HIGHGUID_PET = 0xF140, // blizz F140
HIGHGUID_PLAYER_CORPSE = 0xF0080000, // blizz F0090000, F0320000 HIGHGUID_DYNAMICOBJECT = 0xF100, // blizz F100
HIGHGUID_MO_TRANSPORT = 0x1FC00000, // blizz 1FC00000 (type 15) HIGHGUID_CORPSE = 0xF101, // blizz F100
HIGHGUID_TRANSPORT = 0x1FA70000 // blizz 1FA70000 (type 11) HIGHGUID_MO_TRANSPORT = 0x1FC0, // blizz 1FC0 (for GAMEOBJECT_TYPE_MO_TRANSPORT)
}; };
#define IS_CREATURE_GUID(Guid) ( GUID_HIPART(Guid) == HIGHGUID_UNIT ) #define IS_CREATURE_GUID(Guid) ( GUID_HIPART(Guid) == HIGHGUID_UNIT )

View File

@ -1052,7 +1052,38 @@ const char* worldOpcodeNames[] =
"MSG_UNKNOWN_1020", // MSG_UNKNOWN_1020 "MSG_UNKNOWN_1020", // MSG_UNKNOWN_1020
"MSG_UNKNOWN_1021", // MSG_UNKNOWN_1021 "MSG_UNKNOWN_1021", // MSG_UNKNOWN_1021
"MSG_GUILD_INFO_LOG", // MSG_GUILD_INFO_LOG "MSG_GUILD_INFO_LOG", // MSG_GUILD_INFO_LOG
"" // last entry should be empty "MSG_UNKNOWN_1023", // MSG_UNKNOWN_1023
"CMSG_UNKNOWN_1024", // CMSG_UNKNOWN_1024
"SMSG_MIRRORIMAGE_DATA", // SMSG_UNKNOWN_1025
"SMSG_FORCE_DISPLAY_UPDATE", // SMSG_UNKNOWN_1026
"UMSG_UNKNOWN_1027", // UMSG_UNKNOWN_1027
"UMSG_UNKNOWN_1028", // UMSG_UNKNOWN_1028
"UMSG_UNKNOWN_1029", // UMSG_UNKNOWN_1029
"CMSG_UNKNOWN_1030", // CMSG_UNKNOWN_1030
"SMSG_UNKNOWN_1031", // SMSG_UNKNOWN_1031
"CMSG_GROUP_PASS_ON_LOOT_TOGGLE", // CMSG_GROUP_PASS_ON_LOOT_TOGGLE
"MSG_GUILD_BANK_TAB_TEXT", // MSG_GUILD_BANK_TAB_TEXT
"CMSG_GUILD_BANK_SET_TAB_TEXT", // CMSG_GUILD_BANK_SET_TAB_TEXT
"UMSG_UNKNOWN_1035", // UMSG_UNKNOWN_1035
"CMSG_UNKNOWN_1036", // CMSG_UNKNOWN_1036
"UMSG_UNKNOWN_1037", // SMSG_UNKNOWN_1037
"UMSG_UNKNOWN_1038", // SMSG_UNKNOWN_1038
"CMSG_UNKNOWN_1039", // CMSG_UNKNOWN_1039
"SMSG_GROUP_ACTION_THROTTLED", // SMSG_GROUP_ACTION_THROTTLED
"SMSG_UNKNOWN_1041", // SMSG_UNKNOWN_1041
"SMSG_UNKNOWN_1042", // SMSG_UNKNOWN_1042
"CMSG_UNKNOWN_1043", // CMSG_UNKNOWN_1043
"UMSG_UNKNOWN_1044", // UMSG_UNKNOWN_1044
"UMSG_UNKNOWN_1045", // UMSG_UNKNOWN_1045
"CMSG_QUESTGIVER_STATUS_QUERY_MULTIPLE", // CMSG_QUESTGIVER_STATUS_QUERY_MULTIPLE
"SMSG_QUESTGIVER_STATUS_QUERY_MULTIPLE_RESPONSE", // SMSG_QUESTGIVER_STATUS_QUERY_MULTIPLE_RESPONSE
"CMSG_UNKNOWN_1048", // CMSG_UNKNOWN_1048
"SMSG_UNKNOWN_1049", // SMSG_UNKNOWN_1049
"UMSG_UNKNOWN_1050", // UMSG_UNKNOWN_1050
"UMSG_UNKNOWN_1051", // UMSG_UNKNOWN_1051
"UMSG_UNKNOWN_1052", // UMSG_UNKNOWN_1052
"SMSG_UNKNOWN_1053", // SMSG_UNKNOWN_1053
""
}; };
const char *GetOpcodeName(unsigned int id) const char *GetOpcodeName(unsigned int id)

View File

@ -56,15 +56,15 @@ enum OpCodes
CMSG_FORCEACTION = 24, CMSG_FORCEACTION = 24,
CMSG_FORCEACTIONONOTHER = 25, CMSG_FORCEACTIONONOTHER = 25,
CMSG_FORCEACTIONSHOW = 26, CMSG_FORCEACTIONSHOW = 26,
SMSG_FORCEACTIONSHOW = 27, SMSG_FORCEACTIONSHOW = 27, // uint32, uint32
SMSG_ATTACKERSTATEUPDATEDEBUGINFO_OBSOLETE = 28, SMSG_ATTACKERSTATEUPDATEDEBUGINFO_OBSOLETE = 28,
SMSG_DEBUGINFOSPELL_OBSOLETE = 29, SMSG_DEBUGINFOSPELL_OBSOLETE = 29, // uint8, pet god mode
SMSG_DEBUGINFOSPELLMISS_OBSOLETE = 30, SMSG_DEBUGINFOSPELLMISS_OBSOLETE = 30,
SMSG_DEBUG_PLAYER_RANGE_OBSOLETE = 31, SMSG_DEBUG_PLAYER_RANGE_OBSOLETE = 31,
CMSG_UNDRESSPLAYER = 32, CMSG_UNDRESSPLAYER = 32,
CMSG_BEASTMASTER = 33, CMSG_BEASTMASTER = 33,
CMSG_GODMODE = 34, CMSG_GODMODE = 34,
SMSG_GODMODE = 35, SMSG_GODMODE = 35, // uint8, god mode
CMSG_CHEAT_SETMONEY = 36, CMSG_CHEAT_SETMONEY = 36,
CMSG_LEVEL_CHEAT = 37, CMSG_LEVEL_CHEAT = 37,
CMSG_PET_LEVEL_CHEAT = 38, CMSG_PET_LEVEL_CHEAT = 38,
@ -136,24 +136,24 @@ enum OpCodes
SMSG_FRIEND_STATUS = 104, SMSG_FRIEND_STATUS = 104,
CMSG_ADD_FRIEND = 105, CMSG_ADD_FRIEND = 105,
CMSG_DEL_FRIEND = 106, CMSG_DEL_FRIEND = 106,
SMSG_IGNORE_LIST = 107, CMSG_FRIEND_SET_NOTE = 107,
CMSG_ADD_IGNORE = 108, CMSG_ADD_IGNORE = 108,
CMSG_DEL_IGNORE = 109, CMSG_DEL_IGNORE = 109,
CMSG_GROUP_INVITE = 110, CMSG_GROUP_INVITE = 110,
SMSG_GROUP_INVITE = 111, SMSG_GROUP_INVITE = 111, // string
CMSG_GROUP_CANCEL = 112, CMSG_GROUP_CANCEL = 112,
SMSG_GROUP_CANCEL = 113, SMSG_GROUP_CANCEL = 113, // string
CMSG_GROUP_ACCEPT = 114, CMSG_GROUP_ACCEPT = 114,
CMSG_GROUP_DECLINE = 115, CMSG_GROUP_DECLINE = 115,
SMSG_GROUP_DECLINE = 116, SMSG_GROUP_DECLINE = 116, // string
CMSG_GROUP_UNINVITE = 117, CMSG_GROUP_UNINVITE = 117,
CMSG_GROUP_UNINVITE_GUID = 118, CMSG_GROUP_UNINVITE_GUID = 118,
SMSG_GROUP_UNINVITE = 119, SMSG_GROUP_UNINVITE = 119, // empty
CMSG_GROUP_SET_LEADER = 120, CMSG_GROUP_SET_LEADER = 120,
SMSG_GROUP_SET_LEADER = 121, SMSG_GROUP_SET_LEADER = 121, // string
CMSG_LOOT_METHOD = 122, CMSG_LOOT_METHOD = 122,
CMSG_GROUP_DISBAND = 123, CMSG_GROUP_DISBAND = 123,
SMSG_GROUP_DESTROYED = 124, SMSG_GROUP_DESTROYED = 124, // empty
SMSG_GROUP_LIST = 125, SMSG_GROUP_LIST = 125,
SMSG_PARTY_MEMBER_STATS = 126, SMSG_PARTY_MEMBER_STATS = 126,
SMSG_PARTY_COMMAND_RESULT = 127, SMSG_PARTY_COMMAND_RESULT = 127,
@ -304,7 +304,7 @@ enum OpCodes
CMSG_DROP_ITEM = 272, CMSG_DROP_ITEM = 272,
CMSG_DESTROYITEM = 273, CMSG_DESTROYITEM = 273,
SMSG_INVENTORY_CHANGE_FAILURE = 274, SMSG_INVENTORY_CHANGE_FAILURE = 274,
SMSG_OPEN_CONTAINER = 275, SMSG_OPEN_CONTAINER = 275, // uint64
CMSG_INSPECT = 276, CMSG_INSPECT = 276,
SMSG_INSPECT = 277, SMSG_INSPECT = 277,
CMSG_INITIATE_TRADE = 278, CMSG_INITIATE_TRADE = 278,
@ -372,7 +372,7 @@ enum OpCodes
CMSG_SETDEATHBINDPOINT = 340, CMSG_SETDEATHBINDPOINT = 340,
SMSG_BINDPOINTUPDATE = 341, SMSG_BINDPOINTUPDATE = 341,
CMSG_GETDEATHBINDZONE = 342, CMSG_GETDEATHBINDZONE = 342,
SMSG_BINDZONEREPLY = 343, SMSG_BINDZONEREPLY = 343, // uint32, uint32
SMSG_PLAYERBOUND = 344, SMSG_PLAYERBOUND = 344,
SMSG_DEATH_NOTIFY_OBSOLETE = 345, SMSG_DEATH_NOTIFY_OBSOLETE = 345,
CMSG_REPOP_REQUEST = 346, CMSG_REPOP_REQUEST = 346,
@ -385,7 +385,7 @@ enum OpCodes
SMSG_LOOT_RELEASE_RESPONSE = 353, SMSG_LOOT_RELEASE_RESPONSE = 353,
SMSG_LOOT_REMOVED = 354, SMSG_LOOT_REMOVED = 354,
SMSG_LOOT_MONEY_NOTIFY = 355, SMSG_LOOT_MONEY_NOTIFY = 355,
SMSG_LOOT_ITEM_NOTIFY = 356, SMSG_LOOT_ITEM_NOTIFY = 356, // uint64, uint8, uint8, uint32, string
SMSG_LOOT_CLEAR_MONEY = 357, SMSG_LOOT_CLEAR_MONEY = 357,
SMSG_ITEM_PUSH_RESULT = 358, SMSG_ITEM_PUSH_RESULT = 358,
SMSG_DUEL_REQUESTED = 359, SMSG_DUEL_REQUESTED = 359,
@ -395,8 +395,8 @@ enum OpCodes
SMSG_DUEL_WINNER = 363, SMSG_DUEL_WINNER = 363,
CMSG_DUEL_ACCEPTED = 364, CMSG_DUEL_ACCEPTED = 364,
CMSG_DUEL_CANCELLED = 365, CMSG_DUEL_CANCELLED = 365,
SMSG_MOUNTRESULT = 366, // 0 - can't mount that unit, 1 - mount too far away, 2 - already mounted, 3 - that unit can't be mounted, 4 - that mount is not our pet, 5 - unknown mount error, 6 - can't mount while looting, 7 - cant mount because your race, 8 - shapeshifted, 9 - you dismount before continuing SMSG_MOUNTRESULT = 366, // uint32, 0 - can't mount that unit, 1 - mount too far away, 2 - already mounted, 3 - that unit can't be mounted, 4 - that mount is not our pet, 5 - unknown mount error, 6 - can't mount while looting, 7 - cant mount because your race, 8 - shapeshifted, 9 - you dismount before continuing
SMSG_DISMOUNTRESULT = 367, // 0 - int err, don't have pet to dismount, 1 - not mounted, 2 - int err, dismounting a non-pet SMSG_DISMOUNTRESULT = 367, // uint32, 0 - int err, don't have pet to dismount, 1 - not mounted, 2 - int err, dismounting a non-pet
SMSG_PUREMOUNT_CANCELLED_OBSOLETE = 368, SMSG_PUREMOUNT_CANCELLED_OBSOLETE = 368,
CMSG_MOUNTSPECIAL_ANIM = 369, CMSG_MOUNTSPECIAL_ANIM = 369,
SMSG_MOUNTSPECIAL_ANIM = 370, SMSG_MOUNTSPECIAL_ANIM = 370,
@ -435,13 +435,13 @@ enum OpCodes
CMSG_QUESTLOG_SWAP_QUEST = 403, CMSG_QUESTLOG_SWAP_QUEST = 403,
CMSG_QUESTLOG_REMOVE_QUEST = 404, CMSG_QUESTLOG_REMOVE_QUEST = 404,
SMSG_QUESTLOG_FULL = 405, SMSG_QUESTLOG_FULL = 405,
SMSG_QUESTUPDATE_FAILED = 406, SMSG_QUESTUPDATE_FAILED = 406, // uint32
SMSG_QUESTUPDATE_FAILEDTIMER = 407, SMSG_QUESTUPDATE_FAILEDTIMER = 407, // uint32
SMSG_QUESTUPDATE_COMPLETE = 408, SMSG_QUESTUPDATE_COMPLETE = 408, // uint32
SMSG_QUESTUPDATE_ADD_KILL = 409, SMSG_QUESTUPDATE_ADD_KILL = 409, // uint32, uint32, uint32, uint32, uint64
SMSG_QUESTUPDATE_ADD_ITEM = 410, SMSG_QUESTUPDATE_ADD_ITEM = 410, // unused (client has if(opcode == 410) return; in opcode handler)
CMSG_QUEST_CONFIRM_ACCEPT = 411, CMSG_QUEST_CONFIRM_ACCEPT = 411,
SMSG_QUEST_CONFIRM_ACCEPT = 412, SMSG_QUEST_CONFIRM_ACCEPT = 412, // uint32, string, uint64
CMSG_PUSHQUESTTOPARTY = 413, CMSG_PUSHQUESTTOPARTY = 413,
CMSG_LIST_INVENTORY = 414, CMSG_LIST_INVENTORY = 414,
SMSG_LIST_INVENTORY = 415, SMSG_LIST_INVENTORY = 415,
@ -465,13 +465,13 @@ enum OpCodes
SMSG_TRAINER_LIST = 433, SMSG_TRAINER_LIST = 433,
CMSG_TRAINER_BUY_SPELL = 434, CMSG_TRAINER_BUY_SPELL = 434,
SMSG_TRAINER_BUY_SUCCEEDED = 435, SMSG_TRAINER_BUY_SUCCEEDED = 435,
SMSG_TRAINER_BUY_FAILED = 436, SMSG_TRAINER_BUY_FAILED = 436, // uint64, uint32, uint32 (0 - unavailable, 1 - not enough money, 2 - enough skill
CMSG_BINDER_ACTIVATE = 437, CMSG_BINDER_ACTIVATE = 437,
SMSG_PLAYERBINDERROR = 438, // You already bound there. SMSG_PLAYERBINDERROR = 438, // You already bound there.
CMSG_BANKER_ACTIVATE = 439, CMSG_BANKER_ACTIVATE = 439,
SMSG_SHOW_BANK = 440, SMSG_SHOW_BANK = 440,
CMSG_BUY_BANK_SLOT = 441, CMSG_BUY_BANK_SLOT = 441,
SMSG_BUY_BANK_SLOT_RESULT = 442, SMSG_BUY_BANK_SLOT_RESULT = 442, // uint32
CMSG_PETITION_SHOWLIST = 443, CMSG_PETITION_SHOWLIST = 443,
SMSG_PETITION_SHOWLIST = 444, SMSG_PETITION_SHOWLIST = 444,
CMSG_PETITION_BUY = 445, CMSG_PETITION_BUY = 445,
@ -566,7 +566,7 @@ enum OpCodes
MSG_CORPSE_QUERY = 534, MSG_CORPSE_QUERY = 534,
CMSG_GMTICKET_DELETETICKET = 535, CMSG_GMTICKET_DELETETICKET = 535,
SMSG_GMTICKET_DELETETICKET = 536, SMSG_GMTICKET_DELETETICKET = 536,
SMSG_CHAT_WRONG_FACTION = 537, // You can only whisper to the members of your alliance. SMSG_CHAT_WRONG_FACTION = 537, // empty, You can only whisper to the members of your alliance.
CMSG_GMTICKET_SYSTEMSTATUS = 538, CMSG_GMTICKET_SYSTEMSTATUS = 538,
SMSG_GMTICKET_SYSTEMSTATUS = 539, SMSG_GMTICKET_SYSTEMSTATUS = 539,
CMSG_SPIRIT_HEALER_ACTIVATE = 540, CMSG_SPIRIT_HEALER_ACTIVATE = 540,
@ -639,7 +639,7 @@ enum OpCodes
SMSG_AUCTION_OWNER_NOTIFICATION = 607, SMSG_AUCTION_OWNER_NOTIFICATION = 607,
SMSG_PROCRESIST = 608, SMSG_PROCRESIST = 608,
SMSG_STANDSTATE_CHANGE_FAILURE = 609, SMSG_STANDSTATE_CHANGE_FAILURE = 609,
SMSG_DISPEL_FAILED = 610, SMSG_DISPEL_FAILED = 610, // uint64, uint64, uint32, uint32 (for?)
SMSG_SPELLORDAMAGE_IMMUNE = 611, SMSG_SPELLORDAMAGE_IMMUNE = 611,
CMSG_AUCTION_LIST_BIDDER_ITEMS = 612, CMSG_AUCTION_LIST_BIDDER_ITEMS = 612,
SMSG_AUCTION_BIDDER_LIST_RESULT = 613, SMSG_AUCTION_BIDDER_LIST_RESULT = 613,
@ -664,12 +664,12 @@ enum OpCodes
SMSG_PLAY_OBJECT_SOUND = 632, SMSG_PLAY_OBJECT_SOUND = 632,
CMSG_REQUEST_PET_INFO = 633, CMSG_REQUEST_PET_INFO = 633,
CMSG_FAR_SIGHT = 634, CMSG_FAR_SIGHT = 634,
SMSG_SPELLDISPELLOG = 635, SMSG_SPELLDISPELLOG = 635, // pguid, pguid, uint32, uint8, uint32 count, for(count) { uint32; uint8; }
SMSG_DAMAGE_CALC_LOG = 636, SMSG_DAMAGE_CALC_LOG = 636,
CMSG_ENABLE_DAMAGE_LOG = 637, CMSG_ENABLE_DAMAGE_LOG = 637,
CMSG_GROUP_CHANGE_SUB_GROUP = 638, CMSG_GROUP_CHANGE_SUB_GROUP = 638,
CMSG_REQUEST_PARTY_MEMBER_STATS = 639, CMSG_REQUEST_PARTY_MEMBER_STATS = 639,
CMSG_GROUP_SWAP_SUB_GROUP = 640, CMSG_GROUP_SWAP_SUB_GROUP = 640, // lua: SwapRaidSubgroup; string, string
CMSG_RESET_FACTION_CHEAT = 641, CMSG_RESET_FACTION_CHEAT = 641,
CMSG_AUTOSTORE_BANK_ITEM = 642, CMSG_AUTOSTORE_BANK_ITEM = 642,
CMSG_AUTOBANK_ITEM = 643, CMSG_AUTOBANK_ITEM = 643,
@ -681,7 +681,7 @@ enum OpCodes
CMSG_ADD_PVP_MEDAL_CHEAT = 649, CMSG_ADD_PVP_MEDAL_CHEAT = 649,
CMSG_DEL_PVP_MEDAL_CHEAT = 650, CMSG_DEL_PVP_MEDAL_CHEAT = 650,
CMSG_SET_PVP_TITLE = 651, CMSG_SET_PVP_TITLE = 651,
SMSG_PVP_CREDIT = 652, SMSG_PVP_CREDIT = 652, // uint32, uint64, uint32
SMSG_AUCTION_REMOVED_NOTIFICATION = 653, SMSG_AUCTION_REMOVED_NOTIFICATION = 653,
CMSG_GROUP_RAID_CONVERT = 654, CMSG_GROUP_RAID_CONVERT = 654,
CMSG_GROUP_ASSISTANT = 655, CMSG_GROUP_ASSISTANT = 655,
@ -705,7 +705,7 @@ enum OpCodes
SMSG_LOOT_START_ROLL = 673, SMSG_LOOT_START_ROLL = 673,
SMSG_LOOT_ROLL = 674, SMSG_LOOT_ROLL = 674,
CMSG_LOOT_MASTER_GIVE = 675, CMSG_LOOT_MASTER_GIVE = 675,
SMSG_LOOT_MASTER_LIST = 676, SMSG_LOOT_MASTER_LIST = 676, // uint8 count, for(count) { uint64; }
SMSG_SET_FORCED_REACTIONS = 677, SMSG_SET_FORCED_REACTIONS = 677,
SMSG_SPELL_FAILED_OTHER = 678, SMSG_SPELL_FAILED_OTHER = 678,
SMSG_GAMEOBJECT_RESET_STATE = 679, // uint64 guid SMSG_GAMEOBJECT_RESET_STATE = 679, // uint64 guid
@ -716,7 +716,7 @@ enum OpCodes
CMSG_SUMMON_RESPONSE = 684, CMSG_SUMMON_RESPONSE = 684,
MSG_MOVE_TOGGLE_GRAVITY_CHEAT = 685, MSG_MOVE_TOGGLE_GRAVITY_CHEAT = 685,
SMSG_MONSTER_MOVE_TRANSPORT = 686, SMSG_MONSTER_MOVE_TRANSPORT = 686,
SMSG_PET_BROKEN = 687, // Your pet has run away (:D) SMSG_PET_BROKEN = 687, // empty?, Your pet has run away
MSG_MOVE_FEATHER_FALL = 688, MSG_MOVE_FEATHER_FALL = 688,
MSG_MOVE_WATER_WALK = 689, MSG_MOVE_WATER_WALK = 689,
CMSG_SERVER_BROADCAST = 690, CMSG_SERVER_BROADCAST = 690,
@ -787,18 +787,18 @@ enum OpCodes
CMSG_PET_SPELL_AUTOCAST = 755, CMSG_PET_SPELL_AUTOCAST = 755,
SMSG_WEATHER = 756, SMSG_WEATHER = 756,
SMSG_PLAY_TIME_WARNING = 757, SMSG_PLAY_TIME_WARNING = 757,
SMSG_MINIGAME_SETUP = 758, SMSG_MINIGAME_SETUP = 758, // uint64, uint8
SMSG_MINIGAME_STATE = 759, SMSG_MINIGAME_STATE = 759, // no data?
CMSG_MINIGAME_MOVE = 760, CMSG_MINIGAME_MOVE = 760,
SMSG_MINIGAME_MOVE_FAILED = 761, SMSG_MINIGAME_MOVE_FAILED = 761,
SMSG_INSTANCE_RESET_SCHEDULED = 762, // WARNING! %s is scheduled to reset in %u minutes! and other messages... SMSG_INSTANCE_RESET_SCHEDULED = 762, // WARNING! %s is scheduled to reset in %u minutes! and other messages...
SMSG_COMPRESSED_MOVE = 763, SMSG_COMPRESSED_MOVE = 763,
CMSG_GUILD_CHANGEINFO = 764, CMSG_GUILD_CHANGEINFO = 764,
SMSG_TRIAL_RESTRICTED = 765, // Trial accounts cannot send unlimited tells, you must wait before you can send tells to more players. SMSG_TRIAL_RESTRICTED = 765, // uint8, Trial accounts cannot send unlimited tells, you must wait before you can send tells to more players.
SMSG_SET_MOVE_SPEED = 766, // GUID + float speed, move speed, except swim/turn/fly SMSG_SET_MOVE_SPEED = 766, // GUID + float speed, move speed, except swim/turn/fly
SMSG_SET_RUN_BACK_SPEED = 767, // GUID + float speed, run back speed SMSG_SET_RUN_BACK_SPEED = 767, // GUID + float speed, run back speed
SMSG_SET_SWIM_SPEED = 768, // GUID + float speed, swim and swim back speed SMSG_SET_SWIM_SPEED = 768, // GUID + float speed, swim and swim back speed
// 769 SMSG_UNKNOWN_769 = 769, // pGUID + float
SMSG_SET_SWIM_BACK_SPEED = 770, // swim back speed SMSG_SET_SWIM_BACK_SPEED = 770, // swim back speed
SMSG_SET_TURN_RATE = 771, // turn rate (note: client crashes if fly mode enabled, and turn rate = 0) SMSG_SET_TURN_RATE = 771, // turn rate (note: client crashes if fly mode enabled, and turn rate = 0)
SMSG_UNKNOWN_772 = 772, // packed GUID SMSG_UNKNOWN_772 = 772, // packed GUID
@ -812,56 +812,56 @@ enum OpCodes
SMSG_UNKNOWN_780 = 780, // packed guid SMSG_UNKNOWN_780 = 780, // packed guid
SMSG_MOVE_STOP_WALK = 781, // packed guid, remove 0x100 movement flag (walk) SMSG_MOVE_STOP_WALK = 781, // packed guid, remove 0x100 movement flag (walk)
SMSG_MOVE_START_WALK = 782, // set 0x100 movement flag (walk) SMSG_MOVE_START_WALK = 782, // set 0x100 movement flag (walk)
// 783 // 783 not exist?
// 784 // 784 not exist?
// 785 // 785 not exist?
CMSG_ACTIVATETAXI_FAR = 786, CMSG_ACTIVATETAXI_FAR = 786,
// 787 causes client crash SMSG_UNKNOWN_787 = 787, // uint32 + uint8, causes client crash
// 788 // 788 not exist?
// 789 // 789 not exist?
// 790 // 790 not exist?
CMSG_FIELD_WATCHED_FACTION_INACTIVE = 791, CMSG_FIELD_WATCHED_FACTION_INACTIVE = 791,
CMSG_FIELD_WATCHED_FACTION_SHOW_BAR = 792, CMSG_FIELD_WATCHED_FACTION_SHOW_BAR = 792,
SMSG_UNKNOWN_793 = 793, // packed guid + uint32 unk SMSG_UNKNOWN_793 = 793, // packed guid + uint32 unk
SMSG_UNKNOWN_794 = 794, // packed guid, movement related, set 0x1000 movement flag, all speed to 0, except turn rate SMSG_UNKNOWN_794 = 794, // packed guid, movement related, set 0x1000 movement flag, all speed to 0, except turn rate
// 795 // 795 not exist?
SMSG_UNKNOWN_796 = 796, // uint64, guid, chat related? SMSG_UNKNOWN_796 = 796, // uint64, guid, chat related?
CMSG_RESET_INSTANCES = 797, // reset instances, empty CMSG_RESET_INSTANCES = 797, // reset instances, empty
SMSG_RESET_INSTANCES_SUCCESS = 798, // uint32 mapid, chat message: %s has been reset. SMSG_RESET_INSTANCES_SUCCESS = 798, // uint32 mapid, chat message: %s has been reset.
SMSG_RESET_INSTANCES_FAILED = 799, // uint32 reason, uint32 mapid SMSG_RESET_INSTANCES_FAILED = 799, // uint32 reason, uint32 mapid
SMSG_UNKNOWN_800 = 800, // uint32 mapid, instance related (save?) SMSG_UNKNOWN_800 = 800, // uint32 mapid, instance related (save?)
MSG_RAID_ICON_TARGET = 801, // uint8+uint8+uint64 guid or only uint8(0x01) MSG_RAID_ICON_TARGET = 801, // uint8+uint8+uint64 guid or only uint8(0x01)
MSG_RAID_READY_CHECK = 802, // uint64+uint8 MSG_RAID_READY_CHECK = 802, // uint64(server) or empty(client)
// 803 // 803 not exist?
SMSG_PET_ACTION_SOUND = 804, // GUID + uint32, looks like SMSG_AI_REACTION (pet action sound?) SMSG_PET_ACTION_SOUND = 804, // GUID + uint32, looks like SMSG_AI_REACTION (pet action sound?)
SMSG_PET_DISMISS_SOUND = 805, // uint32 unk + x, y, z (pet dismiss sound?) SMSG_PET_DISMISS_SOUND = 805, // uint32 unk + x, y, z (pet dismiss sound?)
// 806 // 806 not exist?
// 807 // 807 not exist?
SMSG_GM_SURVEY_REQUEST = 808, // uint32, 1 - causes client get ticket request, 2 - hide, 3 - show SMSG_GM_SURVEY_REQUEST = 808, // uint32, 1 - causes client get ticket request, 2 - hide, 3 - show
MSG_SET_DUNGEON_DIFFICULTY = 809, // uint32+uint32+uint32 MSG_SET_DUNGEON_DIFFICULTY = 809, // uint32+uint32+uint32
CMSG_GM_SURVEY_RESULTS = 810, // script function named GMSurveySubmit() CMSG_GM_SURVEY_RESULTS = 810, // script function named GMSurveySubmit()
SMSG_UNKNOWN_811 = 811, // uint32, 0x0, SMSG_INSTANCE_RESET_ACTIVATE ? SMSG_UNKNOWN_811 = 811, // uint32, 0x0, SMSG_INSTANCE_RESET_ACTIVATE ?
// 812 SMSG_UNKNOWN_812 = 812,
// 813 SMSG_UNKNOWN_813 = 813, // string
// 814 // 814 not exist?
SMSG_SPELL_INSTA_KILL_SELF = 815, // spell related, uint64 guid + spellid (You are killed by %s(spell_name)) SMSG_SPELL_INSTA_KILL_SELF = 815, // spell related, uint64 guid + spellid (You are killed by %s(spell_name))
SMSG_UNKNOWN_816 = 816, // spell related, uint64 guid + spellid + uint32 count + for(count) uint64 guid (target?) SMSG_UNKNOWN_816 = 816, // spell related, uint64 guid + spellid + uint32 count + for(count) uint64 guid (target?)
// 817 CMSG_UNKNOWN_817 = 817, // response to chat message with type 7 in some case
SMSG_ANTISPAM = 818, // 2.0.8, received before server MOTD, strange regexp sequence, looks like anti spam filter for chat messages... SMSG_ANTISPAM = 818, // 2.0.8, received before server MOTD, strange regexp sequence, looks like anti spam filter for chat messages...
// 819 SMSG_UNKNOWN_819 = 819, // pGUID, pGUID, uint32 unk1, uint8 unk2, uint32 count, for(count) {uint32; if(unk2) {uint32; uint32}}
// 820 // 820 not exist?
// 821 // 821 not exist?
// 822 // 822 not exist?
// 823 // 823 not exist?
// 824 // 824 not exist?
// 825 // 825 not exist?
SMSG_OUTDOORPVP_NOTIFY = 826, // looks like chat packets SMSG_OUTDOORPVP_NOTIFY = 826, // looks like chat packets
// 827 SMSG_UNKNOWN_827 = 827, // uint32
// 828 // 828 not exist?
SMSG_MOTD = 829, // server MOTD message, uint32 + message SMSG_MOTD = 829, // server MOTD message, uint32 + message
// 830 // 830 not exist?
// 831 // 831 not exist?
// 832 // 832 not exist?
SMSG_UNKNOWN_833 = 833, // teleport/movement opcode SMSG_UNKNOWN_833 = 833, // teleport/movement opcode
SMSG_UNKNOWN_834 = 834, // teleport/movement opcode SMSG_UNKNOWN_834 = 834, // teleport/movement opcode
SMSG_FLY_MODE_START = 835, // packed guid + uint32, start fly SMSG_FLY_MODE_START = 835, // packed guid + uint32, start fly
@ -869,9 +869,9 @@ enum OpCodes
CMSG_MOVE_FLY_MODE_CHANGE_ACK = 837, // movement related, fly on/off ack CMSG_MOVE_FLY_MODE_CHANGE_ACK = 837, // movement related, fly on/off ack
MSG_MOVE_FLY_STATE_CHANGE = 838, // movement related, fly start/stop(land) ack, may be MSG MSG_MOVE_FLY_STATE_CHANGE = 838, // movement related, fly start/stop(land) ack, may be MSG
CMSG_SOCKET_ITEM = 839, // click on "Socket Gems" button in Jewelcrafting UI, contains uint64 item guid + 3 x uint64 gems guid's CMSG_SOCKET_ITEM = 839, // click on "Socket Gems" button in Jewelcrafting UI, contains uint64 item guid + 3 x uint64 gems guid's
// 840, CMSG? // 840 not exist?
SMSG_ARENA_TEAM_COMMAND_RESULT = 841, // uint32 command, name1, name2, uint32 errorcode SMSG_ARENA_TEAM_COMMAND_RESULT = 841, // uint32 command, name1, name2, uint32 errorcode
// 842 // 842 not exist?
CMSG_ARENA_TEAM_QUERY = 843, CMSG_ARENA_TEAM_QUERY = 843,
SMSG_ARENA_TEAM_QUERY_RESPONSE = 844, SMSG_ARENA_TEAM_QUERY_RESPONSE = 844,
CMSG_ARENA_TEAM_ROSTER = 845, CMSG_ARENA_TEAM_ROSTER = 845,
@ -889,29 +889,29 @@ enum OpCodes
MSG_MOVE_START_FLY_UP = 857, // movement related, fly up, possible MSG MSG_MOVE_START_FLY_UP = 857, // movement related, fly up, possible MSG
MSG_MOVE_STOP_FLY_UP = 858, // movement related, stop fly up, possible MSG MSG_MOVE_STOP_FLY_UP = 858, // movement related, stop fly up, possible MSG
SMSG_ARENA_TEAM_STATS = 859, SMSG_ARENA_TEAM_STATS = 859,
CMSG_LFG_SET_AUTOJOIN = 860, CMSG_LFG_SET_AUTOJOIN = 860, // lua: SetLFGAutojoin
CMSG_LFG_UNSET_AUTOJOIN = 861, CMSG_LFG_UNSET_AUTOJOIN = 861, // lua: ClearLFGAutojoin
CMSG_LFM_SET_AUTOADD = 862, CMSG_LFM_SET_AUTOADD = 862, // lua: SetLFMAutofill
CMSG_LFM_UNSET_AUTOADD = 863, CMSG_LFM_UNSET_AUTOADD = 863, // lua: ClearLFMAutofill
CMSG_LFG_INVITE_ACCEPT = 864, CMSG_LFG_INVITE_ACCEPT = 864, // lua: AcceptLFGMatch
CMSG_LFG_INVITE_CANCEL = 865, CMSG_LFG_INVITE_CANCEL = 865, // lua: DeclineLFGMatch
// 866, CMSG? CMSG_LFG_CANCEL_PENDING = 866, // lua: CancelPendingLFG
CMSG_LOOKING_FOR_GROUP_CLEAR = 867, CMSG_LFG_CLEAR = 867, // lua: ClearLookingForGroup
CMSG_SET_LOOKING_FOR_NONE = 868, CMSG_LFG_SET_LOOKING_FOR_NONE = 868, // lua: ClearLookingForMore
CMSG_SET_LOOKING_FOR_MORE = 869, CMSG_LFG_SET_LOOKING_FOR_MORE = 869, // lua: SetLFMType
CMSG_SET_COMMENTARY = 870, CMSG_LFG_SET_COMMENTARY = 870, // lua: SetLFGComment
SMSG_LFG_MATCHMAKING_TIMEDOUT = 871, // Matchmaking timed out. SMSG_LFG_MATCHMAKING_TIMEDOUT = 871, // Matchmaking timed out.
SMSG_LFG_MATCHMAKING_OTHER_TIMEDOUT = 872, // Matchmaking timed out waiting for other player. SMSG_LFG_MATCHMAKING_OTHER_TIMEDOUT = 872, // Matchmaking timed out waiting for other player.
SMSG_LFG_MATCHMAKING_AUTOJOIN_FAILED = 873, // Group no longer available. SMSG_LFG_MATCHMAKING_AUTOJOIN_FAILED = 873, // Group no longer available.
SMSG_LFG_MATCHMAKING_AUTOJOIN_FAILED_NO_PLAYER = 874, // Matched Player(s) have gone offline. SMSG_LFG_MATCHMAKING_AUTOJOIN_FAILED_NO_PLAYER = 874, // Matched Player(s) have gone offline.
// 875 SMSG_UNKNOWN_875 = 875,
SMSG_LFG_876 = 876, // LFM eye, in progress, uint16+uint32+uint8?, 3 x uint8(0x0) SMSG_LFG_876 = 876, // LFM eye, in progress, uint16+uint32+uint8?, 3 x uint8(0x0)
SMSG_LFG_877 = 877, // cause client send CMSG_SET_LOOKING_FOR_GROUP, uint32+uint8? SMSG_LFG_877 = 877, // cause client send CMSG_SET_LOOKING_FOR_GROUP, uint32+uint8?
SMSG_LFG_878 = 878, // cause client send CMSG_SET_LOOKING_FOR_GROUP SMSG_LFG_878 = 878, // cause client send CMSG_SET_LOOKING_FOR_GROUP
SMSG_LFG_879 = 879, // LFG eye, cause client send CMSG_SET_LOOKING_FOR_GROUP SMSG_LFG_879 = 879, // LFG eye, cause client send CMSG_SET_LOOKING_FOR_GROUP
SMSG_LFG_MATCHMAKING_PENDING_INVITE = 880, // The LFG system has matched you to a group for %s. SMSG_LFG_MATCHMAKING_PENDING_INVITE = 880, // The LFG system has matched you to a group for %s.
SMSG_LFG_MATCHMAKING_PENDING_MATCH = 881, // The LFG system is waiting to complete match for %s. SMSG_LFG_MATCHMAKING_PENDING_MATCH = 881, // The LFG system is waiting to complete match for %s.
// 882 SMSG_UNKNOWN_882 = 882,
SMSG_CHANGE_TITLE = 883, // uint32 title_id, causes message and visual effect SMSG_CHANGE_TITLE = 883, // uint32 title_id, causes message and visual effect
CMSG_CHOOSE_TITLE = 884, // uint32 title_id CMSG_CHOOSE_TITLE = 884, // uint32 title_id
CMSG_DISMOUNT = 885, // /dismount command CMSG_DISMOUNT = 885, // /dismount command
@ -919,12 +919,12 @@ enum OpCodes
MSG_INSPECT_ARENA_STATS = 887, MSG_INSPECT_ARENA_STATS = 887,
SMSG_SH_POSITION = 888, // spirit healer position, map/x/y/z, at player death... SMSG_SH_POSITION = 888, // spirit healer position, map/x/y/z, at player death...
CMSG_CANCEL_TEMP_ITEM_ENCHANTMENT = 889, // cancel temporary item enchantment CMSG_CANCEL_TEMP_ITEM_ENCHANTMENT = 889, // cancel temporary item enchantment
// 890 SMSG_UNKNOWN_890 = 890, // empty
// 891 // 891 not exist?
// 892 // 892 not exist?
// 893 // 893 not exist?
MSG_MOVE_SET_FLY_SPEED = 894, // all fly speed, packed guid, uint32 movement_flags, time, x,y,z,o,unk,speed... MSG_MOVE_SET_FLY_SPEED = 894, // all fly speed, packed guid, uint32 movement_flags, time, x,y,z,o,unk,speed...
// 895 // 895 not exist?
MSG_MOVE_SET_FLY_BACK_SPEED = 896, MSG_MOVE_SET_FLY_BACK_SPEED = 896,
SMSG_FORCE_FLY_SPEED_CHANGE = 897, // packed guid, uint32, speed SMSG_FORCE_FLY_SPEED_CHANGE = 897, // packed guid, uint32, speed
CMSG_FORCE_FLY_SPEED_CHANGE_ACK = 898, CMSG_FORCE_FLY_SPEED_CHANGE_ACK = 898,
@ -932,10 +932,10 @@ enum OpCodes
CMSG_FORCE_FLY_BACK_SPEED_CHANGE_ACK = 900, CMSG_FORCE_FLY_BACK_SPEED_CHANGE_ACK = 900,
SMSG_MOVE_SET_FLY_SPEED2 = 901, // same as 894, strange, packed guid+speed SMSG_MOVE_SET_FLY_SPEED2 = 901, // same as 894, strange, packed guid+speed
SMSG_MOVE_SET_FLY_BACK_SPEED2 = 902, // same as 896, strange, SMSG_MOVE_SET_FLY_BACK_SPEED2 = 902, // same as 896, strange,
// 903 // 903 not exist?
SMSG_FLIGHT_SPLINE_SYNC = 904, // uint32 + packed_guid SMSG_FLIGHT_SPLINE_SYNC = 904, // uint32 + packed_guid
CMSG_SET_TAXI_BENCHMARK_MODE = 905, CMSG_SET_TAXI_BENCHMARK_MODE = 905,
// 906 // 906 not exist?
SMSG_REALM_SPLIT_INFO_RESPONSE = 907, // response to 908 opcode, uint32+uint32+string(date) SMSG_REALM_SPLIT_INFO_RESPONSE = 907, // response to 908 opcode, uint32+uint32+string(date)
CMSG_REALM_SPLIT_INFO_REQUEST = 908, // realm related, uint32, appears at select character screen, uint32 0xFFFFFFFF by default CMSG_REALM_SPLIT_INFO_REQUEST = 908, // realm related, uint32, appears at select character screen, uint32 0xFFFFFFFF by default
MSG_MOVE_SHIP_909 = 909, // movement related, transport related(ships) MSG_MOVE_SHIP_909 = 909, // movement related, transport related(ships)
@ -943,78 +943,78 @@ enum OpCodes
SMSG_ALREADY_IN_ARENA_TEAM = 911, // %s is already in an arena team of that size (uint64 guid) SMSG_ALREADY_IN_ARENA_TEAM = 911, // %s is already in an arena team of that size (uint64 guid)
SMSG_ALLOW_MOVE = 912, // uint32, allow player movement, value increments every time and reset to 0 after far teleport, used for client-server synchronization SMSG_ALLOW_MOVE = 912, // uint32, allow player movement, value increments every time and reset to 0 after far teleport, used for client-server synchronization
CMSG_ALLOW_MOVE_ACK = 913, // client response to SMSG_ALLOW_MOVE (counter + client time) CMSG_ALLOW_MOVE_ACK = 913, // client response to SMSG_ALLOW_MOVE (counter + client time)
// 914 // 914 not exist?
// 915 // 915 not exist?
// 916 // 916 not exist?
// 917 // 917 not exist?
SMSG_RESET_INSTANCE_FAILED_NOTIFY = 918, // chat message: The party leader has attempted to reset the instance you are in. Please zone out to allow the instance to reset. SMSG_RESET_INSTANCE_FAILED_NOTIFY = 918, // chat message: The party leader has attempted to reset the instance you are in. Please zone out to allow the instance to reset.
SMSG_UNKNOWN_919 = 919, // uint8(0)+uint32(0/1)+uint64(unk/guid) SMSG_UNKNOWN_919 = 919, // uint8(0)+uint32(0/1)+uint64(unk/guid)
SMSG_SYSTEM_DISABLED = 920, // notify message: This system is currently disabled. SMSG_SYSTEM_DISABLED = 920, // notify message: This system is currently disabled.
// 921 // 921 not exist?
// 922 // 922 not exist?
// 923 SMSG_UNKNOWN_923 = 923, // uint8 count, for(count) uint32
// 924 // 924 not exist?
SMSG_SET_COMBO_POINTS = 925, // set combo points SMSG_SET_COMBO_POINTS = 925, // set combo points
SMSG_VOICE_SESSION = 926, SMSG_VOICE_SESSION = 926, // VoiceSessionRosterUpdate, uint64, uint16, uint8, string, string, uint32, uin16, uint8 unk, uint64, uint8, uint8, if(unk-1) { for(unk-1) { uint64; uint8; uint8; uint8; } }
SMSG_UNKNOWN_927 = 927, // uint64 guid + uint32 + float?, received after leave voice channel SMSG_UNKNOWN_927 = 927, // uint64 guid + uint64, received after leave voice channel
// 928 // 928 not exist?
// 929 // 929 not exist?
// 930 SMSG_UNKNOWN_930 = 930, // uint64 + uint8
SMSG_SET_AURA_MULTIPLY = 931, // packed_guid + n * (uint8 slot + uint32 spellid + uint32 duration1 + uint32 duration2) SMSG_SET_AURA_MULTIPLY = 931, // packed_guid + n * (uint8 slot + uint32 spellid + uint32 duration1 + uint32 duration2)
SMSG_SET_AURA_SINGLE = 932, // packed_guid + uint8 slot + uint32 spellid + uint32 duration1 + uint32 duration2 SMSG_SET_AURA_SINGLE = 932, // packed_guid + uint8 slot + uint32 spellid + uint32 duration1 + uint32 duration2
// 933 SMSG_SET_AURA_SINGLE2 = 933, // same handler as 932 opcode
SMSG_CAST_SUCCESS = 934, SMSG_CAST_SUCCESS = 934,
MSG_UNKNOWN_935 = 935, // teleport/movement opcode MSG_UNKNOWN_935 = 935, // teleport/movement opcode
// 936 // 936 not exist?
// 937 SMSG_UNKNOWN_937 = 937,
SMSG_UNKNOWN_938 = 938, // uint64, uint64, uint32 spellid, uint32, uint32 SMSG_UNKNOWN_938 = 938, // uint64, uint64, uint32 spellid, uint32, uint32
// 939 // 939 not exist?
SMSG_UNKNOWN_940 = 940, // packed guid (received at spell cast) SMSG_UNKNOWN_940 = 940, // packed guid (received at spell cast)
SMSG_UNKNOWN_941 = 941, // teleport/movement opcode SMSG_UNKNOWN_941 = 941, // teleport/movement opcode
SMSG_READY_CHECK_ALL_READY = 942, // Everyone is Ready! (message) SMSG_READY_CHECK_ALL_READY = 942, // uint64, uint8, Everyone is Ready! (message)
CMSG_VOICE_SETTINGS = 943, // uint8 isVoiceEnabled, uint8 isMicrophoneEnabled (id correct for 2.3.0) CMSG_VOICE_SETTINGS = 943, // uint8 isVoiceEnabled, uint8 isMicrophoneEnabled (id correct for 2.3.0)
SMSG_VOICE_CHAT_PARENTAL_DISABLE_ALL = 944, // Voice chat has been disabled by parental control SMSG_VOICE_CHAT_PARENTAL_DISABLE_ALL = 944, // uint8, uint8, Voice chat has been disabled by parental control
// 945 // 945 not exist?
// 946 SMSG_UNKNOWN_946 = 946, // special chat packet?
// 947 // 947 not exist?
CMSG_COMMENTATOR_SET_MODE = 948, CMSG_COMMENTATOR_SET_MODE = 948,
// 949 SMSG_UNKNOWN_949 = 949,
CMSG_COMMENTATOR_UPDATE_MAP_INFO = 950, CMSG_COMMENTATOR_UPDATE_MAP_INFO = 950,
// 951 SMSG_UNKNOWN_951 = 951,
CMSG_COMMENTATOR_UPDATE_PLAYER_INFO = 952, CMSG_COMMENTATOR_UPDATE_PLAYER_INFO = 952,
CMSG_UNKNOWN_953 = 953, // response to 942 opcode CMSG_UNKNOWN_953 = 953, // response to 942 opcode
//CMSG_REPORT_SPAM = 954, // now(2.3.0) CMSG_COMPLAINT_CHAT SMSG_UNKNOWN_954 = 954,
//SMSG_REPORT_SPAM_RESPONSE = 955, // now(2.3.0) SMSG_COMPLAINT_ADDED CMSG_COMMENTATOR_INSTANCE_ENTER = 955,
CMSG_COMMENTATOR_EXIT_INSTANCE = 956, // unk uint8 CMSG_COMMENTATOR_INSTANCE_EXIT = 956,
// 957 CMSG_COMMENTATOR_ADD_OR_REMOVE_PLAYER = 957,
// 958 clear selection? SMSG_UNKNOWN_958 = 958, // uint64 guid, cause client to send CMSG_SET_SELECTION
// 959 CMSG_UNKNOWN_959 = 959, // uint8, uint8, uint8, string
SMSG_UNKNOWN_960 = 960, // uint64 guid, uint32, uint32 (client sedn CMSG_ITEM_QUERY_SINGLE) SMSG_UNKNOWN_960 = 960, // uint64 player_guid, uint32 drunk_state (0-3), uint32 itemid
// 961 // 961 not exist?
// 962 // 962 not exist?
//SMSG_DISCONNECT_CLIENT = 963, // really?? not // 963 not exist?
// 964 SMSG_UNKNOWN_964 = 964, // uint8, disconnect related?
// 965 MSG_UNKNOWN_965 = 965, // empty, related to raid ready check...
CMSG_COMPLAINT_CHAT = 966, // Report Spam chat button CMSG_REPORT_SPAM = 966, // Report Spam chat button
SMSG_COMPLAINT_ADDED = 967, // Complaint Registered. (message) SMSG_REPORT_SPAM_RESULT = 967, // uint8, Complaint Registered. (message)
SMSG_VOICE_SYSTEM_STATUS = 968, // uint8, uint8 (id correct for 2.3.0) SMSG_VOICE_SYSTEM_STATUS = 968, // uint8, uint8 (id correct for 2.3.0)
// 969 // 969 not exist?
// 970 // 970 not exist?
CMSG_CHANNEL_SILENT_VOICE = 971, CMSG_CHANNEL_SILENT_VOICE = 971,
CMSG_CHANNEL_SILENT_ALL = 972, CMSG_CHANNEL_SILENT_ALL = 972,
CMSG_CHANNEL_UNSILENT_VOICE = 973, CMSG_CHANNEL_UNSILENT_VOICE = 973,
CMSG_CHANNEL_UNSILENT_ALL = 974, CMSG_CHANNEL_UNSILENT_ALL = 974,
// 975 // 975 not exist?
// 976 // 976 not exist?
CMSG_CHANNEL_ROSTER_QUERY = 977, // string channel name (channel list?) CMSG_CHANNEL_ROSTER_QUERY = 977, // string channel name (channel list?)
CMSG_CHANNEL_VOICE_CHAT_QUERY = 978, // uint32, string CMSG_CHANNEL_VOICE_CHAT_QUERY = 978, // uint32, string
CMSG_CHANNEL_INFO_QUERY = 979, // string channel name CMSG_CHANNEL_INFO_QUERY = 979, // string channel name
SMSG_CHANNEL_INFO_QUERY_RESPONSE = 980, // string channel name, uint8 flags, uint32 count SMSG_CHANNEL_INFO_QUERY_RESPONSE = 980, // string channel name, uint8 flags, uint32 count
CMSG_CHANNEL_VOICE_ON = 981, // Enable Voice button in channel context menu CMSG_CHANNEL_VOICE_ON = 981, // Enable Voice button in channel context menu
CMSG_CHANNEL_VOICE_OFF = 982, // ?? CMSG_CHANNEL_VOICE_OFF = 982, // ??
// 983 // 983 not exist?
// 984 // 984 not exist?
SMSG_CHANNEL_NOTIFY_AVAILABLE_VOICE_SESSION = 985, // 9 bytes unk's + string channel name + uint64 guid, received after join voice channel SMSG_CHANNEL_NOTIFY_AVAILABLE_VOICE_SESSION = 985, // uint64, uint8, string, uint64
CMSG_MUTE_PLAYER = 986, // ?? CMSG_MUTE_PLAYER = 986, // ??
CMSG_UNMUTE_PLAYER = 987, // ?? CMSG_UNMUTE_PLAYER = 987, // ??
CMSG_SILENCE_MEMBER = 988, // ?? CMSG_SILENCE_MEMBER = 988, // ??
@ -1023,39 +1023,70 @@ enum OpCodes
SMSG_COMSAT_RECONNECT_ATTEMPT = 991, // Voice chat service restored! SMSG_COMSAT_RECONNECT_ATTEMPT = 991, // Voice chat service restored!
SMSG_COMSAT_DISCONNECT = 992, // Connection lost to voice chat service. SMSG_COMSAT_DISCONNECT = 992, // Connection lost to voice chat service.
SMSG_COMSAT_CONNECT_FAIL = 993, // Cannot connect to voice chat service. SMSG_COMSAT_CONNECT_FAIL = 993, // Cannot connect to voice chat service.
// 994 SMSG_UNKNOWN_994 = 994, // uint8, enable voice and mic?
// 995 CMSG_UNKNOWN_995 = 995, // uint64 guid, lua: NotifyUnitIsPVPAFK
// 996 SMSG_PVP_REPORT_AFK_SYSTEM_STATUS = 996, // uint8, uint8, uint8, uint64
CMSG_GUILD_BANK = 997, // click on guildbank object, uint64 guid + uint8 unk CMSG_GUILD_BANK = 997, // click on guildbank object, uint64 guid + uint8 unk
CMSG_GUILDBANK_TAB_COLON = 998, // response to 999, uint64 guid + uint8 + uint8 CMSG_GUILD_BANK_TAB_COLON = 998, // response to 999, uint64 guid + uint8 + uint8
SMSG_GUILD_BANK_LIST = 999, // uint32 + uint32 + uint8 + uint8 + uint16 count1 + uint8 + uint8 count2 + for (count2) { uint8 unk } + uint16 + for(count1) { uint32 counter + uint8 unk } SMSG_GUILD_BANK_LIST = 999, // uint32 + uint32 + uint8 + uint8 + uint16 count1 + uint8 + uint8 count2 + for (count2) { uint8 unk } + uint16 + for(count1) { uint32 counter + uint8 unk }
CMSG_UNKNOWN_1000 = 1000, // uint64 guid, uint8, uint8, uint8 count, for(count) uint8 unk CMSG_GUILD_BANK_DEPOSIT_ITEM = 1000, // uint64 guid, uint8, uint8, uint8 count, for(count) uint8 unk
CMSG_BUY_GUILDBANK_TAB = 1001, // uint64 guid + uint8 unk CMSG_GUILD_BANK_BUY_TAB = 1001, // uint64 guid + uint8 unk
// 1002 CMSG_GUILD_BANK_MODIFY_TAB = 1002, // uint64, uint8, string, string, lua: SetGuildBankTabInfo
CMSG_GUILDBANK_DEPOSIT = 1003, // uint64 guid + uint32 CMSG_GUILD_BANK_DEPOSIT = 1003, // uint64 guid + uint32
CMSG_GUILDBANK_WITHDRAW = 1004, // uint64 guid + uint32 CMSG_GUILD_BANK_WITHDRAW = 1004, // uint64 guid + uint32
MSG_GUILDBANK_LOG = 1005, // guild bank log? client: empty, server: uint8 count, for count (uint8 unk(type?), uint64 guid, uint32 unk(amount?)) MSG_GUILD_BANK_LOG = 1005, // guild bank log client: empty, server: uint8 count, for count (uint8 unk(type?), uint64 guid, uint32 unk(amount?))
CMSG_CHANNEL_WATCH = 1006, // string channel name CMSG_CHANNEL_WATCH = 1006, // string channel name
SMSG_PLAYER_JOINED_CHANNEL = 1007, // uint64, uint8, uint8, uint32, string channel name SMSG_PLAYER_JOINED_CHANNEL = 1007, // uint64, uint8, uint8, uint32, string channel name
SMSG_PLAYER_LEFT_CHANNEL = 1008, // uint64, uint8, uint32, string channel name SMSG_PLAYER_LEFT_CHANNEL = 1008, // uint64, uint8, uint32, string channel name
SMSG_PLAYER_JOINED_CUSTOM_CHANNEL = 1009, // guessed SMSG_PLAYER_JOINED_CUSTOM_CHANNEL = 1009, // uint64, uint8, uint8, uint32, string
CMSG_CLEAR_CHANNEL_WATCH = 1010, CMSG_CLEAR_CHANNEL_WATCH = 1010,
SMSG_INSPECT_TALENTS = 1011, // uint32 count, for(count) uint8 unk SMSG_INSPECT_TALENTS = 1011, // uint32 count, for(count) uint8 unk
// 1012 SMSG_UNKNOWN_1012 = 1012, // uint8, toggle run forward
// 1013 SMSG_UNKNOWN_1013 = 1013, // uint64, uint32 ERR_PLAYER_SILENCED_ECHO/ERR_PLAYER_UNSILENCED_ECHO
// 1014 // 1014 not exist?
CMSG_UNKNOWN_1015 = 1015, // click on NPC with 0x1000000 npc_flag CMSG_UNKNOWN_1015 = 1015, // uint64, click on NPC with 0x1000000 npc_flag
// 1016 SMSG_UNKNOWN_1016 = 1016, // uint64
// 1017 // 1017 not exist?
// 1018 // 1018 not exist?
SMSG_VOICESESSION_FULL = 1019, // The voice session you are attempting to join is full. SMSG_VOICESESSION_FULL = 1019, // The voice session you are attempting to join is full.
MSG_UNKNOWN_1020 = 1020, // probably guild related, client: empty, server: uint32, uint32, uint8, uint32, uint32 MSG_GUILD_BANK_GET_RIGHTS = 1020, // guild related, client: empty, server: uint32, uint32, uint8, uint32, uint32
MSG_UNKNOWN_1021 = 1021, // guild related MSG_GUILD_BANK_GET_MONEY_AMOUNT = 1021, // uint32 money
MSG_GUILD_EVENT_LOG = 1022 MSG_GUILD_EVENT_LOG = 1022,
// 1023 not exist?
CMSG_UNKNOWN_1024 = 1024, // empty
SMSG_MIRRORIMAGE_DATA = 1025,
SMSG_FORCE_DISPLAY_UPDATE = 1026,
SMSG_UNKNOWN_1027 = 1027, // uint32, uint32, uint32
UMSG_UNKNOWN_1028 = 1028,
SMSG_UNKNOWN_1029 = 1029, // do nothing at client
CMSG_UNKNOWN_1030 = 1030,
SMSG_UNKNOWN_1031 = 1031, // empty?, message You can't do that yet
CMSG_GROUP_PASS_ON_LOOT_TOGGLE = 1032, // uint32
MSG_GUILD_BANK_TAB_TEXT = 1033, // uint8, GuildBankText
CMSG_GUILD_BANK_SET_TAB_TEXT = 1034, // uint8, string, SetGuildBankText
UMSG_UNKNOWN_1035 = 1035, // not exist?
CMSG_UNKNOWN_1036 = 1036, // lua: GrantLevel
UMSG_UNKNOWN_1037 = 1037, // not exist?
UMSG_UNKNOWN_1038 = 1038, // not exist?
CMSG_UNKNOWN_1039 = 1039, // string, DeclineInvite
SMSG_GROUP_ACTION_THROTTLED = 1040, // empty
SMSG_UNKNOWN_1041 = 1041, // uint32, uint32, uint32
SMSG_UNKNOWN_1042 = 1042, // uint8, uint64, uint32, uint32
CMSG_UNKNOWN_1043 = 1043, // lua: DestroyTotem(slot)
UMSG_UNKNOWN_1044 = 1044, // not exist?
UMSG_UNKNOWN_1045 = 1045, // not exist?
CMSG_QUESTGIVER_STATUS_QUERY_MULTIPLE = 1046, // quest giver query status multiple (all visible)
SMSG_QUESTGIVER_STATUS_QUERY_MULTIPLE_RESPONSE = 1047, // response to 1046, uint32 count; for(count) { uint64; uint8; }
CMSG_UNKNOWN_1048 = 1048, // lua: DeclineCharacter
SMSG_UNKNOWN_1049 = 1049, // uint32 result, if(!result) uint64, CharacterDeclineResult
UMSG_UNKNOWN_1050 = 1050, // not exist?
UMSG_UNKNOWN_1051 = 1051, // not exist?
UMSG_UNKNOWN_1052 = 1052, // not exist?
SMSG_UNKNOWN_1053 = 1053, // uint32 count; for(count) { uint32; }
}; };
//if you add new opcode .. Do NOT forget to change the following define MAX_OPCODE_ID and also add new opcode to table in opcodes.cpp //if you add new opcode .. Do NOT forget to change the following define MAX_OPCODE_ID and also add new opcode to table in opcodes.cpp
#define MAX_OPCODE_ID 1023 #define MAX_OPCODE_ID 1054
/// Results of friend related commands /// Results of friend related commands
enum FriendsResult enum FriendsResult

View File

@ -1262,102 +1262,54 @@ enum UnitFlags1
enum ChatMsg enum ChatMsg
{ {
CHAT_MSG_SAY = 0x00, CHAT_MSG_ADDON = 0xFFFFFFFF,
CHAT_MSG_PARTY = 0x01, CHAT_MSG_SYSTEM = 0x00,
CHAT_MSG_RAID = 0x02, CHAT_MSG_SAY = 0x01,
CHAT_MSG_GUILD = 0x03, CHAT_MSG_PARTY = 0x02,
CHAT_MSG_OFFICER = 0x04, CHAT_MSG_RAID = 0x03,
CHAT_MSG_YELL = 0x05, CHAT_MSG_GUILD = 0x04,
CHAT_MSG_WHISPER = 0x06, CHAT_MSG_OFFICER = 0x05,
CHAT_MSG_WHISPER_INFORM = 0x07, CHAT_MSG_YELL = 0x06,
CHAT_MSG_EMOTE = 0x08, CHAT_MSG_WHISPER = 0x07,
CHAT_MSG_TEXT_EMOTE = 0x09, CHAT_MSG_WHISPER_INFORM = 0x08,
CHAT_MSG_SYSTEM = 0x0A, CHAT_MSG_REPLY = 0x09,
CHAT_MSG_MONSTER_SAY = 0x0B, CHAT_MSG_EMOTE = 0x0A,
CHAT_MSG_MONSTER_YELL = 0x0C, CHAT_MSG_TEXT_EMOTE = 0x0B,
CHAT_MSG_MONSTER_EMOTE = 0x0D, CHAT_MSG_MONSTER_SAY = 0x0C,
CHAT_MSG_CHANNEL = 0x0E, CHAT_MSG_MONSTER_PARTY = 0x0D,
CHAT_MSG_CHANNEL_JOIN = 0x0F, CHAT_MSG_MONSTER_YELL = 0x0E,
CHAT_MSG_CHANNEL_LEAVE = 0x10, CHAT_MSG_MONSTER_WHISPER = 0x0F,
CHAT_MSG_CHANNEL_LIST = 0x11, CHAT_MSG_MONSTER_EMOTE = 0x10,
CHAT_MSG_CHANNEL_NOTICE = 0x12, CHAT_MSG_CHANNEL = 0x11,
CHAT_MSG_CHANNEL_NOTICE_USER = 0x13, CHAT_MSG_CHANNEL_JOIN = 0x12,
CHAT_MSG_AFK = 0x14, CHAT_MSG_CHANNEL_LEAVE = 0x13,
CHAT_MSG_DND = 0x15, CHAT_MSG_CHANNEL_LIST = 0x14,
CHAT_MSG_IGNORED = 0x16, CHAT_MSG_CHANNEL_NOTICE = 0x15,
CHAT_MSG_SKILL = 0x17, CHAT_MSG_CHANNEL_NOTICE_USER = 0x16,
CHAT_MSG_LOOT = 0x18, CHAT_MSG_AFK = 0x17,
CHAT_MSG_COMBAT_MISC_INFO = 0x19, CHAT_MSG_DND = 0x18,
CHAT_MSG_MONSTER_WHISPER = 0x1A, CHAT_MSG_IGNORED = 0x19,
CHAT_MSG_COMBAT_SELF_HITS = 0x1B, CHAT_MSG_SKILL = 0x1A,
CHAT_MSG_COMBAT_SELF_MISSES = 0x1C, CHAT_MSG_LOOT = 0x1B,
CHAT_MSG_COMBAT_PET_HITS = 0x1D, CHAT_MSG_MONEY = 0x1C,
CHAT_MSG_COMBAT_PET_MISSES = 0x1E, CHAT_MSG_OPENING = 0x1D,
CHAT_MSG_COMBAT_PARTY_HITS = 0x1F, CHAT_MSG_TRADESKILLS = 0x1E,
CHAT_MSG_COMBAT_PARTY_MISSES = 0x20, CHAT_MSG_PET_INFO = 0x1F,
CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS = 0x21, CHAT_MSG_COMBAT_MISC_INFO = 0x20,
CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES = 0x22, CHAT_MSG_COMBAT_XP_GAIN = 0x21,
CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS = 0x23, CHAT_MSG_COMBAT_HONOR_GAIN = 0x22,
CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES = 0x24, CHAT_MSG_COMBAT_FACTION_CHANGE = 0x23,
CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS = 0x25, CHAT_MSG_BG_SYSTEM_NEUTRAL = 0x24,
CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES = 0x26, CHAT_MSG_BG_SYSTEM_ALLIANCE = 0x25,
CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS = 0x27, CHAT_MSG_BG_SYSTEM_HORDE = 0x26,
CHAT_MSG_COMBAT_CREATURE_VS_PARTY_MISSES = 0x28, CHAT_MSG_RAID_LEADER = 0x27,
CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS = 0x29, CHAT_MSG_RAID_WARNING = 0x28,
CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES = 0x2A, CHAT_MSG_RAID_BOSS_WHISPER = 0x29,
CHAT_MSG_COMBAT_FRIENDLY_DEATH = 0x2B, CHAT_MSG_RAID_BOSS_EMOTE = 0x2A,
CHAT_MSG_COMBAT_HOSTILE_DEATH = 0x2C, CHAT_MSG_FILTERED = 0x2B,
CHAT_MSG_COMBAT_XP_GAIN = 0x2D, CHAT_MSG_BATTLEGROUND = 0x2C,
CHAT_MSG_SPELL_SELF_DAMAGE = 0x2E, CHAT_MSG_BATTLEGROUND_LEADER = 0x2D,
CHAT_MSG_SPELL_SELF_BUFF = 0x2F, CHAT_MSG_RESTRICTED = 0x2E,
CHAT_MSG_SPELL_PET_DAMAGE = 0x30,
CHAT_MSG_SPELL_PET_BUFF = 0x31,
CHAT_MSG_SPELL_PARTY_DAMAGE = 0x32,
CHAT_MSG_SPELL_PARTY_BUFF = 0x33,
CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE = 0x34,
CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF = 0x35,
CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE = 0x36,
CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF = 0x37,
CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE = 0x38,
CHAT_MSG_SPELL_CREATURE_VS_SELF_BUFF = 0x39,
CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE = 0x3A,
CHAT_MSG_SPELL_CREATURE_VS_PARTY_BUFF = 0x3B,
CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE = 0x3C,
CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF = 0x3D,
CHAT_MSG_SPELL_TRADESKILLS = 0x3E,
CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF = 0x3F,
CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS = 0x40,
CHAT_MSG_SPELL_AURA_GONE_SELF = 0x41,
CHAT_MSG_SPELL_AURA_GONE_PARTY = 0x42,
CHAT_MSG_SPELL_AURA_GONE_OTHER = 0x43,
CHAT_MSG_SPELL_ITEM_ENCHANTMENTS = 0x44,
CHAT_MSG_SPELL_BREAK_AURA = 0x45,
CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE = 0x46,
CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS = 0x47,
CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE = 0x48,
CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS = 0x49,
CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE = 0x4A,
CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS = 0x4B,
CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE = 0x4C,
CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS = 0x4D,
CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE = 0x4E,
CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS = 0x4F,
CHAT_MSG_SPELL_FAILED_LOCALPLAYER = 0x50,
CHAT_MSG_COMBAT_HONOR_GAIN = 0x51,
CHAT_MSG_BG_SYSTEM_NEUTRAL = 0x52,
CHAT_MSG_BG_SYSTEM_ALLIANCE = 0x53,
CHAT_MSG_BG_SYSTEM_HORDE = 0x54,
CHAT_MSG_COMBAT_FACTION_CHANGE = 0x55,
CHAT_MSG_MONEY = 0x56,
CHAT_MSG_RAID_LEADER = 0x57,
CHAT_MSG_RAID_WARNING = 0x58,
CHAT_MSG_FOREIGN_TELL = 0x59,
CHAT_MSG_RAID_BOSS_EMOTE = 0x5A,
CHAT_MSG_FILTERED = 0x5B,
CHAT_MSG_BATTLEGROUND = 0x5C,
CHAT_MSG_BATTLEGROUND_LEADER = 0x5D,
CHAT_MSG_MONSTER_PARTY = 0x5E,
CHAT_MSG_RESTRICTED = 0x5F,
}; };
enum SpellCastTargetFlags enum SpellCastTargetFlags

View File

@ -278,7 +278,7 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
{ {
recvPacket >> mi.x >> mi.y >> mi.z >> mi.o; recvPacket >> mi.x >> mi.y >> mi.z >> mi.o;
logdev("FLOATS: x=%f y=%f z=%f o=%f",mi.x, mi.y, mi.z ,mi.o); logdev("FLOATS: x=%f y=%f z=%f o=%f",mi.x, mi.y, mi.z ,mi.o);
if(obj->IsWorldObject()) if(obj && obj->IsWorldObject())
((WorldObject*)obj)->SetPosition(mi.x, mi.y, mi.z, mi.o); ((WorldObject*)obj)->SetPosition(mi.x, mi.y, mi.z, mi.o);
} }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2005,2006,2007 MaNGOS <http://www.mangosproject.org/> * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -19,7 +19,7 @@
#ifndef _UPDATEFIELDS_AUTO_H #ifndef _UPDATEFIELDS_AUTO_H
#define _UPDATEFIELDS_AUTO_H #define _UPDATEFIELDS_AUTO_H
// Auto generated for version 0, 3, 2, 7655 // Auto generated for version 2, 4, 1, 8125
enum EObjectFields enum EObjectFields
{ {
@ -113,7 +113,7 @@ enum EUnitFields
UNIT_FIELD_MAXOFFHANDDAMAGE = OBJECT_END + 0x0098, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3 UNIT_FIELD_MAXOFFHANDDAMAGE = OBJECT_END + 0x0098, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
UNIT_FIELD_BYTES_1 = OBJECT_END + 0x0099, // Size: 1, Type: BYTES, Flags: PUBLIC UNIT_FIELD_BYTES_1 = OBJECT_END + 0x0099, // Size: 1, Type: BYTES, Flags: PUBLIC
UNIT_FIELD_PETNUMBER = OBJECT_END + 0x009A, // Size: 1, Type: INT, Flags: PUBLIC UNIT_FIELD_PETNUMBER = OBJECT_END + 0x009A, // Size: 1, Type: INT, Flags: PUBLIC
UNIT_FIELD_PET_NAME_TIMESTAMP = OBJECT_END + 0x009B, // Size: 1, Type: INT, Flags: PUBLIC UNIT_FIELD_PET_NAME_TIMESTAMP = OBJECT_END + 0x009B, // Size: 1, Type: INT, Flags: PUBLIC - it's MS time, not time(NULL)...
UNIT_FIELD_PETEXPERIENCE = OBJECT_END + 0x009C, // Size: 1, Type: INT, Flags: OWNER_ONLY UNIT_FIELD_PETEXPERIENCE = OBJECT_END + 0x009C, // Size: 1, Type: INT, Flags: OWNER_ONLY
UNIT_FIELD_PETNEXTLEVELEXP = OBJECT_END + 0x009D, // Size: 1, Type: INT, Flags: OWNER_ONLY UNIT_FIELD_PETNEXTLEVELEXP = OBJECT_END + 0x009D, // Size: 1, Type: INT, Flags: OWNER_ONLY
UNIT_DYNAMIC_FLAGS = OBJECT_END + 0x009E, // Size: 1, Type: INT, Flags: DYNAMIC UNIT_DYNAMIC_FLAGS = OBJECT_END + 0x009E, // Size: 1, Type: INT, Flags: DYNAMIC
@ -154,7 +154,9 @@ enum EUnitFields
UNIT_FIELD_MAXRANGEDDAMAGE = OBJECT_END + 0x00D3, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY UNIT_FIELD_MAXRANGEDDAMAGE = OBJECT_END + 0x00D3, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
UNIT_FIELD_POWER_COST_MODIFIER = OBJECT_END + 0x00D4, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY UNIT_FIELD_POWER_COST_MODIFIER = OBJECT_END + 0x00D4, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
UNIT_FIELD_POWER_COST_MULTIPLIER = OBJECT_END + 0x00DB, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY UNIT_FIELD_POWER_COST_MULTIPLIER = OBJECT_END + 0x00DB, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
UNIT_END = OBJECT_END + 0x00E2, UNIT_FIELD_MAXHEALTHMODIFIER = OBJECT_END + 0x00E2, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
UNIT_FIELD_PADDING = OBJECT_END + 0x00E3, // Size: 1, Type: INT, Flags: NONE
UNIT_END = OBJECT_END + 0x00E4,
PLAYER_DUEL_ARBITER = UNIT_END + 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_DUEL_ARBITER = UNIT_END + 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_FLAGS = UNIT_END + 0x0002, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_FLAGS = UNIT_END + 0x0002, // Size: 1, Type: INT, Flags: PUBLIC
@ -166,252 +168,302 @@ enum EUnitFields
PLAYER_DUEL_TEAM = UNIT_END + 0x0008, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_DUEL_TEAM = UNIT_END + 0x0008, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_GUILD_TIMESTAMP = UNIT_END + 0x0009, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_GUILD_TIMESTAMP = UNIT_END + 0x0009, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_QUEST_LOG_1_1 = UNIT_END + 0x000A, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_1_1 = UNIT_END + 0x000A, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_1_2 = UNIT_END + 0x000B, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_1_2 = UNIT_END + 0x000B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_2_1 = UNIT_END + 0x000D, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_1_3 = UNIT_END + 0x000C, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_2_2 = UNIT_END + 0x000E, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_1_4 = UNIT_END + 0x000D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_3_1 = UNIT_END + 0x0010, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_2_1 = UNIT_END + 0x000E, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_3_2 = UNIT_END + 0x0011, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_2_2 = UNIT_END + 0x000F, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_4_1 = UNIT_END + 0x0013, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_2_3 = UNIT_END + 0x0010, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_4_2 = UNIT_END + 0x0014, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_2_4 = UNIT_END + 0x0011, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_5_1 = UNIT_END + 0x0016, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_3_1 = UNIT_END + 0x0012, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_5_2 = UNIT_END + 0x0017, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_3_2 = UNIT_END + 0x0013, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_6_1 = UNIT_END + 0x0019, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_3_3 = UNIT_END + 0x0014, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_6_2 = UNIT_END + 0x001A, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_3_4 = UNIT_END + 0x0015, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_7_1 = UNIT_END + 0x001C, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_4_1 = UNIT_END + 0x0016, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_7_2 = UNIT_END + 0x001D, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_4_2 = UNIT_END + 0x0017, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_8_1 = UNIT_END + 0x001F, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_4_3 = UNIT_END + 0x0018, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_8_2 = UNIT_END + 0x0020, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_4_4 = UNIT_END + 0x0019, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_9_1 = UNIT_END + 0x0022, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_5_1 = UNIT_END + 0x001A, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_9_2 = UNIT_END + 0x0023, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_5_2 = UNIT_END + 0x001B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_10_1 = UNIT_END + 0x0025, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_5_3 = UNIT_END + 0x001C, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_10_2 = UNIT_END + 0x0026, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_5_4 = UNIT_END + 0x001D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_11_1 = UNIT_END + 0x0028, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_6_1 = UNIT_END + 0x001E, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_11_2 = UNIT_END + 0x0029, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_6_2 = UNIT_END + 0x001F, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_12_1 = UNIT_END + 0x002B, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_6_3 = UNIT_END + 0x0020, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_12_2 = UNIT_END + 0x002C, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_6_4 = UNIT_END + 0x0021, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_13_1 = UNIT_END + 0x002E, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_7_1 = UNIT_END + 0x0022, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_13_2 = UNIT_END + 0x002F, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_7_2 = UNIT_END + 0x0023, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_14_1 = UNIT_END + 0x0031, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_7_3 = UNIT_END + 0x0024, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_14_2 = UNIT_END + 0x0032, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_7_4 = UNIT_END + 0x0025, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_15_1 = UNIT_END + 0x0034, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_8_1 = UNIT_END + 0x0026, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_15_2 = UNIT_END + 0x0035, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_8_2 = UNIT_END + 0x0027, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_16_1 = UNIT_END + 0x0037, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_8_3 = UNIT_END + 0x0028, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_16_2 = UNIT_END + 0x0038, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_8_4 = UNIT_END + 0x0029, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_17_1 = UNIT_END + 0x003A, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_9_1 = UNIT_END + 0x002A, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_17_2 = UNIT_END + 0x003B, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_9_2 = UNIT_END + 0x002B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_18_1 = UNIT_END + 0x003D, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_9_3 = UNIT_END + 0x002C, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_18_2 = UNIT_END + 0x003E, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_9_4 = UNIT_END + 0x002D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_19_1 = UNIT_END + 0x0040, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_10_1 = UNIT_END + 0x002E, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_19_2 = UNIT_END + 0x0041, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_10_2 = UNIT_END + 0x002F, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_20_1 = UNIT_END + 0x0043, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_10_3 = UNIT_END + 0x0030, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_20_2 = UNIT_END + 0x0044, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_10_4 = UNIT_END + 0x0031, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_21_1 = UNIT_END + 0x0046, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_11_1 = UNIT_END + 0x0032, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_21_2 = UNIT_END + 0x0047, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_11_2 = UNIT_END + 0x0033, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_22_1 = UNIT_END + 0x0049, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_11_3 = UNIT_END + 0x0034, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_22_2 = UNIT_END + 0x004A, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_11_4 = UNIT_END + 0x0035, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_23_1 = UNIT_END + 0x004C, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_12_1 = UNIT_END + 0x0036, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_23_2 = UNIT_END + 0x004D, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_12_2 = UNIT_END + 0x0037, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_24_1 = UNIT_END + 0x004F, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_12_3 = UNIT_END + 0x0038, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_QUEST_LOG_24_2 = UNIT_END + 0x0050, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_12_4 = UNIT_END + 0x0039, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_QUEST_LOG_25_1 = UNIT_END + 0x0052, // Size: 1, Type: INT, Flags: GROUP_ONLY PLAYER_QUEST_LOG_13_1 = UNIT_END + 0x003A, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_QUEST_LOG_25_2 = UNIT_END + 0x0053, // Size: 2, Type: INT, Flags: PRIVATE PLAYER_QUEST_LOG_13_2 = UNIT_END + 0x003B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_1_CREATOR = UNIT_END + 0x0055, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_13_3 = UNIT_END + 0x003C, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_1_0 = UNIT_END + 0x0057, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_13_4 = UNIT_END + 0x003D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_1_PROPERTIES = UNIT_END + 0x0063, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_14_1 = UNIT_END + 0x003E, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_1_PAD = UNIT_END + 0x0064, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_14_2 = UNIT_END + 0x003F, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_2_CREATOR = UNIT_END + 0x0065, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_14_3 = UNIT_END + 0x0040, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_2_0 = UNIT_END + 0x0067, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_14_4 = UNIT_END + 0x0041, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_2_PROPERTIES = UNIT_END + 0x0073, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_15_1 = UNIT_END + 0x0042, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_2_PAD = UNIT_END + 0x0074, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_15_2 = UNIT_END + 0x0043, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_3_CREATOR = UNIT_END + 0x0075, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_15_3 = UNIT_END + 0x0044, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_3_0 = UNIT_END + 0x0077, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_15_4 = UNIT_END + 0x0045, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_3_PROPERTIES = UNIT_END + 0x0083, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_16_1 = UNIT_END + 0x0046, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_3_PAD = UNIT_END + 0x0084, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_16_2 = UNIT_END + 0x0047, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_4_CREATOR = UNIT_END + 0x0085, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_16_3 = UNIT_END + 0x0048, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_4_0 = UNIT_END + 0x0087, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_16_4 = UNIT_END + 0x0049, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_4_PROPERTIES = UNIT_END + 0x0093, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_17_1 = UNIT_END + 0x004A, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_4_PAD = UNIT_END + 0x0094, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_17_2 = UNIT_END + 0x004B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_5_CREATOR = UNIT_END + 0x0095, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_17_3 = UNIT_END + 0x004C, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_5_0 = UNIT_END + 0x0097, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_17_4 = UNIT_END + 0x004D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_5_PROPERTIES = UNIT_END + 0x00A3, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_18_1 = UNIT_END + 0x004E, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_5_PAD = UNIT_END + 0x00A4, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_18_2 = UNIT_END + 0x004F, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_6_CREATOR = UNIT_END + 0x00A5, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_18_3 = UNIT_END + 0x0050, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_6_0 = UNIT_END + 0x00A7, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_18_4 = UNIT_END + 0x0051, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_6_PROPERTIES = UNIT_END + 0x00B3, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_19_1 = UNIT_END + 0x0052, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_6_PAD = UNIT_END + 0x00B4, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_19_2 = UNIT_END + 0x0053, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_7_CREATOR = UNIT_END + 0x00B5, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_19_3 = UNIT_END + 0x0054, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_7_0 = UNIT_END + 0x00B7, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_19_4 = UNIT_END + 0x0055, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_7_PROPERTIES = UNIT_END + 0x00C3, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_20_1 = UNIT_END + 0x0056, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_7_PAD = UNIT_END + 0x00C4, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_20_2 = UNIT_END + 0x0057, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_8_CREATOR = UNIT_END + 0x00C5, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_20_3 = UNIT_END + 0x0058, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_8_0 = UNIT_END + 0x00C7, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_20_4 = UNIT_END + 0x0059, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_8_PROPERTIES = UNIT_END + 0x00D3, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_21_1 = UNIT_END + 0x005A, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_8_PAD = UNIT_END + 0x00D4, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_21_2 = UNIT_END + 0x005B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_9_CREATOR = UNIT_END + 0x00D5, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_21_3 = UNIT_END + 0x005C, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_9_0 = UNIT_END + 0x00D7, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_21_4 = UNIT_END + 0x005D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_9_PROPERTIES = UNIT_END + 0x00E3, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_22_1 = UNIT_END + 0x005E, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_9_PAD = UNIT_END + 0x00E4, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_22_2 = UNIT_END + 0x005F, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_10_CREATOR = UNIT_END + 0x00E5, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_22_3 = UNIT_END + 0x0060, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_10_0 = UNIT_END + 0x00E7, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_22_4 = UNIT_END + 0x0061, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_10_PROPERTIES = UNIT_END + 0x00F3, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_23_1 = UNIT_END + 0x0062, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_10_PAD = UNIT_END + 0x00F4, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_23_2 = UNIT_END + 0x0063, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_11_CREATOR = UNIT_END + 0x00F5, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_23_3 = UNIT_END + 0x0064, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_11_0 = UNIT_END + 0x00F7, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_23_4 = UNIT_END + 0x0065, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_11_PROPERTIES = UNIT_END + 0x0103, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_24_1 = UNIT_END + 0x0066, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_11_PAD = UNIT_END + 0x0104, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_24_2 = UNIT_END + 0x0067, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_12_CREATOR = UNIT_END + 0x0105, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_24_3 = UNIT_END + 0x0068, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_12_0 = UNIT_END + 0x0107, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_24_4 = UNIT_END + 0x0069, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_12_PROPERTIES = UNIT_END + 0x0113, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_QUEST_LOG_25_1 = UNIT_END + 0x006A, // Size: 1, Type: INT, Flags: GROUP_ONLY
PLAYER_VISIBLE_ITEM_12_PAD = UNIT_END + 0x0114, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_25_2 = UNIT_END + 0x006B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_13_CREATOR = UNIT_END + 0x0115, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_QUEST_LOG_25_3 = UNIT_END + 0x006C, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_13_0 = UNIT_END + 0x0117, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_QUEST_LOG_25_4 = UNIT_END + 0x006D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_VISIBLE_ITEM_13_PROPERTIES = UNIT_END + 0x0123, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_1_CREATOR = UNIT_END + 0x006E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_13_PAD = UNIT_END + 0x0124, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_1_0 = UNIT_END + 0x0070, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_14_CREATOR = UNIT_END + 0x0125, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_VISIBLE_ITEM_1_PROPERTIES = UNIT_END + 0x007C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_14_0 = UNIT_END + 0x0127, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_1_PAD = UNIT_END + 0x007D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_14_PROPERTIES = UNIT_END + 0x0133, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_2_CREATOR = UNIT_END + 0x007E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_14_PAD = UNIT_END + 0x0134, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_2_0 = UNIT_END + 0x0080, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_15_CREATOR = UNIT_END + 0x0135, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_VISIBLE_ITEM_2_PROPERTIES = UNIT_END + 0x008C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_15_0 = UNIT_END + 0x0137, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_2_PAD = UNIT_END + 0x008D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_15_PROPERTIES = UNIT_END + 0x0143, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_3_CREATOR = UNIT_END + 0x008E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_15_PAD = UNIT_END + 0x0144, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_3_0 = UNIT_END + 0x0090, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_16_CREATOR = UNIT_END + 0x0145, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_VISIBLE_ITEM_3_PROPERTIES = UNIT_END + 0x009C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_16_0 = UNIT_END + 0x0147, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_3_PAD = UNIT_END + 0x009D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_16_PROPERTIES = UNIT_END + 0x0153, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_4_CREATOR = UNIT_END + 0x009E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_16_PAD = UNIT_END + 0x0154, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_4_0 = UNIT_END + 0x00A0, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_17_CREATOR = UNIT_END + 0x0155, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_VISIBLE_ITEM_4_PROPERTIES = UNIT_END + 0x00AC, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_17_0 = UNIT_END + 0x0157, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_4_PAD = UNIT_END + 0x00AD, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_17_PROPERTIES = UNIT_END + 0x0163, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_5_CREATOR = UNIT_END + 0x00AE, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_17_PAD = UNIT_END + 0x0164, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_5_0 = UNIT_END + 0x00B0, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_18_CREATOR = UNIT_END + 0x0165, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_VISIBLE_ITEM_5_PROPERTIES = UNIT_END + 0x00BC, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_18_0 = UNIT_END + 0x0167, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_5_PAD = UNIT_END + 0x00BD, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_18_PROPERTIES = UNIT_END + 0x0173, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_6_CREATOR = UNIT_END + 0x00BE, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_18_PAD = UNIT_END + 0x0174, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_6_0 = UNIT_END + 0x00C0, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_CREATOR = UNIT_END + 0x0175, // Size: 2, Type: LONG, Flags: PUBLIC PLAYER_VISIBLE_ITEM_6_PROPERTIES = UNIT_END + 0x00CC, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_0 = UNIT_END + 0x0177, // Size: 12, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_6_PAD = UNIT_END + 0x00CD, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_PROPERTIES = UNIT_END + 0x0183, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_7_CREATOR = UNIT_END + 0x00CE, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_PAD = UNIT_END + 0x0184, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_7_0 = UNIT_END + 0x00D0, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_CHOSEN_TITLE = UNIT_END + 0x0185, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_7_PROPERTIES = UNIT_END + 0x00DC, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_FIELD_INV_SLOT_HEAD = UNIT_END + 0x0186, // Size: 46, Type: LONG, Flags: PRIVATE PLAYER_VISIBLE_ITEM_7_PAD = UNIT_END + 0x00DD, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_FIELD_PACK_SLOT_1 = UNIT_END + 0x01B4, // Size: 32, Type: LONG, Flags: PRIVATE PLAYER_VISIBLE_ITEM_8_CREATOR = UNIT_END + 0x00DE, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_FIELD_BANK_SLOT_1 = UNIT_END + 0x01D4, // Size: 56, Type: LONG, Flags: PRIVATE PLAYER_VISIBLE_ITEM_8_0 = UNIT_END + 0x00E0, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_FIELD_BANKBAG_SLOT_1 = UNIT_END + 0x020C, // Size: 14, Type: LONG, Flags: PRIVATE PLAYER_VISIBLE_ITEM_8_PROPERTIES = UNIT_END + 0x00EC, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = UNIT_END + 0x021A, // Size: 24, Type: LONG, Flags: PRIVATE PLAYER_VISIBLE_ITEM_8_PAD = UNIT_END + 0x00ED, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_FIELD_KEYRING_SLOT_1 = UNIT_END + 0x0232, // Size: 64, Type: LONG, Flags: PRIVATE PLAYER_VISIBLE_ITEM_9_CREATOR = UNIT_END + 0x00EE, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_FARSIGHT = UNIT_END + 0x0272, // Size: 2, Type: LONG, Flags: PRIVATE PLAYER_VISIBLE_ITEM_9_0 = UNIT_END + 0x00F0, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER__FIELD_KNOWN_TITLES = UNIT_END + 0x0274, // Size: 2, Type: LONG, Flags: PRIVATE PLAYER_VISIBLE_ITEM_9_PROPERTIES = UNIT_END + 0x00FC, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_XP = UNIT_END + 0x0276, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_9_PAD = UNIT_END + 0x00FD, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_NEXT_LEVEL_XP = UNIT_END + 0x0277, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_10_CREATOR = UNIT_END + 0x00FE, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_SKILL_INFO_1_1 = UNIT_END + 0x0278, // Size: 384, Type: TWO_SHORT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_10_0 = UNIT_END + 0x0100, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_CHARACTER_POINTS1 = UNIT_END + 0x03F8, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_10_PROPERTIES = UNIT_END + 0x010C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_CHARACTER_POINTS2 = UNIT_END + 0x03F9, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_10_PAD = UNIT_END + 0x010D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_TRACK_CREATURES = UNIT_END + 0x03FA, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_11_CREATOR = UNIT_END + 0x010E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_TRACK_RESOURCES = UNIT_END + 0x03FB, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_11_0 = UNIT_END + 0x0110, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_BLOCK_PERCENTAGE = UNIT_END + 0x03FC, // Size: 1, Type: FLOAT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_11_PROPERTIES = UNIT_END + 0x011C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_DODGE_PERCENTAGE = UNIT_END + 0x03FD, // Size: 1, Type: FLOAT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_11_PAD = UNIT_END + 0x011D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_PARRY_PERCENTAGE = UNIT_END + 0x03FE, // Size: 1, Type: FLOAT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_12_CREATOR = UNIT_END + 0x011E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_EXPERTISE = UNIT_END + 0x03FF, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_12_0 = UNIT_END + 0x0120, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_CRIT_PERCENTAGE = UNIT_END + 0x0400, // Size: 1, Type: FLOAT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_12_PROPERTIES = UNIT_END + 0x012C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_RANGED_CRIT_PERCENTAGE = UNIT_END + 0x0401, // Size: 1, Type: FLOAT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_12_PAD = UNIT_END + 0x012D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_OFFHAND_CRIT_PERCENTAGE = UNIT_END + 0x0402, // Size: 1, Type: FLOAT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_13_CREATOR = UNIT_END + 0x012E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_SPELL_CRIT_PERCENTAGE1 = UNIT_END + 0x0403, // Size: 7, Type: FLOAT, Flags: PRIVATE PLAYER_VISIBLE_ITEM_13_0 = UNIT_END + 0x0130, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_13_PROPERTIES = UNIT_END + 0x013C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
// custom PLAYER_VISIBLE_ITEM_13_PAD = UNIT_END + 0x013D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_14_CREATOR = UNIT_END + 0x013E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_14_0 = UNIT_END + 0x0140, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_14_PROPERTIES = UNIT_END + 0x014C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_14_PAD = UNIT_END + 0x014D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_15_CREATOR = UNIT_END + 0x014E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_15_0 = UNIT_END + 0x0150, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_15_PROPERTIES = UNIT_END + 0x015C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_15_PAD = UNIT_END + 0x015D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_16_CREATOR = UNIT_END + 0x015E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_16_0 = UNIT_END + 0x0160, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_16_PROPERTIES = UNIT_END + 0x016C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_16_PAD = UNIT_END + 0x016D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_17_CREATOR = UNIT_END + 0x016E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_17_0 = UNIT_END + 0x0170, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_17_PROPERTIES = UNIT_END + 0x017C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_17_PAD = UNIT_END + 0x017D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_18_CREATOR = UNIT_END + 0x017E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_18_0 = UNIT_END + 0x0180, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_18_PROPERTIES = UNIT_END + 0x018C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_18_PAD = UNIT_END + 0x018D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_CREATOR = UNIT_END + 0x018E, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_0 = UNIT_END + 0x0190, // Size: 12, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_PROPERTIES = UNIT_END + 0x019C, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_PAD = UNIT_END + 0x019D, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_CHOSEN_TITLE = UNIT_END + 0x019E, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_FIELD_PAD_0 = UNIT_END + 0x019F, // Size: 1, Type: INT, Flags: NONE
PLAYER_FIELD_INV_SLOT_HEAD = UNIT_END + 0x01A0, // Size: 46, Type: LONG, Flags: PRIVATE
PLAYER_FIELD_PACK_SLOT_1 = UNIT_END + 0x01CE, // Size: 32, Type: LONG, Flags: PRIVATE
PLAYER_FIELD_BANK_SLOT_1 = UNIT_END + 0x01EE, // Size: 56, Type: LONG, Flags: PRIVATE
PLAYER_FIELD_BANKBAG_SLOT_1 = UNIT_END + 0x0226, // Size: 14, Type: LONG, Flags: PRIVATE
PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = UNIT_END + 0x0234, // Size: 24, Type: LONG, Flags: PRIVATE
PLAYER_FIELD_KEYRING_SLOT_1 = UNIT_END + 0x024C, // Size: 64, Type: LONG, Flags: PRIVATE
PLAYER_FIELD_VANITYPET_SLOT_1 = UNIT_END + 0x028C, // Size: 36, Type: LONG, Flags: PRIVATE
PLAYER_FARSIGHT = UNIT_END + 0x02B0, // Size: 2, Type: LONG, Flags: PRIVATE
PLAYER__FIELD_KNOWN_TITLES = UNIT_END + 0x02B2, // Size: 2, Type: LONG, Flags: PRIVATE
PLAYER_XP = UNIT_END + 0x02B4, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_NEXT_LEVEL_XP = UNIT_END + 0x02B5, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_SKILL_INFO_1_1 = UNIT_END + 0x02B6, // Size: 384, Type: TWO_SHORT, Flags: PRIVATE
PLAYER_CHARACTER_POINTS1 = UNIT_END + 0x0436, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_CHARACTER_POINTS2 = UNIT_END + 0x0437, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_TRACK_CREATURES = UNIT_END + 0x0438, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_TRACK_RESOURCES = UNIT_END + 0x0439, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_BLOCK_PERCENTAGE = UNIT_END + 0x043A, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_DODGE_PERCENTAGE = UNIT_END + 0x043B, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_PARRY_PERCENTAGE = UNIT_END + 0x043C, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_EXPERTISE = UNIT_END + 0x043D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_OFFHAND_EXPERTISE = UNIT_END + 0x043E, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_CRIT_PERCENTAGE = UNIT_END + 0x043F, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_RANGED_CRIT_PERCENTAGE = UNIT_END + 0x0440, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_OFFHAND_CRIT_PERCENTAGE = UNIT_END + 0x0441, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_SPELL_CRIT_PERCENTAGE1 = UNIT_END + 0x0442, // Size: 7, Type: FLOAT, Flags: PRIVATE
PLAYER_HOLY_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+1, PLAYER_HOLY_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+1,
PLAYER_FIRE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+2, PLAYER_FIRE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+2,
PLAYER_NATURE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+3, PLAYER_NATURE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+3,
PLAYER_FROST_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+4, PLAYER_FROST_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+4,
PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+5, PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+5,
PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+6, PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+6,
PLAYER_SHIELD_BLOCK = UNIT_END + 0x0449, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_SHIELD_BLOCK = UNIT_END + 0x040A, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_EXPLORED_ZONES_1 = UNIT_END + 0x044A, // Size: 64, Type: BYTES, Flags: PRIVATE
PLAYER_EXPLORED_ZONES_1 = UNIT_END + 0x040B, // Size: 64, Type: BYTES, Flags: PRIVATE PLAYER_REST_STATE_EXPERIENCE = UNIT_END + 0x048A, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_REST_STATE_EXPERIENCE = UNIT_END + 0x044B, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_COINAGE = UNIT_END + 0x048B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_COINAGE = UNIT_END + 0x044C, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_DAMAGE_DONE_POS = UNIT_END + 0x048C, // Size: 7, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_DAMAGE_DONE_POS = UNIT_END + 0x044D, // Size: 7, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UNIT_END + 0x0493, // Size: 7, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UNIT_END + 0x0454, // Size: 7, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UNIT_END + 0x049A, // Size: 7, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UNIT_END + 0x045B, // Size: 7, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_HEALING_DONE_POS = UNIT_END + 0x04A1, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_HEALING_DONE_POS = UNIT_END + 0x0462, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_TARGET_RESISTANCE = UNIT_END + 0x04A2, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_TARGET_RESISTANCE = UNIT_END + 0x0463, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE = UNIT_END + 0x04A3, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_BYTES = UNIT_END + 0x0464, // Size: 1, Type: BYTES, Flags: PRIVATE PLAYER_FIELD_BYTES = UNIT_END + 0x04A4, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_AMMO_ID = UNIT_END + 0x0465, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_AMMO_ID = UNIT_END + 0x04A5, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_SELF_RES_SPELL = UNIT_END + 0x0466, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_SELF_RES_SPELL = UNIT_END + 0x04A6, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_PVP_MEDALS = UNIT_END + 0x0467, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_PVP_MEDALS = UNIT_END + 0x04A7, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_BUYBACK_PRICE_1 = UNIT_END + 0x0468, // Size: 12, Type: INT, Flags: PRIVATE PLAYER_FIELD_BUYBACK_PRICE_1 = UNIT_END + 0x04A8, // Size: 12, Type: INT, Flags: PRIVATE
PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UNIT_END + 0x0474, // Size: 12, Type: INT, Flags: PRIVATE PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UNIT_END + 0x04B4, // Size: 12, Type: INT, Flags: PRIVATE
PLAYER_FIELD_KILLS = UNIT_END + 0x0480, // Size: 1, Type: TWO_SHORT, Flags: PRIVATE PLAYER_FIELD_KILLS = UNIT_END + 0x04C0, // Size: 1, Type: TWO_SHORT, Flags: PRIVATE
PLAYER_FIELD_TODAY_CONTRIBUTION = UNIT_END + 0x0481, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_TODAY_CONTRIBUTION = UNIT_END + 0x04C1, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_YESTERDAY_CONTRIBUTION = UNIT_END + 0x0482, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_YESTERDAY_CONTRIBUTION = UNIT_END + 0x04C2, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_LIFETIME_HONORBALE_KILLS = UNIT_END + 0x0483, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_LIFETIME_HONORBALE_KILLS = UNIT_END + 0x04C3, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_BYTES2 = UNIT_END + 0x0484, // Size: 1, Type: BYTES, Flags: PRIVATE PLAYER_FIELD_BYTES2 = UNIT_END + 0x04C4, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_FIELD_WATCHED_FACTION_INDEX = UNIT_END + 0x0485, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_WATCHED_FACTION_INDEX = UNIT_END + 0x04C5, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x0486, // Size: 24, Type: INT, Flags: PRIVATE PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x04C6, // Size: 24, Type: INT, Flags: PRIVATE
// custom // client names: // custom // client names:
// CR_WEAPON_SKILL // RATING_WEAPON_SKILL
PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1, PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1,
// CR_DEFENSE_SKILL // RATING_DEFENSE_SKILL
PLAYER_FIELD_DEFENCE_RATING = PLAYER_FIELD_COMBAT_RATING_1+1, PLAYER_FIELD_DEFENCE_RATING = PLAYER_FIELD_COMBAT_RATING_1+1,
// CR_DODGE // RATING_DODGE
PLAYER_FIELD_DODGE_RATING = PLAYER_FIELD_COMBAT_RATING_1+2, PLAYER_FIELD_DODGE_RATING = PLAYER_FIELD_COMBAT_RATING_1+2,
// CR_PARRY // RATING_PARRY
PLAYER_FIELD_PARRY_RATING = PLAYER_FIELD_COMBAT_RATING_1+3, PLAYER_FIELD_PARRY_RATING = PLAYER_FIELD_COMBAT_RATING_1+3,
// CR_BLOCK // RATING_BLOCK
PLAYER_FIELD_BLOCK_RATING = PLAYER_FIELD_COMBAT_RATING_1+4, PLAYER_FIELD_BLOCK_RATING = PLAYER_FIELD_COMBAT_RATING_1+4,
// CR_HIT_MELEE // RATING_HIT_MELEE
PLAYER_FIELD_MELEE_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+5, PLAYER_FIELD_MELEE_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+5,
// CR_HIT_RANGED // RATING_HIT_RANGED
PLAYER_FIELD_RANGED_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+6, PLAYER_FIELD_RANGED_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+6,
// CR_HIT_SPELL // RATING_HIT_SPELL
PLAYER_FIELD_SPELL_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+7, PLAYER_FIELD_SPELL_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+7,
// CR_CRIT_MELEE // RATING_CRIT_MELEE
PLAYER_FIELD_MELEE_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+8, PLAYER_FIELD_MELEE_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+8,
// CR_CRIT_RANGED // RATING_CRIT_RANGED
PLAYER_FIELD_RANGED_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+9, PLAYER_FIELD_RANGED_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+9,
// CR_CRIT_SPELL // RATING_CRIT_SPELL
PLAYER_FIELD_SPELL_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+10, PLAYER_FIELD_SPELL_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+10,
// CR_HIT_TAKEN_MELEE // RATING_HIT_TAKEN_MELEE
PLAYER_FIELD_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+11, PLAYER_FIELD_HIT_TAKEN_MELEE_RATING = PLAYER_FIELD_COMBAT_RATING_1+11,
// CR_HIT_TAKEN_RANGED // RATING_HIT_TAKEN_RANGED
PLAYER_FIELD_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+12, PLAYER_FIELD_HIT_TAKEN_RANGED_RATING = PLAYER_FIELD_COMBAT_RATING_1+12,
// CR_HIT_TAKEN_SPELL // RATING_HIT_TAKEN_SPELL
PLAYER_FIELD_UNK3_RATING = PLAYER_FIELD_COMBAT_RATING_1+13, PLAYER_FIELD_HIT_TAKEN_SPELL_RATING = PLAYER_FIELD_COMBAT_RATING_1+13,
// CR_CRIT_TAKEN_MELEE // RATING_CRIT_TAKEN_MELEE
PLAYER_FIELD_UNK4_RATING = PLAYER_FIELD_COMBAT_RATING_1+14, PLAYER_FIELD_CRIT_TAKEN_MELEE_RATING = PLAYER_FIELD_COMBAT_RATING_1+14,
// CR_CRIT_TAKEN_RANGED // RATING_CRIT_TAKEN_RANGED
PLAYER_FIELD_UNK5_RATING = PLAYER_FIELD_COMBAT_RATING_1+15, PLAYER_FIELD_CRIT_TAKEN_RANGED_RATING = PLAYER_FIELD_COMBAT_RATING_1+15,
// CR_CRIT_TAKEN_SPELL // RATING_CRIT_TAKEN_SPELL
PLAYER_FIELD_RESILIENCE_RATING = PLAYER_FIELD_COMBAT_RATING_1+16, PLAYER_FIELD_CRIT_TAKEN_SPELL_RATING = PLAYER_FIELD_COMBAT_RATING_1+16,
// CR_HASTE_MELEE // RATING_HASTE_MELEE
PLAYER_FIELD_MELEE_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+17, PLAYER_FIELD_MELEE_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+17,
// CR_HASTE_RANGED // RATING_HASTE_RANGED
PLAYER_FIELD_RANGED_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+18, PLAYER_FIELD_RANGED_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+18,
// CR_HASTE_SPELL // RATING_HASTE_SPELL
PLAYER_FIELD_SPELL_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+19, PLAYER_FIELD_SPELL_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+19,
// CR_WEAPON_SKILL_MAINHAND // RATING_WEAPON_SKILL_MAINHAND
PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+20, PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+20,
// CR_WEAPON_SKILL_OFFHAND // RATING_WEAPON_SKILL_OFFHAND
PLAYER_FIELD_OFFHAND_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+21, PLAYER_FIELD_OFFHAND_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+21,
// CR_WEAPON_SKILL_RANGED // RATING_WEAPON_SKILL_RANGED
PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+22, PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+22,
// CR_EXPERTISE // RATING_EXPERTISE
PLAYER_FIELD_EXPERTISE_RATING = PLAYER_FIELD_COMBAT_RATING_1+23, PLAYER_FIELD_EXPERTISE_RATING = PLAYER_FIELD_COMBAT_RATING_1+23,
PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UNIT_END + 0x049E, // Size: 18, Type: INT, Flags: PRIVATE PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UNIT_END + 0x04DE, // Size: 18, Type: INT, Flags: PRIVATE
// custom // custom
PLAYER_FIELD_ARENA_TEAM_ID_2v2 = PLAYER_FIELD_ARENA_TEAM_INFO_1_1, PLAYER_FIELD_ARENA_TEAM_ID_2v2 = PLAYER_FIELD_ARENA_TEAM_INFO_1_1,
PLAYER_FIELD_ARENA_TEAM_ID_3v3 = PLAYER_FIELD_ARENA_TEAM_INFO_1_1+6, PLAYER_FIELD_ARENA_TEAM_ID_3v3 = PLAYER_FIELD_ARENA_TEAM_INFO_1_1+6,
PLAYER_FIELD_ARENA_TEAM_ID_5v5 = PLAYER_FIELD_ARENA_TEAM_INFO_1_1+12, PLAYER_FIELD_ARENA_TEAM_ID_5v5 = PLAYER_FIELD_ARENA_TEAM_INFO_1_1+12,
PLAYER_FIELD_HONOR_CURRENCY = UNIT_END + 0x04B0, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_HONOR_CURRENCY = UNIT_END + 0x04F0, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_ARENA_CURRENCY = UNIT_END + 0x04B1, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_ARENA_CURRENCY = UNIT_END + 0x04F1, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_MANA_REGEN = UNIT_END + 0x04B2, // Size: 1, Type: FLOAT, Flags: PRIVATE PLAYER_FIELD_MOD_MANA_REGEN = UNIT_END + 0x04F2, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT = UNIT_END + 0x04B3, // Size: 1, Type: FLOAT, Flags: PRIVATE PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT = UNIT_END + 0x04F3, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_FIELD_MAX_LEVEL = UNIT_END + 0x04B4, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MAX_LEVEL = UNIT_END + 0x04F4, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_DAILY_QUESTS_1 = UNIT_END + 0x04B5, // Size: 10, Type: INT, Flags: PRIVATE PLAYER_FIELD_DAILY_QUESTS_1 = UNIT_END + 0x04F5, // Size: 25, Type: INT, Flags: PRIVATE
PLAYER_FIELD_PADDING = UNIT_END + 0x04BF, // Size: 1, Type: INT, Flags: NONE PLAYER_END = UNIT_END + 0x050E,
PLAYER_END = UNIT_END + 0x04C0,
}; };
enum EGameObjectFields enum EGameObjectFields
@ -445,7 +497,7 @@ enum EDynamicObjectFields
DYNAMICOBJECT_POS_Y = OBJECT_END + 0x0006, // Size: 1, Type: FLOAT, Flags: PUBLIC DYNAMICOBJECT_POS_Y = OBJECT_END + 0x0006, // Size: 1, Type: FLOAT, Flags: PUBLIC
DYNAMICOBJECT_POS_Z = OBJECT_END + 0x0007, // Size: 1, Type: FLOAT, Flags: PUBLIC DYNAMICOBJECT_POS_Z = OBJECT_END + 0x0007, // Size: 1, Type: FLOAT, Flags: PUBLIC
DYNAMICOBJECT_FACING = OBJECT_END + 0x0008, // Size: 1, Type: FLOAT, Flags: PUBLIC DYNAMICOBJECT_FACING = OBJECT_END + 0x0008, // Size: 1, Type: FLOAT, Flags: PUBLIC
DYNAMICOBJECT_PAD = OBJECT_END + 0x0009, // Size: 1, Type: BYTES, Flags: PUBLIC DYNAMICOBJECT_CASTTIME = OBJECT_END + 0x0009, // Size: 1, Type: INT, Flags: PUBLIC
DYNAMICOBJECT_END = OBJECT_END + 0x000A, DYNAMICOBJECT_END = OBJECT_END + 0x000A,
}; };

View File

@ -533,6 +533,7 @@ void WorldSession::_HandleCharEnumOpcode(WorldPacket& recvPacket)
uint8 charId; uint8 charId;
PlayerEnum plr[10]; // max characters per realm is 10 PlayerEnum plr[10]; // max characters per realm is 10
uint8 dummy8; uint8 dummy8;
uint32 dummy32;
recvPacket >> num; recvPacket >> num;
if(num==0) if(num==0)
@ -571,7 +572,7 @@ void WorldSession::_HandleCharEnumOpcode(WorldPacket& recvPacket)
recvPacket >> plr[i]._petFamilyId; recvPacket >> plr[i]._petFamilyId;
for(unsigned int inv=0;inv<20;inv++) for(unsigned int inv=0;inv<20;inv++)
{ {
recvPacket >> plr[i]._items[inv].displayId >> plr[i]._items[inv].inventorytype; recvPacket >> plr[i]._items[inv].displayId >> plr[i]._items[inv].inventorytype >> dummy32;
} }
plrNameCache.AddInfo(plr[i]._guid, plr[i]._name); plrNameCache.AddInfo(plr[i]._guid, plr[i]._name);
} }