fix(Scripts/EoE): fix Vortex only hitting 8 players (#25119)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Andrew 2026-03-20 18:27:00 -03:00 committed by GitHub
parent 0464e90853
commit 9268ca9784
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 28 deletions

View file

@ -1232,18 +1232,15 @@ class spell_malygos_vortex_visual : public AuraScript
if (!caster)
return;
for (auto const* ref : caster->GetThreatMgr().GetUnsortedThreatList())
if (InstanceScript* instance = caster->GetInstanceScript())
{
if (Player* player = ref->GetVictim()->ToPlayer())
if (Creature* trigger = ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_VORTEX_TRIGGER)))
{
if (player->IsGameMaster())
continue;
if (InstanceScript* instance =caster->GetInstanceScript())
caster->GetMap()->DoForAllPlayers([&](Player* player)
{
if (Creature* trigger =ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_VORTEX_TRIGGER)))
if (player->IsAlive() && !player->IsGameMaster())
trigger->CastSpell(player, SPELL_VORTEX_TELEPORT, true);
}
});
}
}

View file

@ -72,31 +72,22 @@ struct instance_eye_of_eternity : public InstanceScript
void VortexHandling()
{
Creature* malygos = GetCreature(DATA_MALYGOS);
if (!malygos)
if (_vortexTriggers.empty())
return;
for (ObjectGuid const& guid : _vortexTriggers)
size_t triggerIndex = 0;
size_t triggerCount = _vortexTriggers.size();
instance->DoForAllPlayers([&](Player* player)
{
uint8 counter = 0;
if (Creature* trigger = instance->GetCreature(guid))
{
for (auto* ref : malygos->GetThreatMgr().GetUnsortedThreatList())
{
if (counter >= 5)
break;
if (!player->IsAlive() || player->IsGameMaster())
return;
if (Player* player = ref->GetVictim()->ToPlayer())
{
if (player->IsGameMaster() || player->HasAura(SPELL_VORTEX_4))
continue;
if (Creature* trigger = instance->GetCreature(_vortexTriggers[triggerIndex]))
player->CastSpell(trigger, SPELL_VORTEX_4, true);
player->CastSpell(trigger, SPELL_VORTEX_4, true);
counter++;
}
}
}
}
triggerIndex = (triggerIndex + 1) % triggerCount;
});
}
void OnPlayerEnter(Player* player) override