From 553c024bee4ef995c017b741da49a57fd249ff03 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Tue, 29 Sep 2026 08:25:53 -0500 Subject: [PATCH] feat(guilds): the Guild Master says it in a chat bubble over its head DisplayChatBubble from the Guild Master with "You are already in a guild!", besides the system chat line. Check: use the Guild Master while in a guild: the bubble shows above it. Co-Authored-By: Claude Opus 5.5 --- dScripts/ai/FV/FvGuildCreate.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/dScripts/ai/FV/FvGuildCreate.cpp b/dScripts/ai/FV/FvGuildCreate.cpp index 4b569d269..52a7c0616 100644 --- a/dScripts/ai/FV/FvGuildCreate.cpp +++ b/dScripts/ai/FV/FvGuildCreate.cpp @@ -2,15 +2,22 @@ #include "CharacterComponent.h" #include "ChatPackets.h" +#include "EffectsMessages.h" #include "Entity.h" #include "PlayerMessages.h" void FvGuildCreate::OnUse(Entity* self, Entity* user) { - // A player already in a guild is told so instead of getting the create box. The client itself says the same - // (MSG_GUILD_ALREADY_IN_GUILD, system chat) only once the box is submitted (LWOGuildComponent::SendTMPGuildCreate). + // A player already in a guild is told so instead of getting the create box: the Guild Master says it in a chat + // bubble over its head and in system chat. The client itself says the same (MSG_GUILD_ALREADY_IN_GUILD, system chat) + // only once the box is submitted (LWOGuildComponent::SendTMPGuildCreate). const auto* characterComponent = user->GetComponent(); if (characterComponent && characterComponent->GetGuildID() != LWOOBJID_EMPTY) { - ChatPackets::SendSystemMessage(user->GetSystemAddress(), u"You are already in a guild!"); + constexpr auto text = u"You are already in a guild!"; + GameMessages::DisplayChatBubble bubble; + bubble.target = self->GetObjectID(); + bubble.wsText = text; + bubble.Send(user->GetSystemAddress()); + ChatPackets::SendSystemMessage(user->GetSystemAddress(), text); return; }