mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
Core/PacketsIO: Updated and enabled SMSG_CHAR_CUSTOMIZE, SMSG_CHAR_CUSTOMIZE_FAILED
Closes #14789
This commit is contained in:
@@ -2574,25 +2574,18 @@ void WorldSession::SendCharRename(ResponseCodes result, WorldPackets::Character:
|
||||
|
||||
void WorldSession::SendCharCustomize(ResponseCodes result, WorldPackets::Character::CharCustomizeInfo const* customizeInfo)
|
||||
{
|
||||
/// @todo: fix 6.x implementation
|
||||
(void)result;
|
||||
(void)customizeInfo;
|
||||
/*
|
||||
WorldPacket data(SMSG_CHAR_CUSTOMIZE, 1 + 8 + customizeInfo.NewName.size() + 1 + 6);
|
||||
data << uint8(result);
|
||||
if (result == RESPONSE_SUCCESS)
|
||||
{
|
||||
data << customizeInfo.Guid;
|
||||
data << customizeInfo.NewName;
|
||||
data << uint8(customizeInfo.Gender);
|
||||
data << uint8(customizeInfo.Skin);
|
||||
data << uint8(customizeInfo.Face);
|
||||
data << uint8(customizeInfo.HairStyle);
|
||||
data << uint8(customizeInfo.HairColor);
|
||||
data << uint8(customizeInfo.FacialHair);
|
||||
WorldPackets::Character::CharCustomizeResponse response(customizeInfo);
|
||||
SendPacket(response.Write());
|
||||
}
|
||||
else
|
||||
{
|
||||
WorldPackets::Character::CharCustomizeFailed failed;
|
||||
failed.Result = uint8(result);
|
||||
failed.CharGUID = customizeInfo->CharGUID;
|
||||
SendPacket(failed.Write());
|
||||
}
|
||||
SendPacket(&data);
|
||||
*/
|
||||
}
|
||||
|
||||
void WorldSession::SendCharFactionChange(ResponseCodes result, WorldPackets::Character::CharRaceOrFactionChangeInfo const* factionChangeInfo)
|
||||
|
||||
@@ -498,3 +498,40 @@ WorldPacket const* WorldPackets::Character::SetFactionVisible::Write()
|
||||
_worldPacket << FactionIndex;
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPackets::Character::CharCustomizeResponse::CharCustomizeResponse(WorldPackets::Character::CharCustomizeInfo const* info)
|
||||
: ServerPacket(SMSG_CHAR_CUSTOMIZE, 16 + 1 + 1 + 1 + 1 + 1 + 1 + 1)
|
||||
{
|
||||
CharGUID = info->CharGUID;
|
||||
SexID = info->SexID;
|
||||
SkinID = info->SkinID;
|
||||
HairColorID = info->HairColorID;
|
||||
HairStyleID = info->HairStyleID;
|
||||
FacialHairStyleID = info->FacialHairStyleID;
|
||||
FaceID = info->FaceID;
|
||||
CharName = info->CharName;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Character::CharCustomizeResponse::Write()
|
||||
{
|
||||
_worldPacket << CharGUID;
|
||||
_worldPacket << uint8(SexID);
|
||||
_worldPacket << uint8(SkinID);
|
||||
_worldPacket << uint8(HairColorID);
|
||||
_worldPacket << uint8(HairStyleID);
|
||||
_worldPacket << uint8(FacialHairStyleID);
|
||||
_worldPacket << uint8(FaceID);
|
||||
_worldPacket.WriteBits(CharName.length(), 6);
|
||||
_worldPacket.FlushBits();
|
||||
_worldPacket.WriteString(CharName);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Character::CharCustomizeFailed::Write()
|
||||
{
|
||||
_worldPacket << uint8(Result);
|
||||
_worldPacket << CharGUID;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -686,6 +686,35 @@ namespace WorldPackets
|
||||
|
||||
uint32 FactionIndex = 0;
|
||||
};
|
||||
|
||||
class CharCustomizeResponse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
CharCustomizeResponse() : ServerPacket(SMSG_CHAR_CUSTOMIZE, 16 + 1 + 1 + 1 + 1 + 1 + 1 + 1) { }
|
||||
CharCustomizeResponse(CharCustomizeInfo const* customizeInfo);
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid CharGUID;
|
||||
std::string CharName;
|
||||
uint8 SexID = 0;
|
||||
uint8 SkinID = 0;
|
||||
uint8 HairColorID = 0;
|
||||
uint8 HairStyleID = 0;
|
||||
uint8 FacialHairStyleID = 0;
|
||||
uint8 FaceID = 0;
|
||||
};
|
||||
|
||||
class CharCustomizeFailed final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
CharCustomizeFailed() : ServerPacket(SMSG_CHAR_CUSTOMIZE_FAILED, 1 + 16) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
uint8 Result = 0;
|
||||
ObjectGuid CharGUID;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1001,8 +1001,8 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_SPELL_TIER_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_FACTION_CHANGE_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_AUTO_RESPONDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
|
||||
Reference in New Issue
Block a user