mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-30 16:37:14 +00:00
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:
@@ -206,4 +206,12 @@ namespace GameMessages {
|
|||||||
VALIDATE_READ(BitStreamUtils::ReadOptional<uint32_t>(bitStream, uiHandle, 0));
|
VALIDATE_READ(BitStreamUtils::ReadOptional<uint32_t>(bitStream, uiHandle, 0));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Help::Serialize(RakNet::BitStream& bitStream) const {
|
||||||
|
bitStream.Write(helpId);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Help::Deserialize(RakNet::BitStream& bitStream) {
|
||||||
|
return bitStream.Read(helpId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "GameMessages.h"
|
#include "GameMessages.h"
|
||||||
#include "eGameMasterLevel.h"
|
#include "eGameMasterLevel.h"
|
||||||
|
#include "eHelpType.h"
|
||||||
#include "eLootSourceType.h"
|
#include "eLootSourceType.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
@@ -144,6 +145,17 @@ namespace GameMessages {
|
|||||||
std::string sBitStream{};
|
std::string sBitStream{};
|
||||||
uint32_t uiHandle{ 0 }; // optional
|
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
|
#endif // PLAYERMESSAGES_H
|
||||||
|
|||||||
Reference in New Issue
Block a user