summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew <47818697+Nyeriah@users.noreply.github.com>2025-09-09 13:43:04 -0300
committerGitHub <noreply@github.com>2025-09-09 13:43:04 -0300
commit3a1f43db5c400da73f022d2f2fb8c1dcdb9c6615 (patch)
treef716bf09b1824bf5a797150869d28ed2de64741d /src
parent24ee9e248b1927ee6ed10afb819cc3f1a3b2fa06 (diff)
fix(Scripts/ScarletEnclave): fix crash in Persuasive Strike spell script (#22840)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index a3325c58d8..9c71aad73a 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -1001,20 +1001,25 @@ class spell_chapter2_persuasive_strike : public SpellScript
creature->AI()->Talk(SAY_PERSUADED3, 24s);
creature->AI()->Talk(SAY_PERSUADED4, 32s);
- creature->m_Events.AddEventAtOffset([creature, player]
+ ObjectGuid playerGuid = player->GetGUID();
+
+ creature->m_Events.AddEventAtOffset([creature, playerGuid]
{
- if (player)
- sCreatureTextMgr->SendChat(creature, SAY_PERSUADED5, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_NEUTRAL, false, player);
+ if (Player* caster = ObjectAccessor::GetPlayer(*creature, playerGuid))
+ sCreatureTextMgr->SendChat(creature, SAY_PERSUADED5, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_NEUTRAL, false, caster);
}, 40s);
- creature->m_Events.AddEventAtOffset([creature, player]
+ creature->m_Events.AddEventAtOffset([creature, playerGuid]
{
creature->AI()->Talk(SAY_PERSUADED6);
- if (player)
+
+ if (Player* caster = ObjectAccessor::GetPlayer(*creature, playerGuid))
{
- Unit::Kill(player, creature);
- player->GroupEventHappens(QUEST_HOW_TO_WIN_FRIENDS, creature);
+ Unit::Kill(caster, creature);
+ caster->GroupEventHappens(QUEST_HOW_TO_WIN_FRIENDS, creature);
}
+ else
+ creature->KillSelf();
}, 48s);
}
else