aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKudlaty <none@none>2009-08-13 02:48:34 +0200
committerKudlaty <none@none>2009-08-13 02:48:34 +0200
commited637fbf1fec965c8eaaf6e41e939107a5ea9aab (patch)
tree2f6bbe89fecd7d1666fa22d6f4dd55ffda14c00f
parent46f4159c5ec165345859beac8ceca7581374aa6b (diff)
Merge [SD2]
r1211 Correct tempsummon type for adds and add spellId for future use. Patch by Abim - skip r1212 Added support for quest 6523. Patch by Meldanor - skip (already have that, just move waypoints to db) r1213 Add a few missing address-of operators and some general cleanup. r1214 Adjusting how pet are summoned and check when new pet can be summoned for sharkkis. - skip r1215 Added support for event related to quest 12727. Original patch by ckegg r1216 Some adjustments to function for controlling combat movement (MoveChase()) r1217 Use SetCombatMovement() for more scripts where expected and remove one useless function from Scripted_NoMovementAI (this may be fully removed) r1218 Correct script_texts, adding variable %s where missing (...and where expected. Note that not all creature emote texts contain name of sender). - skip r1219 Reset DATA_OPERA_OZ_DEATHCOUNT to 0 at start, in case event was previously run and incremented counter. r1220 Correct lost-in-process FillPointMovementListForCreature() for quest 12727 (copy/paste == bad) --HG-- branch : trunk
-rw-r--r--sql/FULL/world_script_texts.sql14
-rw-r--r--sql/FULL/world_script_waypoints.sql36
-rw-r--r--sql/FULL/world_scripts_full.sql1
-rw-r--r--sql/updates/4944_world.sql50
-rw-r--r--src/bindings/scripts/include/sc_creature.cpp22
-rw-r--r--src/bindings/scripts/include/sc_creature.h8
-rw-r--r--src/bindings/scripts/scripts/npc/npc_escortAI.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp5
-rw-r--r--src/bindings/scripts/scripts/zone/desolace/desolace.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp191
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp5
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp3
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp7
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp5
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp7
-rw-r--r--src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp69
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp37
18 files changed, 377 insertions, 93 deletions
diff --git a/sql/FULL/world_script_texts.sql b/sql/FULL/world_script_texts.sql
index ecfef337f5e..1cc94bcc09b 100644
--- a/sql/FULL/world_script_texts.sql
+++ b/sql/FULL/world_script_texts.sql
@@ -30,7 +30,7 @@ CREATE TABLE `script_texts` (
INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES
(-1000000, '<TrinityScript Text Entry Missing!>', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'DEFAULT_TEXT'),
-(-1000001, 'goes into a killing frenzy!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, 0, 0, 'EMOTE_GENERIC_FRENZY_KILL'),
+(-1000001, '%s goes into a killing frenzy!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, 0, 0, 'EMOTE_GENERIC_FRENZY_KILL'),
(-1000004, 'goes into a berserker rage!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, 0, 0, 'EMOTE_GENERIC_BERSERK'),
(-1000005, 'UNUSED', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'REUSE ME');
@@ -1952,7 +1952,17 @@ INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content
(-1609085,'You have challenged death itself!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'dk_initiate SAY_DUEL_F'),
(-1609086,'The Lich King will see his true champion on this day!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'dk_initiate SAY_DUEL_G'),
(-1609087,'You\'re going down!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'dk_initiate SAY_DUEL_H'),
-(-1609088,'You don\'t stand a chance, $n', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'dk_initiate SAY_DUEL_I');
+(-1609088,'You don\'t stand a chance, $n', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'dk_initiate SAY_DUEL_I'),
+(-1609089, 'I\'ll need to get my runeblade and armor... Just need a little more time.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,399,'koltira SAY_BREAKOUT1'),
+(-1609090, 'I\'m still weak, but I think I can get an anti-magic barrier up. Stay inside it or you\'ll be destroyed by their spells.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT2'),
+(-1609091, 'Maintaining this barrier will require all of my concentration. Kill them all!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,16,'koltira SAY_BREAKOUT3'),
+(-1609092, 'There are more coming. Defend yourself! Don\'t fall out of the anti-magic field! They\'ll tear you apart without its protection!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT4'),
+(-1609093, 'I can\'t keep barrier up much longer... Where is that coward?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT5'),
+(-1609094, 'The High Inquisitor comes! Be ready, death knight! Do not let him draw you out of the protective bounds of my anti-magic field! Kill him and take his head!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT6'),
+(-1609095, 'Stay in the anti-magic field! Make them come to you!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT7'),
+(-1609096, 'The death of the High Inquisitor of New Avalon will not go unnoticed. You need to get out of here at once! Go, before more of them show up. I\'ll be fine on my own.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT8'),
+(-1609097, 'I\'ll draw their fire, you make your escape behind me.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT9'),
+(-1609098, 'Your High Inquisitor is nothing more than a pile of meat, Crusaders! There are none beyond the grasp of the Scourge!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,1,0,0,'koltira SAY_BREAKOUT10');
--
-- Below just for beautiful view in table, run at own desire
diff --git a/sql/FULL/world_script_waypoints.sql b/sql/FULL/world_script_waypoints.sql
index 4bee03e175b..df7b78aaffd 100644
--- a/sql/FULL/world_script_waypoints.sql
+++ b/sql/FULL/world_script_waypoints.sql
@@ -13,6 +13,42 @@ CREATE TABLE script_waypoint (
PRIMARY KEY (entry, pointid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Creature waypoints';
+DELETE FROM script_waypoint WHERE entry=28912;
+INSERT INTO script_waypoint VALUES
+(28912, 0, 1653.518, -6038.374, 127.585, 0, 'Jump off'),
+(28912, 1, 1653.978, -6034.614, 127.585, 5000, 'To Box'),
+(28912, 2, 1653.854, -6034.726, 127.585, 500, 'Equip'),
+(28912, 3, 1652.297, -6035.671, 127.585, 3000, 'Recover'),
+(28912, 4, 1639.762, -6046.343, 127.948, 0, 'Escape'),
+(28912, 5, 1640.963, -6028.119, 134.740, 0, ''),
+(28912, 6, 1625.805, -6029.197, 134.740, 0, ''),
+(28912, 7, 1626.845, -6015.085, 134.740, 0, ''),
+(28912, 8, 1649.150, -6016.975, 133.240, 0, ''),
+(28912, 9, 1653.063, -5974.844, 132.652, 5000, 'Mount'),
+(28912, 10, 1654.747, -5926.424, 121.191, 0, 'Disappear');
+
+DELETE FROM script_waypoint WHERE entry=11856;
+INSERT INTO script_waypoint VALUES
+(11856, 0, 113.91, -350.13, 4.55, 0, ''),
+(11856, 1, 109.54, -350.08, 3.74, 0, ''),
+(11856, 2, 106.95, -353.40, 3.60, 0, ''),
+(11856, 3, 100.28, -338.89, 2.97, 0, ''),
+(11856, 4, 110.11, -320.26, 3.47, 0, ''),
+(11856, 5, 109.78, -287.80, 5.30, 0, ''),
+(11856, 6, 105.02, -269.71, 4.71, 0, ''),
+(11856, 7, 86.71, -251.81, 5.34, 0, ''),
+(11856, 8, 64.10, -246.38, 5.91, 0, ''),
+(11856, 9, -2.55, -243.58, 6.3, 0, ''),
+(11856, 10, -27.78, -267.53, -1.08, 0, ''),
+(11856, 11, -31.27, -283.54, -4.36, 0, ''),
+(11856, 12, -28.96, -322.44, -9.19, 0, ''),
+(11856, 13, -35.63, -360.03, -16.59, 0, ''),
+(11856, 14, -58.30, -412.26, -30.60, 0, ''),
+(11856, 15, -58.88, -474.17, -44.54, 0, ''),
+(11856, 16, -45.92, -496.57, -46.26, 5000, 'AMBUSH'),
+(11856, 17, -40.25, -510.07, -46.05, 0, ''),
+(11856, 18, -38.88, -520.72, -46.06, 5000, 'END');
+
DELETE FROM script_waypoint WHERE entry=24358;
INSERT INTO script_waypoint VALUES
(24358, 0, 121.193970, 1645.619385, 42.021, 0, ''),
diff --git a/sql/FULL/world_scripts_full.sql b/sql/FULL/world_scripts_full.sql
index 386090b735b..aef85a874f5 100644
--- a/sql/FULL/world_scripts_full.sql
+++ b/sql/FULL/world_scripts_full.sql
@@ -103,6 +103,7 @@ UPDATE `creature_template` SET `ScriptName`='npc_dark_rider_of_acherus' WHERE `e
UPDATE `creature_template` SET `ScriptName`='npc_ros_dark_rider' WHERE `entry`=28768;
UPDATE `creature_template` SET `ScriptName`='npc_dkc1_gothik' WHERE `entry`=28658;
UPDATE `creature_template` SET `ScriptName`='npc_a_special_surprise' WHERE `entry` IN (29032,29061,29065,29067,29068,29070,29074,29072,29073,29071);
+UPDATE `creature_template` SET `ScriptName`='npc_koltira_deathweaver' WHERE `entry`=28912;
UPDATE `creature_template` SET `ScriptName`='npc_demolisher_engineerer' WHERE `entry` IN (30400,30499);
UPDATE `creature_template` SET `ScriptName`='npc_valkyr_battle_maiden' WHERE `entry`=28534;
UPDATE `creature_template` SET `ScriptName`='npc_mirror_image' WHERE `entry`=31216;
diff --git a/sql/updates/4944_world.sql b/sql/updates/4944_world.sql
new file mode 100644
index 00000000000..cc1c26f20d6
--- /dev/null
+++ b/sql/updates/4944_world.sql
@@ -0,0 +1,50 @@
+DELETE FROM script_waypoint WHERE entry=11856;
+INSERT INTO script_waypoint VALUES
+(11856, 0, 113.91, -350.13, 4.55, 0, ''),
+(11856, 1, 109.54, -350.08, 3.74, 0, ''),
+(11856, 2, 106.95, -353.40, 3.60, 0, ''),
+(11856, 3, 100.28, -338.89, 2.97, 0, ''),
+(11856, 4, 110.11, -320.26, 3.47, 0, ''),
+(11856, 5, 109.78, -287.80, 5.30, 0, ''),
+(11856, 6, 105.02, -269.71, 4.71, 0, ''),
+(11856, 7, 86.71, -251.81, 5.34, 0, ''),
+(11856, 8, 64.10, -246.38, 5.91, 0, ''),
+(11856, 9, -2.55, -243.58, 6.3, 0, ''),
+(11856, 10, -27.78, -267.53, -1.08, 0, ''),
+(11856, 11, -31.27, -283.54, -4.36, 0, ''),
+(11856, 12, -28.96, -322.44, -9.19, 0, ''),
+(11856, 13, -35.63, -360.03, -16.59, 0, ''),
+(11856, 14, -58.30, -412.26, -30.60, 0, ''),
+(11856, 15, -58.88, -474.17, -44.54, 0, ''),
+(11856, 16, -45.92, -496.57, -46.26, 5000, 'AMBUSH'),
+(11856, 17, -40.25, -510.07, -46.05, 0, ''),
+(11856, 18, -38.88, -520.72, -46.06, 5000, 'END');
+
+DELETE FROM script_waypoint WHERE entry=28912;
+INSERT INTO script_waypoint VALUES
+(28912, 0, 1653.518, -6038.374, 127.585, 0, 'Jump off'),
+(28912, 1, 1653.978, -6034.614, 127.585, 5000, 'To Box'),
+(28912, 2, 1653.854, -6034.726, 127.585, 500, 'Equip'),
+(28912, 3, 1652.297, -6035.671, 127.585, 3000, 'Recover'),
+(28912, 4, 1639.762, -6046.343, 127.948, 0, 'Escape'),
+(28912, 5, 1640.963, -6028.119, 134.740, 0, ''),
+(28912, 6, 1625.805, -6029.197, 134.740, 0, ''),
+(28912, 7, 1626.845, -6015.085, 134.740, 0, ''),
+(28912, 8, 1649.150, -6016.975, 133.240, 0, ''),
+(28912, 9, 1653.063, -5974.844, 132.652, 5000, 'Mount'),
+(28912, 10, 1654.747, -5926.424, 121.191, 0, 'Disappear');
+
+UPDATE creature_template SET ScriptName='npc_koltira_deathweaver' WHERE entry=28912;
+
+DELETE FROM `script_texts` WHERE `entry` between -1609098 AND -1609089;
+INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES
+(-1609089, 'I\'ll need to get my runeblade and armor... Just need a little more time.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,399,'koltira SAY_BREAKOUT1'),
+(-1609090, 'I\'m still weak, but I think I can get an anti-magic barrier up. Stay inside it or you\'ll be destroyed by their spells.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT2'),
+(-1609091, 'Maintaining this barrier will require all of my concentration. Kill them all!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,16,'koltira SAY_BREAKOUT3'),
+(-1609092, 'There are more coming. Defend yourself! Don\'t fall out of the anti-magic field! They\'ll tear you apart without its protection!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT4'),
+(-1609093, 'I can\'t keep barrier up much longer... Where is that coward?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT5'),
+(-1609094, 'The High Inquisitor comes! Be ready, death knight! Do not let him draw you out of the protective bounds of my anti-magic field! Kill him and take his head!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT6'),
+(-1609095, 'Stay in the anti-magic field! Make them come to you!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT7'),
+(-1609096, 'The death of the High Inquisitor of New Avalon will not go unnoticed. You need to get out of here at once! Go, before more of them show up. I\'ll be fine on my own.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT8'),
+(-1609097, 'I\'ll draw their fire, you make your escape behind me.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,0,0,0,'koltira SAY_BREAKOUT9'),
+(-1609098, 'Your High Inquisitor is nothing more than a pile of meat, Crusaders! There are none beyond the grasp of the Scourge!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,0,1,0,0,'koltira SAY_BREAKOUT10');
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp
index 956a76790f8..4438f42564f 100644
--- a/src/bindings/scripts/include/sc_creature.cpp
+++ b/src/bindings/scripts/include/sc_creature.cpp
@@ -79,7 +79,7 @@ void SummonList::DespawnAll()
}
}
-ScriptedAI::ScriptedAI(Creature* creature) : CreatureAI(creature), m_creature(creature), IsFleeing(false), CombatMovement(true), m_uiEvadeCheckCooldown(2500)
+ScriptedAI::ScriptedAI(Creature* creature) : CreatureAI(creature), m_creature(creature), IsFleeing(false), m_bCombatMovement(true), m_uiEvadeCheckCooldown(2500)
{
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -572,9 +572,9 @@ void ScriptedAI::SetEquipmentSlots(bool bLoadDefault, int32 uiMainHand, int32 ui
m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, uint32(uiRanged));
}
-void ScriptedAI::SetCombatMovement(bool CombatMove)
+void ScriptedAI::SetCombatMovement(bool bCombatMove)
{
- CombatMovement = CombatMove;
+ m_bCombatMovement = bCombatMove;
}
// Hacklike storage used for misc creatures that are expected to evade of outside of a certain area.
@@ -623,22 +623,6 @@ bool ScriptedAI::EnterEvadeIfOutOfCombatArea(const uint32 uiDiff)
return true;
}
-/*void Scripted_NoMovementAI::MoveInLineOfSight(Unit *who)
-{
- if( !m_creature->getVictim() && m_creature->canAttack(who) && ( m_creature->IsHostileTo( who )) && who->isInAccessiblePlaceFor(m_creature) )
- {
- if (!m_creature->canFly() && !m_creature->IsWithinDist(who, CREATURE_Z_ATTACK_RANGE))
- return;
-
- float attackRadius = m_creature->GetAttackDistance(who);
- if( m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who) )
- {
- who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
- AttackStart(who);
- }
- }
-}*/
-
void Scripted_NoMovementAI::AttackStart(Unit* who)
{
if (!who)
diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h
index 13d721f01ab..cfce5c25bfa 100644
--- a/src/bindings/scripts/include/sc_creature.h
+++ b/src/bindings/scripts/include/sc_creature.h
@@ -190,14 +190,14 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
void SetEquipmentSlots(bool bLoadDefault, int32 uiMainHand = EQUIP_NO_CHANGE, int32 uiOffHand = EQUIP_NO_CHANGE, int32 uiRanged = EQUIP_NO_CHANGE);
+ //Generally used to control if MoveChase() is to be used or not in AttackStart(). Some creatures does not chase victims
void SetCombatMovement(bool CombatMove);
+ bool IsCombatMovement() { return m_bCombatMovement; }
bool EnterEvadeIfOutOfCombatArea(const uint32 uiDiff);
- protected:
- bool CombatMovement;
-
private:
+ bool m_bCombatMovement;
uint32 m_uiEvadeCheckCooldown;
};
@@ -205,8 +205,6 @@ struct TRINITY_DLL_DECL Scripted_NoMovementAI : public ScriptedAI
{
Scripted_NoMovementAI(Creature* creature) : ScriptedAI(creature) {}
- //Called if IsVisible(Unit *who) is true at each *who move
- //void MoveInLineOfSight(Unit* who);
//Called at each attack of m_creature by any victim
void AttackStart(Unit* who);
diff --git a/src/bindings/scripts/scripts/npc/npc_escortAI.cpp b/src/bindings/scripts/scripts/npc/npc_escortAI.cpp
index d8a6cdf1c21..2a6e593c113 100644
--- a/src/bindings/scripts/scripts/npc/npc_escortAI.cpp
+++ b/src/bindings/scripts/scripts/npc/npc_escortAI.cpp
@@ -28,7 +28,7 @@ void npc_escortAI::AttackStart(Unit *who)
if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
m_creature->GetMotionMaster()->MovementExpired();
- if(CombatMovement)
+ if (IsCombatMovement())
m_creature->GetMotionMaster()->MoveChase(who);
}
}
@@ -45,7 +45,9 @@ void npc_escortAI::JustRespawned()
{
IsBeingEscorted = false;
IsOnHold = false;
- CombatMovement = true;
+
+ if (!IsCombatMovement())
+ SetCombatMovement(true);
m_uiWPWaitTimer = 0;
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp
index 753b8a31470..eb48a3dbe7a 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp
@@ -34,10 +34,11 @@ EndScriptData */
#define SPELL_SONIC_SHOCK 38797
#define SPELL_THUNDERING_STORM 39365
-struct TRINITY_DLL_DECL boss_murmurAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL boss_murmurAI : public ScriptedAI
{
- boss_murmurAI(Creature *c) : Scripted_NoMovementAI(c)
+ boss_murmurAI(Creature *c) : ScriptedAI(c)
{
+ SetCombatMovement(false);
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/desolace/desolace.cpp b/src/bindings/scripts/scripts/zone/desolace/desolace.cpp
index 1f0e2e71286..6423fc08018 100644
--- a/src/bindings/scripts/scripts/zone/desolace/desolace.cpp
+++ b/src/bindings/scripts/scripts/zone/desolace/desolace.cpp
@@ -167,7 +167,7 @@ void AddSC_desolace()
newscript = new Script;
newscript->Name = "npc_aged_dying_ancient_kodo";
- newscript->GetAI = GetAI_npc_aged_dying_ancient_kodo;
+ newscript->GetAI = &GetAI_npc_aged_dying_ancient_kodo;
newscript->pEffectDummyCreature = &EffectDummyCreature_npc_aged_dying_ancient_kodo;
newscript->pGossipHello = &GossipHello_npc_aged_dying_ancient_kodo;
newscript->RegisterSelf();
diff --git a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp
index 4eef9a5d5c8..26aabed2cd7 100644
--- a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp
+++ b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp
@@ -19,6 +19,7 @@
#include "precompiled.h"
#include "Vehicle.h"
#include "ObjectMgr.h"
+#include "../../npc/npc_escortAI.h"
#define GCD_CAST 1
@@ -480,6 +481,190 @@ CreatureAI* GetAI_npc_a_special_surprise(Creature* pCreature)
}
/*######
+## npc_koltira_deathweaver
+######*/
+
+enum eKoltira
+{
+ SAY_BREAKOUT1 = -1609079,
+ SAY_BREAKOUT2 = -1609080,
+ SAY_BREAKOUT3 = -1609081,
+ SAY_BREAKOUT4 = -1609082,
+ SAY_BREAKOUT5 = -1609083,
+ SAY_BREAKOUT6 = -1609084,
+ SAY_BREAKOUT7 = -1609085,
+ SAY_BREAKOUT8 = -1609086,
+ SAY_BREAKOUT9 = -1609087,
+ SAY_BREAKOUT10 = -1609088,
+
+ SPELL_KOLTIRA_TRANSFORM = 52899,
+ SPELL_ANTI_MAGIC_ZONE = 52894,
+
+ QUEST_BREAKOUT = 12727,
+
+ NPC_CRIMSON_ACOLYTE = 29007,
+ NPC_HIGH_INQUISITOR_VALROTH = 29001,
+ NPC_KOLTIRA_ALT = 28447,
+
+ //not sure about this id
+ //NPC_DEATH_KNIGHT_MOUNT = 29201,
+ MODEL_DEATH_KNIGHT_MOUNT = 25278
+};
+
+struct TRINITY_DLL_DECL npc_koltira_deathweaverAI : public npc_escortAI
+{
+ npc_koltira_deathweaverAI(Creature *pCreature) : npc_escortAI(pCreature) { }
+
+ uint32 m_uiWave;
+ uint32 m_uiWave_Timer;
+ uint64 m_uiValrothGUID;
+
+ void Reset()
+ {
+ if (!IsBeingEscorted)
+ {
+ m_uiWave = 0;
+ m_uiWave_Timer = 3000;
+ m_uiValrothGUID = 0;
+ }
+ }
+
+ void WaypointReached(uint32 uiPointId)
+ {
+ switch(uiPointId)
+ {
+ case 0:
+ DoScriptText(SAY_BREAKOUT1, m_creature);
+ break;
+ case 1:
+ m_creature->SetStandState(UNIT_STAND_STATE_KNEEL);
+ break;
+ case 2:
+ m_creature->SetStandState(UNIT_STAND_STATE_STAND);
+ //m_creature->UpdateEntry(NPC_KOLTIRA_ALT); //unclear if we must update or not
+ DoCast(m_creature, SPELL_KOLTIRA_TRANSFORM);
+ break;
+ case 3:
+ IsOnHold = true;
+ m_creature->SetStandState(UNIT_STAND_STATE_KNEEL);
+ DoScriptText(SAY_BREAKOUT2, m_creature);
+ DoCast(m_creature, SPELL_ANTI_MAGIC_ZONE); // cast again that makes bubble up
+ break;
+ case 4:
+ SetRun(true);
+ break;
+ case 9:
+ m_creature->Mount(MODEL_DEATH_KNIGHT_MOUNT);
+ break;
+ case 10:
+ m_creature->Unmount();
+ break;
+ }
+ }
+
+ void JustSummoned(Creature* pSummoned)
+ {
+ if (Unit* pPlayer = Unit::GetUnit(*m_creature, PlayerGUID))
+ {
+ pSummoned->AI()->AttackStart(pPlayer);
+ pSummoned->AddThreat(m_creature, 0.0f);
+ }
+
+ if (pSummoned->GetEntry() == NPC_HIGH_INQUISITOR_VALROTH)
+ m_uiValrothGUID = pSummoned->GetGUID();
+ }
+
+ void SummonAcolyte(uint32 uiAmount)
+ {
+ for(uint32 i = 0; i < uiAmount; ++i)
+ m_creature->SummonCreature(NPC_CRIMSON_ACOLYTE, 1642.329, -6045.818, 127.583, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ }
+
+ void UpdateAI(const uint32 uiDiff)
+ {
+ npc_escortAI::UpdateAI(uiDiff);
+
+ if (IsOnHold)
+ {
+ if (m_uiWave_Timer < uiDiff)
+ {
+ switch(m_uiWave)
+ {
+ case 0:
+ DoScriptText(SAY_BREAKOUT3, m_creature);
+ SummonAcolyte(3);
+ m_uiWave_Timer = 20000;
+ break;
+ case 1:
+ DoScriptText(SAY_BREAKOUT4, m_creature);
+ SummonAcolyte(3);
+ m_uiWave_Timer = 20000;
+ break;
+ case 2:
+ DoScriptText(SAY_BREAKOUT5, m_creature);
+ SummonAcolyte(4);
+ m_uiWave_Timer = 20000;
+ break;
+ case 3:
+ DoScriptText(SAY_BREAKOUT6, m_creature);
+ m_creature->SummonCreature(NPC_HIGH_INQUISITOR_VALROTH, 1642.329, -6045.818, 127.583, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000);
+ m_uiWave_Timer = 1000;
+ break;
+ case 4:
+ {
+ Unit* pTemp = Unit::GetUnit(*m_creature, m_uiValrothGUID);
+
+ if (!pTemp || !pTemp->isAlive())
+ {
+ DoScriptText(SAY_BREAKOUT8, m_creature);
+ m_uiWave_Timer = 5000;
+ }
+ else
+ {
+ m_uiWave_Timer = 2500;
+ return; //return, we don't want m_uiWave to increment now
+ }
+ break;
+ }
+ case 5:
+ DoScriptText(SAY_BREAKOUT9, m_creature);
+ m_creature->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE);
+ m_uiWave_Timer = 2500;
+ break;
+ case 6:
+ DoScriptText(SAY_BREAKOUT10, m_creature);
+ IsOnHold = false;
+ break;
+ }
+
+ ++m_uiWave;
+ }
+ else
+ m_uiWave_Timer -= uiDiff;
+ }
+ }
+};
+
+CreatureAI* GetAI_npc_koltira_deathweaver(Creature* pCreature)
+{
+ npc_koltira_deathweaverAI* pTempAI = new npc_koltira_deathweaverAI(pCreature);
+
+ pTempAI->FillPointMovementListForCreature();
+
+ return (CreatureAI*)pTempAI;
+}
+
+bool QuestAccept_npc_koltira_deathweaver(Player* pPlayer, Creature* pCreature, const Quest* pQuest)
+{
+ if (pQuest->GetQuestId() == QUEST_BREAKOUT)
+ {
+ pCreature->SetStandState(UNIT_STAND_STATE_STAND);
+ CAST_AI(npc_escortAI,pCreature->AI())->Start(false, true, false, pPlayer->GetGUID());
+ }
+ return true;
+}
+
+/*######
##Quest 12848
######*/
@@ -1242,6 +1427,12 @@ void AddSC_the_scarlet_enclave()
Script *newscript;
newscript = new Script;
+ newscript->Name = "npc_koltira_deathweaver";
+ newscript->GetAI = &GetAI_npc_koltira_deathweaver;
+ newscript->pQuestAccept = &QuestAccept_npc_koltira_deathweaver;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
newscript->Name="npc_unworthy_initiate";
newscript->GetAI = &GetAI_npc_unworthy_initiate;
newscript->RegisterSelf();
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp
index 03b99e0ef36..fbb9aaaf673 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp
@@ -41,10 +41,11 @@ EndScriptData */
#define H_SPELL_SHADOW_BOLT 39297
#define SPELL_SUMMON_FIENDISH_HOUND 30707
-struct TRINITY_DLL_DECL boss_omor_the_unscarredAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL boss_omor_the_unscarredAI : public ScriptedAI
{
- boss_omor_the_unscarredAI(Creature *c) : Scripted_NoMovementAI(c)
+ boss_omor_the_unscarredAI(Creature *c) : ScriptedAI(c)
{
+ SetCombatMovement(false);
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
index 954cb4ee872..d730cb4b680 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
@@ -297,7 +297,7 @@ void AddSC_boss_warchief_kargath_bladefist()
Script *newscript;
newscript = new Script;
newscript->Name="boss_warchief_kargath_bladefist";
- newscript->GetAI = GetAI_boss_warchief_kargath_bladefist;
+ newscript->GetAI = &GetAI_boss_warchief_kargath_bladefist;
newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
index 45874e4a83e..19bc46dfc53 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
@@ -88,7 +88,8 @@ EndScriptData */
void SummonCroneIfReady(ScriptedInstance* pInstance, Creature* pCreature)
{
- pInstance->SetData(DATA_OPERA_OZ_DEATHCOUNT, 0); // Increment DeathCount
+ pInstance->SetData(DATA_OPERA_OZ_DEATHCOUNT, SPECIAL); // Increment DeathCount
+
if(pInstance->GetData(DATA_OPERA_OZ_DEATHCOUNT) == 4)
{
if (Creature* pCrone = pCreature->SummonCreature(CREATURE_CRONE, -10891.96, -1755.95, pCreature->GetPositionZ(), 4.64, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILISECONDS))
diff --git a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
index 554d8392b69..25c3f9c57f0 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
@@ -189,7 +189,12 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
break;
Encounters[11] = data;
break;
- case DATA_OPERA_OZ_DEATHCOUNT: ++OzDeathCount; break;
+ case DATA_OPERA_OZ_DEATHCOUNT:
+ if (data == SPECIAL)
+ ++OzDeathCount;
+ else if (data == IN_PROGRESS)
+ OzDeathCount = 0;
+ break;
}
if(data == DONE)
diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
index 8156e8fff9c..a7bab8e75a9 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
@@ -304,6 +304,11 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI
return;
pInstance->SetData(DATA_OPERA_EVENT, IN_PROGRESS);
+
+ //resets count for this event, in case earlier failed
+ if (Event == EVENT_OZ)
+ pInstance->SetData(DATA_OPERA_OZ_DEATHCOUNT, IN_PROGRESS);
+
pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT), true);
m_creature->CastSpell(m_creature, SPELL_TUXEDO, true);
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
index 4260e4f5bb2..7e956696aa8 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
@@ -83,9 +83,12 @@ EndScriptData */
#define ADD_8Z -229.683182
#define ADD_8O 4.693108
-struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
{
- boss_ragnarosAI(Creature *c) : Scripted_NoMovementAI(c) {}
+ boss_ragnarosAI(Creature *c) : ScriptedAI(c)
+ {
+ SetCombatMovement(false);
+ }
uint32 WrathOfRagnaros_Timer;
uint32 HandOfRagnaros_Timer;
diff --git a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
index b513a4bce86..adf846322d3 100644
--- a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
+++ b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
@@ -80,14 +80,20 @@ bool GossipSelect_npc_braug_dimspirit(Player *player, Creature *_Creature, uint3
## npc_kaya_flathoof
######*/
-#define SAY_START -1000347
-#define SAY_AMBUSH -1000348
-#define SAY_END -1000349
+enum
+{
+ FACTION_ESCORTEE_H = 775,
+
+ NPC_GRIMTOTEM_RUFFIAN = 11910,
+ NPC_GRIMTOTEM_BRUTE = 11912,
+ NPC_GRIMTOTEM_SORCERER = 11913,
+
+ SAY_START = -1000347,
+ SAY_AMBUSH = -1000348,
+ SAY_END = -1000349,
-#define QUEST_PK 6523
-#define MOB_GB 11912
-#define MOB_GR 11910
-#define MOB_GS 11913
+ QUEST_PROTECT_KAYA = 6523
+};
struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI
{
@@ -102,16 +108,16 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI
switch(i)
{
- case 22:
+ case 16:
DoScriptText(SAY_AMBUSH, m_creature);
- m_creature->SummonCreature(MOB_GB, -48.53, -503.34, -46.31, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- m_creature->SummonCreature(MOB_GR, -38.85, -503.77, -45.90, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- m_creature->SummonCreature(MOB_GS, -36.37, -496.23, -45.71, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ m_creature->SummonCreature(NPC_GRIMTOTEM_BRUTE, -48.53, -503.34, -46.31, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ m_creature->SummonCreature(NPC_GRIMTOTEM_RUFFIAN, -38.85, -503.77, -45.90, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ m_creature->SummonCreature(NPC_GRIMTOTEM_SORCERER, -36.37, -496.23, -45.71, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
- case 23: m_creature->SetInFront(player);
+ case 18: m_creature->SetInFront(player);
DoScriptText(SAY_END, m_creature, player);
if (player && player->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(player)->GroupEventHappens(QUEST_PK, m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_PROTECT_KAYA, m_creature);
break;
}
}
@@ -131,7 +137,7 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if (player)
- CAST_PLR(player)->FailQuest(QUEST_PK);
+ CAST_PLR(player)->FailQuest(QUEST_PROTECT_KAYA);
}
}
@@ -143,7 +149,7 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI
bool QuestAccept_npc_kaya_flathoof(Player* player, Creature* creature, Quest const* quest)
{
- if (quest->GetQuestId() == QUEST_PK)
+ if (quest->GetQuestId() == QUEST_PROTECT_KAYA)
{
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
DoScriptText(SAY_START, creature);
@@ -155,34 +161,11 @@ bool QuestAccept_npc_kaya_flathoof(Player* player, Creature* creature, Quest con
CreatureAI* GetAI_npc_kaya_flathoofAI(Creature *_Creature)
{
- npc_kaya_flathoofAI* thisAI = new npc_kaya_flathoofAI(_Creature);
-
- thisAI->AddWaypoint(0, 122.37, -345.80, 3.59);
- thisAI->AddWaypoint(1, 113.69, -350.01, 4.54);
- thisAI->AddWaypoint(2, 107.32, -353.09, 3.33);
- thisAI->AddWaypoint(3, 99.25, -342.43, 2.87);
- thisAI->AddWaypoint(4, 111.19, -315.60, 3.71);
- thisAI->AddWaypoint(5, 109.99, -293.92, 5.16);
- thisAI->AddWaypoint(6, 104.59, -268.27, 4.78);
- thisAI->AddWaypoint(7, 82.80, -247.28, 5.73);
- thisAI->AddWaypoint(8, 66.44, -245.99, 5.85);
- thisAI->AddWaypoint(9, 34.36, -246.01, 5.97);
- thisAI->AddWaypoint(10, 13.24, -245.61, 5.25);
- thisAI->AddWaypoint(11, -10.27, -248.66, 4.69);
- thisAI->AddWaypoint(12, -26.07, -262.76, 0.01);
- thisAI->AddWaypoint(13, -33.15, -282.03, -4.12);
- thisAI->AddWaypoint(14, -28.42, -315.52, -8.56);
- thisAI->AddWaypoint(15, -32.05, -339.34, -10.84);
- thisAI->AddWaypoint(16, -35.22, -358.11, -16.20);
- thisAI->AddWaypoint(17, -51.57, -391.63, -24.85);
- thisAI->AddWaypoint(18, -58.58, -409.08, -29.97);
- thisAI->AddWaypoint(19, -60.37, -441.23, -36.80);
- thisAI->AddWaypoint(20, -59.03, -476.39, -44.98);
- thisAI->AddWaypoint(21, -53.18, -490.31, -46.11);
- thisAI->AddWaypoint(22, -43.77, -497.99, -46.13, 3000);// summon
- thisAI->AddWaypoint(23, -41.77, -518.15, -46.13, 5000);//end
-
- return thisAI;
+ npc_kaya_flathoofAI* kayaAI = new npc_kaya_flathoofAI(_Creature);
+
+ kayaAI->FillPointMovementListForCreature();
+
+ return kayaAI;
}
/*######
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
index 923612d2fe0..08bf13b9810 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
@@ -106,9 +106,12 @@ EndScriptData */
#define KICK_Y 1984.0f
#define KICK_Z -96.0f
-struct TRINITY_DLL_DECL flesh_tentacleAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL flesh_tentacleAI : public ScriptedAI
{
- flesh_tentacleAI(Creature *c) : Scripted_NoMovementAI(c), Parent(0) {}
+ flesh_tentacleAI(Creature *c) : ScriptedAI(c), Parent(0)
+ {
+ SetCombatMovement(false);
+ }
uint64 Parent;
uint32 CheckTimer;
@@ -428,10 +431,12 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
}
};
-struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL cthunAI : public ScriptedAI
{
- cthunAI(Creature *c) : Scripted_NoMovementAI(c)
+ cthunAI(Creature *c) : ScriptedAI(c)
{
+ SetCombatMovement(false);
+
pInst = c->GetInstanceData();
if (!pInst)
error_log("TSCR: No Instance eye_of_cthunAI");
@@ -909,10 +914,12 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
}
};
-struct TRINITY_DLL_DECL eye_tentacleAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL eye_tentacleAI : public ScriptedAI
{
- eye_tentacleAI(Creature *c) : Scripted_NoMovementAI(c)
+ eye_tentacleAI(Creature *c) : ScriptedAI(c)
{
+ SetCombatMovement(false);
+
if (Unit* pPortal = m_creature->SummonCreature(MOB_SMALL_PORTAL, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0))
Portal = pPortal->GetGUID();
}
@@ -968,10 +975,12 @@ struct TRINITY_DLL_DECL eye_tentacleAI : public Scripted_NoMovementAI
}
};
-struct TRINITY_DLL_DECL claw_tentacleAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL claw_tentacleAI : public ScriptedAI
{
- claw_tentacleAI(Creature *c) : Scripted_NoMovementAI(c)
+ claw_tentacleAI(Creature *c) : ScriptedAI(c)
{
+ SetCombatMovement(false);
+
if (Unit* pPortal = m_creature->SummonCreature(MOB_SMALL_PORTAL, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0))
Portal = pPortal->GetGUID();
}
@@ -1057,10 +1066,12 @@ struct TRINITY_DLL_DECL claw_tentacleAI : public Scripted_NoMovementAI
}
};
-struct TRINITY_DLL_DECL giant_claw_tentacleAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL giant_claw_tentacleAI : public ScriptedAI
{
- giant_claw_tentacleAI(Creature *c) : Scripted_NoMovementAI(c)
+ giant_claw_tentacleAI(Creature *c) : ScriptedAI(c)
{
+ SetCombatMovement(false);
+
if (Unit* pPortal = m_creature->SummonCreature(MOB_GIANT_PORTAL, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0))
Portal = pPortal->GetGUID();
}
@@ -1156,10 +1167,12 @@ struct TRINITY_DLL_DECL giant_claw_tentacleAI : public Scripted_NoMovementAI
}
};
-struct TRINITY_DLL_DECL giant_eye_tentacleAI : public Scripted_NoMovementAI
+struct TRINITY_DLL_DECL giant_eye_tentacleAI : public ScriptedAI
{
- giant_eye_tentacleAI(Creature *c) : Scripted_NoMovementAI(c)
+ giant_eye_tentacleAI(Creature *c) : ScriptedAI(c)
{
+ SetCombatMovement(false);
+
if (Unit* pPortal = m_creature->SummonCreature(MOB_GIANT_PORTAL, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0))
Portal = pPortal->GetGUID();
}