mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
Implemented achievement inspection
This commit is contained in:
parent
a1d83ebc6f
commit
2af3c01a23
4 changed files with 22 additions and 3 deletions
|
|
@ -220,7 +220,7 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
|
||||||
void AchievementMgr::SendAllAchievementData()
|
void AchievementMgr::SendAllAchievementData()
|
||||||
{
|
{
|
||||||
// since we don't know the exact size of the packed GUIDs this is just an approximation
|
// since we don't know the exact size of the packed GUIDs this is just an approximation
|
||||||
WorldPacket data(SMSG_ALL_ACHIEVEMENT_DATA,4*2+m_completedAchievements.size()*4*2+m_completedAchievements.size()*7*4);
|
WorldPacket data(SMSG_ALL_ACHIEVEMENT_DATA, 4*2+m_completedAchievements.size()*4*2+m_completedAchievements.size()*7*4);
|
||||||
BuildAllDataPacket(&data);
|
BuildAllDataPacket(&data);
|
||||||
GetPlayer()->GetSession()->SendPacket(&data);
|
GetPlayer()->GetSession()->SendPacket(&data);
|
||||||
}
|
}
|
||||||
|
|
@ -228,7 +228,7 @@ void AchievementMgr::SendAllAchievementData()
|
||||||
void AchievementMgr::SendRespondInspectAchievements(Player* player)
|
void AchievementMgr::SendRespondInspectAchievements(Player* player)
|
||||||
{
|
{
|
||||||
// since we don't know the exact size of the packed GUIDs this is just an approximation
|
// since we don't know the exact size of the packed GUIDs this is just an approximation
|
||||||
WorldPacket data(SMSG_ALL_ACHIEVEMENT_DATA,4+4*2+m_completedAchievements.size()*4*2+m_completedAchievements.size()*7*4);
|
WorldPacket data(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, 4+4*2+m_completedAchievements.size()*4*2+m_completedAchievements.size()*7*4);
|
||||||
data.append(GetPlayer()->GetPackGUID());
|
data.append(GetPlayer()->GetPackGUID());
|
||||||
BuildAllDataPacket(&data);
|
BuildAllDataPacket(&data);
|
||||||
player->GetSession()->SendPacket(&data);
|
player->GetSession()->SendPacket(&data);
|
||||||
|
|
@ -245,6 +245,7 @@ void AchievementMgr::BuildAllDataPacket(WorldPacket *data)
|
||||||
*data << uint32(secsToTimeBitFields(iter->second));
|
*data << uint32(secsToTimeBitFields(iter->second));
|
||||||
}
|
}
|
||||||
*data << int32(-1);
|
*data << int32(-1);
|
||||||
|
|
||||||
for(CriteriaProgressMap::iterator iter = m_criteriaProgress.begin(); iter!=m_criteriaProgress.end(); ++iter)
|
for(CriteriaProgressMap::iterator iter = m_criteriaProgress.begin(); iter!=m_criteriaProgress.end(); ++iter)
|
||||||
{
|
{
|
||||||
*data << uint32(iter->first);
|
*data << uint32(iter->first);
|
||||||
|
|
@ -255,6 +256,7 @@ void AchievementMgr::BuildAllDataPacket(WorldPacket *data)
|
||||||
*data << uint32(0);
|
*data << uint32(0);
|
||||||
*data << uint32(0);
|
*data << uint32(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
*data << int32(-1);
|
*data << int32(-1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
#include "SpellAuras.h"
|
#include "SpellAuras.h"
|
||||||
#include "Pet.h"
|
#include "Pet.h"
|
||||||
#include "SocialMgr.h"
|
#include "SocialMgr.h"
|
||||||
|
#include "Tools.h"
|
||||||
|
|
||||||
void WorldSession::HandleRepopRequestOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleRepopRequestOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
|
|
@ -1850,3 +1851,18 @@ void WorldSession::HandleSpellClick( WorldPacket & recv_data )
|
||||||
_player->SetUInt64Value(UNIT_FIELD_CHARM, guid);
|
_player->SetUInt64Value(UNIT_FIELD_CHARM, guid);
|
||||||
_player->SetUInt64Value(PLAYER_FARSIGHT, guid);
|
_player->SetUInt64Value(PLAYER_FARSIGHT, guid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WorldSession::HandleInspectAchievements( WorldPacket & recv_data )
|
||||||
|
{
|
||||||
|
sLog.outString("WorldSession::HandleInspectAchievements");
|
||||||
|
uint64 guid;
|
||||||
|
if(!readGUID(recv_data, guid))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Player *player = objmgr.GetPlayer(guid);
|
||||||
|
if(!player)
|
||||||
|
return;
|
||||||
|
|
||||||
|
player->GetAchievementMgr().SendRespondInspectAchievements(_player);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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_NEVER, &WorldSession::Handle_NULL },
|
/*0x46B*/ { "CMSG_QUERY_INSPECT_ACHIEVEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleInspectAchievements },
|
||||||
/*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_NEVER, &WorldSession::Handle_NULL },
|
/*0x46D*/ { "CMSG_DISMISS_CONTROLLED_VEHICLE", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
/*0x46E*/ { "CMSG_COMPLETE_ACHIEVEMENT_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
/*0x46E*/ { "CMSG_COMPLETE_ACHIEVEMENT_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
|
||||||
|
|
|
||||||
|
|
@ -654,6 +654,7 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleSpellClick(WorldPacket& recv_data);
|
void HandleSpellClick(WorldPacket& recv_data);
|
||||||
void HandleAlterAppearance(WorldPacket& recv_data);
|
void HandleAlterAppearance(WorldPacket& recv_data);
|
||||||
void HandleRemoveGlyph(WorldPacket& recv_data);
|
void HandleRemoveGlyph(WorldPacket& recv_data);
|
||||||
|
void HandleInspectAchievements(WorldPacket& recv_data);
|
||||||
private:
|
private:
|
||||||
// private trade methods
|
// private trade methods
|
||||||
void moveItems(Item* myItems[], Item* hisItems[]);
|
void moveItems(Item* myItems[], Item* hisItems[]);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue