Core/Units: ensure that we always have a valid caster when a charmed unit allows its charmer to cast spells directly

This commit is contained in:
Ovahlord committed 2022-10-16 17:58:58 +02:00
1 parent 9094d6d729
commit 4b8bea57d8
1 file changed
+7 -2
+7 -2
View File
@@ -14344,8 +14344,13 @@ void Unit::ProcessPendingSpellCastRequest()
Unit* charmer = caster->GetCharmer();
if (charmer && (!charmer->IsOnVehicle(this) || spellInfo->CheckVehicle(charmer) != SPELL_CAST_OK))
return;
caster = charmer;
else if (charmer)
caster = charmer;
else
{
TC_LOG_ERROR("spells", "Creature %s tried to allow its charmer to cast spell %u but there is no charmer.", caster->GetGUID().ToString(), spellInfo->Id);
return;
}
}
if (caster->GetTypeId() == TYPEID_PLAYER && !caster->ToPlayer()->HasActiveSpell(spellInfo->Id) && !spellInfo->IsRaidMarker() &&