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:
@@ -1232,18 +1232,15 @@ class spell_malygos_vortex_visual : public AuraScript
|
|||||||
if (!caster)
|
if (!caster)
|
||||||
return;
|
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())
|
caster->GetMap()->DoForAllPlayers([&](Player* player)
|
||||||
continue;
|
|
||||||
|
|
||||||
if (InstanceScript* instance =caster->GetInstanceScript())
|
|
||||||
{
|
{
|
||||||
if (Creature* trigger =ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_VORTEX_TRIGGER)))
|
if (player->IsAlive() && !player->IsGameMaster())
|
||||||
trigger->CastSpell(player, SPELL_VORTEX_TELEPORT, true);
|
trigger->CastSpell(player, SPELL_VORTEX_TELEPORT, true);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,31 +72,22 @@ struct instance_eye_of_eternity : public InstanceScript
|
|||||||
|
|
||||||
void VortexHandling()
|
void VortexHandling()
|
||||||
{
|
{
|
||||||
Creature* malygos = GetCreature(DATA_MALYGOS);
|
if (_vortexTriggers.empty())
|
||||||
if (!malygos)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (ObjectGuid const& guid : _vortexTriggers)
|
size_t triggerIndex = 0;
|
||||||
|
size_t triggerCount = _vortexTriggers.size();
|
||||||
|
|
||||||
|
instance->DoForAllPlayers([&](Player* player)
|
||||||
{
|
{
|
||||||
uint8 counter = 0;
|
if (!player->IsAlive() || player->IsGameMaster())
|
||||||
if (Creature* trigger = instance->GetCreature(guid))
|
return;
|
||||||
{
|
|
||||||
for (auto* ref : malygos->GetThreatMgr().GetUnsortedThreatList())
|
|
||||||
{
|
|
||||||
if (counter >= 5)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (Player* player = ref->GetVictim()->ToPlayer())
|
if (Creature* trigger = instance->GetCreature(_vortexTriggers[triggerIndex]))
|
||||||
{
|
player->CastSpell(trigger, SPELL_VORTEX_4, true);
|
||||||
if (player->IsGameMaster() || player->HasAura(SPELL_VORTEX_4))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
player->CastSpell(trigger, SPELL_VORTEX_4, true);
|
triggerIndex = (triggerIndex + 1) % triggerCount;
|
||||||
counter++;
|
});
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnPlayerEnter(Player* player) override
|
void OnPlayerEnter(Player* player) override
|
||||||
|
|||||||
Reference in New Issue
Block a user