mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
[7911] Applied coding style.
This commit is contained in:
parent
ec1d6a3b56
commit
42f8ce5f3e
58 changed files with 1452 additions and 1459 deletions
|
|
@ -24,6 +24,7 @@ void fixnamen(char *name, size_t len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void fixname2(char *name, size_t len)
|
void fixname2(char *name, size_t len)
|
||||||
{
|
{
|
||||||
for (size_t i=0; i<len-3; i++)
|
for (size_t i=0; i<len-3; i++)
|
||||||
|
|
@ -44,10 +45,10 @@ bool ADTFile::init(char *map_id)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
size_t size;
|
size_t size;
|
||||||
|
|
||||||
string xMap;
|
string xMap;
|
||||||
string yMap;
|
string yMap;
|
||||||
|
|
||||||
Adtfilename.erase(Adtfilename.find(".adt"),4);
|
Adtfilename.erase(Adtfilename.find(".adt"),4);
|
||||||
string TempMapNumber;
|
string TempMapNumber;
|
||||||
TempMapNumber = Adtfilename.substr(Adtfilename.length()-6,6);
|
TempMapNumber = Adtfilename.substr(Adtfilename.length()-6,6);
|
||||||
|
|
@ -69,7 +70,6 @@ bool ADTFile::init(char *map_id)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
while (!ADT.isEof())
|
while (!ADT.isEof())
|
||||||
{
|
{
|
||||||
char fourcc[5];
|
char fourcc[5];
|
||||||
|
|
@ -82,7 +82,6 @@ bool ADTFile::init(char *map_id)
|
||||||
|
|
||||||
if (!strcmp(fourcc,"MCIN"))
|
if (!strcmp(fourcc,"MCIN"))
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (!strcmp(fourcc,"MTEX"))
|
else if (!strcmp(fourcc,"MTEX"))
|
||||||
{
|
{
|
||||||
|
|
@ -96,7 +95,7 @@ bool ADTFile::init(char *map_id)
|
||||||
char *p=buf;
|
char *p=buf;
|
||||||
int t=0;
|
int t=0;
|
||||||
ModelInstansName = new string[size];
|
ModelInstansName = new string[size];
|
||||||
while (p<buf+size)
|
while (p<buf+size)
|
||||||
{
|
{
|
||||||
fixnamen(p,strlen(p));
|
fixnamen(p,strlen(p));
|
||||||
string path(p);
|
string path(p);
|
||||||
|
|
@ -130,10 +129,8 @@ bool ADTFile::init(char *map_id)
|
||||||
else
|
else
|
||||||
fclose(output);
|
fclose(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete[] buf;
|
delete[] buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (!strcmp(fourcc,"MWMO"))
|
else if (!strcmp(fourcc,"MWMO"))
|
||||||
{
|
{
|
||||||
|
|
@ -144,7 +141,7 @@ bool ADTFile::init(char *map_id)
|
||||||
char *p=buf;
|
char *p=buf;
|
||||||
int q = 0;
|
int q = 0;
|
||||||
WmoInstansName = new string[size];
|
WmoInstansName = new string[size];
|
||||||
while (p<buf+size)
|
while (p<buf+size)
|
||||||
{
|
{
|
||||||
string path(p);
|
string path(p);
|
||||||
char* s=GetPlainName(p);
|
char* s=GetPlainName(p);
|
||||||
|
|
@ -186,7 +183,7 @@ bool ADTFile::init(char *map_id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//======================
|
//======================
|
||||||
#if 0
|
#if 0
|
||||||
else if (!strcmp(fourcc,"MDDF"))
|
else if (!strcmp(fourcc,"MDDF"))
|
||||||
{
|
{
|
||||||
if (size)
|
if (size)
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ bool DBCFile::open()
|
||||||
f.read(&nb,4); // Number of fields
|
f.read(&nb,4); // Number of fields
|
||||||
f.read(&es,4); // Size of a record
|
f.read(&es,4); // Size of a record
|
||||||
f.read(&ss,4); // String size
|
f.read(&ss,4); // String size
|
||||||
|
|
||||||
recordSize = es;
|
recordSize = es;
|
||||||
recordCount = na;
|
recordCount = na;
|
||||||
fieldCount = nb;
|
fieldCount = nb;
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ public:
|
||||||
class Iterator
|
class Iterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Iterator(DBCFile &file, unsigned char *offset):
|
Iterator(DBCFile &file, unsigned char *offset):
|
||||||
record(file, offset) {}
|
record(file, offset) {}
|
||||||
/// Advance (prefix only)
|
/// Advance (prefix only)
|
||||||
Iterator & operator++() {
|
Iterator & operator++() {
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ MPQArchiveSet::~MPQArchiveSet()
|
||||||
ar_itr->close();
|
ar_itr->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
||||||
MPQFile::MPQFile(const char* filename):
|
MPQFile::MPQFile(const char* filename):
|
||||||
eof(false),
|
eof(false),
|
||||||
buffer(0),
|
buffer(0),
|
||||||
|
|
@ -72,7 +71,6 @@ MPQFile::MPQFile(const char* filename):
|
||||||
|
|
||||||
eof = true;
|
eof = true;
|
||||||
buffer = 0;
|
buffer = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MPQFile::~MPQFile()
|
MPQFile::~MPQFile()
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class MPQArchiveSet
|
||||||
};
|
};
|
||||||
|
|
||||||
extern MPQArchiveSet gOpenArchives;
|
extern MPQArchiveSet gOpenArchives;
|
||||||
|
|
||||||
class MPQFile
|
class MPQFile
|
||||||
{
|
{
|
||||||
HANDLE hFile;
|
HANDLE hFile;
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ class Vec2D
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
float x,y;
|
float x,y;
|
||||||
|
|
||||||
Vec2D(float x0 = 0.0f, float y0 = 0.0f) : x(x0), y(y0) {}
|
Vec2D(float x0 = 0.0f, float y0 = 0.0f) : x(x0), y(y0) {}
|
||||||
|
|
||||||
Vec2D(const Vec2D& v) : x(v.x), y(v.y) {}
|
Vec2D(const Vec2D& v) : x(v.x), y(v.y) {}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
#define __STORMLIB_SELF__ // Don't use StormLib.lib
|
#define __STORMLIB_SELF__ // Don't use StormLib.lib
|
||||||
#include "StormLib.h"
|
#include "StormLib.h"
|
||||||
|
|
||||||
#pragma warning(disable : 4505)
|
#pragma warning(disable : 4505)
|
||||||
#pragma comment(lib, "Winmm.lib")
|
#pragma comment(lib, "Winmm.lib")
|
||||||
|
|
||||||
//From Extractor
|
//From Extractor
|
||||||
|
|
@ -44,7 +44,8 @@
|
||||||
typedef unsigned char uint8;
|
typedef unsigned char uint8;
|
||||||
typedef unsigned short uint16;
|
typedef unsigned short uint16;
|
||||||
typedef unsigned int uint32;
|
typedef unsigned int uint32;
|
||||||
typedef struct{
|
typedef struct
|
||||||
|
{
|
||||||
char name[64];
|
char name[64];
|
||||||
unsigned int id;
|
unsigned int id;
|
||||||
}map_id;
|
}map_id;
|
||||||
|
|
@ -104,7 +105,6 @@ static void ShowProcessedFile(const char * szFileName)
|
||||||
printf("\r%s\n", szFileName);
|
printf("\r%s\n", szFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
int ExtractWmo()
|
int ExtractWmo()
|
||||||
{
|
{
|
||||||
char* szListFile = "";
|
char* szListFile = "";
|
||||||
|
|
@ -205,7 +205,6 @@ int ExtractWmo()
|
||||||
// Close the search handle
|
// Close the search handle
|
||||||
if(hFind != NULL)
|
if(hFind != NULL)
|
||||||
SFileFindClose(hFind);
|
SFileFindClose(hFind);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -523,9 +522,9 @@ int main(int argc, char ** argv)
|
||||||
nError = GetLastError();
|
nError = GetLastError();
|
||||||
if(nError == ERROR_ALREADY_EXISTS)
|
if(nError == ERROR_ALREADY_EXISTS)
|
||||||
nError = ERROR_SUCCESS;
|
nError = ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// prepare archive name list
|
// prepare archive name list
|
||||||
std::vector<std::string> archiveNames;
|
std::vector<std::string> archiveNames;
|
||||||
fillArchiveNameVector(archiveNames);
|
fillArchiveNameVector(archiveNames);
|
||||||
if(!gOpenArchives.Open(archiveNames))
|
if(!gOpenArchives.Open(archiveNames))
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,8 @@ WDTFile::~WDTFile(void)
|
||||||
|
|
||||||
ADTFile* WDTFile::GetMap(int x, int z)
|
ADTFile* WDTFile::GetMap(int x, int z)
|
||||||
{
|
{
|
||||||
if(!(x>=0 && z >= 0 && x<64 && z<64)) return NULL;
|
if(!(x>=0 && z >= 0 && x<64 && z<64))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
char name[512];
|
char name[512];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -295,7 +295,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
|
||||||
{
|
{
|
||||||
int LIQU_h[] = {0x5551494C,LiquEx_size+8,hlq_xverts,hlq_yverts};// "LIQU"
|
int LIQU_h[] = {0x5551494C,LiquEx_size+8,hlq_xverts,hlq_yverts};// "LIQU"
|
||||||
fwrite(LIQU_h,4,4,output);
|
fwrite(LIQU_h,4,4,output);
|
||||||
fwrite(LiquEx,4,LiquEx_size/4,output);
|
fwrite(LiquEx,4,LiquEx_size/4,output);
|
||||||
delete [] LiquEx;
|
delete [] LiquEx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -305,7 +305,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
|
||||||
{
|
{
|
||||||
//printf("Convert GroupWmo...\n");
|
//printf("Convert GroupWmo...\n");
|
||||||
//-------GRP -------------------------------------
|
//-------GRP -------------------------------------
|
||||||
fwrite(&liquflags,sizeof(uint32),1,output);
|
fwrite(&liquflags,sizeof(uint32),1,output);
|
||||||
char GRP[] = "GRP ";
|
char GRP[] = "GRP ";
|
||||||
fwrite(GRP,1,4,output);
|
fwrite(GRP,1,4,output);
|
||||||
int k = 0;
|
int k = 0;
|
||||||
|
|
@ -317,7 +317,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
|
||||||
}
|
}
|
||||||
delete [] MOBA;
|
delete [] MOBA;
|
||||||
int moba_size_grp = moba_batch*4+4;
|
int moba_size_grp = moba_batch*4+4;
|
||||||
fwrite(&moba_size_grp,4,1,output);
|
fwrite(&moba_size_grp,4,1,output);
|
||||||
fwrite(&moba_batch,4,1,output);
|
fwrite(&moba_batch,4,1,output);
|
||||||
fwrite(MobaEx,4,k,output);
|
fwrite(MobaEx,4,k,output);
|
||||||
delete [] MobaEx;
|
delete [] MobaEx;
|
||||||
|
|
@ -335,7 +335,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
|
||||||
continue;
|
continue;
|
||||||
// Use only this triangles
|
// Use only this triangles
|
||||||
if ((int)MOPY[i]&(WMO_MATERIAL_HINT|WMO_MATERIAL_COLLIDE_HIT))
|
if ((int)MOPY[i]&(WMO_MATERIAL_HINT|WMO_MATERIAL_COLLIDE_HIT))
|
||||||
{
|
{
|
||||||
MopyEx[n] = MOPY[i];
|
MopyEx[n] = MOPY[i];
|
||||||
MopyEx[(n+1)] = MOPY[(i+1)];
|
MopyEx[(n+1)] = MOPY[(i+1)];
|
||||||
IndexExTr[j] = i/2;
|
IndexExTr[j] = i/2;
|
||||||
|
|
@ -454,7 +454,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
|
||||||
delete [] MovtEx;
|
delete [] MovtEx;
|
||||||
delete [] MovtExSort;
|
delete [] MovtExSort;
|
||||||
|
|
||||||
//---------------------------------------------
|
//---------------------------------------------
|
||||||
return IndexExTr_size;
|
return IndexExTr_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ public:
|
||||||
|
|
||||||
WMORoot(std::string &filename);
|
WMORoot(std::string &filename);
|
||||||
~WMORoot();
|
~WMORoot();
|
||||||
|
|
||||||
bool open();
|
bool open();
|
||||||
bool ConvertToVMAPRootWmo(FILE *output);
|
bool ConvertToVMAPRootWmo(FILE *output);
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -1536,7 +1536,7 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// titles
|
// titles
|
||||||
if(uint32 titleId = reward->titleId[GetPlayer()->GetTeam() == HORDE?0:1])
|
if(uint32 titleId = reward->titleId[GetPlayer()->GetTeam() == HORDE ? 0 : 1])
|
||||||
{
|
{
|
||||||
if(CharTitlesEntry const* titleEntry = sCharTitlesStore.LookupEntry(titleId))
|
if(CharTitlesEntry const* titleEntry = sCharTitlesStore.LookupEntry(titleId))
|
||||||
GetPlayer()->SetTitle(titleEntry);
|
GetPlayer()->SetTitle(titleEntry);
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
#include "World.h"
|
#include "World.h"
|
||||||
#include "SocialMgr.h"
|
#include "SocialMgr.h"
|
||||||
|
|
||||||
void WorldSession::HandleInspectArenaStatsOpcode(WorldPacket & recv_data)
|
void WorldSession::HandleInspectArenaTeamsOpcode(WorldPacket & recv_data)
|
||||||
{
|
{
|
||||||
sLog.outDebug("MSG_INSPECT_ARENA_TEAMS");
|
sLog.outDebug("MSG_INSPECT_ARENA_TEAMS");
|
||||||
|
|
||||||
|
|
@ -82,9 +82,9 @@ void WorldSession::HandleArenaTeamRosterOpcode(WorldPacket & recv_data)
|
||||||
arenateam->Roster(this);
|
arenateam->Roster(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleArenaTeamAddMemberOpcode(WorldPacket & recv_data)
|
void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket & recv_data)
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_ARENA_TEAM_ADD_MEMBER");
|
sLog.outDebug("CMSG_ARENA_TEAM_INVITE");
|
||||||
|
|
||||||
CHECK_PACKET_SIZE(recv_data, 4+1);
|
CHECK_PACKET_SIZE(recv_data, 4+1);
|
||||||
|
|
||||||
|
|
@ -162,9 +162,9 @@ void WorldSession::HandleArenaTeamAddMemberOpcode(WorldPacket & recv_data)
|
||||||
sLog.outDebug("WORLD: Sent SMSG_ARENA_TEAM_INVITE");
|
sLog.outDebug("WORLD: Sent SMSG_ARENA_TEAM_INVITE");
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleArenaTeamInviteAcceptOpcode(WorldPacket & /*recv_data*/)
|
void WorldSession::HandleArenaTeamAcceptOpcode(WorldPacket & /*recv_data*/)
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_ARENA_TEAM_INVITE_ACCEPT"); // empty opcode
|
sLog.outDebug("CMSG_ARENA_TEAM_ACCEPT"); // empty opcode
|
||||||
|
|
||||||
ArenaTeam *at = objmgr.GetArenaTeamById(_player->GetArenaTeamIdInvited());
|
ArenaTeam *at = objmgr.GetArenaTeamById(_player->GetArenaTeamIdInvited());
|
||||||
if(!at)
|
if(!at)
|
||||||
|
|
@ -194,9 +194,9 @@ void WorldSession::HandleArenaTeamInviteAcceptOpcode(WorldPacket & /*recv_data*/
|
||||||
at->BroadcastPacket(&data);
|
at->BroadcastPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleArenaTeamInviteDeclineOpcode(WorldPacket & /*recv_data*/)
|
void WorldSession::HandleArenaTeamDeclineOpcode(WorldPacket & /*recv_data*/)
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_ARENA_TEAM_INVITE_DECLINE"); // empty opcode
|
sLog.outDebug("CMSG_ARENA_TEAM_DECLINE"); // empty opcode
|
||||||
|
|
||||||
_player->SetArenaTeamIdInvited(0); // no more invited
|
_player->SetArenaTeamIdInvited(0); // no more invited
|
||||||
}
|
}
|
||||||
|
|
@ -261,9 +261,9 @@ void WorldSession::HandleArenaTeamDisbandOpcode(WorldPacket & recv_data)
|
||||||
delete at;
|
delete at;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleArenaTeamRemoveFromTeamOpcode(WorldPacket & recv_data)
|
void WorldSession::HandleArenaTeamRemoveOpcode(WorldPacket & recv_data)
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_ARENA_TEAM_REMOVE_FROM_TEAM");
|
sLog.outDebug("CMSG_ARENA_TEAM_REMOVE");
|
||||||
|
|
||||||
CHECK_PACKET_SIZE(recv_data, 4+1);
|
CHECK_PACKET_SIZE(recv_data, 4+1);
|
||||||
|
|
||||||
|
|
@ -307,9 +307,9 @@ void WorldSession::HandleArenaTeamRemoveFromTeamOpcode(WorldPacket & recv_data)
|
||||||
at->BroadcastPacket(&data);
|
at->BroadcastPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleArenaTeamPromoteToCaptainOpcode(WorldPacket & recv_data)
|
void WorldSession::HandleArenaTeamLeaderOpcode(WorldPacket & recv_data)
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_ARENA_TEAM_PROMOTE_TO_CAPTAIN");
|
sLog.outDebug("CMSG_ARENA_TEAM_LEADER");
|
||||||
|
|
||||||
CHECK_PACKET_SIZE(recv_data, 4+1);
|
CHECK_PACKET_SIZE(recv_data, 4+1);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
#include "ArenaTeam.h"
|
#include "ArenaTeam.h"
|
||||||
#include "Language.h"
|
#include "Language.h"
|
||||||
|
|
||||||
void WorldSession::HandleBattleGroundHelloOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleBattlemasterHelloOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 8);
|
CHECK_PACKET_SIZE(recv_data, 8);
|
||||||
|
|
||||||
|
|
@ -69,7 +69,7 @@ void WorldSession::SendBattlegGroundList( uint64 guid, BattleGroundTypeId bgType
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleBattleGroundJoinOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleBattlemasterJoinOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 8+4+4+1);
|
CHECK_PACKET_SIZE(recv_data, 8+4+4+1);
|
||||||
|
|
||||||
|
|
@ -270,7 +270,7 @@ void WorldSession::HandleBattleGroundPlayerPositionsOpcode( WorldPacket & /*recv
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleBattleGroundPVPlogdataOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandlePVPLogDataOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
sLog.outDebug( "WORLD: Recvd MSG_PVP_LOG_DATA Message");
|
sLog.outDebug( "WORLD: Recvd MSG_PVP_LOG_DATA Message");
|
||||||
|
|
||||||
|
|
@ -285,7 +285,7 @@ void WorldSession::HandleBattleGroundPVPlogdataOpcode( WorldPacket & /*recv_data
|
||||||
sLog.outDebug( "WORLD: Sent MSG_PVP_LOG_DATA Message");
|
sLog.outDebug( "WORLD: Sent MSG_PVP_LOG_DATA Message");
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleBattleGroundListOpcode( WorldPacket &recv_data )
|
void WorldSession::HandleBattlefieldListOpcode( WorldPacket &recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 4);
|
CHECK_PACKET_SIZE(recv_data, 4);
|
||||||
|
|
||||||
|
|
@ -306,7 +306,7 @@ void WorldSession::HandleBattleGroundListOpcode( WorldPacket &recv_data )
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleBattleGroundPlayerPortOpcode( WorldPacket &recv_data )
|
void WorldSession::HandleBattleFieldPortOpcode( WorldPacket &recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 1+1+4+2+1);
|
CHECK_PACKET_SIZE(recv_data, 1+1+4+2+1);
|
||||||
|
|
||||||
|
|
@ -499,7 +499,7 @@ void WorldSession::HandleBattleGroundPlayerPortOpcode( WorldPacket &recv_data )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleBattleGroundLeaveOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleLeaveBattlefieldOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
//CHECK_PACKET_SIZE(recv_data, 1+1+4+2);
|
//CHECK_PACKET_SIZE(recv_data, 1+1+4+2);
|
||||||
|
|
||||||
|
|
@ -627,7 +627,7 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
|
||||||
bg->AddPlayerToResurrectQueue(guid, _player->GetGUID());
|
bg->AddPlayerToResurrectQueue(guid, _player->GetGUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleBattleGroundArenaJoin( WorldPacket & recv_data )
|
void WorldSession::HandleBattlemasterJoinArena( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 8+1+1+1);
|
CHECK_PACKET_SIZE(recv_data, 8+1+1+1);
|
||||||
|
|
||||||
|
|
@ -668,7 +668,7 @@ void WorldSession::HandleBattleGroundArenaJoin( WorldPacket & recv_data )
|
||||||
arenatype = ARENA_TYPE_5v5;
|
arenatype = ARENA_TYPE_5v5;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sLog.outError("Unknown arena slot %u at HandleBattleGroundArenaJoin()", arenaslot);
|
sLog.outError("Unknown arena slot %u at HandleBattlemasterJoinArena()", arenaslot);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -788,7 +788,7 @@ void WorldSession::HandleBattleGroundArenaJoin( WorldPacket & recv_data )
|
||||||
sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].Update(bgTypeId, _player->GetBattleGroundQueueIdFromLevel(bgTypeId), arenatype, isRated, arenaRating);
|
sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].Update(bgTypeId, _player->GetBattleGroundQueueIdFromLevel(bgTypeId), arenatype, isRated, arenaRating);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleBattleGroundReportAFK( WorldPacket & recv_data )
|
void WorldSession::HandleReportPvPAFK( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 8);
|
CHECK_PACKET_SIZE(recv_data, 8);
|
||||||
|
|
||||||
|
|
@ -798,11 +798,11 @@ void WorldSession::HandleBattleGroundReportAFK( WorldPacket & recv_data )
|
||||||
|
|
||||||
if (!reportedPlayer)
|
if (!reportedPlayer)
|
||||||
{
|
{
|
||||||
sLog.outDebug("WorldSession::HandleBattleGroundReportAFK: player not found");
|
sLog.outDebug("WorldSession::HandleReportPvPAFK: player not found");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sLog.outDebug("WorldSession::HandleBattleGroundReportAFK: %s reported %s", _player->GetName(), reportedPlayer->GetName());
|
sLog.outDebug("WorldSession::HandleReportPvPAFK: %s reported %s", _player->GetName(), reportedPlayer->GetName());
|
||||||
|
|
||||||
reportedPlayer->ReportedAfkBy(_player);
|
reportedPlayer->ReportedAfkBy(_player);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
INSTANTIATE_SINGLETON_1( AllianceChannelMgr );
|
INSTANTIATE_SINGLETON_1( AllianceChannelMgr );
|
||||||
INSTANTIATE_SINGLETON_1( HordeChannelMgr );
|
INSTANTIATE_SINGLETON_1( HordeChannelMgr );
|
||||||
|
|
||||||
void WorldSession::HandleChannelJoin(WorldPacket& recvPacket)
|
void WorldSession::HandleJoinChannel(WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
||||||
//recvPacket.hexlike();
|
//recvPacket.hexlike();
|
||||||
|
|
@ -48,7 +48,7 @@ void WorldSession::HandleChannelJoin(WorldPacket& recvPacket)
|
||||||
chn->Join(_player->GetGUID(), pass.c_str());
|
chn->Join(_player->GetGUID(), pass.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChannelLeave(WorldPacket& recvPacket)
|
void WorldSession::HandleLeaveChannel(WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
||||||
//recvPacket.hexlike();
|
//recvPacket.hexlike();
|
||||||
|
|
@ -313,7 +313,7 @@ void WorldSession::HandleChannelUnban(WorldPacket& recvPacket)
|
||||||
chn->UnBan(_player->GetGUID(), otp.c_str());
|
chn->UnBan(_player->GetGUID(), otp.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChannelAnnounce(WorldPacket& recvPacket)
|
void WorldSession::HandleChannelAnnouncements(WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
||||||
//recvPacket.hexlike();
|
//recvPacket.hexlike();
|
||||||
|
|
@ -339,7 +339,7 @@ void WorldSession::HandleChannelModerate(WorldPacket& recvPacket)
|
||||||
chn->Moderate(_player->GetGUID());
|
chn->Moderate(_player->GetGUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChannelRosterQuery(WorldPacket &recvPacket)
|
void WorldSession::HandleChannelDisplayListQuery(WorldPacket &recvPacket)
|
||||||
{
|
{
|
||||||
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
||||||
//recvPacket.hexlike();
|
//recvPacket.hexlike();
|
||||||
|
|
@ -352,7 +352,7 @@ void WorldSession::HandleChannelRosterQuery(WorldPacket &recvPacket)
|
||||||
chn->List(_player);
|
chn->List(_player);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChannelInfoQuery(WorldPacket &recvPacket)
|
void WorldSession::HandleGetChannelMemberCount(WorldPacket &recvPacket)
|
||||||
{
|
{
|
||||||
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
||||||
//recvPacket.hexlike();
|
//recvPacket.hexlike();
|
||||||
|
|
@ -373,7 +373,7 @@ void WorldSession::HandleChannelInfoQuery(WorldPacket &recvPacket)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChannelJoinNotify(WorldPacket &recvPacket)
|
void WorldSession::HandleSetChannelWatch(WorldPacket &recvPacket)
|
||||||
{
|
{
|
||||||
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
|
||||||
//recvPacket.hexlike();
|
//recvPacket.hexlike();
|
||||||
|
|
|
||||||
|
|
@ -925,7 +925,7 @@ void WorldSession::HandleTutorialReset( WorldPacket & /*recv_data*/ )
|
||||||
GetPlayer()->SetTutorialInt( i, 0x00000000 );
|
GetPlayer()->SetTutorialInt( i, 0x00000000 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleSetWatchedFactionIndexOpcode(WorldPacket & recv_data)
|
void WorldSession::HandleSetWatchedFactionOpcode(WorldPacket & recv_data)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,4);
|
CHECK_PACKET_SIZE(recv_data,4);
|
||||||
|
|
||||||
|
|
@ -935,7 +935,7 @@ void WorldSession::HandleSetWatchedFactionIndexOpcode(WorldPacket & recv_data)
|
||||||
GetPlayer()->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fact);
|
GetPlayer()->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fact);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleSetWatchedFactionInactiveOpcode(WorldPacket & recv_data)
|
void WorldSession::HandleSetFactionInactiveOpcode(WorldPacket & recv_data)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,4+1);
|
CHECK_PACKET_SIZE(recv_data,4+1);
|
||||||
|
|
||||||
|
|
@ -947,19 +947,19 @@ void WorldSession::HandleSetWatchedFactionInactiveOpcode(WorldPacket & recv_data
|
||||||
_player->GetReputationMgr().SetInactive(replistid, inactive);
|
_player->GetReputationMgr().SetInactive(replistid, inactive);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleToggleHelmOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleShowingHelmOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
DEBUG_LOG("CMSG_TOGGLE_HELM for %s", _player->GetName());
|
DEBUG_LOG("CMSG_SHOWING_HELM for %s", _player->GetName());
|
||||||
_player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM);
|
_player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleToggleCloakOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleShowingCloakOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
DEBUG_LOG("CMSG_TOGGLE_CLOAK for %s", _player->GetName());
|
DEBUG_LOG("CMSG_SHOWING_CLOAK for %s", _player->GetName());
|
||||||
_player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK);
|
_player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChangePlayerNameOpcode(WorldPacket& recv_data)
|
void WorldSession::HandleCharRenameOpcode(WorldPacket& recv_data)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 8+1);
|
CHECK_PACKET_SIZE(recv_data, 8+1);
|
||||||
|
|
||||||
|
|
@ -1042,7 +1042,7 @@ void WorldSession::HandleChangePlayerNameOpcodeCallBack(QueryResult *result, uin
|
||||||
session->SendPacket(&data);
|
session->SendPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleDeclinedPlayerNameOpcode(WorldPacket& recv_data)
|
void WorldSession::HandleSetPlayerDeclinedNames(WorldPacket& recv_data)
|
||||||
{
|
{
|
||||||
uint64 guid;
|
uint64 guid;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -613,7 +613,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
|
||||||
sLog.outErrorDb( "CreatureEventAI: Event %d incremented Phase above %u. Phase mask cannot be used with phases past %u. CreatureEntry = %d", EventId, MAX_PHASE-1, MAX_PHASE-1, m_creature->GetEntry());
|
sLog.outErrorDb( "CreatureEventAI: Event %d incremented Phase above %u. Phase mask cannot be used with phases past %u. CreatureEntry = %d", EventId, MAX_PHASE-1, MAX_PHASE-1, m_creature->GetEntry());
|
||||||
Phase = MAX_PHASE-1;
|
Phase = MAX_PHASE-1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Phase = new_phase;
|
Phase = new_phase;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -197,69 +197,69 @@ struct CreatureEventAI_Action
|
||||||
uint32 modelId;
|
uint32 modelId;
|
||||||
} morph;
|
} morph;
|
||||||
// ACTION_T_SOUND = 4
|
// ACTION_T_SOUND = 4
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 soundId;
|
uint32 soundId;
|
||||||
} sound;
|
} sound;
|
||||||
// ACTION_T_EMOTE = 5
|
// ACTION_T_EMOTE = 5
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 emoteId;
|
uint32 emoteId;
|
||||||
} emote;
|
} emote;
|
||||||
// ACTION_T_RANDOM_SOUND = 9
|
// ACTION_T_RANDOM_SOUND = 9
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int32 soundId1; // (-1 in any field means no output if randomed that field)
|
int32 soundId1; // (-1 in any field means no output if randomed that field)
|
||||||
int32 soundId2;
|
int32 soundId2;
|
||||||
int32 soundId3;
|
int32 soundId3;
|
||||||
} random_sound;
|
} random_sound;
|
||||||
// ACTION_T_RANDOM_EMOTE = 10
|
// ACTION_T_RANDOM_EMOTE = 10
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int32 emoteId1; // (-1 in any field means no output if randomed that field)
|
int32 emoteId1; // (-1 in any field means no output if randomed that field)
|
||||||
int32 emoteId2;
|
int32 emoteId2;
|
||||||
int32 emoteId3;
|
int32 emoteId3;
|
||||||
} random_emote;
|
} random_emote;
|
||||||
// ACTION_T_CAST = 11
|
// ACTION_T_CAST = 11
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 spellId;
|
uint32 spellId;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
uint32 castFlags;
|
uint32 castFlags;
|
||||||
} cast;
|
} cast;
|
||||||
// ACTION_T_SUMMON = 12
|
// ACTION_T_SUMMON = 12
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 creatured;
|
uint32 creatured;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
uint32 duration;
|
uint32 duration;
|
||||||
} summon;
|
} summon;
|
||||||
// ACTION_T_THREAT_SINGLE_PCT = 13
|
// ACTION_T_THREAT_SINGLE_PCT = 13
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int32 percent;
|
int32 percent;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
} threat_single_pct;
|
} threat_single_pct;
|
||||||
// ACTION_T_THREAT_ALL_PCT = 14
|
// ACTION_T_THREAT_ALL_PCT = 14
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int32 percent;
|
int32 percent;
|
||||||
} threat_all_pct;
|
} threat_all_pct;
|
||||||
// ACTION_T_QUEST_EVENT = 15
|
// ACTION_T_QUEST_EVENT = 15
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 questId;
|
uint32 questId;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
} quest_event;
|
} quest_event;
|
||||||
// ACTION_T_CAST_EVENT = 16
|
// ACTION_T_CAST_EVENT = 16
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 creatureId;
|
uint32 creatureId;
|
||||||
uint32 spellId;
|
uint32 spellId;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
} cast_event;
|
} cast_event;
|
||||||
// ACTION_T_SET_UNIT_FIELD = 17
|
// ACTION_T_SET_UNIT_FIELD = 17
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 field;
|
uint32 field;
|
||||||
uint32 value;
|
uint32 value;
|
||||||
|
|
@ -267,94 +267,94 @@ struct CreatureEventAI_Action
|
||||||
} set_unit_field;
|
} set_unit_field;
|
||||||
// ACTION_T_SET_UNIT_FLAG = 18, // value provided mask bits that will be set
|
// ACTION_T_SET_UNIT_FLAG = 18, // value provided mask bits that will be set
|
||||||
// ACTION_T_REMOVE_UNIT_FLAG = 19, // value provided mask bits that will be clear
|
// ACTION_T_REMOVE_UNIT_FLAG = 19, // value provided mask bits that will be clear
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 value;
|
uint32 value;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
} unit_flag;
|
} unit_flag;
|
||||||
// ACTION_T_AUTO_ATTACK = 20
|
// ACTION_T_AUTO_ATTACK = 20
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 state; // 0 = stop attack, anything else means continue attacking
|
uint32 state; // 0 = stop attack, anything else means continue attacking
|
||||||
} auto_attack;
|
} auto_attack;
|
||||||
// ACTION_T_COMBAT_MOVEMENT = 21
|
// ACTION_T_COMBAT_MOVEMENT = 21
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 state; // 0 = stop combat based movement, anything else continue attacking
|
uint32 state; // 0 = stop combat based movement, anything else continue attacking
|
||||||
} combat_movement;
|
} combat_movement;
|
||||||
// ACTION_T_SET_PHASE = 22
|
// ACTION_T_SET_PHASE = 22
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 phase;
|
uint32 phase;
|
||||||
} set_phase;
|
} set_phase;
|
||||||
// ACTION_T_INC_PHASE = 23
|
// ACTION_T_INC_PHASE = 23
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int32 step;
|
int32 step;
|
||||||
} set_inc_phase;
|
} set_inc_phase;
|
||||||
// ACTION_T_QUEST_EVENT_ALL = 26
|
// ACTION_T_QUEST_EVENT_ALL = 26
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 questId;
|
uint32 questId;
|
||||||
} quest_event_all;
|
} quest_event_all;
|
||||||
// ACTION_T_CAST_EVENT_ALL = 27
|
// ACTION_T_CAST_EVENT_ALL = 27
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 creatureId;
|
uint32 creatureId;
|
||||||
uint32 spellId;
|
uint32 spellId;
|
||||||
} cast_event_all;
|
} cast_event_all;
|
||||||
// ACTION_T_REMOVEAURASFROMSPELL = 28
|
// ACTION_T_REMOVEAURASFROMSPELL = 28
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 target;
|
uint32 target;
|
||||||
uint32 spellId;
|
uint32 spellId;
|
||||||
} remove_aura;
|
} remove_aura;
|
||||||
// ACTION_T_RANGED_MOVEMENT = 29
|
// ACTION_T_RANGED_MOVEMENT = 29
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 distance;
|
uint32 distance;
|
||||||
int32 angle;
|
int32 angle;
|
||||||
} ranged_movement;
|
} ranged_movement;
|
||||||
// ACTION_T_RANDOM_PHASE = 30
|
// ACTION_T_RANDOM_PHASE = 30
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 phase1;
|
uint32 phase1;
|
||||||
uint32 phase2;
|
uint32 phase2;
|
||||||
uint32 phase3;
|
uint32 phase3;
|
||||||
} random_phase;
|
} random_phase;
|
||||||
// ACTION_T_RANDOM_PHASE_RANGE = 31
|
// ACTION_T_RANDOM_PHASE_RANGE = 31
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 phaseMin;
|
uint32 phaseMin;
|
||||||
uint32 phaseMax;
|
uint32 phaseMax;
|
||||||
} random_phase_range;
|
} random_phase_range;
|
||||||
// ACTION_T_SUMMON_ID = 32
|
// ACTION_T_SUMMON_ID = 32
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 creatureId;
|
uint32 creatureId;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
uint32 spawnId;
|
uint32 spawnId;
|
||||||
} summon_id;
|
} summon_id;
|
||||||
// ACTION_T_KILLED_MONSTER = 33
|
// ACTION_T_KILLED_MONSTER = 33
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 creatureId;
|
uint32 creatureId;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
} killed_monster;
|
} killed_monster;
|
||||||
// ACTION_T_SET_INST_DATA = 34
|
// ACTION_T_SET_INST_DATA = 34
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 field;
|
uint32 field;
|
||||||
uint32 value;
|
uint32 value;
|
||||||
} set_inst_data;
|
} set_inst_data;
|
||||||
// ACTION_T_SET_INST_DATA64 = 35
|
// ACTION_T_SET_INST_DATA64 = 35
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 field;
|
uint32 field;
|
||||||
uint32 target;
|
uint32 target;
|
||||||
} set_inst_data64;
|
} set_inst_data64;
|
||||||
// ACTION_T_UPDATE_TEMPLATE = 36
|
// ACTION_T_UPDATE_TEMPLATE = 36
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 creatureId;
|
uint32 creatureId;
|
||||||
uint32 team;
|
uint32 team;
|
||||||
|
|
@ -502,7 +502,7 @@ struct CreatureEventAI_Event
|
||||||
} receive_emote;
|
} receive_emote;
|
||||||
|
|
||||||
// RAW
|
// RAW
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 param1;
|
uint32 param1;
|
||||||
uint32 param2;
|
uint32 param2;
|
||||||
|
|
|
||||||
|
|
@ -735,7 +735,8 @@ struct CurrencyTypesEntry
|
||||||
{
|
{
|
||||||
//uint32 ID; // 0 not used
|
//uint32 ID; // 0 not used
|
||||||
uint32 ItemId; // 1 used as real index
|
uint32 ItemId; // 1 used as real index
|
||||||
uint32 BitIndex; // 2 bit index in PLAYER_FIELD_KNOWN_CURRENCIES (1 << (index-1))
|
//uint32 Category; // 2 may be category
|
||||||
|
uint32 BitIndex; // 3 bit index in PLAYER_FIELD_KNOWN_CURRENCIES (1 << (index-1))
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DurabilityCostsEntry
|
struct DurabilityCostsEntry
|
||||||
|
|
@ -999,8 +1000,8 @@ struct ItemLimitCategoryEntry
|
||||||
uint32 ID; // 0 Id
|
uint32 ID; // 0 Id
|
||||||
//char* name[16] // 1-16 m_name_lang
|
//char* name[16] // 1-16 m_name_lang
|
||||||
// 17 name flags
|
// 17 name flags
|
||||||
uint32 maxCount; // max allowed equipped as item or in gem slot
|
uint32 maxCount; // 18, max allowed equipped as item or in gem slot
|
||||||
//uint32 unk; // 1 for prismatic gems only...
|
//uint32 unk; // 19, 1 for gems only...
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ItemRandomPropertiesEntry
|
struct ItemRandomPropertiesEntry
|
||||||
|
|
@ -1511,7 +1512,7 @@ struct SummonPropertiesEntry
|
||||||
{
|
{
|
||||||
uint32 Id; // 0
|
uint32 Id; // 0
|
||||||
uint32 Group; // 1, enum SummonPropGroup, 0 - can't be controlled?, 1 - something guardian?, 2 - pet?, 3 - something controllable?, 4 - taxi/mount?
|
uint32 Group; // 1, enum SummonPropGroup, 0 - can't be controlled?, 1 - something guardian?, 2 - pet?, 3 - something controllable?, 4 - taxi/mount?
|
||||||
uint32 Unk2; // 2, 14 rows > 0
|
uint32 FactionId; // 2, 14 rows > 0
|
||||||
uint32 Type; // 3, enum SummonPropType
|
uint32 Type; // 3, enum SummonPropType
|
||||||
uint32 Slot; // 4, 0-6
|
uint32 Slot; // 4, 0-6
|
||||||
uint32 Flags; // 5, enum SummonPropFlags
|
uint32 Flags; // 5, enum SummonPropFlags
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ void WorldSession::HandleGMTicketUpdateTextOpcode( WorldPacket & recv_data )
|
||||||
sLog.outError("Ticket update: Player %s (GUID: %u) doesn't have active ticket", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow());
|
sLog.outError("Ticket update: Player %s (GUID: %u) doesn't have active ticket", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGMTicketDeleteOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleGMTicketDeleteTicketOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
ticketmgr.Delete(GetPlayer()->GetGUIDLow());
|
ticketmgr.Delete(GetPlayer()->GetGUIDLow());
|
||||||
|
|
||||||
|
|
@ -132,7 +132,7 @@ void WorldSession::HandleGMTicketCreateOpcode( WorldPacket & recv_data )
|
||||||
|
|
||||||
void WorldSession::HandleGMTicketSystemStatusOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleGMTicketSystemStatusOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
WorldPacket data( SMSG_GMTICKET_SYSTEMSTATUS,4 );
|
WorldPacket data( SMSG_GMTICKET_SYSTEMSTATUS, 4 );
|
||||||
data << uint32(1); // we can also disable ticket system by sending 0 value
|
data << uint32(1); // we can also disable ticket system by sending 0 value
|
||||||
|
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,7 @@ struct GameObjectInfo
|
||||||
uint32 openTextID; //14 can be used to replace castBarCaption?
|
uint32 openTextID; //14 can be used to replace castBarCaption?
|
||||||
uint32 groupLootRules; //15
|
uint32 groupLootRules; //15
|
||||||
} chest;
|
} chest;
|
||||||
|
//4 GAMEOBJECT_TYPE_BINDER - empty
|
||||||
//5 GAMEOBJECT_TYPE_GENERIC
|
//5 GAMEOBJECT_TYPE_GENERIC
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
@ -205,6 +206,7 @@ struct GameObjectInfo
|
||||||
uint32 eventID; //2
|
uint32 eventID; //2
|
||||||
uint32 openTextID; //3 can be used to replace castBarCaption?
|
uint32 openTextID; //3 can be used to replace castBarCaption?
|
||||||
} camera;
|
} camera;
|
||||||
|
//14 GAMEOBJECT_TYPE_MAPOBJECT - empty
|
||||||
//15 GAMEOBJECT_TYPE_MO_TRANSPORT
|
//15 GAMEOBJECT_TYPE_MO_TRANSPORT
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
@ -216,6 +218,7 @@ struct GameObjectInfo
|
||||||
uint32 transportPhysics; //5
|
uint32 transportPhysics; //5
|
||||||
uint32 mapID; //6
|
uint32 mapID; //6
|
||||||
} moTransport;
|
} moTransport;
|
||||||
|
//16 GAMEOBJECT_TYPE_DUELFLAG - empty
|
||||||
//17 GAMEOBJECT_TYPE_FISHINGNODE
|
//17 GAMEOBJECT_TYPE_FISHINGNODE
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
@ -234,6 +237,7 @@ struct GameObjectInfo
|
||||||
uint32 castersGrouped; //6
|
uint32 castersGrouped; //6
|
||||||
uint32 ritualNoTargetCheck; //7
|
uint32 ritualNoTargetCheck; //7
|
||||||
} summoningRitual;
|
} summoningRitual;
|
||||||
|
//19 GAMEOBJECT_TYPE_MAILBOX - empty
|
||||||
//20 GAMEOBJECT_TYPE_AUCTIONHOUSE
|
//20 GAMEOBJECT_TYPE_AUCTIONHOUSE
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
@ -349,7 +353,8 @@ struct GameObjectInfo
|
||||||
uint32 state1Name; //2
|
uint32 state1Name; //2
|
||||||
uint32 state2Name; //3
|
uint32 state2Name; //3
|
||||||
} destructibleBuilding;
|
} destructibleBuilding;
|
||||||
//34 GAMEOBJECT_TYPE_TRAPDOOR
|
//34 GAMEOBJECT_TYPE_GUILDBANK - empty
|
||||||
|
//35 GAMEOBJECT_TYPE_TRAPDOOR
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint32 whenToPause; // 0
|
uint32 whenToPause; // 0
|
||||||
|
|
@ -358,7 +363,7 @@ struct GameObjectInfo
|
||||||
} trapDoor;
|
} trapDoor;
|
||||||
|
|
||||||
// not use for specific field access (only for output with loop by all filed), also this determinate max union size
|
// not use for specific field access (only for output with loop by all filed), also this determinate max union size
|
||||||
struct // GAMEOBJECT_TYPE_SPELLCASTER
|
struct
|
||||||
{
|
{
|
||||||
uint32 data[24];
|
uint32 data[24];
|
||||||
} raw;
|
} raw;
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,7 @@ void PlayerMenu::SendGossipMenu( uint32 TitleTextId, uint64 npcGUID )
|
||||||
Quest const* pQuest = objmgr.GetQuestTemplate(questID);
|
Quest const* pQuest = objmgr.GetQuestTemplate(questID);
|
||||||
|
|
||||||
data << uint32(questID);
|
data << uint32(questID);
|
||||||
data << uint32( qItem.m_qIcon );
|
data << uint32(qItem.m_qIcon);
|
||||||
data << uint32(pSession->GetPlayer()->GetQuestLevel(pQuest));
|
data << uint32(pSession->GetPlayer()->GetQuestLevel(pQuest));
|
||||||
std::string Title = pQuest->GetTitle();
|
std::string Title = pQuest->GetTitle();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -926,10 +926,10 @@ namespace MaNGOS
|
||||||
return false;
|
return false;
|
||||||
if(!u->CanAssistTo(i_obj,i_enemy))
|
if(!u->CanAssistTo(i_obj,i_enemy))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if(!i_obj->IsWithinDistInMap(u, i_range))
|
if(!i_obj->IsWithinDistInMap(u, i_range))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if(!i_obj->IsWithinLOSInMap(u))
|
if(!i_obj->IsWithinLOSInMap(u))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -258,7 +258,7 @@ void WorldSession::HandleGroupUninviteGuidOpcode(WorldPacket & recv_data)
|
||||||
SendPartyResult(PARTY_OP_LEAVE, "", PARTY_RESULT_NOT_IN_YOUR_PARTY);
|
SendPartyResult(PARTY_OP_LEAVE, "", PARTY_RESULT_NOT_IN_YOUR_PARTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGroupUninviteNameOpcode(WorldPacket & recv_data)
|
void WorldSession::HandleGroupUninviteOpcode(WorldPacket & recv_data)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,1);
|
CHECK_PACKET_SIZE(recv_data,1);
|
||||||
|
|
||||||
|
|
@ -272,7 +272,7 @@ void WorldSession::HandleGroupUninviteNameOpcode(WorldPacket & recv_data)
|
||||||
// can't uninvite yourself
|
// can't uninvite yourself
|
||||||
if(GetPlayer()->GetName() == membername)
|
if(GetPlayer()->GetName() == membername)
|
||||||
{
|
{
|
||||||
sLog.outError("WorldSession::HandleGroupUninviteNameOpcode: leader %s(%d) tried to uninvite himself from the group.", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow());
|
sLog.outError("WorldSession::HandleGroupUninviteOpcode: leader %s(%d) tried to uninvite himself from the group.", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -324,7 +324,7 @@ void WorldSession::HandleGroupSetLeaderOpcode( WorldPacket & recv_data )
|
||||||
group->ChangeLeader(guid);
|
group->ChangeLeader(guid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGroupLeaveOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleGroupDisbandOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
if(!GetPlayer()->GetGroup())
|
if(!GetPlayer()->GetGroup())
|
||||||
return;
|
return;
|
||||||
|
|
@ -446,7 +446,7 @@ void WorldSession::HandleRandomRollOpcode(WorldPacket& recv_data)
|
||||||
SendPacket(&data);
|
SendPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleRaidIconTargetOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleRaidTargetUpdateOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,1);
|
CHECK_PACKET_SIZE(recv_data,1);
|
||||||
|
|
||||||
|
|
@ -479,7 +479,7 @@ void WorldSession::HandleRaidIconTargetOpcode( WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleRaidConvertOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleGroupRaidConvertOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
Group *group = GetPlayer()->GetGroup();
|
Group *group = GetPlayer()->GetGroup();
|
||||||
if(!group)
|
if(!group)
|
||||||
|
|
@ -528,7 +528,7 @@ void WorldSession::HandleGroupChangeSubGroupOpcode( WorldPacket & recv_data )
|
||||||
group->ChangeMembersGroup(objmgr.GetPlayer(name.c_str()), groupNr);
|
group->ChangeMembersGroup(objmgr.GetPlayer(name.c_str()), groupNr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGroupAssistantOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleGroupAssistantLeaderOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+1);
|
CHECK_PACKET_SIZE(recv_data,8+1);
|
||||||
|
|
||||||
|
|
@ -550,9 +550,10 @@ void WorldSession::HandleGroupAssistantOpcode( WorldPacket & recv_data )
|
||||||
group->SetAssistant(guid, (flag==0?false:true));
|
group->SetAssistant(guid, (flag==0?false:true));
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGroupPromoteOpcode( WorldPacket & recv_data )
|
void WorldSession::HandlePartyAssignmentOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 1+1+8);
|
CHECK_PACKET_SIZE(recv_data, 1+1+8);
|
||||||
|
sLog.outDebug("MSG_PARTY_ASSIGNMENT");
|
||||||
|
|
||||||
Group *group = GetPlayer()->GetGroup();
|
Group *group = GetPlayer()->GetGroup();
|
||||||
if(!group)
|
if(!group)
|
||||||
|
|
@ -612,7 +613,7 @@ void WorldSession::HandleRaidReadyCheckOpcode( WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleRaidReadyCheckFinishOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleRaidReadyCheckFinishedOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
//Group* group = GetPlayer()->GetGroup();
|
//Group* group = GetPlayer()->GetGroup();
|
||||||
//if(!group)
|
//if(!group)
|
||||||
|
|
@ -887,11 +888,11 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data )
|
||||||
sLog.outDebug( "WORLD: got CMSG_GROUP_CANCEL." );
|
sLog.outDebug( "WORLD: got CMSG_GROUP_CANCEL." );
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
void WorldSession::HandleGroupPassOnLootOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleOptOutOfLootOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 4);
|
CHECK_PACKET_SIZE(recv_data, 4);
|
||||||
|
|
||||||
sLog.outDebug("WORLD: Received CMSG_GROUP_PASS_ON_LOOT");
|
sLog.outDebug("WORLD: Received CMSG_OPT_OUT_OF_LOOT");
|
||||||
|
|
||||||
uint32 unkn;
|
uint32 unkn;
|
||||||
recv_data >> unkn;
|
recv_data >> unkn;
|
||||||
|
|
|
||||||
|
|
@ -740,7 +740,7 @@ void WorldSession::SendGuildCommandResult(uint32 typecmd, const std::string& str
|
||||||
//sLog.outDebug("WORLD: Sent (SMSG_GUILD_COMMAND_RESULT)");
|
//sLog.outDebug("WORLD: Sent (SMSG_GUILD_COMMAND_RESULT)");
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildChangeInfoOpcode(WorldPacket& recvPacket)
|
void WorldSession::HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recvPacket, 1);
|
CHECK_PACKET_SIZE(recvPacket, 1);
|
||||||
|
|
||||||
|
|
@ -766,7 +766,7 @@ void WorldSession::HandleGuildChangeInfoOpcode(WorldPacket& recvPacket)
|
||||||
guild->SetGINFO(GINFO);
|
guild->SetGINFO(GINFO);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket)
|
void WorldSession::HandleSaveGuildEmblemOpcode(WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recvPacket, 8+4+4+4+4+4);
|
CHECK_PACKET_SIZE(recvPacket, 8+4+4+4+4+4);
|
||||||
|
|
||||||
|
|
@ -787,7 +787,7 @@ void WorldSession::HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
//"That's not an emblem vendor!"
|
//"That's not an emblem vendor!"
|
||||||
SendSaveGuildEmblem(ERR_GUILDEMBLEM_INVALIDVENDOR);
|
SendSaveGuildEmblem(ERR_GUILDEMBLEM_INVALIDVENDOR);
|
||||||
sLog.outDebug("WORLD: HandleGuildSaveEmblemOpcode - Unit (GUID: %u) not found or you can't interact with him.", GUID_LOPART(vendorGuid));
|
sLog.outDebug("WORLD: HandleSaveGuildEmblemOpcode - Unit (GUID: %u) not found or you can't interact with him.", GUID_LOPART(vendorGuid));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -832,7 +832,7 @@ void WorldSession::HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket)
|
||||||
guild->Query(this);
|
guild->Query(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildEventLogOpcode(WorldPacket& /* recvPacket */)
|
void WorldSession::HandleGuildEventLogQueryOpcode(WorldPacket& /* recvPacket */)
|
||||||
{
|
{
|
||||||
// empty
|
// empty
|
||||||
sLog.outDebug("WORLD: Received (MSG_GUILD_EVENT_LOG_QUERY)");
|
sLog.outDebug("WORLD: Received (MSG_GUILD_EVENT_LOG_QUERY)");
|
||||||
|
|
@ -851,7 +851,7 @@ void WorldSession::HandleGuildEventLogOpcode(WorldPacket& /* recvPacket */)
|
||||||
|
|
||||||
/****** GUILD BANK *******/
|
/****** GUILD BANK *******/
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankGetMoneyAmount( WorldPacket & /* recv_data */ )
|
void WorldSession::HandleGuildBankMoneyWithdrawn( WorldPacket & /* recv_data */ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (MSG_GUILD_BANK_MONEY_WITHDRAWN)");
|
sLog.outDebug("WORLD: Received (MSG_GUILD_BANK_MONEY_WITHDRAWN)");
|
||||||
//recv_data.hexlike();
|
//recv_data.hexlike();
|
||||||
|
|
@ -867,7 +867,7 @@ void WorldSession::HandleGuildBankGetMoneyAmount( WorldPacket & /* recv_data */
|
||||||
pGuild->SendMoneyInfo(this, GetPlayer()->GetGUIDLow());
|
pGuild->SendMoneyInfo(this, GetPlayer()->GetGUIDLow());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankGetRights( WorldPacket& /* recv_data */ )
|
void WorldSession::HandleGuildPermissions( WorldPacket& /* recv_data */ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (MSG_GUILD_PERMISSIONS)");
|
sLog.outDebug("WORLD: Received (MSG_GUILD_PERMISSIONS)");
|
||||||
|
|
||||||
|
|
@ -897,7 +897,7 @@ void WorldSession::HandleGuildBankGetRights( WorldPacket& /* recv_data */ )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called when clicking on Guild bank gameobject */
|
/* Called when clicking on Guild bank gameobject */
|
||||||
void WorldSession::HandleGuildBankQuery( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankerActivate( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANKER_ACTIVATE)");
|
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANKER_ACTIVATE)");
|
||||||
CHECK_PACKET_SIZE(recv_data,8+1);
|
CHECK_PACKET_SIZE(recv_data,8+1);
|
||||||
|
|
@ -921,7 +921,7 @@ void WorldSession::HandleGuildBankQuery( WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called when opening guild bank tab only (first one) */
|
/* Called when opening guild bank tab only (first one) */
|
||||||
void WorldSession::HandleGuildBankTabColon( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankQueryTab( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_QUERY_TAB)");
|
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_QUERY_TAB)");
|
||||||
CHECK_PACKET_SIZE(recv_data,8+1+1);
|
CHECK_PACKET_SIZE(recv_data,8+1+1);
|
||||||
|
|
@ -947,7 +947,7 @@ void WorldSession::HandleGuildBankTabColon( WorldPacket & recv_data )
|
||||||
pGuild->DisplayGuildBankContent(this, TabId);
|
pGuild->DisplayGuildBankContent(this, TabId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankDeposit( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankDepositMoney( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_DEPOSIT_MONEY)");
|
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_DEPOSIT_MONEY)");
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4);
|
CHECK_PACKET_SIZE(recv_data,8+4);
|
||||||
|
|
@ -995,7 +995,7 @@ void WorldSession::HandleGuildBankDeposit( WorldPacket & recv_data )
|
||||||
pGuild->DisplayGuildBankMoneyUpdate();
|
pGuild->DisplayGuildBankMoneyUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankWithdraw( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankWithdrawMoney( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_WITHDRAW_MONEY)");
|
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_WITHDRAW_MONEY)");
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4);
|
CHECK_PACKET_SIZE(recv_data,8+4);
|
||||||
|
|
@ -1045,7 +1045,7 @@ void WorldSession::HandleGuildBankWithdraw( WorldPacket & recv_data )
|
||||||
pGuild->DisplayGuildBankMoneyUpdate();
|
pGuild->DisplayGuildBankMoneyUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankDepositItem( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankSwapItems( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_SWAP_ITEMS)");
|
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_SWAP_ITEMS)");
|
||||||
//recv_data.hexlike();
|
//recv_data.hexlike();
|
||||||
|
|
@ -1598,7 +1598,7 @@ void WorldSession::HandleGuildBankBuyTab( WorldPacket & recv_data )
|
||||||
pGuild->DisplayGuildBankTabsInfo(this);
|
pGuild->DisplayGuildBankTabsInfo(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankModifyTab( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankUpdateTab( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_UPDATE_TAB)");
|
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_UPDATE_TAB)");
|
||||||
//recv_data.hexlike();
|
//recv_data.hexlike();
|
||||||
|
|
@ -1635,7 +1635,7 @@ void WorldSession::HandleGuildBankModifyTab( WorldPacket & recv_data )
|
||||||
pGuild->DisplayGuildBankContent(this, TabId);
|
pGuild->DisplayGuildBankContent(this, TabId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankLog( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankLogQuery( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received (MSG_GUILD_BANK_LOG_QUERY)");
|
sLog.outDebug("WORLD: Received (MSG_GUILD_BANK_LOG_QUERY)");
|
||||||
CHECK_PACKET_SIZE(recv_data, 1);
|
CHECK_PACKET_SIZE(recv_data, 1);
|
||||||
|
|
@ -1654,7 +1654,7 @@ void WorldSession::HandleGuildBankLog( WorldPacket & recv_data )
|
||||||
pGuild->DisplayGuildBankLogs(this, TabId);
|
pGuild->DisplayGuildBankLogs(this, TabId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankTabText(WorldPacket &recv_data)
|
void WorldSession::HandleQueryGuildBankTabText(WorldPacket &recv_data)
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received MSG_QUERY_GUILD_BANK_TEXT");
|
sLog.outDebug("WORLD: Received MSG_QUERY_GUILD_BANK_TEXT");
|
||||||
CHECK_PACKET_SIZE(recv_data, 1);
|
CHECK_PACKET_SIZE(recv_data, 1);
|
||||||
|
|
@ -1673,7 +1673,7 @@ void WorldSession::HandleGuildBankTabText(WorldPacket &recv_data)
|
||||||
pGuild->SendGuildBankTabText(this, TabId);
|
pGuild->SendGuildBankTabText(this, TabId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankSetTabText(WorldPacket &recv_data)
|
void WorldSession::HandleSetGuildBankTabText(WorldPacket &recv_data)
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received CMSG_SET_GUILD_BANK_TEXT");
|
sLog.outDebug("WORLD: Received CMSG_SET_GUILD_BANK_TEXT");
|
||||||
CHECK_PACKET_SIZE(recv_data, 1+1);
|
CHECK_PACKET_SIZE(recv_data, 1+1);
|
||||||
|
|
|
||||||
|
|
@ -1007,7 +1007,7 @@ void WorldSession::HandleItemNameQueryOpcode(WorldPacket & recv_data)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sLog.outDebug("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item)", itemid);
|
sLog.outErrorDb("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item)", itemid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data)
|
void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data)
|
||||||
|
|
@ -1319,7 +1319,7 @@ void WorldSession::HandleSocketOpcode(WorldPacket& recv_data)
|
||||||
_player->ToggleMetaGemsActive(slot, true); //turn on all metagems (except for target item)
|
_player->ToggleMetaGemsActive(slot, true); //turn on all metagems (except for target item)
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleCancelTempItemEnchantmentOpcode(WorldPacket& recv_data)
|
void WorldSession::HandleCancelTempEnchantmentOpcode(WorldPacket& recv_data)
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: CMSG_CANCEL_TEMP_ENCHANTMENT");
|
sLog.outDebug("WORLD: CMSG_CANCEL_TEMP_ENCHANTMENT");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,7 @@ enum ITEM_FLAGS
|
||||||
|
|
||||||
enum BAG_FAMILY_MASK
|
enum BAG_FAMILY_MASK
|
||||||
{
|
{
|
||||||
|
BAG_FAMILY_MASK_NONE = 0x00000000,
|
||||||
BAG_FAMILY_MASK_ARROWS = 0x00000001,
|
BAG_FAMILY_MASK_ARROWS = 0x00000001,
|
||||||
BAG_FAMILY_MASK_BULLETS = 0x00000002,
|
BAG_FAMILY_MASK_BULLETS = 0x00000002,
|
||||||
BAG_FAMILY_MASK_SOUL_SHARDS = 0x00000004,
|
BAG_FAMILY_MASK_SOUL_SHARDS = 0x00000004,
|
||||||
|
|
@ -557,7 +558,7 @@ struct ItemPrototype
|
||||||
uint32 MaxDurability;
|
uint32 MaxDurability;
|
||||||
uint32 Area; // id from AreaTable.dbc
|
uint32 Area; // id from AreaTable.dbc
|
||||||
uint32 Map; // id from Map.dbc
|
uint32 Map; // id from Map.dbc
|
||||||
uint32 BagFamily; // bit string (1 << id from ItemBagFamily.dbc)
|
uint32 BagFamily; // bit mask (1 << id from ItemBagFamily.dbc)
|
||||||
uint32 TotemCategory; // id from TotemCategory.dbc
|
uint32 TotemCategory; // id from TotemCategory.dbc
|
||||||
_Socket Socket[MAX_ITEM_PROTO_SOCKETS];
|
_Socket Socket[MAX_ITEM_PROTO_SOCKETS];
|
||||||
uint32 socketBonus; // id from SpellItemEnchantment.dbc
|
uint32 socketBonus; // id from SpellItemEnchantment.dbc
|
||||||
|
|
|
||||||
|
|
@ -140,9 +140,9 @@ static void AttemptAddMore(Player* _player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfgAutoJoinOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleLfgSetAutoJoinOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_SET_LFG_AUTO_JOIN");
|
sLog.outDebug("CMSG_LFG_SET_AUTOJOIN");
|
||||||
LookingForGroup_auto_join = true;
|
LookingForGroup_auto_join = true;
|
||||||
|
|
||||||
if(!_player) // needed because STATUS_AUTHED
|
if(!_player) // needed because STATUS_AUTHED
|
||||||
|
|
@ -151,15 +151,15 @@ void WorldSession::HandleLfgAutoJoinOpcode( WorldPacket & /*recv_data*/ )
|
||||||
AttemptJoin(_player);
|
AttemptJoin(_player);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfgCancelAutoJoinOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleLfgClearAutoJoinOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_UNSET_LFG_AUTO_JOIN");
|
sLog.outDebug("CMSG_LFG_CLEAR_AUTOJOIN");
|
||||||
LookingForGroup_auto_join = false;
|
LookingForGroup_auto_join = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfmAutoAddMembersOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleLfmSetAutoFillOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_SET_LFM_AUTOADD");
|
sLog.outDebug("CMSG_LFM_SET_AUTOFILL");
|
||||||
LookingForGroup_auto_add = true;
|
LookingForGroup_auto_add = true;
|
||||||
|
|
||||||
if(!_player) // needed because STATUS_AUTHED
|
if(!_player) // needed because STATUS_AUTHED
|
||||||
|
|
@ -168,15 +168,16 @@ void WorldSession::HandleLfmAutoAddMembersOpcode( WorldPacket & /*recv_data*/ )
|
||||||
AttemptAddMore(_player);
|
AttemptAddMore(_player);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfmCancelAutoAddmembersOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleLfmClearAutoFillOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_UNSET_LFM_AUTOADD");
|
sLog.outDebug("CMSG_LFM_CLEAR_AUTOFILL");
|
||||||
LookingForGroup_auto_add = false;
|
LookingForGroup_auto_add = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ )
|
void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_LOOKING_FOR_GROUP_CLEAR");
|
// empty packet
|
||||||
|
sLog.outDebug("CMSG_CLEAR_LOOKING_FOR_GROUP");
|
||||||
|
|
||||||
for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i)
|
for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i)
|
||||||
_player->m_lookingForGroup.slots[i].Clear();
|
_player->m_lookingForGroup.slots[i].Clear();
|
||||||
|
|
@ -185,14 +186,15 @@ void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ )
|
||||||
_player->LeaveLFGChannel();
|
_player->LeaveLFGChannel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfmSetNoneOpcode( WorldPacket & /*recv_data */)
|
void WorldSession::HandleLfmClearOpcode( WorldPacket & /*recv_data */)
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_SET_LOOKING_FOR_NONE");
|
// empty packet
|
||||||
|
sLog.outDebug("CMSG_CLEAR_LOOKING_FOR_MORE");
|
||||||
|
|
||||||
_player->m_lookingForGroup.more.Clear();
|
_player->m_lookingForGroup.more.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfmSetOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleSetLfmOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,4);
|
CHECK_PACKET_SIZE(recv_data,4);
|
||||||
|
|
||||||
|
|
@ -214,11 +216,11 @@ void WorldSession::HandleLfmSetOpcode( WorldPacket & recv_data )
|
||||||
SendLfgResult(type, entry, 1);
|
SendLfgResult(type, entry, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfgSetCommentOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleSetLfgCommentOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,1);
|
CHECK_PACKET_SIZE(recv_data, 1);
|
||||||
|
|
||||||
sLog.outDebug("CMSG_SET_COMMENTARY");
|
sLog.outDebug("CMSG_SET_LFG_COMMENT");
|
||||||
//recv_data.hexlike();
|
//recv_data.hexlike();
|
||||||
|
|
||||||
std::string comment;
|
std::string comment;
|
||||||
|
|
@ -230,7 +232,7 @@ void WorldSession::HandleLfgSetCommentOpcode( WorldPacket & recv_data )
|
||||||
|
|
||||||
void WorldSession::HandleLookingForGroup(WorldPacket& recv_data)
|
void WorldSession::HandleLookingForGroup(WorldPacket& recv_data)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,4+4+4);
|
CHECK_PACKET_SIZE(recv_data, 4+4+4);
|
||||||
|
|
||||||
sLog.outDebug("MSG_LOOKING_FOR_GROUP");
|
sLog.outDebug("MSG_LOOKING_FOR_GROUP");
|
||||||
//recv_data.hexlike();
|
//recv_data.hexlike();
|
||||||
|
|
|
||||||
|
|
@ -658,7 +658,7 @@ bool ChatHandler::HandleModifyKnownTitlesCommand(const char* args)
|
||||||
|
|
||||||
uint64 titles2 = titles;
|
uint64 titles2 = titles;
|
||||||
|
|
||||||
for(int i=1; i < sCharTitlesStore.GetNumRows(); ++i)
|
for(int i = 1; i < sCharTitlesStore.GetNumRows(); ++i)
|
||||||
if(CharTitlesEntry const* tEntry = sCharTitlesStore.LookupEntry(i))
|
if(CharTitlesEntry const* tEntry = sCharTitlesStore.LookupEntry(i))
|
||||||
titles2 &= ~(uint64(1) << tEntry->bit_index);
|
titles2 &= ~(uint64(1) << tEntry->bit_index);
|
||||||
|
|
||||||
|
|
@ -2000,7 +2000,7 @@ bool ChatHandler::HandleTeleNameCommand(const char * args)
|
||||||
extractOptFirstArg((char*)args,&nameStr,&teleStr);
|
extractOptFirstArg((char*)args,&nameStr,&teleStr);
|
||||||
if(!teleStr)
|
if(!teleStr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Player* target;
|
Player* target;
|
||||||
uint64 target_guid;
|
uint64 target_guid;
|
||||||
std::string target_name;
|
std::string target_name;
|
||||||
|
|
|
||||||
|
|
@ -3170,7 +3170,7 @@ bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
|
||||||
bool ChatHandler::HandleGuildCreateCommand(const char* args)
|
bool ChatHandler::HandleGuildCreateCommand(const char* args)
|
||||||
{
|
{
|
||||||
if(!*args)
|
if(!*args)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// if not guild name only (in "") then player name
|
// if not guild name only (in "") then player name
|
||||||
Player* target;
|
Player* target;
|
||||||
|
|
@ -3209,7 +3209,7 @@ bool ChatHandler::HandleGuildCreateCommand(const char* args)
|
||||||
bool ChatHandler::HandleGuildInviteCommand(const char *args)
|
bool ChatHandler::HandleGuildInviteCommand(const char *args)
|
||||||
{
|
{
|
||||||
if(!*args)
|
if(!*args)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// if not guild name only (in "") then player name
|
// if not guild name only (in "") then player name
|
||||||
uint64 target_guid;
|
uint64 target_guid;
|
||||||
|
|
|
||||||
|
|
@ -286,7 +286,7 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
|
|
||||||
//called when mail is read
|
//called when mail is read
|
||||||
void WorldSession::HandleMarkAsRead(WorldPacket & recv_data )
|
void WorldSession::HandleMailMarkAsRead(WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4);
|
CHECK_PACKET_SIZE(recv_data,8+4);
|
||||||
|
|
||||||
|
|
@ -332,7 +332,7 @@ void WorldSession::HandleMailDelete(WorldPacket & recv_data )
|
||||||
pl->SendMailResult(mailId, MAIL_DELETED, MAIL_OK);
|
pl->SendMailResult(mailId, MAIL_DELETED, MAIL_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleReturnToSender(WorldPacket & recv_data )
|
void WorldSession::HandleMailReturnToSender(WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4);
|
CHECK_PACKET_SIZE(recv_data,8+4);
|
||||||
|
|
||||||
|
|
@ -432,7 +432,7 @@ void WorldSession::SendReturnToSender(uint8 messageType, uint32 sender_acc, uint
|
||||||
}
|
}
|
||||||
|
|
||||||
//called when player takes item attached in mail
|
//called when player takes item attached in mail
|
||||||
void WorldSession::HandleTakeItem(WorldPacket & recv_data )
|
void WorldSession::HandleMailTakeItem(WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4+4);
|
CHECK_PACKET_SIZE(recv_data,8+4+4);
|
||||||
|
|
||||||
|
|
@ -527,7 +527,7 @@ void WorldSession::HandleTakeItem(WorldPacket & recv_data )
|
||||||
pl->SendMailResult(mailId, MAIL_ITEM_TAKEN, MAIL_ERR_EQUIP_ERROR, msg);
|
pl->SendMailResult(mailId, MAIL_ITEM_TAKEN, MAIL_ERR_EQUIP_ERROR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleTakeMoney(WorldPacket & recv_data )
|
void WorldSession::HandleMailTakeMoney(WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4);
|
CHECK_PACKET_SIZE(recv_data,8+4);
|
||||||
|
|
||||||
|
|
@ -563,7 +563,7 @@ void WorldSession::HandleTakeMoney(WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
|
|
||||||
//called when player lists his received mails
|
//called when player lists his received mails
|
||||||
void WorldSession::HandleGetMail(WorldPacket & recv_data )
|
void WorldSession::HandleGetMailList(WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8);
|
CHECK_PACKET_SIZE(recv_data,8);
|
||||||
|
|
||||||
|
|
@ -751,7 +751,7 @@ void WorldSession::HandleMailCreateTextItem(WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Fix me! ... this void has probably bad condition, but good data are sent
|
//TODO Fix me! ... this void has probably bad condition, but good data are sent
|
||||||
void WorldSession::HandleMsgQueryNextMailtime(WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleQueryNextMailTime(WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
WorldPacket data(MSG_QUERY_NEXT_MAIL_TIME, 8);
|
WorldPacket data(MSG_QUERY_NEXT_MAIL_TIME, 8);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1944,12 +1944,9 @@ void Map::SendInitSelf( Player * player )
|
||||||
|
|
||||||
UpdateData data;
|
UpdateData data;
|
||||||
|
|
||||||
bool hasTransport = false;
|
|
||||||
|
|
||||||
// attach to player data current transport data
|
// attach to player data current transport data
|
||||||
if(Transport* transport = player->GetTransport())
|
if(Transport* transport = player->GetTransport())
|
||||||
{
|
{
|
||||||
hasTransport = true;
|
|
||||||
transport->BuildCreateUpdateBlockForPlayer(&data, player);
|
transport->BuildCreateUpdateBlockForPlayer(&data, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1963,14 +1960,13 @@ void Map::SendInitSelf( Player * player )
|
||||||
{
|
{
|
||||||
if(player!=(*itr) && player->HaveAtClient(*itr))
|
if(player!=(*itr) && player->HaveAtClient(*itr))
|
||||||
{
|
{
|
||||||
hasTransport = true;
|
|
||||||
(*itr)->BuildCreateUpdateBlockForPlayer(&data, player);
|
(*itr)->BuildCreateUpdateBlockForPlayer(&data, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WorldPacket packet;
|
WorldPacket packet;
|
||||||
data.BuildPacket(&packet, hasTransport);
|
data.BuildPacket(&packet);
|
||||||
player->GetSession()->SendPacket(&packet);
|
player->GetSession()->SendPacket(&packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1987,20 +1983,17 @@ void Map::SendInitTransports( Player * player )
|
||||||
|
|
||||||
MapManager::TransportSet& tset = tmap[player->GetMapId()];
|
MapManager::TransportSet& tset = tmap[player->GetMapId()];
|
||||||
|
|
||||||
bool hasTransport = false;
|
|
||||||
|
|
||||||
for (MapManager::TransportSet::const_iterator i = tset.begin(); i != tset.end(); ++i)
|
for (MapManager::TransportSet::const_iterator i = tset.begin(); i != tset.end(); ++i)
|
||||||
{
|
{
|
||||||
// send data for current transport in other place
|
// send data for current transport in other place
|
||||||
if((*i) != player->GetTransport() && (*i)->GetMapId()==i_id)
|
if((*i) != player->GetTransport() && (*i)->GetMapId()==i_id)
|
||||||
{
|
{
|
||||||
hasTransport = true;
|
|
||||||
(*i)->BuildCreateUpdateBlockForPlayer(&transData, player);
|
(*i)->BuildCreateUpdateBlockForPlayer(&transData, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WorldPacket packet;
|
WorldPacket packet;
|
||||||
transData.BuildPacket(&packet, hasTransport);
|
transData.BuildPacket(&packet);
|
||||||
player->GetSession()->SendPacket(&packet);
|
player->GetSession()->SendPacket(&packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -438,7 +438,7 @@ void WorldSession::HandleStandStateChangeOpcode( WorldPacket & recv_data )
|
||||||
_player->SetStandState(animstate);
|
_player->SetStandState(animstate);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleFriendListOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleContactListOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 4);
|
CHECK_PACKET_SIZE(recv_data, 4);
|
||||||
sLog.outDebug( "WORLD: Received CMSG_CONTACT_LIST" );
|
sLog.outDebug( "WORLD: Received CMSG_CONTACT_LIST" );
|
||||||
|
|
@ -611,9 +611,10 @@ void WorldSession::HandleDelIgnoreOpcode( WorldPacket & recv_data )
|
||||||
sLog.outDebug( "WORLD: Sent motd (SMSG_FRIEND_STATUS)" );
|
sLog.outDebug( "WORLD: Sent motd (SMSG_FRIEND_STATUS)" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleSetFriendNoteOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleSetContactNotesOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 8+1);
|
CHECK_PACKET_SIZE(recv_data, 8+1);
|
||||||
|
sLog.outDebug("CMSG_SET_CONTACT_NOTES");
|
||||||
uint64 guid;
|
uint64 guid;
|
||||||
std::string note;
|
std::string note;
|
||||||
recv_data >> guid >> note;
|
recv_data >> guid >> note;
|
||||||
|
|
@ -649,7 +650,7 @@ void WorldSession::HandleBugOpcode( WorldPacket & recv_data )
|
||||||
CharacterDatabase.PExecute ("INSERT INTO bugreport (type,content) VALUES('%s', '%s')", type.c_str( ), content.c_str( ));
|
CharacterDatabase.PExecute ("INSERT INTO bugreport (type,content) VALUES('%s', '%s')", type.c_str( ), content.c_str( ));
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleCorpseReclaimOpcode(WorldPacket &recv_data)
|
void WorldSession::HandleReclaimCorpseOpcode(WorldPacket &recv_data)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8);
|
CHECK_PACKET_SIZE(recv_data,8);
|
||||||
|
|
||||||
|
|
@ -1015,7 +1016,7 @@ void WorldSession::HandleSetActionButtonOpcode(WorldPacket& recv_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleCompleteCinema( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleCompleteCinematic( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
DEBUG_LOG( "WORLD: Player is watching cinema" );
|
DEBUG_LOG( "WORLD: Player is watching cinema" );
|
||||||
}
|
}
|
||||||
|
|
@ -1119,7 +1120,7 @@ void WorldSession::HandleMoveRootAck(WorldPacket&/* recv_data*/)
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleSetActionBar(WorldPacket& recv_data)
|
void WorldSession::HandleSetActionBarToggles(WorldPacket& recv_data)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,1);
|
CHECK_PACKET_SIZE(recv_data,1);
|
||||||
|
|
||||||
|
|
@ -1130,7 +1131,7 @@ void WorldSession::HandleSetActionBar(WorldPacket& recv_data)
|
||||||
if(!GetPlayer()) // ignore until not logged (check needed because STATUS_AUTHED)
|
if(!GetPlayer()) // ignore until not logged (check needed because STATUS_AUTHED)
|
||||||
{
|
{
|
||||||
if(ActionBar!=0)
|
if(ActionBar!=0)
|
||||||
sLog.outError("WorldSession::HandleSetActionBar in not logged state with value: %u, ignored",uint32(ActionBar));
|
sLog.outError("WorldSession::HandleSetActionBarToggles in not logged state with value: %u, ignored",uint32(ActionBar));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1370,10 +1371,10 @@ void WorldSession::HandleWhoisOpcode(WorldPacket& recv_data)
|
||||||
sLog.outDebug("Received whois command from player %s for character %s", GetPlayer()->GetName(), charname.c_str());
|
sLog.outDebug("Received whois command from player %s for character %s", GetPlayer()->GetName(), charname.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleReportSpamOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleComplainOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 1+8);
|
CHECK_PACKET_SIZE(recv_data, 1+8);
|
||||||
sLog.outDebug("WORLD: CMSG_REPORT_SPAM");
|
sLog.outDebug("WORLD: CMSG_COMPLAIN");
|
||||||
recv_data.hexlike();
|
recv_data.hexlike();
|
||||||
|
|
||||||
uint8 spam_type; // 0 - mail, 1 - chat
|
uint8 spam_type; // 0 - mail, 1 - chat
|
||||||
|
|
@ -1414,7 +1415,7 @@ void WorldSession::HandleReportSpamOpcode( WorldPacket & recv_data )
|
||||||
sLog.outDebug("REPORT SPAM: type %u, guid %u, unk1 %u, unk2 %u, unk3 %u, unk4 %u, message %s", spam_type, GUID_LOPART(spammer_guid), unk1, unk2, unk3, unk4, description.c_str());
|
sLog.outDebug("REPORT SPAM: type %u, guid %u, unk1 %u, unk2 %u, unk3 %u, unk4 %u, message %s", spam_type, GUID_LOPART(spammer_guid), unk1, unk2, unk3, unk4, description.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleRealmStateRequestOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleRealmSplitOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 4);
|
CHECK_PACKET_SIZE(recv_data, 4);
|
||||||
|
|
||||||
|
|
@ -1460,7 +1461,7 @@ void WorldSession::HandleFarSightOpcode( WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChooseTitleOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleSetTitleOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 4);
|
CHECK_PACKET_SIZE(recv_data, 4);
|
||||||
|
|
||||||
|
|
@ -1509,7 +1510,7 @@ void WorldSession::HandleResetInstancesOpcode( WorldPacket & /*recv_data*/ )
|
||||||
_player->ResetInstances(INSTANCE_RESET_ALL);
|
_player->ResetInstances(INSTANCE_RESET_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleDungeonDifficultyOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleSetDungeonDifficultyOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 4);
|
CHECK_PACKET_SIZE(recv_data, 4);
|
||||||
|
|
||||||
|
|
@ -1523,7 +1524,7 @@ void WorldSession::HandleDungeonDifficultyOpcode( WorldPacket & recv_data )
|
||||||
|
|
||||||
if(mode > DIFFICULTY_HEROIC)
|
if(mode > DIFFICULTY_HEROIC)
|
||||||
{
|
{
|
||||||
sLog.outError("WorldSession::HandleDungeonDifficultyOpcode: player %d sent an invalid instance mode %d!", _player->GetGUIDLow(), mode);
|
sLog.outError("WorldSession::HandleSetDungeonDifficultyOpcode: player %d sent an invalid instance mode %d!", _player->GetGUIDLow(), mode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1531,7 +1532,7 @@ void WorldSession::HandleDungeonDifficultyOpcode( WorldPacket & recv_data )
|
||||||
Map *map = _player->GetMap();
|
Map *map = _player->GetMap();
|
||||||
if(map && map->IsDungeon())
|
if(map && map->IsDungeon())
|
||||||
{
|
{
|
||||||
sLog.outError("WorldSession::HandleDungeonDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow());
|
sLog.outError("WorldSession::HandleSetDungeonDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1555,7 +1556,7 @@ void WorldSession::HandleDungeonDifficultyOpcode( WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleDismountOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleCancelMountAuraOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: CMSG_CANCEL_MOUNT_AURA");
|
sLog.outDebug("WORLD: CMSG_CANCEL_MOUNT_AURA");
|
||||||
//recv_data.hexlike();
|
//recv_data.hexlike();
|
||||||
|
|
@ -1577,7 +1578,7 @@ void WorldSession::HandleDismountOpcode( WorldPacket & /*recv_data*/ )
|
||||||
_player->RemoveSpellsCausingAura(SPELL_AURA_MOUNTED);
|
_player->RemoveSpellsCausingAura(SPELL_AURA_MOUNTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleMoveFlyModeChangeAckOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleMoveSetCanFlyAckOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 8+4+4);
|
CHECK_PACKET_SIZE(recv_data, 8+4+4);
|
||||||
|
|
||||||
|
|
@ -1592,16 +1593,6 @@ void WorldSession::HandleMoveFlyModeChangeAckOpcode( WorldPacket & recv_data )
|
||||||
recv_data >> guid >> unk >> flags;
|
recv_data >> guid >> unk >> flags;
|
||||||
|
|
||||||
_player->SetUnitMovementFlags(flags);
|
_player->SetUnitMovementFlags(flags);
|
||||||
/*
|
|
||||||
on:
|
|
||||||
25 00 00 00 00 00 00 00 | 00 00 00 00 00 00 80 00
|
|
||||||
85 4E A9 01 19 BA 7A C3 | 42 0D 70 44 44 B0 A8 42
|
|
||||||
78 15 94 40 39 03 00 00 | 00 00 80 3F
|
|
||||||
off:
|
|
||||||
25 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00
|
|
||||||
10 FD A9 01 19 BA 7A C3 | 42 0D 70 44 44 B0 A8 42
|
|
||||||
78 15 94 40 39 03 00 00 | 00 00 00 00
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleRequestPetInfoOpcode( WorldPacket & /*recv_data */)
|
void WorldSession::HandleRequestPetInfoOpcode( WorldPacket & /*recv_data */)
|
||||||
|
|
@ -1622,7 +1613,7 @@ void WorldSession::HandleSetTaxiBenchmarkOpcode( WorldPacket & recv_data )
|
||||||
sLog.outDebug("Client used \"/timetest %d\" command", mode);
|
sLog.outDebug("Client used \"/timetest %d\" command", mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleInspectAchievements( WorldPacket & recv_data )
|
void WorldSession::HandleQueryInspectAchievements( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data, 1);
|
CHECK_PACKET_SIZE(recv_data, 1);
|
||||||
uint64 guid;
|
uint64 guid;
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ uint32 GuidHigh2TypeId(uint32 guid_hi)
|
||||||
case HIGHGUID_MO_TRANSPORT: return TYPEID_GAMEOBJECT;
|
case HIGHGUID_MO_TRANSPORT: return TYPEID_GAMEOBJECT;
|
||||||
case HIGHGUID_VEHICLE: return TYPEID_UNIT;
|
case HIGHGUID_VEHICLE: return TYPEID_UNIT;
|
||||||
}
|
}
|
||||||
return MAX_TYPEID; // unknown
|
return NUM_CLIENT_OBJECT_TYPES; // unknown
|
||||||
}
|
}
|
||||||
|
|
||||||
Object::Object( )
|
Object::Object( )
|
||||||
|
|
@ -115,7 +115,7 @@ void Object::_Create( uint32 guidlow, uint32 entry, HighGuid guidhigh )
|
||||||
{
|
{
|
||||||
if(!m_uint32Values) _InitValues();
|
if(!m_uint32Values) _InitValues();
|
||||||
|
|
||||||
uint64 guid = MAKE_NEW_GUID(guidlow, entry, guidhigh); // required more changes to make it working
|
uint64 guid = MAKE_NEW_GUID(guidlow, entry, guidhigh);
|
||||||
SetUInt64Value( OBJECT_FIELD_GUID, guid );
|
SetUInt64Value( OBJECT_FIELD_GUID, guid );
|
||||||
SetUInt32Value( OBJECT_FIELD_TYPE, m_objectType );
|
SetUInt32Value( OBJECT_FIELD_TYPE, m_objectType );
|
||||||
m_PackGUID.clear();
|
m_PackGUID.clear();
|
||||||
|
|
@ -124,10 +124,10 @@ void Object::_Create( uint32 guidlow, uint32 entry, HighGuid guidhigh )
|
||||||
|
|
||||||
void Object::BuildMovementUpdateBlock(UpdateData * data, uint32 flags ) const
|
void Object::BuildMovementUpdateBlock(UpdateData * data, uint32 flags ) const
|
||||||
{
|
{
|
||||||
ByteBuffer buf(500);
|
ByteBuffer buf(50);
|
||||||
|
|
||||||
buf << uint8( UPDATETYPE_MOVEMENT );
|
buf << uint8( UPDATETYPE_MOVEMENT );
|
||||||
buf << GetGUID();
|
buf.append(GetPackGUID());
|
||||||
|
|
||||||
_BuildMovementUpdate(&buf, flags, 0x00000000);
|
_BuildMovementUpdate(&buf, flags, 0x00000000);
|
||||||
|
|
||||||
|
|
@ -137,16 +137,14 @@ void Object::BuildMovementUpdateBlock(UpdateData * data, uint32 flags ) const
|
||||||
void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) const
|
void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) const
|
||||||
{
|
{
|
||||||
if(!target)
|
if(!target)
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
uint8 updatetype = UPDATETYPE_CREATE_OBJECT;
|
uint8 updatetype = UPDATETYPE_CREATE_OBJECT;
|
||||||
uint8 flags = m_updateFlag;
|
uint8 flags = m_updateFlag;
|
||||||
uint32 flags2 = 0;
|
uint32 flags2 = 0;
|
||||||
|
|
||||||
/** lower flag1 **/
|
/** lower flag1 **/
|
||||||
if(target == this) // building packet for oneself
|
if(target == this) // building packet for yourself
|
||||||
flags |= UPDATEFLAG_SELF;
|
flags |= UPDATEFLAG_SELF;
|
||||||
|
|
||||||
if(flags & UPDATEFLAG_HAS_POSITION)
|
if(flags & UPDATEFLAG_HAS_POSITION)
|
||||||
|
|
@ -187,10 +185,9 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) c
|
||||||
|
|
||||||
//sLog.outDebug("BuildCreateUpdate: update-type: %u, object-type: %u got flags: %X, flags2: %X", updatetype, m_objectTypeId, flags, flags2);
|
//sLog.outDebug("BuildCreateUpdate: update-type: %u, object-type: %u got flags: %X, flags2: %X", updatetype, m_objectTypeId, flags, flags2);
|
||||||
|
|
||||||
ByteBuffer buf(500);
|
ByteBuffer buf(50);
|
||||||
buf << (uint8)updatetype;
|
buf << (uint8)updatetype;
|
||||||
//buf.append(GetPackGUID()); //client crashes when using this
|
buf.append(GetPackGUID());
|
||||||
buf << (uint8)0xFF << GetGUID();
|
|
||||||
buf << (uint8)m_objectTypeId;
|
buf << (uint8)m_objectTypeId;
|
||||||
|
|
||||||
_BuildMovementUpdate(&buf, flags, flags2);
|
_BuildMovementUpdate(&buf, flags, flags2);
|
||||||
|
|
@ -198,7 +195,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) c
|
||||||
UpdateMask updateMask;
|
UpdateMask updateMask;
|
||||||
updateMask.SetCount( m_valuesCount );
|
updateMask.SetCount( m_valuesCount );
|
||||||
_SetCreateBits( &updateMask, target );
|
_SetCreateBits( &updateMask, target );
|
||||||
_BuildValuesUpdate(updatetype, &buf, &updateMask, target );
|
_BuildValuesUpdate(updatetype, &buf, &updateMask, target);
|
||||||
data->AddUpdateBlock(buf);
|
data->AddUpdateBlock(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -221,24 +218,20 @@ void Object::SendUpdateToPlayer(Player* player)
|
||||||
BuildCreateUpdateBlockForPlayer(&upd, player);
|
BuildCreateUpdateBlockForPlayer(&upd, player);
|
||||||
upd.BuildPacket(&packet);
|
upd.BuildPacket(&packet);
|
||||||
player->GetSession()->SendPacket(&packet);
|
player->GetSession()->SendPacket(&packet);
|
||||||
|
|
||||||
// now object updated/(create updated)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Object::BuildValuesUpdateBlockForPlayer(UpdateData *data, Player *target) const
|
void Object::BuildValuesUpdateBlockForPlayer(UpdateData *data, Player *target) const
|
||||||
{
|
{
|
||||||
ByteBuffer buf(500);
|
ByteBuffer buf(50);
|
||||||
|
|
||||||
buf << (uint8) UPDATETYPE_VALUES;
|
buf << (uint8) UPDATETYPE_VALUES;
|
||||||
//buf.append(GetPackGUID()); //client crashes when using this. but not have crash in debug mode
|
buf.append(GetPackGUID());
|
||||||
buf << (uint8)0xFF;
|
|
||||||
buf << GetGUID();
|
|
||||||
|
|
||||||
UpdateMask updateMask;
|
UpdateMask updateMask;
|
||||||
updateMask.SetCount( m_valuesCount );
|
updateMask.SetCount( m_valuesCount );
|
||||||
|
|
||||||
_SetUpdateBits( &updateMask, target );
|
_SetUpdateBits( &updateMask, target );
|
||||||
_BuildValuesUpdate(UPDATETYPE_VALUES, &buf, &updateMask, target );
|
_BuildValuesUpdate(UPDATETYPE_VALUES, &buf, &updateMask, target);
|
||||||
|
|
||||||
data->AddUpdateBlock(buf);
|
data->AddUpdateBlock(buf);
|
||||||
}
|
}
|
||||||
|
|
@ -253,7 +246,7 @@ void Object::DestroyForPlayer(Player *target) const
|
||||||
ASSERT(target);
|
ASSERT(target);
|
||||||
|
|
||||||
WorldPacket data(SMSG_DESTROY_OBJECT, 8);
|
WorldPacket data(SMSG_DESTROY_OBJECT, 8);
|
||||||
data << GetGUID();
|
data << uint64(GetGUID());
|
||||||
data << uint8(0); // WotLK (bool)
|
data << uint8(0); // WotLK (bool)
|
||||||
target->GetSession()->SendPacket( &data );
|
target->GetSession()->SendPacket( &data );
|
||||||
}
|
}
|
||||||
|
|
@ -575,7 +568,7 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else //case UPDATETYPE_VALUES
|
else // case UPDATETYPE_VALUES
|
||||||
{
|
{
|
||||||
if (isType(TYPEMASK_GAMEOBJECT) && !((GameObject*)this)->IsTransport())
|
if (isType(TYPEMASK_GAMEOBJECT) && !((GameObject*)this)->IsTransport())
|
||||||
{
|
{
|
||||||
|
|
@ -665,7 +658,7 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
|
||||||
*data << uint32(1);
|
*data << uint32(1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
*data << uint32(0); // unknown. not happen.
|
*data << uint32(0); // unknown, not happen.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -906,21 +899,21 @@ void Object::ApplyModUInt32Value(uint16 index, int32 val, bool apply)
|
||||||
cur += (apply ? val : -val);
|
cur += (apply ? val : -val);
|
||||||
if(cur < 0)
|
if(cur < 0)
|
||||||
cur = 0;
|
cur = 0;
|
||||||
SetUInt32Value(index,cur);
|
SetUInt32Value(index, cur);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Object::ApplyModInt32Value(uint16 index, int32 val, bool apply)
|
void Object::ApplyModInt32Value(uint16 index, int32 val, bool apply)
|
||||||
{
|
{
|
||||||
int32 cur = GetInt32Value(index);
|
int32 cur = GetInt32Value(index);
|
||||||
cur += (apply ? val : -val);
|
cur += (apply ? val : -val);
|
||||||
SetInt32Value(index,cur);
|
SetInt32Value(index, cur);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Object::ApplyModSignedFloatValue(uint16 index, float val, bool apply)
|
void Object::ApplyModSignedFloatValue(uint16 index, float val, bool apply)
|
||||||
{
|
{
|
||||||
float cur = GetFloatValue(index);
|
float cur = GetFloatValue(index);
|
||||||
cur += (apply ? val : -val);
|
cur += (apply ? val : -val);
|
||||||
SetFloatValue(index,cur);
|
SetFloatValue(index, cur);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Object::ApplyModPositiveFloatValue(uint16 index, float val, bool apply)
|
void Object::ApplyModPositiveFloatValue(uint16 index, float val, bool apply)
|
||||||
|
|
@ -929,7 +922,7 @@ void Object::ApplyModPositiveFloatValue(uint16 index, float val, bool apply)
|
||||||
cur += (apply ? val : -val);
|
cur += (apply ? val : -val);
|
||||||
if(cur < 0)
|
if(cur < 0)
|
||||||
cur = 0;
|
cur = 0;
|
||||||
SetFloatValue(index,cur);
|
SetFloatValue(index, cur);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Object::SetFlag( uint16 index, uint32 newFlag )
|
void Object::SetFlag( uint16 index, uint32 newFlag )
|
||||||
|
|
@ -1048,17 +1041,17 @@ void WorldObject::_Create( uint32 guidlow, HighGuid guidhigh, uint32 mapid, uint
|
||||||
|
|
||||||
uint32 WorldObject::GetZoneId() const
|
uint32 WorldObject::GetZoneId() const
|
||||||
{
|
{
|
||||||
return MapManager::Instance().GetBaseMap(m_mapId)->GetZoneId(m_positionX,m_positionY,m_positionZ);
|
return MapManager::Instance().GetBaseMap(m_mapId)->GetZoneId(m_positionX, m_positionY, m_positionZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 WorldObject::GetAreaId() const
|
uint32 WorldObject::GetAreaId() const
|
||||||
{
|
{
|
||||||
return MapManager::Instance().GetBaseMap(m_mapId)->GetAreaId(m_positionX,m_positionY,m_positionZ);
|
return MapManager::Instance().GetBaseMap(m_mapId)->GetAreaId(m_positionX, m_positionY, m_positionZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldObject::GetZoneAndAreaId(uint32& zoneid, uint32& areaid) const
|
void WorldObject::GetZoneAndAreaId(uint32& zoneid, uint32& areaid) const
|
||||||
{
|
{
|
||||||
MapManager::Instance().GetBaseMap(m_mapId)->GetZoneAndAreaId(zoneid,areaid,m_positionX,m_positionY,m_positionZ);
|
MapManager::Instance().GetBaseMap(m_mapId)->GetZoneAndAreaId(zoneid, areaid, m_positionX, m_positionY, m_positionZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
InstanceData* WorldObject::GetInstanceData()
|
InstanceData* WorldObject::GetInstanceData()
|
||||||
|
|
@ -1480,10 +1473,10 @@ void WorldObject::BuildMonsterChat(WorldPacket *data, uint8 msgtype, char const*
|
||||||
*data << (uint8)msgtype;
|
*data << (uint8)msgtype;
|
||||||
*data << (uint32)language;
|
*data << (uint32)language;
|
||||||
*data << (uint64)GetGUID();
|
*data << (uint64)GetGUID();
|
||||||
*data << (uint32)0; //2.1.0
|
*data << (uint32)0; // 2.1.0
|
||||||
*data << (uint32)(strlen(name)+1);
|
*data << (uint32)(strlen(name)+1);
|
||||||
*data << name;
|
*data << name;
|
||||||
*data << (uint64)targetGuid; //Unit Target
|
*data << (uint64)targetGuid; // Unit Target
|
||||||
if( targetGuid && !IS_PLAYER_GUID(targetGuid) )
|
if( targetGuid && !IS_PLAYER_GUID(targetGuid) )
|
||||||
{
|
{
|
||||||
*data << (uint32)1; // target name length
|
*data << (uint32)1; // target name length
|
||||||
|
|
@ -1506,7 +1499,7 @@ void WorldObject::BuildHeartBeatMsg(WorldPacket *data) const
|
||||||
data->append(GetPackGUID());
|
data->append(GetPackGUID());
|
||||||
*data << uint32(((Unit*)this)->GetUnitMovementFlags()); // movement flags
|
*data << uint32(((Unit*)this)->GetUnitMovementFlags()); // movement flags
|
||||||
*data << uint16(0); // 2.3.0
|
*data << uint16(0); // 2.3.0
|
||||||
*data << getMSTime(); // time
|
*data << uint32(getMSTime()); // time
|
||||||
*data << m_positionX;
|
*data << m_positionX;
|
||||||
*data << m_positionY;
|
*data << m_positionY;
|
||||||
*data << m_positionZ;
|
*data << m_positionZ;
|
||||||
|
|
@ -1525,7 +1518,7 @@ void WorldObject::BuildTeleportAckMsg(WorldPacket *data, float x, float y, float
|
||||||
*data << uint32(0); // this value increments every time
|
*data << uint32(0); // this value increments every time
|
||||||
*data << uint32(((Unit*)this)->GetUnitMovementFlags()); // movement flags
|
*data << uint32(((Unit*)this)->GetUnitMovementFlags()); // movement flags
|
||||||
*data << uint16(0); // 2.3.0
|
*data << uint16(0); // 2.3.0
|
||||||
*data << getMSTime(); // time
|
*data << uint32(getMSTime()); // time
|
||||||
*data << x;
|
*data << x;
|
||||||
*data << y;
|
*data << y;
|
||||||
*data << z;
|
*data << z;
|
||||||
|
|
@ -1604,7 +1597,7 @@ Creature* WorldObject::SummonCreature(uint32 id, float x, float y, float z, floa
|
||||||
if(GetTypeId()==TYPEID_UNIT && ((Creature*)this)->AI())
|
if(GetTypeId()==TYPEID_UNIT && ((Creature*)this)->AI())
|
||||||
((Creature*)this)->AI()->JustSummoned(pCreature);
|
((Creature*)this)->AI()->JustSummoned(pCreature);
|
||||||
|
|
||||||
//return the creature therewith the summoner has access to it
|
// return the creature therewith the summoner has access to it
|
||||||
return pCreature;
|
return pCreature;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1825,7 +1818,7 @@ void WorldObject::PlayDistanceSound( uint32 sound_id, Player* target /*= NULL*/
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_PLAY_OBJECT_SOUND,4+8);
|
WorldPacket data(SMSG_PLAY_OBJECT_SOUND,4+8);
|
||||||
data << uint32(sound_id);
|
data << uint32(sound_id);
|
||||||
data << GetGUID();
|
data << uint64(GetGUID());
|
||||||
if (target)
|
if (target)
|
||||||
target->SendDirectMessage( &data );
|
target->SendDirectMessage( &data );
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -46,9 +46,7 @@ enum TypeMask
|
||||||
TYPEMASK_PLAYER = 0x0010,
|
TYPEMASK_PLAYER = 0x0010,
|
||||||
TYPEMASK_GAMEOBJECT = 0x0020,
|
TYPEMASK_GAMEOBJECT = 0x0020,
|
||||||
TYPEMASK_DYNAMICOBJECT = 0x0040,
|
TYPEMASK_DYNAMICOBJECT = 0x0040,
|
||||||
TYPEMASK_CORPSE = 0x0080,
|
TYPEMASK_CORPSE = 0x0080
|
||||||
TYPEMASK_AIGROUP = 0x0100,
|
|
||||||
TYPEMASK_AREATRIGGER = 0x0200
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum TypeID
|
enum TypeID
|
||||||
|
|
@ -60,11 +58,10 @@ enum TypeID
|
||||||
TYPEID_PLAYER = 4,
|
TYPEID_PLAYER = 4,
|
||||||
TYPEID_GAMEOBJECT = 5,
|
TYPEID_GAMEOBJECT = 5,
|
||||||
TYPEID_DYNAMICOBJECT = 6,
|
TYPEID_DYNAMICOBJECT = 6,
|
||||||
TYPEID_CORPSE = 7,
|
TYPEID_CORPSE = 7
|
||||||
TYPEID_AIGROUP = 8,
|
|
||||||
TYPEID_AREATRIGGER = 9
|
|
||||||
};
|
};
|
||||||
#define MAX_TYPEID 10
|
|
||||||
|
#define NUM_CLIENT_OBJECT_TYPES 8
|
||||||
|
|
||||||
uint32 GuidHigh2TypeId(uint32 guid_hi);
|
uint32 GuidHigh2TypeId(uint32 guid_hi);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x057*/ { "CMSG_ITEM_QUERY_MULTIPLE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x057*/ { "CMSG_ITEM_QUERY_MULTIPLE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x058*/ { "SMSG_ITEM_QUERY_SINGLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x058*/ { "SMSG_ITEM_QUERY_SINGLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x059*/ { "SMSG_ITEM_QUERY_MULTIPLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x059*/ { "SMSG_ITEM_QUERY_MULTIPLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x05A*/ { "CMSG_PAGE_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandlePageQueryOpcode },
|
/*0x05A*/ { "CMSG_PAGE_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandlePageTextQueryOpcode },
|
||||||
/*0x05B*/ { "SMSG_PAGE_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x05B*/ { "SMSG_PAGE_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x05C*/ { "CMSG_QUEST_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestQueryOpcode },
|
/*0x05C*/ { "CMSG_QUEST_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestQueryOpcode },
|
||||||
/*0x05D*/ { "SMSG_QUEST_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x05D*/ { "SMSG_QUEST_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -128,28 +128,28 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x063*/ { "SMSG_WHO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x063*/ { "SMSG_WHO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x064*/ { "CMSG_WHOIS", STATUS_LOGGEDIN, &WorldSession::HandleWhoisOpcode },
|
/*0x064*/ { "CMSG_WHOIS", STATUS_LOGGEDIN, &WorldSession::HandleWhoisOpcode },
|
||||||
/*0x065*/ { "SMSG_WHOIS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x065*/ { "SMSG_WHOIS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x066*/ { "CMSG_CONTACT_LIST", STATUS_LOGGEDIN, &WorldSession::HandleFriendListOpcode },
|
/*0x066*/ { "CMSG_CONTACT_LIST", STATUS_LOGGEDIN, &WorldSession::HandleContactListOpcode },
|
||||||
/*0x067*/ { "SMSG_CONTACT_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x067*/ { "SMSG_CONTACT_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x068*/ { "SMSG_FRIEND_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x068*/ { "SMSG_FRIEND_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x069*/ { "CMSG_ADD_FRIEND", STATUS_LOGGEDIN, &WorldSession::HandleAddFriendOpcode },
|
/*0x069*/ { "CMSG_ADD_FRIEND", STATUS_LOGGEDIN, &WorldSession::HandleAddFriendOpcode },
|
||||||
/*0x06A*/ { "CMSG_DEL_FRIEND", STATUS_LOGGEDIN, &WorldSession::HandleDelFriendOpcode },
|
/*0x06A*/ { "CMSG_DEL_FRIEND", STATUS_LOGGEDIN, &WorldSession::HandleDelFriendOpcode },
|
||||||
/*0x06B*/ { "CMSG_SET_CONTACT_NOTES", STATUS_LOGGEDIN, &WorldSession::HandleSetFriendNoteOpcode },
|
/*0x06B*/ { "CMSG_SET_CONTACT_NOTES", STATUS_LOGGEDIN, &WorldSession::HandleSetContactNotesOpcode },
|
||||||
/*0x06C*/ { "CMSG_ADD_IGNORE", STATUS_LOGGEDIN, &WorldSession::HandleAddIgnoreOpcode },
|
/*0x06C*/ { "CMSG_ADD_IGNORE", STATUS_LOGGEDIN, &WorldSession::HandleAddIgnoreOpcode },
|
||||||
/*0x06D*/ { "CMSG_DEL_IGNORE", STATUS_LOGGEDIN, &WorldSession::HandleDelIgnoreOpcode },
|
/*0x06D*/ { "CMSG_DEL_IGNORE", STATUS_LOGGEDIN, &WorldSession::HandleDelIgnoreOpcode },
|
||||||
/*0x06E*/ { "CMSG_GROUP_INVITE", STATUS_LOGGEDIN, &WorldSession::HandleGroupInviteOpcode },
|
/*0x06E*/ { "CMSG_GROUP_INVITE", STATUS_LOGGEDIN, &WorldSession::HandleGroupInviteOpcode },
|
||||||
/*0x06F*/ { "SMSG_GROUP_INVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x06F*/ { "SMSG_GROUP_INVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x070*/ { "CMSG_GROUP_CANCEL", STATUS_LOGGEDIN, &WorldSession::Handle_Deprecated },
|
/*0x070*/ { "CMSG_GROUP_CANCEL", STATUS_LOGGEDIN, &WorldSession::Handle_NULL },
|
||||||
/*0x071*/ { "SMSG_GROUP_CANCEL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x071*/ { "SMSG_GROUP_CANCEL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x072*/ { "CMSG_GROUP_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleGroupAcceptOpcode },
|
/*0x072*/ { "CMSG_GROUP_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleGroupAcceptOpcode },
|
||||||
/*0x073*/ { "CMSG_GROUP_DECLINE", STATUS_LOGGEDIN, &WorldSession::HandleGroupDeclineOpcode },
|
/*0x073*/ { "CMSG_GROUP_DECLINE", STATUS_LOGGEDIN, &WorldSession::HandleGroupDeclineOpcode },
|
||||||
/*0x074*/ { "SMSG_GROUP_DECLINE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x074*/ { "SMSG_GROUP_DECLINE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x075*/ { "CMSG_GROUP_UNINVITE", STATUS_LOGGEDIN, &WorldSession::HandleGroupUninviteNameOpcode },
|
/*0x075*/ { "CMSG_GROUP_UNINVITE", STATUS_LOGGEDIN, &WorldSession::HandleGroupUninviteOpcode },
|
||||||
/*0x076*/ { "CMSG_GROUP_UNINVITE_GUID", STATUS_LOGGEDIN, &WorldSession::HandleGroupUninviteGuidOpcode },
|
/*0x076*/ { "CMSG_GROUP_UNINVITE_GUID", STATUS_LOGGEDIN, &WorldSession::HandleGroupUninviteGuidOpcode },
|
||||||
/*0x077*/ { "SMSG_GROUP_UNINVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x077*/ { "SMSG_GROUP_UNINVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x078*/ { "CMSG_GROUP_SET_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleGroupSetLeaderOpcode },
|
/*0x078*/ { "CMSG_GROUP_SET_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleGroupSetLeaderOpcode },
|
||||||
/*0x079*/ { "SMSG_GROUP_SET_LEADER", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x079*/ { "SMSG_GROUP_SET_LEADER", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x07A*/ { "CMSG_LOOT_METHOD", STATUS_LOGGEDIN, &WorldSession::HandleLootMethodOpcode },
|
/*0x07A*/ { "CMSG_LOOT_METHOD", STATUS_LOGGEDIN, &WorldSession::HandleLootMethodOpcode },
|
||||||
/*0x07B*/ { "CMSG_GROUP_DISBAND", STATUS_LOGGEDIN, &WorldSession::HandleGroupLeaveOpcode },
|
/*0x07B*/ { "CMSG_GROUP_DISBAND", STATUS_LOGGEDIN, &WorldSession::HandleGroupDisbandOpcode },
|
||||||
/*0x07C*/ { "SMSG_GROUP_DESTROYED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x07C*/ { "SMSG_GROUP_DESTROYED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x07D*/ { "SMSG_GROUP_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x07D*/ { "SMSG_GROUP_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x07E*/ { "SMSG_PARTY_MEMBER_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x07E*/ { "SMSG_PARTY_MEMBER_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -177,8 +177,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x094*/ { "UMSG_UPDATE_GUILD", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x094*/ { "UMSG_UPDATE_GUILD", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x095*/ { "CMSG_MESSAGECHAT", STATUS_LOGGEDIN, &WorldSession::HandleMessagechatOpcode },
|
/*0x095*/ { "CMSG_MESSAGECHAT", STATUS_LOGGEDIN, &WorldSession::HandleMessagechatOpcode },
|
||||||
/*0x096*/ { "SMSG_MESSAGECHAT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x096*/ { "SMSG_MESSAGECHAT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x097*/ { "CMSG_JOIN_CHANNEL", STATUS_LOGGEDIN, &WorldSession::HandleChannelJoin },
|
/*0x097*/ { "CMSG_JOIN_CHANNEL", STATUS_LOGGEDIN, &WorldSession::HandleJoinChannel },
|
||||||
/*0x098*/ { "CMSG_LEAVE_CHANNEL", STATUS_LOGGEDIN, &WorldSession::HandleChannelLeave },
|
/*0x098*/ { "CMSG_LEAVE_CHANNEL", STATUS_LOGGEDIN, &WorldSession::HandleLeaveChannel },
|
||||||
/*0x099*/ { "SMSG_CHANNEL_NOTIFY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x099*/ { "SMSG_CHANNEL_NOTIFY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x09A*/ { "CMSG_CHANNEL_LIST", STATUS_LOGGEDIN, &WorldSession::HandleChannelList },
|
/*0x09A*/ { "CMSG_CHANNEL_LIST", STATUS_LOGGEDIN, &WorldSession::HandleChannelList },
|
||||||
/*0x09B*/ { "SMSG_CHANNEL_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x09B*/ { "SMSG_CHANNEL_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -193,7 +193,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x0A4*/ { "CMSG_CHANNEL_KICK", STATUS_LOGGEDIN, &WorldSession::HandleChannelKick },
|
/*0x0A4*/ { "CMSG_CHANNEL_KICK", STATUS_LOGGEDIN, &WorldSession::HandleChannelKick },
|
||||||
/*0x0A5*/ { "CMSG_CHANNEL_BAN", STATUS_LOGGEDIN, &WorldSession::HandleChannelBan },
|
/*0x0A5*/ { "CMSG_CHANNEL_BAN", STATUS_LOGGEDIN, &WorldSession::HandleChannelBan },
|
||||||
/*0x0A6*/ { "CMSG_CHANNEL_UNBAN", STATUS_LOGGEDIN, &WorldSession::HandleChannelUnban },
|
/*0x0A6*/ { "CMSG_CHANNEL_UNBAN", STATUS_LOGGEDIN, &WorldSession::HandleChannelUnban },
|
||||||
/*0x0A7*/ { "CMSG_CHANNEL_ANNOUNCEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleChannelAnnounce },
|
/*0x0A7*/ { "CMSG_CHANNEL_ANNOUNCEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleChannelAnnouncements },
|
||||||
/*0x0A8*/ { "CMSG_CHANNEL_MODERATE", STATUS_LOGGEDIN, &WorldSession::HandleChannelModerate },
|
/*0x0A8*/ { "CMSG_CHANNEL_MODERATE", STATUS_LOGGEDIN, &WorldSession::HandleChannelModerate },
|
||||||
/*0x0A9*/ { "SMSG_UPDATE_OBJECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x0A9*/ { "SMSG_UPDATE_OBJECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x0AA*/ { "SMSG_DESTROY_OBJECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x0AA*/ { "SMSG_DESTROY_OBJECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -246,7 +246,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x0D9*/ { "MSG_MOVE_TOGGLE_COLLISION_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x0D9*/ { "MSG_MOVE_TOGGLE_COLLISION_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x0DA*/ { "MSG_MOVE_SET_FACING", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x0DA*/ { "MSG_MOVE_SET_FACING", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x0DB*/ { "MSG_MOVE_SET_PITCH", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x0DB*/ { "MSG_MOVE_SET_PITCH", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x0DC*/ { "MSG_MOVE_WORLDPORT_ACK", STATUS_TRANSFER_PENDING,&WorldSession::HandleMoveWorldportAckOpcode},
|
/*0x0DC*/ { "MSG_MOVE_WORLDPORT_ACK", STATUS_TRANSFER, &WorldSession::HandleMoveWorldportAckOpcode },
|
||||||
/*0x0DD*/ { "SMSG_MONSTER_MOVE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x0DD*/ { "SMSG_MONSTER_MOVE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x0DE*/ { "SMSG_MOVE_WATER_WALK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x0DE*/ { "SMSG_MOVE_WATER_WALK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x0DF*/ { "SMSG_MOVE_LAND_WALK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x0DF*/ { "SMSG_MOVE_LAND_WALK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -278,7 +278,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x0F9*/ { "CMSG_OPENING_CINEMATIC", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x0F9*/ { "CMSG_OPENING_CINEMATIC", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x0FA*/ { "SMSG_TRIGGER_CINEMATIC", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x0FA*/ { "SMSG_TRIGGER_CINEMATIC", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x0FB*/ { "CMSG_NEXT_CINEMATIC_CAMERA", STATUS_LOGGEDIN, &WorldSession::HandleNextCinematicCamera },
|
/*0x0FB*/ { "CMSG_NEXT_CINEMATIC_CAMERA", STATUS_LOGGEDIN, &WorldSession::HandleNextCinematicCamera },
|
||||||
/*0x0FC*/ { "CMSG_COMPLETE_CINEMATIC", STATUS_LOGGEDIN, &WorldSession::HandleCompleteCinema },
|
/*0x0FC*/ { "CMSG_COMPLETE_CINEMATIC", STATUS_LOGGEDIN, &WorldSession::HandleCompleteCinematic },
|
||||||
/*0x0FD*/ { "SMSG_TUTORIAL_FLAGS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x0FD*/ { "SMSG_TUTORIAL_FLAGS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x0FE*/ { "CMSG_TUTORIAL_FLAG", STATUS_LOGGEDIN, &WorldSession::HandleTutorialFlag },
|
/*0x0FE*/ { "CMSG_TUTORIAL_FLAG", STATUS_LOGGEDIN, &WorldSession::HandleTutorialFlag },
|
||||||
/*0x0FF*/ { "CMSG_TUTORIAL_CLEAR", STATUS_LOGGEDIN, &WorldSession::HandleTutorialClear },
|
/*0x0FF*/ { "CMSG_TUTORIAL_CLEAR", STATUS_LOGGEDIN, &WorldSession::HandleTutorialClear },
|
||||||
|
|
@ -416,11 +416,11 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x183*/ { "SMSG_QUESTGIVER_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x183*/ { "SMSG_QUESTGIVER_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x184*/ { "CMSG_QUESTGIVER_HELLO", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverHelloOpcode },
|
/*0x184*/ { "CMSG_QUESTGIVER_HELLO", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverHelloOpcode },
|
||||||
/*0x185*/ { "SMSG_QUESTGIVER_QUEST_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x185*/ { "SMSG_QUESTGIVER_QUEST_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x186*/ { "CMSG_QUESTGIVER_QUERY_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverQuestQueryOpcode},
|
/*0x186*/ { "CMSG_QUESTGIVER_QUERY_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverQueryQuestOpcode},
|
||||||
/*0x187*/ { "CMSG_QUESTGIVER_QUEST_AUTOLAUNCH", STATUS_LOGGEDIN, &WorldSession::HandleQuestAutoLaunch },
|
/*0x187*/ { "CMSG_QUESTGIVER_QUEST_AUTOLAUNCH", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverQuestAutoLaunch },
|
||||||
/*0x188*/ { "SMSG_QUESTGIVER_QUEST_DETAILS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x188*/ { "SMSG_QUESTGIVER_QUEST_DETAILS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x189*/ { "CMSG_QUESTGIVER_ACCEPT_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverAcceptQuestOpcode},
|
/*0x189*/ { "CMSG_QUESTGIVER_ACCEPT_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverAcceptQuestOpcode},
|
||||||
/*0x18A*/ { "CMSG_QUESTGIVER_COMPLETE_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestComplete },
|
/*0x18A*/ { "CMSG_QUESTGIVER_COMPLETE_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverCompleteQuest },
|
||||||
/*0x18B*/ { "SMSG_QUESTGIVER_REQUEST_ITEMS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x18B*/ { "SMSG_QUESTGIVER_REQUEST_ITEMS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x18C*/ { "CMSG_QUESTGIVER_REQUEST_REWARD", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverRequestRewardOpcode},
|
/*0x18C*/ { "CMSG_QUESTGIVER_REQUEST_REWARD", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverRequestRewardOpcode},
|
||||||
/*0x18D*/ { "SMSG_QUESTGIVER_OFFER_REWARD", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x18D*/ { "SMSG_QUESTGIVER_OFFER_REWARD", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -439,7 +439,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x19A*/ { "SMSG_QUESTUPDATE_ADD_ITEM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x19A*/ { "SMSG_QUESTUPDATE_ADD_ITEM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x19B*/ { "CMSG_QUEST_CONFIRM_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleQuestConfirmAccept },
|
/*0x19B*/ { "CMSG_QUEST_CONFIRM_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleQuestConfirmAccept },
|
||||||
/*0x19C*/ { "SMSG_QUEST_CONFIRM_ACCEPT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x19C*/ { "SMSG_QUEST_CONFIRM_ACCEPT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x19D*/ { "CMSG_PUSHQUESTTOPARTY", STATUS_LOGGEDIN, &WorldSession::HandleQuestPushToParty },
|
/*0x19D*/ { "CMSG_PUSHQUESTTOPARTY", STATUS_LOGGEDIN, &WorldSession::HandlePushQuestToParty },
|
||||||
/*0x19E*/ { "CMSG_LIST_INVENTORY", STATUS_LOGGEDIN, &WorldSession::HandleListInventoryOpcode },
|
/*0x19E*/ { "CMSG_LIST_INVENTORY", STATUS_LOGGEDIN, &WorldSession::HandleListInventoryOpcode },
|
||||||
/*0x19F*/ { "SMSG_LIST_INVENTORY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x19F*/ { "SMSG_LIST_INVENTORY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x1A0*/ { "CMSG_SELL_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleSellItemOpcode },
|
/*0x1A0*/ { "CMSG_SELL_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleSellItemOpcode },
|
||||||
|
|
@ -492,7 +492,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x1CF*/ { "SMSG_QUERY_TIME_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x1CF*/ { "SMSG_QUERY_TIME_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x1D0*/ { "SMSG_LOG_XPGAIN", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x1D0*/ { "SMSG_LOG_XPGAIN", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x1D1*/ { "SMSG_AURACASTLOG", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x1D1*/ { "SMSG_AURACASTLOG", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x1D2*/ { "CMSG_RECLAIM_CORPSE", STATUS_LOGGEDIN, &WorldSession::HandleCorpseReclaimOpcode },
|
/*0x1D2*/ { "CMSG_RECLAIM_CORPSE", STATUS_LOGGEDIN, &WorldSession::HandleReclaimCorpseOpcode },
|
||||||
/*0x1D3*/ { "CMSG_WRAP_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleWrapItemOpcode },
|
/*0x1D3*/ { "CMSG_WRAP_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleWrapItemOpcode },
|
||||||
/*0x1D4*/ { "SMSG_LEVELUP_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x1D4*/ { "SMSG_LEVELUP_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x1D5*/ { "MSG_MINIMAP_PING", STATUS_LOGGEDIN, &WorldSession::HandleMinimapPingOpcode },
|
/*0x1D5*/ { "MSG_MINIMAP_PING", STATUS_LOGGEDIN, &WorldSession::HandleMinimapPingOpcode },
|
||||||
|
|
@ -523,7 +523,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x1EE*/ { "SMSG_AUTH_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x1EE*/ { "SMSG_AUTH_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x1EF*/ { "MSG_GM_SHOWLABEL", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x1EF*/ { "MSG_GM_SHOWLABEL", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x1F0*/ { "CMSG_PET_CAST_SPELL", STATUS_LOGGEDIN, &WorldSession::HandlePetCastSpellOpcode },
|
/*0x1F0*/ { "CMSG_PET_CAST_SPELL", STATUS_LOGGEDIN, &WorldSession::HandlePetCastSpellOpcode },
|
||||||
/*0x1F1*/ { "MSG_SAVE_GUILD_EMBLEM", STATUS_LOGGEDIN, &WorldSession::HandleGuildSaveEmblemOpcode },
|
/*0x1F1*/ { "MSG_SAVE_GUILD_EMBLEM", STATUS_LOGGEDIN, &WorldSession::HandleSaveGuildEmblemOpcode },
|
||||||
/*0x1F2*/ { "MSG_TABARDVENDOR_ACTIVATE", STATUS_LOGGEDIN, &WorldSession::HandleTabardVendorActivateOpcode},
|
/*0x1F2*/ { "MSG_TABARDVENDOR_ACTIVATE", STATUS_LOGGEDIN, &WorldSession::HandleTabardVendorActivateOpcode},
|
||||||
/*0x1F3*/ { "SMSG_PLAY_SPELL_VISUAL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x1F3*/ { "SMSG_PLAY_SPELL_VISUAL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x1F4*/ { "CMSG_ZONEUPDATE", STATUS_LOGGEDIN, &WorldSession::HandleZoneUpdateOpcode },
|
/*0x1F4*/ { "CMSG_ZONEUPDATE", STATUS_LOGGEDIN, &WorldSession::HandleZoneUpdateOpcode },
|
||||||
|
|
@ -561,7 +561,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x214*/ { "SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x214*/ { "SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x215*/ { "SMSG_GAMEOBJECT_DESPAWN_ANIM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x215*/ { "SMSG_GAMEOBJECT_DESPAWN_ANIM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x216*/ { "MSG_CORPSE_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleCorpseQueryOpcode },
|
/*0x216*/ { "MSG_CORPSE_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleCorpseQueryOpcode },
|
||||||
/*0x217*/ { "CMSG_GMTICKET_DELETETICKET", STATUS_LOGGEDIN, &WorldSession::HandleGMTicketDeleteOpcode },
|
/*0x217*/ { "CMSG_GMTICKET_DELETETICKET", STATUS_LOGGEDIN, &WorldSession::HandleGMTicketDeleteTicketOpcode},
|
||||||
/*0x218*/ { "SMSG_GMTICKET_DELETETICKET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x218*/ { "SMSG_GMTICKET_DELETETICKET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x219*/ { "SMSG_CHAT_WRONG_FACTION", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x219*/ { "SMSG_CHAT_WRONG_FACTION", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x21A*/ { "CMSG_GMTICKET_SYSTEMSTATUS", STATUS_LOGGEDIN, &WorldSession::HandleGMTicketSystemStatusOpcode},
|
/*0x21A*/ { "CMSG_GMTICKET_SYSTEMSTATUS", STATUS_LOGGEDIN, &WorldSession::HandleGMTicketSystemStatusOpcode},
|
||||||
|
|
@ -596,9 +596,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x237*/ { "CMSG_CLEAR_EXPLORATION", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x237*/ { "CMSG_CLEAR_EXPLORATION", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x238*/ { "CMSG_SEND_MAIL", STATUS_LOGGEDIN, &WorldSession::HandleSendMail },
|
/*0x238*/ { "CMSG_SEND_MAIL", STATUS_LOGGEDIN, &WorldSession::HandleSendMail },
|
||||||
/*0x239*/ { "SMSG_SEND_MAIL_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x239*/ { "SMSG_SEND_MAIL_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x23A*/ { "CMSG_GET_MAIL_LIST", STATUS_LOGGEDIN, &WorldSession::HandleGetMail },
|
/*0x23A*/ { "CMSG_GET_MAIL_LIST", STATUS_LOGGEDIN, &WorldSession::HandleGetMailList },
|
||||||
/*0x23B*/ { "SMSG_MAIL_LIST_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x23B*/ { "SMSG_MAIL_LIST_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x23C*/ { "CMSG_BATTLEFIELD_LIST", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundListOpcode },
|
/*0x23C*/ { "CMSG_BATTLEFIELD_LIST", STATUS_LOGGEDIN, &WorldSession::HandleBattlefieldListOpcode },
|
||||||
/*0x23D*/ { "SMSG_BATTLEFIELD_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x23D*/ { "SMSG_BATTLEFIELD_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x23E*/ { "CMSG_BATTLEFIELD_JOIN", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x23E*/ { "CMSG_BATTLEFIELD_JOIN", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x23F*/ { "SMSG_BATTLEFIELD_WIN_OBSOLETE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x23F*/ { "SMSG_BATTLEFIELD_WIN_OBSOLETE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -607,10 +607,10 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x242*/ { "CMSG_TAXIENABLENODE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x242*/ { "CMSG_TAXIENABLENODE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x243*/ { "CMSG_ITEM_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleItemTextQuery },
|
/*0x243*/ { "CMSG_ITEM_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleItemTextQuery },
|
||||||
/*0x244*/ { "SMSG_ITEM_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x244*/ { "SMSG_ITEM_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x245*/ { "CMSG_MAIL_TAKE_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleTakeMoney },
|
/*0x245*/ { "CMSG_MAIL_TAKE_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleMailTakeMoney },
|
||||||
/*0x246*/ { "CMSG_MAIL_TAKE_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleTakeItem },
|
/*0x246*/ { "CMSG_MAIL_TAKE_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleMailTakeItem },
|
||||||
/*0x247*/ { "CMSG_MAIL_MARK_AS_READ", STATUS_LOGGEDIN, &WorldSession::HandleMarkAsRead },
|
/*0x247*/ { "CMSG_MAIL_MARK_AS_READ", STATUS_LOGGEDIN, &WorldSession::HandleMailMarkAsRead },
|
||||||
/*0x248*/ { "CMSG_MAIL_RETURN_TO_SENDER", STATUS_LOGGEDIN, &WorldSession::HandleReturnToSender },
|
/*0x248*/ { "CMSG_MAIL_RETURN_TO_SENDER", STATUS_LOGGEDIN, &WorldSession::HandleMailReturnToSender },
|
||||||
/*0x249*/ { "CMSG_MAIL_DELETE", STATUS_LOGGEDIN, &WorldSession::HandleMailDelete },
|
/*0x249*/ { "CMSG_MAIL_DELETE", STATUS_LOGGEDIN, &WorldSession::HandleMailDelete },
|
||||||
/*0x24A*/ { "CMSG_MAIL_CREATE_TEXT_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleMailCreateTextItem },
|
/*0x24A*/ { "CMSG_MAIL_CREATE_TEXT_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleMailCreateTextItem },
|
||||||
/*0x24B*/ { "SMSG_SPELLLOGMISS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x24B*/ { "SMSG_SPELLLOGMISS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -670,7 +670,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x281*/ { "CMSG_RESET_FACTION_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x281*/ { "CMSG_RESET_FACTION_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x282*/ { "CMSG_AUTOSTORE_BANK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleAutoStoreBankItemOpcode },
|
/*0x282*/ { "CMSG_AUTOSTORE_BANK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleAutoStoreBankItemOpcode },
|
||||||
/*0x283*/ { "CMSG_AUTOBANK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleAutoBankItemOpcode },
|
/*0x283*/ { "CMSG_AUTOBANK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleAutoBankItemOpcode },
|
||||||
/*0x284*/ { "MSG_QUERY_NEXT_MAIL_TIME", STATUS_LOGGEDIN, &WorldSession::HandleMsgQueryNextMailtime },
|
/*0x284*/ { "MSG_QUERY_NEXT_MAIL_TIME", STATUS_LOGGEDIN, &WorldSession::HandleQueryNextMailTime },
|
||||||
/*0x285*/ { "SMSG_RECEIVED_MAIL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x285*/ { "SMSG_RECEIVED_MAIL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x286*/ { "SMSG_RAID_GROUP_ONLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x286*/ { "SMSG_RAID_GROUP_ONLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x287*/ { "CMSG_SET_DURABILITY_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x287*/ { "CMSG_SET_DURABILITY_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -680,8 +680,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x28B*/ { "CMSG_SET_PVP_TITLE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x28B*/ { "CMSG_SET_PVP_TITLE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x28C*/ { "SMSG_PVP_CREDIT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x28C*/ { "SMSG_PVP_CREDIT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x28D*/ { "SMSG_AUCTION_REMOVED_NOTIFICATION", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x28D*/ { "SMSG_AUCTION_REMOVED_NOTIFICATION", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x28E*/ { "CMSG_GROUP_RAID_CONVERT", STATUS_LOGGEDIN, &WorldSession::HandleRaidConvertOpcode },
|
/*0x28E*/ { "CMSG_GROUP_RAID_CONVERT", STATUS_LOGGEDIN, &WorldSession::HandleGroupRaidConvertOpcode },
|
||||||
/*0x28F*/ { "CMSG_GROUP_ASSISTANT_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleGroupAssistantOpcode },
|
/*0x28F*/ { "CMSG_GROUP_ASSISTANT_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleGroupAssistantLeaderOpcode},
|
||||||
/*0x290*/ { "CMSG_BUYBACK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleBuybackItem },
|
/*0x290*/ { "CMSG_BUYBACK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleBuybackItem },
|
||||||
/*0x291*/ { "SMSG_SERVER_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x291*/ { "SMSG_SERVER_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x292*/ { "CMSG_MEETINGSTONE_JOIN", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x292*/ { "CMSG_MEETINGSTONE_JOIN", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -708,7 +708,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x2A7*/ { "SMSG_GAMEOBJECT_RESET_STATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2A7*/ { "SMSG_GAMEOBJECT_RESET_STATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2A8*/ { "CMSG_REPAIR_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleRepairItemOpcode },
|
/*0x2A8*/ { "CMSG_REPAIR_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleRepairItemOpcode },
|
||||||
/*0x2A9*/ { "SMSG_CHAT_PLAYER_NOT_FOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2A9*/ { "SMSG_CHAT_PLAYER_NOT_FOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2AA*/ { "MSG_TALENT_WIPE_CONFIRM", STATUS_LOGGEDIN, &WorldSession::HandleTalentWipeOpcode },
|
/*0x2AA*/ { "MSG_TALENT_WIPE_CONFIRM", STATUS_LOGGEDIN, &WorldSession::HandleTalentWipeConfirmOpcode },
|
||||||
/*0x2AB*/ { "SMSG_SUMMON_REQUEST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2AB*/ { "SMSG_SUMMON_REQUEST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2AC*/ { "CMSG_SUMMON_RESPONSE", STATUS_LOGGEDIN, &WorldSession::HandleSummonResponseOpcode },
|
/*0x2AC*/ { "CMSG_SUMMON_RESPONSE", STATUS_LOGGEDIN, &WorldSession::HandleSummonResponseOpcode },
|
||||||
/*0x2AD*/ { "MSG_MOVE_TOGGLE_GRAVITY_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x2AD*/ { "MSG_MOVE_TOGGLE_GRAVITY_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -723,13 +723,13 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x2B6*/ { "SMSG_SCRIPT_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2B6*/ { "SMSG_SCRIPT_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2B7*/ { "SMSG_DUEL_COUNTDOWN", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2B7*/ { "SMSG_DUEL_COUNTDOWN", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2B8*/ { "SMSG_AREA_TRIGGER_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2B8*/ { "SMSG_AREA_TRIGGER_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2B9*/ { "CMSG_SHOWING_HELM", STATUS_LOGGEDIN, &WorldSession::HandleToggleHelmOpcode },
|
/*0x2B9*/ { "CMSG_SHOWING_HELM", STATUS_LOGGEDIN, &WorldSession::HandleShowingHelmOpcode },
|
||||||
/*0x2BA*/ { "CMSG_SHOWING_CLOAK", STATUS_LOGGEDIN, &WorldSession::HandleToggleCloakOpcode },
|
/*0x2BA*/ { "CMSG_SHOWING_CLOAK", STATUS_LOGGEDIN, &WorldSession::HandleShowingCloakOpcode },
|
||||||
/*0x2BB*/ { "SMSG_MEETINGSTONE_JOINFAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2BB*/ { "SMSG_MEETINGSTONE_JOINFAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2BC*/ { "SMSG_PLAYER_SKINNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2BC*/ { "SMSG_PLAYER_SKINNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2BD*/ { "SMSG_DURABILITY_DAMAGE_DEATH", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2BD*/ { "SMSG_DURABILITY_DAMAGE_DEATH", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2BE*/ { "CMSG_SET_EXPLORATION", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x2BE*/ { "CMSG_SET_EXPLORATION", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x2BF*/ { "CMSG_SET_ACTIONBAR_TOGGLES", STATUS_AUTHED, &WorldSession::HandleSetActionBar },
|
/*0x2BF*/ { "CMSG_SET_ACTIONBAR_TOGGLES", STATUS_AUTHED, &WorldSession::HandleSetActionBarToggles },
|
||||||
/*0x2C0*/ { "UMSG_DELETE_GUILD_CHARTER", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x2C0*/ { "UMSG_DELETE_GUILD_CHARTER", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x2C1*/ { "MSG_PETITION_RENAME", STATUS_LOGGEDIN, &WorldSession::HandlePetitionRenameOpcode },
|
/*0x2C1*/ { "MSG_PETITION_RENAME", STATUS_LOGGEDIN, &WorldSession::HandlePetitionRenameOpcode },
|
||||||
/*0x2C2*/ { "SMSG_INIT_WORLD_STATES", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2C2*/ { "SMSG_INIT_WORLD_STATES", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -737,9 +737,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x2C4*/ { "CMSG_ITEM_NAME_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleItemNameQueryOpcode },
|
/*0x2C4*/ { "CMSG_ITEM_NAME_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleItemNameQueryOpcode },
|
||||||
/*0x2C5*/ { "SMSG_ITEM_NAME_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2C5*/ { "SMSG_ITEM_NAME_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2C6*/ { "SMSG_PET_ACTION_FEEDBACK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2C6*/ { "SMSG_PET_ACTION_FEEDBACK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2C7*/ { "CMSG_CHAR_RENAME", STATUS_AUTHED, &WorldSession::HandleChangePlayerNameOpcode },
|
/*0x2C7*/ { "CMSG_CHAR_RENAME", STATUS_AUTHED, &WorldSession::HandleCharRenameOpcode },
|
||||||
/*0x2C8*/ { "SMSG_CHAR_RENAME", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2C8*/ { "SMSG_CHAR_RENAME", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2C9*/ { "CMSG_MOVE_SPLINE_DONE", STATUS_LOGGEDIN, &WorldSession::HandleTaxiNextDestinationOpcode },
|
/*0x2C9*/ { "CMSG_MOVE_SPLINE_DONE", STATUS_LOGGEDIN, &WorldSession::HandleMoveSplineDoneOpcode },
|
||||||
/*0x2CA*/ { "CMSG_MOVE_FALL_RESET", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x2CA*/ { "CMSG_MOVE_FALL_RESET", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x2CB*/ { "SMSG_INSTANCE_SAVE_CREATED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2CB*/ { "SMSG_INSTANCE_SAVE_CREATED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2CC*/ { "SMSG_RAID_INSTANCE_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2CC*/ { "SMSG_RAID_INSTANCE_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -751,9 +751,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x2D2*/ { "SMSG_PLAY_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2D2*/ { "SMSG_PLAY_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2D3*/ { "CMSG_BATTLEFIELD_STATUS", STATUS_LOGGEDIN, &WorldSession::HandleBattlefieldStatusOpcode },
|
/*0x2D3*/ { "CMSG_BATTLEFIELD_STATUS", STATUS_LOGGEDIN, &WorldSession::HandleBattlefieldStatusOpcode },
|
||||||
/*0x2D4*/ { "SMSG_BATTLEFIELD_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2D4*/ { "SMSG_BATTLEFIELD_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2D5*/ { "CMSG_BATTLEFIELD_PORT", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundPlayerPortOpcode},
|
/*0x2D5*/ { "CMSG_BATTLEFIELD_PORT", STATUS_LOGGEDIN, &WorldSession::HandleBattleFieldPortOpcode },
|
||||||
/*0x2D6*/ { "MSG_INSPECT_HONOR_STATS", STATUS_LOGGEDIN, &WorldSession::HandleInspectHonorStatsOpcode },
|
/*0x2D6*/ { "MSG_INSPECT_HONOR_STATS", STATUS_LOGGEDIN, &WorldSession::HandleInspectHonorStatsOpcode },
|
||||||
/*0x2D7*/ { "CMSG_BATTLEMASTER_HELLO", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundHelloOpcode },
|
/*0x2D7*/ { "CMSG_BATTLEMASTER_HELLO", STATUS_LOGGEDIN, &WorldSession::HandleBattlemasterHelloOpcode },
|
||||||
/*0x2D8*/ { "CMSG_MOVE_START_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x2D8*/ { "CMSG_MOVE_START_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x2D9*/ { "CMSG_MOVE_STOP_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x2D9*/ { "CMSG_MOVE_STOP_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x2DA*/ { "SMSG_FORCE_WALK_SPEED_CHANGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2DA*/ { "SMSG_FORCE_WALK_SPEED_CHANGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -762,8 +762,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x2DD*/ { "CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK", STATUS_LOGGEDIN, &WorldSession::HandleForceSpeedChangeAck },
|
/*0x2DD*/ { "CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK", STATUS_LOGGEDIN, &WorldSession::HandleForceSpeedChangeAck },
|
||||||
/*0x2DE*/ { "SMSG_FORCE_TURN_RATE_CHANGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2DE*/ { "SMSG_FORCE_TURN_RATE_CHANGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2DF*/ { "CMSG_FORCE_TURN_RATE_CHANGE_ACK", STATUS_LOGGEDIN, &WorldSession::HandleForceSpeedChangeAck },
|
/*0x2DF*/ { "CMSG_FORCE_TURN_RATE_CHANGE_ACK", STATUS_LOGGEDIN, &WorldSession::HandleForceSpeedChangeAck },
|
||||||
/*0x2E0*/ { "MSG_PVP_LOG_DATA", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundPVPlogdataOpcode},
|
/*0x2E0*/ { "MSG_PVP_LOG_DATA", STATUS_LOGGEDIN, &WorldSession::HandlePVPLogDataOpcode },
|
||||||
/*0x2E1*/ { "CMSG_LEAVE_BATTLEFIELD", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundLeaveOpcode },
|
/*0x2E1*/ { "CMSG_LEAVE_BATTLEFIELD", STATUS_LOGGEDIN, &WorldSession::HandleLeaveBattlefieldOpcode },
|
||||||
/*0x2E2*/ { "CMSG_AREA_SPIRIT_HEALER_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleAreaSpiritHealerQueryOpcode},
|
/*0x2E2*/ { "CMSG_AREA_SPIRIT_HEALER_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleAreaSpiritHealerQueryOpcode},
|
||||||
/*0x2E3*/ { "CMSG_AREA_SPIRIT_HEALER_QUEUE", STATUS_LOGGEDIN, &WorldSession::HandleAreaSpiritHealerQueueOpcode},
|
/*0x2E3*/ { "CMSG_AREA_SPIRIT_HEALER_QUEUE", STATUS_LOGGEDIN, &WorldSession::HandleAreaSpiritHealerQueueOpcode},
|
||||||
/*0x2E4*/ { "SMSG_AREA_SPIRIT_HEALER_TIME", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2E4*/ { "SMSG_AREA_SPIRIT_HEALER_TIME", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -776,7 +776,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x2EB*/ { "SMSG_BINDER_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2EB*/ { "SMSG_BINDER_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2EC*/ { "SMSG_BATTLEGROUND_PLAYER_JOINED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2EC*/ { "SMSG_BATTLEGROUND_PLAYER_JOINED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2ED*/ { "SMSG_BATTLEGROUND_PLAYER_LEFT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2ED*/ { "SMSG_BATTLEGROUND_PLAYER_LEFT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2EE*/ { "CMSG_BATTLEMASTER_JOIN", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundJoinOpcode },
|
/*0x2EE*/ { "CMSG_BATTLEMASTER_JOIN", STATUS_LOGGEDIN, &WorldSession::HandleBattlemasterJoinOpcode },
|
||||||
/*0x2EF*/ { "SMSG_ADDON_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2EF*/ { "SMSG_ADDON_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2F0*/ { "CMSG_PET_UNLEARN", STATUS_LOGGEDIN, &WorldSession::HandlePetUnlearnOpcode },
|
/*0x2F0*/ { "CMSG_PET_UNLEARN", STATUS_LOGGEDIN, &WorldSession::HandlePetUnlearnOpcode },
|
||||||
/*0x2F1*/ { "SMSG_PET_UNLEARN_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2F1*/ { "SMSG_PET_UNLEARN_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -790,7 +790,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x2F9*/ { "SMSG_MINIGAME_MOVE_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2F9*/ { "SMSG_MINIGAME_MOVE_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2FA*/ { "SMSG_RAID_INSTANCE_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2FA*/ { "SMSG_RAID_INSTANCE_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2FB*/ { "SMSG_COMPRESSED_MOVES", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2FB*/ { "SMSG_COMPRESSED_MOVES", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2FC*/ { "CMSG_GUILD_INFO_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleGuildChangeInfoOpcode },
|
/*0x2FC*/ { "CMSG_GUILD_INFO_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleGuildChangeInfoTextOpcode },
|
||||||
/*0x2FD*/ { "SMSG_CHAT_RESTRICTED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2FD*/ { "SMSG_CHAT_RESTRICTED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2FE*/ { "SMSG_SPLINE_SET_RUN_SPEED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2FE*/ { "SMSG_SPLINE_SET_RUN_SPEED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x2FF*/ { "SMSG_SPLINE_SET_RUN_BACK_SPEED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x2FF*/ { "SMSG_SPLINE_SET_RUN_BACK_SPEED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -812,13 +812,13 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x30F*/ { "CMSG_GM_NUKE_ACCOUNT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x30F*/ { "CMSG_GM_NUKE_ACCOUNT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x310*/ { "MSG_GM_DESTROY_CORPSE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x310*/ { "MSG_GM_DESTROY_CORPSE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x311*/ { "CMSG_GM_DESTROY_ONLINE_CORPSE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x311*/ { "CMSG_GM_DESTROY_ONLINE_CORPSE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x312*/ { "CMSG_ACTIVATETAXIEXPRESS", STATUS_LOGGEDIN, &WorldSession::HandleActivateTaxiFarOpcode },
|
/*0x312*/ { "CMSG_ACTIVATETAXIEXPRESS", STATUS_LOGGEDIN, &WorldSession::HandleActivateTaxiExpressOpcode },
|
||||||
/*0x313*/ { "SMSG_SET_FACTION_ATWAR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x313*/ { "SMSG_SET_FACTION_ATWAR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x314*/ { "SMSG_GAMETIMEBIAS_SET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x314*/ { "SMSG_GAMETIMEBIAS_SET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x315*/ { "CMSG_DEBUG_ACTIONS_START", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x315*/ { "CMSG_DEBUG_ACTIONS_START", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x316*/ { "CMSG_DEBUG_ACTIONS_STOP", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x316*/ { "CMSG_DEBUG_ACTIONS_STOP", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x317*/ { "CMSG_SET_FACTION_INACTIVE", STATUS_LOGGEDIN, &WorldSession::HandleSetWatchedFactionInactiveOpcode},
|
/*0x317*/ { "CMSG_SET_FACTION_INACTIVE", STATUS_LOGGEDIN, &WorldSession::HandleSetFactionInactiveOpcode },
|
||||||
/*0x318*/ { "CMSG_SET_WATCHED_FACTION", STATUS_LOGGEDIN, &WorldSession::HandleSetWatchedFactionIndexOpcode},
|
/*0x318*/ { "CMSG_SET_WATCHED_FACTION", STATUS_LOGGEDIN, &WorldSession::HandleSetWatchedFactionOpcode },
|
||||||
/*0x319*/ { "MSG_MOVE_TIME_SKIPPED", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x319*/ { "MSG_MOVE_TIME_SKIPPED", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x31A*/ { "SMSG_SPLINE_MOVE_ROOT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x31A*/ { "SMSG_SPLINE_MOVE_ROOT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x31B*/ { "CMSG_SET_EXPLORATION_ALL", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x31B*/ { "CMSG_SET_EXPLORATION_ALL", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -827,7 +827,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x31E*/ { "SMSG_INSTANCE_RESET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x31E*/ { "SMSG_INSTANCE_RESET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x31F*/ { "SMSG_INSTANCE_RESET_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x31F*/ { "SMSG_INSTANCE_RESET_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x320*/ { "SMSG_UPDATE_LAST_INSTANCE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x320*/ { "SMSG_UPDATE_LAST_INSTANCE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x321*/ { "MSG_RAID_TARGET_UPDATE", STATUS_LOGGEDIN, &WorldSession::HandleRaidIconTargetOpcode },
|
/*0x321*/ { "MSG_RAID_TARGET_UPDATE", STATUS_LOGGEDIN, &WorldSession::HandleRaidTargetUpdateOpcode },
|
||||||
/*0x322*/ { "MSG_RAID_READY_CHECK", STATUS_LOGGEDIN, &WorldSession::HandleRaidReadyCheckOpcode },
|
/*0x322*/ { "MSG_RAID_READY_CHECK", STATUS_LOGGEDIN, &WorldSession::HandleRaidReadyCheckOpcode },
|
||||||
/*0x323*/ { "CMSG_LUA_USAGE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x323*/ { "CMSG_LUA_USAGE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x324*/ { "SMSG_PET_ACTION_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x324*/ { "SMSG_PET_ACTION_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -835,7 +835,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x326*/ { "SMSG_GHOSTEE_GONE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x326*/ { "SMSG_GHOSTEE_GONE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x327*/ { "CMSG_GM_UPDATE_TICKET_STATUS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x327*/ { "CMSG_GM_UPDATE_TICKET_STATUS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x328*/ { "SMSG_GM_TICKET_STATUS_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x328*/ { "SMSG_GM_TICKET_STATUS_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x329*/ { "MSG_SET_DUNGEON_DIFFICULTY", STATUS_LOGGEDIN, &WorldSession::HandleDungeonDifficultyOpcode },
|
/*0x329*/ { "MSG_SET_DUNGEON_DIFFICULTY", STATUS_LOGGEDIN, &WorldSession::HandleSetDungeonDifficultyOpcode},
|
||||||
/*0x32A*/ { "CMSG_GMSURVEY_SUBMIT", STATUS_LOGGEDIN, &WorldSession::HandleGMSurveySubmit },
|
/*0x32A*/ { "CMSG_GMSURVEY_SUBMIT", STATUS_LOGGEDIN, &WorldSession::HandleGMSurveySubmit },
|
||||||
/*0x32B*/ { "SMSG_UPDATE_INSTANCE_OWNERSHIP", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x32B*/ { "SMSG_UPDATE_INSTANCE_OWNERSHIP", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x32C*/ { "CMSG_IGNORE_KNOCKBACK_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x32C*/ { "CMSG_IGNORE_KNOCKBACK_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -863,7 +863,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x342*/ { "MSG_MOVE_STOP_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x342*/ { "MSG_MOVE_STOP_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x343*/ { "SMSG_MOVE_SET_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x343*/ { "SMSG_MOVE_SET_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x344*/ { "SMSG_MOVE_UNSET_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x344*/ { "SMSG_MOVE_UNSET_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x345*/ { "CMSG_MOVE_SET_CAN_FLY_ACK", STATUS_LOGGEDIN, &WorldSession::HandleMoveFlyModeChangeAckOpcode},
|
/*0x345*/ { "CMSG_MOVE_SET_CAN_FLY_ACK", STATUS_LOGGEDIN, &WorldSession::HandleMoveSetCanFlyAckOpcode },
|
||||||
/*0x346*/ { "CMSG_MOVE_SET_FLY", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x346*/ { "CMSG_MOVE_SET_FLY", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x347*/ { "CMSG_SOCKET_GEMS", STATUS_LOGGEDIN, &WorldSession::HandleSocketOpcode },
|
/*0x347*/ { "CMSG_SOCKET_GEMS", STATUS_LOGGEDIN, &WorldSession::HandleSocketOpcode },
|
||||||
/*0x348*/ { "CMSG_ARENA_TEAM_CREATE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x348*/ { "CMSG_ARENA_TEAM_CREATE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -873,30 +873,30 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x34C*/ { "SMSG_ARENA_TEAM_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x34C*/ { "SMSG_ARENA_TEAM_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x34D*/ { "CMSG_ARENA_TEAM_ROSTER", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamRosterOpcode },
|
/*0x34D*/ { "CMSG_ARENA_TEAM_ROSTER", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamRosterOpcode },
|
||||||
/*0x34E*/ { "SMSG_ARENA_TEAM_ROSTER", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x34E*/ { "SMSG_ARENA_TEAM_ROSTER", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x34F*/ { "CMSG_ARENA_TEAM_INVITE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamAddMemberOpcode },
|
/*0x34F*/ { "CMSG_ARENA_TEAM_INVITE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamInviteOpcode },
|
||||||
/*0x350*/ { "SMSG_ARENA_TEAM_INVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x350*/ { "SMSG_ARENA_TEAM_INVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x351*/ { "CMSG_ARENA_TEAM_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamInviteAcceptOpcode},
|
/*0x351*/ { "CMSG_ARENA_TEAM_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamAcceptOpcode },
|
||||||
/*0x352*/ { "CMSG_ARENA_TEAM_DECLINE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamInviteDeclineOpcode},
|
/*0x352*/ { "CMSG_ARENA_TEAM_DECLINE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamDeclineOpcode },
|
||||||
/*0x353*/ { "CMSG_ARENA_TEAM_LEAVE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamLeaveOpcode },
|
/*0x353*/ { "CMSG_ARENA_TEAM_LEAVE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamLeaveOpcode },
|
||||||
/*0x354*/ { "CMSG_ARENA_TEAM_REMOVE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamRemoveFromTeamOpcode},
|
/*0x354*/ { "CMSG_ARENA_TEAM_REMOVE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamRemoveOpcode },
|
||||||
/*0x355*/ { "CMSG_ARENA_TEAM_DISBAND", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamDisbandOpcode },
|
/*0x355*/ { "CMSG_ARENA_TEAM_DISBAND", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamDisbandOpcode },
|
||||||
/*0x356*/ { "CMSG_ARENA_TEAM_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamPromoteToCaptainOpcode},
|
/*0x356*/ { "CMSG_ARENA_TEAM_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamLeaderOpcode },
|
||||||
/*0x357*/ { "SMSG_ARENA_TEAM_EVENT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x357*/ { "SMSG_ARENA_TEAM_EVENT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x358*/ { "CMSG_BATTLEMASTER_JOIN_ARENA", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundArenaJoin },
|
/*0x358*/ { "CMSG_BATTLEMASTER_JOIN_ARENA", STATUS_LOGGEDIN, &WorldSession::HandleBattlemasterJoinArena },
|
||||||
/*0x359*/ { "MSG_MOVE_START_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x359*/ { "MSG_MOVE_START_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x35A*/ { "MSG_MOVE_STOP_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x35A*/ { "MSG_MOVE_STOP_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x35B*/ { "SMSG_ARENA_TEAM_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x35B*/ { "SMSG_ARENA_TEAM_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x35C*/ { "CMSG_LFG_SET_AUTOJOIN", STATUS_AUTHED, &WorldSession::HandleLfgAutoJoinOpcode },
|
/*0x35C*/ { "CMSG_LFG_SET_AUTOJOIN", STATUS_AUTHED, &WorldSession::HandleLfgSetAutoJoinOpcode },
|
||||||
/*0x35D*/ { "CMSG_LFG_CLEAR_AUTOJOIN", STATUS_LOGGEDIN, &WorldSession::HandleLfgCancelAutoJoinOpcode },
|
/*0x35D*/ { "CMSG_LFG_CLEAR_AUTOJOIN", STATUS_LOGGEDIN, &WorldSession::HandleLfgClearAutoJoinOpcode },
|
||||||
/*0x35E*/ { "CMSG_LFM_SET_AUTOFILL", STATUS_AUTHED, &WorldSession::HandleLfmAutoAddMembersOpcode },
|
/*0x35E*/ { "CMSG_LFM_SET_AUTOFILL", STATUS_AUTHED, &WorldSession::HandleLfmSetAutoFillOpcode },
|
||||||
/*0x35F*/ { "CMSG_LFM_CLEAR_AUTOFILL", STATUS_LOGGEDIN, &WorldSession::HandleLfmCancelAutoAddmembersOpcode},
|
/*0x35F*/ { "CMSG_LFM_CLEAR_AUTOFILL", STATUS_LOGGEDIN, &WorldSession::HandleLfmClearAutoFillOpcode },
|
||||||
/*0x360*/ { "CMSG_ACCEPT_LFG_MATCH", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x360*/ { "CMSG_ACCEPT_LFG_MATCH", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x361*/ { "CMSG_DECLINE_LFG_MATCH", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x361*/ { "CMSG_DECLINE_LFG_MATCH", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x362*/ { "CMSG_CANCEL_PENDING_LFG", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x362*/ { "CMSG_CANCEL_PENDING_LFG", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x363*/ { "CMSG_CLEAR_LOOKING_FOR_GROUP", STATUS_LOGGEDIN, &WorldSession::HandleLfgClearOpcode },
|
/*0x363*/ { "CMSG_CLEAR_LOOKING_FOR_GROUP", STATUS_LOGGEDIN, &WorldSession::HandleLfgClearOpcode },
|
||||||
/*0x364*/ { "CMSG_CLEAR_LOOKING_FOR_MORE", STATUS_LOGGEDIN, &WorldSession::HandleLfmSetNoneOpcode },
|
/*0x364*/ { "CMSG_CLEAR_LOOKING_FOR_MORE", STATUS_LOGGEDIN, &WorldSession::HandleLfmClearOpcode },
|
||||||
/*0x365*/ { "CMSG_SET_LOOKING_FOR_MORE", STATUS_LOGGEDIN, &WorldSession::HandleLfmSetOpcode },
|
/*0x365*/ { "CMSG_SET_LOOKING_FOR_MORE", STATUS_LOGGEDIN, &WorldSession::HandleSetLfmOpcode },
|
||||||
/*0x366*/ { "CMSG_SET_LFG_COMMENT", STATUS_LOGGEDIN, &WorldSession::HandleLfgSetCommentOpcode },
|
/*0x366*/ { "CMSG_SET_LFG_COMMENT", STATUS_LOGGEDIN, &WorldSession::HandleSetLfgCommentOpcode },
|
||||||
/*0x367*/ { "SMSG_LFG_TIMEDOUT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x367*/ { "SMSG_LFG_TIMEDOUT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x368*/ { "SMSG_LFG_OTHER_TIMEDOUT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x368*/ { "SMSG_LFG_OTHER_TIMEDOUT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x369*/ { "SMSG_LFG_AUTOJOIN_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x369*/ { "SMSG_LFG_AUTOJOIN_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -910,12 +910,12 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x371*/ { "SMSG_LFG_PENDING_MATCH", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x371*/ { "SMSG_LFG_PENDING_MATCH", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x372*/ { "SMSG_LFG_PENDING_MATCH_DONE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x372*/ { "SMSG_LFG_PENDING_MATCH_DONE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x373*/ { "SMSG_TITLE_EARNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x373*/ { "SMSG_TITLE_EARNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x374*/ { "CMSG_SET_TITLE", STATUS_LOGGEDIN, &WorldSession::HandleChooseTitleOpcode },
|
/*0x374*/ { "CMSG_SET_TITLE", STATUS_LOGGEDIN, &WorldSession::HandleSetTitleOpcode },
|
||||||
/*0x375*/ { "CMSG_CANCEL_MOUNT_AURA", STATUS_LOGGEDIN, &WorldSession::HandleDismountOpcode },
|
/*0x375*/ { "CMSG_CANCEL_MOUNT_AURA", STATUS_LOGGEDIN, &WorldSession::HandleCancelMountAuraOpcode },
|
||||||
/*0x376*/ { "SMSG_ARENA_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x376*/ { "SMSG_ARENA_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x377*/ { "MSG_INSPECT_ARENA_TEAMS", STATUS_LOGGEDIN, &WorldSession::HandleInspectArenaStatsOpcode },
|
/*0x377*/ { "MSG_INSPECT_ARENA_TEAMS", STATUS_LOGGEDIN, &WorldSession::HandleInspectArenaTeamsOpcode },
|
||||||
/*0x378*/ { "SMSG_DEATH_RELEASE_LOC", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x378*/ { "SMSG_DEATH_RELEASE_LOC", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x379*/ { "CMSG_CANCEL_TEMP_ENCHANTMENT", STATUS_LOGGEDIN, &WorldSession::HandleCancelTempItemEnchantmentOpcode},
|
/*0x379*/ { "CMSG_CANCEL_TEMP_ENCHANTMENT", STATUS_LOGGEDIN, &WorldSession::HandleCancelTempEnchantmentOpcode},
|
||||||
/*0x37A*/ { "SMSG_FORCED_DEATH_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x37A*/ { "SMSG_FORCED_DEATH_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x37B*/ { "CMSG_CHEAT_SET_HONOR_CURRENCY", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x37B*/ { "CMSG_CHEAT_SET_HONOR_CURRENCY", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x37C*/ { "CMSG_CHEAT_SET_ARENA_CURRENCY", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x37C*/ { "CMSG_CHEAT_SET_ARENA_CURRENCY", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -934,9 +934,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x389*/ { "CMSG_SET_TAXI_BENCHMARK_MODE", STATUS_AUTHED, &WorldSession::HandleSetTaxiBenchmarkOpcode },
|
/*0x389*/ { "CMSG_SET_TAXI_BENCHMARK_MODE", STATUS_AUTHED, &WorldSession::HandleSetTaxiBenchmarkOpcode },
|
||||||
/*0x38A*/ { "SMSG_JOINED_BATTLEGROUND_QUEUE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x38A*/ { "SMSG_JOINED_BATTLEGROUND_QUEUE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x38B*/ { "SMSG_REALM_SPLIT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x38B*/ { "SMSG_REALM_SPLIT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x38C*/ { "CMSG_REALM_SPLIT", STATUS_AUTHED, &WorldSession::HandleRealmStateRequestOpcode },
|
/*0x38C*/ { "CMSG_REALM_SPLIT", STATUS_AUTHED, &WorldSession::HandleRealmSplitOpcode },
|
||||||
/*0x38D*/ { "CMSG_MOVE_CHNG_TRANSPORT", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x38D*/ { "CMSG_MOVE_CHNG_TRANSPORT", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x38E*/ { "MSG_PARTY_ASSIGNMENT", STATUS_LOGGEDIN, &WorldSession::HandleGroupPromoteOpcode },
|
/*0x38E*/ { "MSG_PARTY_ASSIGNMENT", STATUS_LOGGEDIN, &WorldSession::HandlePartyAssignmentOpcode },
|
||||||
/*0x38F*/ { "SMSG_OFFER_PETITION_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x38F*/ { "SMSG_OFFER_PETITION_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x390*/ { "SMSG_TIME_SYNC_REQ", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x390*/ { "SMSG_TIME_SYNC_REQ", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x391*/ { "CMSG_TIME_SYNC_RESP", STATUS_LOGGEDIN, &WorldSession::HandleTimeSyncResp },
|
/*0x391*/ { "CMSG_TIME_SYNC_RESP", STATUS_LOGGEDIN, &WorldSession::HandleTimeSyncResp },
|
||||||
|
|
@ -969,7 +969,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x3AC*/ { "SMSG_DISMOUNT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3AC*/ { "SMSG_DISMOUNT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3AD*/ { "MSG_MOVE_UPDATE_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3AD*/ { "MSG_MOVE_UPDATE_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3AE*/ { "MSG_RAID_READY_CHECK_CONFIRM", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3AE*/ { "MSG_RAID_READY_CHECK_CONFIRM", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3AF*/ { "CMSG_VOICE_SESSION_ENABLE", STATUS_AUTHED, &WorldSession::HandleVoiceSettingsOpcode },
|
/*0x3AF*/ { "CMSG_VOICE_SESSION_ENABLE", STATUS_AUTHED, &WorldSession::HandleVoiceSessionEnableOpcode },
|
||||||
/*0x3B0*/ { "SMSG_VOICE_SESSION_ENABLE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3B0*/ { "SMSG_VOICE_SESSION_ENABLE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3B1*/ { "SMSG_VOICE_PARENTAL_CONTROLS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3B1*/ { "SMSG_VOICE_PARENTAL_CONTROLS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3B2*/ { "CMSG_GM_WHISPER", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3B2*/ { "CMSG_GM_WHISPER", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -992,8 +992,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x3C3*/ { "CMSG_CHEAT_PLAYER_LOOKUP", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3C3*/ { "CMSG_CHEAT_PLAYER_LOOKUP", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3C4*/ { "SMSG_CHEAT_PLAYER_LOOKUP", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3C4*/ { "SMSG_CHEAT_PLAYER_LOOKUP", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3C5*/ { "SMSG_KICK_REASON", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3C5*/ { "SMSG_KICK_REASON", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3C6*/ { "MSG_RAID_READY_CHECK_FINISHED", STATUS_LOGGEDIN, &WorldSession::HandleRaidReadyCheckFinishOpcode},
|
/*0x3C6*/ { "MSG_RAID_READY_CHECK_FINISHED", STATUS_LOGGEDIN, &WorldSession::HandleRaidReadyCheckFinishedOpcode},
|
||||||
/*0x3C7*/ { "CMSG_COMPLAIN", STATUS_LOGGEDIN, &WorldSession::HandleReportSpamOpcode },
|
/*0x3C7*/ { "CMSG_COMPLAIN", STATUS_LOGGEDIN, &WorldSession::HandleComplainOpcode },
|
||||||
/*0x3C8*/ { "SMSG_COMPLAIN_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3C8*/ { "SMSG_COMPLAIN_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3C9*/ { "SMSG_FEATURE_SYSTEM_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3C9*/ { "SMSG_FEATURE_SYSTEM_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3CA*/ { "CMSG_GM_SHOW_COMPLAINTS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3CA*/ { "CMSG_GM_SHOW_COMPLAINTS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -1004,11 +1004,11 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x3CF*/ { "CMSG_CHANNEL_UNSILENCE_ALL", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3CF*/ { "CMSG_CHANNEL_UNSILENCE_ALL", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3D0*/ { "CMSG_TARGET_CAST", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3D0*/ { "CMSG_TARGET_CAST", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3D1*/ { "CMSG_TARGET_SCRIPT_CAST", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3D1*/ { "CMSG_TARGET_SCRIPT_CAST", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3D2*/ { "CMSG_CHANNEL_DISPLAY_LIST", STATUS_LOGGEDIN, &WorldSession::HandleChannelRosterQuery },
|
/*0x3D2*/ { "CMSG_CHANNEL_DISPLAY_LIST", STATUS_LOGGEDIN, &WorldSession::HandleChannelDisplayListQuery },
|
||||||
/*0x3D3*/ { "CMSG_SET_ACTIVE_VOICE_CHANNEL", STATUS_AUTHED, &WorldSession::HandleChannelVoiceChatQuery },
|
/*0x3D3*/ { "CMSG_SET_ACTIVE_VOICE_CHANNEL", STATUS_AUTHED, &WorldSession::HandleSetActiveVoiceChannel },
|
||||||
/*0x3D4*/ { "CMSG_GET_CHANNEL_MEMBER_COUNT", STATUS_LOGGEDIN, &WorldSession::HandleChannelInfoQuery },
|
/*0x3D4*/ { "CMSG_GET_CHANNEL_MEMBER_COUNT", STATUS_LOGGEDIN, &WorldSession::HandleGetChannelMemberCount },
|
||||||
/*0x3D5*/ { "SMSG_CHANNEL_MEMBER_COUNT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3D5*/ { "SMSG_CHANNEL_MEMBER_COUNT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3D6*/ { "CMSG_CHANNEL_VOICE_ON", STATUS_LOGGEDIN, &WorldSession::HandleChannelEnableVoiceOpcode },
|
/*0x3D6*/ { "CMSG_CHANNEL_VOICE_ON", STATUS_LOGGEDIN, &WorldSession::HandleChannelVoiceOnOpcode },
|
||||||
/*0x3D7*/ { "CMSG_CHANNEL_VOICE_OFF", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3D7*/ { "CMSG_CHANNEL_VOICE_OFF", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3D8*/ { "CMSG_DEBUG_LIST_TARGETS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3D8*/ { "CMSG_DEBUG_LIST_TARGETS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3D9*/ { "SMSG_DEBUG_LIST_TARGETS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3D9*/ { "SMSG_DEBUG_LIST_TARGETS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -1022,18 +1022,18 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x3E1*/ { "SMSG_COMSAT_DISCONNECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3E1*/ { "SMSG_COMSAT_DISCONNECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3E2*/ { "SMSG_COMSAT_CONNECT_FAIL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3E2*/ { "SMSG_COMSAT_CONNECT_FAIL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3E3*/ { "SMSG_VOICE_CHAT_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3E3*/ { "SMSG_VOICE_CHAT_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3E4*/ { "CMSG_REPORT_PVP_AFK", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundReportAFK },
|
/*0x3E4*/ { "CMSG_REPORT_PVP_AFK", STATUS_LOGGEDIN, &WorldSession::HandleReportPvPAFK },
|
||||||
/*0x3E5*/ { "CMSG_REPORT_PVP_AFK_RESULT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3E5*/ { "CMSG_REPORT_PVP_AFK_RESULT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3E6*/ { "CMSG_GUILD_BANKER_ACTIVATE", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankQuery },
|
/*0x3E6*/ { "CMSG_GUILD_BANKER_ACTIVATE", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankerActivate },
|
||||||
/*0x3E7*/ { "CMSG_GUILD_BANK_QUERY_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankTabColon },
|
/*0x3E7*/ { "CMSG_GUILD_BANK_QUERY_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankQueryTab },
|
||||||
/*0x3E8*/ { "SMSG_GUILD_BANK_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3E8*/ { "SMSG_GUILD_BANK_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3E9*/ { "CMSG_GUILD_BANK_SWAP_ITEMS", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankDepositItem },
|
/*0x3E9*/ { "CMSG_GUILD_BANK_SWAP_ITEMS", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankSwapItems },
|
||||||
/*0x3EA*/ { "CMSG_GUILD_BANK_BUY_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankBuyTab },
|
/*0x3EA*/ { "CMSG_GUILD_BANK_BUY_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankBuyTab },
|
||||||
/*0x3EB*/ { "CMSG_GUILD_BANK_UPDATE_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankModifyTab },
|
/*0x3EB*/ { "CMSG_GUILD_BANK_UPDATE_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankUpdateTab },
|
||||||
/*0x3EC*/ { "CMSG_GUILD_BANK_DEPOSIT_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankDeposit },
|
/*0x3EC*/ { "CMSG_GUILD_BANK_DEPOSIT_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankDepositMoney },
|
||||||
/*0x3ED*/ { "CMSG_GUILD_BANK_WITHDRAW_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankWithdraw },
|
/*0x3ED*/ { "CMSG_GUILD_BANK_WITHDRAW_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankWithdrawMoney },
|
||||||
/*0x3EE*/ { "MSG_GUILD_BANK_LOG_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankLog },
|
/*0x3EE*/ { "MSG_GUILD_BANK_LOG_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankLogQuery },
|
||||||
/*0x3EF*/ { "CMSG_SET_CHANNEL_WATCH", STATUS_LOGGEDIN, &WorldSession::HandleChannelJoinNotify },
|
/*0x3EF*/ { "CMSG_SET_CHANNEL_WATCH", STATUS_LOGGEDIN, &WorldSession::HandleSetChannelWatch },
|
||||||
/*0x3F0*/ { "SMSG_USERLIST_ADD", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3F0*/ { "SMSG_USERLIST_ADD", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3F1*/ { "SMSG_USERLIST_REMOVE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3F1*/ { "SMSG_USERLIST_REMOVE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3F2*/ { "SMSG_USERLIST_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3F2*/ { "SMSG_USERLIST_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -1047,9 +1047,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x3FA*/ { "CMSG_GM_CHARACTER_RESTORE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3FA*/ { "CMSG_GM_CHARACTER_RESTORE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3FB*/ { "CMSG_GM_CHARACTER_SAVE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x3FB*/ { "CMSG_GM_CHARACTER_SAVE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x3FC*/ { "SMSG_VOICESESSION_FULL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x3FC*/ { "SMSG_VOICESESSION_FULL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x3FD*/ { "MSG_GUILD_PERMISSIONS", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankGetRights },
|
/*0x3FD*/ { "MSG_GUILD_PERMISSIONS", STATUS_LOGGEDIN, &WorldSession::HandleGuildPermissions },
|
||||||
/*0x3FE*/ { "MSG_GUILD_BANK_MONEY_WITHDRAWN", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankGetMoneyAmount },
|
/*0x3FE*/ { "MSG_GUILD_BANK_MONEY_WITHDRAWN", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankMoneyWithdrawn },
|
||||||
/*0x3FF*/ { "MSG_GUILD_EVENT_LOG_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGuildEventLogOpcode },
|
/*0x3FF*/ { "MSG_GUILD_EVENT_LOG_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGuildEventLogQueryOpcode },
|
||||||
/*0x400*/ { "CMSG_MAELSTROM_RENAME_GUILD", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x400*/ { "CMSG_MAELSTROM_RENAME_GUILD", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x401*/ { "CMSG_GET_MIRRORIMAGE_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x401*/ { "CMSG_GET_MIRRORIMAGE_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x402*/ { "SMSG_MIRRORIMAGE_DATA", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x402*/ { "SMSG_MIRRORIMAGE_DATA", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
|
|
@ -1059,9 +1059,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x406*/ { "SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x406*/ { "SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x407*/ { "CMSG_KEEP_ALIVE", STATUS_NEVER, &WorldSession::Handle_EarlyProccess },
|
/*0x407*/ { "CMSG_KEEP_ALIVE", STATUS_NEVER, &WorldSession::Handle_EarlyProccess },
|
||||||
/*0x408*/ { "SMSG_RAID_READY_CHECK_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x408*/ { "SMSG_RAID_READY_CHECK_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x409*/ { "CMSG_OPT_OUT_OF_LOOT", STATUS_AUTHED, &WorldSession::HandleGroupPassOnLootOpcode },
|
/*0x409*/ { "CMSG_OPT_OUT_OF_LOOT", STATUS_AUTHED, &WorldSession::HandleOptOutOfLootOpcode },
|
||||||
/*0x40A*/ { "MSG_QUERY_GUILD_BANK_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankTabText },
|
/*0x40A*/ { "MSG_QUERY_GUILD_BANK_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleQueryGuildBankTabText },
|
||||||
/*0x40B*/ { "CMSG_SET_GUILD_BANK_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankSetTabText },
|
/*0x40B*/ { "CMSG_SET_GUILD_BANK_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleSetGuildBankTabText },
|
||||||
/*0x40C*/ { "CMSG_SET_GRANTABLE_LEVELS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x40C*/ { "CMSG_SET_GRANTABLE_LEVELS", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x40D*/ { "CMSG_GRANT_LEVEL", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x40D*/ { "CMSG_GRANT_LEVEL", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x40E*/ { "CMSG_REFER_A_FRIEND", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x40E*/ { "CMSG_REFER_A_FRIEND", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -1070,12 +1070,12 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x411*/ { "CMSG_GROUPACTION_THROTTLED", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x411*/ { "CMSG_GROUPACTION_THROTTLED", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x412*/ { "SMSG_OVERRIDE_LIGHT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x412*/ { "SMSG_OVERRIDE_LIGHT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x413*/ { "SMSG_TOTEM_CREATED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x413*/ { "SMSG_TOTEM_CREATED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x414*/ { "CMSG_TOTEM_DESTROYED", STATUS_LOGGEDIN, &WorldSession::HandleTotemDestroy },
|
/*0x414*/ { "CMSG_TOTEM_DESTROYED", STATUS_LOGGEDIN, &WorldSession::HandleTotemDestroyed },
|
||||||
/*0x415*/ { "CMSG_EXPIRE_RAID_INSTANCE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x415*/ { "CMSG_EXPIRE_RAID_INSTANCE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x416*/ { "CMSG_NO_SPELL_VARIANCE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x416*/ { "CMSG_NO_SPELL_VARIANCE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x417*/ { "CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverStatusQueryMultipleOpcode},
|
/*0x417*/ { "CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverStatusMultipleQuery},
|
||||||
/*0x418*/ { "SMSG_QUESTGIVER_STATUS_MULTIPLE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x418*/ { "SMSG_QUESTGIVER_STATUS_MULTIPLE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x419*/ { "CMSG_SET_PLAYER_DECLINED_NAMES", STATUS_AUTHED, &WorldSession::HandleDeclinedPlayerNameOpcode },
|
/*0x419*/ { "CMSG_SET_PLAYER_DECLINED_NAMES", STATUS_AUTHED, &WorldSession::HandleSetPlayerDeclinedNames },
|
||||||
/*0x41A*/ { "SMSG_SET_PLAYER_DECLINED_NAMES_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x41A*/ { "SMSG_SET_PLAYER_DECLINED_NAMES_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x41B*/ { "CMSG_QUERY_SERVER_BUCK_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x41B*/ { "CMSG_QUERY_SERVER_BUCK_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x41C*/ { "CMSG_CLEAR_SERVER_BUCK_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x41C*/ { "CMSG_CLEAR_SERVER_BUCK_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
@ -1157,7 +1157,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x468*/ { "SMSG_ACHIEVEMENT_EARNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x468*/ { "SMSG_ACHIEVEMENT_EARNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x469*/ { "SMSG_DYNAMIC_DROP_ROLL_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x469*/ { "SMSG_DYNAMIC_DROP_ROLL_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x46A*/ { "SMSG_CRITERIA_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x46A*/ { "SMSG_CRITERIA_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x46B*/ { "CMSG_QUERY_INSPECT_ACHIEVEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleInspectAchievements },
|
/*0x46B*/ { "CMSG_QUERY_INSPECT_ACHIEVEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleQueryInspectAchievements },
|
||||||
/*0x46C*/ { "SMSG_RESPOND_INSPECT_ACHIEVEMENTS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x46C*/ { "SMSG_RESPOND_INSPECT_ACHIEVEMENTS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x46D*/ { "CMSG_DISMISS_CONTROLLED_VEHICLE", STATUS_LOGGEDIN, &WorldSession::HandleDismissControlledVehicle },
|
/*0x46D*/ { "CMSG_DISMISS_CONTROLLED_VEHICLE", STATUS_LOGGEDIN, &WorldSession::HandleDismissControlledVehicle },
|
||||||
/*0x46E*/ { "CMSG_COMPLETE_ACHIEVEMENT_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x46E*/ { "CMSG_COMPLETE_ACHIEVEMENT_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
|
||||||
|
|
@ -1239,7 +1239,7 @@ enum SessionStatus
|
||||||
{
|
{
|
||||||
STATUS_AUTHED = 0, ///< Player authenticated
|
STATUS_AUTHED = 0, ///< Player authenticated
|
||||||
STATUS_LOGGEDIN, ///< Player in game
|
STATUS_LOGGEDIN, ///< Player in game
|
||||||
STATUS_TRANSFER_PENDING, ///< Player transferring to another map
|
STATUS_TRANSFER, ///< Player transferring to another map
|
||||||
STATUS_NEVER ///< Opcode not accepted from client (deprecated or server side only)
|
STATUS_NEVER ///< Opcode not accepted from client (deprecated or server side only)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1489,7 +1489,7 @@ void Player::BuildEnumData( QueryResult * result, WorldPacket * p_data )
|
||||||
const ItemPrototype * proto = objmgr.GetItemPrototype(item_id);
|
const ItemPrototype * proto = objmgr.GetItemPrototype(item_id);
|
||||||
SpellItemEnchantmentEntry const *enchant = NULL;
|
SpellItemEnchantmentEntry const *enchant = NULL;
|
||||||
|
|
||||||
for(uint8 enchantSlot = PERM_ENCHANTMENT_SLOT; enchantSlot<=TEMP_ENCHANTMENT_SLOT; enchantSlot++)
|
for(uint8 enchantSlot = PERM_ENCHANTMENT_SLOT; enchantSlot <= TEMP_ENCHANTMENT_SLOT; ++enchantSlot)
|
||||||
{
|
{
|
||||||
uint32 enchantId = GetUInt32Value(visualbase+1+enchantSlot);
|
uint32 enchantId = GetUInt32Value(visualbase+1+enchantSlot);
|
||||||
if(enchant = sSpellItemEnchantmentStore.LookupEntry(enchantId))
|
if(enchant = sSpellItemEnchantmentStore.LookupEntry(enchantId))
|
||||||
|
|
@ -3014,7 +3014,7 @@ bool Player::IsNeedCastPassiveSpellAtLearn(SpellEntry const* spellInfo) const
|
||||||
|
|
||||||
switch(spellInfo->Id)
|
switch(spellInfo->Id)
|
||||||
{
|
{
|
||||||
// some spells not have stance data expacted cast at form change or present
|
// some spells not have stance data expected cast at form change or present
|
||||||
case 5420: need_cast = (m_form == FORM_TREE); break;
|
case 5420: need_cast = (m_form == FORM_TREE); break;
|
||||||
case 5419: need_cast = (m_form == FORM_TRAVEL); break;
|
case 5419: need_cast = (m_form == FORM_TRAVEL); break;
|
||||||
case 7376: need_cast = (m_form == FORM_DEFENSIVESTANCE); break;
|
case 7376: need_cast = (m_form == FORM_DEFENSIVESTANCE); break;
|
||||||
|
|
@ -3252,7 +3252,7 @@ void Player::RemoveSpellCooldown( uint32 spell_id, bool update /* = false */ )
|
||||||
|
|
||||||
if(update)
|
if(update)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8));
|
WorldPacket data(SMSG_CLEAR_COOLDOWN, 4+8);
|
||||||
data << uint32(spell_id);
|
data << uint32(spell_id);
|
||||||
data << uint64(GetGUID());
|
data << uint64(GetGUID());
|
||||||
SendDirectMessage(&data);
|
SendDirectMessage(&data);
|
||||||
|
|
@ -3275,7 +3275,7 @@ void Player::RemoveArenaSpellCooldowns()
|
||||||
entry->CategoryRecoveryTime <= 15 * MINUTE * IN_MILISECONDS )
|
entry->CategoryRecoveryTime <= 15 * MINUTE * IN_MILISECONDS )
|
||||||
{
|
{
|
||||||
// notify player
|
// notify player
|
||||||
WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8));
|
WorldPacket data(SMSG_CLEAR_COOLDOWN, 4+8);
|
||||||
data << uint32(itr->first);
|
data << uint32(itr->first);
|
||||||
data << uint64(GetGUID());
|
data << uint64(GetGUID());
|
||||||
GetSession()->SendPacket(&data);
|
GetSession()->SendPacket(&data);
|
||||||
|
|
@ -3291,7 +3291,7 @@ void Player::RemoveAllSpellCooldown()
|
||||||
{
|
{
|
||||||
for(SpellCooldowns::const_iterator itr = m_spellCooldowns.begin();itr != m_spellCooldowns.end(); ++itr)
|
for(SpellCooldowns::const_iterator itr = m_spellCooldowns.begin();itr != m_spellCooldowns.end(); ++itr)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8));
|
WorldPacket data(SMSG_CLEAR_COOLDOWN, 4+8);
|
||||||
data << uint32(itr->first);
|
data << uint32(itr->first);
|
||||||
data << uint64(GetGUID());
|
data << uint64(GetGUID());
|
||||||
GetSession()->SendPacket(&data);
|
GetSession()->SendPacket(&data);
|
||||||
|
|
@ -8692,7 +8692,7 @@ uint8 Player::_CanStoreItem_InSpecificSlot( uint8 bag, uint8 slot, ItemPosCountV
|
||||||
if(slot >= VANITYPET_SLOT_START && slot < VANITYPET_SLOT_END)
|
if(slot >= VANITYPET_SLOT_START && slot < VANITYPET_SLOT_END)
|
||||||
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
||||||
|
|
||||||
// currencytoken case (disabled until proper implement)
|
// currencytoken case
|
||||||
if(slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END && !(pProto->BagFamily & BAG_FAMILY_MASK_CURRENCY_TOKENS))
|
if(slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END && !(pProto->BagFamily & BAG_FAMILY_MASK_CURRENCY_TOKENS))
|
||||||
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
||||||
|
|
||||||
|
|
@ -9360,7 +9360,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
|
||||||
}
|
}
|
||||||
|
|
||||||
// check free space for all items
|
// check free space for all items
|
||||||
for (int k=0;k<count;k++)
|
for (int k = 0; k < count; ++k)
|
||||||
{
|
{
|
||||||
Item *pItem = pItems[k];
|
Item *pItem = pItems[k];
|
||||||
|
|
||||||
|
|
@ -9391,7 +9391,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
|
||||||
{
|
{
|
||||||
bool b_found = false;
|
bool b_found = false;
|
||||||
|
|
||||||
for(int t = KEYRING_SLOT_START; t < KEYRING_SLOT_END; t++)
|
for(int t = KEYRING_SLOT_START; t < KEYRING_SLOT_END; ++t)
|
||||||
{
|
{
|
||||||
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
||||||
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_keys[t-KEYRING_SLOT_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
|
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_keys[t-KEYRING_SLOT_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
|
||||||
|
|
@ -9403,7 +9403,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
|
||||||
}
|
}
|
||||||
if (b_found) continue;
|
if (b_found) continue;
|
||||||
|
|
||||||
for(int t = CURRENCYTOKEN_SLOT_START; t < CURRENCYTOKEN_SLOT_END; t++)
|
for(int t = CURRENCYTOKEN_SLOT_START; t < CURRENCYTOKEN_SLOT_END; ++t)
|
||||||
{
|
{
|
||||||
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
||||||
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_tokens[t-CURRENCYTOKEN_SLOT_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
|
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_tokens[t-CURRENCYTOKEN_SLOT_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
|
||||||
|
|
@ -9415,7 +9415,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
|
||||||
}
|
}
|
||||||
if (b_found) continue;
|
if (b_found) continue;
|
||||||
|
|
||||||
for(int t = INVENTORY_SLOT_ITEM_START; t < INVENTORY_SLOT_ITEM_END; t++)
|
for(int t = INVENTORY_SLOT_ITEM_START; t < INVENTORY_SLOT_ITEM_END; ++t)
|
||||||
{
|
{
|
||||||
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
||||||
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_slot_items[t-INVENTORY_SLOT_ITEM_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
|
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_slot_items[t-INVENTORY_SLOT_ITEM_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
|
||||||
|
|
@ -9427,7 +9427,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
|
||||||
}
|
}
|
||||||
if (b_found) continue;
|
if (b_found) continue;
|
||||||
|
|
||||||
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; t++)
|
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; ++t)
|
||||||
{
|
{
|
||||||
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
||||||
if( pBag )
|
if( pBag )
|
||||||
|
|
@ -9482,7 +9482,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
|
||||||
|
|
||||||
if (b_found) continue;
|
if (b_found) continue;
|
||||||
|
|
||||||
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; t++)
|
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; ++t)
|
||||||
{
|
{
|
||||||
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
||||||
if( pBag )
|
if( pBag )
|
||||||
|
|
@ -9510,7 +9510,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
|
||||||
|
|
||||||
// search free slot
|
// search free slot
|
||||||
bool b_found = false;
|
bool b_found = false;
|
||||||
for(int t = INVENTORY_SLOT_ITEM_START; t < INVENTORY_SLOT_ITEM_END; t++)
|
for(int t = INVENTORY_SLOT_ITEM_START; t < INVENTORY_SLOT_ITEM_END; ++t)
|
||||||
{
|
{
|
||||||
if( inv_slot_items[t-INVENTORY_SLOT_ITEM_START] == 0 )
|
if( inv_slot_items[t-INVENTORY_SLOT_ITEM_START] == 0 )
|
||||||
{
|
{
|
||||||
|
|
@ -9522,7 +9522,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
|
||||||
if (b_found) continue;
|
if (b_found) continue;
|
||||||
|
|
||||||
// search free slot in bags
|
// search free slot in bags
|
||||||
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; t++)
|
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; ++t)
|
||||||
{
|
{
|
||||||
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
|
||||||
if( pBag )
|
if( pBag )
|
||||||
|
|
@ -9831,14 +9831,14 @@ uint8 Player::CanBankItem( uint8 bag, uint8 slot, ItemPosCountVec &dest, Item *p
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
res = _CanStoreItem_InBag(bag,dest,pProto,count,false,false,pItem,NULL_BAG,slot);
|
res = _CanStoreItem_InBag(bag, dest, pProto, count, false, false, pItem, NULL_BAG, slot);
|
||||||
if(res!=EQUIP_ERR_OK)
|
if(res != EQUIP_ERR_OK)
|
||||||
res = _CanStoreItem_InBag(bag,dest,pProto,count,false,true,pItem,NULL_BAG,slot);
|
res = _CanStoreItem_InBag(bag, dest, pProto, count, false, true, pItem, NULL_BAG, slot);
|
||||||
|
|
||||||
if(res!=EQUIP_ERR_OK)
|
if(res != EQUIP_ERR_OK)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
if(count==0)
|
if(count == 0)
|
||||||
return EQUIP_ERR_OK;
|
return EQUIP_ERR_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -9850,10 +9850,10 @@ uint8 Player::CanBankItem( uint8 bag, uint8 slot, ItemPosCountVec &dest, Item *p
|
||||||
{
|
{
|
||||||
// in slots
|
// in slots
|
||||||
res = _CanStoreItem_InInventorySlots(BANK_SLOT_ITEM_START,BANK_SLOT_ITEM_END,dest,pProto,count,true,pItem,bag,slot);
|
res = _CanStoreItem_InInventorySlots(BANK_SLOT_ITEM_START,BANK_SLOT_ITEM_END,dest,pProto,count,true,pItem,bag,slot);
|
||||||
if(res!=EQUIP_ERR_OK)
|
if(res != EQUIP_ERR_OK)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
if(count==0)
|
if(count == 0)
|
||||||
return EQUIP_ERR_OK;
|
return EQUIP_ERR_OK;
|
||||||
|
|
||||||
// in special bags
|
// in special bags
|
||||||
|
|
@ -10123,7 +10123,7 @@ Item* Player::_StoreItem( uint16 pos, Item *pItem, uint32 count, bool clone, boo
|
||||||
if (!pItem2)
|
if (!pItem2)
|
||||||
{
|
{
|
||||||
if (clone)
|
if (clone)
|
||||||
pItem = pItem->CloneItem(count,this);
|
pItem = pItem->CloneItem(count, this);
|
||||||
else
|
else
|
||||||
pItem->SetCount(count);
|
pItem->SetCount(count);
|
||||||
|
|
||||||
|
|
@ -10138,7 +10138,7 @@ Item* Player::_StoreItem( uint16 pos, Item *pItem, uint32 count, bool clone, boo
|
||||||
if (bag == INVENTORY_SLOT_BAG_0)
|
if (bag == INVENTORY_SLOT_BAG_0)
|
||||||
{
|
{
|
||||||
m_items[slot] = pItem;
|
m_items[slot] = pItem;
|
||||||
SetUInt64Value( (uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2) ), pItem->GetGUID() );
|
SetUInt64Value( PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), pItem->GetGUID() );
|
||||||
pItem->SetUInt64Value( ITEM_FIELD_CONTAINED, GetGUID() );
|
pItem->SetUInt64Value( ITEM_FIELD_CONTAINED, GetGUID() );
|
||||||
pItem->SetUInt64Value( ITEM_FIELD_OWNER, GetGUID() );
|
pItem->SetUInt64Value( ITEM_FIELD_OWNER, GetGUID() );
|
||||||
|
|
||||||
|
|
@ -10147,7 +10147,7 @@ Item* Player::_StoreItem( uint16 pos, Item *pItem, uint32 count, bool clone, boo
|
||||||
|
|
||||||
// need update known currency
|
// need update known currency
|
||||||
if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
|
if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
|
||||||
UpdateKnownCurrencies(pItem->GetEntry(),true);
|
UpdateKnownCurrencies(pItem->GetEntry(), true);
|
||||||
|
|
||||||
if (IsInWorld() && update)
|
if (IsInWorld() && update)
|
||||||
{
|
{
|
||||||
|
|
@ -10242,7 +10242,7 @@ Item* Player::EquipItem( uint16 pos, Item *pItem, bool update )
|
||||||
|
|
||||||
// item set bonuses applied only at equip and removed at unequip, and still active for broken items
|
// item set bonuses applied only at equip and removed at unequip, and still active for broken items
|
||||||
if(pProto && pProto->ItemSet)
|
if(pProto && pProto->ItemSet)
|
||||||
AddItemsSetItem(this,pItem);
|
AddItemsSetItem(this, pItem);
|
||||||
|
|
||||||
_ApplyItemMods(pItem, slot, true);
|
_ApplyItemMods(pItem, slot, true);
|
||||||
|
|
||||||
|
|
@ -10336,15 +10336,6 @@ void Player::QuickEquipItem( uint16 pos, Item *pItem)
|
||||||
|
|
||||||
void Player::SetVisibleItemSlot(uint8 slot, Item *pItem)
|
void Player::SetVisibleItemSlot(uint8 slot, Item *pItem)
|
||||||
{
|
{
|
||||||
// PLAYER_VISIBLE_ITEM_i_CREATOR // Size: 2
|
|
||||||
// PLAYER_VISIBLE_ITEM_i_0 // Size: 12
|
|
||||||
// entry // Size: 1
|
|
||||||
// inspected enchantments // Size: 6
|
|
||||||
// ? // Size: 5
|
|
||||||
// PLAYER_VISIBLE_ITEM_i_PROPERTIES // Size: 1 (property,suffix factor)
|
|
||||||
// PLAYER_VISIBLE_ITEM_i_PAD // Size: 1
|
|
||||||
// // = 16
|
|
||||||
|
|
||||||
if(pItem)
|
if(pItem)
|
||||||
{
|
{
|
||||||
SetUInt64Value(PLAYER_VISIBLE_ITEM_1_CREATOR + (slot * MAX_VISIBLE_ITEM_OFFSET), pItem->GetUInt64Value(ITEM_FIELD_CREATOR));
|
SetUInt64Value(PLAYER_VISIBLE_ITEM_1_CREATOR + (slot * MAX_VISIBLE_ITEM_OFFSET), pItem->GetUInt64Value(ITEM_FIELD_CREATOR));
|
||||||
|
|
@ -10386,14 +10377,14 @@ void Player::VisualizeItem( uint8 slot, Item *pItem)
|
||||||
sLog.outDebug( "STORAGE: EquipItem slot = %u, item = %u", slot, pItem->GetEntry());
|
sLog.outDebug( "STORAGE: EquipItem slot = %u, item = %u", slot, pItem->GetEntry());
|
||||||
|
|
||||||
m_items[slot] = pItem;
|
m_items[slot] = pItem;
|
||||||
SetUInt64Value( (uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2) ), pItem->GetGUID() );
|
SetUInt64Value( PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), pItem->GetGUID() );
|
||||||
pItem->SetUInt64Value( ITEM_FIELD_CONTAINED, GetGUID() );
|
pItem->SetUInt64Value( ITEM_FIELD_CONTAINED, GetGUID() );
|
||||||
pItem->SetUInt64Value( ITEM_FIELD_OWNER, GetGUID() );
|
pItem->SetUInt64Value( ITEM_FIELD_OWNER, GetGUID() );
|
||||||
pItem->SetSlot( slot );
|
pItem->SetSlot( slot );
|
||||||
pItem->SetContainer( NULL );
|
pItem->SetContainer( NULL );
|
||||||
|
|
||||||
if( slot < EQUIPMENT_SLOT_END )
|
if( slot < EQUIPMENT_SLOT_END )
|
||||||
SetVisibleItemSlot(slot,pItem);
|
SetVisibleItemSlot(slot, pItem);
|
||||||
|
|
||||||
pItem->SetState(ITEM_CHANGED, this);
|
pItem->SetState(ITEM_CHANGED, this);
|
||||||
}
|
}
|
||||||
|
|
@ -10421,7 +10412,7 @@ void Player::RemoveItem( uint8 bag, uint8 slot, bool update )
|
||||||
// item set bonuses applied only at equip and removed at unequip, and still active for broken items
|
// item set bonuses applied only at equip and removed at unequip, and still active for broken items
|
||||||
|
|
||||||
if(pProto && pProto->ItemSet)
|
if(pProto && pProto->ItemSet)
|
||||||
RemoveItemsSetItem(this,pProto);
|
RemoveItemsSetItem(this, pProto);
|
||||||
|
|
||||||
_ApplyItemMods(pItem, slot, false);
|
_ApplyItemMods(pItem, slot, false);
|
||||||
|
|
||||||
|
|
@ -10452,13 +10443,13 @@ void Player::RemoveItem( uint8 bag, uint8 slot, bool update )
|
||||||
}
|
}
|
||||||
// need update known currency
|
// need update known currency
|
||||||
else if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
|
else if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
|
||||||
UpdateKnownCurrencies(pItem->GetEntry(),false);
|
UpdateKnownCurrencies(pItem->GetEntry(), false);
|
||||||
|
|
||||||
m_items[slot] = NULL;
|
m_items[slot] = NULL;
|
||||||
SetUInt64Value((uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot*2)), 0);
|
SetUInt64Value(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), 0);
|
||||||
|
|
||||||
if ( slot < EQUIPMENT_SLOT_END )
|
if ( slot < EQUIPMENT_SLOT_END )
|
||||||
SetVisibleItemSlot(slot,NULL);
|
SetVisibleItemSlot(slot, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -10479,8 +10470,8 @@ void Player::MoveItemFromInventory(uint8 bag, uint8 slot, bool update)
|
||||||
{
|
{
|
||||||
if(Item* it = GetItemByPos(bag,slot))
|
if(Item* it = GetItemByPos(bag,slot))
|
||||||
{
|
{
|
||||||
ItemRemovedQuestCheck(it->GetEntry(),it->GetCount());
|
ItemRemovedQuestCheck(it->GetEntry(), it->GetCount());
|
||||||
RemoveItem( bag,slot,update);
|
RemoveItem(bag, slot, update);
|
||||||
it->RemoveFromUpdateQueueOf(this);
|
it->RemoveFromUpdateQueueOf(this);
|
||||||
if(it->IsInWorld())
|
if(it->IsInWorld())
|
||||||
{
|
{
|
||||||
|
|
@ -10494,13 +10485,13 @@ void Player::MoveItemFromInventory(uint8 bag, uint8 slot, bool update)
|
||||||
void Player::MoveItemToInventory(ItemPosCountVec const& dest, Item* pItem, bool update, bool in_characterInventoryDB)
|
void Player::MoveItemToInventory(ItemPosCountVec const& dest, Item* pItem, bool update, bool in_characterInventoryDB)
|
||||||
{
|
{
|
||||||
// update quest counters
|
// update quest counters
|
||||||
ItemAddedQuestCheck(pItem->GetEntry(),pItem->GetCount());
|
ItemAddedQuestCheck(pItem->GetEntry(), pItem->GetCount());
|
||||||
|
|
||||||
// store item
|
// store item
|
||||||
Item* pLastItem = StoreItem( dest, pItem, update);
|
Item* pLastItem = StoreItem(dest, pItem, update);
|
||||||
|
|
||||||
// only set if not merged to existed stack (pItem can be deleted already but we can compare pointers any way)
|
// only set if not merged to existed stack (pItem can be deleted already but we can compare pointers any way)
|
||||||
if(pLastItem==pItem)
|
if(pLastItem == pItem)
|
||||||
{
|
{
|
||||||
// update owner for last item (this can be original item with wrong owner
|
// update owner for last item (this can be original item with wrong owner
|
||||||
if(pLastItem->GetOwnerGUID() != GetGUID())
|
if(pLastItem->GetOwnerGUID() != GetGUID())
|
||||||
|
|
@ -10523,7 +10514,7 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
|
||||||
if (pItem->IsBag() && pItem->IsEquipped()) // this also prevent infinity loop if empty bag stored in bag==slot
|
if (pItem->IsBag() && pItem->IsEquipped()) // this also prevent infinity loop if empty bag stored in bag==slot
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_BAG_SIZE; ++i)
|
for (int i = 0; i < MAX_BAG_SIZE; ++i)
|
||||||
DestroyItem(slot,i,update);
|
DestroyItem(slot, i, update);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pItem->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED))
|
if(pItem->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED))
|
||||||
|
|
@ -10536,7 +10527,7 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
|
||||||
|
|
||||||
if( bag == INVENTORY_SLOT_BAG_0 )
|
if( bag == INVENTORY_SLOT_BAG_0 )
|
||||||
{
|
{
|
||||||
SetUInt64Value((uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot*2)), 0);
|
SetUInt64Value(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), 0);
|
||||||
|
|
||||||
// equipment and equipped bags can have applied bonuses
|
// equipment and equipped bags can have applied bonuses
|
||||||
if ( slot < INVENTORY_SLOT_BAG_END )
|
if ( slot < INVENTORY_SLOT_BAG_END )
|
||||||
|
|
@ -10545,7 +10536,7 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
|
||||||
|
|
||||||
// item set bonuses applied only at equip and removed at unequip, and still active for broken items
|
// item set bonuses applied only at equip and removed at unequip, and still active for broken items
|
||||||
if(pProto && pProto->ItemSet)
|
if(pProto && pProto->ItemSet)
|
||||||
RemoveItemsSetItem(this,pProto);
|
RemoveItemsSetItem(this, pProto);
|
||||||
|
|
||||||
_ApplyItemMods(pItem, slot, false);
|
_ApplyItemMods(pItem, slot, false);
|
||||||
}
|
}
|
||||||
|
|
@ -10562,11 +10553,11 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
|
||||||
UpdateExpertise(OFF_ATTACK);
|
UpdateExpertise(OFF_ATTACK);
|
||||||
|
|
||||||
// equipment visual show
|
// equipment visual show
|
||||||
SetVisibleItemSlot(slot,NULL);
|
SetVisibleItemSlot(slot, NULL);
|
||||||
}
|
}
|
||||||
// need update known currency
|
// need update known currency
|
||||||
else if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
|
else if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
|
||||||
UpdateKnownCurrencies(pItem->GetEntry(),false);
|
UpdateKnownCurrencies(pItem->GetEntry(), false);
|
||||||
|
|
||||||
m_items[slot] = NULL;
|
m_items[slot] = NULL;
|
||||||
}
|
}
|
||||||
|
|
@ -10604,7 +10595,7 @@ void Player::DestroyItemCount( uint32 item, uint32 count, bool update, bool uneq
|
||||||
remcount += pItem->GetCount();
|
remcount += pItem->GetCount();
|
||||||
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
||||||
|
|
||||||
if (remcount >=count)
|
if (remcount >= count)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -10632,7 +10623,7 @@ void Player::DestroyItemCount( uint32 item, uint32 count, bool update, bool uneq
|
||||||
remcount += pItem->GetCount();
|
remcount += pItem->GetCount();
|
||||||
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
||||||
|
|
||||||
if (remcount >=count)
|
if (remcount >= count)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -10665,7 +10656,7 @@ void Player::DestroyItemCount( uint32 item, uint32 count, bool update, bool uneq
|
||||||
remcount += pItem->GetCount();
|
remcount += pItem->GetCount();
|
||||||
DestroyItem( i, j, update );
|
DestroyItem( i, j, update );
|
||||||
|
|
||||||
if (remcount >=count)
|
if (remcount >= count)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -10692,12 +10683,12 @@ void Player::DestroyItemCount( uint32 item, uint32 count, bool update, bool uneq
|
||||||
{
|
{
|
||||||
if (pItem->GetCount() + remcount <= count)
|
if (pItem->GetCount() + remcount <= count)
|
||||||
{
|
{
|
||||||
if (!unequip_check || CanUnequipItem(INVENTORY_SLOT_BAG_0 << 8 | i,false) == EQUIP_ERR_OK )
|
if (!unequip_check || CanUnequipItem(INVENTORY_SLOT_BAG_0 << 8 | i, false) == EQUIP_ERR_OK )
|
||||||
{
|
{
|
||||||
remcount += pItem->GetCount();
|
remcount += pItem->GetCount();
|
||||||
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
||||||
|
|
||||||
if (remcount >=count)
|
if (remcount >= count)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -10722,12 +10713,12 @@ void Player::DestroyZoneLimitedItem( bool update, uint32 new_zone )
|
||||||
// in inventory
|
// in inventory
|
||||||
for(int i = INVENTORY_SLOT_ITEM_START; i < INVENTORY_SLOT_ITEM_END; ++i)
|
for(int i = INVENTORY_SLOT_ITEM_START; i < INVENTORY_SLOT_ITEM_END; ++i)
|
||||||
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
||||||
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(),new_zone))
|
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(), new_zone))
|
||||||
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
||||||
|
|
||||||
for(int i = KEYRING_SLOT_START; i < QUESTBAG_SLOT_END; ++i)
|
for(int i = KEYRING_SLOT_START; i < QUESTBAG_SLOT_END; ++i)
|
||||||
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
||||||
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(),new_zone))
|
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(), new_zone))
|
||||||
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
||||||
|
|
||||||
// in inventory bags
|
// in inventory bags
|
||||||
|
|
@ -10735,13 +10726,13 @@ void Player::DestroyZoneLimitedItem( bool update, uint32 new_zone )
|
||||||
if (Bag* pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
if (Bag* pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
||||||
for(uint32 j = 0; j < pBag->GetBagSize(); ++j)
|
for(uint32 j = 0; j < pBag->GetBagSize(); ++j)
|
||||||
if (Item* pItem = pBag->GetItemByPos(j))
|
if (Item* pItem = pBag->GetItemByPos(j))
|
||||||
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(),new_zone))
|
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(), new_zone))
|
||||||
DestroyItem( i, j, update);
|
DestroyItem(i, j, update);
|
||||||
|
|
||||||
// in equipment and bag list
|
// in equipment and bag list
|
||||||
for(int i = EQUIPMENT_SLOT_START; i < INVENTORY_SLOT_BAG_END; ++i)
|
for(int i = EQUIPMENT_SLOT_START; i < INVENTORY_SLOT_BAG_END; ++i)
|
||||||
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
||||||
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(),new_zone))
|
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(), new_zone))
|
||||||
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -10781,7 +10772,7 @@ void Player::DestroyItemCount( Item* pItem, uint32 &count, bool update )
|
||||||
|
|
||||||
if( pItem->GetCount() <= count )
|
if( pItem->GetCount() <= count )
|
||||||
{
|
{
|
||||||
count-= pItem->GetCount();
|
count -= pItem->GetCount();
|
||||||
|
|
||||||
DestroyItem( pItem->GetBagSlot(),pItem->GetSlot(), update);
|
DestroyItem( pItem->GetBagSlot(),pItem->GetSlot(), update);
|
||||||
}
|
}
|
||||||
|
|
@ -11020,7 +11011,7 @@ void Player::SwapItem( uint16 src, uint16 dst )
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoveItem(srcbag, srcslot, true);
|
RemoveItem(srcbag, srcslot, true);
|
||||||
EquipItem( dest, pSrcItem, true);
|
EquipItem(dest, pSrcItem, true);
|
||||||
AutoUnequipOffhandIfNeed();
|
AutoUnequipOffhandIfNeed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -11150,7 +11141,7 @@ void Player::SwapItem( uint16 src, uint16 dst )
|
||||||
ItemPrototype const* bagItemProto = bagItem->GetProto();
|
ItemPrototype const* bagItemProto = bagItem->GetProto();
|
||||||
if (!bagItemProto || !ItemCanGoIntoBag(bagItemProto, emotyProto))
|
if (!bagItemProto || !ItemCanGoIntoBag(bagItemProto, emotyProto))
|
||||||
{
|
{
|
||||||
// one from items not go to empry target bag
|
// one from items not go to empty target bag
|
||||||
SendEquipError( EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG, pSrcItem, pDstItem );
|
SendEquipError( EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG, pSrcItem, pDstItem );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -11168,7 +11159,7 @@ void Player::SwapItem( uint16 src, uint16 dst )
|
||||||
|
|
||||||
// Items swap
|
// Items swap
|
||||||
count = 0; // will pos in new bag
|
count = 0; // will pos in new bag
|
||||||
for(int i=0; i< fullBag->GetBagSize(); ++i)
|
for(int i = 0; i< fullBag->GetBagSize(); ++i)
|
||||||
{
|
{
|
||||||
Item *bagItem = fullBag->GetItemByPos(i);
|
Item *bagItem = fullBag->GetItemByPos(i);
|
||||||
if (!bagItem)
|
if (!bagItem)
|
||||||
|
|
@ -11247,7 +11238,7 @@ void Player::AddItemToBuyBackSlot( Item *pItem )
|
||||||
uint32 etime = uint32(base - m_logintime + (30 * 3600));
|
uint32 etime = uint32(base - m_logintime + (30 * 3600));
|
||||||
uint32 eslot = slot - BUYBACK_SLOT_START;
|
uint32 eslot = slot - BUYBACK_SLOT_START;
|
||||||
|
|
||||||
SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + eslot * 2, pItem->GetGUID() );
|
SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + (eslot * 2), pItem->GetGUID() );
|
||||||
ItemPrototype const *pProto = pItem->GetProto();
|
ItemPrototype const *pProto = pItem->GetProto();
|
||||||
if( pProto )
|
if( pProto )
|
||||||
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, pProto->SellPrice * pItem->GetCount() );
|
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, pProto->SellPrice * pItem->GetCount() );
|
||||||
|
|
@ -11256,7 +11247,7 @@ void Player::AddItemToBuyBackSlot( Item *pItem )
|
||||||
SetUInt32Value( PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, (uint32)etime );
|
SetUInt32Value( PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, (uint32)etime );
|
||||||
|
|
||||||
// move to next (for non filled list is move most optimized choice)
|
// move to next (for non filled list is move most optimized choice)
|
||||||
if(m_currentBuybackSlot < BUYBACK_SLOT_END-1)
|
if(m_currentBuybackSlot < BUYBACK_SLOT_END - 1)
|
||||||
++m_currentBuybackSlot;
|
++m_currentBuybackSlot;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11284,7 +11275,7 @@ void Player::RemoveItemFromBuyBackSlot( uint32 slot, bool del )
|
||||||
m_items[slot] = NULL;
|
m_items[slot] = NULL;
|
||||||
|
|
||||||
uint32 eslot = slot - BUYBACK_SLOT_START;
|
uint32 eslot = slot - BUYBACK_SLOT_START;
|
||||||
SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + eslot * 2, 0 );
|
SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + (eslot * 2), 0 );
|
||||||
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0 );
|
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0 );
|
||||||
SetUInt32Value( PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, 0 );
|
SetUInt32Value( PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, 0 );
|
||||||
|
|
||||||
|
|
@ -11296,7 +11287,7 @@ void Player::RemoveItemFromBuyBackSlot( uint32 slot, bool del )
|
||||||
|
|
||||||
void Player::SendEquipError( uint8 msg, Item* pItem, Item *pItem2 )
|
void Player::SendEquipError( uint8 msg, Item* pItem, Item *pItem2 )
|
||||||
{
|
{
|
||||||
sLog.outDebug( "WORLD: Sent SMSG_INVENTORY_CHANGE_FAILURE (%u)",msg);
|
sLog.outDebug( "WORLD: Sent SMSG_INVENTORY_CHANGE_FAILURE (%u)", msg);
|
||||||
WorldPacket data( SMSG_INVENTORY_CHANGE_FAILURE, (msg == EQUIP_ERR_CANT_EQUIP_LEVEL_I ? 22 : 18) );
|
WorldPacket data( SMSG_INVENTORY_CHANGE_FAILURE, (msg == EQUIP_ERR_CANT_EQUIP_LEVEL_I ? 22 : 18) );
|
||||||
data << uint8(msg);
|
data << uint8(msg);
|
||||||
|
|
||||||
|
|
@ -11379,9 +11370,9 @@ void Player::UpdateItemDuration(uint32 time, bool realtimeonly)
|
||||||
if(m_itemDuration.empty())
|
if(m_itemDuration.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sLog.outDebug("Player::UpdateItemDuration(%u,%u)", time,realtimeonly);
|
sLog.outDebug("Player::UpdateItemDuration(%u,%u)", time, realtimeonly);
|
||||||
|
|
||||||
for(ItemDurationList::const_iterator itr = m_itemDuration.begin();itr != m_itemDuration.end(); )
|
for(ItemDurationList::const_iterator itr = m_itemDuration.begin(); itr != m_itemDuration.end(); )
|
||||||
{
|
{
|
||||||
Item* item = *itr;
|
Item* item = *itr;
|
||||||
++itr; // current element can be erased in UpdateDuration
|
++itr; // current element can be erased in UpdateDuration
|
||||||
|
|
@ -11396,14 +11387,14 @@ void Player::UpdateEnchantTime(uint32 time)
|
||||||
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(),next;itr != m_enchantDuration.end();itr=next)
|
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(),next;itr != m_enchantDuration.end();itr=next)
|
||||||
{
|
{
|
||||||
assert(itr->item);
|
assert(itr->item);
|
||||||
next=itr;
|
next = itr;
|
||||||
if(!itr->item->GetEnchantmentId(itr->slot))
|
if(!itr->item->GetEnchantmentId(itr->slot))
|
||||||
{
|
{
|
||||||
next = m_enchantDuration.erase(itr);
|
next = m_enchantDuration.erase(itr);
|
||||||
}
|
}
|
||||||
else if(itr->leftduration <= time)
|
else if(itr->leftduration <= time)
|
||||||
{
|
{
|
||||||
ApplyEnchantment(itr->item,itr->slot,false,false);
|
ApplyEnchantment(itr->item, itr->slot, false, false);
|
||||||
itr->item->ClearEnchantment(itr->slot);
|
itr->item->ClearEnchantment(itr->slot);
|
||||||
next = m_enchantDuration.erase(itr);
|
next = m_enchantDuration.erase(itr);
|
||||||
}
|
}
|
||||||
|
|
@ -11417,25 +11408,25 @@ void Player::UpdateEnchantTime(uint32 time)
|
||||||
|
|
||||||
void Player::AddEnchantmentDurations(Item *item)
|
void Player::AddEnchantmentDurations(Item *item)
|
||||||
{
|
{
|
||||||
for(int x=0;x<MAX_ENCHANTMENT_SLOT;++x)
|
for(int x = 0; x < MAX_ENCHANTMENT_SLOT; ++x)
|
||||||
{
|
{
|
||||||
if(!item->GetEnchantmentId(EnchantmentSlot(x)))
|
if(!item->GetEnchantmentId(EnchantmentSlot(x)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
uint32 duration = item->GetEnchantmentDuration(EnchantmentSlot(x));
|
uint32 duration = item->GetEnchantmentDuration(EnchantmentSlot(x));
|
||||||
if( duration > 0 )
|
if( duration > 0 )
|
||||||
AddEnchantmentDuration(item,EnchantmentSlot(x),duration);
|
AddEnchantmentDuration(item, EnchantmentSlot(x), duration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::RemoveEnchantmentDurations(Item *item)
|
void Player::RemoveEnchantmentDurations(Item *item)
|
||||||
{
|
{
|
||||||
for(EnchantDurationList::iterator itr = m_enchantDuration.begin();itr != m_enchantDuration.end();)
|
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(); itr != m_enchantDuration.end();)
|
||||||
{
|
{
|
||||||
if(itr->item == item)
|
if(itr->item == item)
|
||||||
{
|
{
|
||||||
// save duration in item
|
// save duration in item
|
||||||
item->SetEnchantmentDuration(EnchantmentSlot(itr->slot),itr->leftduration);
|
item->SetEnchantmentDuration(EnchantmentSlot(itr->slot), itr->leftduration);
|
||||||
itr = m_enchantDuration.erase(itr);
|
itr = m_enchantDuration.erase(itr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -11446,15 +11437,15 @@ void Player::RemoveEnchantmentDurations(Item *item)
|
||||||
void Player::RemoveAllEnchantments(EnchantmentSlot slot)
|
void Player::RemoveAllEnchantments(EnchantmentSlot slot)
|
||||||
{
|
{
|
||||||
// remove enchantments from equipped items first to clean up the m_enchantDuration list
|
// remove enchantments from equipped items first to clean up the m_enchantDuration list
|
||||||
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(),next;itr != m_enchantDuration.end();itr=next)
|
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(), next; itr != m_enchantDuration.end(); itr = next)
|
||||||
{
|
{
|
||||||
next = itr;
|
next = itr;
|
||||||
if(itr->slot==slot)
|
if(itr->slot == slot)
|
||||||
{
|
{
|
||||||
if(itr->item && itr->item->GetEnchantmentId(slot))
|
if(itr->item && itr->item->GetEnchantmentId(slot))
|
||||||
{
|
{
|
||||||
// remove from stats
|
// remove from stats
|
||||||
ApplyEnchantment(itr->item,slot,false,false);
|
ApplyEnchantment(itr->item, slot, false, false);
|
||||||
// remove visual
|
// remove visual
|
||||||
itr->item->ClearEnchantment(slot);
|
itr->item->ClearEnchantment(slot);
|
||||||
}
|
}
|
||||||
|
|
@ -11500,19 +11491,19 @@ void Player::AddEnchantmentDuration(Item *item,EnchantmentSlot slot,uint32 durat
|
||||||
if(slot >= MAX_ENCHANTMENT_SLOT)
|
if(slot >= MAX_ENCHANTMENT_SLOT)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for(EnchantDurationList::iterator itr = m_enchantDuration.begin();itr != m_enchantDuration.end();++itr)
|
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(); itr != m_enchantDuration.end(); ++itr)
|
||||||
{
|
{
|
||||||
if(itr->item == item && itr->slot == slot)
|
if(itr->item == item && itr->slot == slot)
|
||||||
{
|
{
|
||||||
itr->item->SetEnchantmentDuration(itr->slot,itr->leftduration);
|
itr->item->SetEnchantmentDuration(itr->slot, itr->leftduration);
|
||||||
m_enchantDuration.erase(itr);
|
m_enchantDuration.erase(itr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(item && duration > 0 )
|
if(item && duration > 0 )
|
||||||
{
|
{
|
||||||
GetSession()->SendItemEnchantTimeUpdate(GetGUID(), item->GetGUID(),slot,uint32(duration/1000));
|
GetSession()->SendItemEnchantTimeUpdate(GetGUID(), item->GetGUID(), slot, uint32(duration/1000));
|
||||||
m_enchantDuration.push_back(EnchantDuration(item,slot,duration));
|
m_enchantDuration.push_back(EnchantDuration(item, slot, duration));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -11522,7 +11513,7 @@ void Player::ApplyEnchantment(Item *item,bool apply)
|
||||||
ApplyEnchantment(item, EnchantmentSlot(slot), apply);
|
ApplyEnchantment(item, EnchantmentSlot(slot), apply);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool apply_dur, bool ignore_condition)
|
void Player::ApplyEnchantment(Item *item, EnchantmentSlot slot, bool apply, bool apply_dur, bool ignore_condition)
|
||||||
{
|
{
|
||||||
if(!item)
|
if(!item)
|
||||||
return;
|
return;
|
||||||
|
|
@ -11546,7 +11537,7 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
|
||||||
|
|
||||||
if (!item->IsBroken())
|
if (!item->IsBroken())
|
||||||
{
|
{
|
||||||
for (int s=0; s<3; s++)
|
for (int s = 0; s < 3; ++s)
|
||||||
{
|
{
|
||||||
uint32 enchant_display_type = pEnchant->type[s];
|
uint32 enchant_display_type = pEnchant->type[s];
|
||||||
uint32 enchant_amount = pEnchant->amount[s];
|
uint32 enchant_amount = pEnchant->amount[s];
|
||||||
|
|
@ -11580,11 +11571,11 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
|
||||||
if (item_rand)
|
if (item_rand)
|
||||||
{
|
{
|
||||||
// Search enchant_amount
|
// Search enchant_amount
|
||||||
for (int k=0; k<3; k++)
|
for (int k = 0; k < 3; ++k)
|
||||||
{
|
{
|
||||||
if(item_rand->enchant_id[k] == enchant_id)
|
if(item_rand->enchant_id[k] == enchant_id)
|
||||||
{
|
{
|
||||||
basepoints = int32((item_rand->prefix[k]*item->GetItemSuffixFactor()) / 10000 );
|
basepoints = int32((item_rand->prefix[k] * item->GetItemSuffixFactor()) / 10000 );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11592,12 +11583,12 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
|
||||||
}
|
}
|
||||||
// Cast custom spell vs all equal basepoints getted from enchant_amount
|
// Cast custom spell vs all equal basepoints getted from enchant_amount
|
||||||
if (basepoints)
|
if (basepoints)
|
||||||
CastCustomSpell(this,enchant_spell_id,&basepoints,&basepoints,&basepoints,true,item);
|
CastCustomSpell(this, enchant_spell_id, &basepoints, &basepoints, &basepoints, true, item);
|
||||||
else
|
else
|
||||||
CastSpell(this,enchant_spell_id,true,item);
|
CastSpell(this, enchant_spell_id, true, item);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
RemoveAurasDueToItemSpell(item,enchant_spell_id);
|
RemoveAurasDueToItemSpell(item, enchant_spell_id);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ITEM_ENCHANTMENT_TYPE_RESISTANCE:
|
case ITEM_ENCHANTMENT_TYPE_RESISTANCE:
|
||||||
|
|
@ -11606,11 +11597,11 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
|
||||||
ItemRandomSuffixEntry const *item_rand = sItemRandomSuffixStore.LookupEntry(abs(item->GetItemRandomPropertyId()));
|
ItemRandomSuffixEntry const *item_rand = sItemRandomSuffixStore.LookupEntry(abs(item->GetItemRandomPropertyId()));
|
||||||
if(item_rand)
|
if(item_rand)
|
||||||
{
|
{
|
||||||
for (int k=0; k<3; k++)
|
for (int k = 0; k < 3; ++k)
|
||||||
{
|
{
|
||||||
if(item_rand->enchant_id[k] == enchant_id)
|
if(item_rand->enchant_id[k] == enchant_id)
|
||||||
{
|
{
|
||||||
enchant_amount = uint32((item_rand->prefix[k]*item->GetItemSuffixFactor()) / 10000 );
|
enchant_amount = uint32((item_rand->prefix[k] * item->GetItemSuffixFactor()) / 10000 );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11626,11 +11617,11 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
|
||||||
ItemRandomSuffixEntry const *item_rand_suffix = sItemRandomSuffixStore.LookupEntry(abs(item->GetItemRandomPropertyId()));
|
ItemRandomSuffixEntry const *item_rand_suffix = sItemRandomSuffixStore.LookupEntry(abs(item->GetItemRandomPropertyId()));
|
||||||
if(item_rand_suffix)
|
if(item_rand_suffix)
|
||||||
{
|
{
|
||||||
for (int k=0; k<3; k++)
|
for (int k = 0; k < 3; ++k)
|
||||||
{
|
{
|
||||||
if(item_rand_suffix->enchant_id[k] == enchant_id)
|
if(item_rand_suffix->enchant_id[k] == enchant_id)
|
||||||
{
|
{
|
||||||
enchant_amount = uint32((item_rand_suffix->prefix[k]*item->GetItemSuffixFactor()) / 10000 );
|
enchant_amount = uint32((item_rand_suffix->prefix[k] * item->GetItemSuffixFactor()) / 10000 );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11827,12 +11818,12 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
|
||||||
float addValue = 0.0f;
|
float addValue = 0.0f;
|
||||||
if(item->GetSlot() == EQUIPMENT_SLOT_MAINHAND)
|
if(item->GetSlot() == EQUIPMENT_SLOT_MAINHAND)
|
||||||
{
|
{
|
||||||
addValue = float(enchant_amount * item->GetProto()->Delay/1000.0f);
|
addValue = float(enchant_amount * item->GetProto()->Delay / 1000.0f);
|
||||||
HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_VALUE, addValue, apply);
|
HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_VALUE, addValue, apply);
|
||||||
}
|
}
|
||||||
else if(item->GetSlot() == EQUIPMENT_SLOT_OFFHAND )
|
else if(item->GetSlot() == EQUIPMENT_SLOT_OFFHAND )
|
||||||
{
|
{
|
||||||
addValue = float(enchant_amount * item->GetProto()->Delay/1000.0f);
|
addValue = float(enchant_amount * item->GetProto()->Delay / 1000.0f);
|
||||||
HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_VALUE, addValue, apply);
|
HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_VALUE, addValue, apply);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11865,27 +11856,27 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
|
||||||
// set duration
|
// set duration
|
||||||
uint32 duration = item->GetEnchantmentDuration(slot);
|
uint32 duration = item->GetEnchantmentDuration(slot);
|
||||||
if(duration > 0)
|
if(duration > 0)
|
||||||
AddEnchantmentDuration(item,slot,duration);
|
AddEnchantmentDuration(item, slot, duration);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// duration == 0 will remove EnchantDuration
|
// duration == 0 will remove EnchantDuration
|
||||||
AddEnchantmentDuration(item,slot,0);
|
AddEnchantmentDuration(item, slot, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::SendEnchantmentDurations()
|
void Player::SendEnchantmentDurations()
|
||||||
{
|
{
|
||||||
for(EnchantDurationList::const_iterator itr = m_enchantDuration.begin();itr != m_enchantDuration.end();++itr)
|
for(EnchantDurationList::const_iterator itr = m_enchantDuration.begin(); itr != m_enchantDuration.end(); ++itr)
|
||||||
{
|
{
|
||||||
GetSession()->SendItemEnchantTimeUpdate(GetGUID(), itr->item->GetGUID(),itr->slot,uint32(itr->leftduration)/1000);
|
GetSession()->SendItemEnchantTimeUpdate(GetGUID(), itr->item->GetGUID(), itr->slot, uint32(itr->leftduration) / 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::SendItemDurations()
|
void Player::SendItemDurations()
|
||||||
{
|
{
|
||||||
for(ItemDurationList::const_iterator itr = m_itemDuration.begin();itr != m_itemDuration.end();++itr)
|
for(ItemDurationList::const_iterator itr = m_itemDuration.begin(); itr != m_itemDuration.end(); ++itr)
|
||||||
{
|
{
|
||||||
(*itr)->SendTimeUpdate(this);
|
(*itr)->SendTimeUpdate(this);
|
||||||
}
|
}
|
||||||
|
|
@ -11898,18 +11889,18 @@ void Player::SendNewItem(Item *item, uint32 count, bool received, bool created,
|
||||||
|
|
||||||
// last check 2.0.10
|
// last check 2.0.10
|
||||||
WorldPacket data( SMSG_ITEM_PUSH_RESULT, (8+4+4+4+1+4+4+4+4+4) );
|
WorldPacket data( SMSG_ITEM_PUSH_RESULT, (8+4+4+4+1+4+4+4+4+4) );
|
||||||
data << GetGUID(); // player GUID
|
data << uint64(GetGUID()); // player GUID
|
||||||
data << uint32(received); // 0=looted, 1=from npc
|
data << uint32(received); // 0=looted, 1=from npc
|
||||||
data << uint32(created); // 0=received, 1=created
|
data << uint32(created); // 0=received, 1=created
|
||||||
data << uint32(1); // always 0x01 (probably meant to be count of listed items)
|
data << uint32(1); // always 0x01 (probably meant to be count of listed items)
|
||||||
data << (uint8)item->GetBagSlot(); // bagslot
|
data << uint8(item->GetBagSlot()); // bagslot
|
||||||
// item slot, but when added to stack: 0xFFFFFFFF
|
// item slot, but when added to stack: 0xFFFFFFFF
|
||||||
data << (uint32) ((item->GetCount()==count) ? item->GetSlot() : -1);
|
data << uint32((item->GetCount() == count) ? item->GetSlot() : -1);
|
||||||
data << uint32(item->GetEntry()); // item id
|
data << uint32(item->GetEntry()); // item id
|
||||||
data << uint32(item->GetItemSuffixFactor()); // SuffixFactor
|
data << uint32(item->GetItemSuffixFactor()); // SuffixFactor
|
||||||
data << uint32(item->GetItemRandomPropertyId()); // random item property id
|
data << uint32(item->GetItemRandomPropertyId()); // random item property id
|
||||||
data << uint32(count); // count of items
|
data << uint32(count); // count of items
|
||||||
data << GetItemCount(item->GetEntry()); // count of items in inventory
|
data << uint32(GetItemCount(item->GetEntry())); // count of items in inventory
|
||||||
|
|
||||||
if (broadcast && GetGroup())
|
if (broadcast && GetGroup())
|
||||||
GetGroup()->BroadcastPacket(&data, true);
|
GetGroup()->BroadcastPacket(&data, true);
|
||||||
|
|
@ -11928,7 +11919,7 @@ void Player::PrepareQuestMenu( uint64 guid )
|
||||||
QuestRelations* pObjectQIR;
|
QuestRelations* pObjectQIR;
|
||||||
|
|
||||||
// pets also can have quests
|
// pets also can have quests
|
||||||
Creature *pCreature = ObjectAccessor::GetCreatureOrPetOrVehicle(*this,guid);
|
Creature *pCreature = ObjectAccessor::GetCreatureOrPetOrVehicle(*this, guid);
|
||||||
if( pCreature )
|
if( pCreature )
|
||||||
{
|
{
|
||||||
pObject = (Object*)pCreature;
|
pObject = (Object*)pCreature;
|
||||||
|
|
@ -11994,10 +11985,11 @@ void Player::SendPreparedQuest( uint64 guid )
|
||||||
// Auto open -- maybe also should verify there is no greeting
|
// Auto open -- maybe also should verify there is no greeting
|
||||||
uint32 quest_id = qmi0.m_qId;
|
uint32 quest_id = qmi0.m_qId;
|
||||||
Quest const* pQuest = objmgr.GetQuestTemplate(quest_id);
|
Quest const* pQuest = objmgr.GetQuestTemplate(quest_id);
|
||||||
|
|
||||||
if ( pQuest )
|
if ( pQuest )
|
||||||
{
|
{
|
||||||
if( status == DIALOG_STATUS_REWARD_REP && !GetQuestRewardStatus( quest_id ) )
|
if( status == DIALOG_STATUS_REWARD_REP && !GetQuestRewardStatus( quest_id ) )
|
||||||
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, CanRewardQuest(pQuest,false), true );
|
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, CanRewardQuest(pQuest, false), true );
|
||||||
else if( status == DIALOG_STATUS_INCOMPLETE )
|
else if( status == DIALOG_STATUS_INCOMPLETE )
|
||||||
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, false, true );
|
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, false, true );
|
||||||
// Send completable on repeatable quest if player don't have quest
|
// Send completable on repeatable quest if player don't have quest
|
||||||
|
|
@ -13905,7 +13897,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
||||||
|
|
||||||
if(!LoadValues( fields[2].GetString()))
|
if(!LoadValues( fields[2].GetString()))
|
||||||
{
|
{
|
||||||
sLog.outError("Player #%d have broken data in `data` field. Can't be loaded.",GUID_LOPART(guid));
|
sLog.outError("Player #%d have broken data in `data` field. Can't be loaded.", GUID_LOPART(guid));
|
||||||
delete result;
|
delete result;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -13916,8 +13908,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
||||||
// cleanup inventory related item value fields (its will be filled correctly in _LoadInventory)
|
// cleanup inventory related item value fields (its will be filled correctly in _LoadInventory)
|
||||||
for(uint8 slot = EQUIPMENT_SLOT_START; slot < EQUIPMENT_SLOT_END; ++slot)
|
for(uint8 slot = EQUIPMENT_SLOT_START; slot < EQUIPMENT_SLOT_END; ++slot)
|
||||||
{
|
{
|
||||||
SetUInt64Value( (uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2) ), 0 );
|
SetUInt64Value( PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), 0 );
|
||||||
SetVisibleItemSlot(slot,NULL);
|
SetVisibleItemSlot(slot, NULL);
|
||||||
|
|
||||||
if (m_items[slot])
|
if (m_items[slot])
|
||||||
{
|
{
|
||||||
|
|
@ -14295,7 +14287,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
||||||
if(uint32 curTitle = GetUInt32Value(PLAYER_CHOSEN_TITLE))
|
if(uint32 curTitle = GetUInt32Value(PLAYER_CHOSEN_TITLE))
|
||||||
{
|
{
|
||||||
if(!HasTitle(curTitle))
|
if(!HasTitle(curTitle))
|
||||||
SetUInt32Value(PLAYER_CHOSEN_TITLE,0);
|
SetUInt32Value(PLAYER_CHOSEN_TITLE, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not finish taxi flight path
|
// Not finish taxi flight path
|
||||||
|
|
@ -14934,18 +14926,18 @@ void Player::_LoadQuestStatus(QueryResult *result)
|
||||||
|
|
||||||
// add to quest log
|
// add to quest log
|
||||||
if( slot < MAX_QUEST_LOG_SIZE &&
|
if( slot < MAX_QUEST_LOG_SIZE &&
|
||||||
( questStatusData.m_status==QUEST_STATUS_INCOMPLETE ||
|
( questStatusData.m_status == QUEST_STATUS_INCOMPLETE ||
|
||||||
questStatusData.m_status==QUEST_STATUS_COMPLETE &&
|
questStatusData.m_status == QUEST_STATUS_COMPLETE &&
|
||||||
(!questStatusData.m_rewarded || pQuest->IsDaily()) ) )
|
(!questStatusData.m_rewarded || pQuest->IsDaily()) ) )
|
||||||
{
|
{
|
||||||
SetQuestSlot(slot,quest_id,quest_time);
|
SetQuestSlot(slot, quest_id, quest_time);
|
||||||
|
|
||||||
if(questStatusData.m_status == QUEST_STATUS_COMPLETE)
|
if(questStatusData.m_status == QUEST_STATUS_COMPLETE)
|
||||||
SetQuestSlotState(slot,QUEST_STATE_COMPLETE);
|
SetQuestSlotState(slot, QUEST_STATE_COMPLETE);
|
||||||
|
|
||||||
for(uint8 idx = 0; idx < QUEST_OBJECTIVES_COUNT; ++idx)
|
for(uint8 idx = 0; idx < QUEST_OBJECTIVES_COUNT; ++idx)
|
||||||
if(questStatusData.m_creatureOrGOcount[idx])
|
if(questStatusData.m_creatureOrGOcount[idx])
|
||||||
SetQuestSlotCounter(slot,idx,questStatusData.m_creatureOrGOcount[idx]);
|
SetQuestSlotCounter(slot, idx, questStatusData.m_creatureOrGOcount[idx]);
|
||||||
|
|
||||||
++slot;
|
++slot;
|
||||||
}
|
}
|
||||||
|
|
@ -14963,7 +14955,7 @@ void Player::_LoadQuestStatus(QueryResult *result)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pQuest->GetBonusTalents())
|
if(pQuest->GetBonusTalents())
|
||||||
m_questRewardTalentCount+=pQuest->GetBonusTalents();
|
m_questRewardTalentCount += pQuest->GetBonusTalents();
|
||||||
}
|
}
|
||||||
|
|
||||||
sLog.outDebug("Quest status is {%u} for quest {%u} for player (GUID: %u)", questStatusData.m_status, quest_id, GetGUIDLow());
|
sLog.outDebug("Quest status is {%u} for quest {%u} for player (GUID: %u)", questStatusData.m_status, quest_id, GetGUIDLow());
|
||||||
|
|
@ -14976,7 +14968,7 @@ void Player::_LoadQuestStatus(QueryResult *result)
|
||||||
|
|
||||||
// clear quest log tail
|
// clear quest log tail
|
||||||
for ( uint16 i = slot; i < MAX_QUEST_LOG_SIZE; ++i )
|
for ( uint16 i = slot; i < MAX_QUEST_LOG_SIZE; ++i )
|
||||||
SetQuestSlot(i,0);
|
SetQuestSlot(i, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::_LoadDailyQuestStatus(QueryResult *result)
|
void Player::_LoadDailyQuestStatus(QueryResult *result)
|
||||||
|
|
@ -15211,7 +15203,7 @@ void Player::SendRaidInfo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
data.put<uint32>(p_counter,counter);
|
data.put<uint32>(p_counter, counter);
|
||||||
GetSession()->SendPacket(&data);
|
GetSession()->SendPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -16403,7 +16395,7 @@ void Player::PetSpellInitialize()
|
||||||
|
|
||||||
CharmInfo *charmInfo = pet->GetCharmInfo();
|
CharmInfo *charmInfo = pet->GetCharmInfo();
|
||||||
|
|
||||||
WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+10*4);
|
WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
|
||||||
data << uint64(pet->GetGUID());
|
data << uint64(pet->GetGUID());
|
||||||
data << uint32(pet->GetCreatureInfo()->family); // creature family (required for pet talents)
|
data << uint32(pet->GetCreatureInfo()->family); // creature family (required for pet talents)
|
||||||
data << uint32(0);
|
data << uint32(0);
|
||||||
|
|
@ -16477,21 +16469,16 @@ void Player::PossessSpellInitialize()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8 addlist = 0;
|
WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
|
||||||
WorldPacket data(SMSG_PET_SPELLS, 16+40+1+4*addlist+25);// first line + actionbar + spellcount + spells + last adds
|
|
||||||
|
|
||||||
//16
|
|
||||||
data << uint64(charm->GetGUID());
|
data << uint64(charm->GetGUID());
|
||||||
data << uint32(0x00000000);
|
data << uint32(0);
|
||||||
data << uint32(0);
|
data << uint32(0);
|
||||||
data << uint32(0);
|
data << uint32(0);
|
||||||
|
|
||||||
charmInfo->BuildActionBar(&data); //40
|
charmInfo->BuildActionBar(&data);
|
||||||
|
|
||||||
data << uint8(addlist); //1
|
data << uint8(0); // spells count
|
||||||
|
data << uint8(0); // cooldowns count
|
||||||
uint8 count = 0;
|
|
||||||
data << uint8(count); // cooldowns count
|
|
||||||
|
|
||||||
GetSession()->SendPacket(&data);
|
GetSession()->SendPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
@ -16526,20 +16513,19 @@ void Player::CharmSpellInitialize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WorldPacket data(SMSG_PET_SPELLS, 16+40+1+4*addlist+25);// first line + actionbar + spellcount + spells + last adds
|
WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+4*addlist+1);
|
||||||
|
|
||||||
data << uint64(charm->GetGUID());
|
data << uint64(charm->GetGUID());
|
||||||
data << uint32(0x00000000);
|
|
||||||
data << uint32(0);
|
data << uint32(0);
|
||||||
|
data << uint32(0);
|
||||||
|
|
||||||
if(charm->GetTypeId() != TYPEID_PLAYER)
|
if(charm->GetTypeId() != TYPEID_PLAYER)
|
||||||
data << uint8(charmInfo->GetReactState()) << uint8(charmInfo->GetCommandState());
|
data << uint8(charmInfo->GetReactState()) << uint8(charmInfo->GetCommandState()) << uint16(0);
|
||||||
else
|
else
|
||||||
data << uint8(0) << uint8(0);
|
data << uint8(0) << uint8(0) << uint16(0);
|
||||||
data << uint16(0);
|
|
||||||
|
|
||||||
charmInfo->BuildActionBar(&data); //40
|
charmInfo->BuildActionBar(&data);
|
||||||
|
|
||||||
data << uint8(addlist); //1
|
data << uint8(addlist);
|
||||||
|
|
||||||
if(addlist)
|
if(addlist)
|
||||||
{
|
{
|
||||||
|
|
@ -16554,8 +16540,7 @@ void Player::CharmSpellInitialize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8 count = 0;
|
data << uint8(0); // cooldowns count
|
||||||
data << uint8(count); // cooldowns count
|
|
||||||
|
|
||||||
GetSession()->SendPacket(&data);
|
GetSession()->SendPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
@ -17021,8 +17006,8 @@ void Player::ProhibitSpellScholl(SpellSchoolMask idSchoolMask, uint32 unTimeMs )
|
||||||
|
|
||||||
if((idSchoolMask & GetSpellSchoolMask(spellInfo)) && GetSpellCooldownDelay(unSpellId) < unTimeMs )
|
if((idSchoolMask & GetSpellSchoolMask(spellInfo)) && GetSpellCooldownDelay(unSpellId) < unTimeMs )
|
||||||
{
|
{
|
||||||
data << unSpellId;
|
data << uint32(unSpellId);
|
||||||
data << unTimeMs; // in m.secs
|
data << uint32(unTimeMs); // in m.secs
|
||||||
AddSpellCooldown(unSpellId, 0, curTime + unTimeMs/IN_MILISECONDS);
|
AddSpellCooldown(unSpellId, 0, curTime + unTimeMs/IN_MILISECONDS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -19299,7 +19284,7 @@ void Player::EnterVehicle(Vehicle *vehicle)
|
||||||
vehicle->setFaction(getFaction());
|
vehicle->setFaction(getFaction());
|
||||||
|
|
||||||
SetCharm(vehicle); // charm
|
SetCharm(vehicle); // charm
|
||||||
SetFarSightGUID(vehicle->GetGUID()); // set view
|
SetFarSightGUID(vehicle->GetGUID()); // set view
|
||||||
|
|
||||||
SetClientControl(vehicle, 1); // redirect controls to vehicle
|
SetClientControl(vehicle, 1); // redirect controls to vehicle
|
||||||
|
|
||||||
|
|
@ -19330,8 +19315,8 @@ void Player::EnterVehicle(Vehicle *vehicle)
|
||||||
|
|
||||||
data.Initialize(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
|
data.Initialize(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
|
||||||
data << uint64(vehicle->GetGUID());
|
data << uint64(vehicle->GetGUID());
|
||||||
data << uint32(0x00000000);
|
data << uint32(0);
|
||||||
data << uint32(0x00000000);
|
data << uint32(0);
|
||||||
data << uint32(0x00000101);
|
data << uint32(0x00000101);
|
||||||
|
|
||||||
for(uint32 i = 0; i < 10; ++i)
|
for(uint32 i = 0; i < 10; ++i)
|
||||||
|
|
@ -19395,16 +19380,16 @@ bool Player::HasTitle(uint32 bitIndex)
|
||||||
if (bitIndex > 128)
|
if (bitIndex > 128)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
uint32 fieldIndexOffset = bitIndex/32;
|
uint32 fieldIndexOffset = bitIndex / 32;
|
||||||
uint32 flag = 1 << (bitIndex%32);
|
uint32 flag = 1 << (bitIndex % 32);
|
||||||
return HasFlag(PLAYER__FIELD_KNOWN_TITLES+fieldIndexOffset, flag);
|
return HasFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::SetTitle(CharTitlesEntry const* title)
|
void Player::SetTitle(CharTitlesEntry const* title)
|
||||||
{
|
{
|
||||||
uint32 fieldIndexOffset = title->bit_index/32;
|
uint32 fieldIndexOffset = title->bit_index / 32;
|
||||||
uint32 flag = 1 << (title->bit_index%32);
|
uint32 flag = 1 << (title->bit_index % 32);
|
||||||
SetFlag(PLAYER__FIELD_KNOWN_TITLES+fieldIndexOffset, flag);
|
SetFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::ConvertRune(uint8 index, uint8 newType)
|
void Player::ConvertRune(uint8 index, uint8 newType)
|
||||||
|
|
|
||||||
|
|
@ -147,6 +147,7 @@ struct ActionButton
|
||||||
enum ActionButtonType
|
enum ActionButtonType
|
||||||
{
|
{
|
||||||
ACTION_BUTTON_SPELL = 0,
|
ACTION_BUTTON_SPELL = 0,
|
||||||
|
ACTION_BUTTON_EQSET = 32,
|
||||||
ACTION_BUTTON_MACRO = 64,
|
ACTION_BUTTON_MACRO = 64,
|
||||||
ACTION_BUTTON_CMACRO= 65,
|
ACTION_BUTTON_CMACRO= 65,
|
||||||
ACTION_BUTTON_ITEM = 128
|
ACTION_BUTTON_ITEM = 128
|
||||||
|
|
@ -287,14 +288,32 @@ struct EnchantDuration
|
||||||
typedef std::list<EnchantDuration> EnchantDurationList;
|
typedef std::list<EnchantDuration> EnchantDurationList;
|
||||||
typedef std::list<Item*> ItemDurationList;
|
typedef std::list<Item*> ItemDurationList;
|
||||||
|
|
||||||
|
enum LfgType
|
||||||
|
{
|
||||||
|
LFG_TYPE_NONE = 0,
|
||||||
|
LFG_TYPE_DUNGEON = 1,
|
||||||
|
LFG_TYPE_RAID = 2,
|
||||||
|
LFG_TYPE_QUEST = 3,
|
||||||
|
LFG_TYPE_ZONE = 4,
|
||||||
|
LFG_TYPE_HEROIC_DUNGEON = 5
|
||||||
|
};
|
||||||
|
|
||||||
|
enum LfgRoles
|
||||||
|
{
|
||||||
|
LEADER = 1,
|
||||||
|
TANK = 2,
|
||||||
|
HEALER = 4,
|
||||||
|
DAMAGE = 8
|
||||||
|
};
|
||||||
|
|
||||||
struct LookingForGroupSlot
|
struct LookingForGroupSlot
|
||||||
{
|
{
|
||||||
LookingForGroupSlot() : entry(0), type(0) {}
|
LookingForGroupSlot() : entry(0), type(0) {}
|
||||||
bool Empty() const { return !entry && !type; }
|
bool Empty() const { return !entry && !type; }
|
||||||
void Clear() { entry = 0; type = 0; }
|
void Clear() { entry = 0; type = 0; }
|
||||||
void Set(uint32 _entry, uint32 _type ) { entry = _entry; type = _type; }
|
void Set(uint32 _entry, uint32 _type ) { entry = _entry; type = _type; }
|
||||||
bool Is(uint32 _entry, uint32 _type) const { return entry==_entry && type==_type; }
|
bool Is(uint32 _entry, uint32 _type) const { return entry == _entry && type == _type; }
|
||||||
bool canAutoJoin() const { return entry && (type == 1 || type == 5); }
|
bool canAutoJoin() const { return entry && (type == LFG_TYPE_DUNGEON || type == LFG_TYPE_HEROIC_DUNGEON); }
|
||||||
|
|
||||||
uint32 entry;
|
uint32 entry;
|
||||||
uint32 type;
|
uint32 type;
|
||||||
|
|
@ -305,11 +324,11 @@ struct LookingForGroupSlot
|
||||||
struct LookingForGroup
|
struct LookingForGroup
|
||||||
{
|
{
|
||||||
LookingForGroup() {}
|
LookingForGroup() {}
|
||||||
bool HaveInSlot(LookingForGroupSlot const& slot) const { return HaveInSlot(slot.entry,slot.type); }
|
bool HaveInSlot(LookingForGroupSlot const& slot) const { return HaveInSlot(slot.entry, slot.type); }
|
||||||
bool HaveInSlot(uint32 _entry, uint32 _type) const
|
bool HaveInSlot(uint32 _entry, uint32 _type) const
|
||||||
{
|
{
|
||||||
for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i)
|
for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i)
|
||||||
if(slots[i].Is(_entry,_type))
|
if(slots[i].Is(_entry, _type))
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -1380,7 +1399,7 @@ class MANGOS_DLL_SPEC Player : public Unit
|
||||||
uint32 GetGlyph(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot); }
|
uint32 GetGlyph(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot); }
|
||||||
|
|
||||||
uint32 GetFreePrimaryProffesionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); }
|
uint32 GetFreePrimaryProffesionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); }
|
||||||
void SetFreePrimaryProffesions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2,profs); }
|
void SetFreePrimaryProffesions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2, profs); }
|
||||||
void InitPrimaryProffesions();
|
void InitPrimaryProffesions();
|
||||||
|
|
||||||
PlayerSpellMap const& GetSpellMap() const { return m_spells; }
|
PlayerSpellMap const& GetSpellMap() const { return m_spells; }
|
||||||
|
|
|
||||||
|
|
@ -179,10 +179,10 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data )
|
||||||
data << uint8(0) << uint8(0) << uint8(0); // name2, name3, name4, always empty
|
data << uint8(0) << uint8(0) << uint8(0); // name2, name3, name4, always empty
|
||||||
data << SubName;
|
data << SubName;
|
||||||
data << ci->IconName; // "Directions" for guard, string for Icons 2.3.0
|
data << ci->IconName; // "Directions" for guard, string for Icons 2.3.0
|
||||||
data << uint32(ci->type_flags); // flags wdbFeild7=wad flags1
|
data << uint32(ci->type_flags); // flags
|
||||||
data << uint32(ci->type);
|
data << uint32(ci->type); // CreatureType.dbc
|
||||||
data << uint32(ci->family); // family wdbFeild9
|
data << uint32(ci->family); // CreatureFamily.dbc
|
||||||
data << uint32(ci->rank); // rank wdbFeild10
|
data << uint32(ci->rank); // Creature Rank (elite, boss, etc)
|
||||||
data << uint32(ci->PetSpellDataId); // Id from CreatureSpellData.dbc wdbField12
|
data << uint32(ci->PetSpellDataId); // Id from CreatureSpellData.dbc wdbField12
|
||||||
data << uint32(ci->DisplayID_A); // modelid_male1
|
data << uint32(ci->DisplayID_A); // modelid_male1
|
||||||
data << uint32(ci->DisplayID_H); // modelid_female1 ?
|
data << uint32(ci->DisplayID_H); // modelid_female1 ?
|
||||||
|
|
@ -192,7 +192,7 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data )
|
||||||
data << float(ci->unk17); // unk
|
data << float(ci->unk17); // unk
|
||||||
data << uint8(ci->RacialLeader);
|
data << uint8(ci->RacialLeader);
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE " );
|
sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE" );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -204,7 +204,7 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data )
|
||||||
WorldPacket data( SMSG_CREATURE_QUERY_RESPONSE, 4 );
|
WorldPacket data( SMSG_CREATURE_QUERY_RESPONSE, 4 );
|
||||||
data << uint32(entry | 0x80000000);
|
data << uint32(entry | 0x80000000);
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE " );
|
sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -219,7 +219,6 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data )
|
||||||
const GameObjectInfo *info = objmgr.GetGameObjectInfo(entryID);
|
const GameObjectInfo *info = objmgr.GetGameObjectInfo(entryID);
|
||||||
if(info)
|
if(info)
|
||||||
{
|
{
|
||||||
|
|
||||||
std::string Name;
|
std::string Name;
|
||||||
std::string IconName;
|
std::string IconName;
|
||||||
std::string CastBarCaption;
|
std::string CastBarCaption;
|
||||||
|
|
@ -253,7 +252,7 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data )
|
||||||
data.append(info->raw.data, 24);
|
data.append(info->raw.data, 24);
|
||||||
data << float(info->size); // go size
|
data << float(info->size); // go size
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
sLog.outDebug( "WORLD: Sent CMSG_GAMEOBJECT_QUERY " );
|
sLog.outDebug( "WORLD: Sent SMSG_GAMEOBJECT_QUERY_RESPONSE" );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -266,7 +265,7 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data )
|
||||||
WorldPacket data ( SMSG_GAMEOBJECT_QUERY_RESPONSE, 4 );
|
WorldPacket data ( SMSG_GAMEOBJECT_QUERY_RESPONSE, 4 );
|
||||||
data << uint32(entryID | 0x80000000);
|
data << uint32(entryID | 0x80000000);
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
sLog.outDebug( "WORLD: Sent CMSG_GAMEOBJECT_QUERY " );
|
sLog.outDebug( "WORLD: Sent SMSG_GAMEOBJECT_QUERY_RESPONSE" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -318,7 +317,7 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket & /*recv_data*/)
|
||||||
|
|
||||||
void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,4+8);
|
CHECK_PACKET_SIZE(recv_data, 4 + 8);
|
||||||
|
|
||||||
uint32 textID;
|
uint32 textID;
|
||||||
uint64 guid;
|
uint64 guid;
|
||||||
|
|
@ -353,7 +352,7 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string Text_0[8], Text_1[8];
|
std::string Text_0[8], Text_1[8];
|
||||||
for (int i=0;i<8;++i)
|
for (int i = 0; i < 8; ++i)
|
||||||
{
|
{
|
||||||
Text_0[i]=pGossip->Options[i].Text_0;
|
Text_0[i]=pGossip->Options[i].Text_0;
|
||||||
Text_1[i]=pGossip->Options[i].Text_1;
|
Text_1[i]=pGossip->Options[i].Text_1;
|
||||||
|
|
@ -365,7 +364,7 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
|
||||||
NpcTextLocale const *nl = objmgr.GetNpcTextLocale(textID);
|
NpcTextLocale const *nl = objmgr.GetNpcTextLocale(textID);
|
||||||
if (nl)
|
if (nl)
|
||||||
{
|
{
|
||||||
for (int i=0;i<8;++i)
|
for (int i = 0; i < 8; ++i)
|
||||||
{
|
{
|
||||||
if (nl->Text_0[i].size() > size_t(loc_idx) && !nl->Text_0[i][loc_idx].empty())
|
if (nl->Text_0[i].size() > size_t(loc_idx) && !nl->Text_0[i][loc_idx].empty())
|
||||||
Text_0[i]=nl->Text_0[i][loc_idx];
|
Text_0[i]=nl->Text_0[i][loc_idx];
|
||||||
|
|
@ -375,7 +374,7 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i=0; i<8; ++i)
|
for (int i = 0; i < 8; ++i)
|
||||||
{
|
{
|
||||||
data << pGossip->Options[i].Probability;
|
data << pGossip->Options[i].Probability;
|
||||||
|
|
||||||
|
|
@ -401,12 +400,12 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
|
||||||
|
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
|
|
||||||
sLog.outDebug( "WORLD: Sent SMSG_NPC_TEXT_UPDATE " );
|
sLog.outDebug( "WORLD: Sent SMSG_NPC_TEXT_UPDATE" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandlePageQueryOpcode( WorldPacket & recv_data )
|
void WorldSession::HandlePageTextQueryOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,4);
|
CHECK_PACKET_SIZE(recv_data, 4);
|
||||||
|
|
||||||
uint32 pageID;
|
uint32 pageID;
|
||||||
|
|
||||||
|
|
@ -447,6 +446,6 @@ void WorldSession::HandlePageQueryOpcode( WorldPacket & recv_data )
|
||||||
}
|
}
|
||||||
SendPacket( &data );
|
SendPacket( &data );
|
||||||
|
|
||||||
sLog.outDebug( "WORLD: Sent SMSG_PAGE_TEXT_QUERY_RESPONSE " );
|
sLog.outDebug( "WORLD: Sent SMSG_PAGE_TEXT_QUERY_RESPONSE" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,7 @@ void WorldSession::HandleQuestgiverHelloOpcode( WorldPacket & recv_data )
|
||||||
|
|
||||||
void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4);
|
CHECK_PACKET_SIZE(recv_data, 8+4);
|
||||||
|
|
||||||
uint64 guid;
|
uint64 guid;
|
||||||
uint32 quest;
|
uint32 quest;
|
||||||
|
|
@ -119,7 +119,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
|
||||||
if(!GetPlayer()->isAlive())
|
if(!GetPlayer()->isAlive())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_ACCEPT_QUEST npc = %u, quest = %u",uint32(GUID_LOPART(guid)),quest );
|
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_ACCEPT_QUEST npc = %u, quest = %u", uint32(GUID_LOPART(guid)), quest );
|
||||||
|
|
||||||
Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM|TYPEMASK_PLAYER);
|
Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM|TYPEMASK_PLAYER);
|
||||||
|
|
||||||
|
|
@ -204,14 +204,14 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
|
||||||
_player->PlayerTalkClass->CloseGossip();
|
_player->PlayerTalkClass->CloseGossip();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleQuestgiverQuestQueryOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleQuestgiverQueryQuestOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4);
|
CHECK_PACKET_SIZE(recv_data, 8+4);
|
||||||
|
|
||||||
uint64 guid;
|
uint64 guid;
|
||||||
uint32 quest;
|
uint32 quest;
|
||||||
recv_data >> guid >> quest;
|
recv_data >> guid >> quest;
|
||||||
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_QUERY_QUEST npc = %u, quest = %u",uint32(GUID_LOPART(guid)),quest );
|
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_QUERY_QUEST npc = %u, quest = %u", uint32(GUID_LOPART(guid)), quest );
|
||||||
|
|
||||||
// Verify that the guid is valid and is a questgiver or involved in the requested quest
|
// Verify that the guid is valid and is a questgiver or involved in the requested quest
|
||||||
Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM);
|
Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM);
|
||||||
|
|
@ -385,7 +385,7 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recv_data)
|
||||||
sLog.outDebug( "WORLD: Received CMSG_QUEST_CONFIRM_ACCEPT quest = %u",quest );
|
sLog.outDebug( "WORLD: Received CMSG_QUEST_CONFIRM_ACCEPT quest = %u",quest );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleQuestComplete(WorldPacket& recv_data)
|
void WorldSession::HandleQuestgiverCompleteQuest(WorldPacket& recv_data)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4);
|
CHECK_PACKET_SIZE(recv_data,8+4);
|
||||||
|
|
||||||
|
|
@ -413,12 +413,12 @@ void WorldSession::HandleQuestComplete(WorldPacket& recv_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleQuestAutoLaunch(WorldPacket& /*recvPacket*/)
|
void WorldSession::HandleQuestgiverQuestAutoLaunch(WorldPacket& /*recvPacket*/)
|
||||||
{
|
{
|
||||||
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_QUEST_AUTOLAUNCH (Send your log to anakin if you see this message)" );
|
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_QUEST_AUTOLAUNCH" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleQuestPushToParty(WorldPacket& recvPacket)
|
void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recvPacket,4);
|
CHECK_PACKET_SIZE(recvPacket,4);
|
||||||
|
|
||||||
|
|
@ -594,7 +594,7 @@ uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleQuestgiverStatusQueryMultipleOpcode(WorldPacket& /*recvPacket*/)
|
void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket*/)
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Received CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY");
|
sLog.outDebug("WORLD: Received CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ void WorldSession::HandleLearnTalentOpcode( WorldPacket & recv_data )
|
||||||
_player->LearnTalent(talent_id, requested_rank);
|
_player->LearnTalent(talent_id, requested_rank);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleTalentWipeOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleTalentWipeConfirmOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8);
|
CHECK_PACKET_SIZE(recv_data,8);
|
||||||
|
|
||||||
|
|
@ -47,7 +47,7 @@ void WorldSession::HandleTalentWipeOpcode( WorldPacket & recv_data )
|
||||||
Creature *unit = GetPlayer()->GetNPCIfCanInteractWith(guid,UNIT_NPC_FLAG_TRAINER);
|
Creature *unit = GetPlayer()->GetNPCIfCanInteractWith(guid,UNIT_NPC_FLAG_TRAINER);
|
||||||
if (!unit)
|
if (!unit)
|
||||||
{
|
{
|
||||||
sLog.outDebug( "WORLD: HandleTalentWipeOpcode - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)) );
|
sLog.outDebug( "WORLD: HandleTalentWipeConfirmOpcode - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)) );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -453,7 +453,7 @@ void WorldSession::HandleCancelChanneling( WorldPacket & /*recv_data */)
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleTotemDestroy( WorldPacket& recvPacket)
|
void WorldSession::HandleTotemDestroyed( WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recvPacket, 1);
|
CHECK_PACKET_SIZE(recvPacket, 1);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ bool WorldSession::SendLearnNewTaxiNode( Creature* unit )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleActivateTaxiFarOpcode ( WorldPacket & recv_data )
|
void WorldSession::HandleActivateTaxiExpressOpcode ( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
CHECK_PACKET_SIZE(recv_data,8+4+4);
|
CHECK_PACKET_SIZE(recv_data,8+4+4);
|
||||||
|
|
||||||
|
|
@ -169,7 +169,7 @@ void WorldSession::HandleActivateTaxiFarOpcode ( WorldPacket & recv_data )
|
||||||
Creature *npc = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_FLIGHTMASTER);
|
Creature *npc = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_FLIGHTMASTER);
|
||||||
if (!npc)
|
if (!npc)
|
||||||
{
|
{
|
||||||
sLog.outDebug( "WORLD: HandleActivateTaxiFarOpcode - Unit (GUID: %u) not found or you can't interact with it.", uint32(GUID_LOPART(guid)) );
|
sLog.outDebug( "WORLD: HandleActivateTaxiExpressOpcode - Unit (GUID: %u) not found or you can't interact with it.", uint32(GUID_LOPART(guid)) );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// recheck
|
// recheck
|
||||||
|
|
@ -192,7 +192,7 @@ void WorldSession::HandleActivateTaxiFarOpcode ( WorldPacket & recv_data )
|
||||||
GetPlayer()->ActivateTaxiPathTo(nodes, npc);
|
GetPlayer()->ActivateTaxiPathTo(nodes, npc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleTaxiNextDestinationOpcode(WorldPacket& /*recv_data*/)
|
void WorldSession::HandleMoveSplineDoneOpcode(WorldPacket& /*recv_data*/)
|
||||||
{
|
{
|
||||||
sLog.outDebug( "WORLD: Received CMSG_MOVE_SPLINE_DONE" );
|
sLog.outDebug( "WORLD: Received CMSG_MOVE_SPLINE_DONE" );
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -540,7 +540,7 @@ void Transport::UpdateForMap(Map const* targetMap)
|
||||||
UpdateData transData;
|
UpdateData transData;
|
||||||
BuildCreateUpdateBlockForPlayer(&transData, itr->getSource());
|
BuildCreateUpdateBlockForPlayer(&transData, itr->getSource());
|
||||||
WorldPacket packet;
|
WorldPacket packet;
|
||||||
transData.BuildPacket(&packet, true);
|
transData.BuildPacket(&packet);
|
||||||
itr->getSource()->SendDirectMessage(&packet);
|
itr->getSource()->SendDirectMessage(&packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -550,7 +550,7 @@ void Transport::UpdateForMap(Map const* targetMap)
|
||||||
UpdateData transData;
|
UpdateData transData;
|
||||||
BuildOutOfRangeUpdateBlock(&transData);
|
BuildOutOfRangeUpdateBlock(&transData);
|
||||||
WorldPacket out_packet;
|
WorldPacket out_packet;
|
||||||
transData.BuildPacket(&out_packet, true);
|
transData.BuildPacket(&out_packet);
|
||||||
|
|
||||||
for(Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
|
for(Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
|
||||||
if(this != itr->getSource()->GetTransport())
|
if(this != itr->getSource()->GetTransport())
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,7 @@ class Transport : protected GameObject
|
||||||
using GameObject::GetPositionZ;
|
using GameObject::GetPositionZ;
|
||||||
using GameObject::BuildCreateUpdateBlockForPlayer;
|
using GameObject::BuildCreateUpdateBlockForPlayer;
|
||||||
using GameObject::BuildOutOfRangeUpdateBlock;
|
using GameObject::BuildOutOfRangeUpdateBlock;
|
||||||
|
using GameObject::GetPackGUID;
|
||||||
|
|
||||||
bool Create(uint32 guidlow, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags);
|
bool Create(uint32 guidlow, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags);
|
||||||
bool GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids);
|
bool GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids);
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,7 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 ty
|
||||||
}
|
}
|
||||||
|
|
||||||
data << uint32(MovementFlags);
|
data << uint32(MovementFlags);
|
||||||
|
|
||||||
data << uint32(Time); // Time in between points
|
data << uint32(Time); // Time in between points
|
||||||
data << uint32(1); // 1 single waypoint
|
data << uint32(1); // 1 single waypoint
|
||||||
data << NewPosX << NewPosY << NewPosZ; // the single waypoint Point B
|
data << NewPosX << NewPosY << NewPosZ; // the single waypoint Point B
|
||||||
|
|
@ -299,14 +300,14 @@ void Unit::SendMonsterMoveByPath(Path const& path, uint32 start, uint32 end, uin
|
||||||
{
|
{
|
||||||
uint32 traveltime = uint32(path.GetTotalLength(start, end) * 32);
|
uint32 traveltime = uint32(path.GetTotalLength(start, end) * 32);
|
||||||
|
|
||||||
uint32 pathSize = end-start;
|
uint32 pathSize = end - start;
|
||||||
|
|
||||||
WorldPacket data( SMSG_MONSTER_MOVE, (GetPackGUID().size()+4+4+4+4+1+4+4+4+pathSize*4*3) );
|
WorldPacket data( SMSG_MONSTER_MOVE, (GetPackGUID().size()+4+4+4+4+1+4+4+4+pathSize*4*3) );
|
||||||
data.append(GetPackGUID());
|
data.append(GetPackGUID());
|
||||||
data << GetPositionX();
|
data << GetPositionX();
|
||||||
data << GetPositionY();
|
data << GetPositionY();
|
||||||
data << GetPositionZ();
|
data << GetPositionZ();
|
||||||
data << getMSTime();
|
data << uint32(getMSTime());
|
||||||
data << uint8( 0 );
|
data << uint8( 0 );
|
||||||
data << uint32( MovementFlags );
|
data << uint32( MovementFlags );
|
||||||
data << uint32( traveltime );
|
data << uint32( traveltime );
|
||||||
|
|
@ -544,7 +545,6 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
|
||||||
if (pVictim->GetTypeId() == TYPEID_PLAYER)
|
if (pVictim->GetTypeId() == TYPEID_PLAYER)
|
||||||
((Player*)pVictim)->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, health);
|
((Player*)pVictim)->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, health);
|
||||||
|
|
||||||
|
|
||||||
// find player: owner of controlled `this` or `this` itself maybe
|
// find player: owner of controlled `this` or `this` itself maybe
|
||||||
Player *player = GetCharmerOrOwnerPlayerOrPlayerItself();
|
Player *player = GetCharmerOrOwnerPlayerOrPlayerItself();
|
||||||
|
|
||||||
|
|
@ -1147,7 +1147,7 @@ void Unit::DealSpellDamage(SpellNonMeleeDamage *damageInfo, bool durabilityLoss)
|
||||||
if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER)
|
if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId());
|
const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId());
|
||||||
if(area && area->flags & 0x800) //sanctuary
|
if(area && area->flags & AREA_FLAG_SANCTUARY) // sanctuary
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1422,11 +1422,11 @@ void Unit::DealMeleeDamage(CalcDamageInfo *damageInfo, bool durabilityLoss)
|
||||||
if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER)
|
if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId());
|
const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId());
|
||||||
if(area && area->flags & 0x800) //sanctuary
|
if(area && area->flags & AREA_FLAG_SANCTUARY) // sanctuary
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hmmmm dont like this emotes cloent must by self do all animations
|
// Hmmmm dont like this emotes client must by self do all animations
|
||||||
if (damageInfo->HitInfo&HITINFO_CRITICALHIT)
|
if (damageInfo->HitInfo&HITINFO_CRITICALHIT)
|
||||||
pVictim->HandleEmoteCommand(EMOTE_ONESHOT_WOUNDCRITICAL);
|
pVictim->HandleEmoteCommand(EMOTE_ONESHOT_WOUNDCRITICAL);
|
||||||
if(damageInfo->blocked_amount && damageInfo->TargetState!=VICTIMSTATE_BLOCKS)
|
if(damageInfo->blocked_amount && damageInfo->TargetState!=VICTIMSTATE_BLOCKS)
|
||||||
|
|
@ -1551,7 +1551,7 @@ void Unit::DealMeleeDamage(CalcDamageInfo *damageInfo, bool durabilityLoss)
|
||||||
|
|
||||||
void Unit::HandleEmoteCommand(uint32 anim_id)
|
void Unit::HandleEmoteCommand(uint32 anim_id)
|
||||||
{
|
{
|
||||||
WorldPacket data( SMSG_EMOTE, 12 );
|
WorldPacket data( SMSG_EMOTE, 4 + 8 );
|
||||||
data << uint32(anim_id);
|
data << uint32(anim_id);
|
||||||
data << uint64(GetGUID());
|
data << uint64(GetGUID());
|
||||||
SendMessageToSet(&data, true);
|
SendMessageToSet(&data, true);
|
||||||
|
|
@ -2319,7 +2319,7 @@ float Unit::CalculateLevelPenalty(SpellEntry const* spellProto) const
|
||||||
|
|
||||||
void Unit::SendAttackStart(Unit* pVictim)
|
void Unit::SendAttackStart(Unit* pVictim)
|
||||||
{
|
{
|
||||||
WorldPacket data( SMSG_ATTACKSTART, 16 );
|
WorldPacket data( SMSG_ATTACKSTART, 8 + 8 );
|
||||||
data << uint64(GetGUID());
|
data << uint64(GetGUID());
|
||||||
data << uint64(pVictim->GetGUID());
|
data << uint64(pVictim->GetGUID());
|
||||||
|
|
||||||
|
|
@ -4227,7 +4227,7 @@ void Unit::RemoveAllGameObjects()
|
||||||
|
|
||||||
void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log)
|
void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_SPELLNONMELEEDAMAGELOG, (16+4+4+1+4+4+1+1+4+4+1)); // we guess size
|
WorldPacket data(SMSG_SPELLNONMELEEDAMAGELOG, (16+4+4+4+1+4+4+1+1+4+4+1)); // we guess size
|
||||||
data.append(log->target->GetPackGUID());
|
data.append(log->target->GetPackGUID());
|
||||||
data.append(log->attacker->GetPackGUID());
|
data.append(log->attacker->GetPackGUID());
|
||||||
data << uint32(log->SpellID);
|
data << uint32(log->SpellID);
|
||||||
|
|
@ -4244,10 +4244,10 @@ void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log)
|
||||||
SendMessageToSet( &data, true );
|
SendMessageToSet( &data, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Unit::SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID,uint32 Damage, SpellSchoolMask damageSchoolMask,uint32 AbsorbedDamage, uint32 Resist,bool PhysicalDamage, uint32 Blocked, bool CriticalHit)
|
void Unit::SendSpellNonMeleeDamageLog(Unit *target, uint32 SpellID, uint32 Damage, SpellSchoolMask damageSchoolMask, uint32 AbsorbedDamage, uint32 Resist, bool PhysicalDamage, uint32 Blocked, bool CriticalHit)
|
||||||
{
|
{
|
||||||
SpellNonMeleeDamage log(this,target,SpellID,damageSchoolMask);
|
SpellNonMeleeDamage log(this, target, SpellID, damageSchoolMask);
|
||||||
log.damage = Damage-AbsorbedDamage-Resist-Blocked;
|
log.damage = Damage - AbsorbedDamage - Resist - Blocked;
|
||||||
log.absorb = AbsorbedDamage;
|
log.absorb = AbsorbedDamage;
|
||||||
log.resist = Resist;
|
log.resist = Resist;
|
||||||
log.physicalLog = PhysicalDamage;
|
log.physicalLog = PhysicalDamage;
|
||||||
|
|
@ -4258,6 +4258,52 @@ void Unit::SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID,uint32 Damage,
|
||||||
SendSpellNonMeleeDamageLog(&log);
|
SendSpellNonMeleeDamageLog(&log);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Unit::SendPeriodicAuraLog(SpellPeriodicAuraLogInfo *pInfo)
|
||||||
|
{
|
||||||
|
Aura *aura = pInfo->aura;
|
||||||
|
Modifier *mod = aura->GetModifier();
|
||||||
|
|
||||||
|
WorldPacket data(SMSG_PERIODICAURALOG, 30);
|
||||||
|
data.append(aura->GetTarget()->GetPackGUID());
|
||||||
|
data.appendPackGUID(aura->GetCasterGUID());
|
||||||
|
data << uint32(aura->GetId()); // spellId
|
||||||
|
data << uint32(1); // count
|
||||||
|
data << uint32(mod->m_auraname); // auraId
|
||||||
|
switch(mod->m_auraname)
|
||||||
|
{
|
||||||
|
case SPELL_AURA_PERIODIC_DAMAGE:
|
||||||
|
case SPELL_AURA_PERIODIC_DAMAGE_PERCENT:
|
||||||
|
data << uint32(pInfo->damage); // damage
|
||||||
|
data << uint32(pInfo->overDamage); // overkill?
|
||||||
|
data << uint32(GetSpellSchoolMask(aura->GetSpellProto()));
|
||||||
|
data << uint32(pInfo->absorb); // absorb
|
||||||
|
data << uint32(pInfo->resist); // resist
|
||||||
|
data << uint8(0); // new 3.1.2
|
||||||
|
break;
|
||||||
|
case SPELL_AURA_PERIODIC_HEAL:
|
||||||
|
case SPELL_AURA_OBS_MOD_HEALTH:
|
||||||
|
data << uint32(pInfo->damage); // damage
|
||||||
|
data << uint32(pInfo->overDamage); // overheal?
|
||||||
|
data << uint8(0); // new 3.1.2
|
||||||
|
break;
|
||||||
|
case SPELL_AURA_OBS_MOD_MANA:
|
||||||
|
case SPELL_AURA_PERIODIC_ENERGIZE:
|
||||||
|
data << uint32(mod->m_miscvalue); // power type
|
||||||
|
data << uint32(pInfo->damage); // damage
|
||||||
|
break;
|
||||||
|
case SPELL_AURA_PERIODIC_MANA_LEECH:
|
||||||
|
data << uint32(mod->m_miscvalue); // power type
|
||||||
|
data << uint32(pInfo->damage); // amount
|
||||||
|
data << float(pInfo->multiplier); // gain multiplier
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sLog.outError("Unit::SendPeriodicAuraLog: unknown aura %u", uint32(mod->m_auraname));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
aura->GetTarget()->SendMessageToSet(&data, true);
|
||||||
|
}
|
||||||
|
|
||||||
void Unit::ProcDamageAndSpell(Unit *pVictim, uint32 procAttacker, uint32 procVictim, uint32 procExtra, uint32 amount, WeaponAttackType attType, SpellEntry const *procSpell)
|
void Unit::ProcDamageAndSpell(Unit *pVictim, uint32 procAttacker, uint32 procVictim, uint32 procExtra, uint32 amount, WeaponAttackType attType, SpellEntry const *procSpell)
|
||||||
{
|
{
|
||||||
// Not much to do if no flags are set.
|
// Not much to do if no flags are set.
|
||||||
|
|
@ -4285,41 +4331,42 @@ void Unit::SendSpellMiss(Unit *target, uint32 spellID, SpellMissInfo missInfo)
|
||||||
|
|
||||||
void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo)
|
void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo)
|
||||||
{
|
{
|
||||||
uint32 count = 1;
|
sLog.outDebug("WORLD: Sending SMSG_ATTACKERSTATEUPDATE");
|
||||||
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, (16+45)); // we guess size
|
|
||||||
data << (uint32)damageInfo->HitInfo;
|
|
||||||
data.append(GetPackGUID());
|
|
||||||
data.append(damageInfo->target->GetPackGUID());
|
|
||||||
data << (uint32)(damageInfo->damage); // Full damage
|
|
||||||
data << uint32(0); // overkill value
|
|
||||||
|
|
||||||
data << (uint8)count; // Sub damage count
|
uint32 count = 1;
|
||||||
|
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, 16 + 45); // we guess size
|
||||||
|
data << uint32(damageInfo->HitInfo);
|
||||||
|
data.append(damageInfo->attacker->GetPackGUID());
|
||||||
|
data.append(damageInfo->target->GetPackGUID());
|
||||||
|
data << uint32(damageInfo->damage); // Full damage
|
||||||
|
data << uint32(0); // overkill value
|
||||||
|
data << uint8(count); // Sub damage count
|
||||||
|
|
||||||
for(int i = 0; i < count; ++i)
|
for(int i = 0; i < count; ++i)
|
||||||
{
|
{
|
||||||
data << (uint32)(damageInfo->damageSchoolMask); // School of sub damage
|
data << uint32(damageInfo->damageSchoolMask); // School of sub damage
|
||||||
data << (float)damageInfo->damage; // sub damage
|
data << float(damageInfo->damage); // sub damage
|
||||||
data << (uint32)damageInfo->damage; // Sub Damage
|
data << uint32(damageInfo->damage); // Sub Damage
|
||||||
}
|
}
|
||||||
|
|
||||||
if(damageInfo->HitInfo & (HITINFO_ABSORB | HITINFO_ABSORB2))
|
if(damageInfo->HitInfo & (HITINFO_ABSORB | HITINFO_ABSORB2))
|
||||||
{
|
{
|
||||||
for(int i = 0; i < count; ++i)
|
for(int i = 0; i < count; ++i)
|
||||||
data << (uint32)damageInfo->absorb; // Absorb
|
data << uint32(damageInfo->absorb); // Absorb
|
||||||
}
|
}
|
||||||
|
|
||||||
if(damageInfo->HitInfo & (HITINFO_RESIST | HITINFO_RESIST2))
|
if(damageInfo->HitInfo & (HITINFO_RESIST | HITINFO_RESIST2))
|
||||||
{
|
{
|
||||||
for(int i = 0; i < count; ++i)
|
for(int i = 0; i < count; ++i)
|
||||||
data << (uint32)damageInfo->resist; // Resist
|
data << uint32(damageInfo->resist); // Resist
|
||||||
}
|
}
|
||||||
|
|
||||||
data << (uint8)damageInfo->TargetState;
|
data << uint8(damageInfo->TargetState);
|
||||||
data << (uint32)0;
|
data << uint32(0);
|
||||||
data << (uint32)0;
|
data << uint32(0);
|
||||||
|
|
||||||
if(damageInfo->HitInfo & HITINFO_BLOCK)
|
if(damageInfo->HitInfo & HITINFO_BLOCK)
|
||||||
data << (uint32)damageInfo->blocked_amount;
|
data << uint32(damageInfo->blocked_amount);
|
||||||
|
|
||||||
if(damageInfo->HitInfo & HITINFO_UNK3)
|
if(damageInfo->HitInfo & HITINFO_UNK3)
|
||||||
data << uint32(0);
|
data << uint32(0);
|
||||||
|
|
@ -4348,71 +4395,17 @@ void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo)
|
||||||
|
|
||||||
void Unit::SendAttackStateUpdate(uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount)
|
void Unit::SendAttackStateUpdate(uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount)
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: Sending SMSG_ATTACKERSTATEUPDATE");
|
CalcDamageInfo dmgInfo;
|
||||||
|
dmgInfo.HitInfo = HitInfo;
|
||||||
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, (16+45)); // we guess size
|
dmgInfo.attacker = this;
|
||||||
data << uint32(HitInfo); // flags
|
dmgInfo.target = target;
|
||||||
data.append(GetPackGUID());
|
dmgInfo.damage = Damage - AbsorbDamage - Resist - BlockedAmount;
|
||||||
data.append(target->GetPackGUID());
|
dmgInfo.damageSchoolMask = damageSchoolMask;
|
||||||
data << uint32(Damage-AbsorbDamage-Resist-BlockedAmount);// damage
|
dmgInfo.absorb = AbsorbDamage;
|
||||||
data << uint32(0); // overkill value
|
dmgInfo.resist = Resist;
|
||||||
|
dmgInfo.TargetState = TargetState;
|
||||||
data << (uint8)SwingType; // count?
|
dmgInfo.blocked_amount = BlockedAmount;
|
||||||
|
SendAttackStateUpdate(&dmgInfo);
|
||||||
// for(i = 0; i < SwingType; ++i)
|
|
||||||
data << (uint32)damageSchoolMask;
|
|
||||||
data << (float)(Damage-AbsorbDamage-Resist-BlockedAmount);
|
|
||||||
data << (uint32)(Damage-AbsorbDamage-Resist-BlockedAmount);
|
|
||||||
// end loop
|
|
||||||
|
|
||||||
if(HitInfo & (HITINFO_ABSORB | HITINFO_ABSORB2))
|
|
||||||
{
|
|
||||||
// for(i = 0; i < SwingType; ++i)
|
|
||||||
data << uint32(AbsorbDamage);
|
|
||||||
// end loop
|
|
||||||
}
|
|
||||||
|
|
||||||
if(HitInfo & (HITINFO_RESIST | HITINFO_RESIST2))
|
|
||||||
{
|
|
||||||
// for(i = 0; i < SwingType; ++i)
|
|
||||||
data << uint32(Resist);
|
|
||||||
// end loop
|
|
||||||
}
|
|
||||||
|
|
||||||
data << (uint8)TargetState;
|
|
||||||
data << (uint32)0;
|
|
||||||
data << (uint32)0;
|
|
||||||
|
|
||||||
if(HitInfo & HITINFO_BLOCK)
|
|
||||||
{
|
|
||||||
data << uint32(BlockedAmount);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(HitInfo & HITINFO_UNK3)
|
|
||||||
{
|
|
||||||
data << uint32(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(HitInfo & HITINFO_UNK1)
|
|
||||||
{
|
|
||||||
data << uint32(0);
|
|
||||||
data << float(0);
|
|
||||||
data << float(0);
|
|
||||||
data << float(0);
|
|
||||||
data << float(0);
|
|
||||||
data << float(0);
|
|
||||||
data << float(0);
|
|
||||||
data << float(0);
|
|
||||||
data << float(0);
|
|
||||||
for(uint8 i = 0; i < 5; ++i)
|
|
||||||
{
|
|
||||||
data << float(0);
|
|
||||||
data << float(0);
|
|
||||||
}
|
|
||||||
data << uint32(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
SendMessageToSet( &data, true );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Unit::HandleHasteAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const * /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 cooldown)
|
bool Unit::HandleHasteAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const * /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 cooldown)
|
||||||
|
|
@ -6605,7 +6598,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
|
||||||
if( m_extraAttacks && IsSpellHaveEffect(triggerEntry, SPELL_EFFECT_ADD_EXTRA_ATTACKS) )
|
if( m_extraAttacks && IsSpellHaveEffect(triggerEntry, SPELL_EFFECT_ADD_EXTRA_ATTACKS) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Costum requirements (not listed in procEx) Warning! damage dealing after this
|
// Custom requirements (not listed in procEx) Warning! damage dealing after this
|
||||||
// Custom triggered spells
|
// Custom triggered spells
|
||||||
switch (auraSpellInfo->Id)
|
switch (auraSpellInfo->Id)
|
||||||
{
|
{
|
||||||
|
|
@ -6639,7 +6632,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
|
||||||
// Greater Heal Refund (Avatar Raiment set)
|
// Greater Heal Refund (Avatar Raiment set)
|
||||||
case 37594:
|
case 37594:
|
||||||
{
|
{
|
||||||
// Not give if target alredy have full health
|
// Not give if target already have full health
|
||||||
if (pVictim->GetHealth() == pVictim->GetMaxHealth())
|
if (pVictim->GetHealth() == pVictim->GetMaxHealth())
|
||||||
return false;
|
return false;
|
||||||
// If your Greater Heal brings the target to full health, you gain $37595s1 mana.
|
// If your Greater Heal brings the target to full health, you gain $37595s1 mana.
|
||||||
|
|
@ -6674,7 +6667,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Costum basepoints/target for exist spell
|
// Custom basepoints/target for exist spell
|
||||||
// dummy basepoints or other customs
|
// dummy basepoints or other customs
|
||||||
switch(trigger_spell_id)
|
switch(trigger_spell_id)
|
||||||
{
|
{
|
||||||
|
|
@ -6687,7 +6680,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
|
||||||
target = pVictim;
|
target = pVictim;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Combo points add triggers (need add combopoint only for main tatget, and after possible combopoints reset)
|
// Combo points add triggers (need add combopoint only for main target, and after possible combopoints reset)
|
||||||
case 15250: // Rogue Setup
|
case 15250: // Rogue Setup
|
||||||
{
|
{
|
||||||
if(!pVictim || pVictim != getVictim()) // applied only for main target
|
if(!pVictim || pVictim != getVictim()) // applied only for main target
|
||||||
|
|
@ -9402,7 +9395,7 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced)
|
||||||
void Unit::SetHover(bool on)
|
void Unit::SetHover(bool on)
|
||||||
{
|
{
|
||||||
if(on)
|
if(on)
|
||||||
CastSpell(this,11010,true);
|
CastSpell(this, 11010, true);
|
||||||
else
|
else
|
||||||
RemoveAurasDueToSpell(11010);
|
RemoveAurasDueToSpell(11010);
|
||||||
}
|
}
|
||||||
|
|
@ -10421,7 +10414,7 @@ bool CharmInfo::AddSpellToActionBar(uint32 spell_id, ActiveStates newstate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// or use empty slot in other case
|
// or use empty slot in other case
|
||||||
for(uint8 i = 0; i < MAX_UNIT_ACTION_BAR_INDEX; ++i)
|
for(uint8 i = 0; i < MAX_UNIT_ACTION_BAR_INDEX; ++i)
|
||||||
{
|
{
|
||||||
if (!PetActionBar[i].SpellOrAction && PetActionBar[i].IsActionBarForSpell())
|
if (!PetActionBar[i].SpellOrAction && PetActionBar[i].IsActionBarForSpell())
|
||||||
|
|
@ -10899,7 +10892,7 @@ void Unit::SendPetCastFail(uint32 spellid, SpellCastResult msg)
|
||||||
if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WorldPacket data(SMSG_PET_CAST_FAILED, (4+1));
|
WorldPacket data(SMSG_PET_CAST_FAILED, 1 + 4 + 1);
|
||||||
data << uint8(0); // cast count?
|
data << uint8(0); // cast count?
|
||||||
data << uint32(spellid);
|
data << uint32(spellid);
|
||||||
data << uint8(msg);
|
data << uint8(msg);
|
||||||
|
|
@ -10925,7 +10918,7 @@ void Unit::SendPetTalk (uint32 pettalk)
|
||||||
if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WorldPacket data(SMSG_PET_ACTION_SOUND, 8+4);
|
WorldPacket data(SMSG_PET_ACTION_SOUND, 8 + 4);
|
||||||
data << uint64(GetGUID());
|
data << uint64(GetGUID());
|
||||||
data << uint32(pettalk);
|
data << uint32(pettalk);
|
||||||
((Player*)owner)->GetSession()->SendPacket(&data);
|
((Player*)owner)->GetSession()->SendPacket(&data);
|
||||||
|
|
@ -10952,7 +10945,7 @@ void Unit::SendPetClearCooldown (uint32 spellid)
|
||||||
if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8));
|
WorldPacket data(SMSG_CLEAR_COOLDOWN, 4+8);
|
||||||
data << uint32(spellid);
|
data << uint32(spellid);
|
||||||
data << uint64(GetGUID());
|
data << uint64(GetGUID());
|
||||||
((Player*)owner)->GetSession()->SendPacket(&data);
|
((Player*)owner)->GetSession()->SendPacket(&data);
|
||||||
|
|
@ -10964,8 +10957,9 @@ void Unit::SendPetAIReaction(uint64 guid)
|
||||||
if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WorldPacket data(SMSG_AI_REACTION, 12);
|
WorldPacket data(SMSG_AI_REACTION, 8 + 4);
|
||||||
data << uint64(guid) << uint32(00000002);
|
data << uint64(guid);
|
||||||
|
data << uint32(AI_REACTION_AGGRO);
|
||||||
((Player*)owner)->GetSession()->SendPacket(&data);
|
((Player*)owner)->GetSession()->SendPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -10982,7 +10976,7 @@ void Unit::StopMoving()
|
||||||
// Relocate(GetPositionX(), GetPositionY(), z);
|
// Relocate(GetPositionX(), GetPositionY(), z);
|
||||||
Relocate(GetPositionX(), GetPositionY(),GetPositionZ());
|
Relocate(GetPositionX(), GetPositionY(),GetPositionZ());
|
||||||
|
|
||||||
SendMonsterMove(GetPositionX(), GetPositionY(), GetPositionZ(), 0, true, 0);
|
SendMonsterMove(GetPositionX(), GetPositionY(), GetPositionZ(), 0, 0, 0);
|
||||||
|
|
||||||
// update position and orientation;
|
// update position and orientation;
|
||||||
WorldPacket data;
|
WorldPacket data;
|
||||||
|
|
|
||||||
|
|
@ -597,6 +597,42 @@ enum MovementFlags
|
||||||
MOVEMENTFLAG_UNK3 = 0x40000000
|
MOVEMENTFLAG_UNK3 = 0x40000000
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum MonsterMovementFlags
|
||||||
|
{
|
||||||
|
MONSTER_MOVE_NONE = 0x00000000,
|
||||||
|
MONSTER_MOVE_FORWARD = 0x00000001,
|
||||||
|
MONSTER_MOVE_BACKWARD = 0x00000002,
|
||||||
|
MONSTER_MOVE_STRAFE_LEFT = 0x00000004,
|
||||||
|
MONSTER_MOVE_STRAFE_RIGHT = 0x00000008,
|
||||||
|
MONSTER_MOVE_LEFT = 0x00000010, // turn
|
||||||
|
MONSTER_MOVE_RIGHT = 0x00000020, // turn
|
||||||
|
MONSTER_MOVE_PITCH_UP = 0x00000040,
|
||||||
|
MONSTER_MOVE_PITCH_DOWN = 0x00000080,
|
||||||
|
MONSTER_MOVE_TELEPORT = 0x00000100,
|
||||||
|
MONSTER_MOVE_TELEPORT2 = 0x00000200,
|
||||||
|
MONSTER_MOVE_LEVITATING = 0x00000400,
|
||||||
|
MONSTER_MOVE_UNK1 = 0x00000800, // float+uint32
|
||||||
|
MONSTER_MOVE_WALK = 0x00001000, // run2?
|
||||||
|
MONSTER_MOVE_SPLINE = 0x00002000, // spline n*(float x,y,z)
|
||||||
|
// 0x4000, 0x8000, 0x10000, 0x20000 run
|
||||||
|
MONSTER_MOVE_SPLINE2 = 0x00040000, // spline n*(float x,y,z)
|
||||||
|
MONSTER_MOVE_UNK2 = 0x00080000, // used for flying mobs
|
||||||
|
MONSTER_MOVE_UNK3 = 0x00100000, // used for flying mobs
|
||||||
|
MONSTER_MOVE_UNK4 = 0x00200000, // uint8+uint32
|
||||||
|
MONSTER_MOVE_UNK5 = 0x00400000, // run in place, then teleport to final point
|
||||||
|
MONSTER_MOVE_UNK6 = 0x00800000, // teleport
|
||||||
|
MONSTER_MOVE_UNK7 = 0x01000000, // run
|
||||||
|
MONSTER_MOVE_FLY = 0x02000000, // swimming/flying (depends on mob?)
|
||||||
|
MONSTER_MOVE_UNK9 = 0x04000000, // run
|
||||||
|
MONSTER_MOVE_UNK10 = 0x08000000, // run
|
||||||
|
MONSTER_MOVE_UNK11 = 0x10000000, // run
|
||||||
|
MONSTER_MOVE_UNK12 = 0x20000000, // run
|
||||||
|
MONSTER_MOVE_UNK13 = 0x40000000, // levitating
|
||||||
|
|
||||||
|
// masks
|
||||||
|
MONSTER_MOVE_SPLINE_FLY = 0x00003000, // fly by points
|
||||||
|
};
|
||||||
|
|
||||||
enum DiminishingLevels
|
enum DiminishingLevels
|
||||||
{
|
{
|
||||||
DIMINISHING_LEVEL_1 = 0,
|
DIMINISHING_LEVEL_1 = 0,
|
||||||
|
|
@ -651,7 +687,7 @@ struct CalcDamageInfo
|
||||||
uint32 procAttacker;
|
uint32 procAttacker;
|
||||||
uint32 procVictim;
|
uint32 procVictim;
|
||||||
uint32 procEx;
|
uint32 procEx;
|
||||||
uint32 cleanDamage; // Used only fo rage calcultion
|
uint32 cleanDamage; // Used only for rage calculation
|
||||||
MeleeHitOutcome hitOutCome; // TODO: remove this field (need use TargetState)
|
MeleeHitOutcome hitOutCome; // TODO: remove this field (need use TargetState)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -678,6 +714,19 @@ struct SpellNonMeleeDamage{
|
||||||
uint32 cleanDamage;
|
uint32 cleanDamage;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct SpellPeriodicAuraLogInfo
|
||||||
|
{
|
||||||
|
SpellPeriodicAuraLogInfo(Aura *_aura, uint32 _damage, uint32 _overDamage, uint32 _absorb, uint32 _resist, float _multiplier)
|
||||||
|
: aura(_aura), damage(_damage), overDamage(_overDamage), absorb(_absorb), resist(_resist), multiplier(_multiplier) {}
|
||||||
|
|
||||||
|
Aura *aura;
|
||||||
|
uint32 damage;
|
||||||
|
uint32 absorb;
|
||||||
|
uint32 resist;
|
||||||
|
uint32 overDamage; // overkill/overheal
|
||||||
|
float multiplier;
|
||||||
|
};
|
||||||
|
|
||||||
uint32 createProcExtendMask(SpellNonMeleeDamage *damageInfo, SpellMissInfo missCondition);
|
uint32 createProcExtendMask(SpellNonMeleeDamage *damageInfo, SpellMissInfo missCondition);
|
||||||
|
|
||||||
#define MAX_DECLINED_NAME_CASES 5
|
#define MAX_DECLINED_NAME_CASES 5
|
||||||
|
|
@ -1075,7 +1124,8 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
|
||||||
void SendAttackStateUpdate(CalcDamageInfo *damageInfo);
|
void SendAttackStateUpdate(CalcDamageInfo *damageInfo);
|
||||||
void SendAttackStateUpdate(uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount);
|
void SendAttackStateUpdate(uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount);
|
||||||
void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log);
|
void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log);
|
||||||
void SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID,uint32 Damage, SpellSchoolMask damageSchoolMask,uint32 AbsorbedDamage, uint32 Resist,bool PhysicalDamage, uint32 Blocked, bool CriticalHit = false);
|
void SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID, uint32 Damage, SpellSchoolMask damageSchoolMask, uint32 AbsorbedDamage, uint32 Resist, bool PhysicalDamage, uint32 Blocked, bool CriticalHit = false);
|
||||||
|
void SendPeriodicAuraLog(SpellPeriodicAuraLogInfo *pInfo);
|
||||||
void SendSpellMiss(Unit *target, uint32 spellID, SpellMissInfo missInfo);
|
void SendSpellMiss(Unit *target, uint32 spellID, SpellMissInfo missInfo);
|
||||||
|
|
||||||
void NearTeleportTo(float x, float y, float z, float orientation, bool casting = false);
|
void NearTeleportTo(float x, float y, float z, float orientation, bool casting = false);
|
||||||
|
|
|
||||||
|
|
@ -101,24 +101,20 @@ void UpdateData::Compress(void* dst, uint32 *dst_size, void* src, int src_size)
|
||||||
*dst_size = c_stream.total_out;
|
*dst_size = c_stream.total_out;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UpdateData::BuildPacket(WorldPacket *packet, bool /*hasTransport*/)
|
bool UpdateData::BuildPacket(WorldPacket *packet)
|
||||||
{
|
{
|
||||||
ByteBuffer buf(m_data.size() + 10 + m_outOfRangeGUIDs.size()*8);
|
ByteBuffer buf(m_data.size());
|
||||||
|
|
||||||
buf << (uint32) (!m_outOfRangeGUIDs.empty() ? m_blockCount + 1 : m_blockCount);
|
buf << (uint32) (!m_outOfRangeGUIDs.empty() ? m_blockCount + 1 : m_blockCount);
|
||||||
//buf << (uint8) (hasTransport ? 1 : 0);
|
|
||||||
|
|
||||||
if(!m_outOfRangeGUIDs.empty())
|
if(!m_outOfRangeGUIDs.empty())
|
||||||
{
|
{
|
||||||
buf << (uint8) UPDATETYPE_OUT_OF_RANGE_OBJECTS;
|
buf << (uint8) UPDATETYPE_OUT_OF_RANGE_OBJECTS;
|
||||||
buf << (uint32) m_outOfRangeGUIDs.size();
|
buf << (uint32) m_outOfRangeGUIDs.size();
|
||||||
|
|
||||||
for(std::set<uint64>::const_iterator i = m_outOfRangeGUIDs.begin();
|
for(std::set<uint64>::const_iterator i = m_outOfRangeGUIDs.begin(); i != m_outOfRangeGUIDs.end(); ++i)
|
||||||
i != m_outOfRangeGUIDs.end(); ++i)
|
|
||||||
{
|
{
|
||||||
//buf.appendPackGUID(*i);
|
buf.appendPackGUID(*i);
|
||||||
buf << (uint8)0xFF;
|
|
||||||
buf << (uint64) *i;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,24 +122,23 @@ bool UpdateData::BuildPacket(WorldPacket *packet, bool /*hasTransport*/)
|
||||||
|
|
||||||
packet->clear();
|
packet->clear();
|
||||||
|
|
||||||
if (m_data.size() > 50 )
|
size_t pSize = buf.size();
|
||||||
|
|
||||||
|
if (pSize > 100 ) // compress large packets
|
||||||
{
|
{
|
||||||
uint32 destsize = buf.size() + buf.size()/10 + 16;
|
packet->resize(pSize);
|
||||||
packet->resize( destsize );
|
|
||||||
|
|
||||||
packet->put(0, (uint32)buf.size());
|
packet->put<uint32>(0, pSize);
|
||||||
|
|
||||||
Compress(const_cast<uint8*>(packet->contents()) + sizeof(uint32),
|
uint32 destsize = pSize;
|
||||||
&destsize,
|
Compress(const_cast<uint8*>(packet->contents()) + sizeof(uint32), &destsize, (void*)buf.contents(), pSize);
|
||||||
(void*)buf.contents(),
|
|
||||||
buf.size());
|
|
||||||
if (destsize == 0)
|
if (destsize == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
packet->resize( destsize + sizeof(uint32) );
|
packet->resize( destsize + sizeof(uint32) );
|
||||||
packet->SetOpcode( SMSG_COMPRESSED_UPDATE_OBJECT );
|
packet->SetOpcode( SMSG_COMPRESSED_UPDATE_OBJECT );
|
||||||
}
|
}
|
||||||
else
|
else // send small packets without compression
|
||||||
{
|
{
|
||||||
packet->append( buf );
|
packet->append( buf );
|
||||||
packet->SetOpcode( SMSG_UPDATE_OBJECT );
|
packet->SetOpcode( SMSG_UPDATE_OBJECT );
|
||||||
|
|
|
||||||
|
|
@ -33,15 +33,17 @@ enum OBJECT_UPDATE_TYPE
|
||||||
|
|
||||||
enum OBJECT_UPDATE_FLAGS
|
enum OBJECT_UPDATE_FLAGS
|
||||||
{
|
{
|
||||||
UPDATEFLAG_NONE = 0x00,
|
UPDATEFLAG_NONE = 0x0000,
|
||||||
UPDATEFLAG_SELF = 0x01,
|
UPDATEFLAG_SELF = 0x0001,
|
||||||
UPDATEFLAG_TRANSPORT = 0x02,
|
UPDATEFLAG_TRANSPORT = 0x0002,
|
||||||
UPDATEFLAG_HAS_TARGET = 0x04,
|
UPDATEFLAG_HAS_TARGET = 0x0004,
|
||||||
UPDATEFLAG_LOWGUID = 0x08,
|
UPDATEFLAG_LOWGUID = 0x0008,
|
||||||
UPDATEFLAG_HIGHGUID = 0x10,
|
UPDATEFLAG_HIGHGUID = 0x0010,
|
||||||
UPDATEFLAG_LIVING = 0x20,
|
UPDATEFLAG_LIVING = 0x0020,
|
||||||
UPDATEFLAG_HAS_POSITION = 0x40,
|
UPDATEFLAG_HAS_POSITION = 0x0040,
|
||||||
UPDATEFLAG_VEHICLE = 0x80
|
UPDATEFLAG_VEHICLE = 0x0080,
|
||||||
|
UPDATEFLAG_POSITION = 0x0100,
|
||||||
|
UPDATEFLAG_ROTATION = 0x0200
|
||||||
};
|
};
|
||||||
|
|
||||||
class UpdateData
|
class UpdateData
|
||||||
|
|
@ -52,7 +54,7 @@ class UpdateData
|
||||||
void AddOutOfRangeGUID(std::set<uint64>& guids);
|
void AddOutOfRangeGUID(std::set<uint64>& guids);
|
||||||
void AddOutOfRangeGUID(const uint64 &guid);
|
void AddOutOfRangeGUID(const uint64 &guid);
|
||||||
void AddUpdateBlock(const ByteBuffer &block);
|
void AddUpdateBlock(const ByteBuffer &block);
|
||||||
bool BuildPacket(WorldPacket *packet, bool hasTransport = false);
|
bool BuildPacket(WorldPacket *packet);
|
||||||
bool HasData() { return m_blockCount > 0 || !m_outOfRangeGUIDs.empty(); }
|
bool HasData() { return m_blockCount > 0 || !m_outOfRangeGUIDs.empty(); }
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,23 +22,23 @@
|
||||||
#include "Opcodes.h"
|
#include "Opcodes.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
|
|
||||||
void WorldSession::HandleVoiceSettingsOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleVoiceSessionEnableOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: CMSG_VOICE_SETTINGS");
|
sLog.outDebug("WORLD: CMSG_VOICE_SESSION_ENABLE");
|
||||||
// uint8 isVoiceEnabled, uint8 isMicrophoneEnabled
|
// uint8 isVoiceEnabled, uint8 isMicrophoneEnabled
|
||||||
recv_data.hexlike();
|
recv_data.hexlike();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChannelEnableVoiceOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleChannelVoiceOnOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: CMSG_CHANNEL_ENABLE_VOICE");
|
sLog.outDebug("WORLD: CMSG_CHANNEL_VOICE_ON");
|
||||||
// Enable Voice button in channel context menu
|
// Enable Voice button in channel context menu
|
||||||
recv_data.hexlike();
|
recv_data.hexlike();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleChannelVoiceChatQuery( WorldPacket & recv_data )
|
void WorldSession::HandleSetActiveVoiceChannel( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("WORLD: CMSG_CHANNEL_VOICE_CHAT_QUERY");
|
sLog.outDebug("WORLD: CMSG_SET_ACTIVE_VOICE_CHANNEL");
|
||||||
// uint32, string
|
// uint32, string
|
||||||
recv_data.hexlike();
|
recv_data.hexlike();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -184,7 +184,7 @@ bool WorldSession::Update(uint32 /*diff*/)
|
||||||
(this->*opHandle.handler)(*packet);
|
(this->*opHandle.handler)(*packet);
|
||||||
// lag can cause STATUS_LOGGEDIN opcodes to arrive after the player started a transfer
|
// lag can cause STATUS_LOGGEDIN opcodes to arrive after the player started a transfer
|
||||||
break;
|
break;
|
||||||
case STATUS_TRANSFER_PENDING:
|
case STATUS_TRANSFER:
|
||||||
if(!_player)
|
if(!_player)
|
||||||
logUnexpectedOpcode(packet, "the player has not logged in yet");
|
logUnexpectedOpcode(packet, "the player has not logged in yet");
|
||||||
else if(_player->IsInWorld())
|
else if(_player->IsInWorld())
|
||||||
|
|
@ -344,12 +344,12 @@ void WorldSession::LogoutPlayer(bool Save)
|
||||||
if(Save)
|
if(Save)
|
||||||
{
|
{
|
||||||
uint32 eslot;
|
uint32 eslot;
|
||||||
for(int j = BUYBACK_SLOT_START; j < BUYBACK_SLOT_END; j++)
|
for(int j = BUYBACK_SLOT_START; j < BUYBACK_SLOT_END; ++j)
|
||||||
{
|
{
|
||||||
eslot = j - BUYBACK_SLOT_START;
|
eslot = j - BUYBACK_SLOT_START;
|
||||||
_player->SetUInt64Value(PLAYER_FIELD_VENDORBUYBACK_SLOT_1+eslot*2,0);
|
_player->SetUInt64Value(PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + (eslot * 2), 0);
|
||||||
_player->SetUInt32Value(PLAYER_FIELD_BUYBACK_PRICE_1+eslot,0);
|
_player->SetUInt32Value(PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0);
|
||||||
_player->SetUInt32Value(PLAYER_FIELD_BUYBACK_TIMESTAMP_1+eslot,0);
|
_player->SetUInt32Value(PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, 0);
|
||||||
}
|
}
|
||||||
_player->SaveToDB();
|
_player->SaveToDB();
|
||||||
}
|
}
|
||||||
|
|
@ -692,22 +692,22 @@ void WorldSession::SendAddonsInfo()
|
||||||
|
|
||||||
for(AddonsList::iterator itr = m_addonsList.begin(); itr != m_addonsList.end(); ++itr)
|
for(AddonsList::iterator itr = m_addonsList.begin(); itr != m_addonsList.end(); ++itr)
|
||||||
{
|
{
|
||||||
uint8 state = (itr->Enabled ? 2 : 1);
|
uint8 state = 2; // 2 is sent here
|
||||||
data << uint8(state);
|
data << uint8(state);
|
||||||
|
|
||||||
uint8 unk1 = (itr->Enabled ? 1 : 0);
|
uint8 unk1 = 1; // 1 is sent here
|
||||||
data << uint8(unk1);
|
data << uint8(unk1);
|
||||||
if (unk1)
|
if (unk1)
|
||||||
{
|
{
|
||||||
uint8 unk2 = (itr->CRC != 0x4c1c776d); // If addon is Standard addon CRC
|
uint8 unk2 = (itr->CRC != 0x4c1c776d); // If addon is Standard addon CRC
|
||||||
data << uint8(unk2);
|
data << uint8(unk2);
|
||||||
if (unk2)
|
if (unk2) // if CRC is wrong, add public key (client need it)
|
||||||
data.append(tdata, sizeof(tdata));
|
data.append(tdata, sizeof(tdata));
|
||||||
|
|
||||||
data << uint32(0);
|
data << uint32(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8 unk3 = (itr->Enabled ? 0 : 1);
|
uint8 unk3 = 0; // 0 is sent here
|
||||||
data << uint8(unk3);
|
data << uint8(unk3);
|
||||||
if (unk3)
|
if (unk3)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -279,8 +279,8 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleMountSpecialAnimOpcode(WorldPacket &recvdata);
|
void HandleMountSpecialAnimOpcode(WorldPacket &recvdata);
|
||||||
|
|
||||||
// character view
|
// character view
|
||||||
void HandleToggleHelmOpcode(WorldPacket& recv_data);
|
void HandleShowingHelmOpcode(WorldPacket& recv_data);
|
||||||
void HandleToggleCloakOpcode(WorldPacket& recv_data);
|
void HandleShowingCloakOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
// repair
|
// repair
|
||||||
void HandleRepairItemOpcode(WorldPacket& recvPacket);
|
void HandleRepairItemOpcode(WorldPacket& recvPacket);
|
||||||
|
|
@ -307,7 +307,7 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleGMTicketCreateOpcode(WorldPacket& recvPacket);
|
void HandleGMTicketCreateOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGMTicketSystemStatusOpcode(WorldPacket& recvPacket);
|
void HandleGMTicketSystemStatusOpcode(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleGMTicketDeleteOpcode(WorldPacket& recvPacket);
|
void HandleGMTicketDeleteTicketOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGMTicketUpdateTextOpcode(WorldPacket& recvPacket);
|
void HandleGMTicketUpdateTextOpcode(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleGMSurveySubmit(WorldPacket& recvPacket);
|
void HandleGMSurveySubmit(WorldPacket& recvPacket);
|
||||||
|
|
@ -319,14 +319,14 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleSetSelectionOpcode(WorldPacket& recvPacket);
|
void HandleSetSelectionOpcode(WorldPacket& recvPacket);
|
||||||
void HandleStandStateChangeOpcode(WorldPacket& recvPacket);
|
void HandleStandStateChangeOpcode(WorldPacket& recvPacket);
|
||||||
void HandleEmoteOpcode(WorldPacket& recvPacket);
|
void HandleEmoteOpcode(WorldPacket& recvPacket);
|
||||||
void HandleFriendListOpcode(WorldPacket& recvPacket);
|
void HandleContactListOpcode(WorldPacket& recvPacket);
|
||||||
void HandleAddFriendOpcode(WorldPacket& recvPacket);
|
void HandleAddFriendOpcode(WorldPacket& recvPacket);
|
||||||
static void HandleAddFriendOpcodeCallBack(QueryResult *result, uint32 accountId, std::string friendNote);
|
static void HandleAddFriendOpcodeCallBack(QueryResult *result, uint32 accountId, std::string friendNote);
|
||||||
void HandleDelFriendOpcode(WorldPacket& recvPacket);
|
void HandleDelFriendOpcode(WorldPacket& recvPacket);
|
||||||
void HandleAddIgnoreOpcode(WorldPacket& recvPacket);
|
void HandleAddIgnoreOpcode(WorldPacket& recvPacket);
|
||||||
static void HandleAddIgnoreOpcodeCallBack(QueryResult *result, uint32 accountId);
|
static void HandleAddIgnoreOpcodeCallBack(QueryResult *result, uint32 accountId);
|
||||||
void HandleDelIgnoreOpcode(WorldPacket& recvPacket);
|
void HandleDelIgnoreOpcode(WorldPacket& recvPacket);
|
||||||
void HandleSetFriendNoteOpcode(WorldPacket& recvPacket);
|
void HandleSetContactNotesOpcode(WorldPacket& recvPacket);
|
||||||
void HandleBugOpcode(WorldPacket& recvPacket);
|
void HandleBugOpcode(WorldPacket& recvPacket);
|
||||||
void HandleSetAmmoOpcode(WorldPacket& recvPacket);
|
void HandleSetAmmoOpcode(WorldPacket& recvPacket);
|
||||||
void HandleItemNameQueryOpcode(WorldPacket& recvPacket);
|
void HandleItemNameQueryOpcode(WorldPacket& recvPacket);
|
||||||
|
|
@ -335,8 +335,8 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
|
|
||||||
void HandleSetFactionAtWar( WorldPacket & recv_data );
|
void HandleSetFactionAtWar( WorldPacket & recv_data );
|
||||||
void HandleSetFactionCheat( WorldPacket & recv_data );
|
void HandleSetFactionCheat( WorldPacket & recv_data );
|
||||||
void HandleSetWatchedFactionIndexOpcode(WorldPacket & recv_data);
|
void HandleSetWatchedFactionOpcode(WorldPacket & recv_data);
|
||||||
void HandleSetWatchedFactionInactiveOpcode(WorldPacket & recv_data);
|
void HandleSetFactionInactiveOpcode(WorldPacket & recv_data);
|
||||||
|
|
||||||
void HandleUpdateAccountData(WorldPacket& recvPacket);
|
void HandleUpdateAccountData(WorldPacket& recvPacket);
|
||||||
void HandleRequestAccountData(WorldPacket& recvPacket);
|
void HandleRequestAccountData(WorldPacket& recvPacket);
|
||||||
|
|
@ -372,21 +372,21 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
//void HandleGroupCancelOpcode(WorldPacket& recvPacket);
|
//void HandleGroupCancelOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGroupAcceptOpcode(WorldPacket& recvPacket);
|
void HandleGroupAcceptOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGroupDeclineOpcode(WorldPacket& recvPacket);
|
void HandleGroupDeclineOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGroupUninviteNameOpcode(WorldPacket& recvPacket);
|
void HandleGroupUninviteOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGroupUninviteGuidOpcode(WorldPacket& recvPacket);
|
void HandleGroupUninviteGuidOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGroupSetLeaderOpcode(WorldPacket& recvPacket);
|
void HandleGroupSetLeaderOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGroupLeaveOpcode(WorldPacket& recvPacket);
|
void HandleGroupDisbandOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGroupPassOnLootOpcode( WorldPacket &recv_data );
|
void HandleOptOutOfLootOpcode( WorldPacket &recv_data );
|
||||||
void HandleLootMethodOpcode(WorldPacket& recvPacket);
|
void HandleLootMethodOpcode(WorldPacket& recvPacket);
|
||||||
void HandleLootRoll( WorldPacket &recv_data );
|
void HandleLootRoll( WorldPacket &recv_data );
|
||||||
void HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data );
|
void HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data );
|
||||||
void HandleRaidIconTargetOpcode( WorldPacket & recv_data );
|
void HandleRaidTargetUpdateOpcode( WorldPacket & recv_data );
|
||||||
void HandleRaidReadyCheckOpcode( WorldPacket & recv_data );
|
void HandleRaidReadyCheckOpcode( WorldPacket & recv_data );
|
||||||
void HandleRaidReadyCheckFinishOpcode( WorldPacket & recv_data );
|
void HandleRaidReadyCheckFinishedOpcode( WorldPacket & recv_data );
|
||||||
void HandleRaidConvertOpcode( WorldPacket & recv_data );
|
void HandleGroupRaidConvertOpcode( WorldPacket & recv_data );
|
||||||
void HandleGroupChangeSubGroupOpcode( WorldPacket & recv_data );
|
void HandleGroupChangeSubGroupOpcode( WorldPacket & recv_data );
|
||||||
void HandleGroupAssistantOpcode( WorldPacket & recv_data );
|
void HandleGroupAssistantLeaderOpcode( WorldPacket & recv_data );
|
||||||
void HandleGroupPromoteOpcode( WorldPacket & recv_data );
|
void HandlePartyAssignmentOpcode( WorldPacket & recv_data );
|
||||||
|
|
||||||
void HandlePetitionBuyOpcode(WorldPacket& recv_data);
|
void HandlePetitionBuyOpcode(WorldPacket& recv_data);
|
||||||
void HandlePetitionShowSignOpcode(WorldPacket& recv_data);
|
void HandlePetitionShowSignOpcode(WorldPacket& recv_data);
|
||||||
|
|
@ -404,7 +404,7 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleGuildAcceptOpcode(WorldPacket& recvPacket);
|
void HandleGuildAcceptOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildDeclineOpcode(WorldPacket& recvPacket);
|
void HandleGuildDeclineOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildInfoOpcode(WorldPacket& recvPacket);
|
void HandleGuildInfoOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildEventLogOpcode(WorldPacket& recvPacket);
|
void HandleGuildEventLogQueryOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildRosterOpcode(WorldPacket& recvPacket);
|
void HandleGuildRosterOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildPromoteOpcode(WorldPacket& recvPacket);
|
void HandleGuildPromoteOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildDemoteOpcode(WorldPacket& recvPacket);
|
void HandleGuildDemoteOpcode(WorldPacket& recvPacket);
|
||||||
|
|
@ -417,14 +417,14 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleGuildRankOpcode(WorldPacket& recvPacket);
|
void HandleGuildRankOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildAddRankOpcode(WorldPacket& recvPacket);
|
void HandleGuildAddRankOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildDelRankOpcode(WorldPacket& recvPacket);
|
void HandleGuildDelRankOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildChangeInfoOpcode(WorldPacket& recvPacket);
|
void HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket);
|
||||||
void HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket);
|
void HandleSaveGuildEmblemOpcode(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleTaxiNodeStatusQueryOpcode(WorldPacket& recvPacket);
|
void HandleTaxiNodeStatusQueryOpcode(WorldPacket& recvPacket);
|
||||||
void HandleTaxiQueryAvailableNodes(WorldPacket& recvPacket);
|
void HandleTaxiQueryAvailableNodes(WorldPacket& recvPacket);
|
||||||
void HandleActivateTaxiOpcode(WorldPacket& recvPacket);
|
void HandleActivateTaxiOpcode(WorldPacket& recvPacket);
|
||||||
void HandleActivateTaxiFarOpcode(WorldPacket& recvPacket);
|
void HandleActivateTaxiExpressOpcode(WorldPacket& recvPacket);
|
||||||
void HandleTaxiNextDestinationOpcode(WorldPacket& recvPacket);
|
void HandleMoveSplineDoneOpcode(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket);
|
void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket);
|
||||||
void HandleBankerActivateOpcode(WorldPacket& recvPacket);
|
void HandleBankerActivateOpcode(WorldPacket& recvPacket);
|
||||||
|
|
@ -467,16 +467,16 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleAuctionPlaceBid( WorldPacket & recv_data );
|
void HandleAuctionPlaceBid( WorldPacket & recv_data );
|
||||||
void HandleAuctionListPendingSales( WorldPacket & recv_data );
|
void HandleAuctionListPendingSales( WorldPacket & recv_data );
|
||||||
|
|
||||||
void HandleGetMail( WorldPacket & recv_data );
|
void HandleGetMailList( WorldPacket & recv_data );
|
||||||
void HandleSendMail( WorldPacket & recv_data );
|
void HandleSendMail( WorldPacket & recv_data );
|
||||||
void HandleTakeMoney( WorldPacket & recv_data );
|
void HandleMailTakeMoney( WorldPacket & recv_data );
|
||||||
void HandleTakeItem( WorldPacket & recv_data );
|
void HandleMailTakeItem( WorldPacket & recv_data );
|
||||||
void HandleMarkAsRead( WorldPacket & recv_data );
|
void HandleMailMarkAsRead( WorldPacket & recv_data );
|
||||||
void HandleReturnToSender( WorldPacket & recv_data );
|
void HandleMailReturnToSender( WorldPacket & recv_data );
|
||||||
void HandleMailDelete( WorldPacket & recv_data );
|
void HandleMailDelete( WorldPacket & recv_data );
|
||||||
void HandleItemTextQuery( WorldPacket & recv_data);
|
void HandleItemTextQuery( WorldPacket & recv_data);
|
||||||
void HandleMailCreateTextItem(WorldPacket & recv_data );
|
void HandleMailCreateTextItem(WorldPacket & recv_data );
|
||||||
void HandleMsgQueryNextMailtime(WorldPacket & recv_data );
|
void HandleQueryNextMailTime(WorldPacket & recv_data );
|
||||||
void HandleCancelChanneling(WorldPacket & recv_data );
|
void HandleCancelChanneling(WorldPacket & recv_data );
|
||||||
|
|
||||||
void SendItemPageInfo( ItemPrototype *itemProto );
|
void SendItemPageInfo( ItemPrototype *itemProto );
|
||||||
|
|
@ -511,14 +511,14 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleCancelAutoRepeatSpellOpcode(WorldPacket& recvPacket);
|
void HandleCancelAutoRepeatSpellOpcode(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleLearnTalentOpcode(WorldPacket& recvPacket);
|
void HandleLearnTalentOpcode(WorldPacket& recvPacket);
|
||||||
void HandleTalentWipeOpcode(WorldPacket& recvPacket);
|
void HandleTalentWipeConfirmOpcode(WorldPacket& recvPacket);
|
||||||
void HandleUnlearnSkillOpcode(WorldPacket& recvPacket);
|
void HandleUnlearnSkillOpcode(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleQuestgiverStatusQueryOpcode(WorldPacket& recvPacket);
|
void HandleQuestgiverStatusQueryOpcode(WorldPacket& recvPacket);
|
||||||
void HandleQuestgiverStatusQueryMultipleOpcode(WorldPacket& recvPacket);
|
void HandleQuestgiverStatusMultipleQuery(WorldPacket& recvPacket);
|
||||||
void HandleQuestgiverHelloOpcode(WorldPacket& recvPacket);
|
void HandleQuestgiverHelloOpcode(WorldPacket& recvPacket);
|
||||||
void HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvPacket);
|
void HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvPacket);
|
||||||
void HandleQuestgiverQuestQueryOpcode(WorldPacket& recvPacket);
|
void HandleQuestgiverQueryQuestOpcode(WorldPacket& recvPacket);
|
||||||
void HandleQuestgiverChooseRewardOpcode(WorldPacket& recvPacket);
|
void HandleQuestgiverChooseRewardOpcode(WorldPacket& recvPacket);
|
||||||
void HandleQuestgiverRequestRewardOpcode(WorldPacket& recvPacket);
|
void HandleQuestgiverRequestRewardOpcode(WorldPacket& recvPacket);
|
||||||
void HandleQuestQueryOpcode(WorldPacket& recvPacket);
|
void HandleQuestQueryOpcode(WorldPacket& recvPacket);
|
||||||
|
|
@ -526,22 +526,22 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleQuestLogSwapQuest(WorldPacket& recv_data );
|
void HandleQuestLogSwapQuest(WorldPacket& recv_data );
|
||||||
void HandleQuestLogRemoveQuest(WorldPacket& recv_data);
|
void HandleQuestLogRemoveQuest(WorldPacket& recv_data);
|
||||||
void HandleQuestConfirmAccept(WorldPacket& recv_data);
|
void HandleQuestConfirmAccept(WorldPacket& recv_data);
|
||||||
void HandleQuestComplete(WorldPacket& recv_data);
|
void HandleQuestgiverCompleteQuest(WorldPacket& recv_data);
|
||||||
void HandleQuestAutoLaunch(WorldPacket& recvPacket);
|
void HandleQuestgiverQuestAutoLaunch(WorldPacket& recvPacket);
|
||||||
void HandleQuestPushToParty(WorldPacket& recvPacket);
|
void HandlePushQuestToParty(WorldPacket& recvPacket);
|
||||||
void HandleQuestPushResult(WorldPacket& recvPacket);
|
void HandleQuestPushResult(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleMessagechatOpcode(WorldPacket& recvPacket);
|
void HandleMessagechatOpcode(WorldPacket& recvPacket);
|
||||||
void HandleTextEmoteOpcode(WorldPacket& recvPacket);
|
void HandleTextEmoteOpcode(WorldPacket& recvPacket);
|
||||||
void HandleChatIgnoredOpcode(WorldPacket& recvPacket);
|
void HandleChatIgnoredOpcode(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleCorpseReclaimOpcode( WorldPacket& recvPacket );
|
void HandleReclaimCorpseOpcode( WorldPacket& recvPacket );
|
||||||
void HandleCorpseQueryOpcode( WorldPacket& recvPacket );
|
void HandleCorpseQueryOpcode( WorldPacket& recvPacket );
|
||||||
void HandleResurrectResponseOpcode(WorldPacket& recvPacket);
|
void HandleResurrectResponseOpcode(WorldPacket& recvPacket);
|
||||||
void HandleSummonResponseOpcode(WorldPacket& recv_data);
|
void HandleSummonResponseOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
void HandleChannelJoin(WorldPacket& recvPacket);
|
void HandleJoinChannel(WorldPacket& recvPacket);
|
||||||
void HandleChannelLeave(WorldPacket& recvPacket);
|
void HandleLeaveChannel(WorldPacket& recvPacket);
|
||||||
void HandleChannelList(WorldPacket& recvPacket);
|
void HandleChannelList(WorldPacket& recvPacket);
|
||||||
void HandleChannelPassword(WorldPacket& recvPacket);
|
void HandleChannelPassword(WorldPacket& recvPacket);
|
||||||
void HandleChannelSetOwner(WorldPacket& recvPacket);
|
void HandleChannelSetOwner(WorldPacket& recvPacket);
|
||||||
|
|
@ -554,17 +554,17 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleChannelKick(WorldPacket& recvPacket);
|
void HandleChannelKick(WorldPacket& recvPacket);
|
||||||
void HandleChannelBan(WorldPacket& recvPacket);
|
void HandleChannelBan(WorldPacket& recvPacket);
|
||||||
void HandleChannelUnban(WorldPacket& recvPacket);
|
void HandleChannelUnban(WorldPacket& recvPacket);
|
||||||
void HandleChannelAnnounce(WorldPacket& recvPacket);
|
void HandleChannelAnnouncements(WorldPacket& recvPacket);
|
||||||
void HandleChannelModerate(WorldPacket& recvPacket);
|
void HandleChannelModerate(WorldPacket& recvPacket);
|
||||||
void HandleChannelRosterQuery(WorldPacket& recvPacket);
|
void HandleChannelDisplayListQuery(WorldPacket& recvPacket);
|
||||||
void HandleChannelInfoQuery(WorldPacket& recvPacket);
|
void HandleGetChannelMemberCount(WorldPacket& recvPacket);
|
||||||
void HandleChannelJoinNotify(WorldPacket& recvPacket);
|
void HandleSetChannelWatch(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleCompleteCinema(WorldPacket& recvPacket);
|
void HandleCompleteCinematic(WorldPacket& recvPacket);
|
||||||
void HandleNextCinematicCamera(WorldPacket& recvPacket);
|
void HandleNextCinematicCamera(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandlePageQuerySkippedOpcode(WorldPacket& recvPacket);
|
void HandlePageQuerySkippedOpcode(WorldPacket& recvPacket);
|
||||||
void HandlePageQueryOpcode(WorldPacket& recvPacket);
|
void HandlePageTextQueryOpcode(WorldPacket& recvPacket);
|
||||||
|
|
||||||
void HandleTutorialFlag ( WorldPacket & recv_data );
|
void HandleTutorialFlag ( WorldPacket & recv_data );
|
||||||
void HandleTutorialClear( WorldPacket & recv_data );
|
void HandleTutorialClear( WorldPacket & recv_data );
|
||||||
|
|
@ -582,24 +582,24 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandlePetCastSpellOpcode( WorldPacket& recvPacket );
|
void HandlePetCastSpellOpcode( WorldPacket& recvPacket );
|
||||||
void HandlePetLearnTalent( WorldPacket& recvPacket );
|
void HandlePetLearnTalent( WorldPacket& recvPacket );
|
||||||
|
|
||||||
void HandleSetActionBar(WorldPacket& recv_data);
|
void HandleSetActionBarToggles(WorldPacket& recv_data);
|
||||||
|
|
||||||
void HandleChangePlayerNameOpcode(WorldPacket& recv_data);
|
void HandleCharRenameOpcode(WorldPacket& recv_data);
|
||||||
static void HandleChangePlayerNameOpcodeCallBack(QueryResult *result, uint32 accountId, std::string newname);
|
static void HandleChangePlayerNameOpcodeCallBack(QueryResult *result, uint32 accountId, std::string newname);
|
||||||
void HandleDeclinedPlayerNameOpcode(WorldPacket& recv_data);
|
void HandleSetPlayerDeclinedNames(WorldPacket& recv_data);
|
||||||
|
|
||||||
void HandleTotemDestroy(WorldPacket& recv_data);
|
void HandleTotemDestroyed(WorldPacket& recv_data);
|
||||||
|
|
||||||
//BattleGround
|
//BattleGround
|
||||||
void HandleBattleGroundHelloOpcode(WorldPacket &recv_data);
|
void HandleBattlemasterHelloOpcode(WorldPacket &recv_data);
|
||||||
void HandleBattleGroundJoinOpcode(WorldPacket &recv_data);
|
void HandleBattlemasterJoinOpcode(WorldPacket &recv_data);
|
||||||
void HandleBattleGroundPlayerPositionsOpcode(WorldPacket& recv_data);
|
void HandleBattleGroundPlayerPositionsOpcode(WorldPacket& recv_data);
|
||||||
void HandleBattleGroundPVPlogdataOpcode( WorldPacket &recv_data );
|
void HandlePVPLogDataOpcode( WorldPacket &recv_data );
|
||||||
void HandleBattleGroundPlayerPortOpcode( WorldPacket &recv_data );
|
void HandleBattleFieldPortOpcode( WorldPacket &recv_data );
|
||||||
void HandleBattleGroundListOpcode( WorldPacket &recv_data );
|
void HandleBattlefieldListOpcode( WorldPacket &recv_data );
|
||||||
void HandleBattleGroundLeaveOpcode( WorldPacket &recv_data );
|
void HandleLeaveBattlefieldOpcode( WorldPacket &recv_data );
|
||||||
void HandleBattleGroundArenaJoin( WorldPacket &recv_data );
|
void HandleBattlemasterJoinArena( WorldPacket &recv_data );
|
||||||
void HandleBattleGroundReportAFK( WorldPacket &recv_data );
|
void HandleReportPvPAFK( WorldPacket &recv_data );
|
||||||
|
|
||||||
void HandleWardenDataOpcode(WorldPacket& recv_data);
|
void HandleWardenDataOpcode(WorldPacket& recv_data);
|
||||||
void HandleWorldTeleportOpcode(WorldPacket& recv_data);
|
void HandleWorldTeleportOpcode(WorldPacket& recv_data);
|
||||||
|
|
@ -607,64 +607,64 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleRandomRollOpcode(WorldPacket& recv_data);
|
void HandleRandomRollOpcode(WorldPacket& recv_data);
|
||||||
void HandleFarSightOpcode(WorldPacket& recv_data);
|
void HandleFarSightOpcode(WorldPacket& recv_data);
|
||||||
void HandleSetLfgOpcode(WorldPacket& recv_data);
|
void HandleSetLfgOpcode(WorldPacket& recv_data);
|
||||||
void HandleDungeonDifficultyOpcode(WorldPacket& recv_data);
|
void HandleSetDungeonDifficultyOpcode(WorldPacket& recv_data);
|
||||||
void HandleMoveFlyModeChangeAckOpcode(WorldPacket& recv_data);
|
void HandleMoveSetCanFlyAckOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfgAutoJoinOpcode(WorldPacket& recv_data);
|
void HandleLfgSetAutoJoinOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfgCancelAutoJoinOpcode(WorldPacket& recv_data);
|
void HandleLfgClearAutoJoinOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfmAutoAddMembersOpcode(WorldPacket& recv_data);
|
void HandleLfmSetAutoFillOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfmCancelAutoAddmembersOpcode(WorldPacket& recv_data);
|
void HandleLfmClearAutoFillOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfgClearOpcode(WorldPacket& recv_data);
|
void HandleLfgClearOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfmSetNoneOpcode(WorldPacket& recv_data);
|
void HandleLfmClearOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfmSetOpcode(WorldPacket& recv_data);
|
void HandleSetLfmOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfgSetCommentOpcode(WorldPacket& recv_data);
|
void HandleSetLfgCommentOpcode(WorldPacket& recv_data);
|
||||||
void HandleChooseTitleOpcode(WorldPacket& recv_data);
|
void HandleSetTitleOpcode(WorldPacket& recv_data);
|
||||||
void HandleRealmStateRequestOpcode(WorldPacket& recv_data);
|
void HandleRealmSplitOpcode(WorldPacket& recv_data);
|
||||||
void HandleTimeSyncResp(WorldPacket& recv_data);
|
void HandleTimeSyncResp(WorldPacket& recv_data);
|
||||||
void HandleWhoisOpcode(WorldPacket& recv_data);
|
void HandleWhoisOpcode(WorldPacket& recv_data);
|
||||||
void HandleResetInstancesOpcode(WorldPacket& recv_data);
|
void HandleResetInstancesOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
// Arena Team
|
// Arena Team
|
||||||
void HandleInspectArenaStatsOpcode(WorldPacket& recv_data);
|
void HandleInspectArenaTeamsOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamQueryOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamQueryOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamRosterOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamRosterOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamAddMemberOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamInviteOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamInviteAcceptOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamAcceptOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamInviteDeclineOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamDeclineOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamLeaveOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamLeaveOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamRemoveFromTeamOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamRemoveOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamDisbandOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamDisbandOpcode(WorldPacket& recv_data);
|
||||||
void HandleArenaTeamPromoteToCaptainOpcode(WorldPacket& recv_data);
|
void HandleArenaTeamLeaderOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
void HandleAreaSpiritHealerQueryOpcode(WorldPacket& recv_data);
|
void HandleAreaSpiritHealerQueryOpcode(WorldPacket& recv_data);
|
||||||
void HandleAreaSpiritHealerQueueOpcode(WorldPacket& recv_data);
|
void HandleAreaSpiritHealerQueueOpcode(WorldPacket& recv_data);
|
||||||
void HandleDismountOpcode(WorldPacket& recv_data);
|
void HandleCancelMountAuraOpcode(WorldPacket& recv_data);
|
||||||
void HandleSelfResOpcode(WorldPacket& recv_data);
|
void HandleSelfResOpcode(WorldPacket& recv_data);
|
||||||
void HandleReportSpamOpcode(WorldPacket& recv_data);
|
void HandleComplainOpcode(WorldPacket& recv_data);
|
||||||
void HandleRequestPetInfoOpcode(WorldPacket& recv_data);
|
void HandleRequestPetInfoOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
// Socket gem
|
// Socket gem
|
||||||
void HandleSocketOpcode(WorldPacket& recv_data);
|
void HandleSocketOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
void HandleCancelTempItemEnchantmentOpcode(WorldPacket& recv_data);
|
void HandleCancelTempEnchantmentOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
void HandleChannelEnableVoiceOpcode(WorldPacket & recv_data);
|
void HandleChannelVoiceOnOpcode(WorldPacket & recv_data);
|
||||||
void HandleVoiceSettingsOpcode(WorldPacket& recv_data);
|
void HandleVoiceSessionEnableOpcode(WorldPacket& recv_data);
|
||||||
void HandleChannelVoiceChatQuery(WorldPacket& recv_data);
|
void HandleSetActiveVoiceChannel(WorldPacket& recv_data);
|
||||||
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recv_data);
|
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
// Guild Bank
|
// Guild Bank
|
||||||
void HandleGuildBankGetRights(WorldPacket& recv_data);
|
void HandleGuildPermissions(WorldPacket& recv_data);
|
||||||
void HandleGuildBankGetMoneyAmount(WorldPacket& recv_data);
|
void HandleGuildBankMoneyWithdrawn(WorldPacket& recv_data);
|
||||||
void HandleGuildBankQuery(WorldPacket& recv_data);
|
void HandleGuildBankerActivate(WorldPacket& recv_data);
|
||||||
void HandleGuildBankTabColon(WorldPacket& recv_data);
|
void HandleGuildBankQueryTab(WorldPacket& recv_data);
|
||||||
void HandleGuildBankLog(WorldPacket& recv_data);
|
void HandleGuildBankLogQuery(WorldPacket& recv_data);
|
||||||
void HandleGuildBankDeposit(WorldPacket& recv_data);
|
void HandleGuildBankDepositMoney(WorldPacket& recv_data);
|
||||||
void HandleGuildBankWithdraw(WorldPacket& recv_data);
|
void HandleGuildBankWithdrawMoney(WorldPacket& recv_data);
|
||||||
void HandleGuildBankDepositItem(WorldPacket& recv_data);
|
void HandleGuildBankSwapItems(WorldPacket& recv_data);
|
||||||
void HandleGuildBankModifyTab(WorldPacket& recv_data);
|
void HandleGuildBankUpdateTab(WorldPacket& recv_data);
|
||||||
void HandleGuildBankBuyTab(WorldPacket& recv_data);
|
void HandleGuildBankBuyTab(WorldPacket& recv_data);
|
||||||
void HandleGuildBankTabText(WorldPacket& recv_data);
|
void HandleQueryGuildBankTabText(WorldPacket& recv_data);
|
||||||
void HandleGuildBankSetTabText(WorldPacket& recv_data);
|
void HandleSetGuildBankTabText(WorldPacket& recv_data);
|
||||||
|
|
||||||
// Calendar
|
// Calendar
|
||||||
void HandleCalendarGetCalendar(WorldPacket& recv_data);
|
void HandleCalendarGetCalendar(WorldPacket& recv_data);
|
||||||
|
|
@ -687,7 +687,7 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleAlterAppearance(WorldPacket& recv_data);
|
void HandleAlterAppearance(WorldPacket& recv_data);
|
||||||
void HandleRemoveGlyph(WorldPacket& recv_data);
|
void HandleRemoveGlyph(WorldPacket& recv_data);
|
||||||
void HandleCharCustomize(WorldPacket& recv_data);
|
void HandleCharCustomize(WorldPacket& recv_data);
|
||||||
void HandleInspectAchievements(WorldPacket& recv_data);
|
void HandleQueryInspectAchievements(WorldPacket& recv_data);
|
||||||
private:
|
private:
|
||||||
// private trade methods
|
// private trade methods
|
||||||
void moveItems(Item* myItems[], Item* hisItems[]);
|
void moveItems(Item* myItems[], Item* hisItems[]);
|
||||||
|
|
|
||||||
|
|
@ -1117,7 +1117,6 @@ Rate.Talent = 1
|
||||||
Rate.Reputation.Gain = 1
|
Rate.Reputation.Gain = 1
|
||||||
Rate.Reputation.LowLevel.Kill = 1
|
Rate.Reputation.LowLevel.Kill = 1
|
||||||
Rate.Reputation.LowLevel.Quest = 1
|
Rate.Reputation.LowLevel.Quest = 1
|
||||||
|
|
||||||
Rate.InstanceResetTime = 1
|
Rate.InstanceResetTime = 1
|
||||||
SkillGain.Crafting = 1
|
SkillGain.Crafting = 1
|
||||||
SkillGain.Defense = 1
|
SkillGain.Defense = 1
|
||||||
|
|
@ -1139,7 +1138,6 @@ Death.CorpseReclaimDelay.PvE = 1
|
||||||
Death.Bones.World = 1
|
Death.Bones.World = 1
|
||||||
Death.Bones.BattlegroundOrArena = 1
|
Death.Bones.BattlegroundOrArena = 1
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################################
|
###################################################################################################################
|
||||||
# BATTLEGROUND CONFIG
|
# BATTLEGROUND CONFIG
|
||||||
#
|
#
|
||||||
|
|
@ -1182,7 +1180,6 @@ Battleground.InvitationType = 0
|
||||||
BattleGround.PrematureFinishTimer = 300000
|
BattleGround.PrematureFinishTimer = 300000
|
||||||
BattleGround.PremadeGroupWaitForMatch = 1800000
|
BattleGround.PremadeGroupWaitForMatch = 1800000
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################################
|
###################################################################################################################
|
||||||
# ARENA CONFIG
|
# ARENA CONFIG
|
||||||
#
|
#
|
||||||
|
|
@ -1232,7 +1229,6 @@ Arena.QueueAnnouncer.Enable = 0
|
||||||
Arena.ArenaSeason.ID = 1
|
Arena.ArenaSeason.ID = 1
|
||||||
Arena.ArenaSeason.InProgress = 1
|
Arena.ArenaSeason.InProgress = 1
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################################
|
###################################################################################################################
|
||||||
# NETWORK CONFIG
|
# NETWORK CONFIG
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -407,7 +407,7 @@ bool AuthSocket::_HandleLogonChallenge()
|
||||||
{
|
{
|
||||||
///- If the IP is 'locked', check that the player comes indeed from the correct IP address
|
///- If the IP is 'locked', check that the player comes indeed from the correct IP address
|
||||||
bool locked = false;
|
bool locked = false;
|
||||||
if((*result)[2].GetUInt8() == 1) // if ip is locked
|
if((*result)[2].GetUInt8() == 1) // if ip is locked
|
||||||
{
|
{
|
||||||
DEBUG_LOG("[AuthChallenge] Account '%s' is locked to IP - '%s'", _login.c_str(), (*result)[3].GetString());
|
DEBUG_LOG("[AuthChallenge] Account '%s' is locked to IP - '%s'", _login.c_str(), (*result)[3].GetString());
|
||||||
DEBUG_LOG("[AuthChallenge] Player address is '%s'", GetRemoteAddress().c_str());
|
DEBUG_LOG("[AuthChallenge] Player address is '%s'", GetRemoteAddress().c_str());
|
||||||
|
|
@ -466,15 +466,15 @@ bool AuthSocket::_HandleLogonChallenge()
|
||||||
///- Fill the response packet with the result
|
///- Fill the response packet with the result
|
||||||
pkt << (uint8)REALM_AUTH_SUCCESS;
|
pkt << (uint8)REALM_AUTH_SUCCESS;
|
||||||
|
|
||||||
// B may be calculated < 32B so we force minnimal length to 32B
|
// B may be calculated < 32B so we force minimal length to 32B
|
||||||
pkt.append(B.AsByteArray(32), 32); // 32 bytes
|
pkt.append(B.AsByteArray(32), 32); // 32 bytes
|
||||||
pkt << (uint8)1;
|
pkt << (uint8)1;
|
||||||
pkt.append(g.AsByteArray(), 1);
|
pkt.append(g.AsByteArray(), 1);
|
||||||
pkt << (uint8)32;
|
pkt << (uint8)32;
|
||||||
pkt.append(N.AsByteArray(), 32);
|
pkt.append(N.AsByteArray(), 32);
|
||||||
pkt.append(s.AsByteArray(), s.GetNumBytes()); // 32 bytes
|
pkt.append(s.AsByteArray(), s.GetNumBytes());// 32 bytes
|
||||||
pkt.append(unk3.AsByteArray(), 16);
|
pkt.append(unk3.AsByteArray(), 16);
|
||||||
pkt << (uint8)0; // Added in 1.12.x client branch
|
pkt << (uint8)0; // security flags (0x0...0x04)
|
||||||
|
|
||||||
uint8 secLevel = (*result)[4].GetUInt8();
|
uint8 secLevel = (*result)[4].GetUInt8();
|
||||||
_accountSecurityLevel = secLevel <= SEC_ADMINISTRATOR ? AccountTypes(secLevel) : SEC_ADMINISTRATOR;
|
_accountSecurityLevel = secLevel <= SEC_ADMINISTRATOR ? AccountTypes(secLevel) : SEC_ADMINISTRATOR;
|
||||||
|
|
@ -488,7 +488,7 @@ bool AuthSocket::_HandleLogonChallenge()
|
||||||
}
|
}
|
||||||
delete result;
|
delete result;
|
||||||
}
|
}
|
||||||
else //no account
|
else // no account
|
||||||
{
|
{
|
||||||
pkt<< (uint8) REALM_AUTH_NO_MATCH;
|
pkt<< (uint8) REALM_AUTH_NO_MATCH;
|
||||||
}
|
}
|
||||||
|
|
@ -553,7 +553,7 @@ bool AuthSocket::_HandleLogonProof()
|
||||||
DEBUG_LOG("\n[AuthChallenge] Found precached patch info for patch %s",tmp);
|
DEBUG_LOG("\n[AuthChallenge] Found precached patch info for patch %s",tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ //calculate patch md5
|
{ // calculate patch md5
|
||||||
printf("\n[AuthChallenge] Patch info for %s was not cached.",tmp);
|
printf("\n[AuthChallenge] Patch info for %s was not cached.",tmp);
|
||||||
PatchesCache.LoadPatchMD5(tmp);
|
PatchesCache.LoadPatchMD5(tmp);
|
||||||
PatchesCache.GetHash(tmp,(uint8*)&xferh.md5);
|
PatchesCache.GetHash(tmp,(uint8*)&xferh.md5);
|
||||||
|
|
@ -869,9 +869,9 @@ bool AuthSocket::_HandleRealmList()
|
||||||
|
|
||||||
uint8 lock = (i->second.allowedSecurityLevel > _accountSecurityLevel) ? 1 : 0;
|
uint8 lock = (i->second.allowedSecurityLevel > _accountSecurityLevel) ? 1 : 0;
|
||||||
|
|
||||||
pkt << i->second.icon; // realm type
|
pkt << i->second.icon; // realm type
|
||||||
pkt << lock; // if 1, then realm locked
|
pkt << lock; // if 1, then realm locked
|
||||||
pkt << i->second.color; // if 2, then realm is offline
|
pkt << i->second.color; // if 2, then realm is offline
|
||||||
pkt << i->first;
|
pkt << i->first;
|
||||||
pkt << i->second.address;
|
pkt << i->second.address;
|
||||||
pkt << i->second.populationLevel;
|
pkt << i->second.populationLevel;
|
||||||
|
|
@ -921,7 +921,7 @@ bool AuthSocket::_HandleXferCancel()
|
||||||
DEBUG_LOG("Entering _HandleXferCancel");
|
DEBUG_LOG("Entering _HandleXferCancel");
|
||||||
|
|
||||||
///- Close and delete the socket
|
///- Close and delete the socket
|
||||||
ibuf.Remove(1); //clear input buffer
|
ibuf.Remove(1); // clear input buffer
|
||||||
|
|
||||||
SetCloseAndDelete();
|
SetCloseAndDelete();
|
||||||
|
|
||||||
|
|
@ -941,7 +941,7 @@ bool AuthSocket::_HandleXferAccept()
|
||||||
}
|
}
|
||||||
|
|
||||||
///- Launch a PatcherRunnable thread, starting at the begining of the patch file
|
///- Launch a PatcherRunnable thread, starting at the begining of the patch file
|
||||||
ibuf.Remove(1); //clear input buffer
|
ibuf.Remove(1); // clear input buffer
|
||||||
fseek(pPatch,0,0);
|
fseek(pPatch,0,0);
|
||||||
|
|
||||||
ACE_Based::Thread u(*new PatcherRunnable(this));
|
ACE_Based::Thread u(*new PatcherRunnable(this));
|
||||||
|
|
@ -1023,7 +1023,7 @@ void Patcher::LoadPatchesInfo()
|
||||||
WIN32_FIND_DATA fil;
|
WIN32_FIND_DATA fil;
|
||||||
HANDLE hFil=FindFirstFile("./patches/*.mpq",&fil);
|
HANDLE hFil=FindFirstFile("./patches/*.mpq",&fil);
|
||||||
if(hFil==INVALID_HANDLE_VALUE)
|
if(hFil==INVALID_HANDLE_VALUE)
|
||||||
return; //no patches were found
|
return; // no patches were found
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7910"
|
#define REVISION_NR "7911"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue