diff options
author | Andrew <47818697+Nyeriah@users.noreply.github.com> | 2025-09-09 13:43:04 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-09 13:43:04 -0300 |
commit | 3a1f43db5c400da73f022d2f2fb8c1dcdb9c6615 (patch) | |
tree | f716bf09b1824bf5a797150869d28ed2de64741d /src/server | |
parent | 24ee9e248b1927ee6ed10afb819cc3f1a3b2fa06 (diff) |
fix(Scripts/ScarletEnclave): fix crash in Persuasive Strike spell script (#22840)
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp | 19 |
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 |