* implemented CONNECTING (only!) to 2.0.12 servers. (still gives errors)
* removed some hardcoded stuff (already present in included db) * no opcode changes so far, this has to be done next!
This commit is contained in:
parent
c92f1ea824
commit
4282d4d1bf
@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "PseuWoW.h"
|
#include "PseuWoW.h"
|
||||||
#include "NameTables.h"
|
|
||||||
#include "DefScript/DefScript.h"
|
#include "DefScript/DefScript.h"
|
||||||
#include "DefScript/DefScriptTools.h"
|
#include "DefScript/DefScriptTools.h"
|
||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
@ -65,18 +64,21 @@ DefReturnResult DefScriptPackage::SCSendChatMessage(CmdSet& Set){
|
|||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
uint32 type=atoi(Set.arg[0].c_str());
|
uint32 type=atoi(Set.arg[0].c_str());
|
||||||
uint32 lang=atoi(Set.arg[1].c_str());
|
uint32 lang=atoi(Set.arg[1].c_str());
|
||||||
ss << lang;
|
// TODO: need better database support to get the lang id from a given name
|
||||||
|
/*ss << lang;
|
||||||
if(ss.str()!=Set.arg[1]) // given lang is NOT a number
|
if(ss.str()!=Set.arg[1]) // given lang is NOT a number
|
||||||
{
|
{
|
||||||
|
|
||||||
for(uint32 i=0;i<=33;i++)
|
for(uint32 i=0;i<=33;i++)
|
||||||
{
|
{
|
||||||
|
((PseuInstance*)parentMethod)->dbmgr.GetDB("language").GetFieldByValue("name"
|
||||||
if(!stricmp(Set.arg[1].c_str(),LookupName(i,langNames)))
|
if(!stricmp(Set.arg[1].c_str(),LookupName(i,langNames)))
|
||||||
{
|
{
|
||||||
lang=i;
|
lang=i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
std::string msg=Set.arg[2];
|
std::string msg=Set.arg[2];
|
||||||
std::string to=Set.arg[3];
|
std::string to=Set.arg[3];
|
||||||
((PseuInstance*)parentMethod)->GetWSession()->SendChatMessage(type,lang,msg,to);
|
((PseuInstance*)parentMethod)->GetWSession()->SendChatMessage(type,lang,msg,to);
|
||||||
|
|||||||
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2005,2006 MaNGOS <http://www.mangosproject.org/>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __NAMETABLES_H
|
|
||||||
#define __NAMETABLES_H
|
|
||||||
|
|
||||||
struct NameTableEntry
|
|
||||||
{
|
|
||||||
uint32 id;
|
|
||||||
const char *name;
|
|
||||||
};
|
|
||||||
|
|
||||||
inline const char* LookupName(uint32 id, NameTableEntry *table)
|
|
||||||
{
|
|
||||||
for(uint32 i = 0; table[i].name != 0; i++)
|
|
||||||
{
|
|
||||||
if (table[i].id == id)
|
|
||||||
return table[i].name;
|
|
||||||
}
|
|
||||||
|
|
||||||
return "UNKNOWN";
|
|
||||||
}
|
|
||||||
|
|
||||||
extern NameTableEntry g_worldOpcodeNames[];
|
|
||||||
extern char *className[],*raceName[];
|
|
||||||
extern NameTableEntry langNames[];
|
|
||||||
#endif
|
|
||||||
@ -25,7 +25,8 @@ struct SRealmHeader
|
|||||||
|
|
||||||
struct SRealmInfo
|
struct SRealmInfo
|
||||||
{
|
{
|
||||||
uint32 icon; // icon near realm
|
uint8 icon; // icon near realm
|
||||||
|
uint8 locked; // added in 2.0.x
|
||||||
uint8 color; // color of record
|
uint8 color; // color of record
|
||||||
std::string name; // Text zero terminated name of Realm
|
std::string name; // Text zero terminated name of Realm
|
||||||
std::string addr_port; // Text zero terminated address of Realm ("ip:port")
|
std::string addr_port; // Text zero terminated address of Realm ("ip:port")
|
||||||
@ -130,8 +131,8 @@ void RealmSocket::_HandleRealmList(void)
|
|||||||
ibuf.Read((char*)realmbuf.contents(), ibuf.GetLength());
|
ibuf.Read((char*)realmbuf.contents(), ibuf.GetLength());
|
||||||
|
|
||||||
uint32 unk;
|
uint32 unk;
|
||||||
uint16 len;
|
uint16 len,count;
|
||||||
uint8 cmd,count;
|
uint8 cmd;
|
||||||
realmbuf >> cmd >> len >> unk >> count;
|
realmbuf >> cmd >> len >> unk >> count;
|
||||||
|
|
||||||
// no realm?
|
// no realm?
|
||||||
@ -145,6 +146,7 @@ void RealmSocket::_HandleRealmList(void)
|
|||||||
for(uint8 i=0;i<count;i++)
|
for(uint8 i=0;i<count;i++)
|
||||||
{
|
{
|
||||||
realmbuf >> realms[i].icon;
|
realmbuf >> realms[i].icon;
|
||||||
|
realmbuf >> realms[i].locked;
|
||||||
realmbuf >> realms[i].color;
|
realmbuf >> realms[i].color;
|
||||||
realmbuf >> realms[i].name;
|
realmbuf >> realms[i].name;
|
||||||
realmbuf >> realms[i].addr_port;
|
realmbuf >> realms[i].addr_port;
|
||||||
@ -165,6 +167,7 @@ void RealmSocket::_HandleRealmList(void)
|
|||||||
logcustom(0,LGREEN,"Realm: %s (%s)",realms[i].name.c_str(),realms[i].addr_port.c_str());
|
logcustom(0,LGREEN,"Realm: %s (%s)",realms[i].name.c_str(),realms[i].addr_port.c_str());
|
||||||
logdetail(" [chars:%d][population:%f][timezone:%d]",realms[i].chars_here,realms[i].population,realms[i].timezone);
|
logdetail(" [chars:%d][population:%f][timezone:%d]",realms[i].chars_here,realms[i].population,realms[i].timezone);
|
||||||
}
|
}
|
||||||
|
delete [] realms;
|
||||||
|
|
||||||
// now setup where the woldserver is and how to login there
|
// now setup where the woldserver is and how to login there
|
||||||
if(realmAddr.empty()){
|
if(realmAddr.empty()){
|
||||||
|
|||||||
@ -2,9 +2,6 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "SCPDatabase.h"
|
#include "SCPDatabase.h"
|
||||||
|
|
||||||
// for helper functions
|
|
||||||
#include "NameTables.h"
|
|
||||||
|
|
||||||
uint32 SCPDatabase::LoadFromFile(char *fn)
|
uint32 SCPDatabase::LoadFromFile(char *fn)
|
||||||
{
|
{
|
||||||
std::fstream fh;
|
std::fstream fh;
|
||||||
@ -107,8 +104,8 @@ std::string SCPDatabaseMgr::GetZoneName(uint32 id)
|
|||||||
std::string SCPDatabaseMgr::GetRaceName(uint32 id)
|
std::string SCPDatabaseMgr::GetRaceName(uint32 id)
|
||||||
{
|
{
|
||||||
std::string r = GetDB("race").GetField(id).GetString("name");
|
std::string r = GetDB("race").GetField(id).GetString("name");
|
||||||
if(r.empty())
|
//if(r.empty())
|
||||||
r = raceName[id];
|
// r = raceName[id];
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,8 +117,8 @@ std::string SCPDatabaseMgr::GetMapName(uint32 id)
|
|||||||
std::string SCPDatabaseMgr::GetClassName_(uint32 id)
|
std::string SCPDatabaseMgr::GetClassName_(uint32 id)
|
||||||
{
|
{
|
||||||
std::string r = GetDB("class").GetField(id).GetString("name");
|
std::string r = GetDB("class").GetField(id).GetString("name");
|
||||||
if(r.empty())
|
//if(r.empty())
|
||||||
r = className[id];
|
// r = className[id];
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,7 +130,7 @@ std::string SCPDatabaseMgr::GetGenderName(uint32 id)
|
|||||||
std::string SCPDatabaseMgr::GetLangName(uint32 id)
|
std::string SCPDatabaseMgr::GetLangName(uint32 id)
|
||||||
{
|
{
|
||||||
std::string r = GetDB("language").GetField(id).GetString("name");
|
std::string r = GetDB("language").GetField(id).GetString("name");
|
||||||
if(r.empty())
|
//if(r.empty())
|
||||||
r = LookupName(id,langNames);
|
// r = LookupName(id,langNames);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
@ -5,7 +5,6 @@
|
|||||||
#include "Opcodes.h"
|
#include "Opcodes.h"
|
||||||
#include "SharedDefines.h"
|
#include "SharedDefines.h"
|
||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "NameTables.h"
|
|
||||||
#include "DefScript/DefScript.h"
|
#include "DefScript/DefScript.h"
|
||||||
#include "WorldSession.h"
|
#include "WorldSession.h"
|
||||||
#include "CacheHandler.h"
|
#include "CacheHandler.h"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2005,2006 MaNGOS <http://www.mangosproject.org/>
|
* Copyright (C) 2005,2006,2007 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
|
||||||
@ -16,9 +16,16 @@
|
|||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/// \addtogroup u2w
|
||||||
|
/// @{
|
||||||
|
/// \file
|
||||||
|
|
||||||
#ifndef _OPCODES_H
|
#ifndef _OPCODES_H
|
||||||
#define _OPCODES_H
|
#define _OPCODES_H
|
||||||
|
|
||||||
|
const char *GetOpcodeName(unsigned int);
|
||||||
|
|
||||||
|
/// List of OpCodes
|
||||||
enum OpCodes
|
enum OpCodes
|
||||||
{
|
{
|
||||||
MSG_NULL_ACTION = 0,
|
MSG_NULL_ACTION = 0,
|
||||||
@ -88,7 +95,7 @@ enum OpCodes
|
|||||||
SMSG_NEW_WORLD = 62,
|
SMSG_NEW_WORLD = 62,
|
||||||
SMSG_TRANSFER_PENDING = 63,
|
SMSG_TRANSFER_PENDING = 63,
|
||||||
SMSG_TRANSFER_ABORTED = 64,
|
SMSG_TRANSFER_ABORTED = 64,
|
||||||
SMSG_CHARACTER_LOGIN_FAILED = 65,
|
SMSG_CHARACTER_LOGIN_FAILED = 65, // kick client to character select screen and show "World server is down".
|
||||||
SMSG_LOGIN_SETTIMESPEED = 66,
|
SMSG_LOGIN_SETTIMESPEED = 66,
|
||||||
SMSG_GAMETIME_UPDATE = 67,
|
SMSG_GAMETIME_UPDATE = 67,
|
||||||
CMSG_GAMETIME_SET = 68,
|
CMSG_GAMETIME_SET = 68,
|
||||||
@ -335,7 +342,7 @@ enum OpCodes
|
|||||||
SMSG_COOLDOWN_EVENT = 309,
|
SMSG_COOLDOWN_EVENT = 309,
|
||||||
CMSG_CANCEL_AURA = 310,
|
CMSG_CANCEL_AURA = 310,
|
||||||
SMSG_UPDATE_AURA_DURATION = 311,
|
SMSG_UPDATE_AURA_DURATION = 311,
|
||||||
SMSG_PET_CAST_FAILED = 312,
|
SMSG_PET_CAST_FAILED = 312, // Your pet is in combat
|
||||||
MSG_CHANNEL_START = 313,
|
MSG_CHANNEL_START = 313,
|
||||||
MSG_CHANNEL_UPDATE = 314,
|
MSG_CHANNEL_UPDATE = 314,
|
||||||
CMSG_CANCEL_CHANNELLING = 315,
|
CMSG_CANCEL_CHANNELLING = 315,
|
||||||
@ -391,21 +398,21 @@ 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,
|
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_DISMOUNTRESULT = 367,
|
SMSG_DISMOUNTRESULT = 367, // 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,
|
||||||
SMSG_PET_TAME_FAILURE = 371,
|
SMSG_PET_TAME_FAILURE = 371, // uint32: 0 - Unknown taming error, 1 - Creature not found, 2 - too many pets, 3 - creature already controlled, 4 - creature not tameable, 5 - have active summon, 6 - can't tame, 7 - don't have pet to summon, 8 - internal pet error, 9 - high level, 10 - your pet is dead, 11 - your pet is not dead
|
||||||
CMSG_PET_SET_ACTION = 372,
|
CMSG_PET_SET_ACTION = 372,
|
||||||
CMSG_PET_ACTION = 373,
|
CMSG_PET_ACTION = 373,
|
||||||
CMSG_PET_ABANDON = 374,
|
CMSG_PET_ABANDON = 374,
|
||||||
CMSG_PET_RENAME = 375,
|
CMSG_PET_RENAME = 375,
|
||||||
SMSG_PET_NAME_INVALID = 376,
|
SMSG_PET_NAME_INVALID = 376, // Error, invalid name entered.
|
||||||
SMSG_PET_SPELLS = 377,
|
SMSG_PET_SPELLS = 377,
|
||||||
|
|
||||||
//CMSG_PET_CAST_SPELL_OBSOLETE = 378, //OBSOLETE
|
//CMSG_PET_CAST_SPELL_OBSOLETE = 378, //OBSOLETE
|
||||||
SMSG_PET_MODE = 378,
|
SMSG_PET_MODE = 378, // uint64 pet_guid + uint32 flags?
|
||||||
CMSG_GOSSIP_HELLO = 379,
|
CMSG_GOSSIP_HELLO = 379,
|
||||||
CMSG_GOSSIP_SELECT_OPTION = 380,
|
CMSG_GOSSIP_SELECT_OPTION = 380,
|
||||||
SMSG_GOSSIP_MESSAGE = 381,
|
SMSG_GOSSIP_MESSAGE = 381,
|
||||||
@ -465,7 +472,7 @@ enum OpCodes
|
|||||||
SMSG_TRAINER_BUY_SUCCEEDED = 435,
|
SMSG_TRAINER_BUY_SUCCEEDED = 435,
|
||||||
SMSG_TRAINER_BUY_FAILED = 436,
|
SMSG_TRAINER_BUY_FAILED = 436,
|
||||||
CMSG_BINDER_ACTIVATE = 437,
|
CMSG_BINDER_ACTIVATE = 437,
|
||||||
SMSG_PLAYERBINDERROR = 438,
|
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,
|
||||||
@ -506,7 +513,7 @@ enum OpCodes
|
|||||||
CMSG_PING = 476,
|
CMSG_PING = 476,
|
||||||
SMSG_PONG = 477,
|
SMSG_PONG = 477,
|
||||||
SMSG_CLEAR_COOLDOWN = 478,
|
SMSG_CLEAR_COOLDOWN = 478,
|
||||||
SMSG_GAMEOBJECT_PAGETEXT = 479,
|
SMSG_GAMEOBJECT_PAGETEXT = 479, // uint64 guid
|
||||||
CMSG_SETSHEATHED = 480,
|
CMSG_SETSHEATHED = 480,
|
||||||
SMSG_COOLDOWN_CHEAT = 481,
|
SMSG_COOLDOWN_CHEAT = 481,
|
||||||
SMSG_SPELL_DELAYED = 482,
|
SMSG_SPELL_DELAYED = 482,
|
||||||
@ -516,10 +523,10 @@ enum OpCodes
|
|||||||
CMSG_GM_INVIS = 486,
|
CMSG_GM_INVIS = 486,
|
||||||
|
|
||||||
//CMSG_SCREENSHOT = 487, //OBSOLETE
|
//CMSG_SCREENSHOT = 487, //OBSOLETE
|
||||||
SMSG_INVALID_PROMOTION_CODE = 487,
|
SMSG_INVALID_PROMOTION_CODE = 487, // Couldn't validate code, please try again.
|
||||||
MSG_GM_BIND_OTHER = 488,
|
MSG_GM_BIND_OTHER = 488,
|
||||||
MSG_GM_SUMMON = 489,
|
MSG_GM_SUMMON = 489,
|
||||||
SMSG_ITEM_TIME_UPDATE = 490,
|
SMSG_ITEM_TIME_UPDATE = 490, // uint64 guid + uint32 time
|
||||||
SMSG_ITEM_ENCHANT_TIME_UPDATE = 491,
|
SMSG_ITEM_ENCHANT_TIME_UPDATE = 491,
|
||||||
SMSG_AUTH_CHALLENGE = 492,
|
SMSG_AUTH_CHALLENGE = 492,
|
||||||
CMSG_AUTH_SESSION = 493,
|
CMSG_AUTH_SESSION = 493,
|
||||||
@ -568,7 +575,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,
|
SMSG_CHAT_WRONG_FACTION = 537, // 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,
|
||||||
@ -681,7 +688,7 @@ enum OpCodes
|
|||||||
CMSG_AUTOBANK_ITEM = 643,
|
CMSG_AUTOBANK_ITEM = 643,
|
||||||
MSG_QUERY_NEXT_MAIL_TIME = 644,
|
MSG_QUERY_NEXT_MAIL_TIME = 644,
|
||||||
SMSG_RECEIVED_MAIL = 645,
|
SMSG_RECEIVED_MAIL = 645,
|
||||||
SMSG_RAID_GROUP_ONLY = 646,
|
SMSG_RAID_GROUP_ONLY = 646, // You are not in this instance group. You will be teleported to %s in %u Minites. uint32 time(milliseconds)+uint32 unk
|
||||||
CMSG_SET_DURABILITY_CHEAT = 647,
|
CMSG_SET_DURABILITY_CHEAT = 647,
|
||||||
CMSG_SET_PVP_RANK_CHEAT = 648,
|
CMSG_SET_PVP_RANK_CHEAT = 648,
|
||||||
CMSG_ADD_PVP_MEDAL_CHEAT = 649,
|
CMSG_ADD_PVP_MEDAL_CHEAT = 649,
|
||||||
@ -690,17 +697,17 @@ enum OpCodes
|
|||||||
SMSG_PVP_CREDIT = 652,
|
SMSG_PVP_CREDIT = 652,
|
||||||
SMSG_AUCTION_REMOVED_NOTIFICATION = 653,
|
SMSG_AUCTION_REMOVED_NOTIFICATION = 653,
|
||||||
CMSG_GROUP_RAID_CONVERT = 654,
|
CMSG_GROUP_RAID_CONVERT = 654,
|
||||||
CMSG_GROUP_ASSISTANT_LEADER = 655,
|
CMSG_GROUP_ASSISTANT = 655,
|
||||||
CMSG_BUYBACK_ITEM = 656,
|
CMSG_BUYBACK_ITEM = 656,
|
||||||
SMSG_SERVER_MESSAGE = 657,
|
SMSG_SERVER_MESSAGE = 657,
|
||||||
CMSG_MEETINGSTONE_JOIN = 658,
|
CMSG_MEETINGSTONE_JOIN = 658,
|
||||||
CMSG_MEETINGSTONE_LEAVE = 659,
|
CMSG_MEETINGSTONE_LEAVE = 659,
|
||||||
CMSG_MEETINGSTONE_CHEAT = 660,
|
CMSG_MEETINGSTONE_CHEAT = 660,
|
||||||
SMSG_MEETINGSTONE_SETQUEUE = 661,
|
SMSG_MEETINGSTONE_SETQUEUE = 661, // You have left the queue to join a party for %s.
|
||||||
CMSG_MEETINGSTONE_INFO = 662,
|
CMSG_MEETINGSTONE_INFO = 662,
|
||||||
SMSG_MEETINGSTONE_COMPLETE = 663,
|
SMSG_MEETINGSTONE_COMPLETE = 663, // Your group is complete, you have left the LFG matchmaking system.
|
||||||
SMSG_MEETINGSTONE_IN_PROGRESS = 664,
|
SMSG_MEETINGSTONE_IN_PROGRESS = 664, // You still seeking more members through LFG matchmaking system., empty?
|
||||||
SMSG_MEETINGSTONE_MEMBER_ADDED = 665,
|
SMSG_MEETINGSTONE_MEMBER_ADDED = 665, // %s has been added to the group by the LFG matchmaking system.
|
||||||
CMSG_GMTICKETSYSTEM_TOGGLE = 666,
|
CMSG_GMTICKETSYSTEM_TOGGLE = 666,
|
||||||
CMSG_CANCEL_GROWTH_AURA = 667,
|
CMSG_CANCEL_GROWTH_AURA = 667,
|
||||||
SMSG_CANCEL_AUTO_REPEAT = 668,
|
SMSG_CANCEL_AUTO_REPEAT = 668,
|
||||||
@ -714,20 +721,20 @@ enum OpCodes
|
|||||||
SMSG_LOOT_MASTER_LIST = 676,
|
SMSG_LOOT_MASTER_LIST = 676,
|
||||||
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,
|
SMSG_GAMEOBJECT_RESET_STATE = 679, // uint64 guid
|
||||||
CMSG_REPAIR_ITEM = 680,
|
CMSG_REPAIR_ITEM = 680,
|
||||||
SMSG_CHAT_PLAYER_NOT_FOUND = 681,
|
SMSG_CHAT_PLAYER_NOT_FOUND = 681,
|
||||||
MSG_TALENT_WIPE_CONFIRM = 682,
|
MSG_TALENT_WIPE_CONFIRM = 682,
|
||||||
SMSG_SUMMON_REQUEST = 683,
|
SMSG_SUMMON_REQUEST = 683, // uint64 guid + uint32 area/zoneid + uint32 time(milliseconds?)
|
||||||
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,
|
SMSG_PET_BROKEN = 687, // Your pet has run away (:D)
|
||||||
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,
|
||||||
CMSG_SELF_RES = 691,
|
CMSG_SELF_RES = 691, // only if PLAYER_SELF_RES_SPELL field != 0
|
||||||
SMSG_FEIGN_DEATH_RESISTED = 692,
|
SMSG_FEIGN_DEATH_RESISTED = 692, // Resisted
|
||||||
CMSG_RUN_SCRIPT = 693,
|
CMSG_RUN_SCRIPT = 693,
|
||||||
SMSG_SCRIPT_MESSAGE = 694,
|
SMSG_SCRIPT_MESSAGE = 694,
|
||||||
SMSG_DUEL_COUNTDOWN = 695,
|
SMSG_DUEL_COUNTDOWN = 695,
|
||||||
@ -736,8 +743,8 @@ enum OpCodes
|
|||||||
CMSG_TOGGLE_CLOAK = 698,
|
CMSG_TOGGLE_CLOAK = 698,
|
||||||
|
|
||||||
//SMSG_SPELL_REFLECTED = 699, //OBSOLETE
|
//SMSG_SPELL_REFLECTED = 699, //OBSOLETE
|
||||||
SMSG_MEETINGSTONE_JOINFAILED = 699,
|
SMSG_MEETINGSTONE_JOINFAILED = 699, // 1 - must be party leader, 3 - can't use while in raid
|
||||||
SMSG_PLAYER_SKINNED = 700,
|
SMSG_PLAYER_SKINNED = 700, // uint8 0x00 Insignia taken - You can only resurrect at the graveyard
|
||||||
SMSG_DURABILITY_DAMAGE_DEATH = 701,
|
SMSG_DURABILITY_DAMAGE_DEATH = 701,
|
||||||
CMSG_SET_EXPLORATION = 702,
|
CMSG_SET_EXPLORATION = 702,
|
||||||
CMSG_SET_ACTIONBAR_TOGGLES = 703,
|
CMSG_SET_ACTIONBAR_TOGGLES = 703,
|
||||||
@ -747,12 +754,12 @@ enum OpCodes
|
|||||||
SMSG_UPDATE_WORLD_STATE = 707,
|
SMSG_UPDATE_WORLD_STATE = 707,
|
||||||
CMSG_ITEM_NAME_QUERY = 708,
|
CMSG_ITEM_NAME_QUERY = 708,
|
||||||
SMSG_ITEM_NAME_QUERY_RESPONSE = 709,
|
SMSG_ITEM_NAME_QUERY_RESPONSE = 709,
|
||||||
SMSG_PET_ACTION_FEEDBACK = 710,
|
SMSG_PET_ACTION_FEEDBACK = 710, // uint8 0x04 - unk, 0x01 - pet dead, 0x2 - no target, 0x3 can't attack
|
||||||
CMSG_CHAR_RENAME = 711,
|
CMSG_CHAR_RENAME = 711,
|
||||||
SMSG_CHAR_RENAME = 712,
|
SMSG_CHAR_RENAME = 712,
|
||||||
CMSG_MOVE_SPLINE_DONE = 713,
|
CMSG_MOVE_SPLINE_DONE = 713,
|
||||||
CMSG_MOVE_FALL_RESET = 714,
|
CMSG_MOVE_FALL_RESET = 714,
|
||||||
SMSG_INSTANCE_SAVE_CREATED = 715,
|
SMSG_INSTANCE_SAVE_CREATED = 715, // You are now saved to this instance
|
||||||
SMSG_RAID_INSTANCE_INFO = 716,
|
SMSG_RAID_INSTANCE_INFO = 716,
|
||||||
CMSG_REQUEST_RAID_INFO = 717,
|
CMSG_REQUEST_RAID_INFO = 717,
|
||||||
CMSG_MOVE_TIME_SKIPPED = 718,
|
CMSG_MOVE_TIME_SKIPPED = 718,
|
||||||
@ -776,49 +783,196 @@ enum OpCodes
|
|||||||
MSG_PVP_LOG_DATA = 736,
|
MSG_PVP_LOG_DATA = 736,
|
||||||
CMSG_LEAVE_BATTLEFIELD = 737,
|
CMSG_LEAVE_BATTLEFIELD = 737,
|
||||||
CMSG_AREA_SPIRIT_HEALER_QUERY = 738,
|
CMSG_AREA_SPIRIT_HEALER_QUERY = 738,
|
||||||
CMSG_AREA_SPIRIT_HEALER_QUEUE = 739,
|
CMSG_AREA_SPIRIT_HEALER_QUEUE = 739, // WTF?
|
||||||
SMSG_AREA_SPIRIT_HEALER_TIME = 740,
|
SMSG_AREA_SPIRIT_HEALER_TIME = 740, // uint64 guid+uint32 time?
|
||||||
CMSG_GM_UNTEACH = 739,
|
//CMSG_GM_UNTEACH = 739, // WTF?
|
||||||
SMSG_HARDWARE_SURVEY_REQUEST = 740,
|
//SMSG_HARDWARE_SURVEY_REQUEST = 740, // WTF?
|
||||||
CMSG_HARDWARE_SURVEY_RESULTS = 741,
|
CMSG_HARDWARE_SURVEY_RESULTS = 741,
|
||||||
SMSG_WARDEN_DATA = 742,
|
SMSG_WARDEN_DATA = 742,
|
||||||
CMSG_WARDEN_DATA = 743,
|
CMSG_WARDEN_DATA = 743,
|
||||||
SMSG_GROUP_JOINED_BATTLEGROUND = 744,
|
SMSG_GROUP_JOINED_BATTLEGROUND = 744, // uint32 0xfffffffc, probably different error messages...
|
||||||
MSG_BATTLEGROUND_PLAYER_POSITIONS = 745,
|
MSG_BATTLEGROUND_PLAYER_POSITIONS = 745,
|
||||||
|
|
||||||
//strange!!
|
|
||||||
//MSG_BINDPOINT_CONFIRM = SMSG_BINDER_CONFIRM,
|
|
||||||
|
|
||||||
//TODO Check double check if the -2 is correct
|
|
||||||
CMSG_PET_STOP_ATTACK = 746,
|
CMSG_PET_STOP_ATTACK = 746,
|
||||||
SMSG_BINDER_CONFIRM = 747,
|
SMSG_BINDER_CONFIRM = 747,
|
||||||
SMSG_BATTLEGROUND_PLAYER_JOINED = 748,
|
SMSG_BATTLEGROUND_PLAYER_JOINED = 748,
|
||||||
SMSG_BATTLEGROUND_PLAYER_LEFT = 749,
|
SMSG_BATTLEGROUND_PLAYER_LEFT = 749,
|
||||||
CMSG_BATTLEMASTER_JOIN = 750,
|
CMSG_BATTLEMASTER_JOIN = 750,
|
||||||
|
SMSG_ADDON_INFO = 751,
|
||||||
SMSG_ADDON_INFO = 753-2,
|
CMSG_PET_UNLEARN = 752,
|
||||||
CMSG_PET_UNLEARN = 754-2,
|
SMSG_PET_UNLEARN_CONFIRM = 753,
|
||||||
SMSG_PET_UNLEARN_CONFIRM = 755-2,
|
SMSG_PARTY_MEMBER_STATS_FULL = 754,
|
||||||
SMSG_PARTY_MEMBER_STATS_FULL = 756-2,
|
CMSG_PET_SPELL_AUTOCAST = 755,
|
||||||
CMSG_PET_SPELL_AUTOCAST = 757-2,
|
SMSG_WEATHER = 756,
|
||||||
SMSG_WEATHER = 758-2,
|
SMSG_PLAY_TIME_WARNING = 757,
|
||||||
SMSG_PLAY_TIME_WARNING = 759-2,
|
SMSG_MINIGAME_SETUP = 758,
|
||||||
SMSG_MINIGAME_SETUP = 760-2,
|
SMSG_MINIGAME_STATE = 759,
|
||||||
SMSG_MINIGAME_STATE = 761-2,
|
CMSG_MINIGAME_MOVE = 760,
|
||||||
CMSG_MINIGAME_MOVE = 762-2,
|
SMSG_MINIGAME_MOVE_FAILED = 761,
|
||||||
SMSG_MINIGAME_MOVE_FAILED = 763-2,
|
SMSG_INSTANCE_RESET_SCHEDULED = 762, // WARNING! %s is scheduled to reset in %u minutes! and other messages...
|
||||||
CMSG_GUILD_CHANGEINFO = 764-2,
|
SMSG_COMPRESSED_MOVE = 763,
|
||||||
|
CMSG_GUILD_CHANGEINFO = 764,
|
||||||
|
SMSG_UNKNOWN_765 = 765, // Trial accounts can not 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_RUN_BACK_SPEED = 767, // GUID + float speed, run back speed
|
||||||
|
SMSG_SET_SWIM_SPEED = 768, // GUID + float speed, swim and swim back speed
|
||||||
|
// 769
|
||||||
|
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_UNKNOWN_772 = 772, // packed GUID
|
||||||
|
SMSG_UNKNOWN_773 = 773, // set movement flag 0x20000000
|
||||||
|
SMSG_UNKNOWN_774 = 774, // stop effect of 773 opcode
|
||||||
|
SMSG_UNKNOWN_775 = 775, // movement related, looks like hover, movement flag 0x40000000, we can't jump if we are lands
|
||||||
|
SMSG_UNKNOWN_776 = 776, // stop effect of 775 opcode
|
||||||
|
SMSG_MOVE_SET_WATERWALK = 777, // packed GUID, set movement flag 0x10000000, waterwalking...
|
||||||
|
SMSG_MOVE_STOP_WATERWALK = 778, // packed GUID, stop effect of 777 opcode
|
||||||
|
SMSG_UNKNOWN_779 = 779, // packed guid, change animation to swim/fly like
|
||||||
|
SMSG_UNKNOWN_780 = 780, // packed guid
|
||||||
|
SMSG_MOVE_STOP_WALK = 781, // packed guid, remove 0x100 movement flag (walk)
|
||||||
|
SMSG_MOVE_START_WALK = 782, // set 0x100 movement flag (walk)
|
||||||
|
// 783
|
||||||
|
// 784
|
||||||
|
// 785
|
||||||
CMSG_ACTIVATETAXI_FAR = 786,
|
CMSG_ACTIVATETAXI_FAR = 786,
|
||||||
//griphon related = 786
|
// 787 causes client crash
|
||||||
|
// 788
|
||||||
|
// 789
|
||||||
|
// 790
|
||||||
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
|
||||||
// unofficial opcodes:
|
SMSG_UNKNOWN_794 = 794, // packed guid, movement related, set 0x1000 movement flag, all speed to 0, except turn rate
|
||||||
SMSG_OUTDOORPVP_NOTIFY = 0x33b, // 827
|
// 795
|
||||||
|
SMSG_UNKNOWN_796 = 796, // uint64, guid?
|
||||||
|
CMSG_RESET_INSTANCES = 797, // reset instances, empty
|
||||||
|
SMSG_RESET_INSTANCES_RESULT = 798, // uint32 mapid, chat message: %s has been reset.
|
||||||
|
// 799
|
||||||
|
SMSG_UNKNOWN_800 = 800, // uint32 mapid, instance related
|
||||||
|
MSG_RAID_ICON_TARGET = 801, // uint8+uint8+uint64 guid
|
||||||
|
MSG_RAID_READY_CHECK = 802, // uint64+uint8
|
||||||
|
// 803
|
||||||
|
SMSG_AI_UNKNOWN = 804, // GUID + uint32, looks like SMSG_AI_REACTION
|
||||||
|
SMSG_UNKNOWN_805 = 805, // uint32 unk + x, y, z
|
||||||
|
// 806
|
||||||
|
// 807
|
||||||
|
SMSG_GM_SURVEY_REQUEST = 808, // uint32, 1 - causes client get ticket request, 2 - hide, 3 - show
|
||||||
|
MSG_SET_DUNGEON_DIFFICULTY = 809, // uint32+uint32+uint32
|
||||||
|
CMSG_GM_SURVEY_RESULTS = 810,
|
||||||
|
SMSG_UNKNOWN_811 = 811, // uint32, 0x0, SMSG_INSTANCE_RESET_ACTIVATE ?
|
||||||
|
// 812
|
||||||
|
// 813
|
||||||
|
// 814
|
||||||
|
SMSG_UNKNOWN_815 = 815, // spell related, uint64 guid + spellid
|
||||||
|
SMSG_UNKNOWN_816 = 816, // spell related, uint64 guid + spellid + uint32 unk + uint64 guid (target?)
|
||||||
|
// 817
|
||||||
|
SMSG_UNKNOWN_818 = 818, // 2.0.8, received before server MOTD, strange regexp sequence, looks like anti spam filter for chat messages...
|
||||||
|
// 819
|
||||||
|
// 820
|
||||||
|
// 821
|
||||||
|
// 822
|
||||||
|
// 823
|
||||||
|
// 824
|
||||||
|
// 825
|
||||||
|
SMSG_OUTDOORPVP_NOTIFY = 826, // looks like chat packets
|
||||||
|
SMSG_OUTDOORPVP_NOTIFY2 = 827, // may be it's changed to 826?
|
||||||
|
// 828
|
||||||
|
SMSG_MOTD = 829, // server MOTD message, uint32 + message
|
||||||
|
// 830
|
||||||
|
// 831
|
||||||
|
// 832
|
||||||
|
SMSG_UNKNOWN_833 = 833, // teleport
|
||||||
|
SMSG_UNKNOWN_834 = 834, // teleport
|
||||||
|
SMSG_FLY_MODE_START = 835, // packed guid + uint32, start fly
|
||||||
|
SMSG_FLY_MODE_STOP = 836, // packed guid + uint32, stop fly
|
||||||
|
CMSG_MOVE_FLY_MODE_CHANGE_ACK = 837, // movement related, fly on/off ack
|
||||||
|
CMSG_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
|
||||||
|
// 840
|
||||||
|
SMSG_ARENA_TEAM_COMMAND_RESULT = 841, // uint32(5)+uint16(0)+uint32(9) You not in arena team that size
|
||||||
|
// 842
|
||||||
|
CMSG_ARENA_TEAM_QUERY = 843,
|
||||||
|
SMSG_ARENA_TEAM_QUERY_RESPONSE = 844,
|
||||||
|
CMSG_ARENA_TEAM_ROSTER = 845,
|
||||||
|
SMSG_ARENA_TEAM_ROSTER = 846,
|
||||||
|
CMSG_ARENA_TEAM_ADD_MEMBER = 847,
|
||||||
|
SMSG_ARENA_TEAM_INVITE = 848,
|
||||||
|
CMSG_ARENA_TEAM_INVITE_ACCEPT = 849,
|
||||||
|
CMSG_ARENA_TEAM_INVITE_DECLINE = 850,
|
||||||
|
CMSG_ARENA_TEAM_LEAVE = 851,
|
||||||
|
CMSG_ARENA_TEAM_REMOVE_FROM_TEAM = 852,
|
||||||
|
CMSG_ARENA_TEAM_DISBAND = 853,
|
||||||
|
CMSG_ARENA_TEAM_PROMOTE_TO_CAPTAIN = 854, // also must be demote opcode...
|
||||||
|
SMSG_UNKNOWN_855 = 855, // guild related...
|
||||||
|
// 856
|
||||||
|
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
|
||||||
|
SMSG_ARENA_TEAM_STATS = 859,
|
||||||
|
CMSG_LFG_SET_AUTOJOIN = 860,
|
||||||
|
CMSG_LFG_UNSET_AUTOJOIN = 861,
|
||||||
|
CMSG_LFM_SET_AUTOADD = 862,
|
||||||
|
CMSG_LFM_UNSET_AUTOADD = 863,
|
||||||
|
CMSG_LFG_INVITE_ACCEPT = 864,
|
||||||
|
CMSG_LFG_INVITE_CANCEL = 865,
|
||||||
|
// 866
|
||||||
|
CMSG_LOOKING_FOR_GROUP_CLEAR = 867,
|
||||||
|
CMSG_SET_LOOKING_FOR_NONE = 868,
|
||||||
|
CMSG_SET_LOOKING_FOR_MORE = 869,
|
||||||
|
CMSG_SET_COMMENTARY = 870,
|
||||||
|
SMSG_LFG_871 = 871, // Matchmaking timed out.
|
||||||
|
SMSG_LFG_872 = 872, // Matchmaking timed out waiting for other player.
|
||||||
|
SMSG_LFG_873 = 873, // Group no longer available.
|
||||||
|
SMSG_LFG_874 = 974, // Matched Player(s) have gone offline.
|
||||||
|
// 875
|
||||||
|
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_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_INVITE = 880, // show invite dialog: The LFG system has matched you to a group for %s.
|
||||||
|
SMSG_LFG_881 = 881, // The LFG system is waiting to complete match for %s.
|
||||||
|
// 882
|
||||||
|
SMSG_CHANGE_TITLE = 883, // uint32 title_id, causes message and visual effect
|
||||||
|
CMSG_CHOOSE_TITLE = 884, // uint32 title_id
|
||||||
|
CMSG_DISMOUNT = 885, // /dismount command
|
||||||
|
SMSG_ARENA_TEAM_UNK = 886,
|
||||||
|
MSG_INSPECT_ARENA_STATS = 887,
|
||||||
|
SMSG_SH_POSITION = 888, // spirit healer position, map/x/y/z, at player death...
|
||||||
|
CMSG_CANCEL_TEMP_ITEM_ENCHANTMENT = 889, // cancel temporary item enchantment
|
||||||
|
// 890
|
||||||
|
// 891
|
||||||
|
// 892
|
||||||
|
// 893
|
||||||
|
SMSG_MOVE_SET_FLY_SPEED = 894, // all fly speed, packed guid, uint32 movement_flags, time, x,y,z,o,unk,speed...
|
||||||
|
// 895
|
||||||
|
SMSG_MOVE_SET_FLY_BACK_SPEED = 896,
|
||||||
|
SMSG_FORCE_FLY_SPEED_CHANGE = 897, // packed guid, uint32, speed
|
||||||
|
CMSG_FORCE_FLY_SPEED_CHANGE_ACK = 898,
|
||||||
|
SMSG_FORCE_FLY_BACK_SPEED_CHANGE = 899,
|
||||||
|
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_BACK_SPEED2 = 902, // same as 896, strange,
|
||||||
|
// 903
|
||||||
|
// 904 SMSG_FLIGHT_SPLINE_SYNC?
|
||||||
|
// 905
|
||||||
|
// 906
|
||||||
|
SMSG_REALM_STATE_RESPONSE = 907, // response to 908 opcode, 4 x uint32 + uint8
|
||||||
|
CMSG_REALM_STATE_REQUEST = 908, // realm related, uint32+uint32+3*(uint16+uint8), appears at select character screen, uint32 0xFFFFFFFF
|
||||||
|
CMSG_MOVE_SHIP_909 = 909, // movement related, transport related(ships)
|
||||||
|
CMSG_GROUP_PROMOTE = 910, // make main-tank / main-assistant
|
||||||
|
// 911
|
||||||
|
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
|
||||||
|
// 914
|
||||||
|
// 915
|
||||||
|
// 916
|
||||||
|
// 917
|
||||||
|
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.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//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
|
||||||
|
|
||||||
|
/// Results of friend related commands
|
||||||
enum FriendsResult
|
enum FriendsResult
|
||||||
{
|
{
|
||||||
FRIEND_DB_ERROR = 0x00,
|
FRIEND_DB_ERROR = 0x00,
|
||||||
@ -840,6 +994,7 @@ enum FriendsResult
|
|||||||
FRIEND_IGNORE_REMOVED = 0x10
|
FRIEND_IGNORE_REMOVED = 0x10
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Non Player Character flags
|
||||||
enum NPCFlags
|
enum NPCFlags
|
||||||
{
|
{
|
||||||
UNIT_NPC_FLAG_NONE = 0,
|
UNIT_NPC_FLAG_NONE = 0,
|
||||||
@ -849,24 +1004,15 @@ enum NPCFlags
|
|||||||
UNIT_NPC_FLAG_TAXIVENDOR = 8,
|
UNIT_NPC_FLAG_TAXIVENDOR = 8,
|
||||||
UNIT_NPC_FLAG_TRAINER = 16,
|
UNIT_NPC_FLAG_TRAINER = 16,
|
||||||
UNIT_NPC_FLAG_SPIRITHEALER = 32,
|
UNIT_NPC_FLAG_SPIRITHEALER = 32,
|
||||||
UNIT_NPC_FLAG_GUARD = 64, //UQ1: ??? We can use as guard flag?
|
UNIT_NPC_FLAG_GUARD = 64, //UQ1: ??? We can use as guard flag?, used by blizz for BattleGround spirit guides... (entry 13116 and 13117)
|
||||||
UNIT_NPC_FLAG_INNKEEPER = 128,
|
UNIT_NPC_FLAG_INNKEEPER = 128,
|
||||||
UNIT_NPC_FLAG_BANKER = 256,
|
UNIT_NPC_FLAG_BANKER = 256,
|
||||||
UNIT_NPC_FLAG_PETITIONER = 512,
|
UNIT_NPC_FLAG_PETITIONER = 512, // 1024+512 = guild petitions, 512 = arena team petitions
|
||||||
UNIT_NPC_FLAG_TABARDVENDOR = 1024,
|
UNIT_NPC_FLAG_TABARDVENDOR = 1024,
|
||||||
UNIT_NPC_FLAG_BATTLEFIELDPERSON = 2048,
|
UNIT_NPC_FLAG_BATTLEFIELDPERSON = 2048,
|
||||||
UNIT_NPC_FLAG_AUCTIONEER = 4096,
|
UNIT_NPC_FLAG_AUCTIONEER = 4096,
|
||||||
UNIT_NPC_FLAG_STABLE = 8192,
|
UNIT_NPC_FLAG_STABLE = 8192,
|
||||||
UNIT_NPC_FLAG_ARMORER = 16384,
|
UNIT_NPC_FLAG_ARMORER = 16384,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
uint64 PlayerGUID;
|
|
||||||
unsigned char Status;
|
|
||||||
|
|
||||||
uint32 Area;
|
|
||||||
uint32 Level;
|
|
||||||
uint32 Class;
|
|
||||||
} FriendStr ;
|
|
||||||
#endif
|
#endif
|
||||||
|
/// @}
|
||||||
|
|||||||
@ -5,7 +5,6 @@
|
|||||||
#include "Opcodes.h"
|
#include "Opcodes.h"
|
||||||
#include "SharedDefines.h"
|
#include "SharedDefines.h"
|
||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "NameTables.h"
|
|
||||||
#include "DefScript/DefScript.h"
|
#include "DefScript/DefScript.h"
|
||||||
#include "WorldSession.h"
|
#include "WorldSession.h"
|
||||||
|
|
||||||
|
|||||||
@ -23,357 +23,339 @@
|
|||||||
|
|
||||||
enum EObjectFields
|
enum EObjectFields
|
||||||
{
|
{
|
||||||
OBJECT_FIELD_GUID = 0x0000,
|
OBJECT_FIELD_GUID = 0x00, // Size:2
|
||||||
OBJECT_FIELD_TYPE = 0x0002,
|
OBJECT_FIELD_TYPE = 0x02, // Size:1
|
||||||
OBJECT_FIELD_ENTRY = 0x0003,
|
OBJECT_FIELD_ENTRY = 0x03, // Size:1
|
||||||
OBJECT_FIELD_SCALE_X = 0x0004,
|
OBJECT_FIELD_SCALE_X = 0x04, // Size:1
|
||||||
OBJECT_FIELD_PADDING = 0x0005,
|
OBJECT_FIELD_PADDING = 0x05, // Size:1
|
||||||
OBJECT_END = OBJECT_FIELD_PADDING + 1,
|
OBJECT_END = 0x06,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EItemFields
|
enum EItemFields
|
||||||
{
|
{
|
||||||
ITEM_FIELD_OWNER = OBJECT_END + 0x0000,
|
ITEM_FIELD_OWNER = OBJECT_END + 0x00, // Size:2
|
||||||
ITEM_FIELD_CONTAINED = OBJECT_END + 0x0002,
|
ITEM_FIELD_CONTAINED = OBJECT_END + 0x02, // Size:2
|
||||||
ITEM_FIELD_CREATOR = OBJECT_END + 0x0004,
|
ITEM_FIELD_CREATOR = OBJECT_END + 0x04, // Size:2
|
||||||
ITEM_FIELD_GIFTCREATOR = OBJECT_END + 0x0006,
|
ITEM_FIELD_GIFTCREATOR = OBJECT_END + 0x06, // Size:2
|
||||||
ITEM_FIELD_STACK_COUNT = OBJECT_END + 0x0008,
|
ITEM_FIELD_STACK_COUNT = OBJECT_END + 0x08, // Size:1
|
||||||
ITEM_FIELD_DURATION = OBJECT_END + 0x0009,
|
ITEM_FIELD_DURATION = OBJECT_END + 0x09, // Size:1
|
||||||
ITEM_FIELD_SPELL_CHARGES = OBJECT_END + 0x000A,
|
ITEM_FIELD_SPELL_CHARGES = OBJECT_END + 0x0A, // Size:5
|
||||||
ITEM_FIELD_FLAGS = OBJECT_END + 0x000F,
|
ITEM_FIELD_SPELL_CHARGES_01 = OBJECT_END + 0x0B,
|
||||||
ITEM_FIELD_ENCHANTMENT = OBJECT_END + 0x0010,
|
ITEM_FIELD_SPELL_CHARGES_02 = OBJECT_END + 0x0C,
|
||||||
ITEM_FIELD_PROPERTY_SEED = OBJECT_END + 0x0025,
|
ITEM_FIELD_SPELL_CHARGES_03 = OBJECT_END + 0x0D,
|
||||||
ITEM_FIELD_RANDOM_PROPERTIES_ID = OBJECT_END + 0x0026,
|
ITEM_FIELD_SPELL_CHARGES_04 = OBJECT_END + 0x0E,
|
||||||
ITEM_FIELD_ITEM_TEXT_ID = OBJECT_END + 0x0027,
|
ITEM_FIELD_FLAGS = OBJECT_END + 0x0F, // Size:1
|
||||||
ITEM_FIELD_DURABILITY = OBJECT_END + 0x0028,
|
ITEM_FIELD_ENCHANTMENT = OBJECT_END + 0x10, // count=33 This is 21 past
|
||||||
ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x0029,
|
ITEM_FIELD_SOCKETS_ENCHANTMENT = OBJECT_END + 0x25, // + (3 sockets + 1 bonus) * 3 uint32 = 12
|
||||||
ITEM_END = ITEM_FIELD_MAXDURABILITY + 1,
|
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,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EContainerFields
|
enum EContainerFields
|
||||||
{
|
{
|
||||||
CONTAINER_FIELD_NUM_SLOTS = ITEM_END + 0x0000,
|
CONTAINER_FIELD_NUM_SLOTS = ITEM_END + 0x00, // Size:1
|
||||||
CONTAINER_ALIGN_PAD = ITEM_END + 0x0001,
|
CONTAINER_ALIGN_PAD = ITEM_END + 0x01, // Size:1
|
||||||
CONTAINER_FIELD_SLOT_1 = ITEM_END + 0x0002,
|
CONTAINER_FIELD_SLOT_1 = ITEM_END + 0x02, // count=72
|
||||||
CONTAINER_END = CONTAINER_FIELD_SLOT_1 + 56,
|
CONTAINER_FIELD_SLOT_LAST = ITEM_END + 0x49,
|
||||||
|
CONTAINER_END = ITEM_END + 0x4A,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EUnitFields
|
enum EUnitFields
|
||||||
{
|
{
|
||||||
UNIT_FIELD_CHARM = OBJECT_END + 0x0000,
|
UNIT_FIELD_CHARM = 0x00 + OBJECT_END, // Size:2
|
||||||
UNIT_FIELD_SUMMON = OBJECT_END + 0x0002,
|
UNIT_FIELD_SUMMON = 0x02 + OBJECT_END, // Size:2
|
||||||
UNIT_FIELD_CHARMEDBY = OBJECT_END + 0x0004,
|
UNIT_FIELD_CHARMEDBY = 0x04 + OBJECT_END, // Size:2
|
||||||
UNIT_FIELD_SUMMONEDBY = OBJECT_END + 0x0006,
|
UNIT_FIELD_SUMMONEDBY = 0x06 + OBJECT_END, // Size:2
|
||||||
UNIT_FIELD_CREATEDBY = OBJECT_END + 0x0008,
|
UNIT_FIELD_CREATEDBY = 0x08 + OBJECT_END, // Size:2
|
||||||
UNIT_FIELD_TARGET = OBJECT_END + 0x000A,
|
UNIT_FIELD_TARGET = 0x0A + OBJECT_END, // Size:2
|
||||||
UNIT_FIELD_PERSUADED = OBJECT_END + 0x000C,
|
UNIT_FIELD_PERSUADED = 0x0C + OBJECT_END, // Size:2
|
||||||
UNIT_FIELD_CHANNEL_OBJECT = OBJECT_END + 0x000E,
|
UNIT_FIELD_CHANNEL_OBJECT = 0x0E + OBJECT_END, // Size:2
|
||||||
UNIT_FIELD_HEALTH = OBJECT_END + 0x0010,
|
UNIT_FIELD_HEALTH = 0x10 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_POWER1 = OBJECT_END + 0x0011,
|
UNIT_FIELD_POWER1 = 0x11 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_POWER2 = OBJECT_END + 0x0012,
|
UNIT_FIELD_POWER2 = 0x12 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_POWER3 = OBJECT_END + 0x0013,
|
UNIT_FIELD_POWER3 = 0x13 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_POWER4 = OBJECT_END + 0x0014,
|
UNIT_FIELD_POWER4 = 0x14 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_POWER5 = OBJECT_END + 0x0015,
|
UNIT_FIELD_POWER5 = 0x15 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_MAXHEALTH = OBJECT_END + 0x0016,
|
UNIT_FIELD_MAXHEALTH = 0x16 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_MAXPOWER1 = OBJECT_END + 0x0017,
|
UNIT_FIELD_MAXPOWER1 = 0x17 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_MAXPOWER2 = OBJECT_END + 0x0018,
|
UNIT_FIELD_MAXPOWER2 = 0x18 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_MAXPOWER3 = OBJECT_END + 0x0019,
|
UNIT_FIELD_MAXPOWER3 = 0x19 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_MAXPOWER4 = OBJECT_END + 0x001A,
|
UNIT_FIELD_MAXPOWER4 = 0x1A + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_MAXPOWER5 = OBJECT_END + 0x001B,
|
UNIT_FIELD_MAXPOWER5 = 0x1B + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_LEVEL = OBJECT_END + 0x001C,
|
UNIT_FIELD_LEVEL = 0x1C + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_FACTIONTEMPLATE = OBJECT_END + 0x001D,
|
UNIT_FIELD_FACTIONTEMPLATE = 0x1D + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_BYTES_0 = OBJECT_END + 0x001E,
|
UNIT_FIELD_BYTES_0 = 0x1E + OBJECT_END, // Size:1
|
||||||
UNIT_VIRTUAL_ITEM_SLOT_DISPLAY = OBJECT_END + 0x001F,
|
UNIT_VIRTUAL_ITEM_SLOT_DISPLAY = 0x1F + OBJECT_END, // Size:3
|
||||||
UNIT_VIRTUAL_ITEM_INFO = OBJECT_END + 0x0022,
|
UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_01 = 0x20 + OBJECT_END,
|
||||||
UNIT_FIELD_FLAGS = OBJECT_END + 0x0028,
|
UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_02 = 0x21 + OBJECT_END,
|
||||||
UNIT_FIELD_AURA = OBJECT_END + 0x0029,
|
UNIT_VIRTUAL_ITEM_INFO = 0x22 + OBJECT_END, // Size:6
|
||||||
UNIT_FIELD_AURAFLAGS = OBJECT_END + 0x0059,
|
UNIT_VIRTUAL_ITEM_INFO_01 = 0x23 + OBJECT_END,
|
||||||
UNIT_FIELD_AURALEVELS = OBJECT_END + 0x005F,
|
UNIT_VIRTUAL_ITEM_INFO_02 = 0x24 + OBJECT_END,
|
||||||
UNIT_FIELD_AURAAPPLICATIONS = OBJECT_END + 0x006B,
|
UNIT_VIRTUAL_ITEM_INFO_03 = 0x25 + OBJECT_END,
|
||||||
UNIT_FIELD_AURASTATE = OBJECT_END + 0x0077,
|
UNIT_VIRTUAL_ITEM_INFO_04 = 0x26 + OBJECT_END,
|
||||||
UNIT_FIELD_BASEATTACKTIME = OBJECT_END + 0x0078,
|
UNIT_VIRTUAL_ITEM_INFO_05 = 0x27 + OBJECT_END,
|
||||||
UNIT_FIELD_RANGEDATTACKTIME = OBJECT_END + 0x007A,
|
UNIT_FIELD_FLAGS = 0x28 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_BOUNDINGRADIUS = OBJECT_END + 0x007B,
|
UNIT_FIELD_FLAGS_2 = 0x29 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_COMBATREACH = OBJECT_END + 0x007C,
|
UNIT_FIELD_AURA = 0x2A + OBJECT_END, // Size:56
|
||||||
UNIT_FIELD_DISPLAYID = OBJECT_END + 0x007D,
|
UNIT_FIELD_AURA_LAST = 0x63 + OBJECT_END,
|
||||||
UNIT_FIELD_NATIVEDISPLAYID = OBJECT_END + 0x007E,
|
UNIT_FIELD_AURAFLAGS = 0x62 + OBJECT_END, // Size:7
|
||||||
UNIT_FIELD_MOUNTDISPLAYID = OBJECT_END + 0x007F,
|
UNIT_FIELD_AURAFLAGS_01 = 0x63 + OBJECT_END,
|
||||||
UNIT_FIELD_MINDAMAGE = OBJECT_END + 0x0080,
|
UNIT_FIELD_AURAFLAGS_02 = 0x64 + OBJECT_END,
|
||||||
UNIT_FIELD_MAXDAMAGE = OBJECT_END + 0x0081,
|
UNIT_FIELD_AURAFLAGS_03 = 0x65 + OBJECT_END,
|
||||||
UNIT_FIELD_MINOFFHANDDAMAGE = OBJECT_END + 0x0082,
|
UNIT_FIELD_AURAFLAGS_04 = 0x66 + OBJECT_END,
|
||||||
UNIT_FIELD_MAXOFFHANDDAMAGE = OBJECT_END + 0x0083,
|
UNIT_FIELD_AURAFLAGS_05 = 0x67 + OBJECT_END,
|
||||||
UNIT_FIELD_BYTES_1 = OBJECT_END + 0x0084,
|
UNIT_FIELD_AURAFLAGS_06 = 0x68 + OBJECT_END,
|
||||||
UNIT_FIELD_PETNUMBER = OBJECT_END + 0x0085,
|
UNIT_FIELD_AURALEVELS = 0x69 + OBJECT_END, // Size:14
|
||||||
UNIT_FIELD_PET_NAME_TIMESTAMP = OBJECT_END + 0x0086,
|
UNIT_FIELD_AURALEVELS_LAST = 0x76 + OBJECT_END,
|
||||||
UNIT_FIELD_PETEXPERIENCE = OBJECT_END + 0x0087,
|
UNIT_FIELD_AURAAPPLICATIONS = 0x77 + OBJECT_END, // Size:14
|
||||||
UNIT_FIELD_PETNEXTLEVELEXP = OBJECT_END + 0x0088,
|
UNIT_FIELD_AURAAPPLICATIONS_LAST = 0x84 + OBJECT_END,
|
||||||
UNIT_DYNAMIC_FLAGS = OBJECT_END + 0x0089,
|
UNIT_FIELD_AURASTATE = 0x85 + OBJECT_END, // Size:1
|
||||||
UNIT_CHANNEL_SPELL = OBJECT_END + 0x008A,
|
UNIT_FIELD_BASEATTACKTIME = 0x86 + OBJECT_END, // Size:2
|
||||||
UNIT_MOD_CAST_SPEED = OBJECT_END + 0x008B,
|
UNIT_FIELD_BASEATTACKTIME_01 = 0x87 + OBJECT_END,
|
||||||
UNIT_CREATED_BY_SPELL = OBJECT_END + 0x008C,
|
UNIT_FIELD_OFFHANDATTACKTIME = 0x87 + OBJECT_END, // Size:2
|
||||||
UNIT_NPC_FLAGS = OBJECT_END + 0x008D,
|
UNIT_FIELD_RANGEDATTACKTIME = 0x88 + OBJECT_END, // Size:1
|
||||||
UNIT_NPC_EMOTESTATE = OBJECT_END + 0x008E,
|
UNIT_FIELD_BOUNDINGRADIUS = 0x89 + OBJECT_END, // Size:1
|
||||||
UNIT_TRAINING_POINTS = OBJECT_END + 0x008F,
|
UNIT_FIELD_COMBATREACH = 0x8A + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_STR = OBJECT_END + 0x0090,
|
UNIT_FIELD_DISPLAYID = 0x8B + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_AGILITY = OBJECT_END + 0x0091,
|
UNIT_FIELD_NATIVEDISPLAYID = 0x8C + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_STAMINA = OBJECT_END + 0x0092,
|
UNIT_FIELD_MOUNTDISPLAYID = 0x8D + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_IQ = OBJECT_END + 0x0093,
|
UNIT_FIELD_MINDAMAGE = 0x8E + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_SPIRIT = OBJECT_END + 0x0094,
|
UNIT_FIELD_MAXDAMAGE = 0x8F + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_RESISTANCES = OBJECT_END + 0x0095,
|
UNIT_FIELD_MINOFFHANDDAMAGE = 0x90 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_BASE_MANA = OBJECT_END + 0x009C,
|
UNIT_FIELD_MAXOFFHANDDAMAGE = 0x91 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_BASE_HEALTH = OBJECT_END + 0x009D,
|
UNIT_FIELD_BYTES_1 = 0x92 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_BYTES_2 = OBJECT_END + 0x009E,
|
UNIT_FIELD_PETNUMBER = 0x93 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_ATTACK_POWER = OBJECT_END + 0x009F,
|
UNIT_FIELD_PET_NAME_TIMESTAMP = 0x94 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_ATTACK_POWER_MODS = OBJECT_END + 0x00A0,
|
UNIT_FIELD_PETEXPERIENCE = 0x95 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x00A1,
|
UNIT_FIELD_PETNEXTLEVELEXP = 0x96 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_RANGED_ATTACK_POWER = OBJECT_END + 0x00A2,
|
UNIT_DYNAMIC_FLAGS = 0x97 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_RANGED_ATTACK_POWER_MODS = OBJECT_END + 0x00A3,
|
UNIT_CHANNEL_SPELL = 0x98 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x00A4,
|
UNIT_MOD_CAST_SPEED = 0x99 + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_MINRANGEDDAMAGE = OBJECT_END + 0x00A5,
|
UNIT_CREATED_BY_SPELL = 0x9A + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_MAXRANGEDDAMAGE = OBJECT_END + 0x00A6,
|
UNIT_NPC_FLAGS = 0x9B + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_POWER_COST_MODIFIER = OBJECT_END + 0x00A7,
|
UNIT_NPC_EMOTESTATE = 0x9C + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_POWER_COST_MULTIPLIER = OBJECT_END + 0x00AE,
|
UNIT_TRAINING_POINTS = 0x9D + OBJECT_END, // Size:1
|
||||||
UNIT_FIELD_PADDING = OBJECT_END + 0x00B5,
|
UNIT_FIELD_STAT0 = 0x9E + OBJECT_END, // Size:1
|
||||||
UNIT_END = UNIT_FIELD_PADDING + 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,
|
||||||
|
|
||||||
enum EPlayerFields
|
PLAYER_DUEL_ARBITER = 0x00 + UNIT_END, // Size:2
|
||||||
{
|
PLAYER_FLAGS = 0x02 + UNIT_END, // Size:1
|
||||||
PLAYER_DUEL_ARBITER = UNIT_END + 0x0000,
|
PLAYER_GUILDID = 0x03 + UNIT_END, // Size:1
|
||||||
PLAYER_FLAGS = UNIT_END + 0x0002,
|
PLAYER_GUILDRANK = 0x04 + UNIT_END, // Size:1
|
||||||
PLAYER_GUILDID = UNIT_END + 0x0003,
|
PLAYER_BYTES = 0x05 + UNIT_END, // Size:1
|
||||||
PLAYER_GUILDRANK = UNIT_END + 0x0004,
|
PLAYER_BYTES_2 = 0x06 + UNIT_END, // Size:1
|
||||||
PLAYER_BYTES = UNIT_END + 0x0005,
|
PLAYER_BYTES_3 = 0x07 + UNIT_END, // Size:1
|
||||||
PLAYER_BYTES_2 = UNIT_END + 0x0006,
|
PLAYER_DUEL_TEAM = 0x08 + UNIT_END, // Size:1
|
||||||
PLAYER_BYTES_3 = UNIT_END + 0x0007,
|
PLAYER_GUILD_TIMESTAMP = 0x09 + UNIT_END, // Size:1
|
||||||
PLAYER_DUEL_TEAM = UNIT_END + 0x0008,
|
PLAYER_QUEST_LOG_1_1 = 0x0A + UNIT_END, // count = 25
|
||||||
PLAYER_GUILD_TIMESTAMP = UNIT_END + 0x0009,
|
PLAYER_QUEST_LOG_1_2 = 0x0B + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_1_1 = UNIT_END + 0x000A,
|
PLAYER_QUEST_LOG_1_3 = 0x0C + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_1_2 = UNIT_END + 0x000B,
|
PLAYER_QUEST_LOG_LAST_1 = 0x52 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_2_1 = UNIT_END + 0x000D,
|
PLAYER_QUEST_LOG_LAST_2 = 0x53 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_2_2 = UNIT_END + 0x000E,
|
PLAYER_QUEST_LOG_LAST_3 = 0x54 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_3_1 = UNIT_END + 0x0010,
|
PLAYER_VISIBLE_ITEM_1_CREATOR = 0x55 + UNIT_END, // Size:2, count = 19
|
||||||
PLAYER_QUEST_LOG_3_2 = UNIT_END + 0x0011,
|
PLAYER_VISIBLE_ITEM_1_0 = 0x57 + UNIT_END, // Size:12
|
||||||
PLAYER_QUEST_LOG_4_1 = UNIT_END + 0x0013,
|
PLAYER_VISIBLE_ITEM_1_PROPERTIES = 0x63 + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_4_2 = UNIT_END + 0x0014,
|
PLAYER_VISIBLE_ITEM_1_PAD = 0x64 + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_5_1 = UNIT_END + 0x0016,
|
PLAYER_VISIBLE_ITEM_LAST_CREATOR = 0x175 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_5_2 = UNIT_END + 0x0017,
|
PLAYER_VISIBLE_ITEM_LAST_0 = 0x177 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_6_1 = UNIT_END + 0x0019,
|
PLAYER_VISIBLE_ITEM_LAST_PROPERTIES = 0x183 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_6_2 = UNIT_END + 0x001A,
|
PLAYER_VISIBLE_ITEM_LAST_PAD = 0x184 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_7_1 = UNIT_END + 0x001C,
|
PLAYER_CHOSEN_TITLE = 0x185 + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_7_2 = UNIT_END + 0x001D,
|
PLAYER_FIELD_INV_SLOT_HEAD = 0x186 + UNIT_END, // Size:46
|
||||||
PLAYER_QUEST_LOG_8_1 = UNIT_END + 0x001F,
|
PLAYER_FIELD_PACK_SLOT_1 = 0x1B4 + UNIT_END, // Size:32
|
||||||
PLAYER_QUEST_LOG_8_2 = UNIT_END + 0x0020,
|
PLAYER_FIELD_PACK_SLOT_LAST = 0x1D3 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_9_1 = UNIT_END + 0x0022,
|
PLAYER_FIELD_BANK_SLOT_1 = 0x1D4 + UNIT_END, // Size:56
|
||||||
PLAYER_QUEST_LOG_9_2 = UNIT_END + 0x0023,
|
PLAYER_FIELD_BANK_SLOT_LAST = 0x20B + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_10_1 = UNIT_END + 0x0025,
|
PLAYER_FIELD_BANKBAG_SLOT_1 = 0x20C + UNIT_END, // Size:14
|
||||||
PLAYER_QUEST_LOG_10_2 = UNIT_END + 0x0026,
|
PLAYER_FIELD_BANKBAG_SLOT_LAST = 0x219 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_11_1 = UNIT_END + 0x0028,
|
PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = 0x21A + UNIT_END, // Size:24
|
||||||
PLAYER_QUEST_LOG_11_2 = UNIT_END + 0x0029,
|
PLAYER_FIELD_VENDORBUYBACK_SLOT_LAST = 0x231 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_12_1 = UNIT_END + 0x002B,
|
PLAYER_FIELD_KEYRING_SLOT_1 = 0x232 + UNIT_END, // Size:64
|
||||||
PLAYER_QUEST_LOG_12_2 = UNIT_END + 0x002C,
|
PLAYER_FIELD_KEYRING_SLOT_LAST = 0x271 + UNIT_END,
|
||||||
PLAYER_QUEST_LOG_13_1 = UNIT_END + 0x002E,
|
PLAYER_FARSIGHT = 0x272 + UNIT_END, // Size:2
|
||||||
PLAYER_QUEST_LOG_13_2 = UNIT_END + 0x002F,
|
PLAYER_FIELD_COMBO_TARGET = 0x274 + UNIT_END, // Size:2
|
||||||
PLAYER_QUEST_LOG_14_1 = UNIT_END + 0x0031,
|
PLAYER_FIELD_KNOWN_TITLES = 0x276 + UNIT_END, // Size:2
|
||||||
PLAYER_QUEST_LOG_14_2 = UNIT_END + 0x0032,
|
PLAYER_XP = 0x278 + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_15_1 = UNIT_END + 0x0034,
|
PLAYER_NEXT_LEVEL_XP = 0x279 + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_15_2 = UNIT_END + 0x0035,
|
PLAYER_SKILL_INFO_1_1 = 0x27A + UNIT_END, // Size:384
|
||||||
PLAYER_QUEST_LOG_16_1 = UNIT_END + 0x0037,
|
PLAYER_CHARACTER_POINTS1 = 0x3FA + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_16_2 = UNIT_END + 0x0038,
|
PLAYER_CHARACTER_POINTS2 = 0x3FB + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_17_1 = UNIT_END + 0x003A,
|
PLAYER_TRACK_CREATURES = 0x3FC + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_17_2 = UNIT_END + 0x003B,
|
PLAYER_TRACK_RESOURCES = 0x3FD + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_18_1 = UNIT_END + 0x003D,
|
PLAYER_BLOCK_PERCENTAGE = 0x3FE + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_18_2 = UNIT_END + 0x003E,
|
PLAYER_DODGE_PERCENTAGE = 0x3FF + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_19_1 = UNIT_END + 0x0040,
|
PLAYER_PARRY_PERCENTAGE = 0x400 + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_19_2 = UNIT_END + 0x0041,
|
PLAYER_CRIT_PERCENTAGE = 0x401 + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_20_1 = UNIT_END + 0x0043,
|
PLAYER_RANGED_CRIT_PERCENTAGE = 0x402 + UNIT_END, // Size:1
|
||||||
PLAYER_QUEST_LOG_20_2 = UNIT_END + 0x0044,
|
PLAYER_OFFHAND_CRIT_PERCENTAGE = 0x403 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_1_CREATOR = UNIT_END + 0x0046,
|
PLAYER_SPELL_CRIT_PERCENTAGE1 = 0x404 + UNIT_END, // Size:7
|
||||||
PLAYER_VISIBLE_ITEM_1_0 = UNIT_END + 0x0048,
|
PLAYER_HOLY_SPELL_CRIT_PERCENTAGE = 0x405 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_1_PROPERTIES = UNIT_END + 0x0050,
|
PLAYER_FIRE_SPELL_CRIT_PERCENTAGE = 0x406 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_1_PAD = UNIT_END + 0x0051,
|
PLAYER_NATURE_SPELL_CRIT_PERCENTAGE = 0x407 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_2_CREATOR = UNIT_END + 0x0052,
|
PLAYER_FROST_SPELL_CRIT_PERCENTAGE = 0x408 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_2_0 = UNIT_END + 0x0054,
|
PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE = 0x409 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_2_PROPERTIES = UNIT_END + 0x005C,
|
PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE = 0x40A + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_2_PAD = UNIT_END + 0x005D,
|
PLAYER_EXPLORED_ZONES_1 = 0x40B + UNIT_END, // Size:64
|
||||||
PLAYER_VISIBLE_ITEM_3_CREATOR = UNIT_END + 0x005E,
|
PLAYER_REST_STATE_EXPERIENCE = 0x44B + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_3_0 = UNIT_END + 0x0060,
|
PLAYER_FIELD_COINAGE = 0x44C + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_3_PROPERTIES = UNIT_END + 0x0068,
|
PLAYER_FIELD_MOD_DAMAGE_DONE_POS = 0x44D + UNIT_END, // Size:7
|
||||||
PLAYER_VISIBLE_ITEM_3_PAD = UNIT_END + 0x0069,
|
PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = 0x454 + UNIT_END, // Size:7
|
||||||
PLAYER_VISIBLE_ITEM_4_CREATOR = UNIT_END + 0x006A,
|
PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = 0x45B + UNIT_END, // Size:7
|
||||||
PLAYER_VISIBLE_ITEM_4_0 = UNIT_END + 0x006C,
|
PLAYER_FIELD_MOD_HEALING_DONE_POS = 0x462 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_4_PROPERTIES = UNIT_END + 0x0074,
|
PLAYER_FIELD_MOD_TARGET_RESISTANCE = 0x463 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_4_PAD = UNIT_END + 0x0075,
|
PLAYER_FIELD_BYTES = 0x464 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_5_CREATOR = UNIT_END + 0x0076,
|
PLAYER_AMMO_ID = 0x465 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_5_0 = UNIT_END + 0x0078,
|
PLAYER_SELF_RES_SPELL = 0x466 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_5_PROPERTIES = UNIT_END + 0x0080,
|
PLAYER_FIELD_PVP_MEDALS = 0x467 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_5_PAD = UNIT_END + 0x0081,
|
PLAYER_FIELD_BUYBACK_PRICE_1 = 0x468 + UNIT_END, // count=12
|
||||||
PLAYER_VISIBLE_ITEM_6_CREATOR = UNIT_END + 0x0082,
|
PLAYER_FIELD_BUYBACK_PRICE_LAST = 0x473 + UNIT_END,
|
||||||
PLAYER_VISIBLE_ITEM_6_0 = UNIT_END + 0x0084,
|
PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = 0x474 + UNIT_END, // count=12
|
||||||
PLAYER_VISIBLE_ITEM_6_PROPERTIES = UNIT_END + 0x008C,
|
PLAYER_FIELD_BUYBACK_TIMESTAMP_LAST = 0x47A + UNIT_END,
|
||||||
PLAYER_VISIBLE_ITEM_6_PAD = UNIT_END + 0x008D,
|
PLAYER_FIELD_KILLS = 0x480 + UNIT_END, // Size:1 // ((uint16)kills_today<<16) | (uint16)kills_yesterday)
|
||||||
PLAYER_VISIBLE_ITEM_7_CREATOR = UNIT_END + 0x008E,
|
PLAYER_FIELD_HONOR_TODAY = 0x481 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_7_0 = UNIT_END + 0x0090,
|
PLAYER_FIELD_HONOR_YESTERDAY = 0x482 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_7_PROPERTIES = UNIT_END + 0x0098,
|
PLAYER_FIELD_KILLS_LIFETIME = 0x483 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_7_PAD = UNIT_END + 0x0099,
|
PLAYER_FIELD_BYTES2 = 0x484 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_8_CREATOR = UNIT_END + 0x009A,
|
PLAYER_FIELD_WATCHED_FACTION_INDEX = 0x485 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_8_0 = UNIT_END + 0x009C,
|
PLAYER_FIELD_COMBAT_RATING_1 = 0x486 + UNIT_END, // Size:23
|
||||||
PLAYER_VISIBLE_ITEM_8_PROPERTIES = UNIT_END + 0x00A4,
|
PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING = 0x486 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_8_PAD = UNIT_END + 0x00A5,
|
PLAYER_FIELD_DEFENCE_RATING = 0x487 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_9_CREATOR = UNIT_END + 0x00A6,
|
PLAYER_FIELD_DODGE_RATING = 0x488 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_9_0 = UNIT_END + 0x00A8,
|
PLAYER_FIELD_PARRY_RATING = 0x489 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_9_PROPERTIES = UNIT_END + 0x00B0,
|
PLAYER_FIELD_BLOCK_RATING = 0x48A + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_9_PAD = UNIT_END + 0x00B1,
|
PLAYER_FIELD_MELEE_HIT_RATING = 0x48B + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_10_CREATOR = UNIT_END + 0x00B2,
|
PLAYER_FIELD_RANGED_HIT_RATING = 0x48C + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_10_0 = UNIT_END + 0x00B4,
|
PLAYER_FIELD_SPELL_HIT_RATING = 0x48D + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_10_PROPERTIES = UNIT_END + 0x00BC,
|
PLAYER_FIELD_MELEE_CRIT_RATING = 0x48E + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_10_PAD = UNIT_END + 0x00BD,
|
PLAYER_FIELD_RANGED_CRIT_RATING = 0x48F + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_11_CREATOR = UNIT_END + 0x00BE,
|
PLAYER_FIELD_SPELL_CRIT_RATING = 0x490 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_11_0 = UNIT_END + 0x00C0,
|
PLAYER_FIELD_HIT_RATING = 0x491 + UNIT_END, // unsure, was PLAYER_FIELD_UNK1_RATING
|
||||||
PLAYER_VISIBLE_ITEM_11_PROPERTIES = UNIT_END + 0x00C8,
|
PLAYER_FIELD_CRIT_RATING = 0x492 + UNIT_END, // unsure, was PLAYER_FIELD_UNK2_RATING
|
||||||
PLAYER_VISIBLE_ITEM_11_PAD = UNIT_END + 0x00C9,
|
PLAYER_FIELD_UNK3_RATING = 0x493 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_12_CREATOR = UNIT_END + 0x00CA,
|
PLAYER_FIELD_UNK4_RATING = 0x494 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_12_0 = UNIT_END + 0x00CC,
|
PLAYER_FIELD_UNK5_RATING = 0x495 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_12_PROPERTIES = UNIT_END + 0x00D4,
|
PLAYER_FIELD_RESILIENCE_RATING = 0x496 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_12_PAD = UNIT_END + 0x00D5,
|
PLAYER_FIELD_MELEE_HASTE_RATING = 0x497 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_13_CREATOR = UNIT_END + 0x00D6,
|
PLAYER_FIELD_RANGED_HASTE_RATING = 0x498 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_13_0 = UNIT_END + 0x00D8,
|
PLAYER_FIELD_UNK6_RATING = 0x499 + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_13_PROPERTIES = UNIT_END + 0x00E0,
|
PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING = 0x49A + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_13_PAD = UNIT_END + 0x00E1,
|
PLAYER_FIELD_UNK7_RATING = 0x49B + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_14_CREATOR = UNIT_END + 0x00E2,
|
PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING = 0x49C + UNIT_END, // custom
|
||||||
PLAYER_VISIBLE_ITEM_14_0 = UNIT_END + 0x00E4,
|
PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = 0x49D + UNIT_END, // Size:9
|
||||||
PLAYER_VISIBLE_ITEM_14_PROPERTIES = UNIT_END + 0x00EC,
|
PLAYER_FIELD_HONOR_CURRENCY = 0x4A6 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_14_PAD = UNIT_END + 0x00ED,
|
PLAYER_FIELD_ARENA_CURRENCY = 0x4A7 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_15_CREATOR = UNIT_END + 0x00EE,
|
PLAYER_FIELD_MOD_MANA_REGEN = 0x4A8 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_15_0 = UNIT_END + 0x00F0,
|
PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT = 0x4A9 + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_15_PROPERTIES = UNIT_END + 0x00F8,
|
PLAYER_FIELD_MAX_LEVEL = 0x4AA + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_15_PAD = UNIT_END + 0x00F9,
|
PLAYER_FIELD_PADDING = 0x4AB + UNIT_END, // Size:1
|
||||||
PLAYER_VISIBLE_ITEM_16_CREATOR = UNIT_END + 0x00FA,
|
PLAYER_END = 0x4AC + UNIT_END,
|
||||||
PLAYER_VISIBLE_ITEM_16_0 = UNIT_END + 0x00FC,
|
|
||||||
PLAYER_VISIBLE_ITEM_16_PROPERTIES = UNIT_END + 0x0104,
|
|
||||||
PLAYER_VISIBLE_ITEM_16_PAD = UNIT_END + 0x0105,
|
|
||||||
PLAYER_VISIBLE_ITEM_17_CREATOR = UNIT_END + 0x0106,
|
|
||||||
PLAYER_VISIBLE_ITEM_17_0 = UNIT_END + 0x0108,
|
|
||||||
PLAYER_VISIBLE_ITEM_17_PROPERTIES = UNIT_END + 0x0110,
|
|
||||||
PLAYER_VISIBLE_ITEM_17_PAD = UNIT_END + 0x0111,
|
|
||||||
PLAYER_VISIBLE_ITEM_18_CREATOR = UNIT_END + 0x0112,
|
|
||||||
PLAYER_VISIBLE_ITEM_18_0 = UNIT_END + 0x0114,
|
|
||||||
PLAYER_VISIBLE_ITEM_18_PROPERTIES = UNIT_END + 0x011C,
|
|
||||||
PLAYER_VISIBLE_ITEM_18_PAD = UNIT_END + 0x011D,
|
|
||||||
PLAYER_VISIBLE_ITEM_19_CREATOR = UNIT_END + 0x011E,
|
|
||||||
PLAYER_VISIBLE_ITEM_19_0 = UNIT_END + 0x0120,
|
|
||||||
PLAYER_VISIBLE_ITEM_19_PROPERTIES = UNIT_END + 0x0128,
|
|
||||||
PLAYER_VISIBLE_ITEM_19_PAD = UNIT_END + 0x0129,
|
|
||||||
PLAYER_FIELD_INV_SLOT_HEAD = UNIT_END + 0x012A,
|
|
||||||
PLAYER_FIELD_PACK_SLOT_1 = UNIT_END + 0x0158,
|
|
||||||
PLAYER_FIELD_BANK_SLOT_1 = UNIT_END + 0x0178,
|
|
||||||
PLAYER_FIELD_BANKBAG_SLOT_1 = UNIT_END + 0x01A8,
|
|
||||||
PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = UNIT_END + 0x01B4,
|
|
||||||
PLAYER_FIELD_KEYRING_SLOT_1 = UNIT_END + 0x01CC,
|
|
||||||
PLAYER_FARSIGHT = UNIT_END + 0x020C,
|
|
||||||
PLAYER_FIELD_COMBO_TARGET = UNIT_END + 0x020E,
|
|
||||||
PLAYER_XP = UNIT_END + 0x0210,
|
|
||||||
PLAYER_NEXT_LEVEL_XP = UNIT_END + 0x0211,
|
|
||||||
PLAYER_SKILL_INFO_1_1 = UNIT_END + 0x0212,
|
|
||||||
PLAYER_CHARACTER_POINTS1 = UNIT_END + 0x0392,
|
|
||||||
PLAYER_CHARACTER_POINTS2 = UNIT_END + 0x0393,
|
|
||||||
PLAYER_TRACK_CREATURES = UNIT_END + 0x0394,
|
|
||||||
PLAYER_TRACK_RESOURCES = UNIT_END + 0x0395,
|
|
||||||
PLAYER_BLOCK_PERCENTAGE = UNIT_END + 0x0396,
|
|
||||||
PLAYER_DODGE_PERCENTAGE = UNIT_END + 0x0397,
|
|
||||||
PLAYER_PARRY_PERCENTAGE = UNIT_END + 0x0398,
|
|
||||||
PLAYER_CRIT_PERCENTAGE = UNIT_END + 0x0399,
|
|
||||||
PLAYER_RANGED_CRIT_PERCENTAGE = UNIT_END + 0x039A,
|
|
||||||
PLAYER_EXPLORED_ZONES_1 = UNIT_END + 0x039B,
|
|
||||||
PLAYER_REST_STATE_EXPERIENCE = UNIT_END + 0x03DB,
|
|
||||||
PLAYER_FIELD_COINAGE = UNIT_END + 0x03DC,
|
|
||||||
PLAYER_FIELD_POSSTAT0 = UNIT_END + 0x03DD,
|
|
||||||
PLAYER_FIELD_POSSTAT1 = UNIT_END + 0x03DE,
|
|
||||||
PLAYER_FIELD_POSSTAT2 = UNIT_END + 0x03DF,
|
|
||||||
PLAYER_FIELD_POSSTAT3 = UNIT_END + 0x03E0,
|
|
||||||
PLAYER_FIELD_POSSTAT4 = UNIT_END + 0x03E1,
|
|
||||||
PLAYER_FIELD_NEGSTAT0 = UNIT_END + 0x03E2,
|
|
||||||
PLAYER_FIELD_NEGSTAT1 = UNIT_END + 0x03E3,
|
|
||||||
PLAYER_FIELD_NEGSTAT2 = UNIT_END + 0x03E4,
|
|
||||||
PLAYER_FIELD_NEGSTAT3 = UNIT_END + 0x03E5,
|
|
||||||
PLAYER_FIELD_NEGSTAT4 = UNIT_END + 0x03E6,
|
|
||||||
PLAYER_FIELD_RESISTANCEBUFFMODSPOSITIVE = UNIT_END + 0x03E7,
|
|
||||||
PLAYER_FIELD_RESISTANCEBUFFMODSNEGATIVE = UNIT_END + 0x03EE,
|
|
||||||
PLAYER_FIELD_MOD_DAMAGE_DONE_POS = UNIT_END + 0x03F5,
|
|
||||||
PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UNIT_END + 0x03FC,
|
|
||||||
PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UNIT_END + 0x0403,
|
|
||||||
PLAYER_FIELD_BYTES = UNIT_END + 0x040A,
|
|
||||||
PLAYER_AMMO_ID = UNIT_END + 0x040B,
|
|
||||||
PLAYER_SELF_RES_SPELL = UNIT_END + 0x040C,
|
|
||||||
PLAYER_FIELD_PVP_MEDALS = UNIT_END + 0x040D,
|
|
||||||
PLAYER_FIELD_BUYBACK_PRICE_1 = UNIT_END + 0x040E,
|
|
||||||
PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UNIT_END + 0x041A,
|
|
||||||
PLAYER_FIELD_SESSION_KILLS = UNIT_END + 0x0426,
|
|
||||||
PLAYER_FIELD_YESTERDAY_KILLS = UNIT_END + 0x0427,
|
|
||||||
PLAYER_FIELD_LAST_WEEK_KILLS = UNIT_END + 0x0428,
|
|
||||||
PLAYER_FIELD_THIS_WEEK_KILLS = UNIT_END + 0x0429,
|
|
||||||
PLAYER_FIELD_THIS_WEEK_CONTRIBUTION = UNIT_END + 0x042A,
|
|
||||||
PLAYER_FIELD_LIFETIME_HONORABLE_KILLS = UNIT_END + 0x042B,
|
|
||||||
PLAYER_FIELD_LIFETIME_DISHONORABLE_KILLS = UNIT_END + 0x042C,
|
|
||||||
PLAYER_FIELD_YESTERDAY_CONTRIBUTION = UNIT_END + 0x042D,
|
|
||||||
PLAYER_FIELD_LAST_WEEK_CONTRIBUTION = UNIT_END + 0x042E,
|
|
||||||
PLAYER_FIELD_LAST_WEEK_RANK = UNIT_END + 0x042F,
|
|
||||||
PLAYER_FIELD_BYTES2 = UNIT_END + 0x0430,
|
|
||||||
PLAYER_FIELD_WATCHED_FACTION_INDEX = UNIT_END + 0x0431,
|
|
||||||
PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x0432,
|
|
||||||
PLAYER_END = PLAYER_FIELD_COMBAT_RATING_1 + 20,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EGameObjectFields
|
enum EGameObjectFields
|
||||||
{
|
{
|
||||||
OBJECT_FIELD_CREATED_BY = OBJECT_END + 0x0000,
|
OBJECT_FIELD_CREATED_BY = OBJECT_END + 0x00,
|
||||||
GAMEOBJECT_DISPLAYID = OBJECT_END + 0x0002,
|
GAMEOBJECT_DISPLAYID = OBJECT_END + 0x02,
|
||||||
GAMEOBJECT_FLAGS = OBJECT_END + 0x0003,
|
GAMEOBJECT_FLAGS = OBJECT_END + 0x03,
|
||||||
GAMEOBJECT_ROTATION = OBJECT_END + 0x0004,
|
GAMEOBJECT_ROTATION = OBJECT_END + 0x04,
|
||||||
GAMEOBJECT_STATE = OBJECT_END + 0x0008,
|
GAMEOBJECT_STATE = OBJECT_END + 0x08,
|
||||||
GAMEOBJECT_POS_X = OBJECT_END + 0x0009,
|
GAMEOBJECT_POS_X = OBJECT_END + 0x09,
|
||||||
GAMEOBJECT_POS_Y = OBJECT_END + 0x000A,
|
GAMEOBJECT_POS_Y = OBJECT_END + 0x0A,
|
||||||
GAMEOBJECT_POS_Z = OBJECT_END + 0x000B,
|
GAMEOBJECT_POS_Z = OBJECT_END + 0x0B,
|
||||||
GAMEOBJECT_FACING = OBJECT_END + 0x000C,
|
GAMEOBJECT_FACING = OBJECT_END + 0x0C,
|
||||||
GAMEOBJECT_DYN_FLAGS = OBJECT_END + 0x000D,
|
GAMEOBJECT_DYN_FLAGS = OBJECT_END + 0x0D,
|
||||||
GAMEOBJECT_FACTION = OBJECT_END + 0x000E,
|
GAMEOBJECT_FACTION = OBJECT_END + 0x0E,
|
||||||
GAMEOBJECT_TYPE_ID = OBJECT_END + 0x000F,
|
GAMEOBJECT_TYPE_ID = OBJECT_END + 0x0F,
|
||||||
GAMEOBJECT_LEVEL = OBJECT_END + 0x0010,
|
GAMEOBJECT_LEVEL = OBJECT_END + 0x10,
|
||||||
GAMEOBJECT_ARTKIT = OBJECT_END + 0x0011,
|
GAMEOBJECT_ARTKIT = OBJECT_END + 0x11,
|
||||||
GAMEOBJECT_ANIMPROGRESS = OBJECT_END + 0x0012,
|
GAMEOBJECT_ANIMPROGRESS = OBJECT_END + 0x12,
|
||||||
GAMEOBJECT_PADDING = OBJECT_END + 0x0013,
|
GAMEOBJECT_PADDING = OBJECT_END + 0x13,
|
||||||
GAMEOBJECT_END = GAMEOBJECT_PADDING + 1,
|
GAMEOBJECT_END = OBJECT_END + 0x14,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EDynamicObjectFields
|
enum EDynamicObjectFields
|
||||||
{
|
{
|
||||||
DYNAMICOBJECT_CASTER = OBJECT_END + 0x0000,
|
DYNAMICOBJECT_CASTER = OBJECT_END + 0x00,
|
||||||
DYNAMICOBJECT_BYTES = OBJECT_END + 0x0002,
|
DYNAMICOBJECT_BYTES = OBJECT_END + 0x02,
|
||||||
DYNAMICOBJECT_SPELLID = OBJECT_END + 0x0003,
|
DYNAMICOBJECT_SPELLID = OBJECT_END + 0x03,
|
||||||
DYNAMICOBJECT_RADIUS = OBJECT_END + 0x0004,
|
DYNAMICOBJECT_RADIUS = OBJECT_END + 0x04,
|
||||||
DYNAMICOBJECT_POS_X = OBJECT_END + 0x0005,
|
DYNAMICOBJECT_POS_X = OBJECT_END + 0x05,
|
||||||
DYNAMICOBJECT_POS_Y = OBJECT_END + 0x0006,
|
DYNAMICOBJECT_POS_Y = OBJECT_END + 0x06,
|
||||||
DYNAMICOBJECT_POS_Z = OBJECT_END + 0x0007,
|
DYNAMICOBJECT_POS_Z = OBJECT_END + 0x07,
|
||||||
DYNAMICOBJECT_FACING = OBJECT_END + 0x0008,
|
DYNAMICOBJECT_FACING = OBJECT_END + 0x08,
|
||||||
DYNAMICOBJECT_PAD = OBJECT_END + 0x0009,
|
DYNAMICOBJECT_PAD = OBJECT_END + 0x09,
|
||||||
DYNAMICOBJECT_END = DYNAMICOBJECT_PAD + 1,
|
DYNAMICOBJECT_END = OBJECT_END + 0x0A,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ECorpseFields
|
enum ECorpseFields
|
||||||
{
|
{
|
||||||
CORPSE_FIELD_OWNER = OBJECT_END + 0x0000,
|
CORPSE_FIELD_OWNER = OBJECT_END + 0x00,
|
||||||
CORPSE_FIELD_FACING = OBJECT_END + 0x0002,
|
CORPSE_FIELD_FACING = OBJECT_END + 0x02,
|
||||||
CORPSE_FIELD_POS_X = OBJECT_END + 0x0003,
|
CORPSE_FIELD_POS_X = OBJECT_END + 0x03,
|
||||||
CORPSE_FIELD_POS_Y = OBJECT_END + 0x0004,
|
CORPSE_FIELD_POS_Y = OBJECT_END + 0x04,
|
||||||
CORPSE_FIELD_POS_Z = OBJECT_END + 0x0005,
|
CORPSE_FIELD_POS_Z = OBJECT_END + 0x05,
|
||||||
CORPSE_FIELD_DISPLAY_ID = OBJECT_END + 0x0006,
|
CORPSE_FIELD_DISPLAY_ID = OBJECT_END + 0x06,
|
||||||
CORPSE_FIELD_ITEM = OBJECT_END + 0x0007,
|
CORPSE_FIELD_ITEM = OBJECT_END + 0x07, // 19
|
||||||
CORPSE_FIELD_BYTES_1 = OBJECT_END + 0x001A,
|
CORPSE_FIELD_BYTES_1 = OBJECT_END + 0x1A,
|
||||||
CORPSE_FIELD_BYTES_2 = OBJECT_END + 0x001B,
|
CORPSE_FIELD_BYTES_2 = OBJECT_END + 0x1B,
|
||||||
CORPSE_FIELD_GUILD = OBJECT_END + 0x001C,
|
CORPSE_FIELD_GUILD = OBJECT_END + 0x1C,
|
||||||
CORPSE_FIELD_FLAGS = OBJECT_END + 0x001D,
|
CORPSE_FIELD_FLAGS = OBJECT_END + 0x1D,
|
||||||
CORPSE_FIELD_DYNAMIC_FLAGS = OBJECT_END + 0x001E,
|
CORPSE_FIELD_DYNAMIC_FLAGS = OBJECT_END + 0x1E,
|
||||||
CORPSE_FIELD_PAD = OBJECT_END + 0x001F,
|
CORPSE_FIELD_PAD = OBJECT_END + 0x1F,
|
||||||
CORPSE_END = CORPSE_FIELD_PAD + 1,
|
CORPSE_END = OBJECT_END + 0x20,
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
#include "Opcodes.h"
|
#include "Opcodes.h"
|
||||||
#include "WorldPacket.h"
|
#include "WorldPacket.h"
|
||||||
#include "WorldSocket.h"
|
#include "WorldSocket.h"
|
||||||
#include "NameTables.h"
|
|
||||||
#include "RealmSocket.h"
|
#include "RealmSocket.h"
|
||||||
#include "Channel.h"
|
#include "Channel.h"
|
||||||
|
|
||||||
@ -77,7 +76,7 @@ void WorldSession::AddToPktQueue(WorldPacket *pkt)
|
|||||||
void WorldSession::SendWorldPacket(WorldPacket &pkt)
|
void WorldSession::SendWorldPacket(WorldPacket &pkt)
|
||||||
{
|
{
|
||||||
if(GetInstance()->GetConf()->showmyopcodes)
|
if(GetInstance()->GetConf()->showmyopcodes)
|
||||||
logcustom(0,BROWN,"<< Opcode %u [%s]", pkt.GetOpcode(), LookupName(pkt.GetOpcode(),g_worldOpcodeNames));
|
logcustom(0,BROWN,"<< Opcode %u [%s]", pkt.GetOpcode(), GetOpcodeName(pkt.GetOpcode()));
|
||||||
_socket->SendWorldPacket(pkt);
|
_socket->SendWorldPacket(pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,7 +146,7 @@ void WorldSession::Update(void)
|
|||||||
|| (GetInstance()->GetConf()->showopcodes==3) )
|
|| (GetInstance()->GetConf()->showopcodes==3) )
|
||||||
{
|
{
|
||||||
if(!(GetInstance()->GetConf()->hidefreqopcodes && hideOpcode))
|
if(!(GetInstance()->GetConf()->hidefreqopcodes && hideOpcode))
|
||||||
logcustom(1,YELLOW,">> Opcode %u [%s] (%s)", packet->GetOpcode(), LookupName(packet->GetOpcode(),g_worldOpcodeNames), known ? "Known" : "UNKNOWN");
|
logcustom(1,YELLOW,">> Opcode %u [%s] (%s)", packet->GetOpcode(), GetOpcodeName(packet->GetOpcode()), known ? "Known" : "UNKNOWN");
|
||||||
}
|
}
|
||||||
delete packet;
|
delete packet;
|
||||||
known=false;
|
known=false;
|
||||||
|
|||||||
@ -73,7 +73,7 @@ void WorldSocket::OnRead()
|
|||||||
_crypt.DecryptRecv((uint8*)&hdr,sizeof(ServerPktHeader));
|
_crypt.DecryptRecv((uint8*)&hdr,sizeof(ServerPktHeader));
|
||||||
_remaining = ntohs(hdr.size)-2;
|
_remaining = ntohs(hdr.size)-2;
|
||||||
_opcode = hdr.cmd;
|
_opcode = hdr.cmd;
|
||||||
if(_opcode > 800) // no opcode has yet a number over 800
|
if(_opcode > 1000) // no opcode has yet a number over 1000
|
||||||
{
|
{
|
||||||
logcritical("CRYPT ERROR: opcode=%u, remain=%u",_opcode,_remaining); // this should never be the case!
|
logcritical("CRYPT ERROR: opcode=%u, remain=%u",_opcode,_remaining); // this should never be the case!
|
||||||
GetSession()->GetInstance()->SetError(); // no way to recover the crypt, must exit
|
GetSession()->GetInstance()->SetError(); // no way to recover the crypt, must exit
|
||||||
|
|||||||
@ -183,9 +183,6 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath=".\Client\main.h">
|
RelativePath=".\Client\main.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\Client\NameTables.h">
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Client\PseuWoW.cpp">
|
RelativePath=".\Client\PseuWoW.cpp">
|
||||||
</File>
|
</File>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user