fix(Scripts/Ulduar): General Vezax Shadow Crash can target melee (#26884)

Co-authored-by: sogladev <sogladev@gmail.com>
This commit is contained in:
EricksOliveira 2026-08-03 22:22:46 +00:00 committed by GitHub
parent 6271d56e8e
commit d073708331
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -203,27 +203,23 @@ struct boss_vezax : public BossAI
Talk(SAY_BERSERK);
break;
case EVENT_SPELL_VEZAX_SHADOW_CRASH:
{
events.Repeat(10s);
{
events.Repeat(10s);
std::vector<Player*> players;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
{
Player* temp = itr->GetSource();
if (temp->IsAlive() && temp->GetDistance(me) > 15.0f)
players.push_back(temp);
}
if (!players.empty())
{
me->setAttackTimer(BASE_ATTACK, 2000);
Player* target = players.at(urand(0, players.size() - 1));
me->SetGuidValue(UNIT_FIELD_TARGET, target->GetGUID());
me->CastSpell(target, SPELL_VEZAX_SHADOW_CRASH, false);
events.ScheduleEvent(EVENT_RESTORE_TARGET, 750ms);
}
constexpr float dist = 3.0f; // SelectTarget dist check includes CombatReach
Unit* target = SelectTarget(SelectTargetMethod::Random, 0, -dist, true, true, 0);
if (!target)
target = SelectTarget(SelectTargetMethod::Random, 0, 0, true, true, 0);
if (target)
{
me->setAttackTimer(BASE_ATTACK, 2000);
me->SetGuidValue(UNIT_FIELD_TARGET, target->GetGUID());
me->CastSpell(target, SPELL_VEZAX_SHADOW_CRASH, false);
events.ScheduleEvent(EVENT_RESTORE_TARGET, 750ms);
}
break;
}
break;
case EVENT_RESTORE_TARGET:
if (me->GetVictim())
me->SetGuidValue(UNIT_FIELD_TARGET, me->GetVictim()->GetGUID());