wire: add the Help game message

Server to client (475): a single int32 help ID, which the client's
LWOCharacterComponent::ShowHelp turns into a one-time tutorial tooltip
(pet bouncer and pet dig tutorials among them). Verified against
GameMessage::Help::Serialize 0x00dc51e0 and Deserialize 0x00dc5220 in
the 1.10.64 client, and against 2014 live captures, where the server
sends it to the player (e.g. 14000000 = PR_BOUNCER_TUTORIAL_01).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-27 08:28:57 -05:00
parent 6c414cec48
commit bcc47ca273
2 changed files with 20 additions and 0 deletions

View File

@@ -206,4 +206,12 @@ namespace GameMessages {
VALIDATE_READ(BitStreamUtils::ReadOptional<uint32_t>(bitStream, uiHandle, 0));
return true;
}
void Help::Serialize(RakNet::BitStream& bitStream) const {
bitStream.Write(helpId);
}
bool Help::Deserialize(RakNet::BitStream& bitStream) {
return bitStream.Read(helpId);
}
}

View File

@@ -3,6 +3,7 @@
#include "GameMessages.h"
#include "eGameMasterLevel.h"
#include "eHelpType.h"
#include "eLootSourceType.h"
#include <string>
@@ -144,6 +145,17 @@ namespace GameMessages {
std::string sBitStream{};
uint32_t uiHandle{ 0 }; // optional
};
// Server -> client, to the player. Shows a one-time tutorial tooltip (LWOCharacterComponent::ShowHelp); the
// client skips it once the player flag with the same ID is set, and sets that flag itself.
// Serialize 0x00dc51e0 / Deserialize 0x00dc5220: a single int32.
struct Help : public NetGameMsg {
Help() : NetGameMsg(MessageType::Game::HELP) {}
void Serialize(RakNet::BitStream& bitStream) const override;
bool Deserialize(RakNet::BitStream& bitStream) override;
eHelpType helpId{ eHelpType::NONE };
};
}
#endif // PLAYERMESSAGES_H