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:
parent
0464e90853
commit
9268ca9784
2 changed files with 16 additions and 28 deletions
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue