Integrate client-based say links for TOB+ clients (#5105)
Build / Linux (push) Has been cancelled
Build / Windows (push) Has been cancelled

This commit is contained in:
dannuic
2026-07-08 00:22:25 -06:00
committed by GitHub
parent 974dbcd6ff
commit c9c8747ac9
18 changed files with 378 additions and 202 deletions
+1 -1
View File
@@ -39,7 +39,7 @@ void command_giveitem(Client *c, const Seperator *sep)
if (link_open != link_close && (cmd_msg.length() - link_open) > EQ::constants::SAY_LINK_BODY_SIZE) {
EQ::SayLinkBody_Struct link_body;
EQ::saylink::DegenerateLinkBody(
EQ::saylink::DeserializeLinkBody(
link_body,
cmd_msg.substr(link_open + 1, EQ::constants::SAY_LINK_BODY_SIZE)
);
+1 -1
View File
@@ -34,7 +34,7 @@ void command_summonitem(Client *c, const Seperator *sep)
if (link_open != link_close && (cmd_msg.length() - link_open) > EQ::constants::SAY_LINK_BODY_SIZE) {
EQ::SayLinkBody_Struct link_body;
EQ::saylink::DegenerateLinkBody(link_body, cmd_msg.substr(link_open + 1, EQ::constants::SAY_LINK_BODY_SIZE));
EQ::saylink::DeserializeLinkBody(link_body, cmd_msg.substr(link_open + 1, EQ::constants::SAY_LINK_BODY_SIZE));
item_id = link_body.item_id;
augment_one = link_body.augment_1;
augment_two = link_body.augment_2;
+1
View File
@@ -396,6 +396,7 @@ int main(int argc, char **argv)
ZoneEventScheduler::Instance()->SetDatabase(&database)->LoadScheduledEvents();
EQ::SayLinkEngine::SetDatabase(&database);
EQ::SayLinkEngine::LoadCachedSaylinks();
if (RuleB(Bots, Enabled) && database.DoesTableExist("bot_command_settings")) {
+4 -4
View File
@@ -336,7 +336,7 @@ bool Mob::DoCastSpell(int32 spell_id, uint16 target_id, CastingSlot slot,
StopCasting();
char spell_link[Links::MAX_LINK_SIZE];
Links::FormatSpellLink(spell_link, Links::MAX_LINK_SIZE, spell_id);
Links::FormatSpellLink(spell_link, Links::MAX_LINK_SIZE, spell_id, GetSpellName(spell_id));
if (IsClient())
ClientPatch::SendMessageString(CastToClient(), Chat::SpellFailure, fizzle_msg, spell_link);
@@ -1302,7 +1302,7 @@ void Mob::InterruptSpell(uint16 message, uint16 color, int32 spellid)
{
// the interrupt message
char spell_link[Links::MAX_LINK_SIZE];
Links::FormatSpellLink(spell_link, Links::MAX_LINK_SIZE, spellid);
Links::FormatSpellLink(spell_link, Links::MAX_LINK_SIZE, spellid, GetSpellName(spellid));
ClientPatch::InterruptSpell(CastToClient(), message, GetID(), spell_link);
SendSpellBarEnable(spellid);
}
@@ -1330,7 +1330,7 @@ void Mob::InterruptSpell(uint16 message, uint16 color, int32 spellid)
// this is the actual message, it works the same as a formatted message
char spell_link[Links::MAX_LINK_SIZE];
Links::FormatSpellLink(spell_link, Links::MAX_LINK_SIZE, spellid);
Links::FormatSpellLink(spell_link, Links::MAX_LINK_SIZE, spellid, GetSpellName(spellid));
ClientPatch::InterruptSpellOther(this, message_other, GetID(), GetCleanName(), spell_link);
}
@@ -7035,7 +7035,7 @@ void Mob::DoBardCastingFromItemClick(bool is_casting_bard_song, uint32 cast_time
//For spells with cast times. Cancel song cast, stop pulsing and start item cast.
if (cast_time != 0) {
char spell_link[Links::MAX_LINK_SIZE];
Links::FormatSpellLink(spell_link, Links::MAX_LINK_SIZE, spell_id);
Links::FormatSpellLink(spell_link, Links::MAX_LINK_SIZE, spell_id, GetSpellName(spell_id));
ClientPatch::InterruptSpell(CastToClient(), SONG_ENDS, GetID(), spell_link);
ZeroCastingVars();