Core/PacketIO: Updated SMSG_LOGIN_VERIFY_WORLD

This commit is contained in:
Shauren
2014-11-03 20:25:21 +01:00
parent b8d1d9a733
commit 7256c7c2c7
4 changed files with 26 additions and 9 deletions

View File

@@ -814,20 +814,17 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
pCurrChar->GetMotionMaster()->Initialize();
pCurrChar->SendDungeonDifficulty(false);
WorldPacket data(SMSG_LOGIN_VERIFY_WORLD, 20);
data << pCurrChar->GetMapId();
data << pCurrChar->GetPositionX();
data << pCurrChar->GetPositionY();
data << pCurrChar->GetPositionZ();
data << pCurrChar->GetOrientation();
SendPacket(&data);
WorldPackets::Character::LoginVerifyWorld loginVerifyWorld;
loginVerifyWorld.MapID = pCurrChar->GetMapId();
loginVerifyWorld.Pos = pCurrChar->GetPosition();
SendPacket(loginVerifyWorld.Write());
// load player specific part before send times
LoadAccountData(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_ACCOUNT_DATA), PER_CHARACTER_CACHE_MASK);
SendAccountDataTimes(PER_CHARACTER_CACHE_MASK);
bool featureBit4 = true;
data.Initialize(SMSG_FEATURE_SYSTEM_STATUS, 7); // checked in 4.2.2
WorldPacket data(SMSG_FEATURE_SYSTEM_STATUS, 7); // checked in 4.2.2
data << uint8(2); // unknown value
data << uint32(1);
data << uint32(1);

View File

@@ -286,3 +286,11 @@ void WorldPackets::Character::PlayerLogin::Read()
_worldPacket >> Guid;
_worldPacket >> FarClip;
}
WorldPacket const* WorldPackets::Character::LoginVerifyWorld::Write()
{
_worldPacket << int32(MapID);
_worldPacket << Pos.PositionXYZOStream();
_worldPacket << uint32(Reason);
return &_worldPacket;
}

View File

@@ -254,6 +254,18 @@ namespace WorldPackets
ObjectGuid Guid; ///< Guid of the player that is logging in
float FarClip = 0.0f; ///< Visibility distance (for terrain)
};
class LoginVerifyWorld final : public ServerPacket
{
public:
LoginVerifyWorld() : ServerPacket(SMSG_LOGIN_VERIFY_WORLD, 4 + 4 * 4 + 4) { }
WorldPacket const* Write() override;
int32 MapID = -1;
Position Pos;
uint32 Reason = 0;
};
}
}

View File

@@ -1016,7 +1016,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LIST_INVENTORY, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOAD_CUF_PROFILES, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGIN_SETTIMESPEED, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGIN_VERIFY_WORLD, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGIN_VERIFY_WORLD, STATUS_NEVER);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_CANCEL_ACK, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_COMPLETE, STATUS_UNHANDLED);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOGOUT_RESPONSE, STATUS_UNHANDLED);