From 1d1787f70a174b5c14a0dfcdb3d43d9c5165da64 Mon Sep 17 00:00:00 2001 From: ariel- Date: Sat, 3 Sep 2022 10:16:29 +0200 Subject: [PATCH] Scripts/Spells: fix Seaforium Blast script crash --- src/server/scripts/Spells/spell_generic.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index f20322ce0fe..7ffd658edd1 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -3052,17 +3052,15 @@ class spell_gen_seaforium_blast : public SpellScriptLoader bool Load() override { - // OriginalCaster is always available in Spell::prepare - return GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER; + return GetGObjCaster()->GetOwnerGUID().IsPlayer(); } void AchievementCredit(SpellEffIndex /*effIndex*/) { - // but in effect handling OriginalCaster can become nullptr - if (Unit* originalCaster = GetOriginalCaster()) + if (Unit* owner = GetGObjCaster()->GetOwner()) if (GameObject* go = GetHitGObj()) if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING) - originalCaster->CastSpell(originalCaster, SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT, true); + owner->CastSpell(nullptr, SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT, true); } void Register() override