aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp68
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp321
2 files changed, 56 insertions, 333 deletions
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp
index 0467bfce594..1c561140bec 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp
@@ -404,17 +404,6 @@ void hyjalAI::Reset()
//Visibility
DoHide = true;
-
- //CreatureList.clear();
- //If Jaina evades, reset the visibility of all other creatures in the grid.
- /*if(CreatureList.empty())
- return;
-
- for(std::list<uint64>::iterator itr = CreatureList.begin(); itr != CreatureList.end(); ++itr)
- if(Creature* cr = (Unit::GetCreature(*m_creature, *itr)))
- cr->SetVisibility(VISIBILITY_ON);
-
- CreatureList.clear();*/
}
void hyjalAI::EnterEvadeMode()
@@ -506,9 +495,6 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3])
++EnemyCount;
pCreature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
- //pCreature->GetMotionMaster()->MovePoint(0, AttackLoc[0],AttackLoc[1],AttackLoc[2]);
- //pCreature->AddThreat(m_creature, 0.0f);
- //DoZoneInCombat(pCreature);
pCreature->setActive(true);
switch(entry)
{
@@ -676,44 +662,10 @@ void hyjalAI::UpdateWorldState(uint32 id, uint32 state)
player->SendUpdateWorldState(id,state);
}
}else debug_log("TSCR: HyjalAI: UpdateWorldState, but PlayerList is empty");
-
- //remove everything above this line only when/if the core patch for this is accepted and needed
- //m_creature->GetMap()->UpdateWorldState(field, value);
}
void hyjalAI::Retreat()
-{
- /*CellPair pair(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
- Cell cell(pair);
- cell.data.Part.reserved = ALL_DISTRICT;
- cell.SetNoCreate();
-
- // First get all creatures.
- std::list<Creature*> creatures;
- Trinity::AllFriendlyCreaturesInGrid creature_check(m_creature);
- Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid> creature_searcher(creatures, creature_check);
- TypeContainerVisitor
- <Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>,
- GridTypeMapContainer> creature_visitor(creature_searcher);
-
- CellLock<GridReadGuard> cell_lock(cell, pair);
- // Get Creatures
- cell_lock->Visit(cell_lock, creature_visitor, *(m_creature->GetMap()));
-
- CreatureList.clear();
- if(!creatures.empty())
- {
- for(std::list<Creature*>::iterator itr = creatures.begin(); itr != creatures.end(); ++itr)
- {
- (*itr)->CastSpell(*itr, SPELL_TELEPORT_VISUAL, true);
- (*itr)->setFaction(35);//make them friendly so mobs won't attack them
- CreatureList.push_back((*itr)->GetGUID());
- }
-
- DoCast(m_creature, SPELL_TELEPORT_VISUAL);
- bRetreat = true;
- RetreatTimer = 1000;
- }*/
+{
if(pInstance)
{
if(Faction == 0)
@@ -733,8 +685,6 @@ void hyjalAI::Retreat()
JainaDummy->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
((hyjalAI*)JainaDummy->AI())->IsDummy = true;
DummyGuid = JainaDummy->GetGUID();
- //((hyjalAI*)JainaDummy->AI())->MassTeleportTimer = 20000;
- //((hyjalAI*)JainaDummy->AI())->DoMassTeleport = true;
}
AddWaypoint(0,JainaDummySpawn[1][0],JainaDummySpawn[1][1],JainaDummySpawn[1][2]);
Start(false, false, false);
@@ -868,11 +818,6 @@ void hyjalAI::UpdateAI(const uint32 diff)
}
if(Overrun)
DoOverrun(Faction, diff);
- /* if(m_creature->GetEntry() == 17772)
- {
- if(!m_creature->HasAura(SPELL_BRILLIANCE_AURA,0))
- DoCast(m_creature, SPELL_BRILLIANCE_AURA, true);
- }*/
if(bRetreat)
{
if(RetreatTimer < diff)
@@ -891,14 +836,7 @@ void hyjalAI::UpdateAI(const uint32 diff)
HideNearPos(5603.75, -2853.12);
break;
}
- m_creature->SetVisibility(VISIBILITY_OFF);
- /*if(CreatureList.empty())
- return;
-
- for(std::list<uint64>::iterator itr = CreatureList.begin(); itr != CreatureList.end(); ++itr)
- if(Unit* pUnit = Unit::GetUnit(*m_creature, *itr))
- pUnit->SetVisibility(VISIBILITY_OFF);
- CreatureList.clear();*/
+ m_creature->SetVisibility(VISIBILITY_OFF);
}else RetreatTimer -= diff;
}
@@ -1027,14 +965,12 @@ void hyjalAI::HideNearPos(float x, float y)
// Get Creatures
cell_lock->Visit(cell_lock, creature_visitor, *(m_creature->GetMap()));
- //CreatureList.clear();
if(!creatures.empty())
{
for(std::list<Creature*>::iterator itr = creatures.begin(); itr != creatures.end(); ++itr)
{
(*itr)->SetVisibility(VISIBILITY_OFF);
(*itr)->setFaction(35);//make them friendly so mobs won't attack them
- //CreatureList.push_back((*itr)->GetGUID());
}
}
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp
index ac15c8cc30e..998db444cfb 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp
@@ -78,20 +78,20 @@ float AllianceOverrunWP[55][3]=//waypoints in the alliance base used in the end
{5043.42,-1853.75,1324.52},//19
{5053.02,-1864.13,1330.36},//20
{5062.49,-1852.47,1330.49},//21
+ {5015.27, -1738.77, 1324.83},//35//start 22
+ {5027.97, -1775.25, 1321.87},//34 23
+ {5015.94, -1821.24, 1321.86},//33 24
+ {4983.25, -1857.4, 1320.48},//32 25
+ {4981.51, -1883.7, 1322.34},//31 26
+ {5002.33, -1893.98, 1325.88},//30 27
+ {5049.32, -1886.54, 1331.69},//29 28
+ {5089.68, -1846.88, 1328.99},//28 29
+ {5127.90, -1825.14, 1335.58},//27 30
+ {5163.27, -1789.08, 1337.04},//26 31
+ {5138.97, -1755.88, 1334.57},//25 32
+ {5096.63, -1742.22, 1329.61},//24 33
+ {5065.81, -1729.43, 1325.66},//23 34
{5049.32, -1726.31, 1320.64},//22 start
- {5065.81, -1729.43, 1325.66},//23
- {5096.63, -1742.22, 1329.61},//24
- {5138.97, -1755.88, 1334.57},//25
- {5163.27, -1789.08, 1337.04},//26
- {5127.90, -1825.14, 1335.58},//27
- {5089.68, -1846.88, 1328.99},//28
- {5049.32, -1886.54, 1331.69},//29
- {5002.33, -1893.98, 1325.88},//30
- {4981.51, -1883.7, 1322.34},//31
- {4983.25, -1857.4, 1320.48},//32
- {5015.94, -1821.24, 1321.86},//33
- {5027.97, -1775.25, 1321.87},//34
- {5015.27, -1738.77, 1324.83},//35
{5081.07, -1902.10, 1346.36},//36 abo start
{5107.65, -1912.03, 1356.49},//37
{5132.83, -1927.07, 1362.42},//38
@@ -177,45 +177,9 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
{
if(m_creature->GetEntry() == GARGOYLE)
{
- switch(OverrunType)
- {
- case 0:
- {
- DummyTarget[0] = AllianceOverrunWP[50][0];
- DummyTarget[1] = AllianceOverrunWP[50][1];
- DummyTarget[2] = AllianceOverrunWP[50][2];
- }
- break;
- case 1:
- {
- DummyTarget[0] = AllianceOverrunWP[51][0];
- DummyTarget[1] = AllianceOverrunWP[51][1];
- DummyTarget[2] = AllianceOverrunWP[51][2];
- }
- break;
- case 2:
- {
- DummyTarget[0] = AllianceOverrunWP[52][0];
- DummyTarget[1] = AllianceOverrunWP[52][1];
- DummyTarget[2] = AllianceOverrunWP[52][2];
- }
- break;
- case 3:
- {
- DummyTarget[0] = AllianceOverrunWP[53][0];
- DummyTarget[1] = AllianceOverrunWP[53][1];
- DummyTarget[2] = AllianceOverrunWP[53][2];
- }
- break;
- case 4:
- {
- DummyTarget[0] = AllianceOverrunWP[54][0];
- DummyTarget[1] = AllianceOverrunWP[54][1];
- DummyTarget[2] = AllianceOverrunWP[54][2];
- }
- break;
- }
-
+ DummyTarget[0] = AllianceOverrunWP[50+OverrunType][0]; //+OverrunType 0 - 4
+ DummyTarget[1] = AllianceOverrunWP[50+OverrunType][1];
+ DummyTarget[2] = AllianceOverrunWP[50+OverrunType][2];
}
if(m_creature->GetEntry() == ABOMINATION)
{
@@ -224,13 +188,14 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
switch(OverrunType)
{
case 0:
- AddWaypoint( 4, AllianceOverrunWP[35][0]+irand(-3,3), AllianceOverrunWP[35][1]+irand(-3,3), AllianceOverrunWP[35][2]);
- AddWaypoint( 5, AllianceOverrunWP[34][0]+irand(-3,3), AllianceOverrunWP[34][1]+irand(-3,3), AllianceOverrunWP[34][2]);
- AddWaypoint( 6, AllianceOverrunWP[33][0]+irand(-3,3), AllianceOverrunWP[33][1]+irand(-3,3), AllianceOverrunWP[33][2]);
- AddWaypoint( 7, AllianceOverrunWP[32][0]+irand(-3,3), AllianceOverrunWP[32][1]+irand(-3,3), AllianceOverrunWP[32][2]);
- AddWaypoint( 8, AllianceOverrunWP[31][0]+irand(-3,3), AllianceOverrunWP[31][1]+irand(-3,3), AllianceOverrunWP[31][2]);
- AddWaypoint( 9, AllianceOverrunWP[30][0]+irand(-3,3), AllianceOverrunWP[30][1]+irand(-3,3), AllianceOverrunWP[30][2]);
- AddWaypoint(10, AllianceOverrunWP[29][0]+irand(-3,3), AllianceOverrunWP[29][1]+irand(-3,3), AllianceOverrunWP[29][2]);
+ AddWaypoint( 4, AllianceOverrunWP[22][0]+irand(-3,3), AllianceOverrunWP[22][1]+irand(-3,3), AllianceOverrunWP[22][2]);
+ AddWaypoint( 5, AllianceOverrunWP[23][0]+irand(-3,3), AllianceOverrunWP[23][1]+irand(-3,3), AllianceOverrunWP[23][2]);
+ AddWaypoint( 6, AllianceOverrunWP[24][0]+irand(-3,3), AllianceOverrunWP[24][1]+irand(-3,3), AllianceOverrunWP[24][2]);
+ AddWaypoint( 7, AllianceOverrunWP[25][0]+irand(-3,3), AllianceOverrunWP[25][1]+irand(-3,3), AllianceOverrunWP[25][2]);
+ AddWaypoint( 8, AllianceOverrunWP[26][0]+irand(-3,3), AllianceOverrunWP[26][1]+irand(-3,3), AllianceOverrunWP[26][2]);
+ AddWaypoint( 9, AllianceOverrunWP[27][0]+irand(-3,3), AllianceOverrunWP[27][1]+irand(-3,3), AllianceOverrunWP[27][2]);
+ AddWaypoint(10, AllianceOverrunWP[28][0]+irand(-3,3), AllianceOverrunWP[28][1]+irand(-3,3), AllianceOverrunWP[28][2]);
+
AddWaypoint(11, AllianceOverrunWP[36][0]+irand(-3,3), AllianceOverrunWP[36][1]+irand(-3,3), AllianceOverrunWP[36][2]);
AddWaypoint(12, AllianceOverrunWP[37][0]+irand(-3,3), AllianceOverrunWP[37][1]+irand(-3,3), AllianceOverrunWP[37][2]);
AddWaypoint(13, AllianceOverrunWP[38][0]+irand(-3,3), AllianceOverrunWP[38][1]+irand(-3,3), AllianceOverrunWP[38][2]);
@@ -245,13 +210,14 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
Start(true, true, true);
break;
case 1:
- AddWaypoint( 4, AllianceOverrunWP[35][0]+irand(-3,3), AllianceOverrunWP[35][1]+irand(-3,3), AllianceOverrunWP[35][2]);
- AddWaypoint( 5, AllianceOverrunWP[34][0]+irand(-3,3), AllianceOverrunWP[34][1]+irand(-3,3), AllianceOverrunWP[34][2]);
- AddWaypoint( 6, AllianceOverrunWP[33][0]+irand(-3,3), AllianceOverrunWP[33][1]+irand(-3,3), AllianceOverrunWP[33][2]);
- AddWaypoint( 7, AllianceOverrunWP[32][0]+irand(-3,3), AllianceOverrunWP[32][1]+irand(-3,3), AllianceOverrunWP[32][2]);
- AddWaypoint( 8, AllianceOverrunWP[31][0]+irand(-3,3), AllianceOverrunWP[31][1]+irand(-3,3), AllianceOverrunWP[31][2]);
- AddWaypoint( 9, AllianceOverrunWP[30][0]+irand(-3,3), AllianceOverrunWP[30][1]+irand(-3,3), AllianceOverrunWP[30][2]);
- AddWaypoint(10, AllianceOverrunWP[29][0]+irand(-3,3), AllianceOverrunWP[29][1]+irand(-3,3), AllianceOverrunWP[29][2]);
+ AddWaypoint( 4, AllianceOverrunWP[22][0]+irand(-3,3), AllianceOverrunWP[22][1]+irand(-3,3), AllianceOverrunWP[22][2]);
+ AddWaypoint( 5, AllianceOverrunWP[23][0]+irand(-3,3), AllianceOverrunWP[23][1]+irand(-3,3), AllianceOverrunWP[23][2]);
+ AddWaypoint( 6, AllianceOverrunWP[24][0]+irand(-3,3), AllianceOverrunWP[24][1]+irand(-3,3), AllianceOverrunWP[24][2]);
+ AddWaypoint( 7, AllianceOverrunWP[25][0]+irand(-3,3), AllianceOverrunWP[25][1]+irand(-3,3), AllianceOverrunWP[25][2]);
+ AddWaypoint( 8, AllianceOverrunWP[26][0]+irand(-3,3), AllianceOverrunWP[26][1]+irand(-3,3), AllianceOverrunWP[26][2]);
+ AddWaypoint( 9, AllianceOverrunWP[27][0]+irand(-3,3), AllianceOverrunWP[27][1]+irand(-3,3), AllianceOverrunWP[27][2]);
+ AddWaypoint(10, AllianceOverrunWP[28][0]+irand(-3,3), AllianceOverrunWP[28][1]+irand(-3,3), AllianceOverrunWP[28][2]);
+
AddWaypoint(11, AllianceOverrunWP[36][0]+irand(-3,3), AllianceOverrunWP[36][1]+irand(-3,3), AllianceOverrunWP[36][2]);
AddWaypoint(12, AllianceOverrunWP[37][0]+irand(-3,3), AllianceOverrunWP[37][1]+irand(-3,3), AllianceOverrunWP[37][2]);
AddWaypoint(13, AllianceOverrunWP[38][0]+irand(-3,3), AllianceOverrunWP[38][1]+irand(-3,3), AllianceOverrunWP[38][2]);
@@ -266,21 +232,9 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
Start(true, true, true);
break;
default:
- AddWaypoint( 4, AllianceOverrunWP[35][0]+irand(-3,3), AllianceOverrunWP[35][1]+irand(-3,3), AllianceOverrunWP[35][2]);
- AddWaypoint( 5, AllianceOverrunWP[34][0]+irand(-3,3), AllianceOverrunWP[34][1]+irand(-3,3), AllianceOverrunWP[34][2]);
- AddWaypoint( 6, AllianceOverrunWP[33][0]+irand(-3,3), AllianceOverrunWP[33][1]+irand(-3,3), AllianceOverrunWP[33][2]);
- AddWaypoint( 7, AllianceOverrunWP[32][0]+irand(-3,3), AllianceOverrunWP[32][1]+irand(-3,3), AllianceOverrunWP[32][2]);
- AddWaypoint( 8, AllianceOverrunWP[31][0]+irand(-3,3), AllianceOverrunWP[31][1]+irand(-3,3), AllianceOverrunWP[31][2]);
- AddWaypoint( 9, AllianceOverrunWP[30][0]+irand(-3,3), AllianceOverrunWP[30][1]+irand(-3,3), AllianceOverrunWP[30][2]);
- AddWaypoint(10, AllianceOverrunWP[29][0]+irand(-3,3), AllianceOverrunWP[29][1]+irand(-3,3), AllianceOverrunWP[29][2]);
- AddWaypoint(11, AllianceOverrunWP[28][0]+irand(-3,3), AllianceOverrunWP[28][1]+irand(-3,3), AllianceOverrunWP[28][2]);
- AddWaypoint(12, AllianceOverrunWP[27][0]+irand(-3,3), AllianceOverrunWP[27][1]+irand(-3,3), AllianceOverrunWP[27][2]);
- AddWaypoint(13, AllianceOverrunWP[26][0]+irand(-3,3), AllianceOverrunWP[26][1]+irand(-3,3), AllianceOverrunWP[26][2]);
- AddWaypoint(14, AllianceOverrunWP[25][0]+irand(-3,3), AllianceOverrunWP[25][1]+irand(-3,3), AllianceOverrunWP[25][2]);
- AddWaypoint(15, AllianceOverrunWP[24][0]+irand(-3,3), AllianceOverrunWP[24][1]+irand(-3,3), AllianceOverrunWP[24][2]);
- AddWaypoint(16, AllianceOverrunWP[23][0]+irand(-3,3), AllianceOverrunWP[23][1]+irand(-3,3), AllianceOverrunWP[23][2]);
- AddWaypoint(17, AllianceOverrunWP[22][0]+irand(-3,3), AllianceOverrunWP[22][1]+irand(-3,3), AllianceOverrunWP[22][2]);
- //m_creature->SetHomePosition(AllianceOverrunWP[0][0]+irand(-3,3), AllianceOverrunWP[0][1]+irand(-3,3), AllianceOverrunWP[0][2],0);
+ for(uint8 i = 22; i < 36; i++)
+ AddWaypoint( i-18, AllianceOverrunWP[i][0]+irand(-3,3), AllianceOverrunWP[i][1]+irand(-3,3), AllianceOverrunWP[i][2]);
+
SetDespawnAtEnd(true);
LastOverronPos = 17;
Start(true, true, true);
@@ -351,21 +305,8 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
Start(true, true, true);
break;
default:
- AddWaypoint( 4, AllianceOverrunWP[35][0]+irand(-3,3), AllianceOverrunWP[35][1]+irand(-3,3), AllianceOverrunWP[35][2]);
- AddWaypoint( 5, AllianceOverrunWP[34][0]+irand(-3,3), AllianceOverrunWP[34][1]+irand(-3,3), AllianceOverrunWP[34][2]);
- AddWaypoint( 6, AllianceOverrunWP[33][0]+irand(-3,3), AllianceOverrunWP[33][1]+irand(-3,3), AllianceOverrunWP[33][2]);
- AddWaypoint( 7, AllianceOverrunWP[32][0]+irand(-3,3), AllianceOverrunWP[32][1]+irand(-3,3), AllianceOverrunWP[32][2]);
- AddWaypoint( 8, AllianceOverrunWP[31][0]+irand(-3,3), AllianceOverrunWP[31][1]+irand(-3,3), AllianceOverrunWP[31][2]);
- AddWaypoint( 9, AllianceOverrunWP[30][0]+irand(-3,3), AllianceOverrunWP[30][1]+irand(-3,3), AllianceOverrunWP[30][2]);
- AddWaypoint(10, AllianceOverrunWP[29][0]+irand(-3,3), AllianceOverrunWP[29][1]+irand(-3,3), AllianceOverrunWP[29][2]);
- AddWaypoint(11, AllianceOverrunWP[28][0]+irand(-3,3), AllianceOverrunWP[28][1]+irand(-3,3), AllianceOverrunWP[28][2]);
- AddWaypoint(12, AllianceOverrunWP[27][0]+irand(-3,3), AllianceOverrunWP[27][1]+irand(-3,3), AllianceOverrunWP[27][2]);
- AddWaypoint(13, AllianceOverrunWP[26][0]+irand(-3,3), AllianceOverrunWP[26][1]+irand(-3,3), AllianceOverrunWP[26][2]);
- AddWaypoint(14, AllianceOverrunWP[25][0]+irand(-3,3), AllianceOverrunWP[25][1]+irand(-3,3), AllianceOverrunWP[25][2]);
- AddWaypoint(15, AllianceOverrunWP[24][0]+irand(-3,3), AllianceOverrunWP[24][1]+irand(-3,3), AllianceOverrunWP[24][2]);
- AddWaypoint(16, AllianceOverrunWP[23][0]+irand(-3,3), AllianceOverrunWP[23][1]+irand(-3,3), AllianceOverrunWP[23][2]);
- AddWaypoint(17, AllianceOverrunWP[22][0]+irand(-3,3), AllianceOverrunWP[22][1]+irand(-3,3), AllianceOverrunWP[22][2]);
- //m_creature->SetHomePosition(AllianceOverrunWP[0][0]+irand(-3,3), AllianceOverrunWP[0][1]+irand(-3,3), AllianceOverrunWP[0][2],0);
+ for(uint8 i = 22; i < 36; i++)
+ AddWaypoint( i-18, AllianceOverrunWP[i][0]+irand(-3,3), AllianceOverrunWP[i][1]+irand(-3,3), AllianceOverrunWP[i][2]);
SetDespawnAtEnd(true);
LastOverronPos = 17;
Start(true, true, true);
@@ -402,25 +343,10 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
Start(true, true, true);
break;
default:
- AddWaypoint( 5, HordeOverrunWP[0][0]+irand(-10,10), HordeOverrunWP[0][1]+irand(-10,10), HordeOverrunWP[0][2]);
- AddWaypoint( 6, HordeOverrunWP[1][0]+irand(-10,10), HordeOverrunWP[1][1]+irand(-10,10), HordeOverrunWP[1][2]);
- AddWaypoint( 7, HordeOverrunWP[2][0]+irand(-10,10), HordeOverrunWP[2][1]+irand(-10,10), HordeOverrunWP[2][2]);
- AddWaypoint( 8, HordeOverrunWP[3][0]+irand(-10,10), HordeOverrunWP[3][1]+irand(-10,10), HordeOverrunWP[3][2]);
- AddWaypoint( 9, HordeOverrunWP[4][0]+irand(-10,10), HordeOverrunWP[4][1]+irand(-10,10), HordeOverrunWP[4][2]);
- AddWaypoint(10, HordeOverrunWP[5][0]+irand(-10,10), HordeOverrunWP[5][1]+irand(-10,10), HordeOverrunWP[5][2]);
- AddWaypoint(11, HordeOverrunWP[6][0]+irand(-10,10), HordeOverrunWP[6][1]+irand(-10,10), HordeOverrunWP[6][2]);
- AddWaypoint(12, HordeOverrunWP[7][0]+irand(-10,10), HordeOverrunWP[7][1]+irand(-10,10), HordeOverrunWP[7][2]);
- AddWaypoint(13, HordeOverrunWP[8][0]+irand(-10,10), HordeOverrunWP[8][1]+irand(-10,10), HordeOverrunWP[8][2]);
- AddWaypoint(14, HordeOverrunWP[9][0]+irand(-10,10), HordeOverrunWP[9][1]+irand(-10,10), HordeOverrunWP[9][2]);
- AddWaypoint(15, HordeOverrunWP[10][0]+irand(-10,10), HordeOverrunWP[10][1]+irand(-10,10), HordeOverrunWP[10][2]);
- AddWaypoint(16, HordeOverrunWP[11][0]+irand(-10,10), HordeOverrunWP[11][1]+irand(-10,10), HordeOverrunWP[11][2]);
- AddWaypoint(17, HordeOverrunWP[12][0]+irand(-10,10), HordeOverrunWP[12][1]+irand(-10,10), HordeOverrunWP[12][2]);
- AddWaypoint(18, HordeOverrunWP[13][0]+irand(-10,10), HordeOverrunWP[13][1]+irand(-10,10), HordeOverrunWP[13][2]);
- AddWaypoint(19, HordeOverrunWP[14][0]+irand(-10,10), HordeOverrunWP[14][1]+irand(-10,10), HordeOverrunWP[14][2]);
- AddWaypoint(20, HordeOverrunWP[15][0]+irand(-10,10), HordeOverrunWP[15][1]+irand(-10,10), HordeOverrunWP[15][2]);
- //m_creature->SetHomePosition(AllianceOverrunWP[2][0]+irand(-10,10), AllianceOverrunWP[2][1]+irand(-10,10), AllianceOverrunWP[2][2],0);
+ for(uint8 i = 0; i < 16; i++)
+ AddWaypoint( i+6, HordeOverrunWP[i][0]+irand(-10,10), HordeOverrunWP[i][1]+irand(-10,10), HordeOverrunWP[i][2]);
SetDespawnAtEnd(true);
- LastOverronPos = 20;
+ LastOverronPos = 21;
Start(true, true, true);
break;
}
@@ -429,32 +355,11 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
{
for(uint8 i = 0; i < 6; i++)
AddWaypoint(i, HordeWPs[i][0]+irand(-10,10), HordeWPs[i][1]+irand(-10,10), HordeWPs[i][2]);
- switch(OverrunType)
- {
- case 0:
- default:
- AddWaypoint( 5, HordeOverrunWP[0][0]+irand(-10,10), HordeOverrunWP[0][1]+irand(-10,10), HordeOverrunWP[0][2]);
- AddWaypoint( 6, HordeOverrunWP[1][0]+irand(-10,10), HordeOverrunWP[1][1]+irand(-10,10), HordeOverrunWP[1][2]);
- AddWaypoint( 7, HordeOverrunWP[2][0]+irand(-10,10), HordeOverrunWP[2][1]+irand(-10,10), HordeOverrunWP[2][2]);
- AddWaypoint( 8, HordeOverrunWP[3][0]+irand(-10,10), HordeOverrunWP[3][1]+irand(-10,10), HordeOverrunWP[3][2]);
- AddWaypoint( 9, HordeOverrunWP[4][0]+irand(-10,10), HordeOverrunWP[4][1]+irand(-10,10), HordeOverrunWP[4][2]);
- AddWaypoint(10, HordeOverrunWP[5][0]+irand(-10,10), HordeOverrunWP[5][1]+irand(-10,10), HordeOverrunWP[5][2]);
- AddWaypoint(11, HordeOverrunWP[6][0]+irand(-10,10), HordeOverrunWP[6][1]+irand(-10,10), HordeOverrunWP[6][2]);
- AddWaypoint(12, HordeOverrunWP[7][0]+irand(-10,10), HordeOverrunWP[7][1]+irand(-10,10), HordeOverrunWP[7][2]);
- AddWaypoint(13, HordeOverrunWP[8][0]+irand(-10,10), HordeOverrunWP[8][1]+irand(-10,10), HordeOverrunWP[8][2]);
- AddWaypoint(14, HordeOverrunWP[9][0]+irand(-10,10), HordeOverrunWP[9][1]+irand(-10,10), HordeOverrunWP[9][2]);
- AddWaypoint(15, HordeOverrunWP[10][0]+irand(-10,10), HordeOverrunWP[10][1]+irand(-10,10), HordeOverrunWP[10][2]);
- AddWaypoint(16, HordeOverrunWP[11][0]+irand(-10,10), HordeOverrunWP[11][1]+irand(-10,10), HordeOverrunWP[11][2]);
- AddWaypoint(17, HordeOverrunWP[12][0]+irand(-10,10), HordeOverrunWP[12][1]+irand(-10,10), HordeOverrunWP[12][2]);
- AddWaypoint(18, HordeOverrunWP[13][0]+irand(-10,10), HordeOverrunWP[13][1]+irand(-10,10), HordeOverrunWP[13][2]);
- AddWaypoint(19, HordeOverrunWP[14][0]+irand(-10,10), HordeOverrunWP[14][1]+irand(-10,10), HordeOverrunWP[14][2]);
- AddWaypoint(20, HordeOverrunWP[15][0]+irand(-10,10), HordeOverrunWP[15][1]+irand(-10,10), HordeOverrunWP[15][2]);
- //m_creature->SetHomePosition(AllianceOverrunWP[2][0]+irand(-10,10), AllianceOverrunWP[2][1]+irand(-10,10), AllianceOverrunWP[2][2],0);
- SetDespawnAtEnd(true);
- LastOverronPos = 20;
- Start(true, true, true);
- break;
- }
+ for(uint8 i = 0; i < 16; i++)
+ AddWaypoint( i+6, HordeOverrunWP[i][0]+irand(-10,10), HordeOverrunWP[i][1]+irand(-10,10), HordeOverrunWP[i][2]);
+ SetDespawnAtEnd(true);
+ LastOverronPos = 21;
+ Start(true, true, true);
}
}
}
@@ -468,25 +373,6 @@ void hyjal_trashAI::JustDied(Unit *victim)
if((pInstance->GetData(DATA_RAIDDAMAGE) < MINRAIDDAMAGE && !m_creature->isWorldBoss()) || (damageTaken < m_creature->GetMaxHealth()/4 && m_creature->isWorldBoss()))
m_creature->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);//no loot
-
- if(IsOverrun)
- {
- float x,y,z,o;
- m_creature->GetHomePosition(x,y,z,o);
- Creature* pUnit = m_creature->SummonCreature(m_creature->GetEntry(),x,y,z,o, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- ((hyjal_trashAI*)pUnit->AI())->faction = faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = OverrunType;
- ((hyjal_trashAI*)pUnit->AI())->SetupOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->DummyTarget[0] = DummyTarget[0];
- ((hyjal_trashAI*)pUnit->AI())->DummyTarget[1] = DummyTarget[1];
- ((hyjal_trashAI*)pUnit->AI())->DummyTarget[2] = DummyTarget[2];
- pUnit->setActive(true);
- pUnit->AI()->EnterEvadeMode();
- }
- }
}
struct mob_giant_infernalAI : public hyjal_trashAI
@@ -567,8 +453,6 @@ struct mob_giant_infernalAI : public hyjal_trashAI
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, m_creature->GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID));
CanMove = true;
- /*if (m_creature->getVictim())
- m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim());*/
if (pInstance)
{
if (pInstance->GetData(DATA_ALLIANCE_RETREAT) && !pInstance->GetData(DATA_HORDE_RETREAT))
@@ -658,32 +542,13 @@ struct mob_abominationAI : public hyjal_trashAI
if (target && target->isAlive())
m_creature->AddThreat(target,0.0);
}
- }
+ }
if (i == LastOverronPos && IsOverrun)
{
- if(faction == 0 && LastOverronPos == 17)//alliance round
+ if((faction == 0 && LastOverronPos == 17) || (faction == 1 && LastOverronPos == 21))
{
- Creature* pUnit = m_creature->SummonCreature(m_creature->GetEntry(),4928.48+irand(-10,10), -1526.38+irand(-10,10), 1326.83,0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- ((hyjal_trashAI*)pUnit->AI())->faction = faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = 2;//default
- ((hyjal_trashAI*)pUnit->AI())->SetupOverrun = false;
- pUnit->setActive(true);
- }
- }
- if(faction == 1 && LastOverronPos == 20)//horde round
- {
- Creature* pUnit = m_creature->SummonCreature(m_creature->GetEntry(),5458.01+irand(-10,10),-2340.27+irand(-10,10),1459.60,0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- ((hyjal_trashAI*)pUnit->AI())->faction = faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = 10;//default
- ((hyjal_trashAI*)pUnit->AI())->SetupOverrun = false;
- pUnit->setActive(true);
- }
+ m_creature->setDeathState(DEAD);
+ m_creature->RemoveCorpse();
}
}
}
@@ -725,7 +590,7 @@ struct mob_abominationAI : public hyjal_trashAI
if(KnockDownTimer<diff)
{
DoCast(m_creature->getVictim(),SPELL_KNOCKDOWN);
- KnockDownTimer = 30000+rand()%25000;
+ KnockDownTimer = 15000+rand()%10000;
}else KnockDownTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -780,30 +645,12 @@ struct mob_ghoulAI : public hyjal_trashAI
if (i == LastOverronPos && IsOverrun)
{
m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACKUNARMED);
- if(faction == 0 && LastOverronPos == 17)//alliance round
- {
- Creature* pUnit = m_creature->SummonCreature(m_creature->GetEntry(),4928.48+irand(-10,10), -1526.38+irand(-10,10), 1326.83,0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- ((hyjal_trashAI*)pUnit->AI())->faction = faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = 6;//default
- ((hyjal_trashAI*)pUnit->AI())->SetupOverrun = false;
- pUnit->setActive(true);
- }
- }
- if(faction == 1 && LastOverronPos == 20)//horde round
+ if((faction == 0 && LastOverronPos == 17) || (faction == 1 && LastOverronPos == 21))
{
- Creature* pUnit = m_creature->SummonCreature(m_creature->GetEntry(),5458.01+irand(-10,10), -2340.27+irand(-10,10), 1459.60,0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- ((hyjal_trashAI*)pUnit->AI())->faction = faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = 10;//default
- ((hyjal_trashAI*)pUnit->AI())->SetupOverrun = false;
- pUnit->setActive(true);
- }
+ m_creature->setDeathState(DEAD);
+ m_creature->RemoveCorpse();
}
+
}
}
@@ -902,19 +749,6 @@ struct mob_necromancerAI : public hyjal_trashAI
if (target && target->isAlive())
m_creature->AddThreat(target,0.0);
}
- }
- if (i == LastOverronPos && IsOverrun)
- {
- Creature* pUnit = m_creature->SummonCreature(17931, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- pUnit->SetVisibility(VISIBILITY_OFF);
- pUnit->SetMaxHealth(10000000);
- pUnit->SetHealth(10000000);
- pUnit->setFaction(17772);
- pUnit->Attack(m_creature, true);
- m_creature->AddThreat(pUnit,0);
- }
}
}
@@ -1028,19 +862,6 @@ struct mob_bansheeAI : public hyjal_trashAI
if (target && target->isAlive())
m_creature->AddThreat(target,0.0);
}
- }
- if (i == LastOverronPos && IsOverrun)
- {
- Creature* pUnit = m_creature->SummonCreature(17931, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- pUnit->SetVisibility(VISIBILITY_OFF);
- pUnit->SetMaxHealth(10000000);
- pUnit->SetHealth(10000000);
- pUnit->setFaction(17772);
- pUnit->Attack(m_creature, true);
- m_creature->AddThreat(pUnit,0);
- }
}
}
@@ -1136,19 +957,6 @@ struct mob_crypt_fiendAI : public hyjal_trashAI
if (target && target->isAlive())
m_creature->AddThreat(target,0.0);
}
- }
- if (i == LastOverronPos && IsOverrun)
- {
- Creature* pUnit = m_creature->SummonCreature(17931, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- pUnit->SetVisibility(VISIBILITY_OFF);
- pUnit->SetMaxHealth(10000000);
- pUnit->SetHealth(10000000);
- pUnit->setFaction(17772);
- pUnit->Attack(m_creature, true);
- m_creature->AddThreat(pUnit,0);
- }
}
}
@@ -1235,19 +1043,6 @@ struct mob_fel_stalkerAI : public hyjal_trashAI
if (target && target->isAlive())
m_creature->AddThreat(target,0.0);
}
- }
- if (i == LastOverronPos && IsOverrun)
- {
- Creature* pUnit = m_creature->SummonCreature(17931, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 2*60*1000);
- if(pUnit)
- {
- pUnit->SetVisibility(VISIBILITY_OFF);
- pUnit->SetMaxHealth(10000000);
- pUnit->SetHealth(10000000);
- pUnit->setFaction(17772);
- pUnit->Attack(m_creature, true);
- m_creature->AddThreat(pUnit,0);
- }
}
}
@@ -1451,14 +1246,6 @@ struct mob_gargoyleAI : public hyjal_trashAI
DoCast(target,SPELL_GARGOYLE_STRIKE,true);
}
}
- if (IsOverrun && i == LastOverronPos)
- {
- AddWaypoint(0, 5536.65+irand(-80,80), -2710.66+irand(-80,80), 1504.45+irand(-10,10));
- AddWaypoint(1, 5536.65+irand(-80,80), -2710.66+irand(-80,80), 1504.45+irand(-10,10));
- SetDespawnAtEnd(false);
- LastOverronPos = 1;
- Start(false, true, true);
- }
}
void JustDied(Unit *victim)