fix(Scripts/Creature): Crash for npc_captured_beryl_sorcerer by secur… (#21889)

Co-authored-by: localhost <rom.badanin@gmail.com>
This commit is contained in:
Localhost
2025-04-14 11:53:12 +02:00
committed by GitHub
parent e673e095a6
commit 20584bc0a6

View File

@@ -710,16 +710,23 @@ public:
switch (eventId)
{
case EVENT_ADD_ARCANE_CHAINS:
if (Player* summoner = me->ToTempSummon()->GetSummonerUnit()->ToPlayer())
if (TempSummon* tempSummon = me->ToTempSummon())
{
summoner->CastSpell(summoner, SPELL_ARCANE_CHAINS_CHANNEL_II, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGS & ~TRIGGERED_IGNORE_CAST_ITEM & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST & ~TRIGGERED_IGNORE_GCD));
_events.ScheduleEvent(EVENT_FOLLOW_PLAYER, 1s);
if (Unit* summoner = tempSummon->GetSummonerUnit())
{
summoner->CastSpell(summoner, SPELL_ARCANE_CHAINS_CHANNEL_II, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGS & ~TRIGGERED_IGNORE_CAST_ITEM & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST & ~TRIGGERED_IGNORE_GCD));
_events.ScheduleEvent(EVENT_FOLLOW_PLAYER, 1s);
}
}
break;
case EVENT_FOLLOW_PLAYER:
if (Player* summoner = me->ToTempSummon()->GetSummonerUnit()->ToPlayer())
if (TempSummon* tempSummon = me->ToTempSummon())
{
StartFollow(summoner);
if (Player* summoner = tempSummon->GetSummonerUnit()->ToPlayer())
{
StartFollow(summoner);
}
}
break;
}