diff options
author | Blaymoira <none@none> | 2008-12-24 23:17:21 +0100 |
---|---|---|
committer | Blaymoira <none@none> | 2008-12-24 23:17:21 +0100 |
commit | 2ee522023fbb0b417017c7d7e7e8ea7736154330 (patch) | |
tree | 2e3dd8d29db4af2e0ef10e843e6870ccb0823114 | |
parent | 5e4f83483488d324f07f40f36fb6453394f133df (diff) |
*Changed distance check in Nalorakk script
--HG--
branch : trunk
-rw-r--r-- | src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp index b804502033b..44e68f0dfbf 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp @@ -435,20 +435,30 @@ struct TRINITY_DLL_DECL boss_nalorakkAI : public ScriptedAI DoYell(YELL_SURGE, LANG_UNIVERSAL, NULL); DoPlaySoundToSet(m_creature, SOUND_YELL_SURGE); - Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 1); + Unit *target = NULL; + std::list<HostilReference *> t_list = m_creature->getThreatManager().getThreatList(); + std::vector<Unit *> target_list; + for(std::list<HostilReference *>::iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) + { + target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid()); + //50 yard radius maximum + if(target && target->GetDistance2d(m_creature) < 50) + target_list.push_back(target); + target = NULL; + } + if(target_list.size()) + target = *(target_list.begin()+rand()%target_list.size()); + if(!target) target = m_creature->getVictim(); TankGUID = m_creature->getVictim()->GetGUID(); ChargeTargetGUID = target->GetGUID(); - - if(target && m_creature->IsWithinDistInMap(target, 50.0f)) - { + float x, y, z; target->GetContactPoint(m_creature, x, y, z); m_creature->SetSpeed(MOVE_RUN, 5.0f); m_creature->GetMotionMaster()->Clear(); - m_creature->GetMotionMaster()->MovePoint(0, x, y, z); - } + m_creature->GetMotionMaster()->MovePoint(0, x, y, z); Surge_Timer = 15000 + rand()%5000; return; |