From 2ee522023fbb0b417017c7d7e7e8ea7736154330 Mon Sep 17 00:00:00 2001 From: Blaymoira Date: Wed, 24 Dec 2008 23:17:21 +0100 Subject: *Changed distance check in Nalorakk script --HG-- branch : trunk --- .../scripts/scripts/zone/zulaman/boss_nalorakk.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src') 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 t_list = m_creature->getThreatManager().getThreatList(); + std::vector target_list; + for(std::list::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; -- cgit v1.2.3