* upgrade to 2.1.3 support. thx to bLuma for patch!!
* corrected and extended SharedDefines.h * added handlers for SMSG_MOTD and SMSG_NOTIFICATION * added values created by stuffextract to map.scp/race.scp before it supports 2.1.3 also.
This commit is contained in:
parent
12b508fc9f
commit
49338c6e6a
@ -58,8 +58,8 @@ charname=Pseuwow
|
||||
|
||||
|
||||
// Client emulation configuration
|
||||
ClientVersion=2.0.12
|
||||
ClientBuild=6546
|
||||
ClientVersion=2.1.3
|
||||
ClientBuild=6898
|
||||
ClientLanguage=enUS
|
||||
// or change to enGB, deDE, ...
|
||||
|
||||
@ -113,3 +113,4 @@ rmcontrolhost=localhost
|
||||
// PseuWoW will need more memory with maps enabled!
|
||||
useMaps=0
|
||||
|
||||
|
||||
|
||||
@ -1,130 +1,280 @@
|
||||
[0]
|
||||
name=Azeroth
|
||||
name_general=Azeroth
|
||||
name=Eastern Kingdoms
|
||||
|
||||
[1]
|
||||
name_general=Kalimdor
|
||||
name=Kalimdor
|
||||
|
||||
[2]
|
||||
name=UnderMine
|
||||
|
||||
[13]
|
||||
name=Test zone
|
||||
name_general=test
|
||||
name=Testing
|
||||
|
||||
[17]
|
||||
name=Kalidar
|
||||
[25]
|
||||
name_general=ScottTest
|
||||
name=Scott Test
|
||||
|
||||
[29]
|
||||
name_general=Test
|
||||
name=CashTest
|
||||
|
||||
[30]
|
||||
name_general=PVPZone01
|
||||
name=Alterac Valley
|
||||
|
||||
[33]
|
||||
name=Shadowfang Keep Instance
|
||||
name_general=Shadowfang
|
||||
name=Shadowfang Keep
|
||||
|
||||
[34]
|
||||
name=The Stockade Instance
|
||||
name_general=StormwindJail
|
||||
name=Stormwind Stockade
|
||||
|
||||
[35]
|
||||
name=Stormwind Prizon
|
||||
name_general=StormwindPrison
|
||||
name=<unused>StormwindPrison
|
||||
|
||||
[36]
|
||||
name=Deadmines Instance
|
||||
name_general=DeadminesInstance
|
||||
name=Deadmines
|
||||
|
||||
[37]
|
||||
name=Plains of Snow
|
||||
name_general=PVPZone02
|
||||
name=Azshara Crater
|
||||
|
||||
[42]
|
||||
name_general=Collin
|
||||
name=Collin's Test
|
||||
|
||||
[43]
|
||||
name=Wailing Caverns Instance
|
||||
name_general=WailingCaverns
|
||||
name=Wailing Caverns
|
||||
|
||||
[44]
|
||||
name=Monastery Interior
|
||||
name_general=Monastery
|
||||
name=<unused> Monastery
|
||||
|
||||
[47]
|
||||
name=Razorfen Kraul Instance
|
||||
name_general=RazorfenKraulInstance
|
||||
name=Razorfen Kraul
|
||||
|
||||
[48]
|
||||
name=Blackfathom Deeps Instance
|
||||
name_general=Blackfathom
|
||||
name=Blackfathom Deeps
|
||||
|
||||
[70]
|
||||
name=Uldaman Instance
|
||||
name_general=Uldaman
|
||||
name=Uldaman
|
||||
|
||||
[90]
|
||||
name=Gnomeregan Instance
|
||||
name_general=GnomeragonInstance
|
||||
name=Gnomeregan
|
||||
|
||||
[109]
|
||||
name=Sunken Temple Instance
|
||||
name_general=SunkenTemple
|
||||
name=Sunken Temple
|
||||
|
||||
[129]
|
||||
name=Razorfen Downs Instance
|
||||
|
||||
[150]
|
||||
name=Outland
|
||||
name_general=RazorfenDowns
|
||||
name=Razorfen Downs
|
||||
|
||||
[169]
|
||||
name=Emerald Forest
|
||||
name_general=EmeraldDream
|
||||
name=Emerald Dream
|
||||
|
||||
[189]
|
||||
name=Scarlet Monastery Instance
|
||||
name_general=MonasteryInstances
|
||||
name=Scarlet Monastery
|
||||
|
||||
[209]
|
||||
name=Zul\'Farrak Instance
|
||||
name_general=TanarisInstance
|
||||
name=Zul'Farrak
|
||||
|
||||
[229]
|
||||
name=Blackrock Spire Instance
|
||||
name_general=BlackRockSpire
|
||||
name=Blackrock Spire
|
||||
|
||||
[230]
|
||||
name=Blackrock Depths Instance
|
||||
name_general=BlackrockDepths
|
||||
name=Blackrock Depths
|
||||
|
||||
[249]
|
||||
name=Onyxia\'s Lair Instance
|
||||
name_general=OnyxiaLairInstance
|
||||
name=Onyxia's Lair
|
||||
|
||||
[269]
|
||||
name=Caverns of Time
|
||||
name_general=CavernsOfTime
|
||||
name=Opening of the Dark Portal
|
||||
|
||||
[289]
|
||||
name=Scholomance Instance
|
||||
name_general=SchoolofNecromancy
|
||||
name=Scholomance
|
||||
|
||||
[309]
|
||||
name=Zul'Gurub Instance
|
||||
name_general=Zul'gurub
|
||||
name=Zul'Gurub
|
||||
|
||||
[329]
|
||||
name=Stratholme Instance
|
||||
name_general=Stratholme
|
||||
name=Stratholme
|
||||
|
||||
[349]
|
||||
name=Mauradon Instance
|
||||
name_general=Mauradon
|
||||
name=Maraudon
|
||||
|
||||
[369]
|
||||
name_general=DeeprunTram
|
||||
name=Deeprun Tram
|
||||
|
||||
[389]
|
||||
name=Ragefire Chasm Instance
|
||||
name_general=OrgrimmarInstance
|
||||
name=Ragefire Chasm
|
||||
|
||||
[409]
|
||||
name=The Molten Core Instance
|
||||
name_general=MoltenCore
|
||||
name=Molten Core
|
||||
|
||||
[429]
|
||||
name=Dire Maul Instance
|
||||
name_general=DireMaul
|
||||
name=Dire Maul
|
||||
|
||||
[449]
|
||||
name_general=AlliancePVPBarracks
|
||||
name=Alliance PVP Barracks
|
||||
|
||||
[450]
|
||||
name_general=HordePVPBarracks
|
||||
name=Horde PVP Barracks
|
||||
|
||||
[451]
|
||||
name_general=development
|
||||
name=Development Land
|
||||
|
||||
[469]
|
||||
name=Blackwing Lair Instance
|
||||
name_general=BlackwingLair
|
||||
name=Blackwing Lair
|
||||
|
||||
[489]
|
||||
name_general=PVPZone03
|
||||
name=Warsong Gulch
|
||||
|
||||
[509]
|
||||
name=Ruins of Ahn'Qiraj Instance
|
||||
name_general=AhnQiraj
|
||||
name=Ruins of Ahn'Qiraj
|
||||
|
||||
[529]
|
||||
name_general=PVPZone04
|
||||
name=Arathi Basin
|
||||
|
||||
[530]
|
||||
name_general=Expansion01
|
||||
name=Outland
|
||||
|
||||
[531]
|
||||
name=Temple of Ahn'Qiraj Instance
|
||||
name_general=AhnQirajTemple
|
||||
name=Ahn'Qiraj Temple
|
||||
|
||||
[532]
|
||||
name_general=Karazahn
|
||||
name=Karazhan
|
||||
|
||||
[533]
|
||||
name=Naxxramas Instance
|
||||
name_general=Stratholme Raid
|
||||
name=Naxxramas
|
||||
|
||||
[534]
|
||||
name_general=HyjalPast
|
||||
name=The Battle for Mount Hyjal
|
||||
|
||||
[540]
|
||||
name_general=HellfireMilitary
|
||||
name=Hellfire Citadel: The Shattered Halls
|
||||
|
||||
[542]
|
||||
name_general=HellfireDemon
|
||||
name=Hellfire Citadel: The Blood Furnace
|
||||
|
||||
[543]
|
||||
name_general=HellfireRampart
|
||||
name=Hellfire Citadel: Ramparts
|
||||
|
||||
[544]
|
||||
name_general=HellfireRaid
|
||||
name=Magtheridon's Lair
|
||||
|
||||
[545]
|
||||
name_general=CoilfangPumping
|
||||
name=Coilfang: The Steamvault
|
||||
|
||||
[546]
|
||||
name_general=CoilfangMarsh
|
||||
name=Coilfang: The Underbog
|
||||
|
||||
[547]
|
||||
name_general=CoilfangDraenei
|
||||
name=Coilfang: The Slave Pens
|
||||
|
||||
[548]
|
||||
name_general=CoilfangRaid
|
||||
name=Coilfang: Serpentshrine Cavern
|
||||
|
||||
[550]
|
||||
name_general=TempestKeepRaid
|
||||
name=Tempest Keep
|
||||
|
||||
[552]
|
||||
name_general=TempestKeepArcane
|
||||
name=Tempest Keep: The Arcatraz
|
||||
|
||||
[553]
|
||||
name_general=TempestKeepAtrium
|
||||
name=Tempest Keep: The Botanica
|
||||
|
||||
[554]
|
||||
name_general=TempestKeepFactory
|
||||
name=Tempest Keep: The Mechanar
|
||||
|
||||
[555]
|
||||
name_general=AuchindounShadow
|
||||
name=Auchindoun: Shadow Labyrinth
|
||||
|
||||
[556]
|
||||
name_general=AuchindounDemon
|
||||
name=Auchindoun: Sethekk Halls
|
||||
|
||||
[557]
|
||||
name_general=AuchindounEthereal
|
||||
name=Auchindoun: Mana-Tombs
|
||||
|
||||
[558]
|
||||
name_general=AuchindounDraenei
|
||||
name=Auchindoun: Auchenai Crypts
|
||||
|
||||
[559]
|
||||
name_general=PVPZone05
|
||||
name=Nagrand Arena
|
||||
|
||||
[560]
|
||||
name_general=HillsbradPast
|
||||
name=The Escape From Durnholde
|
||||
|
||||
[562]
|
||||
name_general=bladesedgearena
|
||||
name=Blade's Edge Arena
|
||||
|
||||
[564]
|
||||
name_general=BlackTemple
|
||||
name=Black Temple
|
||||
|
||||
[565]
|
||||
name_general=GruulsLair
|
||||
name=Gruul's Lair
|
||||
|
||||
[566]
|
||||
name_general=NetherstormBG
|
||||
name=Eye of the Storm
|
||||
|
||||
[568]
|
||||
name_general=ZulAman
|
||||
name=Zul'Aman
|
||||
|
||||
|
||||
@ -1,35 +1,120 @@
|
||||
// note that the faction is equal to the default language id:
|
||||
// 1: Horde, Orcish
|
||||
// 7: Alliance, Common
|
||||
|
||||
[1]
|
||||
model_m=49
|
||||
model_f=50
|
||||
name_short=Hu
|
||||
faction=7
|
||||
name_general=Human
|
||||
name=Human
|
||||
|
||||
[2]
|
||||
model_m=51
|
||||
model_f=52
|
||||
name_short=Or
|
||||
faction=1
|
||||
name_general=Orc
|
||||
name=Orc
|
||||
|
||||
[3]
|
||||
model_m=53
|
||||
model_f=54
|
||||
name_short=Dw
|
||||
faction=7
|
||||
name_general=Dwarf
|
||||
name=Dwarf
|
||||
|
||||
[4]
|
||||
model_m=55
|
||||
model_f=56
|
||||
name_short=Ni
|
||||
faction=7
|
||||
name_general=NightElf
|
||||
name=Night Elf
|
||||
|
||||
[5]
|
||||
model_m=57
|
||||
model_f=58
|
||||
name_short=Sc
|
||||
faction=1
|
||||
name_general=Scourge
|
||||
name=Undead
|
||||
|
||||
[6]
|
||||
model_m=59
|
||||
model_f=60
|
||||
name_short=Ta
|
||||
faction=1
|
||||
name_general=Tauren
|
||||
name=Tauren
|
||||
|
||||
[7]
|
||||
model_m=1563
|
||||
model_f=1564
|
||||
name_short=Gn
|
||||
faction=7
|
||||
name_general=Gnome
|
||||
name=Gnome
|
||||
|
||||
[8]
|
||||
model_m=1478
|
||||
model_f=1479
|
||||
name_short=Tr
|
||||
faction=1
|
||||
name_general=Troll
|
||||
name=Troll
|
||||
|
||||
[9]
|
||||
model_m=6894
|
||||
model_f=6895
|
||||
name_short=Gb
|
||||
faction=7
|
||||
name_general=Goblin
|
||||
name=Goblin
|
||||
|
||||
[10]
|
||||
model_m=15476
|
||||
model_f=15475
|
||||
name_short=Be
|
||||
faction=1
|
||||
name_general=BloodElf
|
||||
name=Blood Elf
|
||||
|
||||
[11]
|
||||
model_m=16125
|
||||
model_f=16126
|
||||
name_short=Dr
|
||||
faction=7
|
||||
name_general=Draenei
|
||||
name=Draenei
|
||||
|
||||
[12]
|
||||
model_m=16981
|
||||
model_f=16980
|
||||
name_short=Fo
|
||||
faction=7
|
||||
name_general=FelOrc
|
||||
name=Fel Orc
|
||||
|
||||
[13]
|
||||
model_m=17402
|
||||
model_f=17403
|
||||
name_short=Na
|
||||
faction=7
|
||||
name_general=Naga_
|
||||
name=Naga
|
||||
|
||||
[14]
|
||||
model_m=17576
|
||||
model_f=17577
|
||||
name_short=Br
|
||||
faction=7
|
||||
name_general=Broken
|
||||
name=Broken
|
||||
|
||||
[15]
|
||||
model_m=17578
|
||||
model_f=17579
|
||||
name_short=Sk
|
||||
faction=7
|
||||
name_general=Skeleton
|
||||
name=Skeleton
|
||||
|
||||
|
||||
@ -745,9 +745,9 @@ DefReturnResult DefScriptPackage::SCGetFileList(CmdSet& Set)
|
||||
for(DefList::iterator i = l->begin(); i != l->end(); )
|
||||
{
|
||||
std::string tmp = stringToLower(i->c_str() + (i->length() - ext.length()));
|
||||
if( stringToLower(i->c_str() + (i->length() - ext.length())) != ext )
|
||||
if( tmp != ext )
|
||||
{
|
||||
l->erase(i);
|
||||
i = l->erase(i);
|
||||
continue;
|
||||
}
|
||||
i++;
|
||||
@ -828,3 +828,4 @@ void DefScriptPackage::My_Run(std::string line, std::string username)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
#include "Item.h"
|
||||
|
||||
// increase this number whenever you change something that makes old files unusable
|
||||
uint32 ITEMPROTOTYPES_CACHE_VERSION = 0x00000000;
|
||||
uint32 ITEMPROTOTYPES_CACHE_VERSION = 0x00000001;
|
||||
|
||||
bool PlayerNameCache::AddInfo(uint64 guid, std::string name){
|
||||
PlayerNameCacheItem *cacheItem=new PlayerNameCacheItem;
|
||||
@ -246,6 +246,8 @@ void ItemProtoCache_InsertDataToSession(WorldSession *session)
|
||||
buf >> proto->GemProperties;
|
||||
buf >> proto->ExtendedCost;
|
||||
buf >> proto->RequiredDisenchantSkill;
|
||||
buf >> proto->ArmorDamageModifier;
|
||||
|
||||
if(proto->Id)
|
||||
{
|
||||
//DEBUG(logdebug("ItemProtoCache: Loaded %u [%s]",proto->Id, proto->Name[0].c_str()));
|
||||
@ -360,6 +362,7 @@ void ItemProtoCache_WriteDataToCache(WorldSession *session)
|
||||
buf << proto->GemProperties;
|
||||
buf << proto->ExtendedCost;
|
||||
buf << proto->RequiredDisenchantSkill;
|
||||
buf << proto->ArmorDamageModifier;
|
||||
|
||||
//DEBUG(logdebug("ItemProtoCache: Saved %u [%s]",proto->Id, proto->Name[0].c_str()));
|
||||
uint32 size = buf.size();
|
||||
|
||||
@ -110,7 +110,7 @@ void Channel::HandleNotifyOpcode(WorldPacket &packet)
|
||||
switch (code)
|
||||
{
|
||||
// Player joined channel you are on
|
||||
case 0x00:
|
||||
case JOINED:
|
||||
packet >> guid;
|
||||
if(guid){
|
||||
name = _worldSession->plrNameCache.GetName(guid);
|
||||
@ -227,3 +227,4 @@ void Channel::HandleListRequest(WorldPacket& recvPacket)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -95,6 +95,7 @@ void WorldSession::_HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket)
|
||||
recvPacket >> proto->GemProperties;
|
||||
recvPacket >> proto->ExtendedCost;
|
||||
recvPacket >> proto->RequiredDisenchantSkill;
|
||||
recvPacket >> proto->ArmorDamageModifier;
|
||||
|
||||
logdetail("Got Item Info: Id=%u Name='%s' ReqLevel=%u Armor=%u Desc='%s'",
|
||||
proto->Id, proto->Name[0].c_str(), proto->RequiredLevel, proto->Armor, proto->Description.c_str());
|
||||
|
||||
@ -400,6 +400,7 @@ struct ItemProto
|
||||
uint32 GemProperties;
|
||||
uint32 ExtendedCost;
|
||||
uint32 RequiredDisenchantSkill;
|
||||
float ArmorDamageModifier;
|
||||
};
|
||||
|
||||
class Item : public Object
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
|
||||
#include "UpdateFields.h"
|
||||
#include "ObjectDefines.h"
|
||||
#include "common.h"
|
||||
|
||||
enum TYPE
|
||||
{
|
||||
|
||||
@ -951,7 +951,42 @@ const char* worldOpcodeNames[] =
|
||||
"SMSG_UNKNOWN_918", // 918
|
||||
"SMSG_UNKNOWN_919", // 919
|
||||
"SMSG_UNKNOWN_920", // 920
|
||||
//there would be declared new opcode, id 921
|
||||
"UNKNOWN921", // 921
|
||||
"UNKNOWN922", // 922
|
||||
"UNKNOWN923", // 923
|
||||
"UNKNOWN924", // 924
|
||||
"SMSG_SET_COMBO_POINTS", // 925
|
||||
"UNKNOWN926", // 926
|
||||
"UNKNOWN927", // 927
|
||||
"UNKNOWN928", // 928
|
||||
"UNKNOWN929", // 929
|
||||
"UNKNOWN930", // 930
|
||||
"SMSG_SET_AURA_MULTIPLY", // 931
|
||||
"SMSG_SET_AURA_SINGLE", // 932
|
||||
"UNKNOWN933", // 933
|
||||
"SMSG_CAST_SUCCESS", // 934
|
||||
"SMSG_UNKNOWN_935", // 935
|
||||
"UNKNOWN936", // 936
|
||||
"UNKNOWN937", // 937
|
||||
"UNKNOWN938", // 938
|
||||
"UNKNOWN939", // 939
|
||||
"UNKNOWN940", // 940
|
||||
"SMSG_UNKNOWN_941", // 941
|
||||
"SMSG_UNKNOWN_942", // 942
|
||||
"UNKNOWN943", // 943
|
||||
"UNKNOWN944", // 944
|
||||
"UNKNOWN945", // 945
|
||||
"UNKNOWN946", // 946
|
||||
"UNKNOWN947", // 947
|
||||
"UNKNOWN948", // 948
|
||||
"UNKNOWN949", // 949
|
||||
"UNKNOWN950", // 950
|
||||
"UNKNOWN951", // 951
|
||||
"CMSG_UNKNOWN_952", // 952
|
||||
"UNKNOWN953", // 953
|
||||
"SMSG_UNKNOWN_954", // 954
|
||||
"SMSG_UNKNOWN_955", // 955
|
||||
//there would be declared new opcode, id 956
|
||||
//do not forget to change MAX_OPCODE_ID, if you add a line here!
|
||||
};
|
||||
|
||||
|
||||
@ -967,10 +967,61 @@ enum OpCodes
|
||||
SMSG_UNKNOWN_918 = 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_920 = 920, // notify message: This system is currently disabled.
|
||||
// 921
|
||||
// 922
|
||||
// 923
|
||||
// 924
|
||||
SMSG_SET_COMBO_POINTS = 925, // set combo points
|
||||
// 926
|
||||
// 927
|
||||
// 928
|
||||
// 929
|
||||
// 930
|
||||
SMSG_SET_AURA_MULTIPLY = 931,
|
||||
/*
|
||||
packed_guid
|
||||
block (can repeat):
|
||||
uint8 index may be it's aura slot? (increments)
|
||||
uint32 spellid
|
||||
uint32 duration1 (full?)
|
||||
uint32 duration2 (remaining?)
|
||||
*/
|
||||
SMSG_SET_AURA_SINGLE = 932,
|
||||
/*
|
||||
packed_guid
|
||||
uint8 index may be it's aura slot? (increments)
|
||||
uint32 spellid
|
||||
uint32 duration1 (full?)
|
||||
uint32 duration2 (remaining?)
|
||||
*/
|
||||
// 933
|
||||
SMSG_CAST_SUCCESS = 934,
|
||||
SMSG_UNKNOWN_935 = 935, // teleport/movement opcode
|
||||
// 936
|
||||
// 937
|
||||
// 938
|
||||
// 939
|
||||
// 940
|
||||
SMSG_UNKNOWN_941 = 941, // teleport/movement opcode
|
||||
SMSG_UNKNOWN_942 = 942, // Everyone is Ready! (message)
|
||||
// 943
|
||||
// 944
|
||||
// 945
|
||||
// 946
|
||||
// 947
|
||||
// 948
|
||||
// 949
|
||||
// 950
|
||||
// 951
|
||||
CMSG_UNKNOWN_952 = 952, // response to 942 opcode
|
||||
CMSG_REPORT_SPAM = 953, // Report Spam chat button
|
||||
SMSG_REPORT_SPAM_RESPONSE = 954, // Complaint Registered. (message)
|
||||
SMSG_ACTIVATE_SPAM_REPORTING = 955, // unk uint8
|
||||
|
||||
};
|
||||
|
||||
//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 920
|
||||
#define MAX_OPCODE_ID 955
|
||||
|
||||
/// Results of friend related commands
|
||||
enum FriendsResult
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -16,346 +16,434 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "Common.h"
|
||||
|
||||
#ifndef _UPDATEFIELDS_AUTO_H
|
||||
#define _UPDATEFIELDS_AUTO_H
|
||||
|
||||
// Auto generated for version 2.1.3, build 6898
|
||||
|
||||
enum EObjectFields
|
||||
{
|
||||
OBJECT_FIELD_GUID = 0x00, // Size:2
|
||||
OBJECT_FIELD_TYPE = 0x02, // Size:1
|
||||
OBJECT_FIELD_ENTRY = 0x03, // Size:1
|
||||
OBJECT_FIELD_SCALE_X = 0x04, // Size:1
|
||||
OBJECT_FIELD_PADDING = 0x05, // Size:1
|
||||
OBJECT_END = 0x06,
|
||||
OBJECT_FIELD_GUID = 0x0000, // 2 4 1
|
||||
OBJECT_FIELD_TYPE = 0x0002, // 1 1 1
|
||||
OBJECT_FIELD_ENTRY = 0x0003, // 1 1 1
|
||||
OBJECT_FIELD_SCALE_X = 0x0004, // 1 3 1
|
||||
OBJECT_FIELD_PADDING = 0x0005, // 1 1 0
|
||||
OBJECT_END = 0x0006,
|
||||
};
|
||||
|
||||
enum EItemFields
|
||||
{
|
||||
ITEM_FIELD_OWNER = OBJECT_END + 0x00, // Size:2
|
||||
ITEM_FIELD_CONTAINED = OBJECT_END + 0x02, // Size:2
|
||||
ITEM_FIELD_CREATOR = OBJECT_END + 0x04, // Size:2
|
||||
ITEM_FIELD_GIFTCREATOR = OBJECT_END + 0x06, // Size:2
|
||||
ITEM_FIELD_STACK_COUNT = OBJECT_END + 0x08, // Size:1
|
||||
ITEM_FIELD_DURATION = OBJECT_END + 0x09, // Size:1
|
||||
ITEM_FIELD_SPELL_CHARGES = OBJECT_END + 0x0A, // Size:5
|
||||
ITEM_FIELD_SPELL_CHARGES_01 = OBJECT_END + 0x0B,
|
||||
ITEM_FIELD_SPELL_CHARGES_02 = OBJECT_END + 0x0C,
|
||||
ITEM_FIELD_SPELL_CHARGES_03 = OBJECT_END + 0x0D,
|
||||
ITEM_FIELD_SPELL_CHARGES_04 = OBJECT_END + 0x0E,
|
||||
ITEM_FIELD_FLAGS = OBJECT_END + 0x0F, // Size:1
|
||||
ITEM_FIELD_ENCHANTMENT = OBJECT_END + 0x10, // count=33 This is 21 past
|
||||
ITEM_FIELD_SOCKETS_ENCHANTMENT = OBJECT_END + 0x25, // + (3 sockets + 1 bonus) * 3 uint32 = 12
|
||||
ITEM_FIELD_ENCHANTMENT_LAST = OBJECT_END + 0x30,
|
||||
ITEM_FIELD_PROPERTY_SEED = OBJECT_END + 0x31, // Size:1
|
||||
ITEM_FIELD_RANDOM_PROPERTIES_ID = OBJECT_END + 0x32, // Size:1
|
||||
ITEM_FIELD_ITEM_TEXT_ID = OBJECT_END + 0x33, // Size:1
|
||||
ITEM_FIELD_DURABILITY = OBJECT_END + 0x34, // Size:1
|
||||
ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x35, // Size:1
|
||||
ITEM_END = OBJECT_END + 0x36,
|
||||
ITEM_FIELD_OWNER = 0x0006, // 2 4 1
|
||||
ITEM_FIELD_CONTAINED = 0x0008, // 2 4 1
|
||||
ITEM_FIELD_CREATOR = 0x000A, // 2 4 1
|
||||
ITEM_FIELD_GIFTCREATOR = 0x000C, // 2 4 1
|
||||
ITEM_FIELD_STACK_COUNT = 0x000E, // 1 1 20
|
||||
ITEM_FIELD_DURATION = 0x000F, // 1 1 20
|
||||
ITEM_FIELD_SPELL_CHARGES = 0x0010, // 5 1 20
|
||||
ITEM_FIELD_FLAGS = 0x0015, // 1 1 1
|
||||
/*
|
||||
There is two types of enchantments: property based and suffix based.
|
||||
Item can have only one of the two.
|
||||
Suffix based linked to item.randomproperty_2 field and property based
|
||||
to item.randomproperty_1 field (item prototype).
|
||||
Suffix based enchantments sent to the client as negative value, in
|
||||
addition they require ITEM_FIELD_SUFFIX_FACTOR field to be send in
|
||||
order to calculate the bonus value. Property based enchantments are send
|
||||
as positive values and do not require any aditional values since the bonuses
|
||||
are already stored inside spellitemenchantment. Suffix based enchantments uses
|
||||
6-8 fields in EnchantmentSlot while property based uses 8-10 in EnchantmentSlot.
|
||||
*/
|
||||
ITEM_FIELD_ENCHANTMENT = 0x0016, // 33 1 1
|
||||
ITEM_FIELD_PROPERTY_SEED = 0x0037, // 1 1 1
|
||||
ITEM_FIELD_SUFFIX_FACTOR = ITEM_FIELD_PROPERTY_SEED, //custom
|
||||
ITEM_FIELD_RANDOM_PROPERTIES_ID = 0x0038, // 1 1 1
|
||||
ITEM_FIELD_ITEM_TEXT_ID = 0x0039, // 1 1 4
|
||||
ITEM_FIELD_DURABILITY = 0x003A, // 1 1 20
|
||||
ITEM_FIELD_MAXDURABILITY = 0x003B, // 1 1 20
|
||||
ITEM_END = 0x003C,
|
||||
};
|
||||
|
||||
enum EContainerFields
|
||||
{
|
||||
CONTAINER_FIELD_NUM_SLOTS = ITEM_END + 0x00, // Size:1
|
||||
CONTAINER_ALIGN_PAD = ITEM_END + 0x01, // Size:1
|
||||
CONTAINER_FIELD_SLOT_1 = ITEM_END + 0x02, // count=72
|
||||
CONTAINER_FIELD_SLOT_LAST = ITEM_END + 0x49,
|
||||
CONTAINER_END = ITEM_END + 0x4A,
|
||||
CONTAINER_FIELD_NUM_SLOTS = 0x003C, // 1 1 1
|
||||
CONTAINER_ALIGN_PAD = 0x003D, // 1 5 0
|
||||
CONTAINER_FIELD_SLOT_1 = 0x003E, // 72 4 1
|
||||
CONTAINER_END = 0x0086,
|
||||
};
|
||||
|
||||
enum EUnitFields
|
||||
{
|
||||
UNIT_FIELD_CHARM = 0x00 + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_SUMMON = 0x02 + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_CHARMEDBY = 0x04 + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_SUMMONEDBY = 0x06 + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_CREATEDBY = 0x08 + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_TARGET = 0x0A + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_PERSUADED = 0x0C + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_CHANNEL_OBJECT = 0x0E + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_HEALTH = 0x10 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POWER1 = 0x11 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POWER2 = 0x12 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POWER3 = 0x13 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POWER4 = 0x14 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POWER5 = 0x15 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXHEALTH = 0x16 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXPOWER1 = 0x17 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXPOWER2 = 0x18 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXPOWER3 = 0x19 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXPOWER4 = 0x1A + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXPOWER5 = 0x1B + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_LEVEL = 0x1C + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_FACTIONTEMPLATE = 0x1D + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_BYTES_0 = 0x1E + OBJECT_END, // Size:1
|
||||
UNIT_VIRTUAL_ITEM_SLOT_DISPLAY = 0x1F + OBJECT_END, // Size:3
|
||||
UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_01 = 0x20 + OBJECT_END,
|
||||
UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_02 = 0x21 + OBJECT_END,
|
||||
UNIT_VIRTUAL_ITEM_INFO = 0x22 + OBJECT_END, // Size:6
|
||||
UNIT_VIRTUAL_ITEM_INFO_01 = 0x23 + OBJECT_END,
|
||||
UNIT_VIRTUAL_ITEM_INFO_02 = 0x24 + OBJECT_END,
|
||||
UNIT_VIRTUAL_ITEM_INFO_03 = 0x25 + OBJECT_END,
|
||||
UNIT_VIRTUAL_ITEM_INFO_04 = 0x26 + OBJECT_END,
|
||||
UNIT_VIRTUAL_ITEM_INFO_05 = 0x27 + OBJECT_END,
|
||||
UNIT_FIELD_FLAGS = 0x28 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_FLAGS_2 = 0x29 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_AURA = 0x2A + OBJECT_END, // Size:56
|
||||
UNIT_FIELD_AURA_LAST = 0x63 + OBJECT_END,
|
||||
UNIT_FIELD_AURAFLAGS = 0x62 + OBJECT_END, // Size:7
|
||||
UNIT_FIELD_AURAFLAGS_01 = 0x63 + OBJECT_END,
|
||||
UNIT_FIELD_AURAFLAGS_02 = 0x64 + OBJECT_END,
|
||||
UNIT_FIELD_AURAFLAGS_03 = 0x65 + OBJECT_END,
|
||||
UNIT_FIELD_AURAFLAGS_04 = 0x66 + OBJECT_END,
|
||||
UNIT_FIELD_AURAFLAGS_05 = 0x67 + OBJECT_END,
|
||||
UNIT_FIELD_AURAFLAGS_06 = 0x68 + OBJECT_END,
|
||||
UNIT_FIELD_AURALEVELS = 0x69 + OBJECT_END, // Size:14
|
||||
UNIT_FIELD_AURALEVELS_LAST = 0x76 + OBJECT_END,
|
||||
UNIT_FIELD_AURAAPPLICATIONS = 0x77 + OBJECT_END, // Size:14
|
||||
UNIT_FIELD_AURAAPPLICATIONS_LAST = 0x84 + OBJECT_END,
|
||||
UNIT_FIELD_AURASTATE = 0x85 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_BASEATTACKTIME = 0x86 + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_BASEATTACKTIME_01 = 0x87 + OBJECT_END,
|
||||
UNIT_FIELD_OFFHANDATTACKTIME = 0x87 + OBJECT_END, // Size:2
|
||||
UNIT_FIELD_RANGEDATTACKTIME = 0x88 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_BOUNDINGRADIUS = 0x89 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_COMBATREACH = 0x8A + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_DISPLAYID = 0x8B + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_NATIVEDISPLAYID = 0x8C + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MOUNTDISPLAYID = 0x8D + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MINDAMAGE = 0x8E + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXDAMAGE = 0x8F + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MINOFFHANDDAMAGE = 0x90 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXOFFHANDDAMAGE = 0x91 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_BYTES_1 = 0x92 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_PETNUMBER = 0x93 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_PET_NAME_TIMESTAMP = 0x94 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_PETEXPERIENCE = 0x95 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_PETNEXTLEVELEXP = 0x96 + OBJECT_END, // Size:1
|
||||
UNIT_DYNAMIC_FLAGS = 0x97 + OBJECT_END, // Size:1
|
||||
UNIT_CHANNEL_SPELL = 0x98 + OBJECT_END, // Size:1
|
||||
UNIT_MOD_CAST_SPEED = 0x99 + OBJECT_END, // Size:1
|
||||
UNIT_CREATED_BY_SPELL = 0x9A + OBJECT_END, // Size:1
|
||||
UNIT_NPC_FLAGS = 0x9B + OBJECT_END, // Size:1
|
||||
UNIT_NPC_EMOTESTATE = 0x9C + OBJECT_END, // Size:1
|
||||
UNIT_TRAINING_POINTS = 0x9D + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_STAT0 = 0x9E + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_STAT1 = 0x9F + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_STAT2 = 0xA0 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_STAT3 = 0xA1 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_STAT4 = 0xA2 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POSSTAT0 = 0xA3 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POSSTAT1 = 0xA4 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POSSTAT2 = 0xA5 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POSSTAT3 = 0xA6 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POSSTAT4 = 0xA7 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_NEGSTAT0 = 0xA8 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_NEGSTAT1 = 0xA9 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_NEGSTAT2 = 0xAA + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_NEGSTAT3 = 0xAB + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_NEGSTAT4 = 0xAC + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_RESISTANCES = 0xAD + OBJECT_END, // Size:7
|
||||
UNIT_FIELD_RESISTANCES_01 = 0xAE + OBJECT_END,
|
||||
UNIT_FIELD_RESISTANCES_02 = 0xAF + OBJECT_END,
|
||||
UNIT_FIELD_RESISTANCES_03 = 0xB0 + OBJECT_END,
|
||||
UNIT_FIELD_RESISTANCES_04 = 0xB1 + OBJECT_END,
|
||||
UNIT_FIELD_RESISTANCES_05 = 0xB2 + OBJECT_END,
|
||||
UNIT_FIELD_RESISTANCES_06 = 0xB3 + OBJECT_END,
|
||||
UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE = 0xB4 + OBJECT_END, // Size:7
|
||||
UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE = 0xBB + OBJECT_END, // Size:7
|
||||
UNIT_FIELD_BASE_MANA = 0xC2 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_BASE_HEALTH = 0xC3 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_BYTES_2 = 0xC4 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_ATTACK_POWER = 0xC5 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_ATTACK_POWER_MODS = 0xC6 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_ATTACK_POWER_MULTIPLIER = 0xC7 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_RANGED_ATTACK_POWER = 0xC8 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_RANGED_ATTACK_POWER_MODS = 0xC9 + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = 0xCA + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MINRANGEDDAMAGE = 0xCB + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_MAXRANGEDDAMAGE = 0xCC + OBJECT_END, // Size:1
|
||||
UNIT_FIELD_POWER_COST_MODIFIER = 0xCD + OBJECT_END, // Size:7
|
||||
UNIT_FIELD_POWER_COST_MODIFIER_01 = 0xCE + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MODIFIER_02 = 0xCF + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MODIFIER_03 = 0xD0 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MODIFIER_04 = 0xD1 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MODIFIER_05 = 0xD2 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MODIFIER_06 = 0xD3 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MULTIPLIER = 0xD4 + OBJECT_END, // Size:7
|
||||
UNIT_FIELD_POWER_COST_MULTIPLIER_01 = 0xD5 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MULTIPLIER_02 = 0xD6 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MULTIPLIER_03 = 0xD7 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MULTIPLIER_04 = 0xD8 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MULTIPLIER_05 = 0xD9 + OBJECT_END,
|
||||
UNIT_FIELD_POWER_COST_MULTIPLIER_06 = 0xDA + OBJECT_END,
|
||||
UNIT_FIELD_PADDING = 0xDB + OBJECT_END,
|
||||
UNIT_END = 0xDC + OBJECT_END,
|
||||
UNIT_FIELD_CHARM = 0x0006, // 2 4 1
|
||||
UNIT_FIELD_SUMMON = 0x0008, // 2 4 1
|
||||
UNIT_FIELD_CHARMEDBY = 0x000A, // 2 4 1
|
||||
UNIT_FIELD_SUMMONEDBY = 0x000C, // 2 4 1
|
||||
UNIT_FIELD_CREATEDBY = 0x000E, // 2 4 1
|
||||
UNIT_FIELD_TARGET = 0x0010, // 2 4 1
|
||||
UNIT_FIELD_PERSUADED = 0x0012, // 2 4 1
|
||||
UNIT_FIELD_CHANNEL_OBJECT = 0x0014, // 2 4 1
|
||||
UNIT_FIELD_HEALTH = 0x0016, // 1 1 256
|
||||
UNIT_FIELD_POWER1 = 0x0017, // 1 1 1
|
||||
UNIT_FIELD_POWER2 = 0x0018, // 1 1 1
|
||||
UNIT_FIELD_POWER3 = 0x0019, // 1 1 1
|
||||
UNIT_FIELD_POWER4 = 0x001A, // 1 1 1
|
||||
UNIT_FIELD_POWER5 = 0x001B, // 1 1 1
|
||||
UNIT_FIELD_MAXHEALTH = 0x001C, // 1 1 256
|
||||
UNIT_FIELD_MAXPOWER1 = 0x001D, // 1 1 1
|
||||
UNIT_FIELD_MAXPOWER2 = 0x001E, // 1 1 1
|
||||
UNIT_FIELD_MAXPOWER3 = 0x001F, // 1 1 1
|
||||
UNIT_FIELD_MAXPOWER4 = 0x0020, // 1 1 1
|
||||
UNIT_FIELD_MAXPOWER5 = 0x0021, // 1 1 1
|
||||
UNIT_FIELD_LEVEL = 0x0022, // 1 1 1
|
||||
UNIT_FIELD_FACTIONTEMPLATE = 0x0023, // 1 1 1
|
||||
UNIT_FIELD_BYTES_0 = 0x0024, // 1 5 1
|
||||
UNIT_VIRTUAL_ITEM_SLOT_DISPLAY = 0x0025, // 3 1 1
|
||||
UNIT_VIRTUAL_ITEM_INFO = 0x0028, // 6 5 1
|
||||
UNIT_FIELD_FLAGS = 0x002E, // 1 1 1
|
||||
UNIT_FIELD_FLAGS_2 = 0x002F, // 1 1 1
|
||||
UNIT_FIELD_AURA = 0x0030, // 56 1 1
|
||||
UNIT_FIELD_AURAFLAGS = 0x0068, // 7 5 1
|
||||
UNIT_FIELD_AURALEVELS = 0x006F, // 14 5 1
|
||||
UNIT_FIELD_AURAAPPLICATIONS = 0x007D, // 14 5 1
|
||||
UNIT_FIELD_AURASTATE = 0x008B, // 1 1 1
|
||||
UNIT_FIELD_BASEATTACKTIME = 0x008C, // 2 1 1
|
||||
UNIT_FIELD_OFFHANDATTACKTIME = UNIT_FIELD_BASEATTACKTIME + 1, // custom
|
||||
UNIT_FIELD_RANGEDATTACKTIME = 0x008E, // 1 1 2
|
||||
UNIT_FIELD_BOUNDINGRADIUS = 0x008F, // 1 3 1
|
||||
UNIT_FIELD_COMBATREACH = 0x0090, // 1 3 1
|
||||
UNIT_FIELD_DISPLAYID = 0x0091, // 1 1 1
|
||||
UNIT_FIELD_NATIVEDISPLAYID = 0x0092, // 1 1 1
|
||||
UNIT_FIELD_MOUNTDISPLAYID = 0x0093, // 1 1 1
|
||||
UNIT_FIELD_MINDAMAGE = 0x0094, // 1 3 38
|
||||
UNIT_FIELD_MAXDAMAGE = 0x0095, // 1 3 38
|
||||
UNIT_FIELD_MINOFFHANDDAMAGE = 0x0096, // 1 3 38
|
||||
UNIT_FIELD_MAXOFFHANDDAMAGE = 0x0097, // 1 3 38
|
||||
UNIT_FIELD_BYTES_1 = 0x0098, // 1 5 1
|
||||
UNIT_FIELD_PETNUMBER = 0x0099, // 1 1 1
|
||||
UNIT_FIELD_PET_NAME_TIMESTAMP = 0x009A, // 1 1 1
|
||||
UNIT_FIELD_PETEXPERIENCE = 0x009B, // 1 1 4
|
||||
UNIT_FIELD_PETNEXTLEVELEXP = 0x009C, // 1 1 4
|
||||
UNIT_DYNAMIC_FLAGS = 0x009D, // 1 1 256
|
||||
UNIT_CHANNEL_SPELL = 0x009E, // 1 1 1
|
||||
UNIT_MOD_CAST_SPEED = 0x009F, // 1 3 1
|
||||
UNIT_CREATED_BY_SPELL = 0x00A0, // 1 1 1
|
||||
UNIT_NPC_FLAGS = 0x00A1, // 1 1 1
|
||||
UNIT_NPC_EMOTESTATE = 0x00A2, // 1 1 1
|
||||
UNIT_TRAINING_POINTS = 0x00A3, // 1 2 4
|
||||
UNIT_FIELD_STAT0 = 0x00A4, // 1 1 6
|
||||
UNIT_FIELD_STAT1 = 0x00A5, // 1 1 6
|
||||
UNIT_FIELD_STAT2 = 0x00A6, // 1 1 6
|
||||
UNIT_FIELD_STAT3 = 0x00A7, // 1 1 6
|
||||
UNIT_FIELD_STAT4 = 0x00A8, // 1 1 6
|
||||
UNIT_FIELD_POSSTAT0 = 0x00A9, // 1 1 6
|
||||
UNIT_FIELD_POSSTAT1 = 0x00AA, // 1 1 6
|
||||
UNIT_FIELD_POSSTAT2 = 0x00AB, // 1 1 6
|
||||
UNIT_FIELD_POSSTAT3 = 0x00AC, // 1 1 6
|
||||
UNIT_FIELD_POSSTAT4 = 0x00AD, // 1 1 6
|
||||
UNIT_FIELD_NEGSTAT0 = 0x00AE, // 1 1 6
|
||||
UNIT_FIELD_NEGSTAT1 = 0x00AF, // 1 1 6
|
||||
UNIT_FIELD_NEGSTAT2 = 0x00B0, // 1 1 6
|
||||
UNIT_FIELD_NEGSTAT3 = 0x00B1, // 1 1 6
|
||||
UNIT_FIELD_NEGSTAT4 = 0x00B2, // 1 1 6
|
||||
UNIT_FIELD_RESISTANCES = 0x00B3, // 7 1 38
|
||||
UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE = 0x00BA, // 7 1 6
|
||||
UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE = 0x00C1, // 7 1 6
|
||||
UNIT_FIELD_BASE_MANA = 0x00C8, // 1 1 6
|
||||
UNIT_FIELD_BASE_HEALTH = 0x00C9, // 1 1 6
|
||||
UNIT_FIELD_BYTES_2 = 0x00CA, // 1 5 1
|
||||
UNIT_FIELD_ATTACK_POWER = 0x00CB, // 1 1 6
|
||||
UNIT_FIELD_ATTACK_POWER_MODS = 0x00CC, // 1 2 6
|
||||
UNIT_FIELD_ATTACK_POWER_MULTIPLIER = 0x00CD, // 1 3 6
|
||||
UNIT_FIELD_RANGED_ATTACK_POWER = 0x00CE, // 1 1 6
|
||||
UNIT_FIELD_RANGED_ATTACK_POWER_MODS = 0x00CF, // 1 2 6
|
||||
UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = 0x00D0, // 1 3 6
|
||||
UNIT_FIELD_MINRANGEDDAMAGE = 0x00D1, // 1 3 6
|
||||
UNIT_FIELD_MAXRANGEDDAMAGE = 0x00D2, // 1 3 6
|
||||
UNIT_FIELD_POWER_COST_MODIFIER = 0x00D3, // 7 1 6
|
||||
UNIT_FIELD_POWER_COST_MULTIPLIER = 0x00DA, // 7 3 6
|
||||
UNIT_FIELD_PADDING = 0x00E1, // 1 1 0
|
||||
UNIT_END = 0x00E2,
|
||||
|
||||
PLAYER_DUEL_ARBITER = 0x00 + UNIT_END, // Size:2
|
||||
PLAYER_FLAGS = 0x02 + UNIT_END, // Size:1
|
||||
PLAYER_GUILDID = 0x03 + UNIT_END, // Size:1
|
||||
PLAYER_GUILDRANK = 0x04 + UNIT_END, // Size:1
|
||||
PLAYER_BYTES = 0x05 + UNIT_END, // Size:1
|
||||
PLAYER_BYTES_2 = 0x06 + UNIT_END, // Size:1
|
||||
PLAYER_BYTES_3 = 0x07 + UNIT_END, // Size:1
|
||||
PLAYER_DUEL_TEAM = 0x08 + UNIT_END, // Size:1
|
||||
PLAYER_GUILD_TIMESTAMP = 0x09 + UNIT_END, // Size:1
|
||||
PLAYER_QUEST_LOG_1_1 = 0x0A + UNIT_END, // count = 25
|
||||
PLAYER_QUEST_LOG_1_2 = 0x0B + UNIT_END,
|
||||
PLAYER_QUEST_LOG_1_3 = 0x0C + UNIT_END,
|
||||
PLAYER_QUEST_LOG_LAST_1 = 0x52 + UNIT_END,
|
||||
PLAYER_QUEST_LOG_LAST_2 = 0x53 + UNIT_END,
|
||||
PLAYER_QUEST_LOG_LAST_3 = 0x54 + UNIT_END,
|
||||
PLAYER_VISIBLE_ITEM_1_CREATOR = 0x55 + UNIT_END, // Size:2, count = 19
|
||||
PLAYER_VISIBLE_ITEM_1_0 = 0x57 + UNIT_END, // Size:12
|
||||
PLAYER_VISIBLE_ITEM_1_PROPERTIES = 0x63 + UNIT_END, // Size:1
|
||||
PLAYER_VISIBLE_ITEM_1_PAD = 0x64 + UNIT_END, // Size:1
|
||||
PLAYER_VISIBLE_ITEM_LAST_CREATOR = 0x175 + UNIT_END,
|
||||
PLAYER_VISIBLE_ITEM_LAST_0 = 0x177 + UNIT_END,
|
||||
PLAYER_VISIBLE_ITEM_LAST_PROPERTIES = 0x183 + UNIT_END,
|
||||
PLAYER_VISIBLE_ITEM_LAST_PAD = 0x184 + UNIT_END,
|
||||
PLAYER_CHOSEN_TITLE = 0x185 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_INV_SLOT_HEAD = 0x186 + UNIT_END, // Size:46
|
||||
PLAYER_FIELD_PACK_SLOT_1 = 0x1B4 + UNIT_END, // Size:32
|
||||
PLAYER_FIELD_PACK_SLOT_LAST = 0x1D3 + UNIT_END,
|
||||
PLAYER_FIELD_BANK_SLOT_1 = 0x1D4 + UNIT_END, // Size:56
|
||||
PLAYER_FIELD_BANK_SLOT_LAST = 0x20B + UNIT_END,
|
||||
PLAYER_FIELD_BANKBAG_SLOT_1 = 0x20C + UNIT_END, // Size:14
|
||||
PLAYER_FIELD_BANKBAG_SLOT_LAST = 0x219 + UNIT_END,
|
||||
PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = 0x21A + UNIT_END, // Size:24
|
||||
PLAYER_FIELD_VENDORBUYBACK_SLOT_LAST = 0x231 + UNIT_END,
|
||||
PLAYER_FIELD_KEYRING_SLOT_1 = 0x232 + UNIT_END, // Size:64
|
||||
PLAYER_FIELD_KEYRING_SLOT_LAST = 0x271 + UNIT_END,
|
||||
PLAYER_FARSIGHT = 0x272 + UNIT_END, // Size:2
|
||||
PLAYER_FIELD_COMBO_TARGET = 0x274 + UNIT_END, // Size:2
|
||||
PLAYER_FIELD_KNOWN_TITLES = 0x276 + UNIT_END, // Size:2
|
||||
PLAYER_XP = 0x278 + UNIT_END, // Size:1
|
||||
PLAYER_NEXT_LEVEL_XP = 0x279 + UNIT_END, // Size:1
|
||||
PLAYER_SKILL_INFO_1_1 = 0x27A + UNIT_END, // Size:384
|
||||
PLAYER_CHARACTER_POINTS1 = 0x3FA + UNIT_END, // Size:1
|
||||
PLAYER_CHARACTER_POINTS2 = 0x3FB + UNIT_END, // Size:1
|
||||
PLAYER_TRACK_CREATURES = 0x3FC + UNIT_END, // Size:1
|
||||
PLAYER_TRACK_RESOURCES = 0x3FD + UNIT_END, // Size:1
|
||||
PLAYER_BLOCK_PERCENTAGE = 0x3FE + UNIT_END, // Size:1
|
||||
PLAYER_DODGE_PERCENTAGE = 0x3FF + UNIT_END, // Size:1
|
||||
PLAYER_PARRY_PERCENTAGE = 0x400 + UNIT_END, // Size:1
|
||||
PLAYER_CRIT_PERCENTAGE = 0x401 + UNIT_END, // Size:1
|
||||
PLAYER_RANGED_CRIT_PERCENTAGE = 0x402 + UNIT_END, // Size:1
|
||||
PLAYER_OFFHAND_CRIT_PERCENTAGE = 0x403 + UNIT_END, // Size:1
|
||||
PLAYER_SPELL_CRIT_PERCENTAGE1 = 0x404 + UNIT_END, // Size:7
|
||||
PLAYER_HOLY_SPELL_CRIT_PERCENTAGE = 0x405 + UNIT_END, // custom
|
||||
PLAYER_FIRE_SPELL_CRIT_PERCENTAGE = 0x406 + UNIT_END, // custom
|
||||
PLAYER_NATURE_SPELL_CRIT_PERCENTAGE = 0x407 + UNIT_END, // custom
|
||||
PLAYER_FROST_SPELL_CRIT_PERCENTAGE = 0x408 + UNIT_END, // custom
|
||||
PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE = 0x409 + UNIT_END, // custom
|
||||
PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE = 0x40A + UNIT_END, // custom
|
||||
PLAYER_EXPLORED_ZONES_1 = 0x40B + UNIT_END, // Size:64
|
||||
PLAYER_REST_STATE_EXPERIENCE = 0x44B + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_COINAGE = 0x44C + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_MOD_DAMAGE_DONE_POS = 0x44D + UNIT_END, // Size:7
|
||||
PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = 0x454 + UNIT_END, // Size:7
|
||||
PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = 0x45B + UNIT_END, // Size:7
|
||||
PLAYER_FIELD_MOD_HEALING_DONE_POS = 0x462 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_MOD_TARGET_RESISTANCE = 0x463 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_BYTES = 0x464 + UNIT_END, // Size:1
|
||||
PLAYER_AMMO_ID = 0x465 + UNIT_END, // Size:1
|
||||
PLAYER_SELF_RES_SPELL = 0x466 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_PVP_MEDALS = 0x467 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_BUYBACK_PRICE_1 = 0x468 + UNIT_END, // count=12
|
||||
PLAYER_FIELD_BUYBACK_PRICE_LAST = 0x473 + UNIT_END,
|
||||
PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = 0x474 + UNIT_END, // count=12
|
||||
PLAYER_FIELD_BUYBACK_TIMESTAMP_LAST = 0x47A + UNIT_END,
|
||||
PLAYER_FIELD_KILLS = 0x480 + UNIT_END, // Size:1 // ((uint16)kills_today<<16) | (uint16)kills_yesterday)
|
||||
PLAYER_FIELD_HONOR_TODAY = 0x481 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_HONOR_YESTERDAY = 0x482 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_KILLS_LIFETIME = 0x483 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_BYTES2 = 0x484 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_WATCHED_FACTION_INDEX = 0x485 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_COMBAT_RATING_1 = 0x486 + UNIT_END, // Size:23
|
||||
PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING = 0x486 + UNIT_END, // custom
|
||||
PLAYER_FIELD_DEFENCE_RATING = 0x487 + UNIT_END, // custom
|
||||
PLAYER_FIELD_DODGE_RATING = 0x488 + UNIT_END, // custom
|
||||
PLAYER_FIELD_PARRY_RATING = 0x489 + UNIT_END, // custom
|
||||
PLAYER_FIELD_BLOCK_RATING = 0x48A + UNIT_END, // custom
|
||||
PLAYER_FIELD_MELEE_HIT_RATING = 0x48B + UNIT_END, // custom
|
||||
PLAYER_FIELD_RANGED_HIT_RATING = 0x48C + UNIT_END, // custom
|
||||
PLAYER_FIELD_SPELL_HIT_RATING = 0x48D + UNIT_END, // custom
|
||||
PLAYER_FIELD_MELEE_CRIT_RATING = 0x48E + UNIT_END, // custom
|
||||
PLAYER_FIELD_RANGED_CRIT_RATING = 0x48F + UNIT_END, // custom
|
||||
PLAYER_FIELD_SPELL_CRIT_RATING = 0x490 + UNIT_END, // custom
|
||||
PLAYER_FIELD_HIT_RATING = 0x491 + UNIT_END, // unsure, was PLAYER_FIELD_UNK1_RATING
|
||||
PLAYER_FIELD_CRIT_RATING = 0x492 + UNIT_END, // unsure, was PLAYER_FIELD_UNK2_RATING
|
||||
PLAYER_FIELD_UNK3_RATING = 0x493 + UNIT_END, // custom
|
||||
PLAYER_FIELD_UNK4_RATING = 0x494 + UNIT_END, // custom
|
||||
PLAYER_FIELD_UNK5_RATING = 0x495 + UNIT_END, // custom
|
||||
PLAYER_FIELD_RESILIENCE_RATING = 0x496 + UNIT_END, // custom
|
||||
PLAYER_FIELD_MELEE_HASTE_RATING = 0x497 + UNIT_END, // custom
|
||||
PLAYER_FIELD_RANGED_HASTE_RATING = 0x498 + UNIT_END, // custom
|
||||
PLAYER_FIELD_UNK6_RATING = 0x499 + UNIT_END, // custom
|
||||
PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING = 0x49A + UNIT_END, // custom
|
||||
PLAYER_FIELD_UNK7_RATING = 0x49B + UNIT_END, // custom
|
||||
PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING = 0x49C + UNIT_END, // custom
|
||||
PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = 0x49D + UNIT_END, // Size:9
|
||||
PLAYER_FIELD_HONOR_CURRENCY = 0x4A6 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_ARENA_CURRENCY = 0x4A7 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_MOD_MANA_REGEN = 0x4A8 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT = 0x4A9 + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_MAX_LEVEL = 0x4AA + UNIT_END, // Size:1
|
||||
PLAYER_FIELD_PADDING = 0x4AB + UNIT_END, // Size:1
|
||||
PLAYER_END = 0x4AC + UNIT_END,
|
||||
PLAYER_DUEL_ARBITER = 0x00E2, // 2 4 1
|
||||
PLAYER_FLAGS = 0x00E4, // 1 1 1
|
||||
PLAYER_GUILDID = 0x00E5, // 1 1 1
|
||||
PLAYER_GUILDRANK = 0x00E6, // 1 1 1
|
||||
PLAYER_BYTES = 0x00E7, // 1 5 1
|
||||
PLAYER_BYTES_2 = 0x00E8, // 1 5 1
|
||||
PLAYER_BYTES_3 = 0x00E9, // 1 5 1
|
||||
PLAYER_DUEL_TEAM = 0x00EA, // 1 1 1
|
||||
PLAYER_GUILD_TIMESTAMP = 0x00EB, // 1 1 1
|
||||
PLAYER_QUEST_LOG_1_1 = 0x00EC, // 1 1 64
|
||||
PLAYER_QUEST_LOG_1_2 = 0x00ED, // 2 1 2
|
||||
PLAYER_QUEST_LOG_2_1 = 0x00EF, // 1 1 64
|
||||
PLAYER_QUEST_LOG_2_2 = 0x00F0, // 2 1 2
|
||||
PLAYER_QUEST_LOG_3_1 = 0x00F2, // 1 1 64
|
||||
PLAYER_QUEST_LOG_3_2 = 0x00F3, // 2 1 2
|
||||
PLAYER_QUEST_LOG_4_1 = 0x00F5, // 1 1 64
|
||||
PLAYER_QUEST_LOG_4_2 = 0x00F6, // 2 1 2
|
||||
PLAYER_QUEST_LOG_5_1 = 0x00F8, // 1 1 64
|
||||
PLAYER_QUEST_LOG_5_2 = 0x00F9, // 2 1 2
|
||||
PLAYER_QUEST_LOG_6_1 = 0x00FB, // 1 1 64
|
||||
PLAYER_QUEST_LOG_6_2 = 0x00FC, // 2 1 2
|
||||
PLAYER_QUEST_LOG_7_1 = 0x00FE, // 1 1 64
|
||||
PLAYER_QUEST_LOG_7_2 = 0x00FF, // 2 1 2
|
||||
PLAYER_QUEST_LOG_8_1 = 0x0101, // 1 1 64
|
||||
PLAYER_QUEST_LOG_8_2 = 0x0102, // 2 1 2
|
||||
PLAYER_QUEST_LOG_9_1 = 0x0104, // 1 1 64
|
||||
PLAYER_QUEST_LOG_9_2 = 0x0105, // 2 1 2
|
||||
PLAYER_QUEST_LOG_10_1 = 0x0107, // 1 1 64
|
||||
PLAYER_QUEST_LOG_10_2 = 0x0108, // 2 1 2
|
||||
PLAYER_QUEST_LOG_11_1 = 0x010A, // 1 1 64
|
||||
PLAYER_QUEST_LOG_11_2 = 0x010B, // 2 1 2
|
||||
PLAYER_QUEST_LOG_12_1 = 0x010D, // 1 1 64
|
||||
PLAYER_QUEST_LOG_12_2 = 0x010E, // 2 1 2
|
||||
PLAYER_QUEST_LOG_13_1 = 0x0110, // 1 1 64
|
||||
PLAYER_QUEST_LOG_13_2 = 0x0111, // 2 1 2
|
||||
PLAYER_QUEST_LOG_14_1 = 0x0113, // 1 1 64
|
||||
PLAYER_QUEST_LOG_14_2 = 0x0114, // 2 1 2
|
||||
PLAYER_QUEST_LOG_15_1 = 0x0116, // 1 1 64
|
||||
PLAYER_QUEST_LOG_15_2 = 0x0117, // 2 1 2
|
||||
PLAYER_QUEST_LOG_16_1 = 0x0119, // 1 1 64
|
||||
PLAYER_QUEST_LOG_16_2 = 0x011A, // 2 1 2
|
||||
PLAYER_QUEST_LOG_17_1 = 0x011C, // 1 1 64
|
||||
PLAYER_QUEST_LOG_17_2 = 0x011D, // 2 1 2
|
||||
PLAYER_QUEST_LOG_18_1 = 0x011F, // 1 1 64
|
||||
PLAYER_QUEST_LOG_18_2 = 0x0120, // 2 1 2
|
||||
PLAYER_QUEST_LOG_19_1 = 0x0122, // 1 1 64
|
||||
PLAYER_QUEST_LOG_19_2 = 0x0123, // 2 1 2
|
||||
PLAYER_QUEST_LOG_20_1 = 0x0125, // 1 1 64
|
||||
PLAYER_QUEST_LOG_20_2 = 0x0126, // 2 1 2
|
||||
PLAYER_QUEST_LOG_21_1 = 0x0128, // 1 1 64
|
||||
PLAYER_QUEST_LOG_21_2 = 0x0129, // 2 1 2
|
||||
PLAYER_QUEST_LOG_22_1 = 0x012B, // 1 1 64
|
||||
PLAYER_QUEST_LOG_22_2 = 0x012C, // 2 1 2
|
||||
PLAYER_QUEST_LOG_23_1 = 0x012E, // 1 1 64
|
||||
PLAYER_QUEST_LOG_23_2 = 0x012F, // 2 1 2
|
||||
PLAYER_QUEST_LOG_24_1 = 0x0131, // 1 1 64
|
||||
PLAYER_QUEST_LOG_24_2 = 0x0132, // 2 1 2
|
||||
PLAYER_QUEST_LOG_25_1 = 0x0134, // 1 1 64
|
||||
PLAYER_QUEST_LOG_25_2 = 0x0135, // 2 1 2
|
||||
PLAYER_VISIBLE_ITEM_1_CREATOR = 0x0137, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_1_0 = 0x0139, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_1_PROPERTIES = 0x0145, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_1_PAD = 0x0146, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_2_CREATOR = 0x0147, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_2_0 = 0x0149, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_2_PROPERTIES = 0x0155, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_2_PAD = 0x0156, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_3_CREATOR = 0x0157, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_3_0 = 0x0159, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_3_PROPERTIES = 0x0165, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_3_PAD = 0x0166, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_4_CREATOR = 0x0167, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_4_0 = 0x0169, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_4_PROPERTIES = 0x0175, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_4_PAD = 0x0176, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_5_CREATOR = 0x0177, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_5_0 = 0x0179, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_5_PROPERTIES = 0x0185, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_5_PAD = 0x0186, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_6_CREATOR = 0x0187, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_6_0 = 0x0189, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_6_PROPERTIES = 0x0195, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_6_PAD = 0x0196, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_7_CREATOR = 0x0197, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_7_0 = 0x0199, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_7_PROPERTIES = 0x01A5, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_7_PAD = 0x01A6, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_8_CREATOR = 0x01A7, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_8_0 = 0x01A9, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_8_PROPERTIES = 0x01B5, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_8_PAD = 0x01B6, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_9_CREATOR = 0x01B7, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_9_0 = 0x01B9, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_9_PROPERTIES = 0x01C5, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_9_PAD = 0x01C6, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_10_CREATOR = 0x01C7, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_10_0 = 0x01C9, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_10_PROPERTIES = 0x01D5, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_10_PAD = 0x01D6, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_11_CREATOR = 0x01D7, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_11_0 = 0x01D9, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_11_PROPERTIES = 0x01E5, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_11_PAD = 0x01E6, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_12_CREATOR = 0x01E7, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_12_0 = 0x01E9, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_12_PROPERTIES = 0x01F5, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_12_PAD = 0x01F6, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_13_CREATOR = 0x01F7, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_13_0 = 0x01F9, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_13_PROPERTIES = 0x0205, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_13_PAD = 0x0206, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_14_CREATOR = 0x0207, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_14_0 = 0x0209, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_14_PROPERTIES = 0x0215, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_14_PAD = 0x0216, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_15_CREATOR = 0x0217, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_15_0 = 0x0219, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_15_PROPERTIES = 0x0225, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_15_PAD = 0x0226, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_16_CREATOR = 0x0227, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_16_0 = 0x0229, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_16_PROPERTIES = 0x0235, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_16_PAD = 0x0236, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_17_CREATOR = 0x0237, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_17_0 = 0x0239, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_17_PROPERTIES = 0x0245, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_17_PAD = 0x0246, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_18_CREATOR = 0x0247, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_18_0 = 0x0249, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_18_PROPERTIES = 0x0255, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_18_PAD = 0x0256, // 1 1 1
|
||||
PLAYER_VISIBLE_ITEM_19_CREATOR = 0x0257, // 2 4 1
|
||||
PLAYER_VISIBLE_ITEM_19_0 = 0x0259, // 12 1 1
|
||||
PLAYER_VISIBLE_ITEM_19_PROPERTIES = 0x0265, // 1 2 1
|
||||
PLAYER_VISIBLE_ITEM_19_PAD = 0x0266, // 1 1 1
|
||||
PLAYER_CHOSEN_TITLE = 0x0267, // 1 1 1
|
||||
PLAYER_FIELD_INV_SLOT_HEAD = 0x0268, // 46 4 2
|
||||
PLAYER_FIELD_PACK_SLOT_1 = 0x0296, // 32 4 2
|
||||
PLAYER_FIELD_BANK_SLOT_1 = 0x02B6, // 56 4 2
|
||||
PLAYER_FIELD_BANKBAG_SLOT_1 = 0x02EE, // 14 4 2
|
||||
PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = 0x02FC, // 24 4 2
|
||||
PLAYER_FIELD_KEYRING_SLOT_1 = 0x0314, // 64 4 2
|
||||
PLAYER_FARSIGHT = 0x0354, // 2 4 2
|
||||
PLAYER__FIELD_KNOWN_TITLES = 0x0356, // 2 4 2
|
||||
PLAYER_XP = 0x0358, // 1 1 2
|
||||
PLAYER_NEXT_LEVEL_XP = 0x0359, // 1 1 2
|
||||
PLAYER_SKILL_INFO_1_1 = 0x035A, // 384 2 2
|
||||
PLAYER_CHARACTER_POINTS1 = 0x04DA, // 1 1 2
|
||||
PLAYER_CHARACTER_POINTS2 = 0x04DB, // 1 1 2
|
||||
PLAYER_TRACK_CREATURES = 0x04DC, // 1 1 2
|
||||
PLAYER_TRACK_RESOURCES = 0x04DD, // 1 1 2
|
||||
PLAYER_BLOCK_PERCENTAGE = 0x04DE, // 1 3 2
|
||||
PLAYER_DODGE_PERCENTAGE = 0x04DF, // 1 3 2
|
||||
PLAYER_PARRY_PERCENTAGE = 0x04E0, // 1 3 2
|
||||
PLAYER_CRIT_PERCENTAGE = 0x04E1, // 1 3 2
|
||||
PLAYER_RANGED_CRIT_PERCENTAGE = 0x04E2, // 1 3 2
|
||||
PLAYER_OFFHAND_CRIT_PERCENTAGE = 0x04E3, // 1 3 2
|
||||
PLAYER_SPELL_CRIT_PERCENTAGE1 = 0x04E4, // 7 3 2
|
||||
|
||||
// custom
|
||||
PLAYER_HOLY_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+1,
|
||||
PLAYER_FIRE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+2,
|
||||
PLAYER_NATURE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+3,
|
||||
PLAYER_FROST_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+4,
|
||||
PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+5,
|
||||
PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE = PLAYER_SPELL_CRIT_PERCENTAGE1+6,
|
||||
|
||||
PLAYER_EXPLORED_ZONES_1 = 0x04EB, // 64 5 2
|
||||
PLAYER_REST_STATE_EXPERIENCE = 0x052B, // 1 1 2
|
||||
PLAYER_FIELD_COINAGE = 0x052C, // 1 1 2
|
||||
PLAYER_FIELD_MOD_DAMAGE_DONE_POS = 0x052D, // 7 1 2
|
||||
PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = 0x0534, // 7 1 2
|
||||
PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = 0x053B, // 7 1 2
|
||||
PLAYER_FIELD_MOD_HEALING_DONE_POS = 0x0542, // 1 1 2
|
||||
PLAYER_FIELD_MOD_TARGET_RESISTANCE = 0x0543, // 1 1 2
|
||||
PLAYER_FIELD_BYTES = 0x0544, // 1 5 2
|
||||
PLAYER_AMMO_ID = 0x0545, // 1 1 2
|
||||
PLAYER_SELF_RES_SPELL = 0x0546, // 1 1 2
|
||||
PLAYER_FIELD_PVP_MEDALS = 0x0547, // 1 1 2
|
||||
PLAYER_FIELD_BUYBACK_PRICE_1 = 0x0548, // 12 1 2
|
||||
PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = 0x0554, // 12 1 2
|
||||
PLAYER_FIELD_KILLS = 0x0560, // 1 2 2
|
||||
PLAYER_FIELD_TODAY_CONTRIBUTION = 0x0561, // 1 1 2
|
||||
PLAYER_FIELD_YESTERDAY_CONTRIBUTION = 0x0562, // 1 1 2
|
||||
PLAYER_FIELD_LIFETIME_HONORBALE_KILLS = 0x0563, // 1 1 2
|
||||
PLAYER_FIELD_BYTES2 = 0x0564, // 1 5 2
|
||||
PLAYER_FIELD_WATCHED_FACTION_INDEX = 0x0565, // 1 1 2
|
||||
PLAYER_FIELD_COMBAT_RATING_1 = 0x0566, // 23 1 2
|
||||
|
||||
// custom
|
||||
PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1,
|
||||
PLAYER_FIELD_DEFENCE_RATING = PLAYER_FIELD_COMBAT_RATING_1+1,
|
||||
PLAYER_FIELD_DODGE_RATING = PLAYER_FIELD_COMBAT_RATING_1+2,
|
||||
PLAYER_FIELD_PARRY_RATING = PLAYER_FIELD_COMBAT_RATING_1+3,
|
||||
PLAYER_FIELD_BLOCK_RATING = PLAYER_FIELD_COMBAT_RATING_1+4,
|
||||
PLAYER_FIELD_MELEE_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+5,
|
||||
PLAYER_FIELD_RANGED_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+6,
|
||||
PLAYER_FIELD_SPELL_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+7,
|
||||
PLAYER_FIELD_MELEE_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+8,
|
||||
PLAYER_FIELD_RANGED_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+9,
|
||||
PLAYER_FIELD_SPELL_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+10,
|
||||
PLAYER_FIELD_HIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+11, // unsure, was PLAYER_FIELD_UNK1_RATING
|
||||
PLAYER_FIELD_CRIT_RATING = PLAYER_FIELD_COMBAT_RATING_1+12, // unsure, was PLAYER_FIELD_UNK2_RATING
|
||||
PLAYER_FIELD_UNK3_RATING = PLAYER_FIELD_COMBAT_RATING_1+13,
|
||||
PLAYER_FIELD_UNK4_RATING = PLAYER_FIELD_COMBAT_RATING_1+14,
|
||||
PLAYER_FIELD_UNK5_RATING = PLAYER_FIELD_COMBAT_RATING_1+15,
|
||||
PLAYER_FIELD_RESILIENCE_RATING = PLAYER_FIELD_COMBAT_RATING_1+16,
|
||||
PLAYER_FIELD_MELEE_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+17,
|
||||
PLAYER_FIELD_RANGED_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+19,
|
||||
PLAYER_FIELD_SPELL_HASTE_RATING = PLAYER_FIELD_COMBAT_RATING_1+20,
|
||||
PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+21,
|
||||
PLAYER_FIELD_OFFHAND_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+22,
|
||||
PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING = PLAYER_FIELD_COMBAT_RATING_1+23,
|
||||
|
||||
PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = 0x057D, // 15 1 2
|
||||
|
||||
// custom
|
||||
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+5,
|
||||
PLAYER_FIELD_ARENA_TEAM_ID_5v5 = PLAYER_FIELD_ARENA_TEAM_INFO_1_1+10,
|
||||
|
||||
PLAYER_FIELD_HONOR_CURRENCY = 0x058C, // 1 1 2
|
||||
PLAYER_FIELD_ARENA_CURRENCY = 0x058D, // 1 1 2
|
||||
PLAYER_FIELD_MOD_MANA_REGEN = 0x058E, // 1 3 2
|
||||
PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT = 0x058F, // 1 3 2
|
||||
PLAYER_FIELD_MAX_LEVEL = 0x0590, // 1 1 2
|
||||
PLAYER_FIELD_DAILY_QUESTS_1 = 0x0591, // 10 1 2
|
||||
PLAYER_FIELD_PADDING = 0x059B, // 1 1 0
|
||||
PLAYER_END = 0x059C,
|
||||
};
|
||||
|
||||
enum EGameObjectFields
|
||||
{
|
||||
OBJECT_FIELD_CREATED_BY = OBJECT_END + 0x00,
|
||||
GAMEOBJECT_DISPLAYID = OBJECT_END + 0x02,
|
||||
GAMEOBJECT_FLAGS = OBJECT_END + 0x03,
|
||||
GAMEOBJECT_ROTATION = OBJECT_END + 0x04,
|
||||
GAMEOBJECT_STATE = OBJECT_END + 0x08,
|
||||
GAMEOBJECT_POS_X = OBJECT_END + 0x09,
|
||||
GAMEOBJECT_POS_Y = OBJECT_END + 0x0A,
|
||||
GAMEOBJECT_POS_Z = OBJECT_END + 0x0B,
|
||||
GAMEOBJECT_FACING = OBJECT_END + 0x0C,
|
||||
GAMEOBJECT_DYN_FLAGS = OBJECT_END + 0x0D,
|
||||
GAMEOBJECT_FACTION = OBJECT_END + 0x0E,
|
||||
GAMEOBJECT_TYPE_ID = OBJECT_END + 0x0F,
|
||||
GAMEOBJECT_LEVEL = OBJECT_END + 0x10,
|
||||
GAMEOBJECT_ARTKIT = OBJECT_END + 0x11,
|
||||
GAMEOBJECT_ANIMPROGRESS = OBJECT_END + 0x12,
|
||||
GAMEOBJECT_PADDING = OBJECT_END + 0x13,
|
||||
GAMEOBJECT_END = OBJECT_END + 0x14,
|
||||
OBJECT_FIELD_CREATED_BY = 0x0006, // 2 4 1
|
||||
GAMEOBJECT_DISPLAYID = 0x0008, // 1 1 1
|
||||
GAMEOBJECT_FLAGS = 0x0009, // 1 1 1
|
||||
GAMEOBJECT_ROTATION = 0x000A, // 4 3 1
|
||||
GAMEOBJECT_STATE = 0x000E, // 1 1 1
|
||||
GAMEOBJECT_POS_X = 0x000F, // 1 3 1
|
||||
GAMEOBJECT_POS_Y = 0x0010, // 1 3 1
|
||||
GAMEOBJECT_POS_Z = 0x0011, // 1 3 1
|
||||
GAMEOBJECT_FACING = 0x0012, // 1 3 1
|
||||
GAMEOBJECT_DYN_FLAGS = 0x0013, // 1 1 256
|
||||
GAMEOBJECT_FACTION = 0x0014, // 1 1 1
|
||||
GAMEOBJECT_TYPE_ID = 0x0015, // 1 1 1
|
||||
GAMEOBJECT_LEVEL = 0x0016, // 1 1 1
|
||||
GAMEOBJECT_ARTKIT = 0x0017, // 1 1 1
|
||||
GAMEOBJECT_ANIMPROGRESS = 0x0018, // 1 1 256
|
||||
GAMEOBJECT_PADDING = 0x0019, // 1 1 0
|
||||
GAMEOBJECT_END = 0x001A,
|
||||
};
|
||||
|
||||
enum EDynamicObjectFields
|
||||
{
|
||||
DYNAMICOBJECT_CASTER = OBJECT_END + 0x00,
|
||||
DYNAMICOBJECT_BYTES = OBJECT_END + 0x02,
|
||||
DYNAMICOBJECT_SPELLID = OBJECT_END + 0x03,
|
||||
DYNAMICOBJECT_RADIUS = OBJECT_END + 0x04,
|
||||
DYNAMICOBJECT_POS_X = OBJECT_END + 0x05,
|
||||
DYNAMICOBJECT_POS_Y = OBJECT_END + 0x06,
|
||||
DYNAMICOBJECT_POS_Z = OBJECT_END + 0x07,
|
||||
DYNAMICOBJECT_FACING = OBJECT_END + 0x08,
|
||||
DYNAMICOBJECT_PAD = OBJECT_END + 0x09,
|
||||
DYNAMICOBJECT_END = OBJECT_END + 0x0A,
|
||||
DYNAMICOBJECT_CASTER = 0x0006, // 2 4 1
|
||||
DYNAMICOBJECT_BYTES = 0x0008, // 1 5 1
|
||||
DYNAMICOBJECT_SPELLID = 0x0009, // 1 1 1
|
||||
DYNAMICOBJECT_RADIUS = 0x000A, // 1 3 1
|
||||
DYNAMICOBJECT_POS_X = 0x000B, // 1 3 1
|
||||
DYNAMICOBJECT_POS_Y = 0x000C, // 1 3 1
|
||||
DYNAMICOBJECT_POS_Z = 0x000D, // 1 3 1
|
||||
DYNAMICOBJECT_FACING = 0x000E, // 1 3 1
|
||||
DYNAMICOBJECT_PAD = 0x000F, // 1 5 1
|
||||
DYNAMICOBJECT_END = 0x0010,
|
||||
};
|
||||
|
||||
enum ECorpseFields
|
||||
{
|
||||
CORPSE_FIELD_OWNER = OBJECT_END + 0x00,
|
||||
CORPSE_FIELD_FACING = OBJECT_END + 0x02,
|
||||
CORPSE_FIELD_POS_X = OBJECT_END + 0x03,
|
||||
CORPSE_FIELD_POS_Y = OBJECT_END + 0x04,
|
||||
CORPSE_FIELD_POS_Z = OBJECT_END + 0x05,
|
||||
CORPSE_FIELD_DISPLAY_ID = OBJECT_END + 0x06,
|
||||
CORPSE_FIELD_ITEM = OBJECT_END + 0x07, // 19
|
||||
CORPSE_FIELD_BYTES_1 = OBJECT_END + 0x1A,
|
||||
CORPSE_FIELD_BYTES_2 = OBJECT_END + 0x1B,
|
||||
CORPSE_FIELD_GUILD = OBJECT_END + 0x1C,
|
||||
CORPSE_FIELD_FLAGS = OBJECT_END + 0x1D,
|
||||
CORPSE_FIELD_DYNAMIC_FLAGS = OBJECT_END + 0x1E,
|
||||
CORPSE_FIELD_PAD = OBJECT_END + 0x1F,
|
||||
CORPSE_END = OBJECT_END + 0x20,
|
||||
CORPSE_FIELD_OWNER = 0x0006, // 2 4 1
|
||||
CORPSE_FIELD_FACING = 0x0008, // 1 3 1
|
||||
CORPSE_FIELD_POS_X = 0x0009, // 1 3 1
|
||||
CORPSE_FIELD_POS_Y = 0x000A, // 1 3 1
|
||||
CORPSE_FIELD_POS_Z = 0x000B, // 1 3 1
|
||||
CORPSE_FIELD_DISPLAY_ID = 0x000C, // 1 1 1
|
||||
CORPSE_FIELD_ITEM = 0x000D, // 19 1 1
|
||||
CORPSE_FIELD_BYTES_1 = 0x0020, // 1 5 1
|
||||
CORPSE_FIELD_BYTES_2 = 0x0021, // 1 5 1
|
||||
CORPSE_FIELD_GUILD = 0x0022, // 1 1 1
|
||||
CORPSE_FIELD_FLAGS = 0x0023, // 1 1 1
|
||||
CORPSE_FIELD_DYNAMIC_FLAGS = 0x0024, // 1 1 256
|
||||
CORPSE_FIELD_PAD = 0x0025, // 1 1 0
|
||||
CORPSE_END = 0x0026,
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -203,7 +203,6 @@ OpcodeHandler *WorldSession::_GetOpcodeHandlerTable() const
|
||||
{MSG_MOVE_STOP_SWIM, &WorldSession::_HandleMovementOpcode},
|
||||
{MSG_MOVE_HEARTBEAT, &WorldSession::_HandleMovementOpcode},
|
||||
{MSG_MOVE_FALL_LAND, &WorldSession::_HandleMovementOpcode},
|
||||
|
||||
{MSG_MOVE_TELEPORT_ACK, &WorldSession::_HandleTelePortAckOpcode},
|
||||
{SMSG_COMPRESSED_UPDATE_OBJECT, &WorldSession::_HandleCompressedUpdateObjectOpcode},
|
||||
{SMSG_UPDATE_OBJECT, &WorldSession::_HandleUpdateObjectOpcode},
|
||||
@ -218,6 +217,8 @@ OpcodeHandler *WorldSession::_GetOpcodeHandlerTable() const
|
||||
{SMSG_TEXT_EMOTE, &WorldSession::_HandleTextEmoteOpcode},
|
||||
{SMSG_NEW_WORLD, &WorldSession::_HandleNewWorldOpcode},
|
||||
{SMSG_LOGIN_VERIFY_WORLD, &WorldSession::_HandleLoginVerifyWorldOpcode},
|
||||
{SMSG_MOTD, &WorldSession::_HandleMotdOpcode},
|
||||
{SMSG_NOTIFICATION, &WorldSession::_HandleNotificationOpcode},
|
||||
|
||||
// table termination
|
||||
{ 0, NULL }
|
||||
@ -434,30 +435,31 @@ void WorldSession::_HandleMessageChatOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
uint8 type=0;
|
||||
uint32 lang=0;
|
||||
uint64 source_guid=0;
|
||||
uint64 target_guid=0;
|
||||
uint32 msglen=0;
|
||||
uint32 unk=0;
|
||||
std::string msg,channel="";
|
||||
bool isCmd=false;
|
||||
|
||||
recvPacket >> type >> lang;
|
||||
|
||||
std::string langname = GetDBMgr().GetLangName(lang);
|
||||
const char* ln = langname.c_str();
|
||||
|
||||
|
||||
recvPacket >> source_guid >> unk; // added in 2.1.0
|
||||
if (type == CHAT_MSG_CHANNEL)
|
||||
{
|
||||
recvPacket >> channel; // extract channel name
|
||||
}
|
||||
recvPacket >> target_guid >> msglen >> msg;
|
||||
|
||||
std::string langname = GetDBMgr().GetLangName(lang);
|
||||
const char* ln = langname.c_str();
|
||||
|
||||
recvPacket >> target_guid;
|
||||
std::string plrname;
|
||||
if(target_guid)
|
||||
if(source_guid)
|
||||
{
|
||||
plrname=plrNameCache.GetName(target_guid);
|
||||
plrname=plrNameCache.GetName(source_guid);
|
||||
if(plrname.empty())
|
||||
{
|
||||
SendQueryPlayerName(target_guid);
|
||||
SendQueryPlayerName(source_guid);
|
||||
plrname="Unknown Entity";
|
||||
}
|
||||
}
|
||||
@ -465,10 +467,9 @@ void WorldSession::_HandleMessageChatOpcode(WorldPacket& recvPacket)
|
||||
GetInstance()->GetScripts()->variables.Set("@thismsg",toString(target_guid));
|
||||
|
||||
|
||||
if(type == CHAT_MSG_SAY || type == CHAT_MSG_YELL || type == CHAT_MSG_PARTY)
|
||||
recvPacket >> target_guid;
|
||||
DEBUG(logdebug("Chat packet recieved, type=%u lang=%u src="I64FMT" dst="I64FMT" chn='%s' len=%u",
|
||||
type,lang,source_guid,target_guid,channel.c_str(),msglen));
|
||||
|
||||
recvPacket >> msglen >> msg;
|
||||
if (type == CHAT_MSG_SYSTEM)
|
||||
{
|
||||
logcustom(0,WHITE,"SYSMSG: \"%s\"",msg.c_str());
|
||||
@ -584,8 +585,27 @@ void WorldSession::_HandleMessageChatOpcode(WorldPacket& recvPacket)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void WorldSession::_HandleMotdOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
uint32 lines;
|
||||
std::string line;
|
||||
recvPacket >> lines;
|
||||
for(uint32 i = 0; i < lines; i++)
|
||||
{
|
||||
recvPacket >> line;
|
||||
logcustom(0,YELLOW,"MOTD: %s",line.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::_HandleNotificationOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
std::string text;
|
||||
recvPacket >> text;
|
||||
logcustom(0,YELLOW,"NOTIFY: %s",text.c_str());
|
||||
}
|
||||
|
||||
void WorldSession::_HandleNameQueryResponseOpcode(WorldPacket& recvPacket)
|
||||
{
|
||||
uint64 pguid;
|
||||
@ -887,3 +907,4 @@ void WorldSession::_HandleLoginVerifyWorldOpcode(WorldPacket& recvPacket)
|
||||
|
||||
// TODO: delete world on LogoutComplete once implemented
|
||||
|
||||
|
||||
|
||||
@ -91,6 +91,8 @@ private:
|
||||
void _HandleTextEmoteOpcode(WorldPacket& recvPacket);
|
||||
void _HandleNewWorldOpcode(WorldPacket& recvPacket);
|
||||
void _HandleLoginVerifyWorldOpcode(WorldPacket& recvPacket);
|
||||
void _HandleMotdOpcode(WorldPacket& recvPacket);
|
||||
void _HandleNotificationOpcode(WorldPacket& recvPacket);
|
||||
|
||||
void _MovementUpdate(uint8 objtypeid, uint64 guid, WorldPacket& recvPacket); // Helper for _HandleUpdateObjectOpcode
|
||||
void _ValuesUpdate(uint64 uguid, WorldPacket& recvPacket); // ...
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user