mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-26 06:32:49 +00:00
feat(world): guilds in the world: create box, character component, guild commands
The world side of guilds (docs/Guilds.md): - TMP_GUILD_CREATE, which the client's guild create box sends to its world, goes to the chat server as GUILD_CREATE. - The character component reads the character's guild from the database when it loads (instead of the old unused "gn" and "gid" charxml attributes) and takes GUILD_GET_STATUS from the chat server; a change is serialized once (the client redraws the name billboard every time it reads a guild name). A name waiting for moderation isn't shown. - Slash commands (the client has none for guilds): /g and /guild (guild chat; the client's guild tab sends /g, which goes through the chat filter and mute like zone chat, then to the chat server as channel 10), /guildcreate (opens the create box with DisplayGuildCreateBox), /gkick, /grank <name> <officer|veteran|recruit>, /gleader and /gdisband confirm. - The Guild Master script (LOT 3001, L_GUILD_CREATE.lua: using it opens the create box). Live never placed it; GMs can spawn it. Check in game (two accounts, a client with a FeatureGating row "guilds", 1, 0, 0 in its cdclient.fdb): /guildcreate, make a guild (the name shows under yours, the guild button appears on the status bar); invite the second character from the guild window, accept, both lists show both; guild chat tab; /grank, /gkick, /gleader; leave from the window; log the second character out and in (guildmate logged off/in lines). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -129,6 +129,14 @@ public:
|
||||
*/
|
||||
bool GetPvpEnabled() const;
|
||||
|
||||
/**
|
||||
* The character's guild as other players see it (docs/Guilds.md): guildName is empty while the name waits for
|
||||
* moderation, and guildID 0 is no guild. Serializes again when it changed.
|
||||
*/
|
||||
void SetGuild(LWOOBJID guildID, const std::u16string& guildName);
|
||||
LWOOBJID GetGuildID() const { return m_GuildID; }
|
||||
const std::u16string& GetGuildName() const { return m_GuildName; }
|
||||
|
||||
/**
|
||||
* Returns the characters lifetime reputation
|
||||
* @return The lifetime reputation of this character.
|
||||
@@ -449,6 +457,9 @@ private:
|
||||
*/
|
||||
bool m_DirtySocialInfo = false;
|
||||
|
||||
// Reads the character's guild from the database (on load)
|
||||
void LoadGuild();
|
||||
|
||||
/**
|
||||
* The guild this character is in
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user