From e5b259fb4ad5f48d22f3e47443bb727698c1b5fd Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sun, 10 Nov 2013 03:22:22 -0330 Subject: Scripting/Arcatraz: Move Zereketh the Unbound, Dalliah the Doomsayer, & Wrath-Scryer Soccothrates to cpp scripting and some cleanup. --- src/server/scripts/Outland/CMakeLists.txt | 3 + .../Outland/TempestKeep/arcatraz/arcatraz.cpp | 34 +-- .../Outland/TempestKeep/arcatraz/arcatraz.h | 56 +++-- .../arcatraz/boss_dalliah_the_doomsayer.cpp | 165 +++++++++++++ .../arcatraz/boss_harbinger_skyriss.cpp | 19 +- .../arcatraz/boss_wrath_scryer_soccothrates.cpp | 254 +++++++++++++++++++++ .../arcatraz/boss_zereketh_the_unbound.cpp | 132 +++++++++++ .../TempestKeep/arcatraz/instance_arcatraz.cpp | 61 ++--- 8 files changed, 642 insertions(+), 82 deletions(-) create mode 100644 src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp create mode 100644 src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp create mode 100644 src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp (limited to 'src/server/scripts') diff --git a/src/server/scripts/Outland/CMakeLists.txt b/src/server/scripts/Outland/CMakeLists.txt index 84cbbc3c30c..45db8a80a26 100644 --- a/src/server/scripts/Outland/CMakeLists.txt +++ b/src/server/scripts/Outland/CMakeLists.txt @@ -68,6 +68,9 @@ set(scripts_STAT_SRCS Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp Outland/TempestKeep/botanica/boss_warp_splinter.cpp Outland/TempestKeep/botanica/boss_laj.cpp + Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp + Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp + Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp Outland/TempestKeep/arcatraz/instance_arcatraz.cpp Outland/TempestKeep/arcatraz/arcatraz.h diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp index 9206636893c..8b3dc8f174c 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp @@ -103,10 +103,10 @@ class npc_millhouse_manastorm : public CreatureScript if (instance) { - if (instance->GetData(TYPE_WARDEN_2) == DONE) + if (instance->GetData(DATA_WARDEN_2) == DONE) Init = true; - if (instance->GetData(TYPE_HARBINGERSKYRISS) == DONE) + if (instance->GetData(DATA_HARBINGERSKYRISS) == DONE) Talk(SAY_COMPLETE); } } @@ -177,7 +177,7 @@ class npc_millhouse_manastorm : public CreatureScript break; case 7: if (instance) - instance->SetData(TYPE_WARDEN_2, DONE); + instance->SetData(DATA_WARDEN_2, DONE); Init = true; break; } @@ -305,7 +305,7 @@ class npc_warden_mellichar : public CreatureScript DoCast(me, SPELL_TARGET_OMEGA); if (instance) - instance->SetData(TYPE_HARBINGERSKYRISS, NOT_STARTED); + instance->SetData(DATA_HARBINGERSKYRISS, NOT_STARTED); } void AttackStart(Unit* /*who*/) OVERRIDE { } @@ -336,7 +336,7 @@ class npc_warden_mellichar : public CreatureScript if (instance) { - instance->SetData(TYPE_HARBINGERSKYRISS, IN_PROGRESS); + instance->SetData(DATA_HARBINGERSKYRISS, IN_PROGRESS); instance->HandleGameObject(instance->GetData64(DATA_SPHERE_SHIELD), false); IsRunning = true; } @@ -346,19 +346,19 @@ class npc_warden_mellichar : public CreatureScript { if (instance) { - if (Phase == 7 && instance->GetData(TYPE_WARDEN_4) == DONE) + if (Phase == 7 && instance->GetData(DATA_WARDEN_4) == DONE) return true; - if (Phase == 6 && instance->GetData(TYPE_WARDEN_3) == DONE) + if (Phase == 6 && instance->GetData(DATA_WARDEN_3) == DONE) return true; - if (Phase == 5 && instance->GetData(TYPE_WARDEN_2) == DONE) + if (Phase == 5 && instance->GetData(DATA_WARDEN_2) == DONE) return true; if (Phase == 4) return true; - if (Phase == 3 && instance->GetData(TYPE_WARDEN_1) == DONE) + if (Phase == 3 && instance->GetData(DATA_WARDEN_1) == DONE) return true; - if (Phase == 2 && instance->GetData(TYPE_HARBINGERSKYRISS) == IN_PROGRESS) + if (Phase == 2 && instance->GetData(DATA_HARBINGERSKYRISS) == IN_PROGRESS) return true; - if (Phase == 1 && instance->GetData(TYPE_HARBINGERSKYRISS) == IN_PROGRESS) + if (Phase == 1 && instance->GetData(DATA_HARBINGERSKYRISS) == IN_PROGRESS) return true; return false; } @@ -376,23 +376,23 @@ class npc_warden_mellichar : public CreatureScript { case 2: DoCast(me, SPELL_TARGET_ALPHA); - instance->SetData(TYPE_WARDEN_1, IN_PROGRESS); + instance->SetData(DATA_WARDEN_1, IN_PROGRESS); instance->HandleGameObject(instance->GetData64(DATA_SPHERE_SHIELD), false); break; case 3: DoCast(me, SPELL_TARGET_BETA); - instance->SetData(TYPE_WARDEN_2, IN_PROGRESS); + instance->SetData(DATA_WARDEN_2, IN_PROGRESS); break; case 5: DoCast(me, SPELL_TARGET_DELTA); - instance->SetData(TYPE_WARDEN_3, IN_PROGRESS); + instance->SetData(DATA_WARDEN_3, IN_PROGRESS); break; case 6: DoCast(me, SPELL_TARGET_GAMMA); - instance->SetData(TYPE_WARDEN_4, IN_PROGRESS); + instance->SetData(DATA_WARDEN_4, IN_PROGRESS); break; case 7: - instance->SetData(TYPE_WARDEN_5, IN_PROGRESS); + instance->SetData(DATA_WARDEN_5, IN_PROGRESS); break; } CanSpawn = true; @@ -408,7 +408,7 @@ class npc_warden_mellichar : public CreatureScript { if (instance) { - if (instance->GetData(TYPE_HARBINGERSKYRISS) == FAIL) + if (instance->GetData(DATA_HARBINGERSKYRISS) == FAIL) { Reset(); return; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h index 37839d4794d..038d94fc960 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h @@ -16,23 +16,49 @@ * with this program. If not, see . */ -#ifndef ARCATRAZ_H_ -#define ARCATRAZ_H_ +#ifndef ARCATRAZ_H +#define ARCATRAZ_H + +uint32 const EncounterCount = 13; + +#define AScriptName "instance_arcatraz" enum DataTypes { - TYPE_ZEREKETH = 1, - TYPE_DALLIAH = 2, - TYPE_SOCCOTHRATES = 3, - TYPE_HARBINGERSKYRISS = 4, - TYPE_WARDEN_1 = 5, - TYPE_WARDEN_2 = 6, - TYPE_WARDEN_3 = 7, - TYPE_WARDEN_4 = 8, - TYPE_WARDEN_5 = 9, - DATA_MELLICHAR = 10, - TYPE_SHIELD_OPEN = 11, - DATA_SPHERE_SHIELD = 12 + DATA_ZEREKETH = 1, + DATA_DALLIAH = 2, + DATA_SOCCOTHRATES = 3, + DATA_HARBINGERSKYRISS = 4, + DATA_WARDEN_1 = 5, + DATA_WARDEN_2 = 6, + DATA_WARDEN_3 = 7, + DATA_WARDEN_4 = 8, + DATA_WARDEN_5 = 9, + DATA_MELLICHAR = 10, + DATA_SHIELD_OPEN = 11, + DATA_SPHERE_SHIELD = 12, + DATA_CONVERSATION = 13 +}; + +enum CreaturesIds +{ + NPC_MELLICHAR = 20904, //skyriss will kill this unit + NPC_ALPHA_POD_TARGET = 21436, + NPC_DALLIAH = 20885, + NPC_SOCCOTHRATES = 20886 +}; + +enum GameObjectsIds +{ + CONTAINMENT_CORE_SECURITY_FIELD_ALPHA = 184318, //door opened when Wrath-Scryer Soccothrates dies + CONTAINMENT_CORE_SECURITY_FIELD_BETA = 184319, //door opened when Dalliah the Doomsayer dies + POD_ALPHA = 183961, //pod first boss wave + POD_BETA = 183963, //pod second boss wave + POD_DELTA = 183964, //pod third boss wave + POD_GAMMA = 183962, //pod fourth boss wave + POD_OMEGA = 183965, //pod fifth boss wave + WARDENS_SHIELD = 184802, // warden shield + SEAL_SPHERE = 184802 //shield 'protecting' mellichar }; -#endif // ARCATRAZ_H_ +#endif // ARCATRAZ_H diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp new file mode 100644 index 00000000000..20cfb2f07f8 --- /dev/null +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +/* ScriptData +SDName: boss_dalliah_the_doomsayer +SD%Complete: 95% +SDComment: soccothrates death left to script +SDCategory: Tempest Keep, The Arcatraz +EndScriptData */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "arcatraz.h" + +enum Say +{ + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_WHIRLWIND = 3, + SAY_HEAL = 4, + SAY_DEATH = 5, + SAY_SOCCOTHRATES_DEATH = 7, // To be scripted + + // boss_wrath_scryer_soccothrates + SAY_AGGRO_DALLIAH_FIRST = 0, + SAY_DALLIAH_25_PERCENT = 5 +}; + +enum Spells +{ + SPELL_GIFT_OF_THE_DOOMSAYER = 36173, + SPELL_WHIRLWIND = 36142, + SPELL_HEAL = 36144, + SPELL_SHADOW_WAVE = 39016 // Heroic only +}; + +enum Events +{ + EVENT_GIFT_OF_THE_DOOMSAYER = 1, + EVENT_WHIRLWIND = 2, + EVENT_HEAL = 3, + EVENT_SHADOW_WAVE = 4, // Heroic only + EVENT_ME_FIRST = 5 +}; + +class boss_dalliah_the_doomsayer : public CreatureScript +{ + public: + boss_dalliah_the_doomsayer() : CreatureScript("boss_dalliah_the_doomsayer") { } + + struct boss_dalliah_the_doomsayerAI : public BossAI + { + boss_dalliah_the_doomsayerAI(Creature* creature) : BossAI(creature, DATA_DALLIAH) { } + + void Reset() OVERRIDE + { + _Reset(); + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + Talk(SAY_DEATH); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.ScheduleEvent(EVENT_GIFT_OF_THE_DOOMSAYER, urand(1000, 4000)); + events.ScheduleEvent(EVENT_WHIRLWIND, urand(7000, 9000)); + if (IsHeroic()) + events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000)); + events.ScheduleEvent(EVENT_ME_FIRST, 6000); + Talk(SAY_AGGRO); + + if (Creature* soccothrates = me->FindNearestCreature(NPC_SOCCOTHRATES, 100.0f, true)) + soccothratesGUID = soccothrates->GetGUID(); + } + + void KilledUnit(Unit* /*victim*/) OVERRIDE + { + Talk(SAY_SLAY); + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_GIFT_OF_THE_DOOMSAYER: + DoCastVictim(SPELL_GIFT_OF_THE_DOOMSAYER, true); + events.ScheduleEvent(EVENT_GIFT_OF_THE_DOOMSAYER, urand(16000, 21000)); + break; + case EVENT_WHIRLWIND: + DoCast(me, SPELL_WHIRLWIND); + Talk(SAY_WHIRLWIND); + events.ScheduleEvent(EVENT_WHIRLWIND, urand(19000, 21000)); + events.ScheduleEvent(EVENT_HEAL, 6000); + break; + case EVENT_HEAL: + DoCast(me, SPELL_HEAL); + Talk(SAY_HEAL); + break; + case EVENT_SHADOW_WAVE: + DoCastVictim(SPELL_SHADOW_WAVE, true); + events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000)); + break; + case EVENT_ME_FIRST: + if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID)) + if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) + soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST); + break; + default: + break; + } + } + + if (HealthBelowPct(25) && !soccothratesTaunt) + { + if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID)) + soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT); + soccothratesTaunt = true; + } + + DoMeleeAttackIfReady(); + } + + private: + bool soccothratesTaunt; + uint64 soccothratesGUID; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_dalliah_the_doomsayerAI(creature); + } +}; + +void AddSC_boss_dalliah_the_doomsayer() +{ + new boss_dalliah_the_doomsayer(); +} diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index eda90d3b734..3748b704e0a 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -61,21 +61,15 @@ enum Spells class boss_harbinger_skyriss : public CreatureScript { public: + boss_harbinger_skyriss() : CreatureScript("boss_harbinger_skyriss") { } - boss_harbinger_skyriss() - : CreatureScript("boss_harbinger_skyriss") + struct boss_harbinger_skyrissAI : public BossAI { - } - struct boss_harbinger_skyrissAI : public ScriptedAI - { - boss_harbinger_skyrissAI(Creature* creature) : ScriptedAI(creature) + boss_harbinger_skyrissAI(Creature* creature) : BossAI(creature, DATA_HARBINGERSKYRISS) { - instance = creature->GetInstanceScript(); Intro = false; } - InstanceScript* instance; - bool Intro; bool IsImage33; bool IsImage66; @@ -117,8 +111,7 @@ class boss_harbinger_skyriss : public CreatureScript void JustDied(Unit* /*killer*/) OVERRIDE { Talk(SAY_DEATH); - if (instance) - instance->SetData(TYPE_HARBINGERSKYRISS, DONE); + _JustDied(); } void JustSummoned(Creature* summon) OVERRIDE @@ -137,7 +130,7 @@ class boss_harbinger_skyriss : public CreatureScript void KilledUnit(Unit* victim) OVERRIDE { //won't yell killing pet/other unit - if (victim->GetEntry() == 21436) + if (victim->GetEntry() == NPC_ALPHA_POD_TARGET) return; Talk(SAY_KILL); @@ -180,7 +173,7 @@ class boss_harbinger_skyriss : public CreatureScript //should have a better way to do this. possibly spell exist. mellic->setDeathState(JUST_DIED); mellic->SetHealth(0); - instance->SetData(TYPE_SHIELD_OPEN, IN_PROGRESS); + instance->SetData(DATA_SHIELD_OPEN, IN_PROGRESS); } ++Intro_Phase; Intro_Timer = 3000; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp new file mode 100644 index 00000000000..cef8a8b8e2d --- /dev/null +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp @@ -0,0 +1,254 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +/* ScriptData +SDName: boss_wrath_scryer_soccothrates +SD%Complete: 85% +SDComment: charge and dalliah death left to script +SDCategory: Tempest Keep, The Arcatraz +EndScriptData */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "arcatraz.h" + +enum Say +{ + // boss_wrath_scryer_soccothrates + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_KNOCK_AWAY = 3, + SAY_DEATH = 4, + SAY_DALLIAH_DEATH = 6, // To be scripted + SAY_SOCCOTHRATES_CONVO_1 = 7, + SAY_SOCCOTHRATES_CONVO_2 = 8, + SAY_SOCCOTHRATES_CONVO_3 = 9, + SAY_SOCCOTHRATES_CONVO_4 = 10, + + // boss_dalliah_the_doomsayer + SAY_AGGRO_SOCCOTHRATES_FIRST = 0, + SAY_SOCCOTHRATES_25_PERCENT = 6, + SAY_DALLIAH_CONVO_1 = 8, + SAY_DALLIAH_CONVO_2 = 9, + SAY_DALLIAH_CONVO_3 = 10 +}; + +enum Spells +{ + SPELL_FEL_IMMOLATION = 36051, + SPELL_FELFIRE_SHOCK = 35759, + SPELL_KNOCK_AWAY = 36512, + SPELL_FELFIRE_LINE_UP = 35770, + SPELL_CHARGE_TARGETING = 36038, + SPELL_CHARGE = 35754 +}; + +enum Events +{ + EVENT_FELFIRE_SHOCK = 1, + EVENT_KNOCK_AWAY = 2, + + EVENT_PREFIGHT_1 = 3, + EVENT_PREFIGHT_2 = 4, + EVENT_PREFIGHT_3 = 5, + EVENT_PREFIGHT_4 = 6, + EVENT_PREFIGHT_5 = 7, + EVENT_PREFIGHT_6 = 8, + EVENT_PREFIGHT_7 = 9, + EVENT_PREFIGHT_8 = 10, + EVENT_PREFIGHT_9 = 11, + EVENT_ME_FIRST = 12, +}; + +class boss_wrath_scryer_soccothrates : public CreatureScript +{ + public: + boss_wrath_scryer_soccothrates() : CreatureScript("boss_wrath_scryer_soccothrates") { } + + struct boss_wrath_scryer_soccothratesAI : public BossAI + { + boss_wrath_scryer_soccothratesAI(Creature* creature) : BossAI(creature, DATA_SOCCOTHRATES) { } + + void Reset() OVERRIDE + { + _Reset(); + preFight = false; + dalliahTaunt = false; + DoCast(me, SPELL_FEL_IMMOLATION); + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + Talk(SAY_DEATH); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.ScheduleEvent(EVENT_FELFIRE_SHOCK, urand(12000, 14000)); + events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000)); + events.ScheduleEvent(EVENT_ME_FIRST, 6000); + Talk(SAY_AGGRO); + preFight = false; + } + + void KilledUnit(Unit* /*victim*/) OVERRIDE + { + Talk(SAY_SLAY); + } + + void MoveInLineOfSight(Unit* who) OVERRIDE + { + if (instance) + { + if (instance->GetData(DATA_CONVERSATION) == NOT_STARTED && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 70.0f)) + { + Talk(SAY_SOCCOTHRATES_CONVO_1); + instance->SetData(DATA_CONVERSATION, DONE); + + if (Creature* dalliah = me->FindNearestCreature(NPC_DALLIAH, 50.0f, true)) + { + dalliahGUID = dalliah->GetGUID(); + preFight = true; + events.ScheduleEvent(EVENT_PREFIGHT_1, 2000); + } + } + } + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + { + if (preFight) + { + events.Update(diff); + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_PREFIGHT_1: + if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1); + events.ScheduleEvent(EVENT_PREFIGHT_2, 3000); + break; + case EVENT_PREFIGHT_2: + Talk(SAY_SOCCOTHRATES_CONVO_2); + events.ScheduleEvent(EVENT_PREFIGHT_3, 3000); + break; + case EVENT_PREFIGHT_3: + if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2); + events.ScheduleEvent(EVENT_PREFIGHT_4, 6000); + break; + case EVENT_PREFIGHT_4: + Talk(SAY_SOCCOTHRATES_CONVO_3); + events.ScheduleEvent(EVENT_PREFIGHT_5, 2000); + break; + case EVENT_PREFIGHT_5: + if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3); + events.ScheduleEvent(EVENT_PREFIGHT_6, 3000); + break; + case EVENT_PREFIGHT_6: + Talk(SAY_SOCCOTHRATES_CONVO_4); + events.ScheduleEvent(EVENT_PREFIGHT_7, 2000); + break; + case EVENT_PREFIGHT_7: + if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f); + events.ScheduleEvent(EVENT_PREFIGHT_8, 4000); + break; + case EVENT_PREFIGHT_8: + me->GetMotionMaster()->MovePoint(0, 122.1035f, 192.7203f, 22.44115f); + events.ScheduleEvent(EVENT_PREFIGHT_9, 4000); + break; + case EVENT_PREFIGHT_9: + if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + { + dalliah->SetFacingToObject(me); + me->SetFacingToObject(dalliah); + dalliah->SetHomePosition(dalliah->GetPositionX(), dalliah->GetPositionY(), dalliah->GetPositionZ(), 1.51737f); + me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 4.725722f); + preFight = false; + } + break; + default: + break; + } + } + } + + return; + } + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_FELFIRE_SHOCK: + DoCastVictim(SPELL_FELFIRE_SHOCK, true); + events.ScheduleEvent(EVENT_FELFIRE_SHOCK, urand(12000, 14000)); + break; + case EVENT_KNOCK_AWAY: + DoCast(me, SPELL_KNOCK_AWAY); + Talk(SAY_KNOCK_AWAY); + events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000)); + break; + case EVENT_ME_FIRST: + if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (dalliah->IsAlive() && !dalliah->IsInCombat()) + dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST); + break; + default: + break; + } + } + + if (HealthBelowPct(25) && !dalliahTaunt) + { + if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT); + dalliahTaunt = true; + } + + DoMeleeAttackIfReady(); + } + + private: + bool preFight; + bool dalliahTaunt; + uint64 dalliahGUID; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_wrath_scryer_soccothratesAI(creature); + } +}; + +void AddSC_boss_wrath_scryer_soccothrates() +{ + new boss_wrath_scryer_soccothrates(); +} diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp new file mode 100644 index 00000000000..062c88bb666 --- /dev/null +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp @@ -0,0 +1,132 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +/* ScriptData +SDName: boss_zereketh_the_unbound +SD%Complete: 100% +SDComment: +SDCategory: Tempest Keep, The Arcatraz +EndScriptData */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "arcatraz.h" + +enum Say +{ + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_SHADOW_NOVA = 2, + SAY_DEATH = 3 +}; + +enum Spells +{ + SPELL_VOID_ZONE = 36119, + SPELL_SHADOW_NOVA = 36127, + SPELL_SEED_OF_CORRUPTION = 36123 +}; + +enum Events +{ + EVENT_VOID_ZONE = 1, + EVENT_SHADOW_NOVA = 2, + EVENT_SEED_OF_CORRUPTION = 3 +}; + +class boss_zereketh_the_unbound : public CreatureScript +{ + public: + boss_zereketh_the_unbound() : CreatureScript("boss_zereketh_the_unbound") { } + + struct boss_zereketh_the_unboundAI : public BossAI + { + boss_zereketh_the_unboundAI(Creature* creature) : BossAI(creature, DATA_ZEREKETH) { } + + void Reset() OVERRIDE + { + _Reset(); + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + Talk(SAY_DEATH); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.ScheduleEvent(EVENT_VOID_ZONE, urand (6000, 10000)); + events.ScheduleEvent(EVENT_SHADOW_NOVA, urand (6000, 10000)); + events.ScheduleEvent(EVENT_SEED_OF_CORRUPTION, urand(12000, 20000)); + Talk(SAY_AGGRO); + } + + void KilledUnit(Unit* /*victim*/) OVERRIDE + { + Talk(SAY_SLAY); + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_VOID_ZONE: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)) + DoCast(target, SPELL_VOID_ZONE); + events.ScheduleEvent(EVENT_VOID_ZONE, urand (6000, 10000)); + break; + case EVENT_SHADOW_NOVA: + DoCastVictim(SPELL_SHADOW_NOVA, true); + Talk(SAY_SHADOW_NOVA); + events.ScheduleEvent(EVENT_SHADOW_NOVA, urand (6000, 10000)); + break; + case EVENT_SEED_OF_CORRUPTION: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)) + DoCast(target, SPELL_SEED_OF_CORRUPTION); + events.ScheduleEvent(EVENT_SEED_OF_CORRUPTION, urand(12000, 20000)); + break; + default: + break; + } + } + + DoMeleeAttackIfReady(); + } + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_zereketh_the_unboundAI(creature); + } +}; + +void AddSC_boss_zereketh_the_unbound() +{ + new boss_zereketh_the_unbound(); +} diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp index e836c5c4bf9..43f4a98c8cf 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp @@ -27,23 +27,6 @@ EndScriptData */ #include "InstanceScript.h" #include "arcatraz.h" -#define MAX_ENCOUNTER 9 - -enum Units -{ - CONTAINMENT_CORE_SECURITY_FIELD_ALPHA = 184318, //door opened when Wrath-Scryer Soccothrates dies - CONTAINMENT_CORE_SECURITY_FIELD_BETA = 184319, //door opened when Dalliah the Doomsayer dies - POD_ALPHA = 183961, //pod first boss wave - POD_BETA = 183963, //pod second boss wave - POD_DELTA = 183964, //pod third boss wave - POD_GAMMA = 183962, //pod fourth boss wave - POD_OMEGA = 183965, //pod fifth boss wave - WARDENS_SHIELD = 184802, // warden shield - SEAL_SPHERE = 184802, //shield 'protecting' mellichar - - MELLICHAR = 20904, //skyriss will kill this unit -}; - /* Arcatraz encounters: 1 - Zereketh the Unbound event 2 - Dalliah the Doomsayer event @@ -55,14 +38,14 @@ class instance_arcatraz : public InstanceMapScript { public: instance_arcatraz() - : InstanceMapScript("instance_arcatraz", 552) + : InstanceMapScript(AScriptName, 552) { } struct instance_arcatraz_InstanceMapScript : public InstanceScript { instance_arcatraz_InstanceMapScript(Map* map) : InstanceScript(map) { } - uint32 m_auiEncounter[MAX_ENCOUNTER]; + uint32 m_auiEncounter[EncounterCount]; uint64 Containment_Core_Security_Field_AlphaGUID; uint64 Containment_Core_Security_Field_BetaGUID; @@ -93,7 +76,7 @@ class instance_arcatraz : public InstanceMapScript bool IsEncounterInProgress() const OVERRIDE { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) + for (uint8 i = 0; i < EncounterCount; ++i) if (m_auiEncounter[i] == IN_PROGRESS) return true; @@ -144,7 +127,7 @@ class instance_arcatraz : public InstanceMapScript void OnCreatureCreate(Creature* creature) OVERRIDE { - if (creature->GetEntry() == MELLICHAR) + if (creature->GetEntry() == NPC_MELLICHAR) MellicharGUID = creature->GetGUID(); } @@ -152,10 +135,10 @@ class instance_arcatraz : public InstanceMapScript { switch (type) { - case TYPE_ZEREKETH: + case DATA_ZEREKETH: m_auiEncounter[0] = data; break; - case TYPE_DALLIAH: + case DATA_DALLIAH: if (data == DONE) { if (GameObject* go = instance->GetGameObject(Containment_Core_Security_Field_BetaGUID)) @@ -163,7 +146,7 @@ class instance_arcatraz : public InstanceMapScript } m_auiEncounter[1] = data; break; - case TYPE_SOCCOTHRATES: + case DATA_SOCCOTHRATES: if (data == DONE) { if (GameObject* go = instance->GetGameObject(Containment_Core_Security_Field_AlphaGUID)) @@ -171,7 +154,7 @@ class instance_arcatraz : public InstanceMapScript } m_auiEncounter[2] = data; break; - case TYPE_HARBINGERSKYRISS: + case DATA_HARBINGERSKYRISS: if (data == NOT_STARTED || data == FAIL) { m_auiEncounter[4] = NOT_STARTED; @@ -182,13 +165,13 @@ class instance_arcatraz : public InstanceMapScript } m_auiEncounter[3] = data; break; - case TYPE_WARDEN_1: + case DATA_WARDEN_1: if (data == IN_PROGRESS) if (GameObject* go = instance->GetGameObject(Pod_AlphaGUID)) go->UseDoorOrButton(); m_auiEncounter[4] = data; break; - case TYPE_WARDEN_2: + case DATA_WARDEN_2: if (data == IN_PROGRESS) { if (GameObject* go = instance->GetGameObject(Pod_BetaGUID)) @@ -196,7 +179,7 @@ class instance_arcatraz : public InstanceMapScript } m_auiEncounter[5] = data; break; - case TYPE_WARDEN_3: + case DATA_WARDEN_3: if (data == IN_PROGRESS) { if (GameObject* go = instance->GetGameObject(Pod_DeltaGUID)) @@ -204,7 +187,7 @@ class instance_arcatraz : public InstanceMapScript } m_auiEncounter[6] = data; break; - case TYPE_WARDEN_4: + case DATA_WARDEN_4: if (data == IN_PROGRESS) { if (GameObject* go = instance->GetGameObject(Pod_GammaGUID)) @@ -212,7 +195,7 @@ class instance_arcatraz : public InstanceMapScript } m_auiEncounter[7] = data; break; - case TYPE_WARDEN_5: + case DATA_WARDEN_5: if (data == IN_PROGRESS) { if (GameObject* go = instance->GetGameObject(Pod_OmegaGUID)) @@ -220,13 +203,16 @@ class instance_arcatraz : public InstanceMapScript } m_auiEncounter[8] = data; break; - case TYPE_SHIELD_OPEN: + case DATA_SHIELD_OPEN: if (data == IN_PROGRESS) { if (GameObject* go = instance->GetGameObject(Wardens_ShieldGUID)) go->UseDoorOrButton(); } break; + case DATA_CONVERSATION: + m_auiEncounter[12] = data; + break; } } @@ -234,12 +220,13 @@ class instance_arcatraz : public InstanceMapScript { switch (type) { - case TYPE_HARBINGERSKYRISS: return m_auiEncounter[3]; - case TYPE_WARDEN_1: return m_auiEncounter[4]; - case TYPE_WARDEN_2: return m_auiEncounter[5]; - case TYPE_WARDEN_3: return m_auiEncounter[6]; - case TYPE_WARDEN_4: return m_auiEncounter[7]; - case TYPE_WARDEN_5: return m_auiEncounter[8]; + case DATA_HARBINGERSKYRISS: return m_auiEncounter[3]; + case DATA_WARDEN_1: return m_auiEncounter[4]; + case DATA_WARDEN_2: return m_auiEncounter[5]; + case DATA_WARDEN_3: return m_auiEncounter[6]; + case DATA_WARDEN_4: return m_auiEncounter[7]; + case DATA_WARDEN_5: return m_auiEncounter[8]; + case DATA_CONVERSATION: return m_auiEncounter[12]; } return 0; } -- cgit v1.2.3 From c2db6d49ced143f951b83185dfc525e5493d35b9 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sun, 10 Nov 2013 10:00:47 -0330 Subject: Scripting/The Arcatraz: Add text scripting for deaths --- .../arcatraz/boss_dalliah_the_doomsayer.cpp | 48 ++++++++++++++++++++-- .../arcatraz/boss_wrath_scryer_soccothrates.cpp | 44 ++++++++++++++++++-- 2 files changed, 85 insertions(+), 7 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp index 20cfb2f07f8..eacd5b3835e 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp @@ -17,8 +17,8 @@ /* ScriptData SDName: boss_dalliah_the_doomsayer -SD%Complete: 95% -SDComment: soccothrates death left to script +SD%Complete: 100% +SDComment: SDCategory: Tempest Keep, The Arcatraz EndScriptData */ @@ -33,7 +33,7 @@ enum Say SAY_WHIRLWIND = 3, SAY_HEAL = 4, SAY_DEATH = 5, - SAY_SOCCOTHRATES_DEATH = 7, // To be scripted + SAY_SOCCOTHRATES_DEATH = 7, // boss_wrath_scryer_soccothrates SAY_AGGRO_DALLIAH_FIRST = 0, @@ -54,7 +54,8 @@ enum Events EVENT_WHIRLWIND = 2, EVENT_HEAL = 3, EVENT_SHADOW_WAVE = 4, // Heroic only - EVENT_ME_FIRST = 5 + EVENT_ME_FIRST = 5, + EVENT_SOCCOTHRATES_DEATH = 6 }; class boss_dalliah_the_doomsayer : public CreatureScript @@ -69,12 +70,17 @@ class boss_dalliah_the_doomsayer : public CreatureScript void Reset() OVERRIDE { _Reset(); + soccothratesDeath = false; } void JustDied(Unit* /*killer*/) OVERRIDE { _JustDied(); Talk(SAY_DEATH); + + if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID)) + if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) + soccothrates->AI()->SetData(1, 1); } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -96,10 +102,43 @@ class boss_dalliah_the_doomsayer : public CreatureScript Talk(SAY_SLAY); } + void SetData(uint32 /*type*/, uint32 data) OVERRIDE + { + switch (data) + { + case 1: + events.ScheduleEvent(EVENT_SOCCOTHRATES_DEATH, 6000); + soccothratesDeath = true; + break; + break; + default: + break; + } + } + void UpdateAI(uint32 diff) OVERRIDE { if (!UpdateVictim()) + { + if (soccothratesDeath) + { + events.Update(diff); + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_SOCCOTHRATES_DEATH: + Talk(SAY_SOCCOTHRATES_DEATH); + break; + default: + break; + } + } + } + return; + } events.Update(diff); @@ -150,6 +189,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript private: bool soccothratesTaunt; + bool soccothratesDeath; uint64 soccothratesGUID; }; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp index cef8a8b8e2d..8d4b18b4d47 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp @@ -17,8 +17,8 @@ /* ScriptData SDName: boss_wrath_scryer_soccothrates -SD%Complete: 85% -SDComment: charge and dalliah death left to script +SD%Complete: 95% +SDComment: charge left to script SDCategory: Tempest Keep, The Arcatraz EndScriptData */ @@ -33,7 +33,7 @@ enum Say SAY_SLAY = 2, SAY_KNOCK_AWAY = 3, SAY_DEATH = 4, - SAY_DALLIAH_DEATH = 6, // To be scripted + SAY_DALLIAH_DEATH = 6, SAY_SOCCOTHRATES_CONVO_1 = 7, SAY_SOCCOTHRATES_CONVO_2 = 8, SAY_SOCCOTHRATES_CONVO_3 = 9, @@ -72,6 +72,7 @@ enum Events EVENT_PREFIGHT_8 = 10, EVENT_PREFIGHT_9 = 11, EVENT_ME_FIRST = 12, + EVENT_DALLIAH_DEATH = 13 }; class boss_wrath_scryer_soccothrates : public CreatureScript @@ -88,6 +89,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript _Reset(); preFight = false; dalliahTaunt = false; + dalliahDeath = false; DoCast(me, SPELL_FEL_IMMOLATION); } @@ -95,6 +97,10 @@ class boss_wrath_scryer_soccothrates : public CreatureScript { _JustDied(); Talk(SAY_DEATH); + + if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (dalliah->IsAlive() && !dalliah->IsInCombat()) + dalliah->AI()->SetData(1, 1); } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -131,6 +137,20 @@ class boss_wrath_scryer_soccothrates : public CreatureScript } } + void SetData(uint32 /*type*/, uint32 data) OVERRIDE + { + switch (data) + { + case 1: + events.ScheduleEvent(EVENT_DALLIAH_DEATH, 6000); + dalliahDeath = true; + break; + break; + default: + break; + } + } + void UpdateAI(uint32 diff) OVERRIDE { if (!UpdateVictim()) @@ -195,6 +215,23 @@ class boss_wrath_scryer_soccothrates : public CreatureScript } } + if (dalliahDeath) + { + events.Update(diff); + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_DALLIAH_DEATH: + Talk(SAY_DALLIAH_DEATH); + break; + default: + break; + } + } + } + return; } @@ -239,6 +276,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript private: bool preFight; bool dalliahTaunt; + bool dalliahDeath; uint64 dalliahGUID; }; -- cgit v1.2.3 From 8332cee0522b9166bd73903b85a3220a84b57a5f Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sun, 10 Nov 2013 10:53:43 -0330 Subject: Scripting/The Slave Pens: Moved boss_mennu_the_betrayer from EAI to CPP. --- sql/updates/world/2013_11_10_01_world_misc.sql | 3 + src/server/game/Scripting/ScriptLoader.cpp | 27 +++- src/server/scripts/Outland/CMakeLists.txt | 4 +- .../TheSlavePens/boss_mennu_the_betrayer.cpp | 143 +++++++++++++++++++++ .../TheSlavePens/instance_the_slave_pens.cpp | 3 +- .../TheSlavePens/the_slave_pens.h | 32 +++++ 6 files changed, 203 insertions(+), 9 deletions(-) create mode 100644 sql/updates/world/2013_11_10_01_world_misc.sql create mode 100644 src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp create mode 100644 src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_10_01_world_misc.sql b/sql/updates/world/2013_11_10_01_world_misc.sql new file mode 100644 index 00000000000..72881a96924 --- /dev/null +++ b/sql/updates/world/2013_11_10_01_world_misc.sql @@ -0,0 +1,3 @@ +UPDATE `creature_template` SET `AIName` = '', `ScriptName`= 'boss_mennu_the_betrayer' WHERE entry=17991; +DELETE FROM creature_ai_scripts WHERE creature_id=17991; +DELETE FROM creature_ai_texts WHERE entry BETWEEN -98 AND -93; diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp index 779c9be6c0e..bc29d96d1b8 100644 --- a/src/server/game/Scripting/ScriptLoader.cpp +++ b/src/server/game/Scripting/ScriptLoader.cpp @@ -575,7 +575,8 @@ void AddSC_boss_grandmaster_vorpil(); void AddSC_boss_murmur(); void AddSC_instance_shadow_labyrinth(); -void AddSC_black_temple(); //Black Temple +//Black Temple +void AddSC_black_temple(); void AddSC_boss_illidan(); void AddSC_boss_shade_of_akama(); void AddSC_boss_supremus(); @@ -586,22 +587,33 @@ void AddSC_boss_teron_gorefiend(); void AddSC_boss_najentus(); void AddSC_boss_illidari_council(); void AddSC_instance_black_temple(); -void AddSC_boss_fathomlord_karathress(); //CR Serpent Shrine Cavern + +//Coilfang Reservoir - Serpent Shrine Cavern +void AddSC_boss_fathomlord_karathress(); void AddSC_boss_hydross_the_unstable(); void AddSC_boss_lady_vashj(); void AddSC_boss_leotheras_the_blind(); void AddSC_boss_morogrim_tidewalker(); void AddSC_instance_serpentshrine_cavern(); void AddSC_boss_the_lurker_below(); -void AddSC_boss_hydromancer_thespia(); //CR Steam Vault + +//Coilfang Reservoir - The Steam Vault +void AddSC_boss_hydromancer_thespia(); void AddSC_boss_mekgineer_steamrigger(); void AddSC_boss_warlord_kalithresh(); void AddSC_instance_steam_vault(); -void AddSC_instance_the_slave_pens(); //The Slave Pens -void AddSC_boss_hungarfen(); //CR Underbog -void AddSC_boss_the_black_stalker(); + +//Coilfang Reservoir - The Slave Pens +void AddSC_instance_the_slave_pens(); +void AddSC_boss_mennu_the_betrayer(); + +//Coilfang Reservoir - The Underbog void AddSC_instance_the_underbog(); -void AddSC_boss_gruul(); //Gruul's Lair +void AddSC_boss_hungarfen(); +void AddSC_boss_the_black_stalker(); + +//Gruul's Lair +void AddSC_boss_gruul(); void AddSC_boss_high_king_maulgar(); void AddSC_instance_gruuls_lair(); void AddSC_boss_broggok(); //HC Blood Furnace @@ -1122,6 +1134,7 @@ void AddOutlandScripts() AddSC_boss_warlord_kalithresh(); AddSC_instance_steam_vault(); AddSC_instance_the_slave_pens(); //The Slave Pens + AddSC_boss_mennu_the_betrayer(); AddSC_boss_hungarfen(); //CR Underbog AddSC_boss_the_black_stalker(); AddSC_instance_the_underbog(); diff --git a/src/server/scripts/Outland/CMakeLists.txt b/src/server/scripts/Outland/CMakeLists.txt index 45db8a80a26..e07424a77d2 100644 --- a/src/server/scripts/Outland/CMakeLists.txt +++ b/src/server/scripts/Outland/CMakeLists.txt @@ -43,9 +43,11 @@ set(scripts_STAT_SRCS Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp Outland/CoilfangReservoir/TheSlavePens/instance_the_slave_pens.cpp + Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h + Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp + Outland/CoilfangReservoir/TheUnderbog/instance_the_underbog.cpp Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp - Outland/CoilfangReservoir/TheUnderbog/instance_the_underbog.cpp Outland/zone_shattrath_city.cpp Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp new file mode 100644 index 00000000000..d015919d978 --- /dev/null +++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +/* ScriptData +SDName: boss_mennu_the_betrayer +SD%Complete: 100% +SDComment: +SDCategory: Coilfang Reservoir, The Slave Pens +EndScriptData */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "the_slave_pens.h" + +enum Say +{ + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2 +}; + +enum Spells +{ + SPELL_TAINTED_STONESKIN_TOTEM = 31985, + SPELL_TAINTED_EARTHGRAB_TOTEM = 31981, + SPELL_CORRUPTED_NOVA_TOTEM = 31991, + SPELL_MENNUS_HEALING_WARD = 34980, + SPELL_LIGHTNING_BOLT = 35010 +}; + +enum Events +{ + EVENT_TAINTED_STONESKIN_TOTEM = 1, + EVENT_TAINTED_EARTHGRAB_TOTEM = 2, + EVENT_CORRUPTED_NOVA_TOTEM = 3, + EVENT_LIGHTNING_BOLT = 4 +}; + +class boss_mennu_the_betrayer : public CreatureScript +{ + public: + boss_mennu_the_betrayer() : CreatureScript("boss_mennu_the_betrayer") { } + + struct boss_mennu_the_betrayerAI : public BossAI + { + boss_mennu_the_betrayerAI(Creature* creature) : BossAI(creature, DATA_MENNU_THE_BETRAYER) { } + + void Reset() OVERRIDE + { + _Reset(); + healingWardDropped = false; + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + Talk(SAY_DEATH); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.ScheduleEvent(EVENT_TAINTED_STONESKIN_TOTEM, 18000); + events.ScheduleEvent(EVENT_TAINTED_EARTHGRAB_TOTEM, 19000); + events.ScheduleEvent(EVENT_CORRUPTED_NOVA_TOTEM, 20000); + events.ScheduleEvent(EVENT_LIGHTNING_BOLT, urand(5000, 8000)); + Talk(SAY_AGGRO); + } + + void KilledUnit(Unit* /*victim*/) OVERRIDE + { + Talk(SAY_SLAY); + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_TAINTED_STONESKIN_TOTEM: + DoCast(me, SPELL_TAINTED_STONESKIN_TOTEM); + break; + case EVENT_TAINTED_EARTHGRAB_TOTEM: + DoCast(me, SPELL_TAINTED_EARTHGRAB_TOTEM); + break; + case EVENT_CORRUPTED_NOVA_TOTEM: + DoCast(me, SPELL_CORRUPTED_NOVA_TOTEM); + break; + case EVENT_LIGHTNING_BOLT: + DoCastVictim(SPELL_LIGHTNING_BOLT, true); + events.ScheduleEvent(EVENT_LIGHTNING_BOLT, urand(7000, 11000)); + break; + default: + break; + } + } + + if (HealthBelowPct(60) && !healingWardDropped) + { + DoCast(me, SPELL_MENNUS_HEALING_WARD); + healingWardDropped = true; + } + + DoMeleeAttackIfReady(); + } + + private: + bool healingWardDropped; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_mennu_the_betrayerAI(creature); + } +}; + +void AddSC_boss_mennu_the_betrayer() +{ + new boss_mennu_the_betrayer(); +} diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/instance_the_slave_pens.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/instance_the_slave_pens.cpp index cd11e2e1bf1..1c31bee7d4f 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/instance_the_slave_pens.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/instance_the_slave_pens.cpp @@ -24,11 +24,12 @@ gets instead the deserter debuff. #include "ScriptMgr.h" #include "InstanceScript.h" +#include "the_slave_pens.h" class instance_the_slave_pens : public InstanceMapScript { public: - instance_the_slave_pens() : InstanceMapScript("instance_the_slave_pens", 547) { } + instance_the_slave_pens() : InstanceMapScript(SPScriptName, 547) { } InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE { diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h new file mode 100644 index 00000000000..624ead7ef08 --- /dev/null +++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#ifndef SLAVE_PENS_H +#define SLAVE_PENS_H + +uint32 const EncounterCount = 3; + +#define SPScriptName "instance_the_slave_pens" + +enum DataTypes +{ + DATA_MENNU_THE_BETRAYER = 1, + DATA_ROKMAR_THE_CRACKLER = 2, + DATA_QUAGMIRRAN = 3 +}; + +#endif // SLAVE_PENS_H -- cgit v1.2.3 From 113735690a06217a9648ddd6c8de2aa932c89db8 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sun, 10 Nov 2013 18:00:15 -0330 Subject: Scripts/The Slave Pens: Fix up Mennu the Betrayer and add Rokmar the Cracker & Quagmirran. --- sql/updates/world/2013_11_10_02_world_misc.sql | 13 +++ src/server/game/Scripting/ScriptLoader.cpp | 43 ++++--- src/server/scripts/Outland/CMakeLists.txt | 2 + .../TheSlavePens/boss_mennu_the_betrayer.cpp | 44 ++++--- .../TheSlavePens/boss_quagmirran.cpp | 124 ++++++++++++++++++++ .../TheSlavePens/boss_rokmar_the_crackler.cpp | 127 +++++++++++++++++++++ 6 files changed, 316 insertions(+), 37 deletions(-) create mode 100644 sql/updates/world/2013_11_10_02_world_misc.sql create mode 100644 src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp create mode 100644 src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_10_02_world_misc.sql b/sql/updates/world/2013_11_10_02_world_misc.sql new file mode 100644 index 00000000000..6049724f6d3 --- /dev/null +++ b/sql/updates/world/2013_11_10_02_world_misc.sql @@ -0,0 +1,13 @@ +UPDATE `creature_template` SET `AIName` = '', `ScriptName`= 'boss_rokmar_the_crackler' WHERE entry=17991; +DELETE FROM creature_ai_scripts WHERE creature_id=17991; +UPDATE `creature_template` SET `AIName` = '', `ScriptName`= 'boss_mennu_the_betrayer' WHERE entry=17941; +DELETE FROM creature_ai_scripts WHERE creature_id=17941; +DELETE FROM creature_ai_texts WHERE entry BETWEEN -98 AND -93; +UPDATE `creature_template` SET `AIName` = '', `ScriptName`= 'boss_quagmirran' WHERE entry=17942; +DELETE FROM creature_ai_scripts WHERE creature_id=17942; + +-- Add missing spelldifficulty_dbc values +DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (31956,34780); +INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`) VALUES +(31956,31956,39005), -- Rokmar the Crackler +(34780,34780,39340); -- Quagmirran diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp index bc29d96d1b8..28fe883feb9 100644 --- a/src/server/game/Scripting/ScriptLoader.cpp +++ b/src/server/game/Scripting/ScriptLoader.cpp @@ -575,7 +575,7 @@ void AddSC_boss_grandmaster_vorpil(); void AddSC_boss_murmur(); void AddSC_instance_shadow_labyrinth(); -//Black Temple +// Black Temple void AddSC_black_temple(); void AddSC_boss_illidan(); void AddSC_boss_shade_of_akama(); @@ -588,7 +588,7 @@ void AddSC_boss_najentus(); void AddSC_boss_illidari_council(); void AddSC_instance_black_temple(); -//Coilfang Reservoir - Serpent Shrine Cavern +// Coilfang Reservoir - Serpent Shrine Cavern void AddSC_boss_fathomlord_karathress(); void AddSC_boss_hydross_the_unstable(); void AddSC_boss_lady_vashj(); @@ -597,22 +597,24 @@ void AddSC_boss_morogrim_tidewalker(); void AddSC_instance_serpentshrine_cavern(); void AddSC_boss_the_lurker_below(); -//Coilfang Reservoir - The Steam Vault +// Coilfang Reservoir - The Steam Vault void AddSC_boss_hydromancer_thespia(); void AddSC_boss_mekgineer_steamrigger(); void AddSC_boss_warlord_kalithresh(); void AddSC_instance_steam_vault(); -//Coilfang Reservoir - The Slave Pens +// Coilfang Reservoir - The Slave Pens void AddSC_instance_the_slave_pens(); void AddSC_boss_mennu_the_betrayer(); +void AddSC_boss_rokmar_the_crackler(); +void AddSC_boss_quagmirran(); -//Coilfang Reservoir - The Underbog +// Coilfang Reservoir - The Underbog void AddSC_instance_the_underbog(); void AddSC_boss_hungarfen(); void AddSC_boss_the_black_stalker(); -//Gruul's Lair +// Gruul's Lair void AddSC_boss_gruul(); void AddSC_boss_high_king_maulgar(); void AddSC_instance_gruuls_lair(); @@ -1111,7 +1113,8 @@ void AddOutlandScripts() AddSC_boss_murmur(); AddSC_instance_shadow_labyrinth(); - AddSC_black_temple(); //Black Temple + // Black Temple + AddSC_black_temple(); AddSC_boss_illidan(); AddSC_boss_shade_of_akama(); AddSC_boss_supremus(); @@ -1122,23 +1125,35 @@ void AddOutlandScripts() AddSC_boss_najentus(); AddSC_boss_illidari_council(); AddSC_instance_black_temple(); - AddSC_boss_fathomlord_karathress(); //CR Serpent Shrine Cavern + + // Coilfang Reservoir - Serpent Shrine Cavern + AddSC_boss_fathomlord_karathress(); AddSC_boss_hydross_the_unstable(); AddSC_boss_lady_vashj(); AddSC_boss_leotheras_the_blind(); AddSC_boss_morogrim_tidewalker(); AddSC_instance_serpentshrine_cavern(); AddSC_boss_the_lurker_below(); - AddSC_boss_hydromancer_thespia(); //CR Steam Vault + + // Coilfang Reservoir - The Steam Vault + AddSC_instance_steam_vault(); + AddSC_boss_hydromancer_thespia(); AddSC_boss_mekgineer_steamrigger(); AddSC_boss_warlord_kalithresh(); - AddSC_instance_steam_vault(); - AddSC_instance_the_slave_pens(); //The Slave Pens + + // Coilfang Reservoir - The Slave Pens + AddSC_instance_the_slave_pens(); AddSC_boss_mennu_the_betrayer(); - AddSC_boss_hungarfen(); //CR Underbog - AddSC_boss_the_black_stalker(); + AddSC_boss_rokmar_the_crackler(); + AddSC_boss_quagmirran(); + + // Coilfang Reservoir - The Underbog AddSC_instance_the_underbog(); - AddSC_boss_gruul(); //Gruul's Lair + AddSC_boss_hungarfen(); + AddSC_boss_the_black_stalker(); + + // Gruul's Lair + AddSC_boss_gruul(); AddSC_boss_high_king_maulgar(); AddSC_instance_gruuls_lair(); AddSC_boss_broggok(); //HC Blood Furnace diff --git a/src/server/scripts/Outland/CMakeLists.txt b/src/server/scripts/Outland/CMakeLists.txt index e07424a77d2..ab10ee2dfe4 100644 --- a/src/server/scripts/Outland/CMakeLists.txt +++ b/src/server/scripts/Outland/CMakeLists.txt @@ -45,6 +45,8 @@ set(scripts_STAT_SRCS Outland/CoilfangReservoir/TheSlavePens/instance_the_slave_pens.cpp Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp + Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp + Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp Outland/CoilfangReservoir/TheUnderbog/instance_the_underbog.cpp Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp index d015919d978..ba59aa3b463 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp @@ -17,7 +17,7 @@ /* ScriptData SDName: boss_mennu_the_betrayer -SD%Complete: 100% +SD%Complete: 95% SDComment: SDCategory: Coilfang Reservoir, The Slave Pens EndScriptData */ @@ -35,11 +35,11 @@ enum Say enum Spells { - SPELL_TAINTED_STONESKIN_TOTEM = 31985, - SPELL_TAINTED_EARTHGRAB_TOTEM = 31981, - SPELL_CORRUPTED_NOVA_TOTEM = 31991, - SPELL_MENNUS_HEALING_WARD = 34980, - SPELL_LIGHTNING_BOLT = 35010 + SPELL_TAINTED_STONESKIN_TOTEM = 31985, // every 30 sec if health below 100% + SPELL_TAINTED_EARTHGRAB_TOTEM = 31981, // ? + SPELL_CORRUPTED_NOVA_TOTEM = 31991, // ? + SPELL_MENNUS_HEALING_WARD = 34980, // every 14 - 25 sec + SPELL_LIGHTNING_BOLT = 35010 // every 14 - 19 sec }; enum Events @@ -47,7 +47,8 @@ enum Events EVENT_TAINTED_STONESKIN_TOTEM = 1, EVENT_TAINTED_EARTHGRAB_TOTEM = 2, EVENT_CORRUPTED_NOVA_TOTEM = 3, - EVENT_LIGHTNING_BOLT = 4 + EVENT_MENNUS_HEALING_WARD = 4, + EVENT_LIGHTNING_BOLT = 5 }; class boss_mennu_the_betrayer : public CreatureScript @@ -62,7 +63,6 @@ class boss_mennu_the_betrayer : public CreatureScript void Reset() OVERRIDE { _Reset(); - healingWardDropped = false; } void JustDied(Unit* /*killer*/) OVERRIDE @@ -74,10 +74,11 @@ class boss_mennu_the_betrayer : public CreatureScript void EnterCombat(Unit* /*who*/) OVERRIDE { _EnterCombat(); - events.ScheduleEvent(EVENT_TAINTED_STONESKIN_TOTEM, 18000); - events.ScheduleEvent(EVENT_TAINTED_EARTHGRAB_TOTEM, 19000); - events.ScheduleEvent(EVENT_CORRUPTED_NOVA_TOTEM, 20000); - events.ScheduleEvent(EVENT_LIGHTNING_BOLT, urand(5000, 8000)); + events.ScheduleEvent(EVENT_TAINTED_STONESKIN_TOTEM, 30000); + events.ScheduleEvent(EVENT_TAINTED_EARTHGRAB_TOTEM, 20000); + events.ScheduleEvent(EVENT_CORRUPTED_NOVA_TOTEM, 60000); + events.ScheduleEvent(EVENT_MENNUS_HEALING_WARD, urand(14000, 25000)); + events.ScheduleEvent(EVENT_LIGHTNING_BOLT, urand(14000, 19000)); Talk(SAY_AGGRO); } @@ -101,7 +102,9 @@ class boss_mennu_the_betrayer : public CreatureScript switch (eventId) { case EVENT_TAINTED_STONESKIN_TOTEM: - DoCast(me, SPELL_TAINTED_STONESKIN_TOTEM); + if (HealthBelowPct(100)) + DoCast(me, SPELL_TAINTED_STONESKIN_TOTEM); + events.ScheduleEvent(EVENT_TAINTED_STONESKIN_TOTEM, 30000); break; case EVENT_TAINTED_EARTHGRAB_TOTEM: DoCast(me, SPELL_TAINTED_EARTHGRAB_TOTEM); @@ -109,26 +112,21 @@ class boss_mennu_the_betrayer : public CreatureScript case EVENT_CORRUPTED_NOVA_TOTEM: DoCast(me, SPELL_CORRUPTED_NOVA_TOTEM); break; + case EVENT_MENNUS_HEALING_WARD: + DoCast(me, SPELL_MENNUS_HEALING_WARD); + events.ScheduleEvent(EVENT_MENNUS_HEALING_WARD, urand(14000, 25000)); + break; case EVENT_LIGHTNING_BOLT: DoCastVictim(SPELL_LIGHTNING_BOLT, true); - events.ScheduleEvent(EVENT_LIGHTNING_BOLT, urand(7000, 11000)); + events.ScheduleEvent(EVENT_LIGHTNING_BOLT, urand(14000, 25000)); break; default: break; } } - if (HealthBelowPct(60) && !healingWardDropped) - { - DoCast(me, SPELL_MENNUS_HEALING_WARD); - healingWardDropped = true; - } - DoMeleeAttackIfReady(); } - - private: - bool healingWardDropped; }; CreatureAI* GetAI(Creature* creature) const OVERRIDE diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp new file mode 100644 index 00000000000..6cef7291542 --- /dev/null +++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +/* ScriptData +SDName: boss_quagmirran +SD%Complete: 100% +SDComment: +SDCategory: Coilfang Reservoir, The Slave Pens +EndScriptData */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "the_slave_pens.h" + +enum Spells +{ + SPELL_ACID_SPRAY = 38153, + SPELL_CLEAVE = 40504, + SPELL_UPPERCUT = 32055, + SPELL_POISON_BOLT_VOLLEY = 34780 // 39340 +}; + +enum Events +{ + EVENT_ACID_SPRAY = 1, + EVENT_CLEAVE = 2, + EVENT_UPPERCUT = 3, + EVENT_POISON_BOLT_VOLLEY = 4 +}; + +class boss_quagmirran : public CreatureScript +{ + public: + boss_quagmirran() : CreatureScript("boss_quagmirran") { } + + struct boss_quagmirranAI : public BossAI + { + boss_quagmirranAI(Creature* creature) : BossAI(creature, DATA_QUAGMIRRAN) { } + + void Reset() OVERRIDE + { + _Reset(); + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.ScheduleEvent(EVENT_ACID_SPRAY, 25000); + events.ScheduleEvent(EVENT_CLEAVE, 9000); + events.ScheduleEvent(EVENT_UPPERCUT, 20000); + events.ScheduleEvent(EVENT_POISON_BOLT_VOLLEY, 31000); + } + + void KilledUnit(Unit* /*victim*/) OVERRIDE { } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_ACID_SPRAY: + DoCastAOE(SPELL_ACID_SPRAY); + events.ScheduleEvent(EVENT_ACID_SPRAY, urand(20000, 25000)); + break; + case EVENT_CLEAVE: + DoCastVictim(SPELL_CLEAVE, true); + events.ScheduleEvent(EVENT_CLEAVE, urand(18000, 34000)); + break; + case EVENT_UPPERCUT: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 10.0f, true)) + DoCast(target, SPELL_UPPERCUT); + events.ScheduleEvent(EVENT_UPPERCUT, 22000); + break; + case EVENT_POISON_BOLT_VOLLEY: + DoCast(me, SPELL_POISON_BOLT_VOLLEY); + events.ScheduleEvent(EVENT_POISON_BOLT_VOLLEY, 24000); + break; + default: + break; + } + } + + DoMeleeAttackIfReady(); + } + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_quagmirranAI(creature); + } +}; + +void AddSC_boss_quagmirran() +{ + new boss_quagmirran(); +} diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp new file mode 100644 index 00000000000..a025df5c3ae --- /dev/null +++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +/* ScriptData +SDName: boss_rokmar_the_crackler +SD%Complete: 100% +SDComment: +SDCategory: Coilfang Reservoir, The Slave Pens +EndScriptData */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "the_slave_pens.h" + +enum Spells +{ + SPELL_GRIEVOUS_WOUND = 31956, + SPELL_ENSNARING_MOSS = 31948, + SPELL_WATER_SPIT = 35008, + SPELL_FRENZY = 34970 +}; + +enum Events +{ + EVENT_GRIEVOUS_WOUND = 1, + EVENT_ENSNARING_MOSS = 2, + EVENT_WATER_SPIT = 3 +}; + +class boss_rokmar_the_crackler : public CreatureScript +{ + public: + boss_rokmar_the_crackler() : CreatureScript("boss_rokmar_the_crackler") { } + + struct boss_rokmar_the_cracklerAI : public BossAI + { + boss_rokmar_the_cracklerAI(Creature* creature) : BossAI(creature, DATA_MENNU_THE_BETRAYER) { } + + void Reset() OVERRIDE + { + _Reset(); + rokmarFrenzy = false; + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.ScheduleEvent(EVENT_GRIEVOUS_WOUND, 10000); + events.ScheduleEvent(EVENT_ENSNARING_MOSS, 20000); + events.ScheduleEvent(EVENT_WATER_SPIT, 14000); + } + + void KilledUnit(Unit* /*victim*/) OVERRIDE { } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_GRIEVOUS_WOUND: + DoCastVictim(SPELL_GRIEVOUS_WOUND, true); + events.ScheduleEvent(EVENT_GRIEVOUS_WOUND, urand(20000, 30000)); + break; + case EVENT_ENSNARING_MOSS: + DoCastAOE(SPELL_ENSNARING_MOSS); + events.ScheduleEvent(EVENT_ENSNARING_MOSS, urand(20000, 30000)); + break; + case EVENT_WATER_SPIT: + DoCastAOE(SPELL_WATER_SPIT); + events.ScheduleEvent(EVENT_WATER_SPIT, urand(14000, 18000)); + break; + default: + break; + } + } + + if (HealthBelowPct(10) && !rokmarFrenzy) + { + DoCast(me, SPELL_FRENZY); + rokmarFrenzy = true; + } + + DoMeleeAttackIfReady(); + } + + private: + bool rokmarFrenzy; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_rokmar_the_cracklerAI(creature); + } +}; + +void AddSC_boss_rokmar_the_crackler() +{ + new boss_rokmar_the_crackler(); +} -- cgit v1.2.3 From 5b7b03fc16900b506b8a2ef9cc47e18a763501a2 Mon Sep 17 00:00:00 2001 From: MitchesD Date: Wed, 6 Nov 2013 21:42:22 +0100 Subject: Scripts/SunwellPlateau: reworked InstanceScript and applied codestyle --- .../SunwellPlateau/boss_brutallus.cpp | 50 ++- .../SunwellPlateau/boss_eredar_twins.cpp | 362 ++++++++--------- .../SunwellPlateau/boss_felmyst.cpp | 305 +++++++------- .../SunwellPlateau/boss_kalecgos.cpp | 166 ++++---- .../SunwellPlateau/boss_kiljaeden.cpp | 126 +++--- .../EasternKingdoms/SunwellPlateau/boss_muru.cpp | 140 +++---- .../SunwellPlateau/instance_sunwell_plateau.cpp | 452 ++++++++++----------- .../SunwellPlateau/sunwell_plateau.h | 134 +++--- 8 files changed, 831 insertions(+), 904 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index f1aa47df8f8..539bfb7831f 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -44,7 +44,7 @@ enum Quotes YELL_MADR_INTRO = 1, YELL_MADR_ICE_BLOCK = 2, YELL_MADR_TRAP = 3, - YELL_MADR_DEATH = 4, + YELL_MADR_DEATH = 4 }; enum Spells @@ -61,18 +61,11 @@ enum Spells SPELL_INTRO_ENCAPSULATE_CHANELLING = 45661 }; -#define FELMYST 25038 - class boss_brutallus : public CreatureScript { public: boss_brutallus() : CreatureScript("boss_brutallus") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_brutallusAI(creature); - } - struct boss_brutallusAI : public ScriptedAI { boss_brutallusAI(Creature* creature) : ScriptedAI(creature) @@ -112,16 +105,14 @@ public: DoCast(me, SPELL_DUAL_WIELD, true); - if (instance) - instance->SetData(DATA_BRUTALLUS_EVENT, NOT_STARTED); + instance->SetBossState(DATA_BRUTALLUS, NOT_STARTED); } void EnterCombat(Unit* /*who*/) OVERRIDE { Talk(YELL_AGGRO); - if (instance) - instance->SetData(DATA_BRUTALLUS_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_BRUTALLUS, IN_PROGRESS); } void KilledUnit(Unit* /*victim*/) OVERRIDE @@ -133,13 +124,10 @@ public: { Talk(YELL_DEATH); - if (instance) - { - instance->SetData(DATA_BRUTALLUS_EVENT, DONE); - float x, y, z; - me->GetPosition(x, y, z); - me->SummonCreature(FELMYST, x, y, z+30, me->GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN, 0); - } + instance->SetBossState(DATA_BRUTALLUS, DONE); + float x, y, z; + me->GetPosition(x, y, z); + me->SummonCreature(NPC_FELMYST, x, y, z + 30, me->GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN, 0); } void EnterEvadeMode() OVERRIDE @@ -152,8 +140,8 @@ public: { if (!Intro || IsIntro) return; - Creature* Madrigosa = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_MADRIGOSA) : 0); - if (Madrigosa) + + if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA)) { Madrigosa->Respawn(); Madrigosa->setActive(true); @@ -166,7 +154,7 @@ public: } else { - //Madrigosa not found, end intro + // Madrigosa not found, end intro TC_LOG_ERROR("scripts", "Madrigosa was not found"); EndIntro(); } @@ -188,7 +176,7 @@ public: void DoIntro() { - Creature* Madrigosa = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_MADRIGOSA) : 0); + Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_MADRIGOSA) : 0); if (!Madrigosa) return; @@ -265,15 +253,16 @@ public: } void MoveInLineOfSight(Unit* who) OVERRIDE - { if (!me->IsValidAttackTarget(who)) return; - if (instance && Intro) - instance->SetData(DATA_BRUTALLUS_EVENT, SPECIAL); + + if (Intro) + instance->SetBossState(DATA_BRUTALLUS, SPECIAL); if (Intro && !IsIntro) StartIntro(); + if (!Intro) ScriptedAI::MoveInLineOfSight(who); } @@ -290,15 +279,17 @@ public: { if (IntroFrostBoltTimer <= diff) { - if (Creature* Madrigosa = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_MADRIGOSA) : 0)) + if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA)) { Madrigosa->CastSpell(me, SPELL_INTRO_FROSTBOLT, true); IntroFrostBoltTimer = 2000; } } else IntroFrostBoltTimer -= diff; } + if (!UpdateVictim()) return; + DoMeleeAttackIfReady(); } @@ -341,6 +332,11 @@ public: DoMeleeAttackIfReady(); } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + } }; void AddSC_boss_brutallus() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index 692f9ae5440..280b4c27770 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -15,12 +15,6 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Boss_Eredar_Twins -SD%Complete: 100 -SDComment: -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "sunwell_plateau.h" @@ -48,35 +42,35 @@ enum Quotes YELL_ALY_DEAD = 6, YELL_SISTER_SACROLASH_DEAD = 7, YELL_CANFLAGRATION = 8, - YELL_BERSERK = 9, + YELL_BERSERK = 9 }; enum Spells { //Lady Sacrolash spells - SPELL_DARK_TOUCHED = 45347, - SPELL_SHADOW_BLADES = 45248, //10 secs - SPELL_DARK_STRIKE = 45271, - SPELL_SHADOW_NOVA = 45329, //30-35 secs - SPELL_CONFOUNDING_BLOW = 45256, //25 secs + SPELL_DARK_TOUCHED = 45347, + SPELL_SHADOW_BLADES = 45248, //10 secs + SPELL_DARK_STRIKE = 45271, + SPELL_SHADOW_NOVA = 45329, //30-35 secs + SPELL_CONFOUNDING_BLOW = 45256, //25 secs //Shadow Image spells - SPELL_SHADOW_FURY = 45270, - SPELL_IMAGE_VISUAL = 45263, + SPELL_SHADOW_FURY = 45270, + SPELL_IMAGE_VISUAL = 45263, //Misc spells - SPELL_ENRAGE = 46587, - SPELL_EMPOWER = 45366, - SPELL_DARK_FLAME = 45345, + SPELL_ENRAGE = 46587, + SPELL_EMPOWER = 45366, + SPELL_DARK_FLAME = 45345, //Grand Warlock Alythess spells - SPELL_PYROGENICS = 45230, //15secs - SPELL_FLAME_TOUCHED = 45348, - SPELL_CONFLAGRATION = 45342, //30-35 secs - SPELL_BLAZE = 45235, //on main target every 3 secs - SPELL_FLAME_SEAR = 46771, - SPELL_BLAZE_SUMMON = 45236, //187366 GO - SPELL_BLAZE_BURN = 45246 + SPELL_PYROGENICS = 45230, //15secs + SPELL_FLAME_TOUCHED = 45348, + SPELL_CONFLAGRATION = 45342, //30-35 secs + SPELL_BLAZE = 45235, //on main target every 3 secs + SPELL_FLAME_SEAR = 46771, + SPELL_BLAZE_SUMMON = 45236, //187366 GO + SPELL_BLAZE_BURN = 45246 }; class boss_sacrolash : public CreatureScript @@ -84,11 +78,6 @@ class boss_sacrolash : public CreatureScript public: boss_sacrolash() : CreatureScript("boss_sacrolash") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_sacrolashAI(creature); - }; - struct boss_sacrolashAI : public ScriptedAI { boss_sacrolashAI(Creature* creature) : ScriptedAI(creature) @@ -112,15 +101,12 @@ public: { Enraged = false; - if (instance) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALYTHESS))) { - if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ALYTHESS))) - { - if (temp->isDead()) - temp->Respawn(); - else if (temp->GetVictim()) - me->getThreatManager().addThreat(temp->GetVictim(), 0.0f); - } + if (temp->isDead()) + temp->Respawn(); + else if (temp->GetVictim()) + me->getThreatManager().addThreat(temp->GetVictim(), 0.0f); } if (!me->IsInCombat()) @@ -131,27 +117,21 @@ public: ShadowimageTimer = 20000; ConflagrationTimer = 30000; EnrageTimer = 360000; - SisterDeath = false; } - if (instance) - instance->SetData(DATA_EREDAR_TWINS_EVENT, NOT_STARTED); + instance->SetBossState(DATA_EREDAR_TWINS, NOT_STARTED); } void EnterCombat(Unit* who) OVERRIDE { DoZoneInCombat(); - if (instance) - { - Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ALYTHESS)); - if (temp && temp->IsAlive() && !temp->GetVictim()) - temp->AI()->AttackStart(who); - } + Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ALYTHESS)); + if (temp && temp->IsAlive() && !temp->GetVictim()) + temp->AI()->AttackStart(who); - if (instance) - instance->SetData(DATA_EREDAR_TWINS_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_EREDAR_TWINS, IN_PROGRESS); } void KilledUnit(Unit* /*victim*/) OVERRIDE @@ -167,8 +147,7 @@ public: { Talk(YELL_SAC_DEAD); - if (instance) - instance->SetData(DATA_EREDAR_TWINS_EVENT, DONE); + instance->SetBossState(DATA_EREDAR_TWINS, DONE); } else me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); @@ -178,15 +157,15 @@ public: { switch (spell->Id) { - case SPELL_SHADOW_BLADES: - case SPELL_SHADOW_NOVA: - case SPELL_CONFOUNDING_BLOW: - case SPELL_SHADOW_FURY: - HandleTouchedSpells(target, SPELL_DARK_TOUCHED); - break; - case SPELL_CONFLAGRATION: - HandleTouchedSpells(target, SPELL_FLAME_TOUCHED); - break; + case SPELL_SHADOW_BLADES: + case SPELL_SHADOW_NOVA: + case SPELL_CONFOUNDING_BLOW: + case SPELL_SHADOW_FURY: + HandleTouchedSpells(target, SPELL_DARK_TOUCHED); + break; + case SPELL_CONFLAGRATION: + HandleTouchedSpells(target, SPELL_FLAME_TOUCHED); + break; } } @@ -194,26 +173,26 @@ public: { switch (TouchedType) { - case SPELL_FLAME_TOUCHED: - if (!target->HasAura(SPELL_DARK_FLAME)) - { - if (target->HasAura(SPELL_DARK_TOUCHED)) + case SPELL_FLAME_TOUCHED: + if (!target->HasAura(SPELL_DARK_FLAME)) { - target->RemoveAurasDueToSpell(SPELL_DARK_TOUCHED); - target->CastSpell(target, SPELL_DARK_FLAME, true); - } else target->CastSpell(target, SPELL_FLAME_TOUCHED, true); - } - break; - case SPELL_DARK_TOUCHED: - if (!target->HasAura(SPELL_DARK_FLAME)) - { - if (target->HasAura(SPELL_FLAME_TOUCHED)) + if (target->HasAura(SPELL_DARK_TOUCHED)) + { + target->RemoveAurasDueToSpell(SPELL_DARK_TOUCHED); + target->CastSpell(target, SPELL_DARK_FLAME, true); + } else target->CastSpell(target, SPELL_FLAME_TOUCHED, true); + } + break; + case SPELL_DARK_TOUCHED: + if (!target->HasAura(SPELL_DARK_FLAME)) { - target->RemoveAurasDueToSpell(SPELL_FLAME_TOUCHED); - target->CastSpell(target, SPELL_DARK_FLAME, true); - } else target->CastSpell(target, SPELL_DARK_TOUCHED, true); - } - break; + if (target->HasAura(SPELL_FLAME_TOUCHED)) + { + target->RemoveAurasDueToSpell(SPELL_FLAME_TOUCHED); + target->CastSpell(target, SPELL_DARK_FLAME, true); + } else target->CastSpell(target, SPELL_DARK_TOUCHED, true); + } + break; } } @@ -223,8 +202,7 @@ public: { if (instance) { - Unit* Temp = NULL; - Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); + Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); if (Temp && Temp->isDead()) { Talk(YELL_SISTER_ALYTHESS_DEAD); @@ -245,9 +223,7 @@ public: if (!me->IsNonMeleeSpellCasted(false)) { me->InterruptSpell(CURRENT_GENERIC_SPELL); - Unit* target = NULL; - target = SelectTarget(SELECT_TARGET_RANDOM, 0); - if (target) + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) DoCast(target, SPELL_CONFLAGRATION); ConflagrationTimer = 30000+(rand()%5000); } @@ -259,8 +235,7 @@ public: { if (!me->IsNonMeleeSpellCasted(false)) { - Unit* target = NULL; - target = SelectTarget(SELECT_TARGET_RANDOM, 0); + Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0); if (target) DoCast(target, SPELL_SHADOW_NOVA); @@ -279,9 +254,7 @@ public: { if (!me->IsNonMeleeSpellCasted(false)) { - Unit* target = NULL; - target = SelectTarget(SELECT_TARGET_RANDOM, 0); - if (target) + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) DoCast(target, SPELL_CONFOUNDING_BLOW); ConfoundingblowTimer = 20000 + (rand()%5000); } @@ -297,7 +270,7 @@ public: temp = DoSpawnCreature(NPC_SHADOW_IMAGE, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 10000); if (temp && target) { - temp->AddThreat(target, 1000000);//don't change target(healers) + temp->AddThreat(target, 1000000); //don't change target(healers) temp->AI()->AttackStart(target); } } @@ -333,6 +306,11 @@ public: } } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + }; }; class boss_alythess : public CreatureScript @@ -340,11 +318,6 @@ class boss_alythess : public CreatureScript public: boss_alythess() : CreatureScript("boss_alythess") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_alythessAI(creature); - }; - struct boss_alythessAI : public ScriptedAI { boss_alythessAI(Creature* creature) : ScriptedAI(creature) @@ -376,7 +349,7 @@ public: if (instance) { - if (Creature* temp = Unit::GetCreature((*me), instance->GetData64(DATA_SACROLASH))) + if (Creature* temp = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SACROLASH))) { if (temp->isDead()) temp->Respawn(); @@ -398,23 +371,18 @@ public: SisterDeath = false; } - if (instance) - instance->SetData(DATA_EREDAR_TWINS_EVENT, NOT_STARTED); + instance->SetBossState(DATA_EREDAR_TWINS, NOT_STARTED); } void EnterCombat(Unit* who) OVERRIDE { DoZoneInCombat(); - if (instance) - { - Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); - if (temp && temp->IsAlive() && !temp->GetVictim()) - temp->AI()->AttackStart(who); - } + Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); + if (temp && temp->IsAlive() && !temp->GetVictim()) + temp->AI()->AttackStart(who); - if (instance) - instance->SetData(DATA_EREDAR_TWINS_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_EREDAR_TWINS, IN_PROGRESS); } void AttackStart(Unit* who) OVERRIDE @@ -424,7 +392,6 @@ public: } void MoveInLineOfSight(Unit* who) OVERRIDE - { if (!who || me->GetVictim()) return; @@ -441,17 +408,13 @@ public: } } else if (IntroStepCounter == 10 && me->IsWithinLOSInMap(who)&& me->IsWithinDistInMap(who, 30)) - { IntroStepCounter = 0; - } } void KilledUnit(Unit* /*victim*/) OVERRIDE { if (rand()%4 == 0) - { Talk(YELL_ALY_KILL); - } } void JustDied(Unit* /*killer*/) OVERRIDE @@ -459,9 +422,7 @@ public: if (SisterDeath) { Talk(YELL_ALY_DEAD); - - if (instance) - instance->SetData(DATA_EREDAR_TWINS_EVENT, DONE); + instance->SetBossState(DATA_EREDAR_TWINS, DONE); } else me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); @@ -471,16 +432,16 @@ public: { switch (spell->Id) { - case SPELL_BLAZE: - target->CastSpell(target, SPELL_BLAZE_SUMMON, true); - break; - case SPELL_CONFLAGRATION: - case SPELL_FLAME_SEAR: - HandleTouchedSpells(target, SPELL_FLAME_TOUCHED); - break; - case SPELL_SHADOW_NOVA: - HandleTouchedSpells(target, SPELL_DARK_TOUCHED); - break; + case SPELL_BLAZE: + target->CastSpell(target, SPELL_BLAZE_SUMMON, true); + break; + case SPELL_CONFLAGRATION: + case SPELL_FLAME_SEAR: + HandleTouchedSpells(target, SPELL_FLAME_TOUCHED); + break; + case SPELL_SHADOW_NOVA: + HandleTouchedSpells(target, SPELL_DARK_TOUCHED); + break; } } @@ -488,58 +449,68 @@ public: { switch (TouchedType) { - case SPELL_FLAME_TOUCHED: - if (!target->HasAura(SPELL_DARK_FLAME)) - { - if (target->HasAura(SPELL_DARK_TOUCHED)) - { - target->RemoveAurasDueToSpell(SPELL_DARK_TOUCHED); - target->CastSpell(target, SPELL_DARK_FLAME, true); - }else + case SPELL_FLAME_TOUCHED: + if (!target->HasAura(SPELL_DARK_FLAME)) { - target->CastSpell(target, SPELL_FLAME_TOUCHED, true); + if (target->HasAura(SPELL_DARK_TOUCHED)) + { + target->RemoveAurasDueToSpell(SPELL_DARK_TOUCHED); + target->CastSpell(target, SPELL_DARK_FLAME, true); + } + else + target->CastSpell(target, SPELL_FLAME_TOUCHED, true); } - } - break; - case SPELL_DARK_TOUCHED: - if (!target->HasAura(SPELL_DARK_FLAME)) - { - if (target->HasAura(SPELL_FLAME_TOUCHED)) + break; + case SPELL_DARK_TOUCHED: + if (!target->HasAura(SPELL_DARK_FLAME)) { - target->RemoveAurasDueToSpell(SPELL_FLAME_TOUCHED); - target->CastSpell(target, SPELL_DARK_FLAME, true); - } else target->CastSpell(target, SPELL_DARK_TOUCHED, true); - } - break; + if (target->HasAura(SPELL_FLAME_TOUCHED)) + { + target->RemoveAurasDueToSpell(SPELL_FLAME_TOUCHED); + target->CastSpell(target, SPELL_DARK_FLAME, true); + } + else + target->CastSpell(target, SPELL_DARK_TOUCHED, true); + } + break; } } uint32 IntroStep(uint32 step) { - Creature* Sacrolash = Unit::GetCreature(*me, instance ? instance->GetData64(DATA_SACROLASH) : 0); + Creature* Sacrolash = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); switch (step) { - case 0: return 0; - case 1: - if (Sacrolash) - Sacrolash->AI()->Talk(YELL_INTRO_SAC_1); - return 1000; - case 2: Talk(YELL_INTRO_ALY_2); return 1000; - case 3: - if (Sacrolash) - Sacrolash->AI()->Talk(YELL_INTRO_SAC_3); - return 2000; - case 4: Talk(YELL_INTRO_ALY_4); return 1000; - case 5: - if (Sacrolash) - Sacrolash->AI()->Talk(YELL_INTRO_SAC_5); - return 2000; - case 6: Talk(YELL_INTRO_ALY_6); return 1000; - case 7: - if (Sacrolash) - Sacrolash->AI()->Talk(YELL_INTRO_SAC_7); - return 3000; - case 8: Talk(YELL_INTRO_ALY_8); return 900000; + case 0: + return 0; + case 1: + if (Sacrolash) + Sacrolash->AI()->Talk(YELL_INTRO_SAC_1); + return 1000; + case 2: + Talk(YELL_INTRO_ALY_2); + return 1000; + case 3: + if (Sacrolash) + Sacrolash->AI()->Talk(YELL_INTRO_SAC_3); + return 2000; + case 4: + Talk(YELL_INTRO_ALY_4); + return 1000; + case 5: + if (Sacrolash) + Sacrolash->AI()->Talk(YELL_INTRO_SAC_5); + return 2000; + case 6: + Talk(YELL_INTRO_ALY_6); + return 1000; + case 7: + if (Sacrolash) + Sacrolash->AI()->Talk(YELL_INTRO_SAC_7); + return 3000; + case 8: + Talk(YELL_INTRO_ALY_8); + return 900000; } return 10000; } @@ -556,30 +527,23 @@ public: if (!SisterDeath) { - if (instance) + Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); + if (Temp && Temp->isDead()) { - Unit* Temp = NULL; - Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); - if (Temp && Temp->isDead()) - { - Talk(YELL_SISTER_SACROLASH_DEAD); - DoCast(me, SPELL_EMPOWER); - me->InterruptSpell(CURRENT_GENERIC_SPELL); - SisterDeath = true; - } + Talk(YELL_SISTER_SACROLASH_DEAD); + DoCast(me, SPELL_EMPOWER); + me->InterruptSpell(CURRENT_GENERIC_SPELL); + SisterDeath = true; } } if (!me->GetVictim()) { - if (instance) + Creature* sisiter = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SACROLASH)); + if (sisiter && !sisiter->isDead() && sisiter->GetVictim()) { - Creature* sisiter = Unit::GetCreature((*me), instance->GetData64(DATA_SACROLASH)); - if (sisiter && !sisiter->isDead() && sisiter->GetVictim()) - { - me->AddThreat(sisiter->GetVictim(), 0.0f); - DoStartNoMovement(sisiter->GetVictim()); - me->Attack(sisiter->GetVictim(), false); - } + me->AddThreat(sisiter->GetVictim(), 0.0f); + DoStartNoMovement(sisiter->GetVictim()); + me->Attack(sisiter->GetVictim(), false); } } @@ -592,9 +556,7 @@ public: { if (!me->IsNonMeleeSpellCasted(false)) { - Unit* target = NULL; - target = SelectTarget(SELECT_TARGET_RANDOM, 0); - if (target) + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) DoCast(target, SPELL_SHADOW_NOVA); ShadownovaTimer= 30000+(rand()%5000); } @@ -607,8 +569,7 @@ public: if (!me->IsNonMeleeSpellCasted(false)) { me->InterruptSpell(CURRENT_GENERIC_SPELL); - Unit* target = NULL; - target = SelectTarget(SELECT_TARGET_RANDOM, 0); + Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0); if (target) DoCast(target, SPELL_CONFLAGRATION); ConflagrationTimer = 30000+(rand()%5000); @@ -661,6 +622,11 @@ public: } else EnrageTimer -= diff; } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + }; }; class npc_shadow_image : public CreatureScript @@ -689,23 +655,23 @@ public: KillTimer = 15000; } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void SpellHitTarget(Unit* target, const SpellInfo* spell) OVERRIDE { switch (spell->Id) { - case SPELL_SHADOW_FURY: - case SPELL_DARK_STRIKE: - if (!target->HasAura(SPELL_DARK_FLAME)) - { - if (target->HasAura(SPELL_FLAME_TOUCHED)) + case SPELL_SHADOW_FURY: + case SPELL_DARK_STRIKE: + if (!target->HasAura(SPELL_DARK_FLAME)) { - target->RemoveAurasDueToSpell(SPELL_FLAME_TOUCHED); - target->CastSpell(target, SPELL_DARK_FLAME, true); - } else target->CastSpell(target, SPELL_DARK_TOUCHED, true); - } - break; + if (target->HasAura(SPELL_FLAME_TOUCHED)) + { + target->RemoveAurasDueToSpell(SPELL_FLAME_TOUCHED); + target->CastSpell(target, SPELL_DARK_FLAME, true); + } else target->CastSpell(target, SPELL_DARK_TOUCHED, true); + } + break; } } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 561ba361f26..ca5dcf5360e 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -81,14 +81,14 @@ enum Spells //Other SPELL_BERSERK = 45078, SPELL_CLOUD_VISUAL = 45212, - SPELL_CLOUD_SUMMON = 45884, + SPELL_CLOUD_SUMMON = 45884 }; enum PhaseFelmyst { PHASE_NONE, PHASE_GROUND, - PHASE_FLIGHT, + PHASE_FLIGHT }; enum EventFelmyst @@ -104,7 +104,7 @@ enum EventFelmyst EVENT_FLIGHT_SEQUENCE, EVENT_SUMMON_DEAD, - EVENT_SUMMON_FOG, + EVENT_SUMMON_FOG }; class boss_felmyst : public CreatureScript @@ -112,11 +112,6 @@ class boss_felmyst : public CreatureScript public: boss_felmyst() : CreatureScript("boss_felmyst") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_felmystAI(creature); - } - struct boss_felmystAI : public ScriptedAI { boss_felmystAI(Creature* creature) : ScriptedAI(creature) @@ -148,8 +143,7 @@ public: DespawnSummons(NPC_VAPOR_TRAIL); me->setActive(false); - if (instance) - instance->SetData(DATA_FELMYST_EVENT, NOT_STARTED); + instance->SetBossState(DATA_FELMYST, NOT_STARTED); } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -162,8 +156,7 @@ public: DoCast(me, AURA_NOXIOUS_FUMES, true); EnterPhase(PHASE_GROUND); - if (instance) - instance->SetData(DATA_FELMYST_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_FELMYST, IN_PROGRESS); } void AttackStart(Unit* who) OVERRIDE @@ -173,7 +166,6 @@ public: } void MoveInLineOfSight(Unit* who) OVERRIDE - { if (phase != PHASE_FLIGHT) ScriptedAI::MoveInLineOfSight(who); @@ -193,8 +185,7 @@ public: { Talk(YELL_DEATH); - if (instance) - instance->SetData(DATA_FELMYST_EVENT, DONE); + instance->SetBossState(DATA_FELMYST, DONE); } void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE @@ -246,26 +237,26 @@ public: { switch (NextPhase) { - case PHASE_GROUND: - me->CastStop(SPELL_FOG_BREATH); - me->RemoveAurasDueToSpell(SPELL_FOG_BREATH); - me->StopMoving(); - me->SetSpeed(MOVE_RUN, 2.0f); - - events.ScheduleEvent(EVENT_CLEAVE, urand(5000, 10000)); - events.ScheduleEvent(EVENT_CORROSION, urand(10000, 20000)); - events.ScheduleEvent(EVENT_GAS_NOVA, urand(15000, 20000)); - events.ScheduleEvent(EVENT_ENCAPSULATE, urand(20000, 25000)); - events.ScheduleEvent(EVENT_FLIGHT, 60000); - break; - case PHASE_FLIGHT: - me->SetDisableGravity(true); - events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1000); - uiFlightCount = 0; - uiBreathCount = 0; - break; - default: - break; + case PHASE_GROUND: + me->CastStop(SPELL_FOG_BREATH); + me->RemoveAurasDueToSpell(SPELL_FOG_BREATH); + me->StopMoving(); + me->SetSpeed(MOVE_RUN, 2.0f); + + events.ScheduleEvent(EVENT_CLEAVE, urand(5000, 10000)); + events.ScheduleEvent(EVENT_CORROSION, urand(10000, 20000)); + events.ScheduleEvent(EVENT_GAS_NOVA, urand(15000, 20000)); + events.ScheduleEvent(EVENT_ENCAPSULATE, urand(20000, 25000)); + events.ScheduleEvent(EVENT_FLIGHT, 60000); + break; + case PHASE_FLIGHT: + me->SetDisableGravity(true); + events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1000); + uiFlightCount = 0; + uiBreathCount = 0; + break; + default: + break; } phase = NextPhase; } @@ -274,133 +265,131 @@ public: { switch (uiFlightCount) { - case 0: - //me->AttackStop(); - me->GetMotionMaster()->Clear(false); - me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); - me->StopMoving(); - Talk(YELL_TAKEOFF); - events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 2000); - break; - case 1: - me->GetMotionMaster()->MovePoint(0, me->GetPositionX()+1, me->GetPositionY(), me->GetPositionZ()+10); - break; - case 2: - { - Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); - if (!target) - target = Unit::GetUnit(*me, instance ? instance->GetData64(DATA_PLAYER_GUID) : 0); - - if (!target) + case 0: + //me->AttackStop(); + me->GetMotionMaster()->Clear(false); + me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); + me->StopMoving(); + Talk(YELL_TAKEOFF); + events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 2000); + break; + case 1: + me->GetMotionMaster()->MovePoint(0, me->GetPositionX()+1, me->GetPositionY(), me->GetPositionZ()+10); + break; + case 2: { - EnterEvadeMode(); - return; + Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); + if (!target) + target = Unit::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); + + if (!target) + { + EnterEvadeMode(); + return; + } + + if (Creature* Vapor = me->SummonCreature(NPC_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000)) + { + Vapor->AI()->AttackStart(target); + me->InterruptNonMeleeSpells(false); + DoCast(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug + Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true); + } + + events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000); + break; } - - Creature* Vapor = me->SummonCreature(NPC_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000); - if (Vapor) + case 3: { - Vapor->AI()->AttackStart(target); - me->InterruptNonMeleeSpells(false); - DoCast(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug - Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true); + DespawnSummons(NPC_VAPOR_TRAIL); + //DoCast(me, SPELL_VAPOR_SELECT); need core support + + Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); + if (!target) + target = Unit::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); + + if (!target) + { + EnterEvadeMode(); + return; + } + + //target->CastSpell(target, SPELL_VAPOR_SUMMON, true); need core support + if (Creature* pVapor = me->SummonCreature(NPC_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000)) + { + if (pVapor->AI()) + pVapor->AI()->AttackStart(target); + me->InterruptNonMeleeSpells(false); + DoCast(pVapor, SPELL_VAPOR_CHANNEL, false); // core bug + pVapor->CastSpell(pVapor, SPELL_VAPOR_TRIGGER, true); + } + + events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000); + break; } - - events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000); - break; - } - case 3: - { - DespawnSummons(NPC_VAPOR_TRAIL); - //DoCast(me, SPELL_VAPOR_SELECT); need core support - - Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); - if (!target) - target = Unit::GetUnit(*me, instance ? instance->GetData64(DATA_PLAYER_GUID) : 0); - - if (!target) + case 4: + DespawnSummons(NPC_VAPOR_TRAIL); + events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1); + break; + case 5: { - EnterEvadeMode(); - return; + Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); + if (!target) + target = Unit::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); + + if (!target) + { + EnterEvadeMode(); + return; + } + + breathX = target->GetPositionX(); + breathY = target->GetPositionY(); + float x, y, z; + target->GetContactPoint(me, x, y, z, 70); + me->GetMotionMaster()->MovePoint(0, x, y, z+10); + break; } - - //target->CastSpell(target, SPELL_VAPOR_SUMMON, true); need core support - Creature* pVapor = me->SummonCreature(NPC_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000); - if (pVapor) + case 6: + me->SetOrientation(me->GetAngle(breathX, breathY)); + me->StopMoving(); + //DoTextEmote("takes a deep breath.", NULL); + events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000); + break; + case 7: { - if (pVapor->AI()) - pVapor->AI()->AttackStart(target); - me->InterruptNonMeleeSpells(false); - DoCast(pVapor, SPELL_VAPOR_CHANNEL, false); // core bug - pVapor->CastSpell(pVapor, SPELL_VAPOR_TRIGGER, true); + DoCast(me, SPELL_FOG_BREATH, true); + float x, y, z; + me->GetPosition(x, y, z); + x = 2 * breathX - x; + y = 2 * breathY - y; + me->GetMotionMaster()->MovePoint(0, x, y, z); + events.ScheduleEvent(EVENT_SUMMON_FOG, 1); + break; } - - events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000); - break; - } - case 4: - DespawnSummons(NPC_VAPOR_TRAIL); - events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1); - break; - case 5: - { - Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true); - if (!target) - target = Unit::GetUnit(*me, instance ? instance->GetData64(DATA_PLAYER_GUID) : 0); - - if (!target) - { - EnterEvadeMode(); - return; - } - - breathX = target->GetPositionX(); - breathY = target->GetPositionY(); - float x, y, z; - target->GetContactPoint(me, x, y, z, 70); - me->GetMotionMaster()->MovePoint(0, x, y, z+10); - break; - } - case 6: - me->SetOrientation(me->GetAngle(breathX, breathY)); - me->StopMoving(); - //DoTextEmote("takes a deep breath.", NULL); - events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000); - break; - case 7: - { - DoCast(me, SPELL_FOG_BREATH, true); - float x, y, z; - me->GetPosition(x, y, z); - x = 2 * breathX - x; - y = 2 * breathY - y; - me->GetMotionMaster()->MovePoint(0, x, y, z); - events.ScheduleEvent(EVENT_SUMMON_FOG, 1); - break; - } - case 8: - me->CastStop(SPELL_FOG_BREATH); - me->RemoveAurasDueToSpell(SPELL_FOG_BREATH); - ++uiBreathCount; - events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1); - if (uiBreathCount < 3) - uiFlightCount = 4; - break; - case 9: - if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO)) - DoStartMovement(target); - else - { - EnterEvadeMode(); - return; - } - break; - case 10: - me->SetDisableGravity(false); - me->HandleEmoteCommand(EMOTE_ONESHOT_LAND); - EnterPhase(PHASE_GROUND); - AttackStart(SelectTarget(SELECT_TARGET_TOPAGGRO)); - break; + case 8: + me->CastStop(SPELL_FOG_BREATH); + me->RemoveAurasDueToSpell(SPELL_FOG_BREATH); + ++uiBreathCount; + events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1); + if (uiBreathCount < 3) + uiFlightCount = 4; + break; + case 9: + if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO)) + DoStartMovement(target); + else + { + EnterEvadeMode(); + return; + } + break; + case 10: + me->SetDisableGravity(false); + me->HandleEmoteCommand(EMOTE_ONESHOT_LAND); + EnterPhase(PHASE_GROUND); + AttackStart(SelectTarget(SELECT_TARGET_TOPAGGRO)); + break; } ++uiFlightCount; } @@ -512,6 +501,11 @@ public: } } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + } }; class npc_felmyst_vapor : public CreatureScript @@ -531,12 +525,14 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetSpeed(MOVE_RUN, 0.8f); } + void Reset() OVERRIDE { } void EnterCombat(Unit* /*who*/) OVERRIDE { DoZoneInCombat(); //DoCast(me, SPELL_VAPOR_FORCE, true); core bug } + void UpdateAI(uint32 /*diff*/) OVERRIDE { if (!me->GetVictim()) @@ -565,6 +561,7 @@ public: me->SetTarget(me->GetGUID()); me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 0.01f); // core bug } + void Reset() OVERRIDE { } void EnterCombat(Unit* /*who*/) OVERRIDE { } void AttackStart(Unit* /*who*/) OVERRIDE { } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index 9cd929981bf..2a2574ea256 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -44,7 +44,7 @@ enum Yells SAY_GOOD_AGGRO = 0, SAY_GOOD_NEAR_DEATH = 1, - SAY_GOOD_NEAR_DEATH2 = 2, + SAY_GOOD_NEAR_DEATH2 = 2 }; enum Spells @@ -76,20 +76,20 @@ enum Spells enum SWPActions { DO_ENRAGE = 1, - DO_BANISH = 2, + DO_BANISH = 2 }; #define GO_FAILED "You are unable to use this currently." #define EMOTE_UNABLE_TO_FIND "is unable to find Kalecgos" -#define FLY_X 1679 -#define FLY_Y 900 -#define FLY_Z 82 +#define FLY_X 1679 +#define FLY_Y 900 +#define FLY_Z 82 -#define CENTER_X 1705 -#define CENTER_Y 930 -#define RADIUS 30 +#define CENTER_X 1705 +#define CENTER_Y 930 +#define RADIUS 30 #define DRAGON_REALM_Z 53.079f #define DEMON_REALM_Z -74.558f @@ -103,11 +103,6 @@ class boss_kalecgos : public CreatureScript public: boss_kalecgos() : CreatureScript("boss_kalecgos") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_kalecgosAI(creature); - } - struct boss_kalecgosAI : public ScriptedAI { boss_kalecgosAI(Creature* creature) : ScriptedAI(creature) @@ -141,13 +136,10 @@ public: void Reset() OVERRIDE { - if (instance) - { - SathGUID = instance->GetData64(DATA_SATHROVARR); - instance->SetData(DATA_KALECGOS_EVENT, NOT_STARTED); - } + SathGUID = instance->GetData64(DATA_SATHROVARR); + instance->SetBossState(DATA_KALECGOS, NOT_STARTED); - if (Creature* Sath = Unit::GetCreature(*me, SathGUID)) + if (Creature* Sath = ObjectAccessor::GetCreature(*me, SathGUID)) Sath->AI()->EnterEvadeMode(); me->setFaction(14); @@ -158,7 +150,7 @@ public: me->SetVisible(true); me->SetStandState(UNIT_STAND_STATE_SLEEP); } - me->SetFullHealth();//dunno why it does not resets health at evade.. + me->SetFullHealth(); //dunno why it does not resets health at evade.. ArcaneBuffetTimer = 8000; FrostBreathTimer = 15000; WildMagicTimer = 10000; @@ -234,6 +226,7 @@ public: } else ResetTimer -= diff; return; } + if (!UpdateVictim()) return; @@ -246,13 +239,13 @@ public: } if (HealthBelowPct(10) && !isEnraged) { - if (Creature* Sath = Unit::GetCreature(*me, SathGUID)) + if (Creature* Sath = ObjectAccessor::GetCreature(*me, SathGUID)) Sath->AI()->DoAction(DO_ENRAGE); DoAction(DO_ENRAGE); } if (!isBanished && HealthBelowPct(1)) { - if (Creature* Sath = Unit::GetCreature(*me, SathGUID)) + if (Creature* Sath = ObjectAccessor::GetCreature(*me, SathGUID)) { if (Sath->HasAura(SPELL_BANISH)) { @@ -317,6 +310,7 @@ public: SpectralBlastTimer = 1000; return; } + std::list::const_iterator i = targetList.begin(); advance(i, rand()%targetList.size()); if ((*i)) @@ -331,7 +325,6 @@ public: } void MoveInLineOfSight(Unit* who) OVERRIDE - { if (bJustReset)//boss is invisible, don't attack return; @@ -356,8 +349,7 @@ public: Talk(SAY_EVIL_AGGRO); DoZoneInCombat(); - if (instance) - instance->SetData(DATA_KALECGOS_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_KALECGOS, IN_PROGRESS); } void KilledUnit(Unit* /*victim*/) OVERRIDE @@ -396,21 +388,21 @@ public: { switch (TalkSequence) { - case 1: - me->setFaction(35); - TalkTimer = 1000; - break; - case 2: - Talk(SAY_GOOD_PLRWIN); - TalkTimer = 10000; - break; - case 3: - me->SetDisableGravity(true); - me->GetMotionMaster()->MovePoint(0, FLY_X, FLY_Y, FLY_Z); - TalkTimer = 600000; - break; - default: - break; + case 1: + me->setFaction(35); + TalkTimer = 1000; + break; + case 2: + Talk(SAY_GOOD_PLRWIN); + TalkTimer = 10000; + break; + case 3: + me->SetDisableGravity(true); + me->GetMotionMaster()->MovePoint(0, FLY_X, FLY_Y, FLY_Z); + TalkTimer = 600000; + break; + default: + break; } } @@ -418,23 +410,28 @@ public: { switch (TalkSequence) { - case 1: - Talk(SAY_EVIL_ENRAGE); - TalkTimer = 3000; - break; - case 2: - me->SetDisableGravity(true); - me->GetMotionMaster()->MovePoint(0, FLY_X, FLY_Y, FLY_Z); - TalkTimer = 15000; - break; - case 3: - EnterEvadeMode(); - break; - default: - break; + case 1: + Talk(SAY_EVIL_ENRAGE); + TalkTimer = 3000; + break; + case 2: + me->SetDisableGravity(true); + me->GetMotionMaster()->MovePoint(0, FLY_X, FLY_Y, FLY_Z); + TalkTimer = 15000; + break; + case 3: + EnterEvadeMode(); + break; + default: + break; } } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + } }; class boss_kalec : public CreatureScript @@ -490,6 +487,7 @@ public: { if (!me->HasAura(AURA_SPECTRAL_INVISIBILITY)) me->CastSpell(me, AURA_SPECTRAL_INVISIBILITY, true); + if (!UpdateVictim()) return; @@ -497,26 +495,26 @@ public: { switch (YellSequence) { - case 0: - Talk(SAY_GOOD_AGGRO); - ++YellSequence; - break; - case 1: - if (HealthBelowPct(50)) - { - Talk(SAY_GOOD_NEAR_DEATH); + case 0: + Talk(SAY_GOOD_AGGRO); ++YellSequence; - } - break; - case 2: - if (HealthBelowPct(10)) - { - Talk(SAY_GOOD_NEAR_DEATH2); - ++YellSequence; - } - break; - default: - break; + break; + case 1: + if (HealthBelowPct(50)) + { + Talk(SAY_GOOD_NEAR_DEATH); + ++YellSequence; + } + break; + case 2: + if (HealthBelowPct(10)) + { + Talk(SAY_GOOD_NEAR_DEATH2); + ++YellSequence; + } + break; + default: + break; } YellTimer = 5000; } @@ -610,11 +608,11 @@ public: if (instance) { KalecgosGUID = instance->GetData64(DATA_KALECGOS_DRAGON); - instance->SetData(DATA_KALECGOS_EVENT, NOT_STARTED); + instance->SetBossState(DATA_KALECGOS, NOT_STARTED); } if (KalecGUID) { - if (Creature* Kalec = Unit::GetCreature(*me, KalecGUID)) + if (Creature* Kalec = ObjectAccessor::GetCreature(*me, KalecGUID)) Kalec->setDeathState(JUST_DIED); KalecGUID = 0; } @@ -654,7 +652,7 @@ public: if (target->GetGUID() == KalecGUID) { TeleportAllPlayersBack(); - if (Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID)) + if (Creature* Kalecgos = ObjectAccessor::GetCreature(*me, KalecgosGUID)) { CAST_AI(boss_kalecgos::boss_kalecgosAI, Kalecgos->AI())->TalkTimer = 1; CAST_AI(boss_kalecgos::boss_kalecgosAI, Kalecgos->AI())->isFriendly = false; @@ -670,14 +668,14 @@ public: Talk(SAY_SATH_DEATH); me->SetPosition(me->GetPositionX(), me->GetPositionY(), DRAGON_REALM_Z, me->GetOrientation()); TeleportAllPlayersBack(); - if (Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID)) + if (Creature* Kalecgos = ObjectAccessor::GetCreature(*me, KalecgosGUID)) { CAST_AI(boss_kalecgos::boss_kalecgosAI, Kalecgos->AI())->TalkTimer = 1; CAST_AI(boss_kalecgos::boss_kalecgosAI, Kalecgos->AI())->isFriendly = true; } if (instance) - instance->SetData(DATA_KALECGOS_EVENT, DONE); + instance->SetBossState(DATA_KALECGOS, DONE); } void TeleportAllPlayersBack() @@ -716,27 +714,28 @@ public: { if (!me->HasAura(AURA_SPECTRAL_INVISIBILITY)) me->CastSpell(me, AURA_SPECTRAL_INVISIBILITY, true); + if (!UpdateVictim()) return; if (CheckTimer <= diff) { - Creature* Kalec = Unit::GetCreature(*me, KalecGUID); + Creature* Kalec = ObjectAccessor::GetCreature(*me, KalecGUID); if (!Kalec || !Kalec->IsAlive()) { - if (Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID)) + if (Creature* Kalecgos = ObjectAccessor::GetCreature(*me, KalecgosGUID)) Kalecgos->AI()->EnterEvadeMode(); return; } if (HealthBelowPct(10) && !isEnraged) { - if (Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID)) + if (Creature* Kalecgos = ObjectAccessor::GetCreature(*me, KalecgosGUID)) Kalecgos->AI()->DoAction(DO_ENRAGE); DoAction(DO_ENRAGE); } - Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID); + Creature* Kalecgos = ObjectAccessor::GetCreature(*me, KalecgosGUID); if (Kalecgos && !Kalecgos->IsInCombat()) { me->AI()->EnterEvadeMode(); @@ -778,7 +777,8 @@ public: if (ShadowBoltTimer <= diff) { - if (!(rand()%5))Talk(SAY_SATH_SPELL1); + if (!(rand()%5)) + Talk(SAY_SATH_SPELL1); DoCast(me, SPELL_SHADOW_BOLT); ShadowBoltTimer = 7000+(rand()%3000); } else ShadowBoltTimer -= diff; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index f1c0fd9cc83..b3982200a10 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -60,7 +60,7 @@ enum Yells SAY_ANVEENA_IMPRISONED = 0, SAY_ANVEENA_LOST = 1, SAY_ANVEENA_KALEC = 2, - SAY_ANVEENA_GOODBYE = 3, + SAY_ANVEENA_GOODBYE = 3 }; /*** Spells used during the encounter ***/ @@ -156,7 +156,7 @@ enum Phase PHASE_NORMAL = 2, // Kil'Jaeden emerges from the sunwell PHASE_DARKNESS = 3, // At 85%, he gains few abilities; Kalecgos joins the fight PHASE_ARMAGEDDON = 4, // At 55%, he gains even more abilities - PHASE_SACRIFICE = 5, // At 25%, Anveena sacrifices herself into the Sunwell; at this point he becomes enraged and has *significally* shorter cooldowns. + PHASE_SACRIFICE = 5 // At 25%, Anveena sacrifices herself into the Sunwell; at this point he becomes enraged and has *significally* shorter cooldowns. }; //Timers @@ -185,7 +185,7 @@ Position DeceiverLocations[3]= { {1682.045f, 631.299f, 5.936f, 0.0f}, {1684.099f, 618.848f, 0.589f, 0.0f}, - {1694.170f, 612.272f, 1.416f, 0.0f}, + {1694.170f, 612.272f, 1.416f, 0.0f} }; // Locations, where Shield Orbs will spawn @@ -225,7 +225,7 @@ static Speech Speeches[]= {SAY_KJ_PHASE5, DATA_KILJAEDEN, 5500}, // use in End sequence? - {SAY_KALECGOS_GOODBYE, DATA_KALECGOS_KJ, 12000}, + {SAY_KALECGOS_GOODBYE, DATA_KALECGOS_KJ, 12000} }; //AI for Kalecgos @@ -271,13 +271,13 @@ public: switch (index) { case 0: - return instance->instance->GetGameObject(instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1)); + return ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1)); case 1: - return instance->instance->GetGameObject(instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2)); + return ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2)); case 2: - return instance->instance->GetGameObject(instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3)); + return ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3)); case 3: - return instance->instance->GetGameObject(instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4)); + return ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4)); } return NULL; @@ -368,11 +368,11 @@ public: if (go->GetUInt32Value(GAMEOBJECT_FACTION) == 35) { InstanceScript* instance = go->GetInstanceScript(); - player->SummonCreature(CREATURE_POWER_OF_THE_BLUE_DRAGONFLIGHT, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 121000); + player->SummonCreature(NPC_POWER_OF_THE_BLUE_DRAGONFLIGHT, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 121000); player->CastSpell(player, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, false); go->SetUInt32Value(GAMEOBJECT_FACTION, 0); - if (Creature* pKalec = Unit::GetCreature(*player, instance->GetData64(DATA_KALECGOS_KJ))) + if (Creature* pKalec = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_KALECGOS_KJ))) CAST_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalec->AI())->SetRingOfBlueFlames(); go->Refresh(); @@ -425,7 +425,7 @@ public: phase = PHASE_DECEIVERS; if (instance) - if (Creature* pKalecKJ = Unit::GetCreature((*me), instance->GetData64(DATA_KALECGOS_KJ))) + if (Creature* pKalecKJ = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_KALECGOS_KJ))) CAST_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalecKJ->AI())->ResetOrbs(); deceiverDeathCount = 0; bSummonedDeceivers = false; @@ -438,15 +438,15 @@ public: { switch (summoned->GetEntry()) { - case CREATURE_HAND_OF_THE_DECEIVER: + case NPC_HAND_OF_THE_DECEIVER: summoned->CastSpell(summoned, SPELL_SHADOW_CHANNELING, false); break; - case CREATURE_ANVEENA: + case NPC_ANVEENA: summoned->SetDisableGravity(true); summoned->CastSpell(summoned, SPELL_ANVEENA_PRISON, true); summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); break; - case CREATURE_KILJAEDEN: + case NPC_KILJAEDEN: summoned->CastSpell(summoned, SPELL_REBIRTH, false); summoned->AddThreat(me->GetVictim(), 1.0f); break; @@ -458,7 +458,7 @@ public: { if (uiRandomSayTimer < diff) { - if (instance && instance->GetData(DATA_MURU_EVENT) != DONE && instance->GetData(DATA_KILJAEDEN_EVENT) == NOT_STARTED) + if (instance && instance->GetBossState(DATA_MURU) != DONE && instance->GetBossState(DATA_KILJAEDEN) == NOT_STARTED) Talk(SAY_KJ_OFFCOMBAT); uiRandomSayTimer = 30000; } else uiRandomSayTimer -= diff; @@ -466,9 +466,9 @@ public: if (!bSummonedDeceivers) { for (uint8 i = 0; i < 3; ++i) - me->SummonCreature(CREATURE_HAND_OF_THE_DECEIVER, DeceiverLocations[i], TEMPSUMMON_DEAD_DESPAWN, 0); + me->SummonCreature(NPC_HAND_OF_THE_DECEIVER, DeceiverLocations[i], TEMPSUMMON_DEAD_DESPAWN, 0); - DoSpawnCreature(CREATURE_ANVEENA, 0, 0, 40, 0, TEMPSUMMON_DEAD_DESPAWN, 0); + DoSpawnCreature(NPC_ANVEENA, 0, 0, 40, 0, TEMPSUMMON_DEAD_DESPAWN, 0); DoCast(me, SPELL_ANVEENA_ENERGY_DRAIN); bSummonedDeceivers = true; } @@ -477,7 +477,7 @@ public: { me->RemoveAurasDueToSpell(SPELL_ANVEENA_ENERGY_DRAIN); phase = PHASE_NORMAL; - DoSpawnCreature(CREATURE_KILJAEDEN, 0, 0, 0, 0, TEMPSUMMON_MANUAL_DESPAWN, 0); + DoSpawnCreature(NPC_KILJAEDEN, 0, 0, 0, 0, TEMPSUMMON_MANUAL_DESPAWN, 0); } } }; @@ -489,11 +489,6 @@ class boss_kiljaeden : public CreatureScript public: boss_kiljaeden() : CreatureScript("boss_kiljaeden") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_kiljaedenAI(creature); - } - struct boss_kiljaedenAI : public ScriptedAI { boss_kiljaedenAI(Creature* creature) : ScriptedAI(creature), summons(me) @@ -559,11 +554,9 @@ public: OrbActivated = false; SpeechBegins = true; - if (instance) - { - if (Creature* pKalec = Unit::GetCreature(*me, instance->GetData64(DATA_KALECGOS_KJ))) - pKalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES); - } + if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KALECGOS_KJ))) + pKalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES); + me->SetFloatValue(UNIT_FIELD_COMBATREACH, 12); ChangeTimers(false, 0); summons.DespawnAll(); @@ -590,7 +583,7 @@ public: void JustSummoned(Creature* summoned) OVERRIDE { - if (summoned->GetEntry() == CREATURE_ARMAGEDDON_TARGET) + if (summoned->GetEntry() == NPC_ARMAGEDDON_TARGET) { summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -607,9 +600,7 @@ public: { Talk(SAY_KJ_DEATH); summons.DespawnAll(); - - if (instance) - instance->SetData(DATA_KILJAEDEN_EVENT, DONE); + instance->SetBossState(DATA_KILJAEDEN, DONE); } void KilledUnit(Unit* /*victim*/) OVERRIDE @@ -624,11 +615,8 @@ public: summons.DespawnAll(); // Reset the controller - if (instance) - { - if (Creature* pControl = Unit::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) - CAST_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->Reset(); - } + if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) + CAST_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->Reset(); } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -657,7 +645,7 @@ public: { float x, y, z; target->GetPosition(x, y, z); - if (Creature* pSinisterReflection = me->SummonCreature(CREATURE_SINISTER_REFLECTION, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0)) + if (Creature* pSinisterReflection = me->SummonCreature(NPC_SINISTER_REFLECTION, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0)) { pSinisterReflection->SetDisplayId(target->GetDisplayId()); pSinisterReflection->AI()->AttackStart(target); @@ -709,15 +697,12 @@ public: if (Speeches[speechCount].timer < SpeechTimer) { SpeechTimer = 0; - if (instance) - { - if (Creature* speechCreature = Unit::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature))) - speechCreature->AI()->Talk(Speeches[speechCount].textid); - if (speechCount == 12) - if (Creature* pAnveena = Unit::GetCreature(*me, instance->GetData64(DATA_ANVEENA))) - pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false); - // ChangeTimers(true, 10000); // Kil should do an emote while screaming without attacking for 10 seconds - } + if (Creature* speechCreature = ObjectAccessor::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature))) + speechCreature->AI()->Talk(Speeches[speechCount].textid); + if (speechCount == 12) + if (Creature* pAnveena = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ANVEENA))) + pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false); + // ChangeTimers(true, 10000); // Kil should do an emote while screaming without attacking for 10 seconds if (speechCount == speechPhaseEnd) TimerIsDeactivated[TIMER_SPEECH]=true; speechCount++; @@ -769,7 +754,7 @@ public: float sx, sy; sx = ShieldOrbLocations[0][0] + std::sin(ShieldOrbLocations[i][0]); sy = ShieldOrbLocations[0][1] + std::sin(ShieldOrbLocations[i][1]); - me->SummonCreature(CREATURE_SHIELD_ORB, sx, sy, SHIELD_ORB_Z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000); + me->SummonCreature(NPC_SHIELD_ORB, sx, sy, SHIELD_ORB_Z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000); } Timer[TIMER_SUMMON_SHILEDORB] = urand(30000, 60000); // 30-60seconds cooldown Timer[TIMER_SOUL_FLAY] = 2000; @@ -814,19 +799,18 @@ public: } break; case TIMER_ORBS_EMPOWER: //Phase 3 - if (instance) - if (Creature* pKalec = Unit::GetCreature(*me, instance->GetData64(DATA_KALECGOS_KJ))) + if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KALECGOS_KJ))) + { + switch (Phase) { - switch (Phase) - { case PHASE_SACRIFICE: CAST_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalec->AI())->EmpowerOrb(true); break; default: CAST_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalec->AI())->EmpowerOrb(false); break; - } } + } OrbActivated = true; TimerIsDeactivated[TIMER_ORBS_EMPOWER] = true; break; @@ -841,7 +825,7 @@ public: { float x, y, z; target->GetPosition(x, y, z); - me->SummonCreature(CREATURE_ARMAGEDDON_TARGET, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN, 15000); + me->SummonCreature(NPC_ARMAGEDDON_TARGET, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN, 15000); } Timer[TIMER_ARMAGEDDON] = 2000; // No, I'm not kidding break; @@ -893,6 +877,11 @@ public: } } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + } }; //AI for Hand of the Deceiver @@ -901,11 +890,6 @@ class npc_hand_of_the_deceiver : public CreatureScript public: npc_hand_of_the_deceiver() : CreatureScript("npc_hand_of_the_deceiver") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_hand_of_the_deceiverAI(creature); - } - struct npc_hand_of_the_deceiverAI : public ScriptedAI { npc_hand_of_the_deceiverAI(Creature* creature) : ScriptedAI(creature) @@ -923,8 +907,7 @@ public: /// @todo Timers! ShadowBoltVolleyTimer = urand(8000, 14000); // So they don't all cast it in the same moment. FelfirePortalTimer = 20000; - if (instance) - instance->SetData(DATA_KILJAEDEN_EVENT, NOT_STARTED); + instance->SetBossState(DATA_KILJAEDEN, NOT_STARTED); } void JustSummoned(Creature* summoned) OVERRIDE @@ -935,12 +918,10 @@ public: void EnterCombat(Unit* who) OVERRIDE { - if (instance) - { - instance->SetData(DATA_KILJAEDEN_EVENT, IN_PROGRESS); - if (Creature* pControl = Unit::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) - pControl->AddThreat(who, 1.0f); - } + instance->SetBossState(DATA_KILJAEDEN, IN_PROGRESS); + if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) + pControl->AddThreat(who, 1.0f); + me->InterruptNonMeleeSpells(true); } @@ -949,7 +930,7 @@ public: if (!instance) return; - if (Creature* pControl = Unit::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) + if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KILJAEDEN_CONTROLLER))) ++(CAST_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->deceiverDeathCount); } @@ -977,7 +958,7 @@ public: // Felfire Portal - Creatres a portal, that spawns Volatile Felfire Fiends, which do suicide bombing. if (FelfirePortalTimer <= diff) { - if (Creature* pPortal = DoSpawnCreature(CREATURE_FELFIRE_PORTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 20000)) + if (Creature* pPortal = DoSpawnCreature(NPC_FELFIRE_PORTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 20000)) { ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) @@ -993,6 +974,11 @@ public: DoMeleeAttackIfReady(); } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + } }; //AI for Felfire Portal @@ -1034,7 +1020,7 @@ public: if (uiSpawnFiendTimer <= diff) { - if (Creature* pFiend = DoSpawnCreature(CREATURE_VOLATILE_FELFIRE_FIEND, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 20000)) + if (Creature* pFiend = DoSpawnCreature(NPC_VOLATILE_FELFIRE_FIEND, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 20000)) pFiend->AddThreat(SelectTarget(SELECT_TARGET_RANDOM, 0), 100000.0f); uiSpawnFiendTimer = urand(4000, 8000); } else uiSpawnFiendTimer -= diff; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index e36310f85b1..b91f2fadfc3 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -30,55 +30,56 @@ SDComment: all sounds, black hole effect triggers to often (46228) // Muru & Entropius's spells enum Spells { - SPELL_ENRAGE = 26662, + SPELL_ENRAGE = 26662, // Muru's spells SPELL_NEGATIVE_ENERGY = 46009, //(this trigger 46008) - SPELL_DARKNESS = 45999, - SPELL_OPEN_ALL_PORTALS = 46177, + SPELL_DARKNESS = 45999, + SPELL_OPEN_ALL_PORTALS = 46177, SPELL_OPEN_PORTAL = 45977, - SPELL_OPEN_PORTAL_2 = 45976, - SPELL_SUMMON_BERSERKER = 46037, - SPELL_SUMNON_FURY_MAGE = 46038, - SPELL_SUMMON_VOID_SENTINEL = 45988, - SPELL_SUMMON_ENTROPIUS = 46217, + SPELL_OPEN_PORTAL_2 = 45976, + SPELL_SUMMON_BERSERKER = 46037, + SPELL_SUMNON_FURY_MAGE = 46038, + SPELL_SUMMON_VOID_SENTINEL = 45988, + SPELL_SUMMON_ENTROPIUS = 46217, // Entropius's spells - SPELL_DARKNESS_E = 46269, - SPELL_BLACKHOLE = 46282, - SPELL_NEGATIVE_ENERGY_E = 46284, + SPELL_DARKNESS_E = 46269, + SPELL_BLACKHOLE = 46282, + SPELL_NEGATIVE_ENERGY_E = 46284, SPELL_ENTROPIUS_SPAWN = 46223, // Shadowsword Berserker's spells - SPELL_FLURRY = 46160, - SPELL_DUAL_WIELD = 29651, + SPELL_FLURRY = 46160, + SPELL_DUAL_WIELD = 29651, // Shadowsword Fury Mage's spells - SPELL_FEL_FIREBALL = 46101, - SPELL_SPELL_FURY = 46102, + SPELL_FEL_FIREBALL = 46101, + SPELL_SPELL_FURY = 46102, // Void Sentinel's spells - SPELL_SHADOW_PULSE = 46087, - SPELL_VOID_BLAST = 46161, + SPELL_SHADOW_PULSE = 46087, + SPELL_VOID_BLAST = 46161, // Void Spawn's spells - SPELL_SHADOW_BOLT_VOLLEY = 46082, + SPELL_SHADOW_BOLT_VOLLEY = 46082, //Dark Fiend Spells - SPELL_DARKFIEND_AOE = 45944, - SPELL_DARKFIEND_VISUAL = 45936, - SPELL_DARKFIEND_SKIN = 45934, + SPELL_DARKFIEND_AOE = 45944, + SPELL_DARKFIEND_VISUAL = 45936, + SPELL_DARKFIEND_SKIN = 45934, //Black Hole Spells SPELL_BLACKHOLE_SPAWN = 46242, - SPELL_BLACKHOLE_GROW = 46228 + SPELL_BLACKHOLE_GROW = 46228 }; -enum BossTimers{ - TIMER_DARKNESS = 0, - TIMER_HUMANOIDES = 1, - TIMER_PHASE = 2, - TIMER_SENTINEL = 3 +enum BossTimers +{ + TIMER_DARKNESS = 0, + TIMER_HUMANOIDES = 1, + TIMER_PHASE = 2, + TIMER_SENTINEL = 3 }; float DarkFiends[8][4] = @@ -88,32 +89,28 @@ float DarkFiends[8][4] = {1801.98f, 633.62f, 69.74f, 5.71f}, {1830.88f, 629.99f, 69.73f, 3.52f}, {1800.38f, 621.41f, 69.74f, 0.22f}, - {1808.3f, 612.45f, 69.73f, 1.02f}, - {1823.9f, 639.69f, 69.74f, 4.12f}, + {1808.3f, 612.45f, 69.73f, 1.02f}, + {1823.9f, 639.69f, 69.74f, 4.12f}, {1811.85f, 640.46f, 69.73f, 4.97f} }; float Humanoides[6][5] = { - {CREATURE_FURY_MAGE, 1780.16f, 666.83f, 71.19f, 5.21f}, - {CREATURE_FURY_MAGE, 1847.93f, 600.30f, 71.30f, 2.57f}, - {CREATURE_BERSERKER, 1779.97f, 660.64f, 71.19f, 5.28f}, - {CREATURE_BERSERKER, 1786.2f, 661.01f, 71.19f, 4.51f}, - {CREATURE_BERSERKER, 1845.17f, 602.63f, 71.28f, 2.43f}, - {CREATURE_BERSERKER, 1842.91f, 599.93f, 71.23f, 2.44f} + {NPC_FURY_MAGE, 1780.16f, 666.83f, 71.19f, 5.21f}, + {NPC_FURY_MAGE, 1847.93f, 600.30f, 71.30f, 2.57f}, + {NPC_BERSERKER, 1779.97f, 660.64f, 71.19f, 5.28f}, + {NPC_BERSERKER, 1786.2f, 661.01f, 71.19f, 4.51f}, + {NPC_BERSERKER, 1845.17f, 602.63f, 71.28f, 2.43f}, + {NPC_BERSERKER, 1842.91f, 599.93f, 71.23f, 2.44f} }; uint32 EnrageTimer = 600000; + class boss_entropius : public CreatureScript { public: boss_entropius() : CreatureScript("boss_entropius") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_entropiusAI(creature); - } - struct boss_entropiusAI : public ScriptedAI { boss_entropiusAI(Creature* creature) : ScriptedAI(creature), Summons(me) @@ -133,8 +130,7 @@ public: Summons.DespawnAll(); - if (instance) - instance->SetData(DATA_MURU_EVENT, NOT_STARTED); + instance->SetBossState(DATA_MURU, NOT_STARTED); } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -142,22 +138,21 @@ public: DoCastAOE(SPELL_NEGATIVE_ENERGY_E, true); DoCast(me, SPELL_ENTROPIUS_SPAWN, false); - if (instance) - instance->SetData(DATA_MURU_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_MURU, IN_PROGRESS); } void JustSummoned(Creature* summoned) OVERRIDE { switch (summoned->GetEntry()) { - case CREATURE_DARK_FIENDS: + case NPC_DARK_FIENDS: summoned->CastSpell(summoned, SPELL_DARKFIEND_VISUAL, false); break; - case CREATURE_DARKNESS: + case NPC_DARKNESS: summoned->AddUnitState(UNIT_STATE_STUNNED); float x, y, z, o; summoned->GetHomePosition(x, y, z, o); - me->SummonCreature(CREATURE_DARK_FIENDS, x, y, z, o, TEMPSUMMON_CORPSE_DESPAWN, 0); + me->SummonCreature(NPC_DARK_FIENDS, x, y, z, o, TEMPSUMMON_CORPSE_DESPAWN, 0); break; } summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true)); @@ -167,9 +162,7 @@ public: void JustDied(Unit* /*killer*/) OVERRIDE { Summons.DespawnAll(); - - if (instance) - instance->SetData(DATA_MURU_EVENT, DONE); + instance->SetBossState(DATA_MURU, DONE); } void UpdateAI(uint32 diff) OVERRIDE @@ -201,6 +194,11 @@ public: DoMeleeAttackIfReady(); } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + } }; class boss_muru : public CreatureScript @@ -208,11 +206,6 @@ class boss_muru : public CreatureScript public: boss_muru() : CreatureScript("boss_muru") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_muruAI(creature); - } - struct boss_muruAI : public ScriptedAI { boss_muruAI(Creature* creature) : ScriptedAI(creature), Summons(creature) @@ -244,17 +237,13 @@ public: me->SetVisible(true); Summons.DespawnAll(); - - if (instance) - instance->SetData(DATA_MURU_EVENT, NOT_STARTED); + instance->SetBossState(DATA_MURU, NOT_STARTED); } void EnterCombat(Unit* /*who*/) OVERRIDE { DoCastAOE(SPELL_NEGATIVE_ENERGY, false); - - if (instance) - instance->SetData(DATA_MURU_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_MURU, IN_PROGRESS); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) OVERRIDE @@ -275,10 +264,10 @@ public: { switch (summoned->GetEntry()) { - case BOSS_ENTROPIUS: + case NPC_ENTROPIUS: me->SetVisible(false); break; - case CREATURE_DARK_FIENDS: + case NPC_DARK_FIENDS: summoned->CastSpell(summoned, SPELL_DARKFIEND_VISUAL, false); break; } @@ -295,9 +284,7 @@ public: { if (Timer[TIMER_PHASE] <= diff) { - if (!instance) - return; - switch (instance->GetData(DATA_MURU_EVENT)) + switch (instance->GetBossState(DATA_MURU)) { case NOT_STARTED: Reset(); @@ -334,7 +321,7 @@ public: { DarkFiend = false; for (uint8 j = 0; j < 8; ++j) - me->SummonCreature(CREATURE_DARK_FIENDS, DarkFiends[j][0], DarkFiends[j][1], DarkFiends[j][2], DarkFiends[j][3], TEMPSUMMON_CORPSE_DESPAWN, 0); + me->SummonCreature(NPC_DARK_FIENDS, DarkFiends[j][0], DarkFiends[j][1], DarkFiends[j][2], DarkFiends[j][3], TEMPSUMMON_CORPSE_DESPAWN, 0); Timer[TIMER_DARKNESS] = 42000; } break; @@ -358,14 +345,21 @@ public: } } - //Timer + // Timer for (uint8 i = 0; i < 4; ++i) { - if (i != TIMER_PHASE)Timer[i] -= diff; - else if (Phase == 2) Timer[i] -= diff; + if (i != TIMER_PHASE) + Timer[i] -= diff; + else if (Phase == 2) + Timer[i] -= diff; } } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetSunwellPlateauAI(creature); + } }; class npc_muru_portal : public CreatureScript @@ -438,7 +432,7 @@ public: { if (!SummonSentinel) { - if (InAction && instance && instance->GetData(DATA_MURU_EVENT) == NOT_STARTED) + if (InAction && instance && instance->GetBossState(DATA_MURU) == NOT_STARTED) Reset(); return; } @@ -525,7 +519,7 @@ public: struct npc_void_sentinelAI : public ScriptedAI { - npc_void_sentinelAI(Creature* creature) : ScriptedAI(creature){ } + npc_void_sentinelAI(Creature* creature) : ScriptedAI(creature) { } uint32 PulseTimer; uint32 VoidBlastTimer; @@ -543,7 +537,7 @@ public: void JustDied(Unit* /*killer*/) OVERRIDE { for (uint8 i = 0; i < 8; ++i) - me->SummonCreature(CREATURE_VOID_SPAWN, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), float(rand()%6), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000); + me->SummonCreature(NPC_VOID_SPAWN, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), float(rand()%6), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000); } void UpdateAI(uint32 diff) OVERRIDE diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 0f23cd67ab3..89b48fedee6 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2006-2009 ScriptDev2 * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,19 +15,10 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Instance_Sunwell_Plateau -SD%Complete: 25 -SDComment: VERIFY SCRIPT -SDCategory: Sunwell_Plateau -EndScriptData */ - #include "ScriptMgr.h" #include "InstanceScript.h" -#include "sunwell_plateau.h" #include "Player.h" - -#define MAX_ENCOUNTER 6 +#include "sunwell_plateau.h" /* Sunwell Plateau: 0 - Kalecgos and Sathrovarr @@ -39,268 +29,256 @@ EndScriptData */ 5 - Kil'Jaeden */ -class instance_sunwell_plateau : public InstanceMapScript +DoorData const doorData[] = { -public: - instance_sunwell_plateau() : InstanceMapScript("instance_sunwell_plateau", 580) { } - - InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE - { - return new instance_sunwell_plateau_InstanceMapScript(map); - } - - struct instance_sunwell_plateau_InstanceMapScript : public InstanceScript - { - instance_sunwell_plateau_InstanceMapScript(Map* map) : InstanceScript(map) { } - - uint32 m_auiEncounter[MAX_ENCOUNTER]; - - /** Creatures **/ - uint64 Kalecgos_Dragon; - uint64 Kalecgos_Human; - uint64 Sathrovarr; - uint64 Brutallus; - uint64 Madrigosa; - uint64 Felmyst; - uint64 Alythess; - uint64 Sacrolash; - uint64 Muru; - uint64 KilJaeden; - uint64 KilJaedenController; - uint64 Anveena; - uint64 KalecgosKJ; - uint32 SpectralPlayers; - - /** GameObjects **/ - uint64 ForceField; // Kalecgos Encounter - uint64 KalecgosWall[2]; - uint64 FireBarrier; // Felmysts Encounter - uint64 MurusGate[2]; // Murus Encounter + { GO_FIRE_BARRIER, DATA_FELMYST, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { GO_MURUS_GATE_1, DATA_MURU, DOOR_TYPE_ROOM, BOUNDARY_NONE }, + { GO_MURUS_GATE_2, DATA_MURU, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { GO_BOSS_COLLISION_1, DATA_KALECGOS, DOOR_TYPE_DOOR, BOUNDARY_NONE }, + { GO_BOSS_COLLISION_2, DATA_KALECGOS, DOOR_TYPE_DOOR, BOUNDARY_NONE }, + { GO_FORCE_FIELD, DATA_KALECGOS, DOOR_TYPE_DOOR, BOUNDARY_NONE }, + { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END +}; - /*** Misc ***/ - uint32 SpectralRealmTimer; - std::vector SpectralRealmList; +class instance_sunwell_plateau : public InstanceMapScript +{ + public: + instance_sunwell_plateau() : InstanceMapScript(SunwellPlateauScriptName, 580) { } - void Initialize() OVERRIDE + struct instance_sunwell_plateau_InstanceMapScript : public InstanceScript { - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - - /*** Creatures ***/ - Kalecgos_Dragon = 0; - Kalecgos_Human = 0; - Sathrovarr = 0; - Brutallus = 0; - Madrigosa = 0; - Felmyst = 0; - Alythess = 0; - Sacrolash = 0; - Muru = 0; - KilJaeden = 0; - KilJaedenController = 0; - Anveena = 0; - KalecgosKJ = 0; - SpectralPlayers = 0; + instance_sunwell_plateau_InstanceMapScript(Map* map) : InstanceScript(map) + { + SetBossNumber(EncounterCount); + LoadDoorData(doorData); - /*** GameObjects ***/ - ForceField = 0; - FireBarrier = 0; - MurusGate[0] = 0; - MurusGate[1] = 0; - KalecgosWall[0] = 0; - KalecgosWall[1] = 0; + KalecgosDragonGUID = 0; + KalecgosHumanGUID = 0; + SathrovarrGUID = 0; + BrutallusGUID = 0; + MadrigosaGUID = 0; + FelmystGUID = 0; + AlythessGUID = 0; + SacrolashGUID = 0; + MuruGUID = 0; + KilJaedenGUID = 0; + KilJaedenControllerGUID = 0; + AnveenaGUID = 0; + KalecgosKjGUID = 0; + SpectralPlayers = 0; - /*** Misc ***/ - SpectralRealmTimer = 5000; - } + SpectralRealmTimer = 5000; + } - bool IsEncounterInProgress() const OVERRIDE - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - return true; + Player const* GetPlayerInMap() const + { + Map::PlayerList const& players = instance->GetPlayers(); - return false; - } + if (!players.isEmpty()) + { + for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) + { + Player* player = itr->GetSource(); + if (player && !player->HasAura(45839, 0)) + return player; + } + } + else + TC_LOG_DEBUG("scripts", "Instance Sunwell Plateau: GetPlayerInMap, but PlayerList is empty!"); - Player const* GetPlayerInMap() const - { - Map::PlayerList const& players = instance->GetPlayers(); + return NULL; + } - if (!players.isEmpty()) + void OnCreatureCreate(Creature* creature) OVERRIDE { - for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) + switch (creature->GetEntry()) { - Player* player = itr->GetSource(); - if (player && !player->HasAura(45839, 0)) - return player; + case NPC_KALECGOS: + KalecgosDragonGUID = creature->GetGUID(); + break; + case NPC_KALEC: + KalecgosHumanGUID = creature->GetGUID(); + break; + case NPC_SATHROVARR: + SathrovarrGUID = creature->GetGUID(); + break; + case NPC_BRUTALLUS: + BrutallusGUID = creature->GetGUID(); + break; + case NPC_MADRIGOSA: + MadrigosaGUID = creature->GetGUID(); + break; + case NPC_FELMYST: + FelmystGUID = creature->GetGUID(); + break; + case NPC_GRAND_WARLOCK_ALYTHESS: + AlythessGUID = creature->GetGUID(); + break; + case NPC_LADY_SACROLASH: + SacrolashGUID = creature->GetGUID(); + break; + case NPC_MURU: + MuruGUID = creature->GetGUID(); + break; + case NPC_KILJAEDEN: + KilJaedenGUID = creature->GetGUID(); + break; + case NPC_KILJAEDEN_CONTROLLER: + KilJaedenControllerGUID = creature->GetGUID(); + break; + case NPC_ANVEENA: + AnveenaGUID = creature->GetGUID(); + break; + case NPC_KALECGOS_KJ: + KalecgosKjGUID = creature->GetGUID(); + break; + default: + break; } } - else - TC_LOG_DEBUG("scripts", "Instance Sunwell Plateau: GetPlayerInMap, but PlayerList is empty!"); - - return NULL; - } - void OnCreatureCreate(Creature* creature) OVERRIDE - { - switch (creature->GetEntry()) + void OnGameObjectCreate(GameObject* go) OVERRIDE { - case 24850: Kalecgos_Dragon = creature->GetGUID(); break; - case 24891: Kalecgos_Human = creature->GetGUID(); break; - case 24892: Sathrovarr = creature->GetGUID(); break; - case 24882: Brutallus = creature->GetGUID(); break; - case 24895: Madrigosa = creature->GetGUID(); break; - case 25038: Felmyst = creature->GetGUID(); break; - case 25166: Alythess = creature->GetGUID(); break; - case 25165: Sacrolash = creature->GetGUID(); break; - case 25741: Muru = creature->GetGUID(); break; - case 25315: KilJaeden = creature->GetGUID(); break; - case 25608: KilJaedenController = creature->GetGUID(); break; - case 26046: Anveena = creature->GetGUID(); break; - case 25319: KalecgosKJ = creature->GetGUID(); break; + switch (go->GetEntry()) + { + case GO_FORCE_FIELD: + case GO_BOSS_COLLISION_1: + case GO_BOSS_COLLISION_2: + case GO_FIRE_BARRIER: + case GO_MURUS_GATE_1: + case GO_MURUS_GATE_2: + AddDoor(go, true); + break; + default: + break; + } } - } - void OnGameObjectCreate(GameObject* go) OVERRIDE - { - switch (go->GetEntry()) + void OnGameObjectRemove(GameObject* go) OVERRIDE { - case 188421: ForceField = go->GetGUID(); break; - case 188523: KalecgosWall[0] = go->GetGUID(); break; - case 188524: KalecgosWall[0] = go->GetGUID(); break; - case 188075: - if (m_auiEncounter[2] == DONE) - HandleGameObject(0, true, go); - FireBarrier = go->GetGUID(); - break; - case 187990: MurusGate[0] = go->GetGUID(); break; - case 188118: - if (m_auiEncounter[4] == DONE) - HandleGameObject(0, true, go); - MurusGate[1]= go->GetGUID(); - break; + switch (go->GetEntry()) + { + case GO_FIRE_BARRIER: + case GO_MURUS_GATE_1: + case GO_MURUS_GATE_2: + case GO_BOSS_COLLISION_1: + case GO_BOSS_COLLISION_2: + case GO_FORCE_FIELD: + AddDoor(go, false); + break; + default: + break; + } } - } - uint32 GetData(uint32 id) const OVERRIDE - { - switch (id) + uint64 GetData64(uint32 id) const OVERRIDE { - case DATA_KALECGOS_EVENT: return m_auiEncounter[0]; - case DATA_BRUTALLUS_EVENT: return m_auiEncounter[1]; - case DATA_FELMYST_EVENT: return m_auiEncounter[2]; - case DATA_EREDAR_TWINS_EVENT: return m_auiEncounter[3]; - case DATA_MURU_EVENT: return m_auiEncounter[4]; - case DATA_KILJAEDEN_EVENT: return m_auiEncounter[5]; + switch (id) + { + case DATA_KALECGOS_DRAGON: + return KalecgosDragonGUID; + case DATA_KALECGOS_HUMAN: + return KalecgosHumanGUID; + case DATA_SATHROVARR: + return SathrovarrGUID; + case DATA_BRUTALLUS: + return BrutallusGUID; + case DATA_MADRIGOSA: + return MadrigosaGUID; + case DATA_FELMYST: + return FelmystGUID; + case DATA_ALYTHESS: + return AlythessGUID; + case DATA_SACROLASH: + return SacrolashGUID; + case DATA_MURU: + return MuruGUID; + case DATA_KILJAEDEN: + return KilJaedenGUID; + case DATA_KILJAEDEN_CONTROLLER: + return KilJaedenControllerGUID; + case DATA_ANVEENA: + return AnveenaGUID; + case DATA_KALECGOS_KJ: + return KalecgosKjGUID; + case DATA_PLAYER_GUID: + { + Player const* target = GetPlayerInMap(); + return target ? target->GetGUID() : 0; + } + default: + break; + } + return 0; } - return 0; - } - uint64 GetData64(uint32 id) const OVERRIDE - { - switch (id) + std::string GetSaveData() OVERRIDE { - case DATA_KALECGOS_DRAGON: return Kalecgos_Dragon; - case DATA_KALECGOS_HUMAN: return Kalecgos_Human; - case DATA_SATHROVARR: return Sathrovarr; - case DATA_GO_FORCEFIELD: return ForceField; - case DATA_BRUTALLUS: return Brutallus; - case DATA_MADRIGOSA: return Madrigosa; - case DATA_FELMYST: return Felmyst; - case DATA_ALYTHESS: return Alythess; - case DATA_SACROLASH: return Sacrolash; - case DATA_MURU: return Muru; - case DATA_KILJAEDEN: return KilJaeden; - case DATA_KILJAEDEN_CONTROLLER: return KilJaedenController; - case DATA_ANVEENA: return Anveena; - case DATA_KALECGOS_KJ: return KalecgosKJ; - case DATA_PLAYER_GUID: - Player const* target = GetPlayerInMap(); - return target ? target->GetGUID() : 0; + OUT_SAVE_INST_DATA; + + std::ostringstream saveStream; + saveStream << "S P " << GetBossSaveData(); + + OUT_SAVE_INST_DATA_COMPLETE; + return saveStream.str(); } - return 0; - } - void SetData(uint32 id, uint32 data) OVERRIDE - { - switch (id) + void Load(char const* str) OVERRIDE { - case DATA_KALECGOS_EVENT: - { - if (data == NOT_STARTED || data == DONE) - { - HandleGameObject(ForceField, true); - HandleGameObject(KalecgosWall[0], true); - HandleGameObject(KalecgosWall[1], true); - } - else if (data == IN_PROGRESS) - { - HandleGameObject(ForceField, false); - HandleGameObject(KalecgosWall[0], false); - HandleGameObject(KalecgosWall[1], false); - } - m_auiEncounter[0] = data; - } - break; - case DATA_BRUTALLUS_EVENT: m_auiEncounter[1] = data; break; - case DATA_FELMYST_EVENT: - if (data == DONE) - HandleGameObject(FireBarrier, true); - m_auiEncounter[2] = data; break; - case DATA_EREDAR_TWINS_EVENT: m_auiEncounter[3] = data; break; - case DATA_MURU_EVENT: - switch (data) + if (!str) + { + OUT_LOAD_INST_DATA_FAIL; + return; + } + + OUT_LOAD_INST_DATA(str); + + char dataHead1, dataHead2; + + std::istringstream loadStream(str); + loadStream >> dataHead1 >> dataHead2; + + if (dataHead1 == 'S' && dataHead2 == 'P') + { + for (uint32 i = 0; i < EncounterCount; ++i) { - case DONE: - HandleGameObject(MurusGate[0], true); - HandleGameObject(MurusGate[1], true); - break; - case IN_PROGRESS: - HandleGameObject(MurusGate[0], false); - HandleGameObject(MurusGate[1], false); - break; - case NOT_STARTED: - HandleGameObject(MurusGate[0], true); - HandleGameObject(MurusGate[1], false); - break; + uint32 tmpState; + loadStream >> tmpState; + if (tmpState == IN_PROGRESS || tmpState > SPECIAL) + tmpState = NOT_STARTED; + SetBossState(i, EncounterState(tmpState)); } - m_auiEncounter[4] = data; break; - case DATA_KILJAEDEN_EVENT: m_auiEncounter[5] = data; break; - } + } + else + OUT_LOAD_INST_DATA_FAIL; - if (data == DONE) - SaveToDB(); - } + OUT_LOAD_INST_DATA_COMPLETE; + } - std::string GetSaveData() OVERRIDE - { - OUT_SAVE_INST_DATA; - std::ostringstream stream; - stream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' ' << m_auiEncounter[3] << ' ' - << m_auiEncounter[4] << ' ' << m_auiEncounter[5]; + protected: + uint64 KalecgosDragonGUID; + uint64 KalecgosHumanGUID; + uint64 SathrovarrGUID; + uint64 BrutallusGUID; + uint64 MadrigosaGUID; + uint64 FelmystGUID; + uint64 AlythessGUID; + uint64 SacrolashGUID; + uint64 MuruGUID; + uint64 KilJaedenGUID; + uint64 KilJaedenControllerGUID; + uint64 AnveenaGUID; + uint64 KalecgosKjGUID; + uint32 SpectralPlayers; - OUT_SAVE_INST_DATA_COMPLETE; - return stream.str(); - } + uint32 SpectralRealmTimer; + std::vector SpectralRealmList; + }; - void Load(char const* in) OVERRIDE + InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE { - if (!in) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(in); - std::istringstream stream(in); - stream >> m_auiEncounter[0] >> m_auiEncounter[1] >> m_auiEncounter[2] >> m_auiEncounter[3] - >> m_auiEncounter[4] >> m_auiEncounter[5]; - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) // Do not load an encounter as "In Progress" - reset it instead. - m_auiEncounter[i] = NOT_STARTED; - OUT_LOAD_INST_DATA_COMPLETE; + return new instance_sunwell_plateau_InstanceMapScript(map); } - }; }; void AddSC_instance_sunwell_plateau() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h index 343720dbdb1..d2025a7b2b9 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2006-2009 ScriptDev2 * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,94 +15,105 @@ * with this program. If not, see . */ -#ifndef DEF_SUNWELLPLATEAU_H -#define DEF_SUNWELLPLATEAU_H +#ifndef SUNWELL_PLATEAU_H +#define SUNWELL_PLATEAU_H -/*** Encounters ***/ -enum Data -{ - DATA_KALECGOS_EVENT, - DATA_BRUTALLUS_EVENT, - DATA_FELMYST_EVENT, - DATA_EREDAR_TWINS_EVENT, - DATA_MURU_EVENT, - DATA_KILJAEDEN_EVENT, -}; +#define SunwellPlateauScriptName "instance_sunwell_plateau" + +uint32 const EncounterCount = 6; -enum Data64 +enum DataTypes { - /*** Creatures ***/ + // Encounter States/Boss GUIDs + DATA_KALECGOS = 0, + DATA_BRUTALLUS = 1, + DATA_FELMYST = 2, + DATA_EREDAR_TWINS = 3, + DATA_MURU = 4, + DATA_KILJAEDEN = 5, + DATA_KALECGOS_DRAGON, DATA_KALECGOS_HUMAN, DATA_SATHROVARR, - DATA_BRUTALLUS, DATA_MADRIGOSA, - DATA_FELMYST, DATA_ALYTHESS, DATA_SACROLASH, - DATA_MURU, - DATA_KILJAEDEN, DATA_KILJAEDEN_CONTROLLER, DATA_ANVEENA, DATA_KALECGOS_KJ, - /*** GameObjects ***/ - DATA_GO_FORCEFIELD, + // GameObject GUIDs DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1, DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2, DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3, DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4, - /*** Misc ***/ - DATA_PLAYER_GUID, + // Misc + DATA_PLAYER_GUID }; -enum Creatures +enum CreatureIds { - BOSS_MURU = 25741, - BOSS_ENTROPIUS = 25840, - NPC_KALECGOS = 24850, - NPC_KALEC = 24891, - NPC_SATHROVARR = 24892, + NPC_MURU = 25741, + NPC_ENTROPIUS = 25840, + NPC_KALECGOS = 24850, + NPC_KALEC = 24891, + NPC_SATHROVARR = 24892, + NPC_BRUTALLUS = 24882, + NPC_MADRIGOSA = 24895, + NPC_FELMYST = 25038, - NPC_DEAD = 25268, - NPC_FLIGHT_LEFT = 25357, - NPC_FLIGHT_RIGHT = 25358, - NPC_DEATH_CLOUD = 25703, - NPC_VAPOR = 25265, - NPC_VAPOR_TRAIL = 25267, + NPC_DEAD = 25268, + NPC_FLIGHT_LEFT = 25357, + NPC_FLIGHT_RIGHT = 25358, + NPC_DEATH_CLOUD = 25703, + NPC_VAPOR = 25265, + NPC_VAPOR_TRAIL = 25267, - NPC_GRAND_WARLOCK_ALYTHESS = 25166, - NPC_SHADOW_IMAGE = 25214, - NPC_LADY_SACROLASH = 25165, + NPC_GRAND_WARLOCK_ALYTHESS = 25166, + NPC_SHADOW_IMAGE = 25214, + NPC_LADY_SACROLASH = 25165, - CREATURE_ANVEENA = 26046, // Embodiment of the Sunwell - CREATURE_KALECGOS = 25319, // Helps the raid throughout the fight - CREATURE_PROPHET = 26246, // Outro - CREATURE_KILJAEDEN = 25315, // Give it to 'em KJ! - CREATURE_HAND_OF_THE_DECEIVER = 25588, // Adds found before KJ emerges - CREATURE_FELFIRE_PORTAL = 25603, // Portal spawned be Hand of the Deceivers - CREATURE_VOLATILE_FELFIRE_FIEND = 25598, // Fiends spawned by the above portal - CREATURE_ARMAGEDDON_TARGET = 25735, // This mob casts meteor on itself.. I think - CREATURE_SHIELD_ORB = 25502, // Shield orbs circle the room raining shadow bolts on raid - CREATURE_THE_CORE_OF_ENTROPIUS = 26262, // Used in the ending cinematic? - CREATURE_POWER_OF_THE_BLUE_DRAGONFLIGHT = 25653, // NPC that players possess when using the Orb of the Blue Dragonflight - CREATURE_SPIKE_TARGET1 = 30598, // Should summon these under Shadow Spike Channel on targets place - CREATURE_SPIKE_TARGET2 = 30614, - CREATURE_SINISTER_REFLECTION = 25708, // Sinister Relection spawnd on Phase swichtes + NPC_ANVEENA = 26046, // Embodiment of the Sunwell + NPC_KALECGOS_KJ = 25319, // Helps the raid throughout the fight + NPC_PROPHET = 26246, // Outro + NPC_KILJAEDEN = 25315, // Give it to 'em KJ! + NPC_KILJAEDEN_CONTROLLER = 25608, + NPC_HAND_OF_THE_DECEIVER = 25588, // Adds found before KJ emerges + NPC_FELFIRE_PORTAL = 25603, // Portal spawned be Hand of the Deceivers + NPC_VOLATILE_FELFIRE_FIEND = 25598, // Fiends spawned by the above portal + NPC_ARMAGEDDON_TARGET = 25735, // This mob casts meteor on itself.. I think + NPC_SHIELD_ORB = 25502, // Shield orbs circle the room raining shadow bolts on raid + NPC_THE_CORE_OF_ENTROPIUS = 26262, // Used in the ending cinematic? + NPC_POWER_OF_THE_BLUE_DRAGONFLIGHT = 25653, // NPC that players possess when using the Orb of the Blue Dragonflight + NPC_SPIKE_TARGET1 = 30598, // Should summon these under Shadow Spike Channel on targets place + NPC_SPIKE_TARGET2 = 30614, + NPC_SINISTER_REFLECTION = 25708, // Sinister Relection spawnd on Phase swichtes - CREATURE_DARKNESS = 25879, - CREATURE_DARK_FIENDS = 25744, - CREATURE_BERSERKER = 25798, - CREATURE_FURY_MAGE = 25799, - CREATURE_VOID_SENTINEL = 25772, - CREATURE_VOID_SPAWN = 25824, - CREATURE_BLACK_HOLE = 25855, + NPC_DARKNESS = 25879, + NPC_DARK_FIENDS = 25744, + NPC_BERSERKER = 25798, + NPC_FURY_MAGE = 25799, + NPC_VOID_SENTINEL = 25772, + NPC_VOID_SPAWN = 25824, + NPC_BLACK_HOLE = 25855 }; -enum GameObjects +enum GameObjectIds { - GAMEOBJECT_ORB_OF_THE_BLUE_DRAGONFLIGHT = 188415, + GO_ORB_OF_THE_BLUE_DRAGONFLIGHT = 188415, + GO_FORCE_FIELD = 188421, + GO_BOSS_COLLISION_1 = 188523, + GO_BOSS_COLLISION_2 = 188524, + GO_FIRE_BARRIER = 188075, + GO_MURUS_GATE_1 = 187990, + GO_MURUS_GATE_2 = 188118 }; -#endif +template +AI* GetSunwellPlateauAI(Creature* creature) +{ + return GetInstanceAI(creature, SunwellPlateauScriptName); +} + +#endif // SUNWELL_PLATEAU_H -- cgit v1.2.3 From 0790138d73158b6ebd52ecf4fefacf3ae2c410c7 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Wed, 13 Nov 2013 23:32:38 +0100 Subject: Core. fix build and some codestyle changes --- src/server/game/Entities/GameObject/GameObject.cpp | 2 +- .../EasternKingdoms/SunwellPlateau/boss_brutallus.cpp | 8 +++++--- .../EasternKingdoms/SunwellPlateau/boss_muru.cpp | 2 ++ .../SunwellPlateau/instance_sunwell_plateau.cpp | 6 +++--- .../scripts/EasternKingdoms/zone_eversong_woods.cpp | 2 +- .../scripts/EasternKingdoms/zone_silverpine_forest.cpp | 2 +- .../EasternKingdoms/zone_western_plaguelands.cpp | 3 +-- src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp | 2 +- src/server/scripts/Kalimdor/zone_mulgore.cpp | 2 +- .../scripts/Kalimdor/zone_stonetalon_mountains.cpp | 2 +- src/server/scripts/Kalimdor/zone_tanaris.cpp | 2 +- .../ForgeOfSouls/instance_forge_of_souls.cpp | 17 +++++++++++++---- src/server/scripts/Northrend/zone_dalaran.cpp | 8 ++++---- src/server/scripts/Northrend/zone_icecrown.cpp | 2 +- src/server/scripts/Northrend/zone_zuldrak.cpp | 3 +-- src/server/scripts/Outland/BlackTemple/boss_illidan.cpp | 2 +- .../Outland/TempestKeep/Mechanar/instance_mechanar.cpp | 4 +--- .../scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp | 2 +- src/server/scripts/Outland/zone_shadowmoon_valley.cpp | 4 ++-- src/server/scripts/World/npcs_special.cpp | 4 ++-- 20 files changed, 44 insertions(+), 35 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 4ab1e61d77d..64e9d4a1c26 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -340,7 +340,7 @@ void GameObject::Update(uint32 diff) G3D::Vector3 src(GetPositionX(), GetPositionY(), GetPositionZ()); - sLog->outInfo("misc", "Src: %s Dest: %s", src.toString().c_str(), pos.toString().c_str()); + TC_LOG_INFO("misc", "Src: %s Dest: %s", src.toString().c_str(), pos.toString().c_str()); GetMap()->GameObjectRelocation(this, pos.x, pos.y, pos.z, GetOrientation()); } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index 539bfb7831f..3fd346d6816 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -141,7 +141,7 @@ public: if (!Intro || IsIntro) return; - if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA)) + if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA))) { Madrigosa->Respawn(); Madrigosa->setActive(true); @@ -279,12 +279,14 @@ public: { if (IntroFrostBoltTimer <= diff) { - if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA)) + if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MADRIGOSA))) { Madrigosa->CastSpell(me, SPELL_INTRO_FROSTBOLT, true); IntroFrostBoltTimer = 2000; } - } else IntroFrostBoltTimer -= diff; + } + else + IntroFrostBoltTimer -= diff; } if (!UpdateVictim()) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index b91f2fadfc3..8da162bae14 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -293,6 +293,8 @@ public: Phase = 4; me->DisappearAndDie(); break; + default: + break; } Timer[TIMER_PHASE] = 3000; } else Timer[TIMER_PHASE] -= diff; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 89b48fedee6..4bc42921402 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -34,9 +34,9 @@ DoorData const doorData[] = { GO_FIRE_BARRIER, DATA_FELMYST, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, { GO_MURUS_GATE_1, DATA_MURU, DOOR_TYPE_ROOM, BOUNDARY_NONE }, { GO_MURUS_GATE_2, DATA_MURU, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, - { GO_BOSS_COLLISION_1, DATA_KALECGOS, DOOR_TYPE_DOOR, BOUNDARY_NONE }, - { GO_BOSS_COLLISION_2, DATA_KALECGOS, DOOR_TYPE_DOOR, BOUNDARY_NONE }, - { GO_FORCE_FIELD, DATA_KALECGOS, DOOR_TYPE_DOOR, BOUNDARY_NONE }, + { GO_BOSS_COLLISION_1, DATA_KALECGOS, DOOR_TYPE_ROOM, BOUNDARY_NONE }, + { GO_BOSS_COLLISION_2, DATA_KALECGOS, DOOR_TYPE_ROOM, BOUNDARY_NONE }, + { GO_FORCE_FIELD, DATA_KALECGOS, DOOR_TYPE_ROOM, BOUNDARY_NONE }, { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END }; diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp index aa41ee7adbb..6257bd28f5d 100644 --- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp +++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp @@ -81,7 +81,7 @@ public: Summon = false; } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void JustSummoned(Creature* summoned) OVERRIDE { diff --git a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp index 8315f94b474..757f2bcff2c 100644 --- a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp +++ b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp @@ -212,7 +212,7 @@ public: } } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void JustSummoned(Creature* summoned) OVERRIDE { diff --git a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp index 7077e3d9a31..6b409012cb0 100644 --- a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp @@ -189,7 +189,6 @@ public: } void MoveInLineOfSight(Unit* who) OVERRIDE - { if (!who) return; @@ -393,7 +392,7 @@ public: } } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void JustDied(Unit* /*killer*/) OVERRIDE { diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index bea0bbb81e4..812aa5a139f 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -458,7 +458,7 @@ public: StartEvent(); } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void StartEvent() { diff --git a/src/server/scripts/Kalimdor/zone_mulgore.cpp b/src/server/scripts/Kalimdor/zone_mulgore.cpp index e043f5e5db3..2cc6f4bfb5b 100644 --- a/src/server/scripts/Kalimdor/zone_mulgore.cpp +++ b/src/server/scripts/Kalimdor/zone_mulgore.cpp @@ -284,7 +284,7 @@ public: amountWP = 49; } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void MovementInform(uint32 type, uint32 id) OVERRIDE { diff --git a/src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp b/src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp index 24390bbaaa5..891879f2ea6 100644 --- a/src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp +++ b/src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp @@ -144,7 +144,7 @@ public: summoned->AI()->AttackStart(me); } - void Reset()OVERRIDE { } + void Reset() OVERRIDE { } }; bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp index 84fe734eb09..5e27d71ea07 100644 --- a/src/server/scripts/Kalimdor/zone_tanaris.cpp +++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp @@ -500,7 +500,7 @@ public: } } - void Reset()OVERRIDE { } + void Reset() OVERRIDE { } void EnterCombat(Unit* /*who*/) OVERRIDE { diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp index ae57732e9e2..b1339b13119 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp @@ -43,12 +43,21 @@ class instance_forge_of_souls : public InstanceMapScript teamInInstance = 0; } + void OnPlayerEnter(Player* player) OVERRIDE + { + if (!teamInInstance) + teamInInstance = player->GetTeam(); + } + void OnCreatureCreate(Creature* creature) OVERRIDE { - Map::PlayerList const &players = instance->GetPlayers(); - if (!players.isEmpty()) - if (Player* player = players.begin()->GetSource()) - teamInInstance = player->GetTeam(); + if (!teamInInstance) + { + Map::PlayerList const& players = instance->GetPlayers(); + if (!players.isEmpty()) + if (Player* player = players.begin()->GetSource()) + teamInInstance = player->GetTeam(); + } switch (creature->GetEntry()) { diff --git a/src/server/scripts/Northrend/zone_dalaran.cpp b/src/server/scripts/Northrend/zone_dalaran.cpp index 11f353b1cc2..083b4f879ee 100644 --- a/src/server/scripts/Northrend/zone_dalaran.cpp +++ b/src/server/scripts/Northrend/zone_dalaran.cpp @@ -64,11 +64,11 @@ public: creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true); } - void Reset()OVERRIDE { } + void Reset() OVERRIDE { } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } - void AttackStart(Unit* /*who*/)OVERRIDE { } + void AttackStart(Unit* /*who*/) OVERRIDE { } void MoveInLineOfSight(Unit* who) OVERRIDE @@ -118,7 +118,7 @@ public: return; } - void UpdateAI(uint32 /*diff*/)OVERRIDE { } + void UpdateAI(uint32 /*diff*/) OVERRIDE { } }; CreatureAI* GetAI(Creature* creature) const OVERRIDE diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp index d952321c749..b20efa1c5a5 100644 --- a/src/server/scripts/Northrend/zone_icecrown.cpp +++ b/src/server/scripts/Northrend/zone_icecrown.cpp @@ -483,7 +483,7 @@ class npc_tournament_training_dummy : public CreatureScript me->SetControlled(true, UNIT_STATE_STUNNED); } - void MoveInLineOfSight(Unit* /*who*/)OVERRIDE { } + void MoveInLineOfSight(Unit* /*who*/) OVERRIDE { } }; diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 66415448d32..8a6ae674491 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -141,8 +141,7 @@ public: DoCast(me, SPELL_KNEEL, true); // Little Hack for kneel - Thanks Illy :P } - void MoveInLineOfSight(Unit* /*who*/)OVERRIDE { } - + void MoveInLineOfSight(Unit* /*who*/) OVERRIDE { } void SpellHit(Unit* /*caster*/, const SpellInfo* spell) OVERRIDE { diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 3a790ec683b..3f90118ec8b 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -1990,7 +1990,7 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void MoveInLineOfSight(Unit* who) OVERRIDE diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp index 9c60c16d0af..c293a995467 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp @@ -16,7 +16,6 @@ * with this program. If not, see . */ - #include "ScriptMgr.h" #include "InstanceScript.h" #include "mechanar.h" @@ -26,7 +25,7 @@ static DoorData const doorData[] = { GO_DOOR_MOARG_1, DATA_GATEWATCHER_IRON_HAND, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, { GO_DOOR_MOARG_2, DATA_GATEWATCHER_GYROKILL, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, { GO_DOOR_NETHERMANCER, DATA_NETHERMANCER_SEPRETHREA, DOOR_TYPE_ROOM, BOUNDARY_NONE }, - {0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } + { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } }; class instance_mechanar : public InstanceMapScript @@ -42,7 +41,6 @@ class instance_mechanar : public InstanceMapScript LoadDoorData(doorData); } - void OnGameObjectCreate(GameObject* gameObject) { switch (gameObject->GetEntry()) diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp index 8b3dc8f174c..cd3fe507592 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp @@ -122,7 +122,7 @@ class npc_millhouse_manastorm : public CreatureScript } } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void KilledUnit(Unit* /*victim*/) OVERRIDE { diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index db25f9f6158..41abc490d2b 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -1286,7 +1286,7 @@ public: me->SetTarget(0); } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void HandleAnimation() { @@ -1818,7 +1818,7 @@ public: void Reset() OVERRIDE { } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void JustDied(Unit* /*killer*/) OVERRIDE { diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index bb80b9fafab..d7d18d5d36a 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -461,7 +461,7 @@ public: } } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void ReceiveEmote(Player* player, uint32 emote) OVERRIDE { @@ -759,7 +759,7 @@ public: } } - void EnterCombat(Unit* /*who*/)OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE { } void SpellHit(Unit* caster, SpellInfo const* spell) OVERRIDE { -- cgit v1.2.3 From dd202909110c06af34e4ab79849151d341fac590 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Wed, 13 Nov 2013 23:50:35 +0100 Subject: Scripts/ZulAman: fix exploit that player can fly until logout --- src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/server/scripts') diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index 72b71bb045d..526daaffee1 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -261,11 +261,14 @@ class boss_akilzon : public CreatureScript DoCast(target, SPELL_ELECTRICAL_STORM, false); // storm cyclon + visual float x, y, z; target->GetPosition(x, y, z); + /// @todo: fix it in correct way, that causes player to can fly until logout + /* if (target) { target->SetDisableGravity(true); target->MonsterMoveWithSpeed(x, y, me->GetPositionZ()+15, 0); } + */ Unit* Cloud = me->SummonTrigger(x, y, me->GetPositionZ()+16, 0, 15000); if (Cloud) -- cgit v1.2.3 From b5181d378ff07f1d4b44222894f0de584d33a5f1 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Thu, 21 Nov 2013 13:22:45 +0100 Subject: Scripts/PoS: fix Tyrannus Overlord Brand thx @zwerg --- .../PitOfSaron/boss_scourgelord_tyrannus.cpp | 25 ++++++++-------------- 1 file changed, 9 insertions(+), 16 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index d8a4dd01f90..48cc6f89a13 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -385,32 +385,25 @@ class boss_rimefang : public CreatureScript class player_overlord_brandAI : public PlayerAI { public: - player_overlord_brandAI(Player* player) : PlayerAI(player), _tyrannus(0) - { - } - - void SetGUID(uint64 guid, int32 /*type*/) OVERRIDE - { - _tyrannus = guid; - } + player_overlord_brandAI(Player* player, uint64 casterGUID) : PlayerAI(player), _tyrannusGUID(casterGUID) { } void DamageDealt(Unit* /*victim*/, uint32& damage, DamageEffectType /*damageType*/) OVERRIDE { - if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannus)) - if (tyrannus->GetVictim()) - me->CastCustomSpell(SPELL_OVERLORD_BRAND_DAMAGE, SPELLVALUE_BASE_POINT0, damage, tyrannus->GetVictim(), true, NULL, NULL, tyrannus->GetGUID()); + if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannusGUID)) + if (Unit* victim = tyrannus->GetVictim()) + me->CastCustomSpell(SPELL_OVERLORD_BRAND_DAMAGE, SPELLVALUE_BASE_POINT0, damage, victim, true, NULL, NULL, tyrannus->GetGUID()); } void HealDone(Unit* /*target*/, uint32& addHealth) OVERRIDE { - if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannus)) - me->CastCustomSpell(SPELL_OVERLORD_BRAND_HEAL, SPELLVALUE_BASE_POINT0, int32(addHealth*5.5f), tyrannus, true, NULL, NULL, tyrannus->GetGUID()); + if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannusGUID)) + me->CastCustomSpell(SPELL_OVERLORD_BRAND_HEAL, SPELLVALUE_BASE_POINT0, int32(addHealth * 5.5f), tyrannus, true, NULL, NULL, tyrannus->GetGUID()); } void UpdateAI(uint32 /*diff*/) OVERRIDE { } private: - uint64 _tyrannus; + uint64 _tyrannusGUID; }; class spell_tyrannus_overlord_brand : public SpellScriptLoader @@ -434,8 +427,8 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader oldAI = GetTarget()->GetAI(); oldAIState = GetTarget()->IsAIEnabled; - GetTarget()->SetAI(new player_overlord_brandAI(GetTarget()->ToPlayer())); - GetTarget()->GetAI()->SetGUID(GetCasterGUID()); + GetTarget()->SetAI(new player_overlord_brandAI(GetTarget()->ToPlayer(), GetCasterGUID())); + GetTarget()->IsAIEnabled = true; } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) -- cgit v1.2.3 From 86e0c7d856848467774258b6c0baf1e64a4274fd Mon Sep 17 00:00:00 2001 From: xjose93 Date: Fri, 22 Nov 2013 16:04:09 +0100 Subject: Instance/Halls of Reflection/Lich King event: Implement loot chest in heroic mode and rename chest variables. --- .../FrozenHalls/HallsOfReflection/halls_of_reflection.cpp | 4 ++-- .../Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index 1b82de35f54..b4315127d8d 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -1089,9 +1089,9 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript break; case EVENT_ESCAPE_27: if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) - me->SummonGameObject(GO_CAPTAIN_CHEST_1, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000); + me->SummonGameObject(IsHeroic() ? GO_CAPTAIN_CHEST_HORDE_HEROIC : GO_CAPTAIN_CHEST_HORDE_NORMAL, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000); else - me->SummonGameObject(GO_CAPTAIN_CHEST_3, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000); + me->SummonGameObject(IsHeroic() ? GO_CAPTAIN_CHEST_ALLIANCE_HEROIC : GO_CAPTAIN_CHEST_ALLIANCE_NORMAL, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000); me->SummonGameObject(GO_PORTAL, FinalPortalPos.GetPositionX(), FinalPortalPos.GetPositionY(), FinalPortalPos.GetPositionZ(), FinalPortalPos.GetOrientation(), 0, 0, 0, 0, 720000); if (Creature* lichking = ObjectAccessor::GetCreature(*me, _lichkingGUID)) lichking->DespawnOrUnsummon(1); diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h index d8d4f2d5524..9c40cb70141 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h @@ -95,10 +95,10 @@ enum GameObjects GO_ORGRIM_HAMMER = 201599, GO_PORTAL = 202079, - GO_CAPTAIN_CHEST_1 = 202212, //3145 - GO_CAPTAIN_CHEST_2 = 201710, //30357 - GO_CAPTAIN_CHEST_3 = 202337, //3246 - GO_CAPTAIN_CHEST_4 = 202336, //3333 + GO_CAPTAIN_CHEST_HORDE_NORMAL = 202212, //3145 + GO_CAPTAIN_CHEST_ALLIANCE_NORMAL = 201710, //30357 + GO_CAPTAIN_CHEST_HORDE_HEROIC = 202337, //3246 + GO_CAPTAIN_CHEST_ALLIANCE_HEROIC = 202336, //3333 }; enum HorWorldStates -- cgit v1.2.3 From efb7b17440bf0194470600365005d0cd9ffa0eba Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sat, 23 Nov 2013 00:04:37 -0330 Subject: Scripting/Eversong_Woods: Add quest end scripting for quest 8487. Also fixes for quest 8488 but not completely fixed. --- .../world/2013_11_23_0_world_creature_text.sql | 4 + .../EasternKingdoms/zone_eversong_woods.cpp | 107 ++++++++++++++++++--- 2 files changed, 97 insertions(+), 14 deletions(-) create mode 100644 sql/updates/world/2013_11_23_0_world_creature_text.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_23_0_world_creature_text.sql b/sql/updates/world/2013_11_23_0_world_creature_text.sql new file mode 100644 index 00000000000..cceca50bb3d --- /dev/null +++ b/sql/updates/world/2013_11_23_0_world_creature_text.sql @@ -0,0 +1,4 @@ +-- NPC talk text for Apprentice Mirveda +DELETE FROM `creature_text` WHERE `entry`=15402; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(15402,0,0, 'Such... dark... energy! How can this be possible?',12,0,100,0,0,0, 'Apprentice Mirveda'); diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp index 6257bd28f5d..529458ab9cf 100644 --- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp +++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp @@ -18,8 +18,8 @@ /* ScriptData SDName: Eversong_Woods -SD%Complete: 100 -SDComment: Quest support: 8488, 8490 +SD%Complete: 95 +SDComment: Quest support: 8487, 8488, 8490 SDCategory: Eversong Woods EndScriptData */ @@ -37,11 +37,29 @@ EndContentData */ enum UnexpectedResults { // Quest + QUEST_CORRUPTED_SOIL = 8487, QUEST_UNEXPECTED_RESULT = 8488, // Creatures - NPC_GHARZUL = 15958, - NPC_ANGERSHADE = 15656 + NPC_GHARZUL = 15958, // Quest 8488 + NPC_ANGERSHADE = 15656, // Quest 8488 + + // Factions + FACTION_NORMAL = 1604, // Quest 8488 + FACTION_COMBAT = 232, // Quest 8488 + + // Spells + SPELL_TEST_SOIL = 29535, // Quest 8487 + SPELL_FIREBALL = 20811, // Quest 8488 + + // Text + SAY_TEST_SOIL = 0, // Quest 8487 + + // Events + EVENT_TALK = 1, // Quest 8487 + EVENT_ADD_QUEST_GIVER_FLAG = 2, // Quest 8487 + EVENT_SUMMON = 3, // Quest 8488 + EVENT_FIREBALL = 4 // Quest 8488 }; class npc_apprentice_mirveda : public CreatureScript @@ -49,10 +67,25 @@ class npc_apprentice_mirveda : public CreatureScript public: npc_apprentice_mirveda() : CreatureScript("npc_apprentice_mirveda") { } + bool OnQuestReward(Player* player, Creature* creature, const Quest *_Quest, uint32 /*slot*/) OVERRIDE + { + if (_Quest->GetQuestId() == QUEST_CORRUPTED_SOIL) + { + CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->events.ScheduleEvent(EVENT_TALK, 2000); + CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->CorruptedSoil = true; + } + return true; + } + bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE { if (quest->GetQuestId() == QUEST_UNEXPECTED_RESULT) { + CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->setFaction(FACTION_COMBAT); + CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + + CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->events.ScheduleEvent(EVENT_SUMMON, 1000); CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->Summon = true; CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->PlayerGUID = player->GetGUID(); } @@ -70,26 +103,35 @@ public: uint32 KillCount; uint64 PlayerGUID; + bool CorruptedSoil; bool Summon; SummonList Summons; + EventMap events; void Reset() OVERRIDE { + SetCombatMovement(false); KillCount = 0; PlayerGUID = 0; Summons.DespawnAll(); + CorruptedSoil = false; Summon = false; } - void EnterCombat(Unit* /*who*/) OVERRIDE { } + void EnterCombat(Unit* /*who*/) OVERRIDE + { + events.ScheduleEvent(EVENT_FIREBALL, 1000); + } void JustSummoned(Creature* summoned) OVERRIDE { - summoned->AI()->AttackStart(me); + // This is the best I can do because AttackStart does nothing + summoned->GetMotionMaster()->MovePoint(1, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); + // summoned->AI()->AttackStart(me); Summons.Summon(summoned); } - void SummonedCreatureDespawn(Creature* summoned) OVERRIDE + void SummonedCreatureDies(Creature* summoned, Unit* who) OVERRIDE { Summons.Despawn(summoned); ++KillCount; @@ -97,24 +139,61 @@ public: void JustDied(Unit* /*killer*/) OVERRIDE { + me->setFaction(FACTION_NORMAL); + if (PlayerGUID) if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) player->FailQuest(QUEST_UNEXPECTED_RESULT); } - void UpdateAI(uint32 /*diff*/) OVERRIDE + void UpdateAI(uint32 diff) OVERRIDE { if (KillCount >= 3 && PlayerGUID) if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) - player->CompleteQuest(QUEST_UNEXPECTED_RESULT); + if (player->GetQuestStatus(QUEST_UNEXPECTED_RESULT) == QUEST_STATUS_INCOMPLETE) + { + player->CompleteQuest(QUEST_UNEXPECTED_RESULT); + me->setFaction(FACTION_NORMAL); + me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + } + + events.Update(diff); - if (Summon) + while (uint32 eventId = events.ExecuteEvent()) { - me->SummonCreature(NPC_GHARZUL, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000); - me->SummonCreature(NPC_ANGERSHADE, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000); - me->SummonCreature(NPC_ANGERSHADE, 8745, -7134.32f, 35.22f, 0, TEMPSUMMON_CORPSE_DESPAWN, 4000); - Summon = false; + switch (eventId) + { + case EVENT_TALK: + if (!CorruptedSoil) + continue; + Talk(SAY_TEST_SOIL); + events.ScheduleEvent(EVENT_ADD_QUEST_GIVER_FLAG, 7000); + break; + case EVENT_ADD_QUEST_GIVER_FLAG: + if (!CorruptedSoil) + continue; + me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + CorruptedSoil = false; + break; + case EVENT_SUMMON: + if (!Summon) + continue; + me->SummonCreature(NPC_GHARZUL, 8749.505f, -7132.595f, 35.31983f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); + me->SummonCreature(NPC_ANGERSHADE, 8755.38f, -7131.521f, 35.30957f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); + me->SummonCreature(NPC_ANGERSHADE, 8753.199f, -7125.975f, 35.31986f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); + Summon = false; + break; + case EVENT_FIREBALL: + if (!UpdateVictim()) + continue; + DoCastVictim(SPELL_FIREBALL, true); + events.ScheduleEvent(EVENT_FIREBALL, 3000); + break; + default: + break; + } } + DoMeleeAttackIfReady(); } }; }; -- cgit v1.2.3 From d7c0fe9fc39565a4df20de61f6b642884b90d0e6 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sat, 23 Nov 2013 00:10:27 -0330 Subject: Scriting/Eversong Woods: Minor fix. --- src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp index 529458ab9cf..f7d57b5bb0d 100644 --- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp +++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp @@ -84,7 +84,6 @@ public: { CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->setFaction(FACTION_COMBAT); CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->events.ScheduleEvent(EVENT_SUMMON, 1000); CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->Summon = true; CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->PlayerGUID = player->GetGUID(); @@ -131,7 +130,7 @@ public: Summons.Summon(summoned); } - void SummonedCreatureDies(Creature* summoned, Unit* who) OVERRIDE + void SummonedCreatureDies(Creature* summoned, Unit* /*who*/) OVERRIDE { Summons.Despawn(summoned); ++KillCount; @@ -186,7 +185,7 @@ public: case EVENT_FIREBALL: if (!UpdateVictim()) continue; - DoCastVictim(SPELL_FIREBALL, true); + DoCastVictim(SPELL_FIREBALL, true); // Not casting in combat events.ScheduleEvent(EVENT_FIREBALL, 3000); break; default: -- cgit v1.2.3 From dcfbe1d9873c0fa5e50487552c8c9979df75d283 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Sun, 24 Nov 2013 02:52:27 +0100 Subject: Instance/Halls of Reflection/Lich King event: Typo fix on 86e0c7d Thx MitchesD --- .../Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index b4315127d8d..6b746222a72 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -1089,9 +1089,9 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript break; case EVENT_ESCAPE_27: if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) - me->SummonGameObject(IsHeroic() ? GO_CAPTAIN_CHEST_HORDE_HEROIC : GO_CAPTAIN_CHEST_HORDE_NORMAL, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000); - else me->SummonGameObject(IsHeroic() ? GO_CAPTAIN_CHEST_ALLIANCE_HEROIC : GO_CAPTAIN_CHEST_ALLIANCE_NORMAL, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000); + else + me->SummonGameObject(IsHeroic() ? GO_CAPTAIN_CHEST_HORDE_HEROIC : GO_CAPTAIN_CHEST_HORDE_NORMAL, ChestPos.GetPositionX(), ChestPos.GetPositionY(), ChestPos.GetPositionZ(), ChestPos.GetOrientation(), 0, 0, 0, 0, 720000); me->SummonGameObject(GO_PORTAL, FinalPortalPos.GetPositionX(), FinalPortalPos.GetPositionY(), FinalPortalPos.GetPositionZ(), FinalPortalPos.GetOrientation(), 0, 0, 0, 0, 720000); if (Creature* lichking = ObjectAccessor::GetCreature(*me, _lichkingGUID)) lichking->DespawnOrUnsummon(1); -- cgit v1.2.3 From f3ade339d8d54f0d0b904dd68703c641ddcf5e80 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sun, 24 Nov 2013 13:09:48 -0330 Subject: Scripting/Storm Peaks: Add spell script for spell_jokkum_scriptcast. Quest 13010 Krolmir, Hammer of Storms is not yet fully scripted but is now completeable. --- .../2013_11_24_0_world_spell_script_names.sql | 2 + src/server/scripts/Northrend/zone_storm_peaks.cpp | 47 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 sql/updates/world/2013_11_24_0_world_spell_script_names.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_24_0_world_spell_script_names.sql b/sql/updates/world/2013_11_24_0_world_spell_script_names.sql new file mode 100644 index 00000000000..bd72015535e --- /dev/null +++ b/sql/updates/world/2013_11_24_0_world_spell_script_names.sql @@ -0,0 +1,2 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`=61319; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (61319, 'spell_jokkum_scriptcast'); diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index 83d49045eff..825981ba5c5 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -460,6 +460,52 @@ class spell_close_rift : public SpellScriptLoader } }; +/*##### +# spell_jokkum_scriptcast +#####*/ + +enum JokkumScriptcast +{ + SPELL_JOKKUM_KILL_CREDIT = 56545, + SPELL_JOKKUM_SUMMON = 56541 +}; + +class spell_jokkum_scriptcast : public SpellScriptLoader +{ + public: spell_jokkum_scriptcast() : SpellScriptLoader("spell_jokkum_scriptcast") { } + + class spell_jokkum_scriptcast_AuraScript : public AuraScript + { + PrepareAuraScript(spell_jokkum_scriptcast_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_JOKKUM_KILL_CREDIT) || !sSpellMgr->GetSpellInfo(SPELL_JOKKUM_SUMMON)) + return false; + return true; + } + + void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if (Player* player = GetTarget()->ToPlayer()) + { + player->CastSpell(player, SPELL_JOKKUM_KILL_CREDIT, true); + player->CastSpell(player, SPELL_JOKKUM_SUMMON, true); + } + } + + void Register() OVERRIDE + { + OnEffectApply += AuraEffectApplyFn(spell_jokkum_scriptcast_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_jokkum_scriptcast_AuraScript(); + } +}; + void AddSC_storm_peaks() { new npc_injured_goblin(); @@ -469,4 +515,5 @@ void AddSC_storm_peaks() new npc_icefang(); new npc_hyldsmeet_protodrake(); new spell_close_rift(); + new spell_jokkum_scriptcast(); } -- cgit v1.2.3 From d4d4eb3123d169b91e89cf3a219968b5844b24c8 Mon Sep 17 00:00:00 2001 From: Vincent_Michael Date: Sun, 24 Nov 2013 20:54:28 +0100 Subject: Misc/Misc: A mix useless random changes --- sql/updates/world/2013_11_16_00_world_sai.sql | 874 +++++++++ sql/updates/world/2013_11_16_01_world_sai.sql | 482 +++++ sql/updates/world/2013_11_16_02_world_sai.sql | 495 +++++ sql/updates/world/2013_11_16_0_world_sai.sql | 874 --------- sql/updates/world/2013_11_16_1_world_sai.sql | 482 ----- sql/updates/world/2013_11_16_2_world_sai.sql | 495 ----- sql/updates/world/2013_11_17_00_world_sai.sql | 1918 ++++++++++++++++++++ sql/updates/world/2013_11_17_0_world_sai.sql | 1918 -------------------- .../world/2013_11_23_00_world_creature_text.sql | 4 + sql/updates/world/2013_11_23_01_world_sai.sql | 31 + sql/updates/world/2013_11_23_02_world_misc.sql | 34 + .../world/2013_11_23_0_world_creature_text.sql | 4 - sql/updates/world/2013_11_23_1_world_sai.sql | 31 - sql/updates/world/2013_11_23_2_world_misc.sql | 34 - .../2013_11_24_00_world_spell_script_names.sql | 2 + .../2013_11_24_0_world_spell_script_names.sql | 2 - src/server/game/Handlers/PetHandler.cpp | 2 +- .../EasternKingdoms/zone_eversong_woods.cpp | 4 +- 18 files changed, 3843 insertions(+), 3843 deletions(-) create mode 100644 sql/updates/world/2013_11_16_00_world_sai.sql create mode 100644 sql/updates/world/2013_11_16_01_world_sai.sql create mode 100644 sql/updates/world/2013_11_16_02_world_sai.sql delete mode 100644 sql/updates/world/2013_11_16_0_world_sai.sql delete mode 100644 sql/updates/world/2013_11_16_1_world_sai.sql delete mode 100644 sql/updates/world/2013_11_16_2_world_sai.sql create mode 100644 sql/updates/world/2013_11_17_00_world_sai.sql delete mode 100644 sql/updates/world/2013_11_17_0_world_sai.sql create mode 100644 sql/updates/world/2013_11_23_00_world_creature_text.sql create mode 100644 sql/updates/world/2013_11_23_01_world_sai.sql create mode 100644 sql/updates/world/2013_11_23_02_world_misc.sql delete mode 100644 sql/updates/world/2013_11_23_0_world_creature_text.sql delete mode 100644 sql/updates/world/2013_11_23_1_world_sai.sql delete mode 100644 sql/updates/world/2013_11_23_2_world_misc.sql create mode 100644 sql/updates/world/2013_11_24_00_world_spell_script_names.sql delete mode 100644 sql/updates/world/2013_11_24_0_world_spell_script_names.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_16_00_world_sai.sql b/sql/updates/world/2013_11_16_00_world_sai.sql new file mode 100644 index 00000000000..e953030f396 --- /dev/null +++ b/sql/updates/world/2013_11_16_00_world_sai.sql @@ -0,0 +1,874 @@ +-- Defias Renegade Mage SAI +SET @ENTRY := 450; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Renegade Mage - On Aggro - Cast 20793"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,3400,4700,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-40 Range - Cast 20793 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,19200,21200,63900,68200,11,134,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - In Combat - Cast 134"), +(@ENTRY,0,11,0,0,0,100,0,16400,18400,12300,17200,11,4979,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - In Combat - Cast 4979"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Flee For Assist"); + +-- Murloc Minor Oracle SAI +SET @ENTRY := 456; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,3600,5100,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,14,0,100,0,130,40,30900,39000,11,332,1,0,0,0,0,7,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Friendly Unit At 130 Health Within 40 Range - Cast 332"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Flee For Assist"); + +-- Murloc Hunter SAI +SET @ENTRY := 458; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,8656,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Cast 8656"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Hunter - On Aggro - Cast 10277"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,6,9,2,100,0,5,30,2900,4800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-30 Range - Cast 10277 (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,7,8,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,9,10,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,11,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,12,13,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - On Evade - Set Sheath Melee"); + +-- Marisa du'Paige SAI +SET @ENTRY := 599; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - On Aggro - Cast 9053"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,3400,5400,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-40 Range - Cast 9053 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,12000,19000,35000,48000,11,700,0,0,0,0,0,5,0,0,0,0,0,0,0,"Marisa du'Paige - In Combat - Cast 700"), +(@ENTRY,0,11,0,0,0,80,0,18000,25000,25000,35000,11,228,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - In Combat - Cast 228"), +(@ENTRY,0,12,0,2,0,100,0,0,50,35000,35000,11,512,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-50% Health - Cast 512"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Flee For Assist"); + +-- Defias Conjurer SAI +SET @ENTRY := 619; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Cast 12544"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - On Aggro - Cast 9053"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-40 Range - Cast 9053 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Flee For Assist"); + +-- Goblin Engineer SAI +SET @ENTRY := 622; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Out Of Combat - Stop Auto Attack (Normal Dungeon)"), +(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Goblin Engineer - On Aggro - Cast 6660 (Normal Dungeon)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - On Aggro - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,4,5,9,2,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,13,0,0,0,100,2,500,4500,67800,89000,11,3605,1,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - In Combat - Cast 3605 (Normal Dungeon)"), +(@ENTRY,0,14,15,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Flee For Assist (Normal Dungeon)"), +(@ENTRY,0,17,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - On Evade - Set Sheath Melee (Normal Dungeon)"); + +-- Skullsplitter Axe Thrower SAI +SET @ENTRY := 696; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,0,0,0,100,0,5000,7000,23000,26000,11,3148,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - In Combat - Cast 3148"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Evade - Set Sheath Melee"); + +-- Bloodscalp Mystic SAI +SET @ENTRY := 701; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Aggro - Cast 10277"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,1500,2500,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-40 Range - Cast 10277 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,14,0,100,1,500,40,0,0,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Friendly Unit At 500 Health Within 40 Range - Cast 11986"), +(@ENTRY,0,11,0,0,0,100,0,3000,4000,25000,30000,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - In Combat - Cast 4979"), +(@ENTRY,0,12,0,2,0,100,1,0,30,0,0,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-30% Health - Cast 8599"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Flee For Assist"); + +-- Skullsplitter Mystic SAI +SET @ENTRY := 780; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,1500,2500,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,14,0,100,1,700,40,0,0,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Friendly Unit At 700 Health Within 40 Range - Cast 11986"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Flee For Assist"); + +-- Kurzen Headshrinker SAI +SET @ENTRY := 941; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - On Aggro - Cast 9613"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,3500,4700,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-40 Range - Cast 9613 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,2400,10800,39000,39500,11,7289,1,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - In Combat - Cast 7289"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Flee For Assist"); + +-- Dragonmaw Shadowwarder SAI +SET @ENTRY := 1038; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - On Aggro - Cast 20807"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,3500,6400,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-40 Range - Cast 20807 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,0,0,100,0,2200,6200,20200,31000,11,6223,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - In Combat - Cast 6223"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Flee For Assist"); + +-- Lost Whelp SAI +SET @ENTRY := 1043; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lost Whelp - On Aggro - Cast 11839"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,3600,5300,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lost Whelp - Between 0-40 Range - Cast 11839 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 30-100% Mana - Decrement Event Phase"); + +-- Flamesnorting Whelp SAI +SET @ENTRY := 1044; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Flamesnorting Whelp - On Aggro - Cast 11839"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,3600,5300,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-40 Range - Cast 11839 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 30-100% Mana - Decrement Event Phase"); + +-- Venture Co. Geologist SAI +SET @ENTRY := 1096; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Geologist - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,5400,9600,24000,37200,11,184,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - In Combat - Cast 184"), +(@ENTRY,0,11,0,2,0,100,0,0,50,10100,19800,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-50% Health - Cast 4979"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,1,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Flee For Assist"); + +-- Venture Co. Mechanic SAI +SET @ENTRY := 1097; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,9,0,100,0,5,30,6500,10000,11,14443,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Cast 14443"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Set Sheath Ranged"), +(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Evade - Set Sheath Melee"); + +-- Bluegill Raider SAI +SET @ENTRY := 1418; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2700,4900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-30 Range - Cast 10277 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,0,0,0,100,0,11000,14300,16500,33300,11,12024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - In Combat - Cast 12024"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - On Evade - Set Sheath Melee"); + +-- Darkeye Bonecaster SAI +SET @ENTRY := 1522; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkeye Bonecaster - On Aggro - Cast 13322"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,4000,5000,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-40 Range - Cast 13322 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-7% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-7% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 15-100% Mana - Decrement Event Phase"); + +-- Scarlet Neophyte SAI +SET @ENTRY := 1539; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Out Of Combat - Cast 12544"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Neophyte - On Aggro - Cast 13322"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-40 Range - Cast 13322 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Flee For Assist"); + +-- Bloodsail Mage SAI +SET @ENTRY := 1562; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Mage - On Aggro - Cast 20823"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,3600,5900,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-40 Range - Cast 20823 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,1200,4700,34200,36800,11,2601,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - In Combat - Cast 2601"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Flee For Assist"); + +-- Bloodsail Warlock SAI +SET @ENTRY := 1564; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,31,1,2,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Random Phase Range (1-2)"), +(@ENTRY,0,2,3,1,2,100,1,0,1000,0,0,11,8722,3,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Cast 8722 (Phase 2)"), +(@ENTRY,0,3,0,61,2,100,1,0,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Set Event Phase 0 (Phase 2)"), +(@ENTRY,0,4,5,1,4,100,1,0,1000,0,0,11,11939,3,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Cast 11939 (Phase 4)"), +(@ENTRY,0,5,0,61,4,100,1,0,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Set Event Phase 0 (Phase 4)"), +(@ENTRY,0,6,7,4,0,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - On Aggro - Cast 20825"), +(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - On Aggro - Increment Event Phase"), +(@ENTRY,0,8,0,9,8,100,0,0,40,2400,3800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-40 Range - Cast 20825 (Phase 8)"), +(@ENTRY,0,9,10,3,8,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Mana - Allow Combat Movement (Phase 8)"), +(@ENTRY,0,10,0,61,8,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Mana - Increment Event Phase (Phase 8)"), +(@ENTRY,0,11,0,9,8,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 35-80 Range - Allow Combat Movement (Phase 8)"), +(@ENTRY,0,12,0,9,8,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 5-15 Range - Disallow Combat Movement (Phase 8)"), +(@ENTRY,0,13,0,9,8,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-5 Range - Allow Combat Movement (Phase 8)"), +(@ENTRY,0,14,0,0,8,100,0,6900,20900,15900,15900,11,11980,32,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - In Combat - Cast 11980 (Phase 8)"), +(@ENTRY,0,15,0,3,16,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 30-100% Mana - Decrement Event Phase (Phase 16)"), +(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Flee For Assist"); + +-- Wolf Master Nandos SAI +SET @ENTRY := 3927; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,2,0,100,3,0,80,33700,48800,11,7487,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7487 (Normal Dungeon)"), +(@ENTRY,0,1,0,2,0,100,3,0,80,45400,51700,11,7488,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7488 (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,3,0,80,69500,69500,11,7489,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7489 (Normal Dungeon)"), +(@ENTRY,0,3,0,4,0,100,3,0,0,0,0,34,4,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Aggro - Set Instance Data Field To 4 To Data 1 (Normal Dungeon)"), +(@ENTRY,0,4,0,6,0,100,3,0,0,0,0,34,4,3,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Death - Set Instance Data Field To 4 To Data 3 (Normal Dungeon)"), +(@ENTRY,0,5,0,7,0,100,3,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Evade - Set Instance Data Field To 4 To Data 2 (Normal Dungeon)"); + +-- Fenrus the Devourer SAI +SET @ENTRY := 4274; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,2,2600,7200,23300,49000,11,7125,0,0,0,0,0,5,0,0,0,0,0,0,0,"Fenrus the Devourer - In Combat - Cast 7125 (Normal Dungeon)"), +(@ENTRY,0,1,0,4,0,100,3,0,0,0,0,34,3,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Aggro - Set Instance Data Field To 3 To Data 1 (Normal Dungeon)"), +(@ENTRY,0,2,0,6,0,100,3,0,0,0,0,34,3,3,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Death - Set Instance Data Field To 3 To Data 3 (Normal Dungeon)"), +(@ENTRY,0,3,0,7,0,100,3,0,0,0,0,34,3,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Evade - Set Instance Data Field To 3 To Data 2 (Normal Dungeon)"); + +-- Auchenai Vindicator SAI +SET @ENTRY := 18495; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,2,0,0,600000,600000,11,32861,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - Out Of Combat - Cast 32861 (Normal Dungeon)"), +(@ENTRY,0,1,0,1,0,100,4,0,0,600000,600000,11,38379,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - Out Of Combat - Cast 38379 (Heroic Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,2000,3000,7000,9000,11,17439,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Vindicator - In Combat - Cast 17439 (Normal Dungeon)"), +(@ENTRY,0,3,0,0,0,100,4,2000,3000,7000,9000,11,17289,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Vindicator - In Combat - Cast 17289 (Heroic Dungeon)"), +(@ENTRY,0,4,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32853 (Dungeon Only)"), +(@ENTRY,0,5,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32854 (Dungeon Only)"), +(@ENTRY,0,6,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32855 (Dungeon Only)"), +(@ENTRY,0,7,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32856 (Dungeon Only)"), +(@ENTRY,0,8,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32857 (Dungeon Only)"); + +-- Auchenai Monk SAI +SET @ENTRY := 18497; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,13,0,90,6,8000,10000,0,0,11,32846,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Monk - On Target Casting - Cast 32846 (Dungeon Only)"), +(@ENTRY,0,1,0,0,0,100,6,10000,10000,10000,13000,11,32849,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - In Combat - Cast 32849 (Dungeon Only)"), +(@ENTRY,0,2,0,0,0,100,6,5000,5000,5000,8000,11,37321,0,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Monk - In Combat - Cast 37321 (Dungeon Only)"), +(@ENTRY,0,3,0,1,0,100,6,0,0,180000,180000,11,38168,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - Out Of Combat - Cast 38168 (Dungeon Only)"), +(@ENTRY,0,4,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32853 (Dungeon Only)"), +(@ENTRY,0,5,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32854 (Dungeon Only)"), +(@ENTRY,0,6,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32855 (Dungeon Only)"), +(@ENTRY,0,7,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32856 (Dungeon Only)"), +(@ENTRY,0,8,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32857 (Dungeon Only)"); + +-- Force-Commander Gorax SAI +SET @ENTRY := 19264; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - On Aggro - Cast 33962"), +(@ENTRY,0,1,0,0,0,100,0,500,1000,3800,6400,11,9080,32,0,0,0,0,2,0,0,0,0,0,0,0,"Force-Commander Gorax - In Combat - Cast 9080"), +(@ENTRY,0,2,0,2,0,100,1,0,30,0,0,11,33735,1,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-30% Health - Cast 33735"), +(@ENTRY,0,3,0,0,0,100,0,10000,15000,12000,16000,11,24193,1,0,0,0,0,5,0,0,0,0,0,0,0,"Force-Commander Gorax - In Combat - Cast 24193"), +(@ENTRY,0,4,0,2,0,100,1,0,90,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-90% Health - Cast 33962"), +(@ENTRY,0,5,0,2,0,100,1,0,80,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-80% Health - Cast 33962"), +(@ENTRY,0,6,0,2,0,100,1,0,70,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-70% Health - Cast 33962"), +(@ENTRY,0,7,0,2,0,100,1,0,60,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-60% Health - Cast 33962"), +(@ENTRY,0,8,0,2,0,100,1,0,50,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-50% Health - Cast 33962"), +(@ENTRY,0,9,0,2,0,100,1,0,40,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-40% Health - Cast 33962"), +(@ENTRY,0,10,0,2,0,100,1,0,30,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-30% Health - Cast 33962"), +(@ENTRY,0,11,0,2,0,100,1,0,20,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-20% Health - Cast 33962"), +(@ENTRY,0,12,0,2,0,100,1,0,10,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-10% Health - Cast 33962"), +(@ENTRY,0,13,0,6,0,100,1,0,0,0,0,11,39012,7,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - On Death - Cast 39012"); + +-- Twilight Drakonaar SAI +SET @ENTRY := 20910; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,4,0,100,7,0,0,0,0,34,8,1,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Aggro - Set Instance Data Field To 8 To Data 1 (Dungeon Only)"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,31,1,5,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Aggro - Random Phase Range (1-5) (Dungeon Only)"), +(@ENTRY,0,2,0,6,0,100,7,0,0,0,0,34,8,3,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Death - Set Instance Data Field To 8 To Data 3 (Dungeon Only)"), +(@ENTRY,0,3,0,7,0,100,7,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Evade - Set Instance Data Field To 4 To Data 2 (Dungeon Only)"), +(@ENTRY,0,4,0,0,2,80,2,2000,2000,4000,6000,11,22560,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22560 (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,5,0,0,2,80,4,5000,5000,8000,11500,11,39033,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39033 (Heroic Dungeon) (Phase 2)"), +(@ENTRY,0,6,0,0,4,80,2,3000,3000,8000,12000,11,22559,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22559 (Normal Dungeon) (Phase 4)"), +(@ENTRY,0,7,0,0,4,80,4,1000,1000,12000,15500,11,39037,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39037 (Heroic Dungeon) (Phase 4)"), +(@ENTRY,0,8,0,0,8,90,2,5000,5000,10000,10000,11,22642,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22642 (Normal Dungeon) (Phase 8)"), +(@ENTRY,0,9,0,0,8,80,4,7000,7000,12000,15500,11,39036,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39036 (Heroic Dungeon) (Phase 8)"), +(@ENTRY,0,10,0,0,16,100,6,2000,2000,2000,4000,11,22561,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22561 (Dungeon Only) (Phase 16)"), +(@ENTRY,0,11,0,0,0,85,2,3000,3000,8000,10500,11,22558,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22558 (Normal Dungeon)"), +(@ENTRY,0,12,0,0,0,85,4,6000,6000,12000,14000,11,39034,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39034 (Heroic Dungeon)"); + +-- Iron Rune-Smith SAI +SET @ENTRY := 26408; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,0,1000,3000,33000,36000,11,52701,1,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - In Combat - Cast 52701"), +(@ENTRY,0,1,0,0,0,100,0,5000,8000,9000,13000,11,52699,0,0,0,0,0,2,0,0,0,0,0,0,0,"Iron Rune-Smith - In Combat - Cast 52699"), +(@ENTRY,0,2,0,6,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - On Death - Set Event Phase 1"), +(@ENTRY,0,3,4,8,1,100,1,48046,0,0,0,11,48047,0,0,0,0,0,7,0,0,0,0,0,0,0,"Iron Rune-Smith - On Spellhit By 48046 - Quest Credit (Phase 1)"), +(@ENTRY,0,4,0,61,1,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - On Spellhit By 48046 - Forced Despawn (Phase 1)"); + +-- Dragonflayer Huscarl SAI +SET @ENTRY := 27260; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,9,0,100,0,0,5,6000,9000,11,40505,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - Between 0-5 Range - Cast 40505"), +(@ENTRY,0,1,0,0,0,100,0,17000,23000,20000,23000,11,52223,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 52223"), +(@ENTRY,0,2,0,0,0,100,0,6000,9000,12000,15000,11,49807,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 49807"), +(@ENTRY,0,3,0,0,0,100,0,1000,3000,14000,20000,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 13730"), +(@ENTRY,0,4,0,9,0,100,0,0,5,10000,16000,11,6713,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - Between 0-5 Range - Cast 6713"), +(@ENTRY,0,5,0,13,0,100,0,14000,17000,0,0,11,12555,0,0,0,0,0,7,0,0,0,0,0,0,0,"Dragonflayer Huscarl - On Target Casting - Cast 12555"); + +-- Acolyte SAI +SET @ENTRY := 27731; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,9,0,100,2,0,8,14000,19000,11,20828,1,0,0,0,0,1,0,0,0,0,0,0,0,"Acolyte - Between 0-8 Range - Cast 20828 (Normal Dungeon)"), +(@ENTRY,0,1,0,9,0,100,4,0,8,14000,19000,11,15244,1,0,0,0,0,1,0,0,0,0,0,0,0,"Acolyte - Between 0-8 Range - Cast 15244 (Heroic Dungeon)"), +(@ENTRY,0,2,0,9,0,100,2,0,20,8000,13000,11,20832,0,0,0,0,0,2,0,0,0,0,0,0,0,"Acolyte - Between 0-20 Range - Cast 20832 (Normal Dungeon)"), +(@ENTRY,0,3,0,9,0,100,4,0,20,8000,13000,11,14145,0,0,0,0,0,2,0,0,0,0,0,0,0,"Acolyte - Between 0-20 Range - Cast 14145 (Heroic Dungeon)"), +(@ENTRY,0,4,0,0,0,100,2,4000,8000,7000,10000,11,17439,0,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 17439 (Normal Dungeon)"), +(@ENTRY,0,5,0,0,0,100,4,4000,8000,7000,10000,11,17234,0,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 17234 (Heroic Dungeon)"), +(@ENTRY,0,6,0,0,0,100,2,6000,10000,20000,30000,11,39621,32,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 39621 (Normal Dungeon)"), +(@ENTRY,0,7,0,0,0,100,4,6000,10000,20000,30000,11,58811,32,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 58811 (Heroic Dungeon)"), +(@ENTRY,0,8,0,0,0,100,2,11000,15000,35000,45000,11,14875,1,0,0,0,0,6,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 14875 (Normal Dungeon)"), +(@ENTRY,0,9,0,0,0,100,4,11000,15000,35000,45000,11,46190,1,0,0,0,0,6,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 46190 (Heroic Dungeon)"); + +-- Stratholme Citizen SAI +SET @ENTRY := 28340; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,9,0,100,6,0,5,9000,13000,11,52633,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stratholme Citizen - Between 0-5 Range - Cast 52633 (Dungeon Only)"), +(@ENTRY,0,1,0,0,0,100,6,9000,15000,12000,18000,11,52636,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 52636 (Dungeon Only)"), +(@ENTRY,0,2,0,0,0,100,2,16000,21000,21000,29000,11,52634,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 52634 (Normal Dungeon)"), +(@ENTRY,0,3,0,0,0,100,4,16000,21000,21000,29000,11,58813,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 58813 (Heroic Dungeon)"), +(@ENTRY,0,4,0,8,0,100,2,0,127,0,0,11,52635,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - On Spellhit By 0 - Cast 52635 (Normal Dungeon)"), +(@ENTRY,0,5,0,8,0,100,4,0,127,0,0,11,58820,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - On Spellhit By 0 - Cast 58820 (Heroic Dungeon)"); + +-- Nerubian Cocoon SAI +SET @ENTRY := 28413; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,11,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Disallow Combat Movement"), +(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,18,2097152,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Set Disarmed Flag"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Increment Event Phase"), +(@ENTRY,0,3,0,6,0,40,1,0,0,0,0,11,51599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Summon Creature Captive Footman"), +(@ENTRY,0,4,0,6,0,40,1,0,0,0,0,33,28415,0,0,0,0,0,7,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Quest Credit"), +(@ENTRY,0,5,0,6,0,40,1,0,0,0,0,11,51597,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Summon Creature Drakkari Captive"), +(@ENTRY,0,6,0,6,0,20,1,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Forced Despawn"); + +-- Elemental Rift SAI +SET @ENTRY := 28452; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,11,0,100,1,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - On Respawn - Stop Auto Attack"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - On Respawn - Disallow Combat Movement"), +(@ENTRY,0,2,0,0,0,100,1,1000,1000,0,0,11,12058,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 12058"), +(@ENTRY,0,3,0,0,0,100,1,5000,5000,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 9672"), +(@ENTRY,0,4,0,0,0,100,1,10000,10000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"), +(@ENTRY,0,5,0,0,0,100,1,40000,40000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"), +(@ENTRY,0,6,0,0,0,100,1,70000,70000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"); + +-- Impale Target SAI +SET @ENTRY := 29184; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,11,0,100,7,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - On Respawn - Stop Auto Attack (Dungeon Only)"), +(@ENTRY,0,1,0,0,0,100,7,100,100,0,0,11,53455,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 53455 (Dungeon Only)"), +(@ENTRY,0,2,3,9,0,100,7,0,1,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - Between 0-1 Range - Disallow Combat Movement (Dungeon Only)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - Between 0-1 Range - Set Event Phase 1 (Dungeon Only)"), +(@ENTRY,0,4,0,0,0,100,3,3000,3000,0,0,11,53454,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 53454 (Normal Dungeon)"), +(@ENTRY,0,5,0,0,0,100,5,3000,3000,0,0,11,59446,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 59446 (Heroic Dungeon)"), +(@ENTRY,0,6,0,0,0,100,7,4000,5000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Forced Despawn (Dungeon Only)"); + +-- Dragonblight Mage Hunter SAI +SET @ENTRY := 32572; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,8,0,100,0,0,4,12000,15000,11,51758,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 4 - Cast 51758"), +(@ENTRY,0,1,0,8,0,100,0,0,16,12000,15000,11,51763,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 16 - Cast 51763"), +(@ENTRY,0,2,0,8,0,100,0,0,32,12000,15000,11,51764,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 32 - Cast 51764"), +(@ENTRY,0,3,0,8,0,100,0,0,64,12000,15000,11,51766,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 64 - Cast 51766"); + +-- North Sea Kraken SAI +SET @ENTRY := 34925; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Aggro - Set Event Phase 1"), +(@ENTRY,0,1,0,0,0,100,1,6000,9000,7000,9000,11,66514,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - In Combat - Cast 66514"), +(@ENTRY,0,2,0,8,1,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 1)"), +(@ENTRY,0,3,0,8,2,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 2)"), +(@ENTRY,0,4,0,8,4,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 4)"), +(@ENTRY,0,5,0,8,8,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 8)"), +(@ENTRY,0,6,0,8,16,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 16)"), +(@ENTRY,0,7,8,8,32,100,1,66588,0,0,0,11,66717,1,0,0,0,0,7,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Cast 66717"), +(@ENTRY,0,8,0,61,32,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Forced Despawn"); + +-- Bloodsail Elder Magus SAI +SET @ENTRY := 1653; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - On Aggro - Cast 20823"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-40 Range - Cast 20823 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,28700,28700,45200,45200,11,20827,1,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - In Combat - Cast 20827"), +(@ENTRY,0,11,0,0,0,100,0,14900,14900,43000,43000,11,11969,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - In Combat - Cast 11969"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Flee For Assist"); + +-- Defias Watchman SAI +SET @ENTRY := 1725; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Out Of Combat - Stop Auto Attack (Normal Dungeon)"), +(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Watchman - On Aggro - Cast 6660 (Normal Dungeon)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - On Aggro - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,4,5,9,2,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Watchman - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,8,10,9,2,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,9,0,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,13,14,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Flee For Assist (Normal Dungeon)"), +(@ENTRY,0,16,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - On Evade - Set Sheath Melee (Normal Dungeon)"); + +-- Defias Magician SAI +SET @ENTRY := 1726; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,1,0,1,0,100,2,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Out Of Combat - Cast 12544 (Normal Dungeon)"), +(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Magician - On Aggro - Cast 9053 (Normal Dungeon)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - On Aggro - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,4,0,9,2,100,2,0,40,4000,6600,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Magician - Between 0-40 Range - Cast 9053 (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 4)"), +(@ENTRY,0,11,0,0,0,100,2,0,0,23200,38500,11,5110,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - In Combat - Cast 5110 (Normal Dungeon)"), +(@ENTRY,0,12,13,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Flee For Assist (Normal Dungeon)"); + +-- Skeletal Sorcerer SAI +SET @ENTRY := 1784; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Sorcerer - On Aggro - Cast 9672"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-40 Range - Cast 9672 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,0,0,100,0,4000,8000,12000,20000,11,11969,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - In Combat - Cast 11969"); + +-- Skeletal Acolyte SAI +SET @ENTRY := 1789; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Acolyte - On Aggro - Cast 20825"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,1500,2800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-40 Range - Cast 20825 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,0,0,100,0,5000,8000,11000,15000,11,14887,0,0,0,0,0,5,0,0,0,0,0,0,0,"Skeletal Acolyte - In Combat - Cast 14887"), +(@ENTRY,0,11,0,2,0,100,1,0,30,0,0,11,16588,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-30% Health - Cast 16588"); + +-- Scarlet Mage SAI +SET @ENTRY := 1826; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20822,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - On Aggro - Cast 20822"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-40 Range - Cast 20823 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,9000,12000,9000,12000,11,20822,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - In Combat - Cast 20822"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Flee For Assist"); + +-- Scarlet Hunter SAI +SET @ENTRY := 1831; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Hunter - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - On Evade - Set Sheath Melee"); + +-- Scarlet Magus SAI +SET @ENTRY := 1832; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - On Aggro - Cast 9053"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-40 Range - Cast 9053 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,5000,10000,14000,19000,11,17203,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - In Combat - Cast 17203"), +(@ENTRY,0,11,0,0,0,100,0,10000,12000,18000,25000,11,15744,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - In Combat - Cast 15744"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Flee For Assist"); + +-- Araj the Summoner SAI +SET @ENTRY := 1852; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Araj the Summoner - On Aggro - Cast 15497"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-40 Range - Cast 15497 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,0,0,100,0,5000,8000,14000,20000,11,15532,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - In Combat - Cast 15532"), +(@ENTRY,0,11,0,0,0,100,0,18000,24000,50000,65000,11,17231,1,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - In Combat - Cast 17231"), +(@ENTRY,0,12,0,6,0,100,1,0,0,0,0,11,18661,7,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - On Death - Cast 18661"); + +-- Deeb SAI +SET @ENTRY := 1911; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,2000,6000,6000,10000,11,2607,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - In Combat - Cast 2607"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Flee For Assist"); diff --git a/sql/updates/world/2013_11_16_01_world_sai.sql b/sql/updates/world/2013_11_16_01_world_sai.sql new file mode 100644 index 00000000000..33a7550565a --- /dev/null +++ b/sql/updates/world/2013_11_16_01_world_sai.sql @@ -0,0 +1,482 @@ +-- Scarshield Grunt SAI fix +UPDATE `smart_scripts` SET `event_flags`=0, `comment`= 'Scarshield Grunt - Between 0-5 Range - Cast 11976' WHERE `entryorguid`=9043; + +-- Shadow Sprite SAI +SET @ENTRY := 2003; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shadow Sprite - On Aggro - Cast 9613"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-40 Range - Cast 9613 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 30-100% Mana - Decrement Event Phase"); + +-- Bloodfeather Matriarch SAI +SET @ENTRY := 2021; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfeather Matriarch - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,2,0,100,0,0,50,18000,24000,11,332,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-50% Health - Cast 332"); + +-- Greymist Oracle SAI +SET @ENTRY := 2207; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greymist Oracle - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,14,0,100,0,190,40,30000,45000,11,913,0,0,0,0,0,7,0,0,0,0,0,0,0,"Greymist Oracle - On Friendly Unit At 190 Health Within 40 Range - Cast 913"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Flee For Assist"); + +-- Dark Strand Voidcaller SAI +SET @ENTRY := 2337; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Out Of Combat - Cast 12746"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Voidcaller - On Aggro - Cast 20807"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-40 Range - Cast 20807 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Flee For Assist"); + +-- Captain Keelhaul SAI +SET @ENTRY := 2548; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,9,0,100,0,5,30,15600,32700,11,7896,1,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Cast 7896"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Set Sheath Ranged"), +(@ENTRY,0,15,0,0,0,100,0,1200,3200,17200,25200,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - In Combat - Cast 13730"), +(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,19,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - On Evade - Set Sheath Melee"); + +-- Vilebranch Axe Thrower SAI +SET @ENTRY := 2639; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Evade - Set Sheath Melee"); + +-- Bristleback Shaman SAI +SET @ENTRY := 2953; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Shaman - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 30-100% Mana - Decrement Event Phase"); + +-- Vile Familiar SAI +SET @ENTRY := 3101; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,11921,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Familiar - On Aggro - Cast 11921"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,4800,6800,11,11921,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Familiar - Between 0-40 Range - Cast 11921 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Flee For Assist"); + +-- Razormane Scout SAI +SET @ENTRY := 3112; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Scout - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Scout - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - On Evade - Set Sheath Melee"); + +-- Dustwind Storm Witch SAI +SET @ENTRY := 3118; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dustwind Storm Witch - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Flee For Assist"); + +-- Kolkar Outrunner SAI +SET @ENTRY := 3120; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Outrunner - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - On Evade - Set Sheath Melee"); + +-- Burning Blade Apprentice SAI +SET @ENTRY := 3198; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Out Of Combat - Cast 12746"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Apprentice - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-40 Range - Cast 20791 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Flee For Assist"); + +-- Fizzle Darkstorm SAI +SET @ENTRY := 3203; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Out Of Combat - Cast 11939"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-40 Range - Cast 20791 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,0,2,0,100,0,0,50,20000,30000,11,7290,1,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-50% Health - Cast 7290"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Flee For Assist"); + +-- Gazz'uz SAI +SET @ENTRY := 3204; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,20798,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Cast 20798"), +(@ENTRY,0,2,0,1,0,100,1,3000,3000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Cast 12746"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - On Aggro - Cast 20791"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,0,9,2,100,0,0,40,3400,5200,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - Between 0-40 Range - Cast 20791 (Phase 2)"), +(@ENTRY,0,6,7,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,11,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,12,0,0,0,100,0,5000,8000,30000,45000,11,172,1,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - In Combat - Cast 172"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Flee For Assist"); + +-- Thunderhawk Hatchling SAI +SET @ENTRY := 3247; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,600000,600000,11,325,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Out Of Combat - Cast 325"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thunderhawk Hatchling - On Aggro - Cast 9532"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 30-100% Mana - Decrement Event Phase"); + +-- Bristleback Hunter SAI +SET @ENTRY := 3258; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Hunter - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,0,0,2,100,0,9000,14000,9000,14000,11,8806,32,0,0,0,0,5,0,0,0,0,0,0,0,"Bristleback Hunter - In Combat - Cast 8806 (Phase 2)"), +(@ENTRY,0,14,0,0,2,100,0,9000,14000,9000,14000,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - In Combat - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - On Evade - Set Sheath Melee"); + +-- Bristleback Geomancer SAI +SET @ENTRY := 3263; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - On Aggro - Cast 20793"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-40 Range - Cast 20793 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,8000,13000,18000,25000,11,20794,1,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - In Combat - Cast 20794"), +(@ENTRY,0,11,0,0,0,100,0,5000,6500,17000,22000,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - In Combat - Cast 4979"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Flee For Assist"); + +-- Razormane Hunter SAI +SET @ENTRY := 3265; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Hunter - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,6,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - On Evade - Set Sheath Melee"); + +-- Razormane Geomancer SAI +SET @ENTRY := 3269; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Out Of Combat - Cast 12544"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Geomancer - On Aggro - Cast 20793"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-40 Range - Cast 20793 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Flee For Assist"); + +-- Kolkar Wrangler SAI +SET @ENTRY := 3272; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,0,0,0,100,0,4000,6000,9000,14000,11,12024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - In Combat - Cast 12024"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - On Evade - Set Sheath Melee"); + +-- Kolkar Stormer SAI +SET @ENTRY := 3273; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Stormer - On Aggro - Cast 6535"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Flee For Assist"); + +-- Bael'dun Rifleman SAI +SET @ENTRY := 3377; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Evade - Set Sheath Melee"); diff --git a/sql/updates/world/2013_11_16_02_world_sai.sql b/sql/updates/world/2013_11_16_02_world_sai.sql new file mode 100644 index 00000000000..7bd096f1a36 --- /dev/null +++ b/sql/updates/world/2013_11_16_02_world_sai.sql @@ -0,0 +1,495 @@ +-- Barak Kodobane SAI +SET @ENTRY := 3394; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,0,0,0,100,0,2000,5000,12000,15000,11,6533,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - In Combat - Cast 6533"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - On Evade - Set Sheath Melee"); + +-- Nak SAI +SET @ENTRY := 3434; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nak - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nak - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,2,0,100,0,0,100,17500,22500,11,8004,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-100% Health - Cast 8004"), +(@ENTRY,0,11,0,0,0,100,1,6000,12000,0,0,11,8154,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - In Combat - Cast 8154"); + +-- Kuz SAI +SET @ENTRY := 3436; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - On Aggro - Cast 20792"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - Between 0-40 Range - Cast 20792 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,5000,9000,9000,12000,11,20795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - In Combat - Cast 20795"), +(@ENTRY,0,11,0,0,0,100,0,8000,12000,12000,16000,11,11831,1,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - In Combat - Cast 11831"); + +-- Razormane Pathfinder SAI +SET @ENTRY := 3456; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,0,0,0,100,0,4000,6000,5000,7000,11,3391,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - In Combat - Cast 3391"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - On Evade - Set Sheath Melee"); + +-- Delmanis the Hated SAI +SET @ENTRY := 3662; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - On Aggro - Cast 20792"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-40 Range - Cast 20792 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,10,0,0,0,100,0,6000,10000,12000,16000,11,7101,1,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - In Combat - Cast 7101"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Flee For Assist"); + +-- Ilkrud Magthrull SAI +SET @ENTRY := 3664; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,8722,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Cast 8722"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ilkrud Magthrull - On Aggro - Cast 20791"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,0,9,2,100,0,0,40,3400,4800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-40 Range - Cast 20791 (Phase 2)"), +(@ENTRY,0,6,7,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,11,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 15-100% Mana - Decrement Event Phase"), +(@ENTRY,0,12,0,2,0,100,0,0,50,66500,76300,11,6487,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-50% Health - Cast 6487"); + +-- Boahn SAI +SET @ENTRY := 3672; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Boahn - On Aggro - Cast 9532 (Normal Dungeon)"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - On Aggro - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,3,0,9,2,100,2,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Boahn - Between 0-40 Range - Cast 9532 (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,9,0,3,4,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 4)"), +(@ENTRY,0,10,0,2,0,100,2,0,40,30000,40000,11,5187,1,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-40% Health - Cast 5187 (Normal Dungeon)"), +(@ENTRY,0,11,12,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Flee For Assist (Normal Dungeon)"); + +-- Raene Wolfrunner SAI +SET @ENTRY := 3691; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,5,30,9000,13000,11,21390,0,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 21390 (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,5,30,12000,16000,11,15495,0,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 15495 (Phase 2)"), +(@ENTRY,0,9,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,10,11,0,2,100,0,18000,25000,60000,70000,11,22908,1,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - In Combat - Cast 22908 (Phase 2)"), +(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - In Combat - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,12,13,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,14,15,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,15,16,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,16,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,17,18,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,18,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,19,0,9,0,100,0,0,20,11000,13000,11,6533,1,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-20 Range - Cast 6533"), +(@ENTRY,0,20,21,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,21,22,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,22,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,23,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - On Evade - Set Sheath Melee"); + +-- Ran Bloodtooth SAI +SET @ENTRY := 3696; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ran Bloodtooth - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,5,30,9000,14000,11,14443,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Cast 14443 (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,10,11,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,11,12,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,14,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - On Evade - Set Sheath Melee"); + +-- Wrathtail Sea Witch SAI +SET @ENTRY := 3715; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,8598,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - On Aggro - Cast 8598"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,30,3500,5000,11,8598,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-30 Range - Cast 8598 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 25-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,0,9,0,100,0,0,10,20900,33500,11,2691,1,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-10 Range - Cast 2691"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Flee For Assist"); + +-- Wrathtail Sorceress SAI +SET @ENTRY := 3717; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sorceress - On Aggro - Cast 20792"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,3400,4800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-40 Range - Cast 20792 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 25-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,0,0,0,100,0,4500,15700,14100,32600,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - In Combat - Cast 11831"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Flee For Assist"); + +-- Dark Strand Cultist SAI +SET @ENTRY := 3725; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Out Of Combat - Cast 11939"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Cultist - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,3900,5900,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-40 Range - Cast 20791 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,11,0,0,0,100,0,3700,4600,10900,11300,11,6222,32,0,0,0,0,5,0,0,0,0,0,0,0,"Dark Strand Cultist - In Combat - Cast 6222"); + +-- Dark Strand Adept SAI +SET @ENTRY := 3728; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Out Of Combat - Cast 12746"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Adept - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,1,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,3400,5800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-40 Range - Cast 20791 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Flee For Assist"); + +-- Apothecary Falthis SAI +SET @ENTRY := 3735; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Apothecary Falthis - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,3400,4800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-40 Range - Cast 20791 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-7% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-7% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 15-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Flee For Assist"); + +-- Saltspittle Muckdweller SAI +SET @ENTRY := 3740; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-30 Range - Cast 10277 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Evade - Set Sheath Melee"); + +-- Foulweald Pathfinder SAI +SET @ENTRY := 3745; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,1,0,100,1,0,0,0,0,11,6820,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Cast 6820"), +(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Aggro - Cast 6660"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,6,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,7,8,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,9,10,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,11,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,12,13,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Evade - Set Sheath Melee"); + +-- Xavian Hellcaller SAI +SET @ENTRY := 3757; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Xavian Hellcaller - On Aggro - Cast 9053"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,4700,5800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-40 Range - Cast 9053 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-7% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-7% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,4,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 15-100% Mana - Decrement Event Phase (Phase 4)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,11,6925,1,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Cast 6925"); + +-- Severed Druid SAI +SET @ENTRY := 3799; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Severed Druid - On Aggro - Cast 9739"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,2,100,0,0,40,3400,4800,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Severed Druid - Between 0-40 Range - Cast 9739 (Phase 2)"), +(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,0,3,0,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 25-100% Mana - Decrement Event Phase"), +(@ENTRY,0,11,0,2,0,100,0,0,75,20600,80800,11,1430,1,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-75% Health - Cast 1430"); + +-- Forsaken Dark Stalker SAI +SET @ENTRY := 3808; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,0,11,0,100,1,0,0,0,0,11,8218,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Respawn - Cast 8218"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Aggro - Cast 10277"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,6,9,2,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-30 Range - Cast 10277 (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,7,8,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,9,10,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,11,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,12,13,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Evade - Set Sheath Melee"); + +-- Thistlefur Pathfinder SAI +SET @ENTRY := 3926; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,0,11,0,100,1,0,0,0,0,11,6813,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Respawn - Cast 6813"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Aggro - Cast 6660"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,6,9,2,100,0,5,30,2300,2800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-30 Range - Cast 6660 (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,7,8,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,9,10,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,10,11,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,12,13,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Evade - Set Sheath Melee"); + +-- Bloodfury Storm Witch SAI +SET @ENTRY := 4027; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-40 Range - Cast 9532 (Phase 2)"), +(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-15% Mana - Increment Event Phase (Phase 2)"), +(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 35-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,0,0,100,0,6000,10000,40000,45000,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - In Combat - Cast 6535"); + +-- Daughter of Cenarius SAI +SET @ENTRY := 4053; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-30 Range - Cast 10277 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), +(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 25-80 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 25-80 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Allow Combat Movement (Phase 2)"), +(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Set Sheath Melee (Phase 2)"), +(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Start Auto Attack (Phase 2)"), +(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), +(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-15 Range - Stop Auto Attack (Phase 2)"), +(@ENTRY,0,13,0,0,0,100,0,6000,6000,10000,12000,11,527,1,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - In Combat - Cast 527"), +(@ENTRY,0,14,0,0,0,100,0,4500,4500,6000,10000,11,527,1,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - In Combat - Cast 527"), +(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - On Evade - Set Sheath Melee"); diff --git a/sql/updates/world/2013_11_16_0_world_sai.sql b/sql/updates/world/2013_11_16_0_world_sai.sql deleted file mode 100644 index e953030f396..00000000000 --- a/sql/updates/world/2013_11_16_0_world_sai.sql +++ /dev/null @@ -1,874 +0,0 @@ --- Defias Renegade Mage SAI -SET @ENTRY := 450; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Renegade Mage - On Aggro - Cast 20793"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,3400,4700,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-40 Range - Cast 20793 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,19200,21200,63900,68200,11,134,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - In Combat - Cast 134"), -(@ENTRY,0,11,0,0,0,100,0,16400,18400,12300,17200,11,4979,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - In Combat - Cast 4979"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Flee For Assist"); - --- Murloc Minor Oracle SAI -SET @ENTRY := 456; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,3600,5100,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,14,0,100,0,130,40,30900,39000,11,332,1,0,0,0,0,7,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Friendly Unit At 130 Health Within 40 Range - Cast 332"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Flee For Assist"); - --- Murloc Hunter SAI -SET @ENTRY := 458; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,8656,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Cast 8656"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Hunter - On Aggro - Cast 10277"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,6,9,2,100,0,5,30,2900,4800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-30 Range - Cast 10277 (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,7,8,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,9,10,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,11,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,12,13,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - On Evade - Set Sheath Melee"); - --- Marisa du'Paige SAI -SET @ENTRY := 599; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - On Aggro - Cast 9053"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,3400,5400,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-40 Range - Cast 9053 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,12000,19000,35000,48000,11,700,0,0,0,0,0,5,0,0,0,0,0,0,0,"Marisa du'Paige - In Combat - Cast 700"), -(@ENTRY,0,11,0,0,0,80,0,18000,25000,25000,35000,11,228,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - In Combat - Cast 228"), -(@ENTRY,0,12,0,2,0,100,0,0,50,35000,35000,11,512,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-50% Health - Cast 512"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Flee For Assist"); - --- Defias Conjurer SAI -SET @ENTRY := 619; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Cast 12544"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - On Aggro - Cast 9053"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-40 Range - Cast 9053 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Flee For Assist"); - --- Goblin Engineer SAI -SET @ENTRY := 622; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Out Of Combat - Stop Auto Attack (Normal Dungeon)"), -(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Goblin Engineer - On Aggro - Cast 6660 (Normal Dungeon)"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - On Aggro - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,4,5,9,2,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,13,0,0,0,100,2,500,4500,67800,89000,11,3605,1,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - In Combat - Cast 3605 (Normal Dungeon)"), -(@ENTRY,0,14,15,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Flee For Assist (Normal Dungeon)"), -(@ENTRY,0,17,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - On Evade - Set Sheath Melee (Normal Dungeon)"); - --- Skullsplitter Axe Thrower SAI -SET @ENTRY := 696; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,0,0,0,100,0,5000,7000,23000,26000,11,3148,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - In Combat - Cast 3148"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Evade - Set Sheath Melee"); - --- Bloodscalp Mystic SAI -SET @ENTRY := 701; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Aggro - Cast 10277"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,1500,2500,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-40 Range - Cast 10277 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,14,0,100,1,500,40,0,0,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Friendly Unit At 500 Health Within 40 Range - Cast 11986"), -(@ENTRY,0,11,0,0,0,100,0,3000,4000,25000,30000,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - In Combat - Cast 4979"), -(@ENTRY,0,12,0,2,0,100,1,0,30,0,0,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-30% Health - Cast 8599"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Flee For Assist"); - --- Skullsplitter Mystic SAI -SET @ENTRY := 780; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,1500,2500,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,14,0,100,1,700,40,0,0,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Friendly Unit At 700 Health Within 40 Range - Cast 11986"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Flee For Assist"); - --- Kurzen Headshrinker SAI -SET @ENTRY := 941; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - On Aggro - Cast 9613"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,3500,4700,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-40 Range - Cast 9613 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,2400,10800,39000,39500,11,7289,1,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - In Combat - Cast 7289"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Flee For Assist"); - --- Dragonmaw Shadowwarder SAI -SET @ENTRY := 1038; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - On Aggro - Cast 20807"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,3500,6400,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-40 Range - Cast 20807 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,0,0,100,0,2200,6200,20200,31000,11,6223,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - In Combat - Cast 6223"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Flee For Assist"); - --- Lost Whelp SAI -SET @ENTRY := 1043; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lost Whelp - On Aggro - Cast 11839"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,3600,5300,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lost Whelp - Between 0-40 Range - Cast 11839 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 30-100% Mana - Decrement Event Phase"); - --- Flamesnorting Whelp SAI -SET @ENTRY := 1044; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Flamesnorting Whelp - On Aggro - Cast 11839"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,3600,5300,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-40 Range - Cast 11839 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 30-100% Mana - Decrement Event Phase"); - --- Venture Co. Geologist SAI -SET @ENTRY := 1096; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Geologist - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,5400,9600,24000,37200,11,184,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - In Combat - Cast 184"), -(@ENTRY,0,11,0,2,0,100,0,0,50,10100,19800,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-50% Health - Cast 4979"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,1,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Flee For Assist"); - --- Venture Co. Mechanic SAI -SET @ENTRY := 1097; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,9,0,100,0,5,30,6500,10000,11,14443,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Cast 14443"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Set Sheath Ranged"), -(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Evade - Set Sheath Melee"); - --- Bluegill Raider SAI -SET @ENTRY := 1418; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2700,4900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-30 Range - Cast 10277 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,0,0,0,100,0,11000,14300,16500,33300,11,12024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - In Combat - Cast 12024"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - On Evade - Set Sheath Melee"); - --- Darkeye Bonecaster SAI -SET @ENTRY := 1522; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkeye Bonecaster - On Aggro - Cast 13322"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,4000,5000,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-40 Range - Cast 13322 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-7% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-7% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 15-100% Mana - Decrement Event Phase"); - --- Scarlet Neophyte SAI -SET @ENTRY := 1539; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Out Of Combat - Cast 12544"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Neophyte - On Aggro - Cast 13322"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-40 Range - Cast 13322 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Flee For Assist"); - --- Bloodsail Mage SAI -SET @ENTRY := 1562; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Mage - On Aggro - Cast 20823"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,3600,5900,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-40 Range - Cast 20823 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,1200,4700,34200,36800,11,2601,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - In Combat - Cast 2601"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Flee For Assist"); - --- Bloodsail Warlock SAI -SET @ENTRY := 1564; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,31,1,2,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Random Phase Range (1-2)"), -(@ENTRY,0,2,3,1,2,100,1,0,1000,0,0,11,8722,3,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Cast 8722 (Phase 2)"), -(@ENTRY,0,3,0,61,2,100,1,0,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Set Event Phase 0 (Phase 2)"), -(@ENTRY,0,4,5,1,4,100,1,0,1000,0,0,11,11939,3,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Cast 11939 (Phase 4)"), -(@ENTRY,0,5,0,61,4,100,1,0,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Set Event Phase 0 (Phase 4)"), -(@ENTRY,0,6,7,4,0,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - On Aggro - Cast 20825"), -(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - On Aggro - Increment Event Phase"), -(@ENTRY,0,8,0,9,8,100,0,0,40,2400,3800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-40 Range - Cast 20825 (Phase 8)"), -(@ENTRY,0,9,10,3,8,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Mana - Allow Combat Movement (Phase 8)"), -(@ENTRY,0,10,0,61,8,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Mana - Increment Event Phase (Phase 8)"), -(@ENTRY,0,11,0,9,8,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 35-80 Range - Allow Combat Movement (Phase 8)"), -(@ENTRY,0,12,0,9,8,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 5-15 Range - Disallow Combat Movement (Phase 8)"), -(@ENTRY,0,13,0,9,8,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-5 Range - Allow Combat Movement (Phase 8)"), -(@ENTRY,0,14,0,0,8,100,0,6900,20900,15900,15900,11,11980,32,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - In Combat - Cast 11980 (Phase 8)"), -(@ENTRY,0,15,0,3,16,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 30-100% Mana - Decrement Event Phase (Phase 16)"), -(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Flee For Assist"); - --- Wolf Master Nandos SAI -SET @ENTRY := 3927; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,2,0,100,3,0,80,33700,48800,11,7487,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7487 (Normal Dungeon)"), -(@ENTRY,0,1,0,2,0,100,3,0,80,45400,51700,11,7488,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7488 (Normal Dungeon)"), -(@ENTRY,0,2,0,2,0,100,3,0,80,69500,69500,11,7489,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7489 (Normal Dungeon)"), -(@ENTRY,0,3,0,4,0,100,3,0,0,0,0,34,4,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Aggro - Set Instance Data Field To 4 To Data 1 (Normal Dungeon)"), -(@ENTRY,0,4,0,6,0,100,3,0,0,0,0,34,4,3,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Death - Set Instance Data Field To 4 To Data 3 (Normal Dungeon)"), -(@ENTRY,0,5,0,7,0,100,3,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Evade - Set Instance Data Field To 4 To Data 2 (Normal Dungeon)"); - --- Fenrus the Devourer SAI -SET @ENTRY := 4274; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,0,0,100,2,2600,7200,23300,49000,11,7125,0,0,0,0,0,5,0,0,0,0,0,0,0,"Fenrus the Devourer - In Combat - Cast 7125 (Normal Dungeon)"), -(@ENTRY,0,1,0,4,0,100,3,0,0,0,0,34,3,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Aggro - Set Instance Data Field To 3 To Data 1 (Normal Dungeon)"), -(@ENTRY,0,2,0,6,0,100,3,0,0,0,0,34,3,3,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Death - Set Instance Data Field To 3 To Data 3 (Normal Dungeon)"), -(@ENTRY,0,3,0,7,0,100,3,0,0,0,0,34,3,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Evade - Set Instance Data Field To 3 To Data 2 (Normal Dungeon)"); - --- Auchenai Vindicator SAI -SET @ENTRY := 18495; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,2,0,0,600000,600000,11,32861,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - Out Of Combat - Cast 32861 (Normal Dungeon)"), -(@ENTRY,0,1,0,1,0,100,4,0,0,600000,600000,11,38379,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - Out Of Combat - Cast 38379 (Heroic Dungeon)"), -(@ENTRY,0,2,0,0,0,100,2,2000,3000,7000,9000,11,17439,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Vindicator - In Combat - Cast 17439 (Normal Dungeon)"), -(@ENTRY,0,3,0,0,0,100,4,2000,3000,7000,9000,11,17289,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Vindicator - In Combat - Cast 17289 (Heroic Dungeon)"), -(@ENTRY,0,4,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32853 (Dungeon Only)"), -(@ENTRY,0,5,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32854 (Dungeon Only)"), -(@ENTRY,0,6,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32855 (Dungeon Only)"), -(@ENTRY,0,7,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32856 (Dungeon Only)"), -(@ENTRY,0,8,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32857 (Dungeon Only)"); - --- Auchenai Monk SAI -SET @ENTRY := 18497; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,13,0,90,6,8000,10000,0,0,11,32846,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Monk - On Target Casting - Cast 32846 (Dungeon Only)"), -(@ENTRY,0,1,0,0,0,100,6,10000,10000,10000,13000,11,32849,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - In Combat - Cast 32849 (Dungeon Only)"), -(@ENTRY,0,2,0,0,0,100,6,5000,5000,5000,8000,11,37321,0,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Monk - In Combat - Cast 37321 (Dungeon Only)"), -(@ENTRY,0,3,0,1,0,100,6,0,0,180000,180000,11,38168,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - Out Of Combat - Cast 38168 (Dungeon Only)"), -(@ENTRY,0,4,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32853 (Dungeon Only)"), -(@ENTRY,0,5,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32854 (Dungeon Only)"), -(@ENTRY,0,6,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32855 (Dungeon Only)"), -(@ENTRY,0,7,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32856 (Dungeon Only)"), -(@ENTRY,0,8,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32857 (Dungeon Only)"); - --- Force-Commander Gorax SAI -SET @ENTRY := 19264; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - On Aggro - Cast 33962"), -(@ENTRY,0,1,0,0,0,100,0,500,1000,3800,6400,11,9080,32,0,0,0,0,2,0,0,0,0,0,0,0,"Force-Commander Gorax - In Combat - Cast 9080"), -(@ENTRY,0,2,0,2,0,100,1,0,30,0,0,11,33735,1,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-30% Health - Cast 33735"), -(@ENTRY,0,3,0,0,0,100,0,10000,15000,12000,16000,11,24193,1,0,0,0,0,5,0,0,0,0,0,0,0,"Force-Commander Gorax - In Combat - Cast 24193"), -(@ENTRY,0,4,0,2,0,100,1,0,90,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-90% Health - Cast 33962"), -(@ENTRY,0,5,0,2,0,100,1,0,80,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-80% Health - Cast 33962"), -(@ENTRY,0,6,0,2,0,100,1,0,70,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-70% Health - Cast 33962"), -(@ENTRY,0,7,0,2,0,100,1,0,60,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-60% Health - Cast 33962"), -(@ENTRY,0,8,0,2,0,100,1,0,50,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-50% Health - Cast 33962"), -(@ENTRY,0,9,0,2,0,100,1,0,40,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-40% Health - Cast 33962"), -(@ENTRY,0,10,0,2,0,100,1,0,30,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-30% Health - Cast 33962"), -(@ENTRY,0,11,0,2,0,100,1,0,20,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-20% Health - Cast 33962"), -(@ENTRY,0,12,0,2,0,100,1,0,10,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-10% Health - Cast 33962"), -(@ENTRY,0,13,0,6,0,100,1,0,0,0,0,11,39012,7,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - On Death - Cast 39012"); - --- Twilight Drakonaar SAI -SET @ENTRY := 20910; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,4,0,100,7,0,0,0,0,34,8,1,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Aggro - Set Instance Data Field To 8 To Data 1 (Dungeon Only)"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,31,1,5,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Aggro - Random Phase Range (1-5) (Dungeon Only)"), -(@ENTRY,0,2,0,6,0,100,7,0,0,0,0,34,8,3,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Death - Set Instance Data Field To 8 To Data 3 (Dungeon Only)"), -(@ENTRY,0,3,0,7,0,100,7,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Evade - Set Instance Data Field To 4 To Data 2 (Dungeon Only)"), -(@ENTRY,0,4,0,0,2,80,2,2000,2000,4000,6000,11,22560,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22560 (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,5,0,0,2,80,4,5000,5000,8000,11500,11,39033,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39033 (Heroic Dungeon) (Phase 2)"), -(@ENTRY,0,6,0,0,4,80,2,3000,3000,8000,12000,11,22559,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22559 (Normal Dungeon) (Phase 4)"), -(@ENTRY,0,7,0,0,4,80,4,1000,1000,12000,15500,11,39037,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39037 (Heroic Dungeon) (Phase 4)"), -(@ENTRY,0,8,0,0,8,90,2,5000,5000,10000,10000,11,22642,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22642 (Normal Dungeon) (Phase 8)"), -(@ENTRY,0,9,0,0,8,80,4,7000,7000,12000,15500,11,39036,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39036 (Heroic Dungeon) (Phase 8)"), -(@ENTRY,0,10,0,0,16,100,6,2000,2000,2000,4000,11,22561,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22561 (Dungeon Only) (Phase 16)"), -(@ENTRY,0,11,0,0,0,85,2,3000,3000,8000,10500,11,22558,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22558 (Normal Dungeon)"), -(@ENTRY,0,12,0,0,0,85,4,6000,6000,12000,14000,11,39034,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39034 (Heroic Dungeon)"); - --- Iron Rune-Smith SAI -SET @ENTRY := 26408; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,0,0,100,0,1000,3000,33000,36000,11,52701,1,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - In Combat - Cast 52701"), -(@ENTRY,0,1,0,0,0,100,0,5000,8000,9000,13000,11,52699,0,0,0,0,0,2,0,0,0,0,0,0,0,"Iron Rune-Smith - In Combat - Cast 52699"), -(@ENTRY,0,2,0,6,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - On Death - Set Event Phase 1"), -(@ENTRY,0,3,4,8,1,100,1,48046,0,0,0,11,48047,0,0,0,0,0,7,0,0,0,0,0,0,0,"Iron Rune-Smith - On Spellhit By 48046 - Quest Credit (Phase 1)"), -(@ENTRY,0,4,0,61,1,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - On Spellhit By 48046 - Forced Despawn (Phase 1)"); - --- Dragonflayer Huscarl SAI -SET @ENTRY := 27260; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,9,0,100,0,0,5,6000,9000,11,40505,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - Between 0-5 Range - Cast 40505"), -(@ENTRY,0,1,0,0,0,100,0,17000,23000,20000,23000,11,52223,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 52223"), -(@ENTRY,0,2,0,0,0,100,0,6000,9000,12000,15000,11,49807,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 49807"), -(@ENTRY,0,3,0,0,0,100,0,1000,3000,14000,20000,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 13730"), -(@ENTRY,0,4,0,9,0,100,0,0,5,10000,16000,11,6713,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - Between 0-5 Range - Cast 6713"), -(@ENTRY,0,5,0,13,0,100,0,14000,17000,0,0,11,12555,0,0,0,0,0,7,0,0,0,0,0,0,0,"Dragonflayer Huscarl - On Target Casting - Cast 12555"); - --- Acolyte SAI -SET @ENTRY := 27731; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,9,0,100,2,0,8,14000,19000,11,20828,1,0,0,0,0,1,0,0,0,0,0,0,0,"Acolyte - Between 0-8 Range - Cast 20828 (Normal Dungeon)"), -(@ENTRY,0,1,0,9,0,100,4,0,8,14000,19000,11,15244,1,0,0,0,0,1,0,0,0,0,0,0,0,"Acolyte - Between 0-8 Range - Cast 15244 (Heroic Dungeon)"), -(@ENTRY,0,2,0,9,0,100,2,0,20,8000,13000,11,20832,0,0,0,0,0,2,0,0,0,0,0,0,0,"Acolyte - Between 0-20 Range - Cast 20832 (Normal Dungeon)"), -(@ENTRY,0,3,0,9,0,100,4,0,20,8000,13000,11,14145,0,0,0,0,0,2,0,0,0,0,0,0,0,"Acolyte - Between 0-20 Range - Cast 14145 (Heroic Dungeon)"), -(@ENTRY,0,4,0,0,0,100,2,4000,8000,7000,10000,11,17439,0,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 17439 (Normal Dungeon)"), -(@ENTRY,0,5,0,0,0,100,4,4000,8000,7000,10000,11,17234,0,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 17234 (Heroic Dungeon)"), -(@ENTRY,0,6,0,0,0,100,2,6000,10000,20000,30000,11,39621,32,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 39621 (Normal Dungeon)"), -(@ENTRY,0,7,0,0,0,100,4,6000,10000,20000,30000,11,58811,32,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 58811 (Heroic Dungeon)"), -(@ENTRY,0,8,0,0,0,100,2,11000,15000,35000,45000,11,14875,1,0,0,0,0,6,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 14875 (Normal Dungeon)"), -(@ENTRY,0,9,0,0,0,100,4,11000,15000,35000,45000,11,46190,1,0,0,0,0,6,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 46190 (Heroic Dungeon)"); - --- Stratholme Citizen SAI -SET @ENTRY := 28340; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,9,0,100,6,0,5,9000,13000,11,52633,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stratholme Citizen - Between 0-5 Range - Cast 52633 (Dungeon Only)"), -(@ENTRY,0,1,0,0,0,100,6,9000,15000,12000,18000,11,52636,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 52636 (Dungeon Only)"), -(@ENTRY,0,2,0,0,0,100,2,16000,21000,21000,29000,11,52634,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 52634 (Normal Dungeon)"), -(@ENTRY,0,3,0,0,0,100,4,16000,21000,21000,29000,11,58813,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 58813 (Heroic Dungeon)"), -(@ENTRY,0,4,0,8,0,100,2,0,127,0,0,11,52635,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - On Spellhit By 0 - Cast 52635 (Normal Dungeon)"), -(@ENTRY,0,5,0,8,0,100,4,0,127,0,0,11,58820,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - On Spellhit By 0 - Cast 58820 (Heroic Dungeon)"); - --- Nerubian Cocoon SAI -SET @ENTRY := 28413; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,11,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Disallow Combat Movement"), -(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,18,2097152,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Set Disarmed Flag"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Increment Event Phase"), -(@ENTRY,0,3,0,6,0,40,1,0,0,0,0,11,51599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Summon Creature Captive Footman"), -(@ENTRY,0,4,0,6,0,40,1,0,0,0,0,33,28415,0,0,0,0,0,7,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Quest Credit"), -(@ENTRY,0,5,0,6,0,40,1,0,0,0,0,11,51597,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Summon Creature Drakkari Captive"), -(@ENTRY,0,6,0,6,0,20,1,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Forced Despawn"); - --- Elemental Rift SAI -SET @ENTRY := 28452; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,11,0,100,1,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - On Respawn - Stop Auto Attack"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - On Respawn - Disallow Combat Movement"), -(@ENTRY,0,2,0,0,0,100,1,1000,1000,0,0,11,12058,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 12058"), -(@ENTRY,0,3,0,0,0,100,1,5000,5000,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 9672"), -(@ENTRY,0,4,0,0,0,100,1,10000,10000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"), -(@ENTRY,0,5,0,0,0,100,1,40000,40000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"), -(@ENTRY,0,6,0,0,0,100,1,70000,70000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"); - --- Impale Target SAI -SET @ENTRY := 29184; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,11,0,100,7,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - On Respawn - Stop Auto Attack (Dungeon Only)"), -(@ENTRY,0,1,0,0,0,100,7,100,100,0,0,11,53455,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 53455 (Dungeon Only)"), -(@ENTRY,0,2,3,9,0,100,7,0,1,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - Between 0-1 Range - Disallow Combat Movement (Dungeon Only)"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - Between 0-1 Range - Set Event Phase 1 (Dungeon Only)"), -(@ENTRY,0,4,0,0,0,100,3,3000,3000,0,0,11,53454,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 53454 (Normal Dungeon)"), -(@ENTRY,0,5,0,0,0,100,5,3000,3000,0,0,11,59446,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 59446 (Heroic Dungeon)"), -(@ENTRY,0,6,0,0,0,100,7,4000,5000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Forced Despawn (Dungeon Only)"); - --- Dragonblight Mage Hunter SAI -SET @ENTRY := 32572; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,8,0,100,0,0,4,12000,15000,11,51758,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 4 - Cast 51758"), -(@ENTRY,0,1,0,8,0,100,0,0,16,12000,15000,11,51763,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 16 - Cast 51763"), -(@ENTRY,0,2,0,8,0,100,0,0,32,12000,15000,11,51764,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 32 - Cast 51764"), -(@ENTRY,0,3,0,8,0,100,0,0,64,12000,15000,11,51766,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 64 - Cast 51766"); - --- North Sea Kraken SAI -SET @ENTRY := 34925; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Aggro - Set Event Phase 1"), -(@ENTRY,0,1,0,0,0,100,1,6000,9000,7000,9000,11,66514,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - In Combat - Cast 66514"), -(@ENTRY,0,2,0,8,1,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 1)"), -(@ENTRY,0,3,0,8,2,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 2)"), -(@ENTRY,0,4,0,8,4,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 4)"), -(@ENTRY,0,5,0,8,8,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 8)"), -(@ENTRY,0,6,0,8,16,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 16)"), -(@ENTRY,0,7,8,8,32,100,1,66588,0,0,0,11,66717,1,0,0,0,0,7,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Cast 66717"), -(@ENTRY,0,8,0,61,32,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Forced Despawn"); - --- Bloodsail Elder Magus SAI -SET @ENTRY := 1653; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - On Aggro - Cast 20823"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-40 Range - Cast 20823 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,28700,28700,45200,45200,11,20827,1,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - In Combat - Cast 20827"), -(@ENTRY,0,11,0,0,0,100,0,14900,14900,43000,43000,11,11969,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - In Combat - Cast 11969"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Flee For Assist"); - --- Defias Watchman SAI -SET @ENTRY := 1725; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Out Of Combat - Stop Auto Attack (Normal Dungeon)"), -(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Watchman - On Aggro - Cast 6660 (Normal Dungeon)"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - On Aggro - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,4,5,9,2,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Watchman - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,8,10,9,2,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,9,0,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,13,14,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Flee For Assist (Normal Dungeon)"), -(@ENTRY,0,16,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - On Evade - Set Sheath Melee (Normal Dungeon)"); - --- Defias Magician SAI -SET @ENTRY := 1726; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,1,0,1,0,100,2,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Out Of Combat - Cast 12544 (Normal Dungeon)"), -(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Magician - On Aggro - Cast 9053 (Normal Dungeon)"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - On Aggro - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,4,0,9,2,100,2,0,40,4000,6600,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Magician - Between 0-40 Range - Cast 9053 (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 4)"), -(@ENTRY,0,11,0,0,0,100,2,0,0,23200,38500,11,5110,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - In Combat - Cast 5110 (Normal Dungeon)"), -(@ENTRY,0,12,13,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Flee For Assist (Normal Dungeon)"); - --- Skeletal Sorcerer SAI -SET @ENTRY := 1784; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Sorcerer - On Aggro - Cast 9672"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-40 Range - Cast 9672 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,0,0,100,0,4000,8000,12000,20000,11,11969,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - In Combat - Cast 11969"); - --- Skeletal Acolyte SAI -SET @ENTRY := 1789; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Acolyte - On Aggro - Cast 20825"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,1500,2800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-40 Range - Cast 20825 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,0,0,100,0,5000,8000,11000,15000,11,14887,0,0,0,0,0,5,0,0,0,0,0,0,0,"Skeletal Acolyte - In Combat - Cast 14887"), -(@ENTRY,0,11,0,2,0,100,1,0,30,0,0,11,16588,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-30% Health - Cast 16588"); - --- Scarlet Mage SAI -SET @ENTRY := 1826; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20822,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - On Aggro - Cast 20822"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-40 Range - Cast 20823 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,9000,12000,9000,12000,11,20822,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - In Combat - Cast 20822"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Flee For Assist"); - --- Scarlet Hunter SAI -SET @ENTRY := 1831; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Hunter - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - On Evade - Set Sheath Melee"); - --- Scarlet Magus SAI -SET @ENTRY := 1832; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - On Aggro - Cast 9053"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-40 Range - Cast 9053 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,5000,10000,14000,19000,11,17203,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - In Combat - Cast 17203"), -(@ENTRY,0,11,0,0,0,100,0,10000,12000,18000,25000,11,15744,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - In Combat - Cast 15744"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Flee For Assist"); - --- Araj the Summoner SAI -SET @ENTRY := 1852; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Araj the Summoner - On Aggro - Cast 15497"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-40 Range - Cast 15497 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,0,0,100,0,5000,8000,14000,20000,11,15532,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - In Combat - Cast 15532"), -(@ENTRY,0,11,0,0,0,100,0,18000,24000,50000,65000,11,17231,1,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - In Combat - Cast 17231"), -(@ENTRY,0,12,0,6,0,100,1,0,0,0,0,11,18661,7,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - On Death - Cast 18661"); - --- Deeb SAI -SET @ENTRY := 1911; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,2000,6000,6000,10000,11,2607,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - In Combat - Cast 2607"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Flee For Assist"); diff --git a/sql/updates/world/2013_11_16_1_world_sai.sql b/sql/updates/world/2013_11_16_1_world_sai.sql deleted file mode 100644 index 33a7550565a..00000000000 --- a/sql/updates/world/2013_11_16_1_world_sai.sql +++ /dev/null @@ -1,482 +0,0 @@ --- Scarshield Grunt SAI fix -UPDATE `smart_scripts` SET `event_flags`=0, `comment`= 'Scarshield Grunt - Between 0-5 Range - Cast 11976' WHERE `entryorguid`=9043; - --- Shadow Sprite SAI -SET @ENTRY := 2003; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shadow Sprite - On Aggro - Cast 9613"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-40 Range - Cast 9613 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 30-100% Mana - Decrement Event Phase"); - --- Bloodfeather Matriarch SAI -SET @ENTRY := 2021; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfeather Matriarch - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,2,0,100,0,0,50,18000,24000,11,332,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-50% Health - Cast 332"); - --- Greymist Oracle SAI -SET @ENTRY := 2207; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greymist Oracle - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,14,0,100,0,190,40,30000,45000,11,913,0,0,0,0,0,7,0,0,0,0,0,0,0,"Greymist Oracle - On Friendly Unit At 190 Health Within 40 Range - Cast 913"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Flee For Assist"); - --- Dark Strand Voidcaller SAI -SET @ENTRY := 2337; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Out Of Combat - Cast 12746"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Voidcaller - On Aggro - Cast 20807"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-40 Range - Cast 20807 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Flee For Assist"); - --- Captain Keelhaul SAI -SET @ENTRY := 2548; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,9,0,100,0,5,30,15600,32700,11,7896,1,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Cast 7896"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Set Sheath Ranged"), -(@ENTRY,0,15,0,0,0,100,0,1200,3200,17200,25200,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - In Combat - Cast 13730"), -(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,19,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - On Evade - Set Sheath Melee"); - --- Vilebranch Axe Thrower SAI -SET @ENTRY := 2639; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Evade - Set Sheath Melee"); - --- Bristleback Shaman SAI -SET @ENTRY := 2953; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Shaman - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 30-100% Mana - Decrement Event Phase"); - --- Vile Familiar SAI -SET @ENTRY := 3101; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,11921,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Familiar - On Aggro - Cast 11921"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,4800,6800,11,11921,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Familiar - Between 0-40 Range - Cast 11921 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Flee For Assist"); - --- Razormane Scout SAI -SET @ENTRY := 3112; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Scout - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Scout - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - On Evade - Set Sheath Melee"); - --- Dustwind Storm Witch SAI -SET @ENTRY := 3118; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dustwind Storm Witch - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Flee For Assist"); - --- Kolkar Outrunner SAI -SET @ENTRY := 3120; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Outrunner - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - On Evade - Set Sheath Melee"); - --- Burning Blade Apprentice SAI -SET @ENTRY := 3198; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Out Of Combat - Cast 12746"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Apprentice - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-40 Range - Cast 20791 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Flee For Assist"); - --- Fizzle Darkstorm SAI -SET @ENTRY := 3203; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Out Of Combat - Cast 11939"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-40 Range - Cast 20791 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,0,2,0,100,0,0,50,20000,30000,11,7290,1,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-50% Health - Cast 7290"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Flee For Assist"); - --- Gazz'uz SAI -SET @ENTRY := 3204; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,20798,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Cast 20798"), -(@ENTRY,0,2,0,1,0,100,1,3000,3000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Cast 12746"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - On Aggro - Cast 20791"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,0,9,2,100,0,0,40,3400,5200,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - Between 0-40 Range - Cast 20791 (Phase 2)"), -(@ENTRY,0,6,7,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,11,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,12,0,0,0,100,0,5000,8000,30000,45000,11,172,1,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - In Combat - Cast 172"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Flee For Assist"); - --- Thunderhawk Hatchling SAI -SET @ENTRY := 3247; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,600000,600000,11,325,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Out Of Combat - Cast 325"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thunderhawk Hatchling - On Aggro - Cast 9532"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 30-100% Mana - Decrement Event Phase"); - --- Bristleback Hunter SAI -SET @ENTRY := 3258; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Hunter - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,0,0,2,100,0,9000,14000,9000,14000,11,8806,32,0,0,0,0,5,0,0,0,0,0,0,0,"Bristleback Hunter - In Combat - Cast 8806 (Phase 2)"), -(@ENTRY,0,14,0,0,2,100,0,9000,14000,9000,14000,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - In Combat - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - On Evade - Set Sheath Melee"); - --- Bristleback Geomancer SAI -SET @ENTRY := 3263; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - On Aggro - Cast 20793"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-40 Range - Cast 20793 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,8000,13000,18000,25000,11,20794,1,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - In Combat - Cast 20794"), -(@ENTRY,0,11,0,0,0,100,0,5000,6500,17000,22000,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - In Combat - Cast 4979"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Flee For Assist"); - --- Razormane Hunter SAI -SET @ENTRY := 3265; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Hunter - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,6,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - On Evade - Set Sheath Melee"); - --- Razormane Geomancer SAI -SET @ENTRY := 3269; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Out Of Combat - Cast 12544"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Geomancer - On Aggro - Cast 20793"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,2400,3800,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-40 Range - Cast 20793 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Flee For Assist"); - --- Kolkar Wrangler SAI -SET @ENTRY := 3272; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,0,0,0,100,0,4000,6000,9000,14000,11,12024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - In Combat - Cast 12024"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - On Evade - Set Sheath Melee"); - --- Kolkar Stormer SAI -SET @ENTRY := 3273; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Stormer - On Aggro - Cast 6535"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Flee For Assist"); - --- Bael'dun Rifleman SAI -SET @ENTRY := 3377; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Evade - Set Sheath Melee"); diff --git a/sql/updates/world/2013_11_16_2_world_sai.sql b/sql/updates/world/2013_11_16_2_world_sai.sql deleted file mode 100644 index 7bd096f1a36..00000000000 --- a/sql/updates/world/2013_11_16_2_world_sai.sql +++ /dev/null @@ -1,495 +0,0 @@ --- Barak Kodobane SAI -SET @ENTRY := 3394; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,0,0,0,100,0,2000,5000,12000,15000,11,6533,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - In Combat - Cast 6533"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - On Evade - Set Sheath Melee"); - --- Nak SAI -SET @ENTRY := 3434; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nak - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nak - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,2,0,100,0,0,100,17500,22500,11,8004,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-100% Health - Cast 8004"), -(@ENTRY,0,11,0,0,0,100,1,6000,12000,0,0,11,8154,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - In Combat - Cast 8154"); - --- Kuz SAI -SET @ENTRY := 3436; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - On Aggro - Cast 20792"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - Between 0-40 Range - Cast 20792 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,5000,9000,9000,12000,11,20795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - In Combat - Cast 20795"), -(@ENTRY,0,11,0,0,0,100,0,8000,12000,12000,16000,11,11831,1,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - In Combat - Cast 11831"); - --- Razormane Pathfinder SAI -SET @ENTRY := 3456; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,0,0,0,100,0,4000,6000,5000,7000,11,3391,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - In Combat - Cast 3391"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - On Evade - Set Sheath Melee"); - --- Delmanis the Hated SAI -SET @ENTRY := 3662; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - On Aggro - Cast 20792"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-40 Range - Cast 20792 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,10,0,0,0,100,0,6000,10000,12000,16000,11,7101,1,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - In Combat - Cast 7101"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Flee For Assist"); - --- Ilkrud Magthrull SAI -SET @ENTRY := 3664; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,8722,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Cast 8722"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ilkrud Magthrull - On Aggro - Cast 20791"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,0,9,2,100,0,0,40,3400,4800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-40 Range - Cast 20791 (Phase 2)"), -(@ENTRY,0,6,7,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,11,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 15-100% Mana - Decrement Event Phase"), -(@ENTRY,0,12,0,2,0,100,0,0,50,66500,76300,11,6487,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-50% Health - Cast 6487"); - --- Boahn SAI -SET @ENTRY := 3672; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Boahn - On Aggro - Cast 9532 (Normal Dungeon)"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - On Aggro - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,3,0,9,2,100,2,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Boahn - Between 0-40 Range - Cast 9532 (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,9,0,3,4,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 4)"), -(@ENTRY,0,10,0,2,0,100,2,0,40,30000,40000,11,5187,1,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-40% Health - Cast 5187 (Normal Dungeon)"), -(@ENTRY,0,11,12,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Flee For Assist (Normal Dungeon)"); - --- Raene Wolfrunner SAI -SET @ENTRY := 3691; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,5,30,9000,13000,11,21390,0,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 21390 (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,5,30,12000,16000,11,15495,0,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 15495 (Phase 2)"), -(@ENTRY,0,9,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,10,11,0,2,100,0,18000,25000,60000,70000,11,22908,1,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - In Combat - Cast 22908 (Phase 2)"), -(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - In Combat - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,12,13,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,14,15,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,15,16,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,16,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,17,18,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,18,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,19,0,9,0,100,0,0,20,11000,13000,11,6533,1,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-20 Range - Cast 6533"), -(@ENTRY,0,20,21,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,21,22,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,22,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,23,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - On Evade - Set Sheath Melee"); - --- Ran Bloodtooth SAI -SET @ENTRY := 3696; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ran Bloodtooth - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,5,30,9000,14000,11,14443,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Cast 14443 (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,10,11,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,11,12,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,14,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - On Evade - Set Sheath Melee"); - --- Wrathtail Sea Witch SAI -SET @ENTRY := 3715; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,8598,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - On Aggro - Cast 8598"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,30,3500,5000,11,8598,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-30 Range - Cast 8598 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 25-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,0,9,0,100,0,0,10,20900,33500,11,2691,1,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-10 Range - Cast 2691"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Flee For Assist"); - --- Wrathtail Sorceress SAI -SET @ENTRY := 3717; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sorceress - On Aggro - Cast 20792"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,3400,4800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-40 Range - Cast 20792 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 25-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,0,0,0,100,0,4500,15700,14100,32600,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - In Combat - Cast 11831"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Flee For Assist"); - --- Dark Strand Cultist SAI -SET @ENTRY := 3725; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Out Of Combat - Cast 11939"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Cultist - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,3900,5900,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-40 Range - Cast 20791 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,11,0,0,0,100,0,3700,4600,10900,11300,11,6222,32,0,0,0,0,5,0,0,0,0,0,0,0,"Dark Strand Cultist - In Combat - Cast 6222"); - --- Dark Strand Adept SAI -SET @ENTRY := 3728; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Out Of Combat - Cast 12746"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Adept - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,1,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,3400,5800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-40 Range - Cast 20791 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 30-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Flee For Assist"); - --- Apothecary Falthis SAI -SET @ENTRY := 3735; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Apothecary Falthis - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,3400,4800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-40 Range - Cast 20791 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-7% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-7% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 15-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Flee For Assist"); - --- Saltspittle Muckdweller SAI -SET @ENTRY := 3740; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-30 Range - Cast 10277 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Evade - Set Sheath Melee"); - --- Foulweald Pathfinder SAI -SET @ENTRY := 3745; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,1,0,100,1,0,0,0,0,11,6820,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Cast 6820"), -(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Aggro - Cast 6660"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,6,9,2,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,7,8,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,9,10,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,11,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,12,13,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Evade - Set Sheath Melee"); - --- Xavian Hellcaller SAI -SET @ENTRY := 3757; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Xavian Hellcaller - On Aggro - Cast 9053"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,4700,5800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-40 Range - Cast 9053 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-7% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-7% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,4,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 15-100% Mana - Decrement Event Phase (Phase 4)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,11,6925,1,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Cast 6925"); - --- Severed Druid SAI -SET @ENTRY := 3799; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Severed Druid - On Aggro - Cast 9739"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,2,100,0,0,40,3400,4800,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Severed Druid - Between 0-40 Range - Cast 9739 (Phase 2)"), -(@ENTRY,0,5,6,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,9,2,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,0,3,0,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 25-100% Mana - Decrement Event Phase"), -(@ENTRY,0,11,0,2,0,100,0,0,75,20600,80800,11,1430,1,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-75% Health - Cast 1430"); - --- Forsaken Dark Stalker SAI -SET @ENTRY := 3808; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,0,11,0,100,1,0,0,0,0,11,8218,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Respawn - Cast 8218"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Aggro - Cast 10277"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,6,9,2,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-30 Range - Cast 10277 (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,7,8,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,9,10,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,11,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,12,13,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Evade - Set Sheath Melee"); - --- Thistlefur Pathfinder SAI -SET @ENTRY := 3926; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,0,11,0,100,1,0,0,0,0,11,6813,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Respawn - Cast 6813"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Aggro - Cast 6660"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,6,9,2,100,0,5,30,2300,2800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-30 Range - Cast 6660 (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,7,8,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,9,10,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,10,11,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,11,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,12,13,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,13,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Evade - Set Sheath Melee"); - --- Bloodfury Storm Witch SAI -SET @ENTRY := 4027; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,2,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-40 Range - Cast 9532 (Phase 2)"), -(@ENTRY,0,4,5,3,2,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-15% Mana - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-15% Mana - Increment Event Phase (Phase 2)"), -(@ENTRY,0,6,0,9,2,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 35-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,8,0,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,0,0,100,0,6000,10000,40000,45000,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - In Combat - Cast 6535"); - --- Daughter of Cenarius SAI -SET @ENTRY := 4053; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,2,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-30 Range - Cast 10277 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-30 Range - Set Sheath Ranged (Phase 2)"), -(@ENTRY,0,6,7,9,2,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 25-80 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,7,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 25-80 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,8,9,9,2,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Allow Combat Movement (Phase 2)"), -(@ENTRY,0,9,10,61,2,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Set Sheath Melee (Phase 2)"), -(@ENTRY,0,10,0,61,2,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Start Auto Attack (Phase 2)"), -(@ENTRY,0,11,12,9,2,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-15 Range - Disallow Combat Movement (Phase 2)"), -(@ENTRY,0,12,0,61,2,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-15 Range - Stop Auto Attack (Phase 2)"), -(@ENTRY,0,13,0,0,0,100,0,6000,6000,10000,12000,11,527,1,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - In Combat - Cast 527"), -(@ENTRY,0,14,0,0,0,100,0,4500,4500,6000,10000,11,527,1,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - In Combat - Cast 527"), -(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - On Evade - Set Sheath Melee"); diff --git a/sql/updates/world/2013_11_17_00_world_sai.sql b/sql/updates/world/2013_11_17_00_world_sai.sql new file mode 100644 index 00000000000..2e36825001f --- /dev/null +++ b/sql/updates/world/2013_11_17_00_world_sai.sql @@ -0,0 +1,1918 @@ +-- Barak Kodobane SAI +SET @ENTRY := 3394; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,0,0,0,100,0,2000,5000,12000,15000,11,6533,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - In Combat - Cast 6533"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - On Evade - Set Sheath Melee"); + +-- Nak SAI +SET @ENTRY := 3434; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nak - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nak - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,2,0,100,0,0,100,17500,22500,11,8004,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-100% Health - Cast 8004"), +(@ENTRY,0,11,0,0,0,100,1,6000,12000,0,0,11,8154,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - In Combat - Cast 8154"); + +-- Kuz SAI +SET @ENTRY := 3436; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - On Aggro - Cast 20792"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - Between 0-40 Range - Cast 20792 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,5000,9000,9000,12000,11,20795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - In Combat - Cast 20795"), +(@ENTRY,0,11,0,0,0,100,0,8000,12000,12000,16000,11,11831,1,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - In Combat - Cast 11831"); + +-- Razormane Pathfinder SAI +SET @ENTRY := 3456; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,0,0,0,100,0,4000,6000,5000,7000,11,3391,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - In Combat - Cast 3391"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - On Evade - Set Sheath Melee"); + +-- Delmanis the Hated SAI +SET @ENTRY := 3662; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - On Aggro - Cast 20792"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-40 Range - Cast 20792 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,6000,10000,12000,16000,11,7101,1,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - In Combat - Cast 7101"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Flee For Assist"); + +-- Ilkrud Magthrull SAI +SET @ENTRY := 3664; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,8722,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Cast 8722"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ilkrud Magthrull - On Aggro - Cast 20791"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,0,9,1,100,0,0,40,3400,4800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-40 Range - Cast 20791 (Phase 1)"), +(@ENTRY,0,6,7,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,11,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 15-100% Mana - Decrement Event Phase"), +(@ENTRY,0,12,0,2,0,100,0,0,50,66500,76300,11,6487,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-50% Health - Cast 6487"); + +-- Boahn SAI +SET @ENTRY := 3672; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Boahn - On Aggro - Cast 9532 (Normal Dungeon)"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - On Aggro - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Boahn - Between 0-40 Range - Cast 9532 (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,10,0,2,0,100,2,0,40,30000,40000,11,5187,1,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-40% Health - Cast 5187 (Normal Dungeon)"), +(@ENTRY,0,11,12,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Flee For Assist (Normal Dungeon)"); + +-- Raene Wolfrunner SAI +SET @ENTRY := 3691; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,5,30,9000,13000,11,21390,0,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 21390 (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,5,30,12000,16000,11,15495,0,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 15495 (Phase 1)"), +(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,10,11,0,1,100,0,18000,25000,60000,70000,11,22908,1,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - In Combat - Cast 22908 (Phase 1)"), +(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - In Combat - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,12,13,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,14,15,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,15,16,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,17,18,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,18,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,19,0,9,0,100,0,0,20,11000,13000,11,6533,1,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-20 Range - Cast 6533"), +(@ENTRY,0,20,21,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,21,22,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,22,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,23,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - On Evade - Set Sheath Melee"); + +-- Ran Bloodtooth SAI +SET @ENTRY := 3696; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ran Bloodtooth - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,5,30,9000,14000,11,14443,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Cast 14443 (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,10,11,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,11,12,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - On Evade - Set Sheath Melee"); + +-- Wrathtail Sea Witch SAI +SET @ENTRY := 3715; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,8598,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - On Aggro - Cast 8598"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,30,3500,5000,11,8598,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-30 Range - Cast 8598 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 25-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,0,9,0,100,0,0,10,20900,33500,11,2691,1,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-10 Range - Cast 2691"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Flee For Assist"); + +-- Wrathtail Sorceress SAI +SET @ENTRY := 3717; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sorceress - On Aggro - Cast 20792"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-40 Range - Cast 20792 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 25-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,0,0,0,100,0,4500,15700,14100,32600,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - In Combat - Cast 11831"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Flee For Assist"); + +-- Dark Strand Cultist SAI +SET @ENTRY := 3725; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Out Of Combat - Cast 11939"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Cultist - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,3900,5900,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-40 Range - Cast 20791 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,11,0,0,0,100,0,3700,4600,10900,11300,11,6222,32,0,0,0,0,5,0,0,0,0,0,0,0,"Dark Strand Cultist - In Combat - Cast 6222"); + +-- Dark Strand Adept SAI +SET @ENTRY := 3728; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Out Of Combat - Cast 12746"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Adept - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,1,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,3400,5800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-40 Range - Cast 20791 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Flee For Assist"); + +-- Apothecary Falthis SAI +SET @ENTRY := 3735; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Apothecary Falthis - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-40 Range - Cast 20791 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-7% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-7% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 15-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Flee For Assist"); + +-- Saltspittle Muckdweller SAI +SET @ENTRY := 3740; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-30 Range - Cast 10277 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Evade - Set Sheath Melee"); + +-- Foulweald Pathfinder SAI +SET @ENTRY := 3745; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,1,0,100,1,0,0,0,0,11,6820,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Cast 6820"), +(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Aggro - Cast 6660"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,6,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Evade - Set Sheath Melee"); + +-- Xavian Hellcaller SAI +SET @ENTRY := 3757; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Xavian Hellcaller - On Aggro - Cast 9053"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,4700,5800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-40 Range - Cast 9053 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-7% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-7% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 15-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,11,6925,1,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Cast 6925"); + +-- Severed Druid SAI +SET @ENTRY := 3799; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Severed Druid - On Aggro - Cast 9739"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Severed Druid - Between 0-40 Range - Cast 9739 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,0,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 25-100% Mana - Decrement Event Phase"), +(@ENTRY,0,11,0,2,0,100,0,0,75,20600,80800,11,1430,1,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-75% Health - Cast 1430"); + +-- Forsaken Dark Stalker SAI +SET @ENTRY := 3808; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,0,11,0,100,1,0,0,0,0,11,8218,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Respawn - Cast 8218"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Aggro - Cast 10277"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,6,9,1,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-30 Range - Cast 10277 (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Evade - Set Sheath Melee"); + +-- Thistlefur Pathfinder SAI +SET @ENTRY := 3926; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,0,11,0,100,1,0,0,0,0,11,6813,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Respawn - Cast 6813"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Aggro - Cast 6660"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,6,9,1,100,0,5,30,2300,2800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Evade - Set Sheath Melee"); + +-- Bloodfury Storm Witch SAI +SET @ENTRY := 4027; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,0,0,100,0,6000,10000,40000,45000,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - In Combat - Cast 6535"); + +-- Daughter of Cenarius SAI +SET @ENTRY := 4053; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-30 Range - Cast 10277 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,0,0,0,100,0,6000,6000,10000,12000,11,527,1,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - In Combat - Cast 527"), +(@ENTRY,0,14,0,0,0,100,0,4500,4500,6000,10000,11,527,1,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - In Combat - Cast 527"), +(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - On Evade - Set Sheath Melee"); + +-- Shadow Sprite SAI +SET @ENTRY := 2003; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shadow Sprite - On Aggro - Cast 9613"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-40 Range - Cast 9613 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 30-100% Mana - Decrement Event Phase"); + +-- Bloodfeather Matriarch SAI +SET @ENTRY := 2021; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfeather Matriarch - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,2,0,100,0,0,50,18000,24000,11,332,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-50% Health - Cast 332"); + +-- Greymist Oracle SAI +SET @ENTRY := 2207; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greymist Oracle - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,14,0,100,0,190,40,30000,45000,11,913,0,0,0,0,0,7,0,0,0,0,0,0,0,"Greymist Oracle - On Friendly Unit At 190 Health Within 40 Range - Cast 913"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Flee For Assist"); + +-- Dark Strand Voidcaller SAI +SET @ENTRY := 2337; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Out Of Combat - Cast 12746"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Voidcaller - On Aggro - Cast 20807"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-40 Range - Cast 20807 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Flee For Assist"); + +-- Captain Keelhaul SAI +SET @ENTRY := 2548; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,9,0,100,0,5,30,15600,32700,11,7896,1,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Cast 7896"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Set Sheath Ranged"), +(@ENTRY,0,15,0,0,0,100,0,1200,3200,17200,25200,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - In Combat - Cast 13730"), +(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,19,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - On Evade - Set Sheath Melee"); + +-- Vilebranch Axe Thrower SAI +SET @ENTRY := 2639; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Evade - Set Sheath Melee"); + +-- Bristleback Shaman SAI +SET @ENTRY := 2953; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Shaman - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 30-100% Mana - Decrement Event Phase"); + +-- Vile Familiar SAI +SET @ENTRY := 3101; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,11921,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Familiar - On Aggro - Cast 11921"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,4800,6800,11,11921,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Familiar - Between 0-40 Range - Cast 11921 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Flee For Assist"); + +-- Razormane Scout SAI +SET @ENTRY := 3112; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Scout - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Scout - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - On Evade - Set Sheath Melee"); + +-- Dustwind Storm Witch SAI +SET @ENTRY := 3118; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dustwind Storm Witch - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Flee For Assist"); + +-- Kolkar Outrunner SAI +SET @ENTRY := 3120; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Outrunner - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - On Evade - Set Sheath Melee"); + +-- Burning Blade Apprentice SAI +SET @ENTRY := 3198; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Out Of Combat - Cast 12746"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Apprentice - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-40 Range - Cast 20791 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Flee For Assist"); + +-- Fizzle Darkstorm SAI +SET @ENTRY := 3203; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Out Of Combat - Cast 11939"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - On Aggro - Cast 20791"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-40 Range - Cast 20791 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,0,2,0,100,0,0,50,20000,30000,11,7290,1,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-50% Health - Cast 7290"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Flee For Assist"); + +-- Gazz'uz SAI +SET @ENTRY := 3204; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,20798,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Cast 20798"), +(@ENTRY,0,2,0,1,0,100,1,3000,3000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Cast 12746"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - On Aggro - Cast 20791"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,0,9,1,100,0,0,40,3400,5200,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - Between 0-40 Range - Cast 20791 (Phase 1)"), +(@ENTRY,0,6,7,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,11,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,12,0,0,0,100,0,5000,8000,30000,45000,11,172,1,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - In Combat - Cast 172"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Flee For Assist"); + +-- Thunderhawk Hatchling SAI +SET @ENTRY := 3247; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,600000,600000,11,325,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Out Of Combat - Cast 325"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thunderhawk Hatchling - On Aggro - Cast 9532"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 30-100% Mana - Decrement Event Phase"); + +-- Bristleback Hunter SAI +SET @ENTRY := 3258; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Hunter - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,0,0,1,100,0,9000,14000,9000,14000,11,8806,32,0,0,0,0,5,0,0,0,0,0,0,0,"Bristleback Hunter - In Combat - Cast 8806 (Phase 1)"), +(@ENTRY,0,14,0,0,1,100,0,9000,14000,9000,14000,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - In Combat - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - On Evade - Set Sheath Melee"); + +-- Bristleback Geomancer SAI +SET @ENTRY := 3263; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - On Aggro - Cast 20793"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-40 Range - Cast 20793 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,8000,13000,18000,25000,11,20794,1,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - In Combat - Cast 20794"), +(@ENTRY,0,11,0,0,0,100,0,5000,6500,17000,22000,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - In Combat - Cast 4979"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Flee For Assist"); + +-- Razormane Hunter SAI +SET @ENTRY := 3265; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Hunter - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,6,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - On Evade - Set Sheath Melee"); + +-- Razormane Geomancer SAI +SET @ENTRY := 3269; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Out Of Combat - Cast 12544"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Geomancer - On Aggro - Cast 20793"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-40 Range - Cast 20793 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Flee For Assist"); + +-- Kolkar Wrangler SAI +SET @ENTRY := 3272; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,0,0,0,100,0,4000,6000,9000,14000,11,12024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - In Combat - Cast 12024"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - On Evade - Set Sheath Melee"); + +-- Kolkar Stormer SAI +SET @ENTRY := 3273; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Stormer - On Aggro - Cast 6535"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Flee For Assist"); + +-- Bael'dun Rifleman SAI +SET @ENTRY := 3377; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Evade - Set Sheath Melee"); + +-- Defias Renegade Mage SAI +SET @ENTRY := 450; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Renegade Mage - On Aggro - Cast 20793"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4700,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-40 Range - Cast 20793 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,19200,21200,63900,68200,11,134,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - In Combat - Cast 134"), +(@ENTRY,0,11,0,0,0,100,0,16400,18400,12300,17200,11,4979,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - In Combat - Cast 4979"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Flee For Assist"); + +-- Murloc Minor Oracle SAI +SET @ENTRY := 456; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,3600,5100,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,14,0,100,0,130,40,30900,39000,11,332,1,0,0,0,0,7,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Friendly Unit At 130 Health Within 40 Range - Cast 332"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Flee For Assist"); + +-- Murloc Hunter SAI +SET @ENTRY := 458; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,8656,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Cast 8656"), +(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Hunter - On Aggro - Cast 10277"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,6,9,1,100,0,5,30,2900,4800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-30 Range - Cast 10277 (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - On Evade - Set Sheath Melee"); + +-- Marisa du'Paige SAI +SET @ENTRY := 599; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - On Aggro - Cast 9053"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,3400,5400,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-40 Range - Cast 9053 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,12000,19000,35000,48000,11,700,0,0,0,0,0,5,0,0,0,0,0,0,0,"Marisa du'Paige - In Combat - Cast 700"), +(@ENTRY,0,11,0,0,0,80,0,18000,25000,25000,35000,11,228,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - In Combat - Cast 228"), +(@ENTRY,0,12,0,2,0,100,0,0,50,35000,35000,11,512,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-50% Health - Cast 512"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Flee For Assist"); + +-- Defias Conjurer SAI +SET @ENTRY := 619; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Cast 12544"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - On Aggro - Cast 9053"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-40 Range - Cast 9053 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Flee For Assist"); + +-- Goblin Engineer SAI +SET @ENTRY := 622; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Out Of Combat - Stop Auto Attack (Normal Dungeon)"), +(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Goblin Engineer - On Aggro - Cast 6660 (Normal Dungeon)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - On Aggro - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,4,5,9,1,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,13,0,0,0,100,2,500,4500,67800,89000,11,3605,1,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - In Combat - Cast 3605 (Normal Dungeon)"), +(@ENTRY,0,14,15,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Flee For Assist (Normal Dungeon)"), +(@ENTRY,0,17,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - On Evade - Set Sheath Melee (Normal Dungeon)"); + +-- Skullsplitter Axe Thrower SAI +SET @ENTRY := 696; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,0,0,0,100,0,5000,7000,23000,26000,11,3148,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - In Combat - Cast 3148"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Evade - Set Sheath Melee"); + +-- Bloodscalp Mystic SAI +SET @ENTRY := 701; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Aggro - Cast 10277"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,1500,2500,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-40 Range - Cast 10277 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,14,0,100,1,500,40,0,0,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Friendly Unit At 500 Health Within 40 Range - Cast 11986"), +(@ENTRY,0,11,0,0,0,100,0,3000,4000,25000,30000,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - In Combat - Cast 4979"), +(@ENTRY,0,12,0,2,0,100,1,0,30,0,0,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-30% Health - Cast 8599"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Flee For Assist"); + +-- Skullsplitter Mystic SAI +SET @ENTRY := 780; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,1500,2500,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,14,0,100,1,700,40,0,0,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Friendly Unit At 700 Health Within 40 Range - Cast 11986"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Flee For Assist"); + +-- Kurzen Headshrinker SAI +SET @ENTRY := 941; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - On Aggro - Cast 9613"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,3500,4700,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-40 Range - Cast 9613 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,2400,10800,39000,39500,11,7289,1,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - In Combat - Cast 7289"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Flee For Assist"); + +-- Dragonmaw Shadowwarder SAI +SET @ENTRY := 1038; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - On Aggro - Cast 20807"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,3500,6400,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-40 Range - Cast 20807 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,0,0,100,0,2200,6200,20200,31000,11,6223,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - In Combat - Cast 6223"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Flee For Assist"); + +-- Lost Whelp SAI +SET @ENTRY := 1043; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lost Whelp - On Aggro - Cast 11839"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,3600,5300,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lost Whelp - Between 0-40 Range - Cast 11839 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 30-100% Mana - Decrement Event Phase"); + +-- Flamesnorting Whelp SAI +SET @ENTRY := 1044; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Flamesnorting Whelp - On Aggro - Cast 11839"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,3600,5300,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-40 Range - Cast 11839 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 30-100% Mana - Decrement Event Phase"); + +-- Venture Co. Geologist SAI +SET @ENTRY := 1096; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Geologist - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,5400,9600,24000,37200,11,184,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - In Combat - Cast 184"), +(@ENTRY,0,11,0,2,0,100,0,0,50,10100,19800,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-50% Health - Cast 4979"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,1,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Flee For Assist"); + +-- Venture Co. Mechanic SAI +SET @ENTRY := 1097; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,9,0,100,0,5,30,6500,10000,11,14443,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Cast 14443"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Set Sheath Ranged"), +(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Evade - Set Sheath Melee"); + +-- Bluegill Raider SAI +SET @ENTRY := 1418; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - On Aggro - Cast 10277"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2700,4900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-30 Range - Cast 10277 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,0,0,0,100,0,11000,14300,16500,33300,11,12024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - In Combat - Cast 12024"), +(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - On Evade - Set Sheath Melee"); + +-- Darkeye Bonecaster SAI +SET @ENTRY := 1522; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Out Of Combat - Set Event Phase 0"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkeye Bonecaster - On Aggro - Cast 13322"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,4000,5000,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-40 Range - Cast 13322 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-7% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-7% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 15-100% Mana - Decrement Event Phase"); + +-- Scarlet Neophyte SAI +SET @ENTRY := 1539; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Out Of Combat - Cast 12544"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Neophyte - On Aggro - Cast 13322"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-40 Range - Cast 13322 (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Flee For Assist"); + +-- Bloodsail Mage SAI +SET @ENTRY := 1562; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Mage - On Aggro - Cast 20823"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,3600,5900,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-40 Range - Cast 20823 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,1200,4700,34200,36800,11,2601,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - In Combat - Cast 2601"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Flee For Assist"); + +-- Bloodsail Warlock SAI +SET @ENTRY := 1564; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,31,1,2,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Random Phase Range (1-2)"), +(@ENTRY,0,2,3,1,1,100,1,0,1000,0,0,11,8722,3,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Cast 8722 (Phase 1)"), +(@ENTRY,0,3,0,61,1,100,1,0,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Set Event Phase 0 (Phase 1)"), +(@ENTRY,0,4,5,1,2,100,1,0,1000,0,0,11,11939,3,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Cast 11939 (Phase 2)"), +(@ENTRY,0,5,0,61,2,100,1,0,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Set Event Phase 0 (Phase 2)"), +(@ENTRY,0,6,7,4,0,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - On Aggro - Cast 20825"), +(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - On Aggro - Increment Event Phase"), +(@ENTRY,0,8,0,9,8,100,0,0,40,2400,3800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-40 Range - Cast 20825 (Phase 8)"), +(@ENTRY,0,9,10,3,8,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Mana - Allow Combat Movement (Phase 8)"), +(@ENTRY,0,10,0,61,8,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Mana - Increment Event Phase (Phase 8)"), +(@ENTRY,0,11,0,9,8,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 35-80 Range - Allow Combat Movement (Phase 8)"), +(@ENTRY,0,12,0,9,8,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 5-15 Range - Disallow Combat Movement (Phase 8)"), +(@ENTRY,0,13,0,9,8,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-5 Range - Allow Combat Movement (Phase 8)"), +(@ENTRY,0,14,0,0,8,100,0,6900,20900,15900,15900,11,11980,32,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - In Combat - Cast 11980 (Phase 8)"), +(@ENTRY,0,15,0,3,16,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 30-100% Mana - Decrement Event Phase (Phase 16)"), +(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Flee For Assist"); + +-- Wolf Master Nandos SAI +SET @ENTRY := 3927; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,2,0,100,3,0,80,33700,48800,11,7487,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7487 (Normal Dungeon)"), +(@ENTRY,0,1,0,2,0,100,3,0,80,45400,51700,11,7488,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7488 (Normal Dungeon)"), +(@ENTRY,0,2,0,2,0,100,3,0,80,69500,69500,11,7489,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7489 (Normal Dungeon)"), +(@ENTRY,0,3,0,4,0,100,3,0,0,0,0,34,4,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Aggro - Set Instance Data Field To 4 To Data 1 (Normal Dungeon)"), +(@ENTRY,0,4,0,6,0,100,3,0,0,0,0,34,4,3,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Death - Set Instance Data Field To 4 To Data 3 (Normal Dungeon)"), +(@ENTRY,0,5,0,7,0,100,3,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Evade - Set Instance Data Field To 4 To Data 2 (Normal Dungeon)"); + +-- Fenrus the Devourer SAI +SET @ENTRY := 4274; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,2,2600,7200,23300,49000,11,7125,0,0,0,0,0,5,0,0,0,0,0,0,0,"Fenrus the Devourer - In Combat - Cast 7125 (Normal Dungeon)"), +(@ENTRY,0,1,0,4,0,100,3,0,0,0,0,34,3,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Aggro - Set Instance Data Field To 3 To Data 1 (Normal Dungeon)"), +(@ENTRY,0,2,0,6,0,100,3,0,0,0,0,34,3,3,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Death - Set Instance Data Field To 3 To Data 3 (Normal Dungeon)"), +(@ENTRY,0,3,0,7,0,100,3,0,0,0,0,34,3,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Evade - Set Instance Data Field To 3 To Data 2 (Normal Dungeon)"); + +-- Auchenai Vindicator SAI +SET @ENTRY := 18495; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,2,0,0,600000,600000,11,32861,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - Out Of Combat - Cast 32861 (Normal Dungeon)"), +(@ENTRY,0,1,0,1,0,100,4,0,0,600000,600000,11,38379,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - Out Of Combat - Cast 38379 (Heroic Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,2000,3000,7000,9000,11,17439,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Vindicator - In Combat - Cast 17439 (Normal Dungeon)"), +(@ENTRY,0,3,0,0,0,100,4,2000,3000,7000,9000,11,17289,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Vindicator - In Combat - Cast 17289 (Heroic Dungeon)"), +(@ENTRY,0,4,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32853 (Dungeon Only)"), +(@ENTRY,0,5,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32854 (Dungeon Only)"), +(@ENTRY,0,6,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32855 (Dungeon Only)"), +(@ENTRY,0,7,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32856 (Dungeon Only)"), +(@ENTRY,0,8,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32857 (Dungeon Only)"); + +-- Auchenai Monk SAI +SET @ENTRY := 18497; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,13,0,90,6,8000,10000,0,0,11,32846,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Monk - On Target Casting - Cast 32846 (Dungeon Only)"), +(@ENTRY,0,1,0,0,0,100,6,10000,10000,10000,13000,11,32849,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - In Combat - Cast 32849 (Dungeon Only)"), +(@ENTRY,0,2,0,0,0,100,6,5000,5000,5000,8000,11,37321,0,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Monk - In Combat - Cast 37321 (Dungeon Only)"), +(@ENTRY,0,3,0,1,0,100,6,0,0,180000,180000,11,38168,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - Out Of Combat - Cast 38168 (Dungeon Only)"), +(@ENTRY,0,4,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32853 (Dungeon Only)"), +(@ENTRY,0,5,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32854 (Dungeon Only)"), +(@ENTRY,0,6,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32855 (Dungeon Only)"), +(@ENTRY,0,7,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32856 (Dungeon Only)"), +(@ENTRY,0,8,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32857 (Dungeon Only)"); + +-- Force-Commander Gorax SAI +SET @ENTRY := 19264; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - On Aggro - Cast 33962"), +(@ENTRY,0,1,0,0,0,100,0,500,1000,3800,6400,11,9080,32,0,0,0,0,2,0,0,0,0,0,0,0,"Force-Commander Gorax - In Combat - Cast 9080"), +(@ENTRY,0,2,0,2,0,100,1,0,30,0,0,11,33735,1,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-30% Health - Cast 33735"), +(@ENTRY,0,3,0,0,0,100,0,10000,15000,12000,16000,11,24193,1,0,0,0,0,5,0,0,0,0,0,0,0,"Force-Commander Gorax - In Combat - Cast 24193"), +(@ENTRY,0,4,0,2,0,100,1,0,90,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-90% Health - Cast 33962"), +(@ENTRY,0,5,0,2,0,100,1,0,80,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-80% Health - Cast 33962"), +(@ENTRY,0,6,0,2,0,100,1,0,70,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-70% Health - Cast 33962"), +(@ENTRY,0,7,0,2,0,100,1,0,60,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-60% Health - Cast 33962"), +(@ENTRY,0,8,0,2,0,100,1,0,50,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-50% Health - Cast 33962"), +(@ENTRY,0,9,0,2,0,100,1,0,40,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-40% Health - Cast 33962"), +(@ENTRY,0,10,0,2,0,100,1,0,30,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-30% Health - Cast 33962"), +(@ENTRY,0,11,0,2,0,100,1,0,20,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-20% Health - Cast 33962"), +(@ENTRY,0,12,0,2,0,100,1,0,10,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-10% Health - Cast 33962"), +(@ENTRY,0,13,0,6,0,100,1,0,0,0,0,11,39012,7,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - On Death - Cast 39012"); + +-- Twilight Drakonaar SAI +SET @ENTRY := 20910; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,4,0,100,7,0,0,0,0,34,8,1,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Aggro - Set Instance Data Field To 8 To Data 1 (Dungeon Only)"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,31,1,5,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Aggro - Random Phase Range (1-5) (Dungeon Only)"), +(@ENTRY,0,2,0,6,0,100,7,0,0,0,0,34,8,3,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Death - Set Instance Data Field To 8 To Data 3 (Dungeon Only)"), +(@ENTRY,0,3,0,7,0,100,7,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Evade - Set Instance Data Field To 4 To Data 2 (Dungeon Only)"), +(@ENTRY,0,4,0,0,2,80,2,2000,2000,4000,6000,11,22560,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22560 (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,5,0,0,2,80,4,5000,5000,8000,11500,11,39033,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39033 (Heroic Dungeon) (Phase 1)"), +(@ENTRY,0,6,0,0,4,80,2,3000,3000,8000,12000,11,22559,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22559 (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,7,0,0,4,80,2,1000,1000,12000,15500,11,39037,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39037 (Heroic Dungeon) (Phase 2)"), +(@ENTRY,0,8,0,0,8,90,2,5000,5000,10000,10000,11,22642,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22642 (Normal Dungeon) (Phase 8)"), +(@ENTRY,0,9,0,0,8,80,4,7000,7000,12000,15500,11,39036,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39036 (Heroic Dungeon) (Phase 8)"), +(@ENTRY,0,10,0,0,16,100,6,2000,2000,2000,4000,11,22561,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22561 (Dungeon Only) (Phase 16)"), +(@ENTRY,0,11,0,0,0,85,2,3000,3000,8000,10500,11,22558,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22558 (Normal Dungeon)"), +(@ENTRY,0,12,0,0,0,85,4,6000,6000,12000,14000,11,39034,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39034 (Heroic Dungeon)"); + +-- Iron Rune-Smith SAI +SET @ENTRY := 26408; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,0,1000,3000,33000,36000,11,52701,1,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - In Combat - Cast 52701"), +(@ENTRY,0,1,0,0,0,100,0,5000,8000,9000,13000,11,52699,0,0,0,0,0,2,0,0,0,0,0,0,0,"Iron Rune-Smith - In Combat - Cast 52699"), +(@ENTRY,0,2,0,6,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - On Death - Set Event Phase 1"), +(@ENTRY,0,3,4,8,1,100,1,48046,0,0,0,11,48047,0,0,0,0,0,7,0,0,0,0,0,0,0,"Iron Rune-Smith - On Spellhit By 48046 - Quest Credit (Phase 1)"), +(@ENTRY,0,4,0,61,1,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - On Spellhit By 48046 - Forced Despawn (Phase 1)"); + +-- Dragonflayer Huscarl SAI +SET @ENTRY := 27260; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,9,0,100,0,0,5,6000,9000,11,40505,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - Between 0-5 Range - Cast 40505"), +(@ENTRY,0,1,0,0,0,100,0,17000,23000,20000,23000,11,52223,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 52223"), +(@ENTRY,0,2,0,0,0,100,0,6000,9000,12000,15000,11,49807,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 49807"), +(@ENTRY,0,3,0,0,0,100,0,1000,3000,14000,20000,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 13730"), +(@ENTRY,0,4,0,9,0,100,0,0,5,10000,16000,11,6713,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - Between 0-5 Range - Cast 6713"), +(@ENTRY,0,5,0,13,0,100,0,14000,17000,0,0,11,12555,0,0,0,0,0,7,0,0,0,0,0,0,0,"Dragonflayer Huscarl - On Target Casting - Cast 12555"); + +-- Acolyte SAI +SET @ENTRY := 27731; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,9,0,100,2,0,8,14000,19000,11,20828,1,0,0,0,0,1,0,0,0,0,0,0,0,"Acolyte - Between 0-8 Range - Cast 20828 (Normal Dungeon)"), +(@ENTRY,0,1,0,9,0,100,4,0,8,14000,19000,11,15244,1,0,0,0,0,1,0,0,0,0,0,0,0,"Acolyte - Between 0-8 Range - Cast 15244 (Heroic Dungeon)"), +(@ENTRY,0,2,0,9,0,100,2,0,20,8000,13000,11,20832,0,0,0,0,0,2,0,0,0,0,0,0,0,"Acolyte - Between 0-20 Range - Cast 20832 (Normal Dungeon)"), +(@ENTRY,0,3,0,9,0,100,4,0,20,8000,13000,11,14145,0,0,0,0,0,2,0,0,0,0,0,0,0,"Acolyte - Between 0-20 Range - Cast 14145 (Heroic Dungeon)"), +(@ENTRY,0,4,0,0,0,100,2,4000,8000,7000,10000,11,17439,0,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 17439 (Normal Dungeon)"), +(@ENTRY,0,5,0,0,0,100,4,4000,8000,7000,10000,11,17234,0,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 17234 (Heroic Dungeon)"), +(@ENTRY,0,6,0,0,0,100,2,6000,10000,20000,30000,11,39621,32,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 39621 (Normal Dungeon)"), +(@ENTRY,0,7,0,0,0,100,4,6000,10000,20000,30000,11,58811,32,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 58811 (Heroic Dungeon)"), +(@ENTRY,0,8,0,0,0,100,2,11000,15000,35000,45000,11,14875,1,0,0,0,0,6,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 14875 (Normal Dungeon)"), +(@ENTRY,0,9,0,0,0,100,4,11000,15000,35000,45000,11,46190,1,0,0,0,0,6,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 46190 (Heroic Dungeon)"); + +-- Stratholme Citizen SAI +SET @ENTRY := 28340; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,9,0,100,6,0,5,9000,13000,11,52633,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stratholme Citizen - Between 0-5 Range - Cast 52633 (Dungeon Only)"), +(@ENTRY,0,1,0,0,0,100,6,9000,15000,12000,18000,11,52636,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 52636 (Dungeon Only)"), +(@ENTRY,0,2,0,0,0,100,2,16000,21000,21000,29000,11,52634,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 52634 (Normal Dungeon)"), +(@ENTRY,0,3,0,0,0,100,4,16000,21000,21000,29000,11,58813,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 58813 (Heroic Dungeon)"), +(@ENTRY,0,4,0,8,0,100,2,0,127,0,0,11,52635,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - On Spellhit By 0 - Cast 52635 (Normal Dungeon)"), +(@ENTRY,0,5,0,8,0,100,4,0,127,0,0,11,58820,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - On Spellhit By 0 - Cast 58820 (Heroic Dungeon)"); + +-- Nerubian Cocoon SAI +SET @ENTRY := 28413; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,11,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Disallow Combat Movement"), +(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,18,2097152,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Set Disarmed Flag"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Increment Event Phase"), +(@ENTRY,0,3,0,6,0,40,1,0,0,0,0,11,51599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Summon Creature Captive Footman"), +(@ENTRY,0,4,0,6,0,40,1,0,0,0,0,33,28415,0,0,0,0,0,7,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Quest Credit"), +(@ENTRY,0,5,0,6,0,40,1,0,0,0,0,11,51597,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Summon Creature Drakkari Captive"), +(@ENTRY,0,6,0,6,0,20,1,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Forced Despawn"); + +-- Elemental Rift SAI +SET @ENTRY := 28452; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,11,0,100,1,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - On Respawn - Stop Auto Attack"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - On Respawn - Disallow Combat Movement"), +(@ENTRY,0,2,0,0,0,100,1,1000,1000,0,0,11,12058,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 12058"), +(@ENTRY,0,3,0,0,0,100,1,5000,5000,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 9672"), +(@ENTRY,0,4,0,0,0,100,1,10000,10000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"), +(@ENTRY,0,5,0,0,0,100,1,40000,40000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"), +(@ENTRY,0,6,0,0,0,100,1,70000,70000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"); + +-- Impale Target SAI +SET @ENTRY := 29184; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,11,0,100,7,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - On Respawn - Stop Auto Attack (Dungeon Only)"), +(@ENTRY,0,1,0,0,0,100,7,100,100,0,0,11,53455,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 53455 (Dungeon Only)"), +(@ENTRY,0,2,3,9,0,100,7,0,1,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - Between 0-1 Range - Disallow Combat Movement (Dungeon Only)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - Between 0-1 Range - Set Event Phase 1 (Dungeon Only)"), +(@ENTRY,0,4,0,0,0,100,3,3000,3000,0,0,11,53454,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 53454 (Normal Dungeon)"), +(@ENTRY,0,5,0,0,0,100,5,3000,3000,0,0,11,59446,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 59446 (Heroic Dungeon)"), +(@ENTRY,0,6,0,0,0,100,7,4000,5000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Forced Despawn (Dungeon Only)"); + +-- Dragonblight Mage Hunter SAI +SET @ENTRY := 32572; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,8,0,100,0,0,4,12000,15000,11,51758,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 4 - Cast 51758"), +(@ENTRY,0,1,0,8,0,100,0,0,16,12000,15000,11,51763,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 16 - Cast 51763"), +(@ENTRY,0,2,0,8,0,100,0,0,32,12000,15000,11,51764,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 32 - Cast 51764"), +(@ENTRY,0,3,0,8,0,100,0,0,64,12000,15000,11,51766,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 64 - Cast 51766"); + +-- North Sea Kraken SAI +SET @ENTRY := 34925; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Aggro - Set Event Phase 1"), +(@ENTRY,0,1,0,0,0,100,1,6000,9000,7000,9000,11,66514,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - In Combat - Cast 66514"), +(@ENTRY,0,2,0,8,1,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 1)"), +(@ENTRY,0,3,0,8,1,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 1)"), +(@ENTRY,0,4,0,8,2,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 2)"), +(@ENTRY,0,5,0,8,8,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 8)"), +(@ENTRY,0,6,0,8,16,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 16)"), +(@ENTRY,0,7,8,8,31,100,1,66588,0,0,0,11,66717,1,0,0,0,0,7,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Cast 66717"), +(@ENTRY,0,8,0,61,31,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Forced Despawn"); + +-- Bloodsail Elder Magus SAI +SET @ENTRY := 1653; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - On Aggro - Cast 20823"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-40 Range - Cast 20823 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,28700,28700,45200,45200,11,20827,1,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - In Combat - Cast 20827"), +(@ENTRY,0,11,0,0,0,100,0,14900,14900,43000,43000,11,11969,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - In Combat - Cast 11969"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Flee For Assist"); + +-- Defias Watchman SAI +SET @ENTRY := 1725; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Out Of Combat - Stop Auto Attack (Normal Dungeon)"), +(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Watchman - On Aggro - Cast 6660 (Normal Dungeon)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - On Aggro - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,4,5,9,1,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Watchman - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,8,10,9,1,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,13,14,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Flee For Assist (Normal Dungeon)"), +(@ENTRY,0,16,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - On Evade - Set Sheath Melee (Normal Dungeon)"); + +-- Defias Magician SAI +SET @ENTRY := 1726; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,1,0,1,0,100,1,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Out Of Combat - Cast 12544 (Normal Dungeon)"), +(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Magician - On Aggro - Cast 9053 (Normal Dungeon)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - On Aggro - Increment Event Phase (Normal Dungeon)"), +(@ENTRY,0,4,0,9,1,100,2,0,40,4000,6600,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Magician - Between 0-40 Range - Cast 9053 (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,5,6,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,10,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"), +(@ENTRY,0,11,0,0,0,100,2,0,0,23200,38500,11,5110,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - In Combat - Cast 5110 (Normal Dungeon)"), +(@ENTRY,0,12,13,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Flee For Assist (Normal Dungeon)"); + +-- Skeletal Sorcerer SAI +SET @ENTRY := 1784; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Sorcerer - On Aggro - Cast 9672"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-40 Range - Cast 9672 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,0,0,100,0,4000,8000,12000,20000,11,11969,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - In Combat - Cast 11969"); + +-- Skeletal Acolyte SAI +SET @ENTRY := 1789; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Acolyte - On Aggro - Cast 20825"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,1500,2800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-40 Range - Cast 20825 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,0,0,100,0,5000,8000,11000,15000,11,14887,0,0,0,0,0,5,0,0,0,0,0,0,0,"Skeletal Acolyte - In Combat - Cast 14887"), +(@ENTRY,0,11,0,2,0,100,1,0,30,0,0,11,16588,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-30% Health - Cast 16588"); + +-- Scarlet Mage SAI +SET @ENTRY := 1826; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20822,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - On Aggro - Cast 20822"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-40 Range - Cast 20823 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,9000,12000,9000,12000,11,20822,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - In Combat - Cast 20822"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Flee For Assist"); + +-- Scarlet Hunter SAI +SET @ENTRY := 1831; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Out Of Combat - Stop Auto Attack"), +(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Hunter - On Aggro - Cast 6660"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - On Aggro - Increment Event Phase"), +(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), +(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"), +(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"), +(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"), +(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Increment Event Phase"), +(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Flee For Assist"), +(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - On Evade - Set Sheath Melee"); + +-- Scarlet Magus SAI +SET @ENTRY := 1832; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - On Aggro - Cast 9053"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-40 Range - Cast 9053 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,5000,10000,14000,19000,11,17203,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - In Combat - Cast 17203"), +(@ENTRY,0,11,0,0,0,100,0,10000,12000,18000,25000,11,15744,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - In Combat - Cast 15744"), +(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Flee For Assist"); + +-- Araj the Summoner SAI +SET @ENTRY := 1852; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Araj the Summoner - On Aggro - Cast 15497"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-40 Range - Cast 15497 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 30-100% Mana - Decrement Event Phase"), +(@ENTRY,0,10,0,0,0,100,0,5000,8000,14000,20000,11,15532,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - In Combat - Cast 15532"), +(@ENTRY,0,11,0,0,0,100,0,18000,24000,50000,65000,11,17231,1,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - In Combat - Cast 17231"), +(@ENTRY,0,12,0,6,0,100,1,0,0,0,0,11,18661,7,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - On Death - Cast 18661"); + +-- Deeb SAI +SET @ENTRY := 1911; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - On Aggro - Cast 9532"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - On Aggro - Increment Event Phase"), +(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - Between 0-40 Range - Cast 9532 (Phase 1)"), +(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,10,0,0,0,100,0,2000,6000,6000,10000,11,2607,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - In Combat - Cast 2607"), +(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Set Event Phase 3"), +(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Flee For Assist"); + +-- Rift Keeper SAI +SET @ENTRY := 21104; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,7,0,0,0,0,30,1,1,2,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - On Aggro - Set Random Phase (Dungeon Only)"), +(@ENTRY,0,1,0,0,0,20,7,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Say Line 0 (Dungeon Only)"), +(@ENTRY,0,2,0,0,1,100,2,0,0,7300,16900,11,36279,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36279 (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,3,0,0,1,100,4,0,0,2400,3600,11,38534,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 38534 (Heroic Dungeon) (Phase 1)"), +(@ENTRY,0,4,0,0,1,100,2,12400,12400,13900,14500,11,36277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36277 (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,5,0,0,1,100,4,18200,29300,14400,25200,11,38535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 38535 (Heroic Dungeon) (Phase 1)"), +(@ENTRY,0,6,0,0,1,100,2,9800,9800,13400,13400,11,36278,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36278 (Normal Dungeon) (Phase 1)"), +(@ENTRY,0,7,0,0,1,100,4,11100,31400,15800,27700,11,38536,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 38536 (Heroic Dungeon) (Phase 1)"), +(@ENTRY,0,8,0,0,1,100,4,13300,34500,27500,27500,11,13323,0,0,0,0,0,6,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 13323 (Heroic Dungeon) (Phase 1)"), +(@ENTRY,0,9,0,0,0,100,2,7200,12200,11900,29600,11,36275,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36275 (Normal Dungeon)"), +(@ENTRY,0,10,0,0,0,100,4,7200,12000,11100,24200,11,38533,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 38533 (Heroic Dungeon)"), +(@ENTRY,0,11,0,0,0,100,2,7300,19500,20300,45900,11,36276,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36276 (Normal Dungeon)"), +(@ENTRY,0,12,0,0,0,100,4,6200,21500,12000,21700,11,36276,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36276 (Heroic Dungeon)"), +(@ENTRY,0,13,0,0,0,100,6,2500,26300,16900,25300,11,12542,0,0,0,0,0,5,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 12542 (Dungeon Only)"), +(@ENTRY,0,14,0,2,0,100,7,0,30,0,0,11,8269,1,0,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - Between 0-30% Health - Cast 8269 (Dungeon Only)"); + +-- Torturer LeCraft SAI +SET @ENTRY := 27209; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Aggro - Say Line 0"), +(@ENTRY,0,1,0,0,0,100,0,5000,8000,12000,168000,11,30478,0,0,0,0,0,2,0,0,0,0,0,0,0,"Torturer LeCraft - In Combat - Cast 30478"), +(@ENTRY,0,2,0,0,0,100,0,12000,15000,20000,26000,11,30621,0,0,0,0,0,2,0,0,0,0,0,0,0,"Torturer LeCraft - In Combat - Cast 30621"), +(@ENTRY,0,3,4,8,1,100,1,48603,0,0,0,1,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 1 (Phase 1)"), +(@ENTRY,0,4,0,61,1,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 1)"), +(@ENTRY,0,5,6,8,2,100,1,48603,0,0,0,1,2,0,0,0,0,0,7,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 2 (Phase 2)"), +(@ENTRY,0,6,0,61,2,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 2)"), +(@ENTRY,0,7,8,8,4,100,1,48603,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 3 (Phase 3)"), +(@ENTRY,0,8,0,61,4,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 3)"), +(@ENTRY,0,9,10,8,8,100,1,48603,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 4 (Phase 4)"), +(@ENTRY,0,10,0,61,8,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 4)"), +(@ENTRY,0,11,13,8,16,100,1,48603,0,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 5 (Phase 5)"), +(@ENTRY,0,12,0,61,16,100,1,48603,0,0,0,33,27394,0,0,0,0,0,7,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Quest Credit (Phase 5)"), +(@ENTRY,0,13,0,61,16,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 5)"), +(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Evade - Set Sheath Melee"); + +-- Scarlet Medic SAI +SET @ENTRY := 28608; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Out Of Combat - Disallow Combat Movement"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,13864,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Out Of Combat - Cast 13864"), +(@ENTRY,0,2,3,4,0,20,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - On Aggro - Say Line 0"), +(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,11,15498,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Medic - On Aggro - Cast 15498"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - On Aggro - Increment Event Phase"), +(@ENTRY,0,5,0,9,1,100,0,0,40,3400,4800,11,15498,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-40 Range - Cast 15498 (Phase 1)"), +(@ENTRY,0,6,7,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-7% Mana - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-7% Mana - Increment Event Phase (Phase 1)"), +(@ENTRY,0,8,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 35-80 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,9,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), +(@ENTRY,0,10,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-5 Range - Allow Combat Movement (Phase 1)"), +(@ENTRY,0,11,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 15-100% Mana - Decrement Event Phase (Phase 2)"), +(@ENTRY,0,12,13,1,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-15% Health - Set Event Phase 3 (Phase 1)"), +(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-15% Health - Allow Combat Movement"), +(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-15% Health - Flee For Assist"); + + diff --git a/sql/updates/world/2013_11_17_0_world_sai.sql b/sql/updates/world/2013_11_17_0_world_sai.sql deleted file mode 100644 index 2e36825001f..00000000000 --- a/sql/updates/world/2013_11_17_0_world_sai.sql +++ /dev/null @@ -1,1918 +0,0 @@ --- Barak Kodobane SAI -SET @ENTRY := 3394; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,0,0,0,100,0,2000,5000,12000,15000,11,6533,0,0,0,0,0,2,0,0,0,0,0,0,0,"Barak Kodobane - In Combat - Cast 6533"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Barak Kodobane - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Barak Kodobane - On Evade - Set Sheath Melee"); - --- Nak SAI -SET @ENTRY := 3434; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nak - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Nak - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,2,0,100,0,0,100,17500,22500,11,8004,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - Between 0-100% Health - Cast 8004"), -(@ENTRY,0,11,0,0,0,100,1,6000,12000,0,0,11,8154,1,0,0,0,0,1,0,0,0,0,0,0,0,"Nak - In Combat - Cast 8154"); - --- Kuz SAI -SET @ENTRY := 3436; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - On Aggro - Cast 20792"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - Between 0-40 Range - Cast 20792 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kuz - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,5000,9000,9000,12000,11,20795,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - In Combat - Cast 20795"), -(@ENTRY,0,11,0,0,0,100,0,8000,12000,12000,16000,11,11831,1,0,0,0,0,2,0,0,0,0,0,0,0,"Kuz - In Combat - Cast 11831"); - --- Razormane Pathfinder SAI -SET @ENTRY := 3456; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,0,0,0,100,0,4000,6000,5000,7000,11,3391,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Pathfinder - In Combat - Cast 3391"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Pathfinder - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Pathfinder - On Evade - Set Sheath Melee"); - --- Delmanis the Hated SAI -SET @ENTRY := 3662; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - On Aggro - Cast 20792"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-40 Range - Cast 20792 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,6000,10000,12000,16000,11,7101,1,0,0,0,0,2,0,0,0,0,0,0,0,"Delmanis the Hated - In Combat - Cast 7101"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Delmanis the Hated - Between 0-15% Health - Flee For Assist"); - --- Ilkrud Magthrull SAI -SET @ENTRY := 3664; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,8722,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Out Of Combat - Cast 8722"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ilkrud Magthrull - On Aggro - Cast 20791"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,0,9,1,100,0,0,40,3400,4800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-40 Range - Cast 20791 (Phase 1)"), -(@ENTRY,0,6,7,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,11,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 15-100% Mana - Decrement Event Phase"), -(@ENTRY,0,12,0,2,0,100,0,0,50,66500,76300,11,6487,1,0,0,0,0,1,0,0,0,0,0,0,0,"Ilkrud Magthrull - Between 0-50% Health - Cast 6487"); - --- Boahn SAI -SET @ENTRY := 3672; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,1,2,4,0,100,3,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Boahn - On Aggro - Cast 9532 (Normal Dungeon)"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - On Aggro - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,3,0,9,1,100,2,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Boahn - Between 0-40 Range - Cast 9532 (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,10,0,2,0,100,2,0,40,30000,40000,11,5187,1,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-40% Health - Cast 5187 (Normal Dungeon)"), -(@ENTRY,0,11,12,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Boahn - Between 0-15% Health - Flee For Assist (Normal Dungeon)"); - --- Raene Wolfrunner SAI -SET @ENTRY := 3691; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,5,30,9000,13000,11,21390,0,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 21390 (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,5,30,12000,16000,11,15495,0,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Cast 15495 (Phase 1)"), -(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,10,11,0,1,100,0,18000,25000,60000,70000,11,22908,1,0,0,0,0,5,0,0,0,0,0,0,0,"Raene Wolfrunner - In Combat - Cast 22908 (Phase 1)"), -(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - In Combat - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,12,13,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,14,15,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,15,16,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,16,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,17,18,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,18,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,19,0,9,0,100,0,0,20,11000,13000,11,6533,1,0,0,0,0,2,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-20 Range - Cast 6533"), -(@ENTRY,0,20,21,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,21,22,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,22,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Raene Wolfrunner - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,23,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Raene Wolfrunner - On Evade - Set Sheath Melee"); - --- Ran Bloodtooth SAI -SET @ENTRY := 3696; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ran Bloodtooth - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,5,30,9000,14000,11,14443,0,0,0,0,0,5,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Cast 14443 (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,10,11,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,11,12,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,14,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Ran Bloodtooth - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ran Bloodtooth - On Evade - Set Sheath Melee"); - --- Wrathtail Sea Witch SAI -SET @ENTRY := 3715; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,8598,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - On Aggro - Cast 8598"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,30,3500,5000,11,8598,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-30 Range - Cast 8598 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 25-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,0,9,0,100,0,0,10,20900,33500,11,2691,1,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-10 Range - Cast 2691"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrathtail Sea Witch - Between 0-15% Health - Flee For Assist"); - --- Wrathtail Sorceress SAI -SET @ENTRY := 3717; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sorceress - On Aggro - Cast 20792"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,20792,0,0,0,0,0,2,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-40 Range - Cast 20792 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 25-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,0,0,0,100,0,4500,15700,14100,32600,11,11831,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - In Combat - Cast 11831"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrathtail Sorceress - Between 0-15% Health - Flee For Assist"); - --- Dark Strand Cultist SAI -SET @ENTRY := 3725; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Out Of Combat - Cast 11939"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Cultist - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,3900,5900,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-40 Range - Cast 20791 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Cultist - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,11,0,0,0,100,0,3700,4600,10900,11300,11,6222,32,0,0,0,0,5,0,0,0,0,0,0,0,"Dark Strand Cultist - In Combat - Cast 6222"); - --- Dark Strand Adept SAI -SET @ENTRY := 3728; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Out Of Combat - Cast 12746"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Adept - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,1,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,3400,5800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-40 Range - Cast 20791 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Strand Adept - Between 0-15% Health - Flee For Assist"); - --- Apothecary Falthis SAI -SET @ENTRY := 3735; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Apothecary Falthis - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-40 Range - Cast 20791 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-7% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-7% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 15-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Apothecary Falthis - Between 0-15% Health - Flee For Assist"); - --- Saltspittle Muckdweller SAI -SET @ENTRY := 3740; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-30 Range - Cast 10277 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Saltspittle Muckdweller - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Saltspittle Muckdweller - On Evade - Set Sheath Melee"); - --- Foulweald Pathfinder SAI -SET @ENTRY := 3745; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,1,0,100,1,0,0,0,0,11,6820,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Out Of Combat - Cast 6820"), -(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Aggro - Cast 6660"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,6,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Foulweald Pathfinder - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Foulweald Pathfinder - On Evade - Set Sheath Melee"); - --- Xavian Hellcaller SAI -SET @ENTRY := 3757; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Xavian Hellcaller - On Aggro - Cast 9053"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,4700,5800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-40 Range - Cast 9053 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-7% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-7% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 15-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,11,6925,1,0,0,0,0,1,0,0,0,0,0,0,0,"Xavian Hellcaller - Between 0-15% Health - Cast 6925"); - --- Severed Druid SAI -SET @ENTRY := 3799; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Severed Druid - On Aggro - Cast 9739"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,3400,4800,11,9739,0,0,0,0,0,2,0,0,0,0,0,0,0,"Severed Druid - Between 0-40 Range - Cast 9739 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,0,100,0,25,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 25-100% Mana - Decrement Event Phase"), -(@ENTRY,0,11,0,2,0,100,0,0,75,20600,80800,11,1430,1,0,0,0,0,1,0,0,0,0,0,0,0,"Severed Druid - Between 0-75% Health - Cast 1430"); - --- Forsaken Dark Stalker SAI -SET @ENTRY := 3808; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,0,11,0,100,1,0,0,0,0,11,8218,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Respawn - Cast 8218"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Aggro - Cast 10277"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,6,9,1,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-30 Range - Cast 10277 (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Forsaken Dark Stalker - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Forsaken Dark Stalker - On Evade - Set Sheath Melee"); - --- Thistlefur Pathfinder SAI -SET @ENTRY := 3926; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,0,11,0,100,1,0,0,0,0,11,6813,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Respawn - Cast 6813"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Aggro - Cast 6660"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,6,9,1,100,0,5,30,2300,2800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Thistlefur Pathfinder - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thistlefur Pathfinder - On Evade - Set Sheath Melee"); - --- Bloodfury Storm Witch SAI -SET @ENTRY := 4027; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfury Storm Witch - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,0,0,100,0,6000,10000,40000,45000,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfury Storm Witch - In Combat - Cast 6535"); - --- Daughter of Cenarius SAI -SET @ENTRY := 4053; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-30 Range - Cast 10277 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,0,0,0,100,0,6000,6000,10000,12000,11,527,1,0,0,0,0,2,0,0,0,0,0,0,0,"Daughter of Cenarius - In Combat - Cast 527"), -(@ENTRY,0,14,0,0,0,100,0,4500,4500,6000,10000,11,527,1,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - In Combat - Cast 527"), -(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Daughter of Cenarius - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Daughter of Cenarius - On Evade - Set Sheath Melee"); - --- Shadow Sprite SAI -SET @ENTRY := 2003; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shadow Sprite - On Aggro - Cast 9613"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-40 Range - Cast 9613 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shadow Sprite - Between 30-100% Mana - Decrement Event Phase"); - --- Bloodfeather Matriarch SAI -SET @ENTRY := 2021; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfeather Matriarch - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,2,0,100,0,0,50,18000,24000,11,332,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodfeather Matriarch - Between 0-50% Health - Cast 332"); - --- Greymist Oracle SAI -SET @ENTRY := 2207; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greymist Oracle - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,14,0,100,0,190,40,30000,45000,11,913,0,0,0,0,0,7,0,0,0,0,0,0,0,"Greymist Oracle - On Friendly Unit At 190 Health Within 40 Range - Cast 913"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Greymist Oracle - Between 0-15% Health - Flee For Assist"); - --- Dark Strand Voidcaller SAI -SET @ENTRY := 2337; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Out Of Combat - Cast 12746"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Voidcaller - On Aggro - Cast 20807"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-40 Range - Cast 20807 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Strand Voidcaller - Between 0-15% Health - Flee For Assist"); - --- Captain Keelhaul SAI -SET @ENTRY := 2548; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,9,0,100,0,5,30,15600,32700,11,7896,1,0,0,0,0,2,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Cast 7896"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 5-30 Range - Set Sheath Ranged"), -(@ENTRY,0,15,0,0,0,100,0,1200,3200,17200,25200,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - In Combat - Cast 13730"), -(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Captain Keelhaul - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,19,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Captain Keelhaul - On Evade - Set Sheath Melee"); - --- Vilebranch Axe Thrower SAI -SET @ENTRY := 2639; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vilebranch Axe Thrower - On Evade - Set Sheath Melee"); - --- Bristleback Shaman SAI -SET @ENTRY := 2953; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Shaman - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Shaman - Between 30-100% Mana - Decrement Event Phase"); - --- Vile Familiar SAI -SET @ENTRY := 3101; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,11921,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Familiar - On Aggro - Cast 11921"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,4800,6800,11,11921,0,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Familiar - Between 0-40 Range - Cast 11921 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vile Familiar - Between 0-15% Health - Flee For Assist"); - --- Razormane Scout SAI -SET @ENTRY := 3112; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Scout - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Scout - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Scout - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Scout - On Evade - Set Sheath Melee"); - --- Dustwind Storm Witch SAI -SET @ENTRY := 3118; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dustwind Storm Witch - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dustwind Storm Witch - Between 0-15% Health - Flee For Assist"); - --- Kolkar Outrunner SAI -SET @ENTRY := 3120; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Outrunner - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Outrunner - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Outrunner - On Evade - Set Sheath Melee"); - --- Burning Blade Apprentice SAI -SET @ENTRY := 3198; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Out Of Combat - Cast 12746"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Apprentice - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-40 Range - Cast 20791 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Burning Blade Apprentice - Between 0-15% Health - Flee For Assist"); - --- Fizzle Darkstorm SAI -SET @ENTRY := 3203; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Out Of Combat - Cast 11939"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - On Aggro - Cast 20791"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-40 Range - Cast 20791 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,0,2,0,100,0,0,50,20000,30000,11,7290,1,0,0,0,0,2,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-50% Health - Cast 7290"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Fizzle Darkstorm - Between 0-15% Health - Flee For Assist"); - --- Gazz'uz SAI -SET @ENTRY := 3204; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,20798,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Cast 20798"), -(@ENTRY,0,2,0,1,0,100,1,3000,3000,0,0,11,12746,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Out Of Combat - Cast 12746"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - On Aggro - Cast 20791"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,0,9,1,100,0,0,40,3400,5200,11,20791,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - Between 0-40 Range - Cast 20791 (Phase 1)"), -(@ENTRY,0,6,7,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,11,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,12,0,0,0,100,0,5000,8000,30000,45000,11,172,1,0,0,0,0,2,0,0,0,0,0,0,0,"Gazz'uz - In Combat - Cast 172"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Gazz'uz - Between 0-15% Health - Flee For Assist"); - --- Thunderhawk Hatchling SAI -SET @ENTRY := 3247; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,600000,600000,11,325,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Out Of Combat - Cast 325"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thunderhawk Hatchling - On Aggro - Cast 9532"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Thunderhawk Hatchling - Between 30-100% Mana - Decrement Event Phase"); - --- Bristleback Hunter SAI -SET @ENTRY := 3258; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Hunter - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,0,0,1,100,0,9000,14000,9000,14000,11,8806,32,0,0,0,0,5,0,0,0,0,0,0,0,"Bristleback Hunter - In Combat - Cast 8806 (Phase 1)"), -(@ENTRY,0,14,0,0,1,100,0,9000,14000,9000,14000,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - In Combat - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bristleback Hunter - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Hunter - On Evade - Set Sheath Melee"); - --- Bristleback Geomancer SAI -SET @ENTRY := 3263; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - On Aggro - Cast 20793"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-40 Range - Cast 20793 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,8000,13000,18000,25000,11,20794,1,0,0,0,0,2,0,0,0,0,0,0,0,"Bristleback Geomancer - In Combat - Cast 20794"), -(@ENTRY,0,11,0,0,0,100,0,5000,6500,17000,22000,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - In Combat - Cast 4979"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bristleback Geomancer - Between 0-15% Health - Flee For Assist"); - --- Razormane Hunter SAI -SET @ENTRY := 3265; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Hunter - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,6,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Hunter - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Hunter - On Evade - Set Sheath Melee"); - --- Razormane Geomancer SAI -SET @ENTRY := 3269; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Out Of Combat - Cast 12544"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Geomancer - On Aggro - Cast 20793"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-40 Range - Cast 20793 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Razormane Geomancer - Between 0-15% Health - Flee For Assist"); - --- Kolkar Wrangler SAI -SET @ENTRY := 3272; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,0,0,0,100,0,4000,6000,9000,14000,11,12024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Wrangler - In Combat - Cast 12024"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Wrangler - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Wrangler - On Evade - Set Sheath Melee"); - --- Kolkar Stormer SAI -SET @ENTRY := 3273; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,6535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Stormer - On Aggro - Cast 6535"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,11,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,11,12,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kolkar Stormer - Between 0-15% Health - Flee For Assist"); - --- Bael'dun Rifleman SAI -SET @ENTRY := 3377; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bael'dun Rifleman - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bael'dun Rifleman - On Evade - Set Sheath Melee"); - --- Defias Renegade Mage SAI -SET @ENTRY := 450; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Renegade Mage - On Aggro - Cast 20793"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,3400,4700,11,20793,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-40 Range - Cast 20793 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,19200,21200,63900,68200,11,134,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - In Combat - Cast 134"), -(@ENTRY,0,11,0,0,0,100,0,16400,18400,12300,17200,11,4979,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - In Combat - Cast 4979"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Renegade Mage - Between 0-15% Health - Flee For Assist"); - --- Murloc Minor Oracle SAI -SET @ENTRY := 456; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,3600,5100,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,14,0,100,0,130,40,30900,39000,11,332,1,0,0,0,0,7,0,0,0,0,0,0,0,"Murloc Minor Oracle - On Friendly Unit At 130 Health Within 40 Range - Cast 332"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murloc Minor Oracle - Between 0-15% Health - Flee For Assist"); - --- Murloc Hunter SAI -SET @ENTRY := 458; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,0,1,0,100,1,1000,1000,0,0,11,8656,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Out Of Combat - Cast 8656"), -(@ENTRY,0,3,4,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Hunter - On Aggro - Cast 10277"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,6,9,1,100,0,5,30,2900,4800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-30 Range - Cast 10277 (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,7,8,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,9,10,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,11,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,11,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,12,13,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,13,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murloc Hunter - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Murloc Hunter - On Evade - Set Sheath Melee"); - --- Marisa du'Paige SAI -SET @ENTRY := 599; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - On Aggro - Cast 9053"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,3400,5400,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-40 Range - Cast 9053 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,12000,19000,35000,48000,11,700,0,0,0,0,0,5,0,0,0,0,0,0,0,"Marisa du'Paige - In Combat - Cast 700"), -(@ENTRY,0,11,0,0,0,80,0,18000,25000,25000,35000,11,228,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - In Combat - Cast 228"), -(@ENTRY,0,12,0,2,0,100,0,0,50,35000,35000,11,512,0,0,0,0,0,2,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-50% Health - Cast 512"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Marisa du'Paige - Between 0-15% Health - Flee For Assist"); - --- Defias Conjurer SAI -SET @ENTRY := 619; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Cast 12544"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - On Aggro - Cast 9053"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-40 Range - Cast 9053 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Flee For Assist"); - --- Goblin Engineer SAI -SET @ENTRY := 622; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Out Of Combat - Stop Auto Attack (Normal Dungeon)"), -(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Goblin Engineer - On Aggro - Cast 6660 (Normal Dungeon)"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - On Aggro - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,4,5,9,1,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,13,0,0,0,100,2,500,4500,67800,89000,11,3605,1,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - In Combat - Cast 3605 (Normal Dungeon)"), -(@ENTRY,0,14,15,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Goblin Engineer - Between 0-15% Health - Flee For Assist (Normal Dungeon)"), -(@ENTRY,0,17,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Goblin Engineer - On Evade - Set Sheath Melee (Normal Dungeon)"); - --- Skullsplitter Axe Thrower SAI -SET @ENTRY := 696; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-30 Range - Cast 10277 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,0,0,0,100,0,5000,7000,23000,26000,11,3148,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - In Combat - Cast 3148"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Axe Thrower - On Evade - Set Sheath Melee"); - --- Bloodscalp Mystic SAI -SET @ENTRY := 701; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Aggro - Cast 10277"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,1500,2500,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-40 Range - Cast 10277 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,14,0,100,1,500,40,0,0,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Bloodscalp Mystic - On Friendly Unit At 500 Health Within 40 Range - Cast 11986"), -(@ENTRY,0,11,0,0,0,100,0,3000,4000,25000,30000,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - In Combat - Cast 4979"), -(@ENTRY,0,12,0,2,0,100,1,0,30,0,0,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-30% Health - Cast 8599"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodscalp Mystic - Between 0-15% Health - Flee For Assist"); - --- Skullsplitter Mystic SAI -SET @ENTRY := 780; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,1500,2500,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,14,0,100,1,700,40,0,0,11,11986,1,0,0,0,0,7,0,0,0,0,0,0,0,"Skullsplitter Mystic - On Friendly Unit At 700 Health Within 40 Range - Cast 11986"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skullsplitter Mystic - Between 0-15% Health - Flee For Assist"); - --- Kurzen Headshrinker SAI -SET @ENTRY := 941; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - On Aggro - Cast 9613"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,3500,4700,11,9613,0,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-40 Range - Cast 9613 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,2400,10800,39000,39500,11,7289,1,0,0,0,0,2,0,0,0,0,0,0,0,"Kurzen Headshrinker - In Combat - Cast 7289"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kurzen Headshrinker - Between 0-15% Health - Flee For Assist"); - --- Dragonmaw Shadowwarder SAI -SET @ENTRY := 1038; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - On Aggro - Cast 20807"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,3500,6400,11,20807,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-40 Range - Cast 20807 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,0,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,0,0,100,0,2200,6200,20200,31000,11,6223,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - In Combat - Cast 6223"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dragonmaw Shadowwarder - Between 0-15% Health - Flee For Assist"); - --- Lost Whelp SAI -SET @ENTRY := 1043; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lost Whelp - On Aggro - Cast 11839"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,3600,5300,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lost Whelp - Between 0-40 Range - Cast 11839 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Lost Whelp - Between 30-100% Mana - Decrement Event Phase"); - --- Flamesnorting Whelp SAI -SET @ENTRY := 1044; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Flamesnorting Whelp - On Aggro - Cast 11839"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,3600,5300,11,11839,0,0,0,0,0,2,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-40 Range - Cast 11839 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Flamesnorting Whelp - Between 30-100% Mana - Decrement Event Phase"); - --- Venture Co. Geologist SAI -SET @ENTRY := 1096; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Geologist - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,5400,9600,24000,37200,11,184,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - In Combat - Cast 184"), -(@ENTRY,0,11,0,2,0,100,0,0,50,10100,19800,11,4979,1,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-50% Health - Cast 4979"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,1,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Venture Co. Geologist - Between 0-15% Health - Flee For Assist"); - --- Venture Co. Mechanic SAI -SET @ENTRY := 1097; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,9,0,100,0,5,30,6500,10000,11,14443,0,0,0,0,0,2,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Cast 14443"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 5-30 Range - Set Sheath Ranged"), -(@ENTRY,0,15,16,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,16,17,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,17,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Venture Co. Mechanic - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,18,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Venture Co. Mechanic - On Evade - Set Sheath Melee"); - --- Bluegill Raider SAI -SET @ENTRY := 1418; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - On Aggro - Cast 10277"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2700,4900,11,10277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-30 Range - Cast 10277 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,0,0,0,100,0,11000,14300,16500,33300,11,12024,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bluegill Raider - In Combat - Cast 12024"), -(@ENTRY,0,14,15,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,15,16,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,16,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bluegill Raider - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,17,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bluegill Raider - On Evade - Set Sheath Melee"); - --- Darkeye Bonecaster SAI -SET @ENTRY := 1522; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Out Of Combat - Set Event Phase 0"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkeye Bonecaster - On Aggro - Cast 13322"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,4000,5000,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-40 Range - Cast 13322 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-7% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-7% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,0,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Darkeye Bonecaster - Between 15-100% Mana - Decrement Event Phase"); - --- Scarlet Neophyte SAI -SET @ENTRY := 1539; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Out Of Combat - Cast 12544"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Neophyte - On Aggro - Cast 13322"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,0,9,1,100,0,0,40,2400,3800,11,13322,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-40 Range - Cast 13322 (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Neophyte - Between 0-15% Health - Flee For Assist"); - --- Bloodsail Mage SAI -SET @ENTRY := 1562; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Mage - On Aggro - Cast 20823"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,3600,5900,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-40 Range - Cast 20823 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,1200,4700,34200,36800,11,2601,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - In Combat - Cast 2601"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Mage - Between 0-15% Health - Flee For Assist"); - --- Bloodsail Warlock SAI -SET @ENTRY := 1564; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,31,1,2,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Random Phase Range (1-2)"), -(@ENTRY,0,2,3,1,1,100,1,0,1000,0,0,11,8722,3,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Cast 8722 (Phase 1)"), -(@ENTRY,0,3,0,61,1,100,1,0,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Set Event Phase 0 (Phase 1)"), -(@ENTRY,0,4,5,1,2,100,1,0,1000,0,0,11,11939,3,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Cast 11939 (Phase 2)"), -(@ENTRY,0,5,0,61,2,100,1,0,1000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Out Of Combat - Set Event Phase 0 (Phase 2)"), -(@ENTRY,0,6,7,4,0,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - On Aggro - Cast 20825"), -(@ENTRY,0,7,0,61,0,100,0,0,0,0,0,23,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - On Aggro - Increment Event Phase"), -(@ENTRY,0,8,0,9,8,100,0,0,40,2400,3800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-40 Range - Cast 20825 (Phase 8)"), -(@ENTRY,0,9,10,3,8,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Mana - Allow Combat Movement (Phase 8)"), -(@ENTRY,0,10,0,61,8,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Mana - Increment Event Phase (Phase 8)"), -(@ENTRY,0,11,0,9,8,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 35-80 Range - Allow Combat Movement (Phase 8)"), -(@ENTRY,0,12,0,9,8,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 5-15 Range - Disallow Combat Movement (Phase 8)"), -(@ENTRY,0,13,0,9,8,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-5 Range - Allow Combat Movement (Phase 8)"), -(@ENTRY,0,14,0,0,8,100,0,6900,20900,15900,15900,11,11980,32,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Warlock - In Combat - Cast 11980 (Phase 8)"), -(@ENTRY,0,15,0,3,16,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 30-100% Mana - Decrement Event Phase (Phase 16)"), -(@ENTRY,0,16,17,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,17,18,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,18,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Warlock - Between 0-15% Health - Flee For Assist"); - --- Wolf Master Nandos SAI -SET @ENTRY := 3927; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,2,0,100,3,0,80,33700,48800,11,7487,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7487 (Normal Dungeon)"), -(@ENTRY,0,1,0,2,0,100,3,0,80,45400,51700,11,7488,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7488 (Normal Dungeon)"), -(@ENTRY,0,2,0,2,0,100,3,0,80,69500,69500,11,7489,0,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - Between 0-80% Health - Cast 7489 (Normal Dungeon)"), -(@ENTRY,0,3,0,4,0,100,3,0,0,0,0,34,4,1,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Aggro - Set Instance Data Field To 4 To Data 1 (Normal Dungeon)"), -(@ENTRY,0,4,0,6,0,100,3,0,0,0,0,34,4,3,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Death - Set Instance Data Field To 4 To Data 3 (Normal Dungeon)"), -(@ENTRY,0,5,0,7,0,100,3,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Wolf Master Nandos - On Evade - Set Instance Data Field To 4 To Data 2 (Normal Dungeon)"); - --- Fenrus the Devourer SAI -SET @ENTRY := 4274; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,0,0,100,2,2600,7200,23300,49000,11,7125,0,0,0,0,0,5,0,0,0,0,0,0,0,"Fenrus the Devourer - In Combat - Cast 7125 (Normal Dungeon)"), -(@ENTRY,0,1,0,4,0,100,3,0,0,0,0,34,3,1,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Aggro - Set Instance Data Field To 3 To Data 1 (Normal Dungeon)"), -(@ENTRY,0,2,0,6,0,100,3,0,0,0,0,34,3,3,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Death - Set Instance Data Field To 3 To Data 3 (Normal Dungeon)"), -(@ENTRY,0,3,0,7,0,100,3,0,0,0,0,34,3,2,0,0,0,0,1,0,0,0,0,0,0,0,"Fenrus the Devourer - On Evade - Set Instance Data Field To 3 To Data 2 (Normal Dungeon)"); - --- Auchenai Vindicator SAI -SET @ENTRY := 18495; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,2,0,0,600000,600000,11,32861,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - Out Of Combat - Cast 32861 (Normal Dungeon)"), -(@ENTRY,0,1,0,1,0,100,4,0,0,600000,600000,11,38379,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - Out Of Combat - Cast 38379 (Heroic Dungeon)"), -(@ENTRY,0,2,0,0,0,100,2,2000,3000,7000,9000,11,17439,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Vindicator - In Combat - Cast 17439 (Normal Dungeon)"), -(@ENTRY,0,3,0,0,0,100,4,2000,3000,7000,9000,11,17289,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Vindicator - In Combat - Cast 17289 (Heroic Dungeon)"), -(@ENTRY,0,4,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32853 (Dungeon Only)"), -(@ENTRY,0,5,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32854 (Dungeon Only)"), -(@ENTRY,0,6,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32855 (Dungeon Only)"), -(@ENTRY,0,7,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32856 (Dungeon Only)"), -(@ENTRY,0,8,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Vindicator - On Aggro - Cast 32857 (Dungeon Only)"); - --- Auchenai Monk SAI -SET @ENTRY := 18497; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,13,0,90,6,8000,10000,0,0,11,32846,1,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Monk - On Target Casting - Cast 32846 (Dungeon Only)"), -(@ENTRY,0,1,0,0,0,100,6,10000,10000,10000,13000,11,32849,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - In Combat - Cast 32849 (Dungeon Only)"), -(@ENTRY,0,2,0,0,0,100,6,5000,5000,5000,8000,11,37321,0,0,0,0,0,2,0,0,0,0,0,0,0,"Auchenai Monk - In Combat - Cast 37321 (Dungeon Only)"), -(@ENTRY,0,3,0,1,0,100,6,0,0,180000,180000,11,38168,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - Out Of Combat - Cast 38168 (Dungeon Only)"), -(@ENTRY,0,4,0,4,0,20,7,0,0,0,0,11,32853,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32853 (Dungeon Only)"), -(@ENTRY,0,5,0,4,0,20,7,0,0,0,0,11,32854,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32854 (Dungeon Only)"), -(@ENTRY,0,6,0,4,0,20,7,0,0,0,0,11,32855,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32855 (Dungeon Only)"), -(@ENTRY,0,7,0,4,0,20,7,0,0,0,0,11,32856,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32856 (Dungeon Only)"), -(@ENTRY,0,8,0,4,0,20,7,0,0,0,0,11,32857,0,0,0,0,0,1,0,0,0,0,0,0,0,"Auchenai Monk - On Aggro - Cast 32857 (Dungeon Only)"); - --- Force-Commander Gorax SAI -SET @ENTRY := 19264; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - On Aggro - Cast 33962"), -(@ENTRY,0,1,0,0,0,100,0,500,1000,3800,6400,11,9080,32,0,0,0,0,2,0,0,0,0,0,0,0,"Force-Commander Gorax - In Combat - Cast 9080"), -(@ENTRY,0,2,0,2,0,100,1,0,30,0,0,11,33735,1,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-30% Health - Cast 33735"), -(@ENTRY,0,3,0,0,0,100,0,10000,15000,12000,16000,11,24193,1,0,0,0,0,5,0,0,0,0,0,0,0,"Force-Commander Gorax - In Combat - Cast 24193"), -(@ENTRY,0,4,0,2,0,100,1,0,90,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-90% Health - Cast 33962"), -(@ENTRY,0,5,0,2,0,100,1,0,80,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-80% Health - Cast 33962"), -(@ENTRY,0,6,0,2,0,100,1,0,70,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-70% Health - Cast 33962"), -(@ENTRY,0,7,0,2,0,100,1,0,60,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-60% Health - Cast 33962"), -(@ENTRY,0,8,0,2,0,100,1,0,50,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-50% Health - Cast 33962"), -(@ENTRY,0,9,0,2,0,100,1,0,40,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-40% Health - Cast 33962"), -(@ENTRY,0,10,0,2,0,100,1,0,30,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-30% Health - Cast 33962"), -(@ENTRY,0,11,0,2,0,100,1,0,20,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-20% Health - Cast 33962"), -(@ENTRY,0,12,0,2,0,100,1,0,10,0,0,11,33962,0,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - Between 0-10% Health - Cast 33962"), -(@ENTRY,0,13,0,6,0,100,1,0,0,0,0,11,39012,7,0,0,0,0,1,0,0,0,0,0,0,0,"Force-Commander Gorax - On Death - Cast 39012"); - --- Twilight Drakonaar SAI -SET @ENTRY := 20910; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,4,0,100,7,0,0,0,0,34,8,1,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Aggro - Set Instance Data Field To 8 To Data 1 (Dungeon Only)"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,31,1,5,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Aggro - Random Phase Range (1-5) (Dungeon Only)"), -(@ENTRY,0,2,0,6,0,100,7,0,0,0,0,34,8,3,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Death - Set Instance Data Field To 8 To Data 3 (Dungeon Only)"), -(@ENTRY,0,3,0,7,0,100,7,0,0,0,0,34,4,2,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - On Evade - Set Instance Data Field To 4 To Data 2 (Dungeon Only)"), -(@ENTRY,0,4,0,0,2,80,2,2000,2000,4000,6000,11,22560,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22560 (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,5,0,0,2,80,4,5000,5000,8000,11500,11,39033,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39033 (Heroic Dungeon) (Phase 1)"), -(@ENTRY,0,6,0,0,4,80,2,3000,3000,8000,12000,11,22559,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22559 (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,7,0,0,4,80,2,1000,1000,12000,15500,11,39037,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39037 (Heroic Dungeon) (Phase 2)"), -(@ENTRY,0,8,0,0,8,90,2,5000,5000,10000,10000,11,22642,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22642 (Normal Dungeon) (Phase 8)"), -(@ENTRY,0,9,0,0,8,80,4,7000,7000,12000,15500,11,39036,0,0,0,0,0,1,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39036 (Heroic Dungeon) (Phase 8)"), -(@ENTRY,0,10,0,0,16,100,6,2000,2000,2000,4000,11,22561,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22561 (Dungeon Only) (Phase 16)"), -(@ENTRY,0,11,0,0,0,85,2,3000,3000,8000,10500,11,22558,0,0,0,0,0,5,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 22558 (Normal Dungeon)"), -(@ENTRY,0,12,0,0,0,85,4,6000,6000,12000,14000,11,39034,0,0,0,0,0,2,0,0,0,0,0,0,0,"Twilight Drakonaar - In Combat - Cast 39034 (Heroic Dungeon)"); - --- Iron Rune-Smith SAI -SET @ENTRY := 26408; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,0,0,100,0,1000,3000,33000,36000,11,52701,1,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - In Combat - Cast 52701"), -(@ENTRY,0,1,0,0,0,100,0,5000,8000,9000,13000,11,52699,0,0,0,0,0,2,0,0,0,0,0,0,0,"Iron Rune-Smith - In Combat - Cast 52699"), -(@ENTRY,0,2,0,6,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - On Death - Set Event Phase 1"), -(@ENTRY,0,3,4,8,1,100,1,48046,0,0,0,11,48047,0,0,0,0,0,7,0,0,0,0,0,0,0,"Iron Rune-Smith - On Spellhit By 48046 - Quest Credit (Phase 1)"), -(@ENTRY,0,4,0,61,1,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Iron Rune-Smith - On Spellhit By 48046 - Forced Despawn (Phase 1)"); - --- Dragonflayer Huscarl SAI -SET @ENTRY := 27260; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,9,0,100,0,0,5,6000,9000,11,40505,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - Between 0-5 Range - Cast 40505"), -(@ENTRY,0,1,0,0,0,100,0,17000,23000,20000,23000,11,52223,1,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 52223"), -(@ENTRY,0,2,0,0,0,100,0,6000,9000,12000,15000,11,49807,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 49807"), -(@ENTRY,0,3,0,0,0,100,0,1000,3000,14000,20000,11,13730,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonflayer Huscarl - In Combat - Cast 13730"), -(@ENTRY,0,4,0,9,0,100,0,0,5,10000,16000,11,6713,0,0,0,0,0,2,0,0,0,0,0,0,0,"Dragonflayer Huscarl - Between 0-5 Range - Cast 6713"), -(@ENTRY,0,5,0,13,0,100,0,14000,17000,0,0,11,12555,0,0,0,0,0,7,0,0,0,0,0,0,0,"Dragonflayer Huscarl - On Target Casting - Cast 12555"); - --- Acolyte SAI -SET @ENTRY := 27731; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,9,0,100,2,0,8,14000,19000,11,20828,1,0,0,0,0,1,0,0,0,0,0,0,0,"Acolyte - Between 0-8 Range - Cast 20828 (Normal Dungeon)"), -(@ENTRY,0,1,0,9,0,100,4,0,8,14000,19000,11,15244,1,0,0,0,0,1,0,0,0,0,0,0,0,"Acolyte - Between 0-8 Range - Cast 15244 (Heroic Dungeon)"), -(@ENTRY,0,2,0,9,0,100,2,0,20,8000,13000,11,20832,0,0,0,0,0,2,0,0,0,0,0,0,0,"Acolyte - Between 0-20 Range - Cast 20832 (Normal Dungeon)"), -(@ENTRY,0,3,0,9,0,100,4,0,20,8000,13000,11,14145,0,0,0,0,0,2,0,0,0,0,0,0,0,"Acolyte - Between 0-20 Range - Cast 14145 (Heroic Dungeon)"), -(@ENTRY,0,4,0,0,0,100,2,4000,8000,7000,10000,11,17439,0,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 17439 (Normal Dungeon)"), -(@ENTRY,0,5,0,0,0,100,4,4000,8000,7000,10000,11,17234,0,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 17234 (Heroic Dungeon)"), -(@ENTRY,0,6,0,0,0,100,2,6000,10000,20000,30000,11,39621,32,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 39621 (Normal Dungeon)"), -(@ENTRY,0,7,0,0,0,100,4,6000,10000,20000,30000,11,58811,32,0,0,0,0,5,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 58811 (Heroic Dungeon)"), -(@ENTRY,0,8,0,0,0,100,2,11000,15000,35000,45000,11,14875,1,0,0,0,0,6,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 14875 (Normal Dungeon)"), -(@ENTRY,0,9,0,0,0,100,4,11000,15000,35000,45000,11,46190,1,0,0,0,0,6,0,0,0,0,0,0,0,"Acolyte - In Combat - Cast 46190 (Heroic Dungeon)"); - --- Stratholme Citizen SAI -SET @ENTRY := 28340; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,9,0,100,6,0,5,9000,13000,11,52633,0,0,0,0,0,2,0,0,0,0,0,0,0,"Stratholme Citizen - Between 0-5 Range - Cast 52633 (Dungeon Only)"), -(@ENTRY,0,1,0,0,0,100,6,9000,15000,12000,18000,11,52636,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 52636 (Dungeon Only)"), -(@ENTRY,0,2,0,0,0,100,2,16000,21000,21000,29000,11,52634,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 52634 (Normal Dungeon)"), -(@ENTRY,0,3,0,0,0,100,4,16000,21000,21000,29000,11,58813,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - In Combat - Cast 58813 (Heroic Dungeon)"), -(@ENTRY,0,4,0,8,0,100,2,0,127,0,0,11,52635,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - On Spellhit By 0 - Cast 52635 (Normal Dungeon)"), -(@ENTRY,0,5,0,8,0,100,4,0,127,0,0,11,58820,1,0,0,0,0,1,0,0,0,0,0,0,0,"Stratholme Citizen - On Spellhit By 0 - Cast 58820 (Heroic Dungeon)"); - --- Nerubian Cocoon SAI -SET @ENTRY := 28413; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,11,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Disallow Combat Movement"), -(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,18,2097152,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Set Disarmed Flag"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Respawn - Increment Event Phase"), -(@ENTRY,0,3,0,6,0,40,1,0,0,0,0,11,51599,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Summon Creature Captive Footman"), -(@ENTRY,0,4,0,6,0,40,1,0,0,0,0,33,28415,0,0,0,0,0,7,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Quest Credit"), -(@ENTRY,0,5,0,6,0,40,1,0,0,0,0,11,51597,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Summon Creature Drakkari Captive"), -(@ENTRY,0,6,0,6,0,20,1,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Nerubian Cocoon - On Death - Forced Despawn"); - --- Elemental Rift SAI -SET @ENTRY := 28452; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,11,0,100,1,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - On Respawn - Stop Auto Attack"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - On Respawn - Disallow Combat Movement"), -(@ENTRY,0,2,0,0,0,100,1,1000,1000,0,0,11,12058,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 12058"), -(@ENTRY,0,3,0,0,0,100,1,5000,5000,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 9672"), -(@ENTRY,0,4,0,0,0,100,1,10000,10000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"), -(@ENTRY,0,5,0,0,0,100,1,40000,40000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"), -(@ENTRY,0,6,0,0,0,100,1,70000,70000,0,0,11,51648,0,0,0,0,0,1,0,0,0,0,0,0,0,"Elemental Rift - In Combat - Cast 51648"); - --- Impale Target SAI -SET @ENTRY := 29184; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,11,0,100,7,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - On Respawn - Stop Auto Attack (Dungeon Only)"), -(@ENTRY,0,1,0,0,0,100,7,100,100,0,0,11,53455,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 53455 (Dungeon Only)"), -(@ENTRY,0,2,3,9,0,100,7,0,1,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - Between 0-1 Range - Disallow Combat Movement (Dungeon Only)"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - Between 0-1 Range - Set Event Phase 1 (Dungeon Only)"), -(@ENTRY,0,4,0,0,0,100,3,3000,3000,0,0,11,53454,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 53454 (Normal Dungeon)"), -(@ENTRY,0,5,0,0,0,100,5,3000,3000,0,0,11,59446,7,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Cast 59446 (Heroic Dungeon)"), -(@ENTRY,0,6,0,0,0,100,7,4000,5000,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Impale Target - In Combat - Forced Despawn (Dungeon Only)"); - --- Dragonblight Mage Hunter SAI -SET @ENTRY := 32572; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,8,0,100,0,0,4,12000,15000,11,51758,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 4 - Cast 51758"), -(@ENTRY,0,1,0,8,0,100,0,0,16,12000,15000,11,51763,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 16 - Cast 51763"), -(@ENTRY,0,2,0,8,0,100,0,0,32,12000,15000,11,51764,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 32 - Cast 51764"), -(@ENTRY,0,3,0,8,0,100,0,0,64,12000,15000,11,51766,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dragonblight Mage Hunter - On Spellhit By school 64 - Cast 51766"); - --- North Sea Kraken SAI -SET @ENTRY := 34925; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Aggro - Set Event Phase 1"), -(@ENTRY,0,1,0,0,0,100,1,6000,9000,7000,9000,11,66514,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - In Combat - Cast 66514"), -(@ENTRY,0,2,0,8,1,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 1)"), -(@ENTRY,0,3,0,8,1,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 1)"), -(@ENTRY,0,4,0,8,2,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 2)"), -(@ENTRY,0,5,0,8,8,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 8)"), -(@ENTRY,0,6,0,8,16,100,1,66588,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Increment Event Phase (Phase 16)"), -(@ENTRY,0,7,8,8,31,100,1,66588,0,0,0,11,66717,1,0,0,0,0,7,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Cast 66717"), -(@ENTRY,0,8,0,61,31,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"North Sea Kraken - On Spellhit By 66588 - Forced Despawn"); - --- Bloodsail Elder Magus SAI -SET @ENTRY := 1653; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - On Aggro - Cast 20823"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-40 Range - Cast 20823 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,28700,28700,45200,45200,11,20827,1,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodsail Elder Magus - In Combat - Cast 20827"), -(@ENTRY,0,11,0,0,0,100,0,14900,14900,43000,43000,11,11969,1,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - In Combat - Cast 11969"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bloodsail Elder Magus - Between 0-15% Health - Flee For Assist"); - --- Defias Watchman SAI -SET @ENTRY := 1725; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Out Of Combat - Stop Auto Attack (Normal Dungeon)"), -(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Watchman - On Aggro - Cast 6660 (Normal Dungeon)"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - On Aggro - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,4,5,9,1,100,2,5,30,2200,3800,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Watchman - Between 5-30 Range - Cast 6660 (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-30 Range - Set Sheath Ranged (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,2,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 25-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 25-80 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,8,10,9,1,100,2,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,9,0,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Set Sheath Melee (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-5 Range - Start Auto Attack (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,2,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 5-15 Range - Stop Auto Attack (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,13,14,2,0,100,3,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Watchman - Between 0-15% Health - Flee For Assist (Normal Dungeon)"), -(@ENTRY,0,16,0,7,0,100,3,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Watchman - On Evade - Set Sheath Melee (Normal Dungeon)"); - --- Defias Magician SAI -SET @ENTRY := 1726; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,3,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Out Of Combat - Disallow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,1,0,1,0,100,1,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Out Of Combat - Cast 12544 (Normal Dungeon)"), -(@ENTRY,0,2,3,4,0,100,3,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Magician - On Aggro - Cast 9053 (Normal Dungeon)"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - On Aggro - Increment Event Phase (Normal Dungeon)"), -(@ENTRY,0,4,0,9,1,100,2,0,40,4000,6600,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Magician - Between 0-40 Range - Cast 9053 (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,5,6,3,1,100,3,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Mana - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,6,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Mana - Increment Event Phase (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,3,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 35-80 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,3,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 5-15 Range - Disallow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,3,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-5 Range - Allow Combat Movement (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,10,0,3,2,100,2,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 30-100% Mana - Decrement Event Phase (Normal Dungeon) (Phase 2)"), -(@ENTRY,0,11,0,0,0,100,2,0,0,23200,38500,11,5110,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - In Combat - Cast 5110 (Normal Dungeon)"), -(@ENTRY,0,12,13,2,0,100,3,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Set Event Phase 3 (Normal Dungeon)"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Allow Combat Movement (Normal Dungeon)"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Defias Magician - Between 0-15% Health - Flee For Assist (Normal Dungeon)"); - --- Skeletal Sorcerer SAI -SET @ENTRY := 1784; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Sorcerer - On Aggro - Cast 9672"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-40 Range - Cast 9672 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,0,0,100,0,4000,8000,12000,20000,11,11969,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Sorcerer - In Combat - Cast 11969"); - --- Skeletal Acolyte SAI -SET @ENTRY := 1789; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Acolyte - On Aggro - Cast 20825"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,1500,2800,11,20825,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-40 Range - Cast 20825 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,0,0,100,0,5000,8000,11000,15000,11,14887,0,0,0,0,0,5,0,0,0,0,0,0,0,"Skeletal Acolyte - In Combat - Cast 14887"), -(@ENTRY,0,11,0,2,0,100,1,0,30,0,0,11,16588,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Acolyte - Between 0-30% Health - Cast 16588"); - --- Scarlet Mage SAI -SET @ENTRY := 1826; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,20822,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - On Aggro - Cast 20822"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,20823,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-40 Range - Cast 20823 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,9000,12000,9000,12000,11,20822,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Mage - In Combat - Cast 20822"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Mage - Between 0-15% Health - Flee For Assist"); - --- Scarlet Hunter SAI -SET @ENTRY := 1831; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Out Of Combat - Stop Auto Attack"), -(@ENTRY,0,2,3,4,0,100,1,0,0,0,0,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Hunter - On Aggro - Cast 6660"), -(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - On Aggro - Increment Event Phase"), -(@ENTRY,0,4,5,9,1,100,0,5,30,2300,3900,11,6660,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-30 Range - Cast 6660 (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,40,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-30 Range - Set Sheath Ranged (Phase 1)"), -(@ENTRY,0,6,7,9,1,100,0,25,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 25-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 25-80 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,8,9,9,1,100,0,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,10,61,1,100,0,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Set Sheath Melee (Phase 1)"), -(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,20,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-5 Range - Start Auto Attack (Phase 1)"), -(@ENTRY,0,11,12,9,1,100,0,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,12,0,61,1,100,0,0,0,0,0,20,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 5-15 Range - Stop Auto Attack (Phase 1)"), -(@ENTRY,0,13,14,2,0,100,1,0,15,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Increment Event Phase"), -(@ENTRY,0,14,15,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,15,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Hunter - Between 0-15% Health - Flee For Assist"), -(@ENTRY,0,16,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Hunter - On Evade - Set Sheath Melee"); - --- Scarlet Magus SAI -SET @ENTRY := 1832; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - On Aggro - Cast 9053"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9053,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-40 Range - Cast 9053 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,5000,10000,14000,19000,11,17203,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - In Combat - Cast 17203"), -(@ENTRY,0,11,0,0,0,100,0,10000,12000,18000,25000,11,15744,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Magus - In Combat - Cast 15744"), -(@ENTRY,0,12,13,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Magus - Between 0-15% Health - Flee For Assist"); - --- Araj the Summoner SAI -SET @ENTRY := 1852; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Araj the Summoner - On Aggro - Cast 15497"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,15497,0,0,0,0,0,2,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-40 Range - Cast 15497 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,0,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - Between 30-100% Mana - Decrement Event Phase"), -(@ENTRY,0,10,0,0,0,100,0,5000,8000,14000,20000,11,15532,0,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - In Combat - Cast 15532"), -(@ENTRY,0,11,0,0,0,100,0,18000,24000,50000,65000,11,17231,1,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - In Combat - Cast 17231"), -(@ENTRY,0,12,0,6,0,100,1,0,0,0,0,11,18661,7,0,0,0,0,1,0,0,0,0,0,0,0,"Araj the Summoner - On Death - Cast 18661"); - --- Deeb SAI -SET @ENTRY := 1911; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,2,4,0,100,1,0,0,0,0,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - On Aggro - Cast 9532"), -(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - On Aggro - Increment Event Phase"), -(@ENTRY,0,3,0,9,1,100,0,0,40,2400,3800,11,9532,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - Between 0-40 Range - Cast 9532 (Phase 1)"), -(@ENTRY,0,4,5,3,1,100,1,0,15,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,5,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,6,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,3,2,100,0,30,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 30-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,10,0,0,0,100,0,2000,6000,6000,10000,11,2607,0,0,0,0,0,2,0,0,0,0,0,0,0,"Deeb - In Combat - Cast 2607"), -(@ENTRY,0,11,12,2,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Set Event Phase 3"), -(@ENTRY,0,12,13,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,13,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Deeb - Between 0-15% Health - Flee For Assist"); - --- Rift Keeper SAI -SET @ENTRY := 21104; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,4,0,100,7,0,0,0,0,30,1,1,2,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - On Aggro - Set Random Phase (Dungeon Only)"), -(@ENTRY,0,1,0,0,0,20,7,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Say Line 0 (Dungeon Only)"), -(@ENTRY,0,2,0,0,1,100,2,0,0,7300,16900,11,36279,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36279 (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,3,0,0,1,100,4,0,0,2400,3600,11,38534,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 38534 (Heroic Dungeon) (Phase 1)"), -(@ENTRY,0,4,0,0,1,100,2,12400,12400,13900,14500,11,36277,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36277 (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,5,0,0,1,100,4,18200,29300,14400,25200,11,38535,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 38535 (Heroic Dungeon) (Phase 1)"), -(@ENTRY,0,6,0,0,1,100,2,9800,9800,13400,13400,11,36278,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36278 (Normal Dungeon) (Phase 1)"), -(@ENTRY,0,7,0,0,1,100,4,11100,31400,15800,27700,11,38536,0,0,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 38536 (Heroic Dungeon) (Phase 1)"), -(@ENTRY,0,8,0,0,1,100,4,13300,34500,27500,27500,11,13323,0,0,0,0,0,6,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 13323 (Heroic Dungeon) (Phase 1)"), -(@ENTRY,0,9,0,0,0,100,2,7200,12200,11900,29600,11,36275,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36275 (Normal Dungeon)"), -(@ENTRY,0,10,0,0,0,100,4,7200,12000,11100,24200,11,38533,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 38533 (Heroic Dungeon)"), -(@ENTRY,0,11,0,0,0,100,2,7300,19500,20300,45900,11,36276,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36276 (Normal Dungeon)"), -(@ENTRY,0,12,0,0,0,100,4,6200,21500,12000,21700,11,36276,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 36276 (Heroic Dungeon)"), -(@ENTRY,0,13,0,0,0,100,6,2500,26300,16900,25300,11,12542,0,0,0,0,0,5,0,0,0,0,0,0,0,"Rift Keeper - In Combat - Cast 12542 (Dungeon Only)"), -(@ENTRY,0,14,0,2,0,100,7,0,30,0,0,11,8269,1,0,0,0,0,1,0,0,0,0,0,0,0,"Rift Keeper - Between 0-30% Health - Cast 8269 (Dungeon Only)"); - --- Torturer LeCraft SAI -SET @ENTRY := 27209; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Aggro - Say Line 0"), -(@ENTRY,0,1,0,0,0,100,0,5000,8000,12000,168000,11,30478,0,0,0,0,0,2,0,0,0,0,0,0,0,"Torturer LeCraft - In Combat - Cast 30478"), -(@ENTRY,0,2,0,0,0,100,0,12000,15000,20000,26000,11,30621,0,0,0,0,0,2,0,0,0,0,0,0,0,"Torturer LeCraft - In Combat - Cast 30621"), -(@ENTRY,0,3,4,8,1,100,1,48603,0,0,0,1,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 1 (Phase 1)"), -(@ENTRY,0,4,0,61,1,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 1)"), -(@ENTRY,0,5,6,8,2,100,1,48603,0,0,0,1,2,0,0,0,0,0,7,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 2 (Phase 2)"), -(@ENTRY,0,6,0,61,2,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 2)"), -(@ENTRY,0,7,8,8,4,100,1,48603,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 3 (Phase 3)"), -(@ENTRY,0,8,0,61,4,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 3)"), -(@ENTRY,0,9,10,8,8,100,1,48603,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 4 (Phase 4)"), -(@ENTRY,0,10,0,61,8,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 4)"), -(@ENTRY,0,11,13,8,16,100,1,48603,0,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Say Line 5 (Phase 5)"), -(@ENTRY,0,12,0,61,16,100,1,48603,0,0,0,33,27394,0,0,0,0,0,7,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Quest Credit (Phase 5)"), -(@ENTRY,0,13,0,61,16,100,1,48603,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Spellhit By 48603 - Increment Event Phase (Phase 5)"), -(@ENTRY,0,14,0,7,0,100,1,0,0,0,0,40,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Torturer LeCraft - On Evade - Set Sheath Melee"); - --- Scarlet Medic SAI -SET @ENTRY := 28608; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Out Of Combat - Disallow Combat Movement"), -(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,13864,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Out Of Combat - Cast 13864"), -(@ENTRY,0,2,3,4,0,20,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - On Aggro - Say Line 0"), -(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,11,15498,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Medic - On Aggro - Cast 15498"), -(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - On Aggro - Increment Event Phase"), -(@ENTRY,0,5,0,9,1,100,0,0,40,3400,4800,11,15498,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-40 Range - Cast 15498 (Phase 1)"), -(@ENTRY,0,6,7,3,1,100,1,0,7,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-7% Mana - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-7% Mana - Increment Event Phase (Phase 1)"), -(@ENTRY,0,8,0,9,1,100,1,35,80,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 35-80 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,9,0,9,1,100,1,5,15,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 5-15 Range - Disallow Combat Movement (Phase 1)"), -(@ENTRY,0,10,0,9,1,100,1,0,5,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-5 Range - Allow Combat Movement (Phase 1)"), -(@ENTRY,0,11,0,3,2,100,0,15,100,100,100,23,0,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 15-100% Mana - Decrement Event Phase (Phase 2)"), -(@ENTRY,0,12,13,1,0,100,1,0,15,0,0,22,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-15% Health - Set Event Phase 3 (Phase 1)"), -(@ENTRY,0,13,14,61,0,100,0,0,0,0,0,21,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-15% Health - Allow Combat Movement"), -(@ENTRY,0,14,0,61,0,100,0,0,0,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scarlet Medic - Between 0-15% Health - Flee For Assist"); - - diff --git a/sql/updates/world/2013_11_23_00_world_creature_text.sql b/sql/updates/world/2013_11_23_00_world_creature_text.sql new file mode 100644 index 00000000000..cceca50bb3d --- /dev/null +++ b/sql/updates/world/2013_11_23_00_world_creature_text.sql @@ -0,0 +1,4 @@ +-- NPC talk text for Apprentice Mirveda +DELETE FROM `creature_text` WHERE `entry`=15402; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(15402,0,0, 'Such... dark... energy! How can this be possible?',12,0,100,0,0,0, 'Apprentice Mirveda'); diff --git a/sql/updates/world/2013_11_23_01_world_sai.sql b/sql/updates/world/2013_11_23_01_world_sai.sql new file mode 100644 index 00000000000..97889ce38ad --- /dev/null +++ b/sql/updates/world/2013_11_23_01_world_sai.sql @@ -0,0 +1,31 @@ +-- Malykriss Altar of Sacrifice Bunny SAI +SET @ENTRY := 31065; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,4000,4000,4000,4000,11,58196,0,0,0,0,0,1,0,0,0,0,0,0,0,"Malykriss Altar of Sacrifice Bunny - OOC - Cast Malykriss Altar of Sacrifice Pulse"); + +-- Malykriss Blood Forge Bunny SAI +SET @ENTRY := 31068; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,4000,4000,4000,4000,11,58198,0,0,0,0,0,1,0,0,0,0,0,0,0,"Malykriss Blood Forge Bunny - OOC - Cast Malykriss Blood Forge Pulse"); + +-- Malykriss Icy Lookout Bunny SAI +SET @ENTRY := 31064; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,4000,4000,4000,4000,11,58195,0,0,0,0,0,1,0,0,0,0,0,0,0,"Malykriss Icy Lookout Bunny - OOC - Cast Malykriss Icy Lookout Pulse"); + +-- Malykriss Runeworks Bunny SAI +SET @ENTRY := 31066; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,4000,4000,4000,4000,11,58197,0,0,0,0,0,1,0,0,0,0,0,0,0,"Malykriss Runeworks Bunny - OOC - Cast Malykriss Runeworks Pulse"); + +-- Update creatures +UPDATE `creature` SET `modelid`=0,`spawndist`=0,`MovementType`=0 WHERE `id` IN (31064,31065,31066,31068,31075); +UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry` IN (31064,31065,31066,31068); diff --git a/sql/updates/world/2013_11_23_02_world_misc.sql b/sql/updates/world/2013_11_23_02_world_misc.sql new file mode 100644 index 00000000000..7193fc68d1a --- /dev/null +++ b/sql/updates/world/2013_11_23_02_world_misc.sql @@ -0,0 +1,34 @@ +-- Fixing quest 13010 Krolmir, Hammer of Storms +UPDATE `conditions` SET `ConditionTypeOrReference`=9, `ConditionValue1`=13010, `NegativeCondition`=0, `Comment`= 'Show gossip option if player has quest taken' WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9900 AND `SourceEntry`=0; +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9900 AND `SourceEntry`=1; +UPDATE `gossip_menu_option` SET `action_menu_id`=9899 WHERE `menu_id`=9900 AND `id`=0; +DELETE FROM `gossip_menu_option` WHERE `menu_id`=9900 AND `id`=1; + +-- King Jokkum SAI +SET @ENTRY := 30105; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,62,0,100,0,9899,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"King Jokkum - Gossip Option Select - Cloase gossip window"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,11,61319,0,0,0,0,0,7,0,0,0,0,0,0,0,"King Jokkum - Gossip Option Select - Cast Jokkum Scriptcast on player"); + +-- NPC talk text for King Jokkum Quest 13010 Krolmir, Hammer of Storms +DELETE FROM `creature_text` WHERE `entry`=30331; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(30331,0,0, 'Hold on, little $r.',12,0,100,0,0,0, 'King Jokkum - Mount up'), +(30331,1,0, 'Thorim! Come, show yourself!',14,0,100,0,0,0, 'King Jokkum - Conversation start'), +(30331,2,0, 'The deeds of your $r servant defy $g his:her; stature, Stormlord. $g His:Her; efforts have succeeded in softening the hearts of my people.',12,0,100,396,0,0, 'King Jokkum - Conversation 20 sec in'), +(30331,3,0, 'Never have such humble words come from mighty Thorim. I shall deliver your words to Dun Niffelem.',12,0,100,396,0,0, 'King Jokkum - Conversation 40 sec in'), +(30331,4,0, 'The events of that dark day are hereby forgiven by my people. They shall never again be spoken of.',12,0,100,396,0,0, 'King Jokkum - Conversation 48 sec in'), +(30331,5,0, 'To signify our reforged friendship, I have something which belongs to you...',12,0,100,0,0,0, 'King Jokkum - Conversation 57 sec in'), +(30331,6,0, 'As the great explosion filled the region, my father cast a rune at the great hammer that it might not be had by our enemies. It was his final act...',12,0,100,396,0,0, 'King Jokkum - Conversation 63 sec in'), +(30331,7,0, 'We welcome the opportunity to fight by your side, mighty Thorim.',12,0,100,0,0,0, 'King Jokkum - Conversation 75 sec in'), +(30331,8,0, 'I must return to Dun Niffilem. We shall speak again soon, Stormlord.',12,0,100,396,0,0, 'King Jokkum - Conversation 80 sec in'); + +-- NPC talk text for Thorim Quest 13010 Krolmir, Hammer of Storms +DELETE FROM `creature_text` WHERE `entry`=30390; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(30390,0,0, 'King Jokkum, you have summoned me?',12,0,100,0,0,0, 'Thorim - Conversation 18 sec in'), +(30390,1,0, 'Jokkum, son of Arngrim, I have always regretted my actions here. In my grief, I brought great harm to those closest to me.',12,0,100,0,0,0, 'Thorim - Conversation 26 sec in'), +(30390,2,0, 'I would ask your forgiveness for the suffering I have caused you and your people.',12,0,100,0,0,0, 'Thorim - Conversation 32 sec in'), +(30390,3,0, 'Krolmir... I thank you Jokkum. I hadn''t dared hope it still existed. It shall soon see glorious battle once again!',12,0,100,396,0,0, 'Thorim - Conversation 68 sec in'); diff --git a/sql/updates/world/2013_11_23_0_world_creature_text.sql b/sql/updates/world/2013_11_23_0_world_creature_text.sql deleted file mode 100644 index cceca50bb3d..00000000000 --- a/sql/updates/world/2013_11_23_0_world_creature_text.sql +++ /dev/null @@ -1,4 +0,0 @@ --- NPC talk text for Apprentice Mirveda -DELETE FROM `creature_text` WHERE `entry`=15402; -INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES -(15402,0,0, 'Such... dark... energy! How can this be possible?',12,0,100,0,0,0, 'Apprentice Mirveda'); diff --git a/sql/updates/world/2013_11_23_1_world_sai.sql b/sql/updates/world/2013_11_23_1_world_sai.sql deleted file mode 100644 index 97889ce38ad..00000000000 --- a/sql/updates/world/2013_11_23_1_world_sai.sql +++ /dev/null @@ -1,31 +0,0 @@ --- Malykriss Altar of Sacrifice Bunny SAI -SET @ENTRY := 31065; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,0,4000,4000,4000,4000,11,58196,0,0,0,0,0,1,0,0,0,0,0,0,0,"Malykriss Altar of Sacrifice Bunny - OOC - Cast Malykriss Altar of Sacrifice Pulse"); - --- Malykriss Blood Forge Bunny SAI -SET @ENTRY := 31068; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,0,4000,4000,4000,4000,11,58198,0,0,0,0,0,1,0,0,0,0,0,0,0,"Malykriss Blood Forge Bunny - OOC - Cast Malykriss Blood Forge Pulse"); - --- Malykriss Icy Lookout Bunny SAI -SET @ENTRY := 31064; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,0,4000,4000,4000,4000,11,58195,0,0,0,0,0,1,0,0,0,0,0,0,0,"Malykriss Icy Lookout Bunny - OOC - Cast Malykriss Icy Lookout Pulse"); - --- Malykriss Runeworks Bunny SAI -SET @ENTRY := 31066; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,0,1,0,100,0,4000,4000,4000,4000,11,58197,0,0,0,0,0,1,0,0,0,0,0,0,0,"Malykriss Runeworks Bunny - OOC - Cast Malykriss Runeworks Pulse"); - --- Update creatures -UPDATE `creature` SET `modelid`=0,`spawndist`=0,`MovementType`=0 WHERE `id` IN (31064,31065,31066,31068,31075); -UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry` IN (31064,31065,31066,31068); diff --git a/sql/updates/world/2013_11_23_2_world_misc.sql b/sql/updates/world/2013_11_23_2_world_misc.sql deleted file mode 100644 index 7193fc68d1a..00000000000 --- a/sql/updates/world/2013_11_23_2_world_misc.sql +++ /dev/null @@ -1,34 +0,0 @@ --- Fixing quest 13010 Krolmir, Hammer of Storms -UPDATE `conditions` SET `ConditionTypeOrReference`=9, `ConditionValue1`=13010, `NegativeCondition`=0, `Comment`= 'Show gossip option if player has quest taken' WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9900 AND `SourceEntry`=0; -DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9900 AND `SourceEntry`=1; -UPDATE `gossip_menu_option` SET `action_menu_id`=9899 WHERE `menu_id`=9900 AND `id`=0; -DELETE FROM `gossip_menu_option` WHERE `menu_id`=9900 AND `id`=1; - --- King Jokkum SAI -SET @ENTRY := 30105; -UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; -DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; -INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES -(@ENTRY,0,0,1,62,0,100,0,9899,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"King Jokkum - Gossip Option Select - Cloase gossip window"), -(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,11,61319,0,0,0,0,0,7,0,0,0,0,0,0,0,"King Jokkum - Gossip Option Select - Cast Jokkum Scriptcast on player"); - --- NPC talk text for King Jokkum Quest 13010 Krolmir, Hammer of Storms -DELETE FROM `creature_text` WHERE `entry`=30331; -INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES -(30331,0,0, 'Hold on, little $r.',12,0,100,0,0,0, 'King Jokkum - Mount up'), -(30331,1,0, 'Thorim! Come, show yourself!',14,0,100,0,0,0, 'King Jokkum - Conversation start'), -(30331,2,0, 'The deeds of your $r servant defy $g his:her; stature, Stormlord. $g His:Her; efforts have succeeded in softening the hearts of my people.',12,0,100,396,0,0, 'King Jokkum - Conversation 20 sec in'), -(30331,3,0, 'Never have such humble words come from mighty Thorim. I shall deliver your words to Dun Niffelem.',12,0,100,396,0,0, 'King Jokkum - Conversation 40 sec in'), -(30331,4,0, 'The events of that dark day are hereby forgiven by my people. They shall never again be spoken of.',12,0,100,396,0,0, 'King Jokkum - Conversation 48 sec in'), -(30331,5,0, 'To signify our reforged friendship, I have something which belongs to you...',12,0,100,0,0,0, 'King Jokkum - Conversation 57 sec in'), -(30331,6,0, 'As the great explosion filled the region, my father cast a rune at the great hammer that it might not be had by our enemies. It was his final act...',12,0,100,396,0,0, 'King Jokkum - Conversation 63 sec in'), -(30331,7,0, 'We welcome the opportunity to fight by your side, mighty Thorim.',12,0,100,0,0,0, 'King Jokkum - Conversation 75 sec in'), -(30331,8,0, 'I must return to Dun Niffilem. We shall speak again soon, Stormlord.',12,0,100,396,0,0, 'King Jokkum - Conversation 80 sec in'); - --- NPC talk text for Thorim Quest 13010 Krolmir, Hammer of Storms -DELETE FROM `creature_text` WHERE `entry`=30390; -INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES -(30390,0,0, 'King Jokkum, you have summoned me?',12,0,100,0,0,0, 'Thorim - Conversation 18 sec in'), -(30390,1,0, 'Jokkum, son of Arngrim, I have always regretted my actions here. In my grief, I brought great harm to those closest to me.',12,0,100,0,0,0, 'Thorim - Conversation 26 sec in'), -(30390,2,0, 'I would ask your forgiveness for the suffering I have caused you and your people.',12,0,100,0,0,0, 'Thorim - Conversation 32 sec in'), -(30390,3,0, 'Krolmir... I thank you Jokkum. I hadn''t dared hope it still existed. It shall soon see glorious battle once again!',12,0,100,396,0,0, 'Thorim - Conversation 68 sec in'); diff --git a/sql/updates/world/2013_11_24_00_world_spell_script_names.sql b/sql/updates/world/2013_11_24_00_world_spell_script_names.sql new file mode 100644 index 00000000000..bd72015535e --- /dev/null +++ b/sql/updates/world/2013_11_24_00_world_spell_script_names.sql @@ -0,0 +1,2 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`=61319; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (61319, 'spell_jokkum_scriptcast'); diff --git a/sql/updates/world/2013_11_24_0_world_spell_script_names.sql b/sql/updates/world/2013_11_24_0_world_spell_script_names.sql deleted file mode 100644 index bd72015535e..00000000000 --- a/sql/updates/world/2013_11_24_0_world_spell_script_names.sql +++ /dev/null @@ -1,2 +0,0 @@ -DELETE FROM `spell_script_names` WHERE `spell_id`=61319; -INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (61319, 'spell_jokkum_scriptcast'); diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 31d4efc6e27..8c185fe4806 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -144,7 +144,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid CharmInfo* charmInfo = pet->GetCharmInfo(); if (!charmInfo) { - TC_LOG_ERROR("network", "WorldSession::HandlePetAction(petGuid: " UI64FMTD ", tagGuid: " UI64FMTD ", spellId: %u, flag: %u): object (entry: %u TypeId: %u) is considered pet-like but doesn't have a charminfo!", + TC_LOG_ERROR("network", "WorldSession::HandlePetAction(petGuid: " UI64FMTD ", tagGuid: " UI64FMTD ", spellId: %u, flag: %u): object (GUID: %u TypeId: %u) is considered pet-like but doesn't have a charminfo!", guid1, guid2, spellid, flag, pet->GetGUIDLow(), pet->GetTypeId()); return; } diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp index f7d57b5bb0d..cd96316acb4 100644 --- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp +++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp @@ -67,9 +67,9 @@ class npc_apprentice_mirveda : public CreatureScript public: npc_apprentice_mirveda() : CreatureScript("npc_apprentice_mirveda") { } - bool OnQuestReward(Player* player, Creature* creature, const Quest *_Quest, uint32 /*slot*/) OVERRIDE + bool OnQuestReward(Player* /*player*/, Creature* creature, const Quest* quest, uint32 /*slot*/) OVERRIDE { - if (_Quest->GetQuestId() == QUEST_CORRUPTED_SOIL) + if (quest->GetQuestId() == QUEST_CORRUPTED_SOIL) { CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->events.ScheduleEvent(EVENT_TALK, 2000); -- cgit v1.2.3 From 2c307aa67c713fef0c13956f640daa6263062327 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Sun, 24 Nov 2013 21:17:45 +0100 Subject: Scripts/Oculus: cleanup a bit --- sql/updates/world/2013_11_24_01_world_oculus.sql | 168 ++++++ src/server/game/Entities/Player/Player.cpp | 10 + .../scripts/Northrend/Nexus/Oculus/boss_drakos.cpp | 202 +++---- .../scripts/Northrend/Nexus/Oculus/boss_eregos.cpp | 285 ++++----- .../scripts/Northrend/Nexus/Oculus/boss_urom.cpp | 392 ++++++------ .../scripts/Northrend/Nexus/Oculus/boss_varos.cpp | 166 ++--- .../Northrend/Nexus/Oculus/instance_oculus.cpp | 558 +++++++++-------- .../scripts/Northrend/Nexus/Oculus/oculus.cpp | 672 ++++++++++----------- src/server/scripts/Northrend/Nexus/Oculus/oculus.h | 76 +-- 9 files changed, 1313 insertions(+), 1216 deletions(-) create mode 100644 sql/updates/world/2013_11_24_01_world_oculus.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_24_01_world_oculus.sql b/sql/updates/world/2013_11_24_01_world_oculus.sql new file mode 100644 index 00000000000..a8b6a912365 --- /dev/null +++ b/sql/updates/world/2013_11_24_01_world_oculus.sql @@ -0,0 +1,168 @@ +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry` IN (191349, 193603); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` AND `SourceGroup` IN (27692,27755,27756); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(21,27692,50344,0,0,13,1,2,3,2,0,0,0,'','Vehicle Spell requires Boss Urom must be done'), +(21,27755,49592,0,0,13,1,2,3,2,0,0,0,'','Vehicle Spell requires Boss Urom must be done'), +(21,27756,50253,0,0,13,1,2,3,2,0,0,0,'','Vehicle Spell requires Boss Urom must be done'); + +UPDATE `creature_template` SET `npcflag`=0 WHERE `entry` IN (27657,27659); +UPDATE `creature_template` SET `gossip_menu_id`=9573 WHERE `entry`=27657; +UPDATE `creature_template` SET `gossip_menu_id`=9708 WHERE `entry`=27658; +UPDATE `creature_template` SET `gossip_menu_id`=9574 WHERE `entry`=27659; + +DELETE FROM `npc_text` WHERE `ID`=13467; +INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `lang0`, `prob0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `lang1`, `prob1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `lang2`, `prob2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `lang3`, `prob3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `lang4`, `prob4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `lang5`, `prob5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `lang6`, `prob6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `lang7`, `prob7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `WDBVerified`) VALUES +(13467, 'The trickster Mage-Lord Urom protects the third ring. He will appear alone and defenseless, but do not be fooled by appearances! Urom is a powerful conjurer who commands a menagerie of Phantasmal creatures. Seek him out above.', 'The trickster Mage-Lord Urom protects the third ring. He will appear alone and defenseless, but do not be fooled by appearances! Urom is a powerful conjurer who commands a menagerie of Phantasmal creatures. Seek him out above.', 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 14545); + + +DELETE FROM `gossip_menu` WHERE `entry` IN (9573,9703,9704,9787,9575,9699,9700,9708,9574,9701,9702,9786); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +-- Verdisa +(9573, 12915), -- 27657 -- init -- urom not done +(9573, 13241), -- 27657 -- eregos done +(9573, 13269), -- 27657 -- eregos not done + +(9703, 13258), -- 27657 -- attacks +(9704, 13259), -- 27657 -- special + +(9787, 13466), -- 27657 -- varos not done +(9787, 13467), -- 27657 -- urom not done +(9787, 13468), -- 27657 -- eregos not done + +-- Belgaristrasz +(9575, 12916), -- 27658 -- varos not done +(9575, 13237), -- 27658 -- urom not done +(9575, 13238), -- 27658 -- eregos not done +(9575, 13239), -- 27658 -- eregos done + +(9699, 13254), -- 27658 -- attacks +(9700, 13255), -- 27658 -- special + +(9708, 13267), -- 27658 -- init + +-- Eternos +(9574, 12917), -- 27659 -- init -- urom not done +(9574, 13240), -- 27659 -- eregos done +(9574, 13268), -- 27659 -- eregos not done + +(9701, 13256), -- 27659 -- attacks +(9702, 13257), -- 27659 -- special + +(9786, 13466), -- 27659 -- varos not done +(9786, 13467), -- 27659 -- urom not done +(9786, 13468); -- 27659 -- eregos not done + + +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (9708,9574,9573,9575); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES +-- Verdisa +(9573, 0, 0, 'What should we do next?', 1, 1, 9787, 0, 0, 0, ''), -- 27657 -- eregos not done +(9573, 1, 0, 'I want to fly on the wings of the green flight.', 1, 1, 0, 0, 0, 0, ''), -- 27657 -- no essence +(9573, 2, 0, 'I want to exchange my Amber Essence for Emerald Essence.', 1, 1, 0, 0, 0, 0, ''), -- 27657 -- has amber essence +(9573, 3, 0, 'I want to exchange my Ruby Essence for Emerald Essence.', 1, 1, 0, 0, 0, 0, ''), -- 27657 -- has ruby essence +(9573, 4, 0, 'What abilities do emerald drakes have?', 1, 1, 9703, 0, 0, 0, ''), -- 27657 +(9573, 5, 0, 'What is the ultimate ability of the emerald drake?', 1, 1, 9704, 0, 0, 0, ''), -- 27657 -- urom must be done + +-- Eternos +(9574, 0, 0, 'What should we do next?', 1, 1, 9786, 0, 0, 0, ''), -- 27659 -- eregos not done +(9574, 1, 0, 'I want to fly on the wings of the bronze flight.', 1, 1, 0, 0, 0, 0, ''), -- 27659 -- no essence +(9574, 2, 0, 'I want to exchange my Emerald Essence for Amber Essence.', 1, 1, 0, 0, 0, 0, ''), -- 27659 -- has emerald essence +(9574, 3, 0, 'I want to exchange my Ruby Essence for Amber Essence.', 1, 1, 0, 0, 0, 0, ''), -- 27659 -- has ruby essence +(9574, 4, 0, 'What abilities do amber drakes have?', 1, 1, 9701, 0, 0, 0, ''), -- 27659 +(9574, 5, 0, 'What is the ultimate ability of the amber drake?', 1, 1, 9702, 0, 0, 0, ''), -- 27659 -- urom must be done + +-- Belgaristrasz +(9708, 0, 0, 'So where do we go from here?', 1, 1, 9575, 0, 0, 0, ''), -- 27658 + +(9575, 0, 0, 'I want to fly on the wings of the red flight.', 1, 1, 0, 0, 0, 0, ''), -- 27658 -- no essence +(9575, 1, 0, 'I want to exchange my Amber Essence for Ruby Essence.', 1, 1, 0, 0, 0, 0, ''), -- 27658 -- has amber essence +(9575, 2, 0, 'I want to exchange my Emerald Essence for Ruby Essence.', 1, 1, 0, 0, 0, 0, ''), -- 27658 -- has emerald essence +(9575, 3, 0, 'What abilities do ruby drakes have?', 1, 1, 9699, 0, 0, 0, ''), -- 27658 +(9575, 4, 0, 'What is the ultimate ability of the Ruby Drake?', 1, 1, 9700, 0, 0, 0, ''); -- 27658 -- urom must be done + + +/* + DATA_DRAKOS = 0, + DATA_VAROS = 1, + DATA_UROM = 2, + DATA_EREGOS = 3, + + DONE = 3, + + ITEM_EMERALD_ESSENCE = 37815, + ITEM_AMBER_ESSENCE = 37859, + ITEM_RUBY_ESSENCE = 37860, +*/ + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup` IN (9573,9787,9575,9574,9786); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(14,9573,12915,0,0,13,1,2,3,2,1,0,0,'','Show text only if Boss Urom not done'), -- urom not done +(14,9573,13241,0,0,13,1,3,3,2,0,0,0,'','Show text only if Boss Eregos done'), -- eregos done +(14,9573,13269,0,0,13,1,2,3,2,0,0,0,'','Show text only if Boss Urom done'), -- urom done +(14,9573,13269,0,0,13,1,3,3,2,1,0,0,'','Show text only if Boss Eregos not done'), -- eregos not done + +(14,9787,13466,0,0,13,1,1,3,2,1,0,0,'','Show text only if Boss Varos not done'), -- varos not done +(14,9787,13467,0,0,13,1,1,3,2,0,0,0,'','Show text only if Boss Varos done'), -- varos done +(14,9787,13467,0,0,13,1,2,3,2,1,0,0,'','Show text only if Boss Urom not done'), -- urom not done +(14,9787,13468,0,0,13,1,2,3,2,0,0,0,'','Show text only if Boss Urom done'), -- urom done +(14,9787,13468,0,0,13,1,3,3,2,1,0,0,'','Show text only if Boss Eregos not done'), -- eregos not done + +(14,9575,12916,0,0,13,1,1,3,2,1,0,0,'','Show text only if Boss Varos not done'), -- varos not done +(14,9575,13237,0,0,13,1,1,3,2,0,0,0,'','Show text only if Boss Varos done'), -- varos done +(14,9575,13237,0,0,13,1,2,3,2,1,0,0,'','Show text only if Boss Urom not done'), -- urom not done +(14,9575,13238,0,0,13,1,2,3,2,0,0,0,'','Show text only if Boss Urom done'), -- urom done +(14,9575,13238,0,0,13,1,3,3,2,1,0,0,'','Show text only if Boss Eregos not done'), -- eregos not done +(14,9575,13239,0,0,13,1,3,3,2,0,0,0,'','Show text only if Boss Eregos done'), -- eregos done + +(14,9574,12917,0,0,13,1,2,3,2,1,0,0,'','Show text only if Boss Urom not done'), -- urom not done +(14,9574,13240,0,0,13,1,3,3,2,0,0,0,'','Show text only if Boss Eregos done'), -- eregos done +(14,9574,13268,0,0,13,1,2,3,2,0,0,0,'','Show text only if Boss Urom done'), -- urom done +(14,9574,13268,0,0,13,1,3,3,2,1,0,0,'','Show text only if Boss Eregos not done'), -- eregos not done + +(14,9786,13466,0,0,13,1,1,3,2,1,0,0,'','Show text only if Boss Varos not done'), -- varos not done +(14,9786,13467,0,0,13,1,1,3,2,0,0,0,'','Show text only if Boss Varos done'), -- varos done +(14,9786,13467,0,0,13,1,2,3,2,1,0,0,'','Show text only if Boss Urom not done'), -- urom not done +(14,9786,13468,0,0,13,1,2,3,2,0,0,0,'','Show text only if Boss Urom done'), -- urom done +(14,9786,13468,0,0,13,1,3,3,2,1,0,0,'','Show text only if Boss Eregos not done'); -- eregos not done + + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (9573,9574,9575); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,9573,0,0,0,13,1,3,3,2,1,0,0,'','Show options for gossip only if Boss Eregos not done'), -- eregos not done +(15,9573,1,0,0,2,0,37859,1,0,1,0,0,'','Show options for gossip only if Player has no amber essence'), -- has no amber essence +(15,9573,1,0,0,2,0,37815,1,0,1,0,0,'','Show options for gossip only if Player has no emerald essence'), -- has no emerald essence +(15,9573,1,0,0,2,0,37860,1,0,1,0,0,'','Show options for gossip only if Player has no ruby essence'), -- has no ruby essence +(15,9573,2,0,0,2,0,37859,1,0,0,0,0,'','Show options for gossip only if Player has amber essence'), -- has amber essence +(15,9573,3,0,0,2,0,37860,1,0,0,0,0,'','Show options for gossip only if Player has ruby essence'), -- has ruby essence +(15,9573,5,0,0,13,1,2,3,2,0,0,0,'','Show options for gossip only if Boss Urom done'), -- urom done + +(15,9574,0,0,0,13,1,3,3,2,1,0,0,'','Show options for gossip only if Boss Eregos not done'), -- eregos not done +(15,9574,1,0,0,2,0,37859,1,0,1,0,0,'','Show options for gossip only if Player has no amber essence'), -- has no amber essence +(15,9574,1,0,0,2,0,37815,1,0,1,0,0,'','Show options for gossip only if Player has no emerald essence'), -- has no emerald essence +(15,9574,1,0,0,2,0,37860,1,0,1,0,0,'','Show options for gossip only if Player has no ruby essence'), -- has no ruby essence +(15,9574,2,0,0,2,0,37815,1,0,0,0,0,'','Show options for gossip only if Player has emerald essence'), -- has emerald essence +(15,9574,3,0,0,2,0,37860,1,0,0,0,0,'','Show options for gossip only if Player has ruby essence'), -- has ruby essence +(15,9574,5,0,0,13,1,2,3,2,0,0,0,'','Show options for gossip only if Boss Urom done'), -- urom done + +(15,9575,0,0,0,2,0,37859,1,0,1,0,0,'','Show options for gossip only if Player has no amber essence'), -- has no amber essence +(15,9575,0,0,0,2,0,37815,1,0,1,0,0,'','Show options for gossip only if Player has no emerald essence'), -- has no emerald essence +(15,9575,0,0,0,2,0,37860,1,0,1,0,0,'','Show options for gossip only if Player has no ruby essence'), -- has no ruby essence +(15,9575,1,0,0,2,0,37859,1,0,0,0,0,'','Show options for gossip only if Player has amber essence'), -- has amber essence +(15,9575,2,0,0,2,0,37815,1,0,0,0,0,'','Show options for gossip only if Player has emerald essence'), -- has emerald essence +(15,9575,4,0,0,13,1,2,3,2,0,0,0,'','Show options for gossip only if Boss Urom done'); -- urom done + + +DELETE FROM `spell_script_names` WHERE `spell_id` IN (49345,49461,49462,49427,49459,49463,49838); +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(49345, 'spell_oculus_call_ruby_emerald_amber_drake'), +(49461, 'spell_oculus_call_ruby_emerald_amber_drake'), +(49462, 'spell_oculus_call_ruby_emerald_amber_drake'), +(49427, 'spell_oculus_ride_ruby_emerald_amber_drake_que'), +(49459, 'spell_oculus_ride_ruby_emerald_amber_drake_que'), +(49463, 'spell_oculus_ride_ruby_emerald_amber_drake_que'), +(49838, 'spell_oculus_stop_time'); + + +-- Remove invalid ScriptNames from DB +UPDATE `conditions` SET `ScriptName`='' WHERE `ScriptName`='0'; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 12d7874aceb..c61621f3a91 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -9629,6 +9629,16 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) data << uint32(3932) << uint32(0); // 13 WORLDSTATE_TIME_GUARDIAN_SHOW } break; + // The Oculus + case 4228: + if (instance && mapid == 578) + instance->FillInitialWorldStates(data); + else + { + data << uint32(3524) << uint32(0); // 9 WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW + data << uint32(3486) << uint32(0); // 10 WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT + } + break; // Ulduar case 4273: if (instance && mapid == 603) diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp index 25091a457f2..d22a0bcc79f 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp @@ -52,141 +52,141 @@ enum DrakosEvents class boss_drakos : public CreatureScript { -public: - boss_drakos() : CreatureScript("boss_drakos") { } + public: + boss_drakos() : CreatureScript("boss_drakos") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_drakosAI(creature); - } - - struct boss_drakosAI : public BossAI - { - boss_drakosAI(Creature* creature) : BossAI(creature, DATA_DRAKOS_EVENT) { } - - void Reset() OVERRIDE + struct boss_drakosAI : public BossAI { - _Reset(); + boss_drakosAI(Creature* creature) : BossAI(creature, DATA_DRAKOS) { } - events.ScheduleEvent(EVENT_MAGIC_PULL, 15000); - events.ScheduleEvent(EVENT_STOMP, 17000); - events.ScheduleEvent(EVENT_BOMB_SUMMON, 2000); + void Reset() OVERRIDE + { + _Reset(); - postPull = false; - } + events.ScheduleEvent(EVENT_MAGIC_PULL, 15000); + events.ScheduleEvent(EVENT_STOMP, 17000); + events.ScheduleEvent(EVENT_BOMB_SUMMON, 2000); - void EnterCombat(Unit* /*who*/) OVERRIDE - { - _EnterCombat(); - Talk(SAY_AGGRO); - } + postPull = false; + } - void UpdateAI(uint32 diff) OVERRIDE - { - //Return since we have no target - if (!UpdateVictim()) - return; + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + Talk(SAY_AGGRO); + } - events.Update(diff); + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + events.Update(diff); - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_BOMB_SUMMON: - { - Position pPosition; - me->GetPosition(&pPosition); + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - for (uint8 i = 0; i <= (postPull ? 3 : 0); i++) + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_BOMB_SUMMON: { - me->GetRandomNearPosition(pPosition, float(urand(0, 10))); - me->SummonCreature(NPC_UNSTABLE_SPHERE, pPosition); + Position position; + me->GetPosition(&position); + + for (uint8 i = 0; i <= (postPull ? 3 : 0); i++) + { + me->GetRandomNearPosition(position, frand(0.0f, 10.0f)); + me->SummonCreature(NPC_UNSTABLE_SPHERE, position); + } } - } - events.ScheduleEvent(EVENT_BOMB_SUMMON, 2000); - break; - case EVENT_MAGIC_PULL: - DoCast(SPELL_MAGIC_PULL); - postPull = true; - events.ScheduleEvent(EVENT_MAGIC_PULL, 15000); - break; - case EVENT_STOMP: - Talk(SAY_STOMP); - DoCast(SPELL_THUNDERING_STOMP); - events.ScheduleEvent(EVENT_STOMP, 17000); - break; + events.ScheduleEvent(EVENT_BOMB_SUMMON, 2000); + break; + case EVENT_MAGIC_PULL: + DoCast(SPELL_MAGIC_PULL); + postPull = true; + events.ScheduleEvent(EVENT_MAGIC_PULL, 15000); + break; + case EVENT_STOMP: + Talk(SAY_STOMP); + DoCast(SPELL_THUNDERING_STOMP); + events.ScheduleEvent(EVENT_STOMP, 17000); + break; + default: + break; + } } + + DoMeleeAttackIfReady(); } - DoMeleeAttackIfReady(); - } + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); - void JustDied(Unit* /*killer*/) OVERRIDE - { - _JustDied(); + Talk(SAY_DEATH); - Talk(SAY_DEATH); + // start achievement timer (kill Eregos within 20 min) + instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); + } - // start achievement timer (kill Eregos within 20 min) - instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); - } + void KilledUnit(Unit* /*victim*/) OVERRIDE + { + Talk(SAY_KILL); + } + + private: + bool postPull; + }; - void KilledUnit(Unit* /*victim*/) OVERRIDE + CreatureAI* GetAI(Creature* creature) const OVERRIDE { - Talk(SAY_KILL); + return GetOculusAI(creature); } - private: - bool postPull; - }; }; class npc_unstable_sphere : public CreatureScript { -public: - npc_unstable_sphere() : CreatureScript("npc_unstable_sphere") { } + public: + npc_unstable_sphere() : CreatureScript("npc_unstable_sphere") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_unstable_sphereAI(creature); - } + struct npc_unstable_sphereAI : public ScriptedAI + { + npc_unstable_sphereAI(Creature* creature) : ScriptedAI(creature) { } - struct npc_unstable_sphereAI : public ScriptedAI - { - npc_unstable_sphereAI(Creature* creature) : ScriptedAI(creature) { } + void Reset() OVERRIDE + { + me->SetReactState(REACT_PASSIVE); + me->GetMotionMaster()->MoveRandom(40.0f); - void Reset() OVERRIDE - { - me->SetReactState(REACT_PASSIVE); - me->GetMotionMaster()->MoveRandom(40.0f); + me->AddAura(SPELL_UNSTABLE_SPHERE_PASSIVE, me); + me->AddAura(SPELL_UNSTABLE_SPHERE_TIMER, me); - me->AddAura(SPELL_UNSTABLE_SPHERE_PASSIVE, me); - me->AddAura(SPELL_UNSTABLE_SPHERE_TIMER, me); + pulseTimer = 3000; - pulseTimer = 3000; - deathTimer = 19000; - } + me->DespawnOrUnsummon(19000); + } - void UpdateAI(uint32 diff) OVERRIDE - { - if (pulseTimer <= diff) + void UpdateAI(uint32 diff) OVERRIDE { - DoCast(SPELL_UNSTABLE_SPHERE_PULSE); - pulseTimer = 3*IN_MILLISECONDS; - } else pulseTimer -= diff; + if (pulseTimer <= diff) + { + DoCast(SPELL_UNSTABLE_SPHERE_PULSE); + pulseTimer = 3 * IN_MILLISECONDS; + } + else + pulseTimer -= diff; + } - if (deathTimer <= diff) - me->DisappearAndDie(); - else deathTimer -= diff; - } - private: - uint32 pulseTimer; - uint32 deathTimer; - }; + private: + uint32 pulseTimer; + }; + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_unstable_sphereAI(creature); + } }; void AddSC_boss_drakos() diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp index abf0d6537c3..ca6f580633c 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp @@ -21,8 +21,8 @@ #include "SpellAuraEffects.h" #include "oculus.h" -//Types of drake mounts: Ruby(Tank), Amber(DPS), Emerald(Healer) -//Two Repeating phases +// Types of drake mounts: Ruby (Tank), Amber (DPS), Emerald (Healer) +// Two Repeating phases enum Events { @@ -61,8 +61,8 @@ enum Npcs enum Phases { - PHASE_NORMAL = 1, - PHASE_FIRST_PLANAR = 2, + PHASE_NORMAL = 1, + PHASE_FIRST_PLANAR = 2, PHASE_SECOND_PLANAR = 3 }; @@ -80,172 +80,174 @@ enum EregosData class boss_eregos : public CreatureScript { -public: - boss_eregos() : CreatureScript("boss_eregos") { } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_eregosAI(creature); - } - - struct boss_eregosAI : public BossAI - { - boss_eregosAI(Creature* creature) : BossAI(creature, DATA_EREGOS_EVENT) { } + public: + boss_eregos() : CreatureScript("boss_eregos") { } - void Reset() OVERRIDE + struct boss_eregosAI : public BossAI { - _Reset(); - _phase = PHASE_NORMAL; - - _rubyVoid = true; - _emeraldVoid = true; - _amberVoid = true; + boss_eregosAI(Creature* creature) : BossAI(creature, DATA_EREGOS) { } - DoAction(ACTION_SET_NORMAL_EVENTS); - } + void Reset() OVERRIDE + { + _Reset(); + _phase = PHASE_NORMAL; - void KilledUnit(Unit* /*victim*/) OVERRIDE - { - Talk(SAY_KILL); - } + _rubyVoid = true; + _emeraldVoid = true; + _amberVoid = true; - void EnterCombat(Unit* /*who*/) OVERRIDE - { - _EnterCombat(); - - Talk(SAY_AGGRO); - /* Checks for present drakes vehicles from each type and deactivate achievement that corresponds to each found - The checks are so big in case some party try weird things like pulling boss down or hiding out of check range, the only thing player need is to get the boss kill credit after the check /even if he or his drake die/ - Drakes mechanic would despawn all after unmount and also drakes should be auto mounted after item use, item use after Eregos is engaged leads to his despawn - based on retail data. */ - if (me->FindNearestCreature(NPC_RUBY_DRAKE_VEHICLE, 500.0f, true)) - _rubyVoid = false; - if (me->FindNearestCreature(NPC_EMERALD_DRAKE_VEHICLE, 500.0f, true)) - _emeraldVoid = false; - if (me->FindNearestCreature(NPC_AMBER_DRAKE_VEHICLE, 500.0f, true)) - _amberVoid = false; - } + DoAction(ACTION_SET_NORMAL_EVENTS); + } - uint32 GetData(uint32 type) const OVERRIDE - { - switch (type) - { - case DATA_RUBY_VOID: - return _rubyVoid; - case DATA_EMERALD_VOID: - return _emeraldVoid; - case DATA_AMBER_VOID: - return _amberVoid; - default: - break; + void KilledUnit(Unit* /*victim*/) OVERRIDE + { + Talk(SAY_KILL); } - return 0; - } - void DoAction(int32 action) OVERRIDE - { - if (action != ACTION_SET_NORMAL_EVENTS) - return; + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + + Talk(SAY_AGGRO); + /* Checks for present drakes vehicles from each type and deactivate achievement that corresponds to each found + The checks are so big in case some party try weird things like pulling boss down or hiding out of check range, the only thing player need is to get the boss kill credit after the check /even if he or his drake die/ + Drakes mechanic would despawn all after unmount and also drakes should be auto mounted after item use, item use after Eregos is engaged leads to his despawn - based on retail data. */ + if (me->FindNearestCreature(NPC_RUBY_DRAKE_VEHICLE, 500.0f, true)) + _rubyVoid = false; + if (me->FindNearestCreature(NPC_EMERALD_DRAKE_VEHICLE, 500.0f, true)) + _emeraldVoid = false; + if (me->FindNearestCreature(NPC_AMBER_DRAKE_VEHICLE, 500.0f, true)) + _amberVoid = false; + } - events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(3, 10) * IN_MILLISECONDS, 0, PHASE_NORMAL); - events.ScheduleEvent(EVENT_ARCANE_VOLLEY, urand(10, 25) * IN_MILLISECONDS, 0, PHASE_NORMAL); - events.ScheduleEvent(EVENT_ENRAGED_ASSAULT, urand(35, 50) * IN_MILLISECONDS, 0, PHASE_NORMAL); - events.ScheduleEvent(EVENT_SUMMON_LEY_WHELP, urand(15, 30) * IN_MILLISECONDS, 0, PHASE_NORMAL); - } + uint32 GetData(uint32 type) const OVERRIDE + { + switch (type) + { + case DATA_RUBY_VOID: + return _rubyVoid; + case DATA_EMERALD_VOID: + return _emeraldVoid; + case DATA_AMBER_VOID: + return _amberVoid; + default: + break; + } + return 0; + } - void JustSummoned(Creature* summon) OVERRIDE - { - BossAI::JustSummoned(summon); + void DoAction(int32 action) OVERRIDE + { + if (action != ACTION_SET_NORMAL_EVENTS) + return; + + events.SetPhase(PHASE_NORMAL); + events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(3, 10) * IN_MILLISECONDS, 0, PHASE_NORMAL); + events.ScheduleEvent(EVENT_ARCANE_VOLLEY, urand(10, 25) * IN_MILLISECONDS, 0, PHASE_NORMAL); + events.ScheduleEvent(EVENT_ENRAGED_ASSAULT, urand(35, 50) * IN_MILLISECONDS, 0, PHASE_NORMAL); + events.ScheduleEvent(EVENT_SUMMON_LEY_WHELP, urand(15, 30) * IN_MILLISECONDS, 0, PHASE_NORMAL); + } - if (summon->GetEntry() != NPC_PLANAR_ANOMALY) - return; + void JustSummoned(Creature* summon) OVERRIDE + { + BossAI::JustSummoned(summon); - summon->CombatStop(true); - summon->SetReactState(REACT_PASSIVE); - summon->GetMotionMaster()->MoveRandom(100.0f); - } + if (summon->GetEntry() != NPC_PLANAR_ANOMALY) + return; - void SummonedCreatureDespawn(Creature* summon) OVERRIDE - { - if (summon->GetEntry() != NPC_PLANAR_ANOMALY) - return; + summon->CombatStop(true); + summon->SetReactState(REACT_PASSIVE); + summon->GetMotionMaster()->MoveRandom(100.0f); + } - // TO-DO: See why the spell is not casted - summon->CastSpell(summon, SPELL_PLANAR_BLAST, true); - } + void SummonedCreatureDespawn(Creature* summon) OVERRIDE + { + if (summon->GetEntry() != NPC_PLANAR_ANOMALY) + return; - void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE - { - if (!me->GetMap()->IsHeroic()) - return; + /// @todo: See why the spell is not casted + summon->CastSpell(summon, SPELL_PLANAR_BLAST, true); + } - if ( (me->GetHealthPct() < 60.0f && me->GetHealthPct() > 20.0f && _phase < PHASE_FIRST_PLANAR) - || (me->GetHealthPct() < 20.0f && _phase < PHASE_SECOND_PLANAR) ) + void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) OVERRIDE { - events.Reset(); - _phase = (me->GetHealthPct() < 60.0f && me->GetHealthPct() > 20.0f) ? PHASE_FIRST_PLANAR : PHASE_SECOND_PLANAR; + if (!IsHeroic()) + return; - Talk(SAY_SHIELD); - DoCast(SPELL_PLANAR_SHIFT); + if ( (me->GetHealthPct() < 60.0f && me->GetHealthPct() > 20.0f && _phase < PHASE_FIRST_PLANAR) + || (me->GetHealthPct() < 20.0f && _phase < PHASE_SECOND_PLANAR) ) + { + events.Reset(); + _phase = (me->GetHealthPct() < 60.0f && me->GetHealthPct() > 20.0f) ? PHASE_FIRST_PLANAR : PHASE_SECOND_PLANAR; - // not sure about the amount, and if we should despawn previous spawns (dragon trashs) - summons.DespawnAll(); - for (uint8 i = 0; i < 6; i++) - DoCast(SPELL_PLANAR_ANOMALIES); + Talk(SAY_SHIELD); + DoCast(SPELL_PLANAR_SHIFT); + + // not sure about the amount, and if we should despawn previous spawns (dragon trashs) + summons.DespawnAll(); + for (uint8 i = 0; i < 6; i++) + DoCast(SPELL_PLANAR_ANOMALIES); + } } - } - void UpdateAI(uint32 diff) OVERRIDE - { - //Return since we have no target - if (!UpdateVictim()) - return; + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; - events.Update(diff); + events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) + while (uint32 eventId = events.ExecuteEvent()) { - case EVENT_ARCANE_BARRAGE: - DoCastVictim(SPELL_ARCANE_BARRAGE); - events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(3, 10) * IN_MILLISECONDS, 0, PHASE_NORMAL); - break; - case EVENT_ARCANE_VOLLEY: - DoCastAOE(SPELL_ARCANE_VOLLEY); - events.ScheduleEvent(EVENT_ARCANE_VOLLEY, urand(10, 25) * IN_MILLISECONDS, 0, PHASE_NORMAL); - break; - case EVENT_ENRAGED_ASSAULT: - Talk(SAY_ENRAGE); - DoCast(SPELL_ENRAGED_ASSAULT); - events.ScheduleEvent(EVENT_ENRAGED_ASSAULT, urand(35, 50) * IN_MILLISECONDS, 0, PHASE_NORMAL); - break; - case EVENT_SUMMON_LEY_WHELP: - for (uint8 i = 0; i < 3; i++) - DoCast(SPELL_SUMMON_LEY_WHELP); - events.ScheduleEvent(EVENT_SUMMON_LEY_WHELP, urand(15, 30) * IN_MILLISECONDS, 0, PHASE_NORMAL); - break; + switch (eventId) + { + case EVENT_ARCANE_BARRAGE: + DoCastVictim(SPELL_ARCANE_BARRAGE); + events.ScheduleEvent(EVENT_ARCANE_BARRAGE, urand(3, 10) * IN_MILLISECONDS, 0, PHASE_NORMAL); + break; + case EVENT_ARCANE_VOLLEY: + DoCastAOE(SPELL_ARCANE_VOLLEY); + events.ScheduleEvent(EVENT_ARCANE_VOLLEY, urand(10, 25) * IN_MILLISECONDS, 0, PHASE_NORMAL); + break; + case EVENT_ENRAGED_ASSAULT: + Talk(SAY_ENRAGE); + DoCast(SPELL_ENRAGED_ASSAULT); + events.ScheduleEvent(EVENT_ENRAGED_ASSAULT, urand(35, 50) * IN_MILLISECONDS, 0, PHASE_NORMAL); + break; + case EVENT_SUMMON_LEY_WHELP: + for (uint8 i = 0; i < 3; i++) + DoCast(SPELL_SUMMON_LEY_WHELP); + events.ScheduleEvent(EVENT_SUMMON_LEY_WHELP, urand(15, 30) * IN_MILLISECONDS, 0, PHASE_NORMAL); + break; + default: + break; + } } + + DoMeleeAttackIfReady(); } - DoMeleeAttackIfReady(); - } + void JustDied(Unit* /*killer*/) OVERRIDE + { + Talk(SAY_DEATH); - void JustDied(Unit* /*killer*/) OVERRIDE - { - Talk(SAY_DEATH); + _JustDied(); + } - _JustDied(); - } + private: + uint8 _phase; + bool _rubyVoid; + bool _emeraldVoid; + bool _amberVoid; + }; - private: - uint8 _phase; - bool _rubyVoid; - bool _emeraldVoid; - bool _amberVoid; - }; + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_eregosAI(creature); + } }; class spell_eregos_planar_shift : public SpellScriptLoader @@ -259,9 +261,8 @@ class spell_eregos_planar_shift : public SpellScriptLoader void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - if (Unit* caster = GetCaster()) - if (Creature* creatureCaster = caster->ToCreature()) - creatureCaster->AI()->DoAction(ACTION_SET_NORMAL_EVENTS); + if (Creature* creature = GetTarget()->ToCreature()) + creature->AI()->DoAction(ACTION_SET_NORMAL_EVENTS); } void Register() OVERRIDE diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp index 678748b1f01..f7c558879d1 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp @@ -29,7 +29,6 @@ EndScriptData */ enum Spells { - SPELL_ARCANE_SHIELD = 53813, //Dummy --> Channeled, shields the caster from damage. SPELL_EMPOWERED_ARCANE_EXPLOSION = 51110, SPELL_EMPOWERED_ARCANE_EXPLOSION_2 = 59377, @@ -89,274 +88,242 @@ static uint32 TeleportSpells[]= class boss_urom : public CreatureScript { -public: - boss_urom() : CreatureScript("boss_urom") { } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_uromAI(creature); - } - - struct boss_uromAI : public BossAI - { - boss_uromAI(Creature* creature) : BossAI(creature, DATA_UROM_EVENT) { } + public: + boss_urom() : CreatureScript("boss_urom") { } - void Reset() OVERRIDE + struct boss_uromAI : public BossAI { - me->CastSpell(me, SPELL_EVOCATE); - - _Reset(); - - if (instance->GetData(DATA_UROM_PLATAFORM) == 0) + boss_uromAI(Creature* creature) : BossAI(creature, DATA_UROM) { - for (uint8 i = 0; i < 3; i++) - group[i] = 0; - } + platform = 0; - x = 0.0f; - y = 0.0f; - canCast = false; - canGoBack = false; + for (uint8 i = 0; i < 3; ++i) + group[i] = i; - me->GetMotionMaster()->MoveIdle(); - - teleportTimer = urand(30000, 35000); - arcaneExplosionTimer = 9000; - castArcaneExplosionTimer = 2000; - frostBombTimer = urand(5000, 8000); - timeBombTimer = urand(20000, 25000); - } + std::random_shuffle(group, group + 3); + } - void EnterCombat(Unit* /*who*/) OVERRIDE - { - _EnterCombat(); + void Reset() OVERRIDE + { + me->CastSpell(me, SPELL_EVOCATE); - SetGroups(); - SummonGroups(); - CastTeleport(); + _Reset(); - if (instance->GetData(DATA_UROM_PLATAFORM) != 3) - instance->SetData(DATA_UROM_PLATAFORM, instance->GetData(DATA_UROM_PLATAFORM)+1); - } + x = 0.0f; + y = 0.0f; + canCast = false; + canGoBack = false; - void AttackStart(Unit* who) OVERRIDE - { - if (!who) - return; + me->GetMotionMaster()->MoveIdle(); - if (me->GetPositionZ() > 518.63f) - DoStartNoMovement(who); + teleportTimer = urand(30000, 35000); + arcaneExplosionTimer = 9000; + castArcaneExplosionTimer = 2000; + frostBombTimer = urand(5000, 8000); + timeBombTimer = urand(20000, 25000); + } - if (me->GetPositionZ() < 518.63f) + void EnterCombat(Unit* /*who*/) OVERRIDE { - if (me->Attack(who, true)) - { - Talk(SAY_AGGRO); - - me->SetInCombatWith(who); - who->SetInCombatWith(me); + _EnterCombat(); - me->GetMotionMaster()->MoveChase(who, 0, 0); - } + StartAttack(); } - } - - void SetGroups() - { - if (!instance || instance->GetData(DATA_UROM_PLATAFORM) != 0) - return; - while (group[0] == group[1] || group[0] == group[2] || group[1] == group[2]) + void AttackStart(Unit* who) OVERRIDE { - for (uint8 i = 0; i < 3; i++) - group[i] = urand(0, 2); - } - } + if (!who) + return; - void SetPosition(uint8 i) - { - switch (i) - { - case 0: - x = me->GetPositionX() + 4; - y = me->GetPositionY() - 4; - break; - case 1: - x = me->GetPositionX() + 4; - y = me->GetPositionY() + 4; - break; - case 2: - x = me->GetPositionX() - 4; - y = me->GetPositionY() + 4; - break; - case 3: - x = me->GetPositionX() - 4; - y = me->GetPositionY() - 4; - break; - default: - break; + if (me->GetPositionZ() > 518.63f) + DoStartNoMovement(who); + else + BossAI::AttackStart(who); } - } - void SummonGroups() - { - if (!instance || instance->GetData(DATA_UROM_PLATAFORM) > 2) - return; - - for (uint8 i = 0; i < 4; i++) + void SetPosition(uint8 i) { - SetPosition(i); - me->SummonCreature(Group[group[instance->GetData(DATA_UROM_PLATAFORM)]].entry[i], x, y, me->GetPositionZ(), me->GetOrientation()); - - // teleport to next platform and spawn adds - switch (instance->GetData(DATA_UROM_PLATAFORM)) + switch (i) { + case 0: + x = me->GetPositionX() + 4; + y = me->GetPositionY() - 4; + break; case 1: - Talk(SAY_SUMMON_1); + x = me->GetPositionX() + 4; + y = me->GetPositionY() + 4; break; case 2: - Talk(SAY_SUMMON_2); + x = me->GetPositionX() - 4; + y = me->GetPositionY() + 4; break; case 3: - Talk(SAY_SUMMON_3); + x = me->GetPositionX() - 4; + y = me->GetPositionY() - 4; break; default: break; } } - } - void CastTeleport() - { - if (!instance || instance->GetData(DATA_UROM_PLATAFORM) > 2) - return; - - Talk(instance->GetData(DATA_UROM_PLATAFORM) < 5 ? instance->GetData(DATA_UROM_PLATAFORM) : 0); - DoCast(TeleportSpells[instance->GetData(DATA_UROM_PLATAFORM)]); - } - - void KilledUnit(Unit* /*victim*/) OVERRIDE - { - Talk(SAY_PLAYER_KILL); - } - - void UpdateAI(uint32 uiDiff) OVERRIDE - { - if (!UpdateVictim()) - return; + void StartAttack() + { + if (platform > 2) + { + Talk(SAY_AGGRO); + return; + } - if (!instance || instance->GetData(DATA_UROM_PLATAFORM) < 2) - return; + // summon guards and jump to next platform + for (uint8 i = 0; i < 4; ++i) + { + SetPosition(i); + me->SummonCreature(Group[group[platform]].entry[i], x, y, me->GetPositionZ(), me->GetOrientation()); + } - if (teleportTimer <= uiDiff) - { - me->InterruptNonMeleeSpells(false); - me->GetMotionMaster()->MoveIdle(); - DoCast(SPELL_TELEPORT); - teleportTimer = urand(30000, 35000); + Talk(platform); + DoCast(TeleportSpells[platform]); - } else teleportTimer -= uiDiff; + ++platform; + } - if (canCast && !me->FindCurrentSpellBySpellId(SPELL_EMPOWERED_ARCANE_EXPLOSION)) + void KilledUnit(Unit* who) OVERRIDE { - if (castArcaneExplosionTimer <= uiDiff) - { - canCast = false; - canGoBack = true; - DoCastAOE(SPELL_EMPOWERED_ARCANE_EXPLOSION); - castArcaneExplosionTimer = 2000; - }else castArcaneExplosionTimer -= uiDiff; + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_PLAYER_KILL); } - if (canGoBack) + void UpdateAI(uint32 diff) OVERRIDE { - if (arcaneExplosionTimer <= uiDiff) - { - Position pPos; - me->GetVictim()->GetPosition(&pPos); + if (!UpdateVictim()) + return; - me->NearTeleportTo(pPos.GetPositionX(), pPos.GetPositionY(), pPos.GetPositionZ(), pPos.GetOrientation()); - me->GetMotionMaster()->MoveChase(me->GetVictim(), 0, 0); - me->SetWalk(true); + if (platform < 3) + return; - Talk(EMOTE_ARCANE_EXPLOSION); - Talk(SAY_ARCANE_EXPLOSION); + events.Update(diff); - canCast = false; - canGoBack = false; - arcaneExplosionTimer = 9000; - } else arcaneExplosionTimer -= uiDiff; - } + if (teleportTimer <= diff) + { + me->InterruptNonMeleeSpells(false); + me->GetMotionMaster()->MoveIdle(); + DoCast(SPELL_TELEPORT); + teleportTimer = urand(30000, 35000); + } + else + teleportTimer -= diff; - if (!me->IsNonMeleeSpellCasted(false, true, true)) - { - if (frostBombTimer <= uiDiff) + if (canCast && !me->FindCurrentSpellBySpellId(SPELL_EMPOWERED_ARCANE_EXPLOSION)) { - DoCastVictim(SPELL_FROSTBOMB); - frostBombTimer = urand(5000, 8000); - } else frostBombTimer -= uiDiff; + if (castArcaneExplosionTimer <= diff) + { + canCast = false; + canGoBack = true; + DoCastAOE(SPELL_EMPOWERED_ARCANE_EXPLOSION); + castArcaneExplosionTimer = 2000; + } + else + castArcaneExplosionTimer -= diff; + } - if (timeBombTimer <= uiDiff) + if (canGoBack) { - if (Unit* unit = SelectTarget(SELECT_TARGET_RANDOM)) - DoCast(unit, SPELL_TIME_BOMB); + if (arcaneExplosionTimer <= diff) + { + Position pos; + me->GetVictim()->GetPosition(&pos); + + me->NearTeleportTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation()); + me->GetMotionMaster()->MoveChase(me->GetVictim()); + me->SetWalk(true); + + Talk(EMOTE_ARCANE_EXPLOSION); + Talk(SAY_ARCANE_EXPLOSION); + + canCast = false; + canGoBack = false; + arcaneExplosionTimer = 9000; + } + else + arcaneExplosionTimer -= diff; + } - timeBombTimer = urand(20000, 25000); - } else timeBombTimer -= uiDiff; - } + if (!me->IsNonMeleeSpellCasted(false, true, true)) + { + if (frostBombTimer <= diff) + { + DoCastVictim(SPELL_FROSTBOMB); + frostBombTimer = urand(5000, 8000); + } + else + frostBombTimer -= diff; + + if (timeBombTimer <= diff) + { + if (Unit* unit = SelectTarget(SELECT_TARGET_RANDOM)) + DoCast(unit, SPELL_TIME_BOMB); + + timeBombTimer = urand(20000, 25000); + } + else + timeBombTimer -= diff; + } - DoMeleeAttackIfReady(); - } + DoMeleeAttackIfReady(); + } - void JustDied(Unit* /*killer*/) OVERRIDE - { - _JustDied(); - Talk(SAY_DEATH); - DoCast(me, SPELL_DEATH_SPELL, true); // we cast the spell as triggered or the summon effect does not occur - } + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + Talk(SAY_DEATH); + DoCast(me, SPELL_DEATH_SPELL, true); // we cast the spell as triggered or the summon effect does not occur + } - void LeaveCombat() - { - me->RemoveAllAuras(); - me->CombatStop(false); - me->DeleteThreatList(); - } + void LeaveCombat() + { + me->RemoveAllAuras(); + me->CombatStop(false); + me->DeleteThreatList(); + } - void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell) OVERRIDE - { - switch (pSpell->Id) + void SpellHit(Unit* /*caster*/, SpellInfo const* spellInfo) OVERRIDE { - case SPELL_SUMMON_MENAGERIE: - me->SetHomePosition(968.66f, 1042.53f, 527.32f, 0.077f); - LeaveCombat(); - me->CastSpell(me, SPELL_EVOCATE); - break; - case SPELL_SUMMON_MENAGERIE_2: - me->SetHomePosition(1164.02f, 1170.85f, 527.321f, 3.66f); - LeaveCombat(); - me->CastSpell(me, SPELL_EVOCATE); - break; - case SPELL_SUMMON_MENAGERIE_3: - me->SetHomePosition(1118.31f, 1080.377f, 508.361f, 4.25f); - LeaveCombat(); - me->CastSpell(me, SPELL_EVOCATE); - break; - case SPELL_TELEPORT: - //! Unconfirmed, previous below - me->SetDisableGravity(true); - //me->AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY); // with out it the npc will fall down while is casting - canCast = true; - break; - default: - break; + switch (spellInfo->Id) + { + case SPELL_SUMMON_MENAGERIE: + me->SetHomePosition(968.66f, 1042.53f, 527.32f, 0.077f); + LeaveCombat(); + me->CastSpell(me, SPELL_EVOCATE); + break; + case SPELL_SUMMON_MENAGERIE_2: + me->SetHomePosition(1164.02f, 1170.85f, 527.321f, 3.66f); + LeaveCombat(); + me->CastSpell(me, SPELL_EVOCATE); + break; + case SPELL_SUMMON_MENAGERIE_3: + me->SetHomePosition(1118.31f, 1080.377f, 508.361f, 4.25f); + LeaveCombat(); + me->CastSpell(me, SPELL_EVOCATE); + break; + case SPELL_TELEPORT: + //! Unconfirmed, previous below + me->SetDisableGravity(true); + //me->AddUnitMovementFlag(MOVEMENTFLAG_CAN_FLY); // with out it the npc will fall down while is casting + canCast = true; + break; + default: + break; + } } - } + private: float x, y; bool canCast; bool canGoBack; + uint8 platform; + uint8 group[3]; uint32 teleportTimer; @@ -364,7 +331,12 @@ public: uint32 castArcaneExplosionTimer; uint32 frostBombTimer; uint32 timeBombTimer; - }; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetOculusAI(creature); + } }; void AddSC_boss_urom() diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp index bc72c808a6f..3b55d804a1e 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp @@ -54,105 +54,110 @@ enum Events class boss_varos : public CreatureScript { -public: - boss_varos() : CreatureScript("boss_varos") { } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_varosAI(creature); - } + public: + boss_varos() : CreatureScript("boss_varos") { } - struct boss_varosAI : public BossAI - { - boss_varosAI(Creature* creature) : BossAI(creature, DATA_VAROS_EVENT) + struct boss_varosAI : public BossAI { - if (instance->GetBossState(DATA_DRAKOS_EVENT) != DONE) - DoCast(me, SPELL_CENTRIFUGE_SHIELD); - } + boss_varosAI(Creature* creature) : BossAI(creature, DATA_VAROS) { } - void Reset() OVERRIDE - { - _Reset(); + void InitializeAI() OVERRIDE + { + if (instance->GetBossState(DATA_DRAKOS) != DONE) + DoCast(me, SPELL_CENTRIFUGE_SHIELD); + } - events.ScheduleEvent(EVENT_AMPLIFY_MAGIC, urand(20, 25) * IN_MILLISECONDS); - events.ScheduleEvent(EVENT_ENERGIZE_CORES_VISUAL, 5000); - // not sure if this is handled by a timer or hp percentage - events.ScheduleEvent(EVENT_CALL_AZURE, urand(15, 30) * IN_MILLISECONDS); + void Reset() OVERRIDE + { + _Reset(); - firstCoreEnergize = false; - coreEnergizeOrientation = 0.0f; - } + events.ScheduleEvent(EVENT_AMPLIFY_MAGIC, urand(20, 25) * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_ENERGIZE_CORES_VISUAL, 5000); + // not sure if this is handled by a timer or hp percentage + events.ScheduleEvent(EVENT_CALL_AZURE, urand(15, 30) * IN_MILLISECONDS); - void EnterCombat(Unit* /*who*/) OVERRIDE - { - _EnterCombat(); + firstCoreEnergize = false; + coreEnergizeOrientation = 0.0f; + } - Talk(SAY_AGGRO); - } + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); - float GetCoreEnergizeOrientation() - { - return coreEnergizeOrientation; - } + Talk(SAY_AGGRO); + } - void UpdateAI(uint32 diff) OVERRIDE - { - //Return since we have no target - if (!UpdateVictim()) - return; + float GetCoreEnergizeOrientation() + { + return coreEnergizeOrientation; + } - events.Update(diff); + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + events.Update(diff); - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) { - case EVENT_ENERGIZE_CORES: - DoCast(me, SPELL_ENERGIZE_CORES); - events.CancelEvent(EVENT_ENERGIZE_CORES); - break; - case EVENT_ENERGIZE_CORES_VISUAL: - if (!firstCoreEnergize) - { - coreEnergizeOrientation = me->GetOrientation(); - firstCoreEnergize = true; - } else - coreEnergizeOrientation = Position::NormalizeOrientation(coreEnergizeOrientation - 2.0f); - - DoCast(me, SPELL_ENERGIZE_CORES_VISUAL); - events.ScheduleEvent(EVENT_ENERGIZE_CORES_VISUAL, 5000); - events.ScheduleEvent(EVENT_ENERGIZE_CORES, 4000); - break; - case EVENT_CALL_AZURE: - // not sure how blizz handles this, i cant see any pattern between the differnt spells - DoCast(me, SPELL_CALL_AZURE_RING_CAPTAIN); - Talk(SAY_AZURE); - Talk(SAY_AZURE_EMOTE); - events.ScheduleEvent(EVENT_CALL_AZURE, urand(20, 25) * IN_MILLISECONDS); - break; - case EVENT_AMPLIFY_MAGIC: - DoCastVictim(SPELL_CALL_AMPLIFY_MAGIC); - events.ScheduleEvent(EVENT_AMPLIFY_MAGIC, urand(17, 20) * IN_MILLISECONDS); - break; + switch (eventId) + { + case EVENT_ENERGIZE_CORES: + DoCast(me, SPELL_ENERGIZE_CORES); + events.CancelEvent(EVENT_ENERGIZE_CORES); + break; + case EVENT_ENERGIZE_CORES_VISUAL: + if (!firstCoreEnergize) + { + coreEnergizeOrientation = me->GetOrientation(); + firstCoreEnergize = true; + } + else + coreEnergizeOrientation = Position::NormalizeOrientation(coreEnergizeOrientation - 2.0f); + + DoCast(me, SPELL_ENERGIZE_CORES_VISUAL); + events.ScheduleEvent(EVENT_ENERGIZE_CORES_VISUAL, 5000); + events.ScheduleEvent(EVENT_ENERGIZE_CORES, 4000); + break; + case EVENT_CALL_AZURE: + // not sure how blizz handles this, i cant see any pattern between the differnt spells + DoCast(me, SPELL_CALL_AZURE_RING_CAPTAIN); + Talk(SAY_AZURE); + Talk(SAY_AZURE_EMOTE); + events.ScheduleEvent(EVENT_CALL_AZURE, urand(20, 25) * IN_MILLISECONDS); + break; + case EVENT_AMPLIFY_MAGIC: + DoCastVictim(SPELL_CALL_AMPLIFY_MAGIC); + events.ScheduleEvent(EVENT_AMPLIFY_MAGIC, urand(17, 20) * IN_MILLISECONDS); + break; + default: + break; + } } + + DoMeleeAttackIfReady(); } - DoMeleeAttackIfReady(); - } + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + Talk(SAY_DEATH); + DoCast(me, SPELL_DEATH_SPELL, true); // we cast the spell as triggered or the summon effect does not occur + } - void JustDied(Unit* /*killer*/) OVERRIDE + private: + bool firstCoreEnergize; + float coreEnergizeOrientation; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE { - _JustDied(); - Talk(SAY_DEATH); - DoCast(me, SPELL_DEATH_SPELL, true); // we cast the spell as triggered or the summon effect does not occur + return GetOculusAI(creature); } - private: - bool firstCoreEnergize; - float coreEnergizeOrientation; - }; }; class npc_azure_ring_captain : public CreatureScript @@ -259,7 +264,6 @@ class spell_varos_centrifuge_shield : public SpellScriptLoader if (Unit* caster = GetCaster()) { // flags taken from sniffs - // UNIT_FLAG_UNK_9 -> means passive but it is not yet implemented in core if (caster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_15|UNIT_FLAG_IMMUNE_TO_NPC|UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_UNK_6)) { caster->ToCreature()->SetReactState(REACT_PASSIVE); diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp index 70424119a0a..96fadc7002b 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp @@ -18,354 +18,336 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "InstanceScript.h" +#include "WorldPacket.h" #include "oculus.h" -#include "Player.h" -#define MAX_ENCOUNTER 4 +DoorData const doorData[] = +{ + { GO_DRAGON_CAGE_DOOR, DATA_DRAKOS, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } +}; -/* The Occulus encounters: -0 - Drakos the Interrogator -1 - Varos Cloudstrider -2 - Mage-Lord Urom -3 - Ley-Guardian Eregos */ +Position const VerdisaMove = { 949.188f, 1032.91f, 359.967f, 1.093027f }; +Position const BelgaristraszMove = { 941.453f, 1044.1f, 359.967f, 0.1984709f }; +Position const EternosMove = { 943.202f, 1059.35f, 359.967f, 5.757278f }; class instance_oculus : public InstanceMapScript { -public: - instance_oculus() : InstanceMapScript("instance_oculus", 578) { } - - InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE - { - return new instance_oculus_InstanceMapScript(map); - } - - struct instance_oculus_InstanceMapScript : public InstanceScript - { - instance_oculus_InstanceMapScript(Map* map) : InstanceScript(map) { } + public: + instance_oculus() : InstanceMapScript(OculusScriptName, 578) { } - void Initialize() OVERRIDE + struct instance_oculus_InstanceMapScript : public InstanceScript { - SetBossNumber(MAX_ENCOUNTER); - - drakosGUID = 0; - varosGUID = 0; - uromGUID = 0; - eregosGUID = 0; - - platformUrom = 0; - centrifugueConstructCounter = 0; - - eregosCacheGUID = 0; - - gwhelpList.clear(); - gameObjectList.clear(); + instance_oculus_InstanceMapScript(Map* map) : InstanceScript(map) + { + SetBossNumber(EncounterCount); + LoadDoorData(doorData); - belgaristraszGUID = 0; - eternosGUID = 0; - verdisaGUID = 0; -} + DrakosGUID = 0; + VarosGUID = 0; + UromGUID = 0; + EregosGUID = 0; - void OnUnitDeath(Unit* unit) OVERRIDE - { - Creature* creature = unit->ToCreature(); - if (!creature) - return; + CentrifugueConstructCounter = 0; - if (creature->GetEntry() != NPC_CENTRIFUGE_CONSTRUCT) - return; + EregosCacheGUID = 0; - DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, --centrifugueConstructCounter); + GreaterWhelpList.clear(); - if (!centrifugueConstructCounter) - if (Creature* varos = instance->GetCreature(varosGUID)) - varos->RemoveAllAuras(); - } + BelgaristraszGUID = 0; + EternosGUID = 0; + VerdisaGUID = 0; + } - void OnPlayerEnter(Player* player) OVERRIDE - { - if (GetBossState(DATA_DRAKOS_EVENT) == DONE && GetBossState(DATA_VAROS_EVENT) != DONE) + void OnCreatureCreate(Creature* creature) OVERRIDE { - player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1); - player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, centrifugueConstructCounter); - } else + switch (creature->GetEntry()) + { + case NPC_DRAKOS: + DrakosGUID = creature->GetGUID(); + break; + case NPC_VAROS: + VarosGUID = creature->GetGUID(); + if (GetBossState(DATA_DRAKOS) == DONE) + creature->SetPhaseMask(1, true); + break; + case NPC_UROM: + UromGUID = creature->GetGUID(); + if (GetBossState(DATA_VAROS) == DONE) + creature->SetPhaseMask(1, true); + break; + case NPC_EREGOS: + EregosGUID = creature->GetGUID(); + if (GetBossState(DATA_UROM) == DONE) + creature->SetPhaseMask(1, true); + break; + case NPC_CENTRIFUGE_CONSTRUCT: + if (creature->IsAlive()) + DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, ++CentrifugueConstructCounter); + break; + case NPC_BELGARISTRASZ: + BelgaristraszGUID = creature->GetGUID(); + if (GetBossState(DATA_DRAKOS) == DONE) + { + creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->Relocate(BelgaristraszMove); + } + break; + case NPC_ETERNOS: + EternosGUID = creature->GetGUID(); + if (GetBossState(DATA_DRAKOS) == DONE) + { + creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->Relocate(EternosMove); + } + break; + case NPC_VERDISA: + VerdisaGUID = creature->GetGUID(); + if (GetBossState(DATA_DRAKOS) == DONE) + { + creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + creature->Relocate(VerdisaMove); + } + break; + case NPC_GREATER_WHELP: + if (GetBossState(DATA_UROM) == DONE) + { + creature->SetPhaseMask(1, true); + GreaterWhelpList.push_back(creature->GetGUID()); + } + break; + default: + break; + } + } + + void OnGameObjectCreate(GameObject* go) OVERRIDE { - player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0); - player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 0); + switch (go->GetEntry()) + { + case GO_DRAGON_CAGE_DOOR: + AddDoor(go, true); + break; + case GO_EREGOS_CACHE_N: + case GO_EREGOS_CACHE_H: + EregosCacheGUID = go->GetGUID(); + break; + default: + break; + } } - } - void ProcessEvent(WorldObject* /*unit*/, uint32 eventId) - { - if (eventId != EVENT_CALL_DRAGON) - return; + void OnGameObjectRemove(GameObject* go) OVERRIDE + { + switch (go->GetEntry()) + { + case GO_DRAGON_CAGE_DOOR: + AddDoor(go, false); + break; + default: + break; + } + } - Creature* varos = instance->GetCreature(varosGUID); + void OnUnitDeath(Unit* unit) OVERRIDE + { + Creature* creature = unit->ToCreature(); + if (!creature) + return; - if (!varos) - return; + if (creature->GetEntry() == NPC_CENTRIFUGE_CONSTRUCT) + { + DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, --CentrifugueConstructCounter); - if (Creature* drake = varos->SummonCreature(NPC_AZURE_RING_GUARDIAN, varos->GetPositionX(), varos->GetPositionY(), varos->GetPositionZ()+40)) - drake->AI()->DoAction(ACTION_CALL_DRAGON_EVENT); - } + if (!CentrifugueConstructCounter) + if (Creature* varos = instance->GetCreature(VarosGUID)) + varos->RemoveAllAuras(); + } + } - void OnCreatureCreate(Creature* creature) OVERRIDE - { - switch (creature->GetEntry()) + void FillInitialWorldStates(WorldPacket& data) OVERRIDE { - case NPC_DRAKOS: - drakosGUID = creature->GetGUID(); - break; - case NPC_VAROS: - varosGUID = creature->GetGUID(); - if (GetBossState(DATA_DRAKOS_EVENT) == DONE) - creature->SetPhaseMask(1, true); - break; - case NPC_UROM: - uromGUID = creature->GetGUID(); - if (GetBossState(DATA_VAROS_EVENT) == DONE) - creature->SetPhaseMask(1, true); - break; - case NPC_EREGOS: - eregosGUID = creature->GetGUID(); - if (GetBossState(DATA_UROM_EVENT) == DONE) - creature->SetPhaseMask(1, true); - break; - case NPC_CENTRIFUGE_CONSTRUCT: - if (creature->IsAlive()) - DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, ++centrifugueConstructCounter); - break; - case NPC_BELGARISTRASZ: - belgaristraszGUID = creature->GetGUID(); - if (GetBossState(DATA_DRAKOS_EVENT) == DONE) - { - creature->SetWalk(true), - creature->GetMotionMaster()->MovePoint(0, 941.453f, 1044.1f, 359.967f), - creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - } - break; - case NPC_ETERNOS: - eternosGUID = creature->GetGUID(); - if (GetBossState(DATA_DRAKOS_EVENT) == DONE) - { - creature->SetWalk(true), - creature->GetMotionMaster()->MovePoint(0, 943.202f, 1059.35f, 359.967f), - creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - } - break; - case NPC_VERDISA: - verdisaGUID = creature->GetGUID(); - if (GetBossState(DATA_DRAKOS_EVENT) == DONE) - { - creature->SetWalk(true), - creature->GetMotionMaster()->MovePoint(0, 949.188f, 1032.91f, 359.967f), - creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - } - break; - case NPC_GREATER_WHELP: - if (GetBossState(DATA_UROM_EVENT) == DONE) - { - creature->SetPhaseMask(1, true); - gwhelpList.push_back(creature->GetGUID()); - } - break; + if (GetBossState(DATA_DRAKOS) == DONE && GetBossState(DATA_VAROS) != DONE) + { + data << uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW) << uint32(1); + data << uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT) << uint32(CentrifugueConstructCounter); + } + else + { + data << uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW) << uint32(0); + data << uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT) << uint32(0); + } } - } - void OnGameObjectCreate(GameObject* go) OVERRIDE - { - switch (go->GetEntry()) + void ProcessEvent(WorldObject* /*unit*/, uint32 eventId) { - case GO_DRAGON_CAGE_DOOR: - if (GetBossState(DATA_DRAKOS_EVENT) == DONE) - go->SetGoState(GO_STATE_ACTIVE); - else - go->SetGoState(GO_STATE_READY); - gameObjectList.push_back(go->GetGUID()); - break; - case GO_EREGOS_CACHE_N: - case GO_EREGOS_CACHE_H: - eregosCacheGUID = go->GetGUID(); - break; - default: - break; - } - } + if (eventId != EVENT_CALL_DRAGON) + return; - bool SetBossState(uint32 type, EncounterState state) OVERRIDE - { - if (!InstanceScript::SetBossState(type, state)) - return false; + if (Creature* varos = instance->GetCreature(VarosGUID)) + if (Creature* drake = varos->SummonCreature(NPC_AZURE_RING_GUARDIAN, varos->GetPositionX(), varos->GetPositionY(), varos->GetPositionZ() + 40)) + drake->AI()->DoAction(ACTION_CALL_DRAGON_EVENT); + } - switch (type) + bool SetBossState(uint32 type, EncounterState state) OVERRIDE { - case DATA_DRAKOS_EVENT: - if (state == DONE) - { - DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1); - DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, centrifugueConstructCounter); - OpenCageDoors(); - FreeDragons(); - if (Creature* varos = instance->GetCreature(varosGUID)) - varos->SetPhaseMask(1, true); - } - break; - case DATA_VAROS_EVENT: - if (state == DONE) - DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0); - if (Creature* urom = instance->GetCreature(uromGUID)) - urom->SetPhaseMask(1, true); - break; - case DATA_UROM_EVENT: - if (state == DONE) - { - if (Creature* eregos = instance->GetCreature(eregosGUID)) + if (!InstanceScript::SetBossState(type, state)) + return false; + + switch (type) + { + case DATA_DRAKOS: + if (state == DONE) { - eregos->SetPhaseMask(1, true); - GreaterWhelps(); + DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1); + DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, CentrifugueConstructCounter); + FreeDragons(); + if (Creature* varos = instance->GetCreature(VarosGUID)) + varos->SetPhaseMask(1, true); } - } - break; - case DATA_EREGOS_EVENT: - if (state == DONE) - DoRespawnGameObject(eregosCacheGUID, 7*DAY); - break; - } - - return true; - } + break; + case DATA_VAROS: + if (state == DONE) + DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0); + if (Creature* urom = instance->GetCreature(UromGUID)) + urom->SetPhaseMask(1, true); + break; + case DATA_UROM: + if (state == DONE) + { + if (Creature* eregos = instance->GetCreature(EregosGUID)) + { + eregos->SetPhaseMask(1, true); + GreaterWhelps(); + } + } + break; + case DATA_EREGOS: + if (state == DONE) + { + if (GameObject* cache = instance->GetGameObject(EregosCacheGUID)) + { + cache->SetRespawnTime(cache->GetRespawnDelay()); + cache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + } + } + break; + } - void SetData(uint32 type, uint32 data) OVERRIDE - { - switch (type) - { - case DATA_UROM_PLATAFORM: - platformUrom = data; - break; + return true; } - } - uint32 GetData(uint32 type) const OVERRIDE - { - switch (type) + uint64 GetData64(uint32 type) const OVERRIDE { - case DATA_UROM_PLATAFORM: return platformUrom; - // used by condition system - case DATA_UROM_EVENT: return GetBossState(DATA_UROM_EVENT); - } + switch (type) + { + case DATA_DRAKOS: + return DrakosGUID; + case DATA_VAROS: + return VarosGUID; + case DATA_UROM: + return UromGUID; + case DATA_EREGOS: + return EregosGUID; + default: + break; + } - return 0; - } + return 0; + } - uint64 GetData64(uint32 identifier) const OVERRIDE - { - switch (identifier) + void FreeDragons() { - case DATA_DRAKOS: return drakosGUID; - case DATA_VAROS: return varosGUID; - case DATA_UROM: return uromGUID; - case DATA_EREGOS: return eregosGUID; - } + if (Creature* belgaristrasz = instance->GetCreature(BelgaristraszGUID)) + { + belgaristrasz->SetWalk(true); + belgaristrasz->GetMotionMaster()->MovePoint(POINT_MOVE_OUT, BelgaristraszMove); + } - return 0; - } + if (Creature* eternos = instance->GetCreature(EternosGUID)) + { + eternos->SetWalk(true); + eternos->GetMotionMaster()->MovePoint(POINT_MOVE_OUT, EternosMove); + } - void OpenCageDoors() - { - if (gameObjectList.empty()) - return; + if (Creature* verdisa = instance->GetCreature(VerdisaGUID)) + { + verdisa->SetWalk(true); + verdisa->GetMotionMaster()->MovePoint(POINT_MOVE_OUT, VerdisaMove); + } + } - for (std::list::const_iterator itr = gameObjectList.begin(); itr != gameObjectList.end(); ++itr) + void GreaterWhelps() { - if (GameObject* go = instance->GetGameObject(*itr)) - go->SetGoState(GO_STATE_ACTIVE); + for (std::list::const_iterator itr = GreaterWhelpList.begin(); itr != GreaterWhelpList.end(); ++itr) + if (Creature* gwhelp = instance->GetCreature(*itr)) + gwhelp->SetPhaseMask(1, true); } - } - - void FreeDragons() - { - if (Creature* belgaristrasz = instance->GetCreature(belgaristraszGUID)) - belgaristrasz->SetWalk(true), - belgaristrasz->GetMotionMaster()->MovePoint(0, 941.453f, 1044.1f, 359.967f); - if (Creature* eternos = instance->GetCreature(eternosGUID)) - eternos->SetWalk(true), - eternos->GetMotionMaster()->MovePoint(0, 943.202f, 1059.35f, 359.967f); - if (Creature* verdisa = instance->GetCreature(verdisaGUID)) - verdisa->SetWalk(true), - verdisa->GetMotionMaster()->MovePoint(0, 949.188f, 1032.91f, 359.967f); - } - void GreaterWhelps() - { - if (gwhelpList.empty()) - return; - - for (std::list::const_iterator itr = gwhelpList.begin(); itr != gwhelpList.end(); ++itr) - if (Creature* gwhelp = instance->GetCreature(*itr)) - gwhelp->SetPhaseMask(1, true); - } - - std::string GetSaveData() OVERRIDE - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "T O " << GetBossSaveData(); + std::string GetSaveData() OVERRIDE + { + OUT_SAVE_INST_DATA; - str_data = saveStream.str(); + std::ostringstream saveStream; + saveStream << "T O " << GetBossSaveData(); - OUT_SAVE_INST_DATA_COMPLETE; - return str_data; - } + OUT_SAVE_INST_DATA_COMPLETE; + return saveStream.str(); + } - void Load(const char* in) OVERRIDE - { - if (!in) + void Load(char const* str) OVERRIDE { - OUT_LOAD_INST_DATA_FAIL; - return; - } + if (!str) + { + OUT_LOAD_INST_DATA_FAIL; + return; + } - OUT_LOAD_INST_DATA(in); + OUT_LOAD_INST_DATA(str); - char dataHead1, dataHead2; + char dataHead1, dataHead2; - std::istringstream loadStream(in); - loadStream >> dataHead1 >> dataHead2; + std::istringstream loadStream(str); + loadStream >> dataHead1 >> dataHead2; - if (dataHead1 == 'T' && dataHead2 == 'O') - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) + if (dataHead1 == 'T' && dataHead2 == 'O') { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); + for (uint32 i = 0; i < EncounterCount; ++i) + { + uint32 tmpState; + loadStream >> tmpState; + if (tmpState == IN_PROGRESS || tmpState > SPECIAL) + tmpState = NOT_STARTED; + SetBossState(i, EncounterState(tmpState)); + } } - } else OUT_LOAD_INST_DATA_FAIL; + else + OUT_LOAD_INST_DATA_FAIL; - OUT_LOAD_INST_DATA_COMPLETE; - } - private: - uint64 drakosGUID; - uint64 varosGUID; - uint64 uromGUID; - uint64 eregosGUID; + OUT_LOAD_INST_DATA_COMPLETE; + } - uint64 belgaristraszGUID; - uint64 eternosGUID; - uint64 verdisaGUID; + protected: + uint64 DrakosGUID; + uint64 VarosGUID; + uint64 UromGUID; + uint64 EregosGUID; - uint8 platformUrom; - uint8 centrifugueConstructCounter; + uint64 BelgaristraszGUID; + uint64 EternosGUID; + uint64 VerdisaGUID; - uint64 eregosCacheGUID; + uint8 CentrifugueConstructCounter; - std::string str_data; + uint64 EregosCacheGUID; - std::list gameObjectList; - std::list gwhelpList; - }; + std::list GreaterWhelpList; + }; + + InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE + { + return new instance_oculus_InstanceMapScript(map); + } }; void AddSC_instance_oculus() diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp index fd15cd19b37..e4ffe24754a 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp @@ -20,39 +20,20 @@ #include "ScriptedGossip.h" #include "SpellScript.h" #include "SpellAuraEffects.h" -#include "Vehicle.h" #include "CombatAI.h" -#include "oculus.h" #include "Player.h" - -#define GOSSIP_ITEM_DRAKES "So where do we go from here?" -#define GOSSIP_ITEM_BELGARISTRASZ1 "I want to fly on the wings of the Red Flight" -#define GOSSIP_ITEM_BELGARISTRASZ2 "What abilities do Ruby Drakes have?" -#define GOSSIP_ITEM_VERDISA1 "I want to fly on the wings of the Green Flight" -#define GOSSIP_ITEM_VERDISA2 "What abilities do Emerald Drakes have?" -#define GOSSIP_ITEM_ETERNOS1 "I want to fly on the wings of the Bronze Flight" -#define GOSSIP_ITEM_ETERNOS2 "What abilities do Amber Drakes have?" - -#define HAS_ESSENCE(a) ((a)->HasItemCount(ITEM_EMERALD_ESSENCE) || (a)->HasItemCount(ITEM_AMBER_ESSENCE) || (a)->HasItemCount(ITEM_RUBY_ESSENCE)) +#include "Vehicle.h" +#include "oculus.h" enum GossipNPCs { - GOSSIP_TEXTID_DRAKES = 13267, - GOSSIP_TEXTID_BELGARISTRASZ1 = 12916, - GOSSIP_TEXTID_BELGARISTRASZ2 = 13466, - GOSSIP_TEXTID_BELGARISTRASZ3 = 13254, - GOSSIP_TEXTID_VERDISA1 = 1, - GOSSIP_TEXTID_VERDISA2 = 1, - GOSSIP_TEXTID_VERDISA3 = 1, - GOSSIP_TEXTID_ETERNOS1 = 1, - GOSSIP_TEXTID_ETERNOS2 = 1, - GOSSIP_TEXTID_ETERNOS3 = 13256, - - ITEM_EMERALD_ESSENCE = 37815, - ITEM_AMBER_ESSENCE = 37859, - ITEM_RUBY_ESSENCE = 37860, - - SPELL_SHOCK_CHARGE = 49836 + GOSSIP_MENU_VERDISA = 9573, + GOSSIP_MENU_ETERNOS = 9574, + GOSSIP_MENU_BELGARISTRASZ = 9575, + + ITEM_EMERALD_ESSENCE = 37815, + ITEM_AMBER_ESSENCE = 37859, + ITEM_RUBY_ESSENCE = 37860 }; enum Drakes @@ -73,9 +54,9 @@ enum Drakes (npc 27755) (item 37859) (summoned by spell Amber Essence = 37859 ---> Call Amber Drake == 49461 ---> Summon 27755) */ - SPELL_RIDE_AMBER_DRAKE_QUE = 49459, //Apply Aura: Periodic Trigger, Interval: 3 seconds ---> 49460 SPELL_AMBER_DRAKE_SADDLE = 49460, //Allows you to ride on the back of an Amber Drake. ---> Dummy + SPELL_AMBER_SHOCK_CHARGE = 49836, SPELL_AMBER_SHOCK_LANCE = 49840, //(60 yds) - Instant - Deals 4822 to 5602 Arcane damage and detonates all Shock Charges on an enemy dragon. Damage is increased by 6525 for each detonated. // SPELL_AMBER_STOP_TIME //Instant - 1 min cooldown - Halts the passage of time, freezing all enemy dragons in place for 10 sec. This attack applies 5 Shock Charges to each affected target. //you do not have access to until you kill the Mage-Lord Urom. @@ -91,6 +72,20 @@ enum Drakes SPELL_EMERALD_TOUCH_THE_NIGHTMARE = 50341, //(60 yds) - Instant - Consumes 30% of the caster's max health to inflict 25, 000 nature damage to an enemy dragon and reduce the damage it deals by 25% for 30 sec. // you do not have access to until you kill the Mage-Lord Urom SPELL_EMERALD_DREAM_FUNNEL = 50344, //(60 yds) - Channeled - Transfers 5% of the caster's max health to a friendly drake every second for 10 seconds as long as the caster channels. + + // Misc + POINT_LAND = 2, + POINT_TAKE_OFF = 3 +}; + +enum DrakeEvents +{ + EVENT_WELCOME = 1, + EVENT_ABILITIES, + EVENT_SPECIAL_ATTACK, + EVENT_LOW_HEALTH, + EVENT_RESET_LOW_HEALTH, + EVENT_TAKE_OFF }; enum Says @@ -107,420 +102,376 @@ enum Says class npc_verdisa_beglaristrasz_eternos : public CreatureScript { -public: - npc_verdisa_beglaristrasz_eternos() : CreatureScript("npc_verdisa_beglaristrasz_eternos") { } + public: + npc_verdisa_beglaristrasz_eternos() : CreatureScript("npc_verdisa_beglaristrasz_eternos") { } - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE - { - player->PlayerTalkClass->ClearMenus(); - switch (creature->GetEntry()) + struct npc_verdisa_beglaristrasz_eternosAI : public ScriptedAI { - case NPC_VERDISA: //Verdisa + npc_verdisa_beglaristrasz_eternosAI(Creature* creature) : ScriptedAI(creature) { } + + void StoreEssence(Player* player, uint32 itemId) { - switch (action) - { - case GOSSIP_ACTION_INFO_DEF + 1: - if (!HAS_ESSENCE(player)) - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA1, creature->GetGUID()); - } - else - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_VERDISA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA2, creature->GetGUID()); - } - break; - case GOSSIP_ACTION_INFO_DEF + 2: - { - ItemPosCountVec dest; - uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_EMERALD_ESSENCE, 1); - if (msg == EQUIP_ERR_OK) - player->StoreNewItem(dest, ITEM_EMERALD_ESSENCE, true); - player->CLOSE_GOSSIP_MENU(); - break; - } - case GOSSIP_ACTION_INFO_DEF + 3: - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_VERDISA3, creature->GetGUID()); - break; - } - break; + /// @todo: should be handled by spell, but not found in dbc (49450 and other?) + uint32 count = 1; + ItemPosCountVec dest; + uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, count); + if (msg == EQUIP_ERR_OK) + if (Item* item = player->StoreNewItem(dest, itemId, true)) + player->SendNewItem(item, count, true, true); } - case NPC_BELGARISTRASZ: //Belgaristrasz + + void RemoveEssence(Player* player, uint32 itemId) { - switch (action) - { - case GOSSIP_ACTION_INFO_DEF + 1: - if (!HAS_ESSENCE(player)) - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ1, creature->GetGUID()); - } - else - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BELGARISTRASZ2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ2, creature->GetGUID()); - } - break; - case GOSSIP_ACTION_INFO_DEF + 2: - { - ItemPosCountVec dest; - uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_RUBY_ESSENCE, 1); - if (msg == EQUIP_ERR_OK) - player->StoreNewItem(dest, ITEM_RUBY_ESSENCE, true); - player->CLOSE_GOSSIP_MENU(); - break; - } - case GOSSIP_ACTION_INFO_DEF + 3: - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_BELGARISTRASZ3, creature->GetGUID()); - break; - } - break; + player->DestroyItemCount(itemId, 1, true, false); } - case NPC_ETERNOS: //Eternos + + void sGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) OVERRIDE { - switch (action) + switch (menuId) { - case GOSSIP_ACTION_INFO_DEF + 1: - if (!HAS_ESSENCE(player)) + case GOSSIP_MENU_VERDISA: + if (gossipListId >= 1 && gossipListId <= 3) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS1, creature->GetGUID()); + if (gossipListId == 2) + RemoveEssence(player, ITEM_AMBER_ESSENCE); + else if (gossipListId == 3) + RemoveEssence(player, ITEM_RUBY_ESSENCE); + + StoreEssence(player, ITEM_EMERALD_ESSENCE); + break; } - else + return; + case GOSSIP_MENU_ETERNOS: + if (gossipListId >= 1 && gossipListId <= 3) { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ETERNOS2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS2, creature->GetGUID()); + if (gossipListId == 2) + RemoveEssence(player, ITEM_EMERALD_ESSENCE); + else if (gossipListId == 3) + RemoveEssence(player, ITEM_RUBY_ESSENCE); + + StoreEssence(player, ITEM_AMBER_ESSENCE); + break; } - break; - case GOSSIP_ACTION_INFO_DEF + 2: - { - ItemPosCountVec dest; - uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_AMBER_ESSENCE, 1); - if (msg == EQUIP_ERR_OK) - player->StoreNewItem(dest, ITEM_AMBER_ESSENCE, true); - player->CLOSE_GOSSIP_MENU(); - break; - } - case GOSSIP_ACTION_INFO_DEF + 3: - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ETERNOS3, creature->GetGUID()); - break; + return; + case GOSSIP_MENU_BELGARISTRASZ: + if (gossipListId >= 0 && gossipListId <= 2) + { + if (gossipListId == 1) + RemoveEssence(player, ITEM_AMBER_ESSENCE); + else if (gossipListId == 2) + RemoveEssence(player, ITEM_EMERALD_ESSENCE); + + StoreEssence(player, ITEM_RUBY_ESSENCE); + break; + } + return; + default: + return; } - break; + player->PlayerTalkClass->SendCloseGossip(); } - } - - return true; - } - bool OnGossipHello(Player* player, Creature* creature) OVERRIDE - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (InstanceScript* instance = creature->GetInstanceScript()) - { - if (instance->GetBossState(DATA_DRAKOS_EVENT) == DONE) + void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_DRAKES, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_DRAKES, creature->GetGUID()); - } - } + if (id != POINT_MOVE_OUT) + return; - return true; - } + // When Belgaristraz finish his moving say grateful text + if (me->GetEntry() == NPC_BELGARISTRASZ) + Talk(SAY_BELGARISTRASZ); - struct npc_verdisa_beglaristrasz_eternosAI : public ScriptedAI - { - npc_verdisa_beglaristrasz_eternosAI(Creature* creature) : ScriptedAI(creature) { } + // The gossip flag should activate when Drakos die and not from DB + me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + } + }; - void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE + CreatureAI* GetAI(Creature* creature) const OVERRIDE { - if (id) - return; - - // When Belgaristraz finish his moving say grateful text - if (me->GetEntry() == NPC_BELGARISTRASZ) - Talk(SAY_BELGARISTRASZ); - - // The gossip flag should activate when Drakos die and not from DB - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + return GetOculusAI(creature); } - }; - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_verdisa_beglaristrasz_eternosAI(creature); - } }; class npc_image_belgaristrasz : public CreatureScript { -public: - npc_image_belgaristrasz() : CreatureScript("npc_image_belgaristrasz") { } - - struct npc_image_belgaristraszAI : public ScriptedAI - { - npc_image_belgaristraszAI(Creature* creature) : ScriptedAI(creature) { } + public: + npc_image_belgaristrasz() : CreatureScript("npc_image_belgaristrasz") { } - void IsSummonedBy(Unit* summoner) OVERRIDE + struct npc_image_belgaristraszAI : public ScriptedAI { - if (summoner->GetEntry() == NPC_VAROS) - { - Talk(SAY_VAROS); - me->DespawnOrUnsummon(60000); - } - if (summoner->GetEntry() == NPC_UROM) + npc_image_belgaristraszAI(Creature* creature) : ScriptedAI(creature) { } + + void IsSummonedBy(Unit* summoner) OVERRIDE { - Talk(SAY_UROM); - me->DespawnOrUnsummon(60000); + if (summoner->GetEntry() == NPC_VAROS) + { + Talk(SAY_VAROS); + me->DespawnOrUnsummon(60000); + } + + if (summoner->GetEntry() == NPC_UROM) + { + Talk(SAY_UROM); + me->DespawnOrUnsummon(60000); + } } - } - }; + }; - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_image_belgaristraszAI(creature); - } + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetOculusAI(creature); + } }; class npc_ruby_emerald_amber_drake : public CreatureScript { -public: - npc_ruby_emerald_amber_drake() : CreatureScript("npc_ruby_emerald_amber_drake") { } + public: + npc_ruby_emerald_amber_drake() : CreatureScript("npc_ruby_emerald_amber_drake") { } - struct npc_ruby_emerald_amber_drakeAI : public VehicleAI - { - npc_ruby_emerald_amber_drakeAI(Creature* creature) : VehicleAI(creature) + struct npc_ruby_emerald_amber_drakeAI : public VehicleAI { - instance = creature->GetInstanceScript(); - } - - InstanceScript* instance; + npc_ruby_emerald_amber_drakeAI(Creature* creature) : VehicleAI(creature) + { + _instance = creature->GetInstanceScript(); + } - uint64 summonerGUID; - uint32 WelcomeTimer; - uint32 WelcomeSequelTimer; - uint32 SpecialTimer; - uint32 WarningTimer; - uint32 TakeOffTimer; + void Reset() OVERRIDE + { + _events.Reset(); + _healthWarning = true; + } - bool WelcomeOff; - bool WelcomeSequelOff; - bool SpecialOff; - bool HealthWarningOff; - bool DisableTakeOff; + void IsSummonedBy(Unit* summoner) OVERRIDE + { + if (_instance->GetBossState(DATA_EREGOS) == IN_PROGRESS) + if (Creature* eregos = me->FindNearestCreature(NPC_EREGOS, 450.0f, true)) + eregos->DespawnOrUnsummon(); // On retail this kills abusive call of drake during engaged Eregos - void Reset() OVERRIDE - { - summonerGUID = 0; - WelcomeTimer = 4500; - WelcomeSequelTimer = 4500; - SpecialTimer = 10000; - WarningTimer = 25000; - TakeOffTimer = 3500; - - WelcomeOff = false; - WelcomeSequelOff = false; - SpecialOff = false; - HealthWarningOff = false; - DisableTakeOff = false; - } + me->SetFacingToObject(summoner); - void IsSummonedBy(Unit* summoner) OVERRIDE - { - if (instance->GetBossState(DATA_EREGOS_EVENT) == IN_PROGRESS) - if (Creature* eregos = me->FindNearestCreature(NPC_EREGOS, 450.0f, true)) + switch (me->GetEntry()) { - eregos->DespawnOrUnsummon(); // On retail this kills abusive call of drake during engaged Eregos + case NPC_RUBY_DRAKE_VEHICLE: + me->CastSpell(summoner, SPELL_RIDE_RUBY_DRAKE_QUE); + break; + case NPC_EMERALD_DRAKE_VEHICLE: + me->CastSpell(summoner, SPELL_RIDE_EMERALD_DRAKE_QUE); + break; + case NPC_AMBER_DRAKE_VEHICLE: + me->CastSpell(summoner, SPELL_RIDE_AMBER_DRAKE_QUE); + break; + default: + return; } - summonerGUID = summoner->GetGUID(); - me->SetFacingToObject(summoner); - // TO DO: Drake Ques should be casted from vehicle to player, however the way core handle triggered spells from auras break it no matter the conditions. So this change the caster and give the same result until someone fix triggered spells from auras that involve implicit targets or make exception for this case. - if (me->GetEntry() == NPC_RUBY_DRAKE_VEHICLE) - summoner->CastSpell(summoner, SPELL_RIDE_RUBY_DRAKE_QUE); - if (me->GetEntry() == NPC_EMERALD_DRAKE_VEHICLE) - summoner->CastSpell(summoner, SPELL_RIDE_EMERALD_DRAKE_QUE); - if (me->GetEntry() == NPC_AMBER_DRAKE_VEHICLE) - summoner->CastSpell(summoner, SPELL_RIDE_AMBER_DRAKE_QUE); - Position pos; - summoner->GetPosition(&pos); - me->GetMotionMaster()->MovePoint(0, pos); - } - void MovementInform(uint32 type, uint32 id) OVERRIDE - { - if (type == POINT_MOTION_TYPE && id == 0) - me->SetDisableGravity(false); // Needed this for proper animation after spawn, the summon in air fall to ground bug leave no other option for now, if this isn't used the drake will only walk on move. - } + Position pos; + summoner->GetPosition(&pos); + me->GetMotionMaster()->MovePoint(POINT_LAND, pos); + } - void UpdateAI(uint32 diff) OVERRIDE - { - if (!(instance->GetBossState(DATA_VAROS_EVENT) == DONE)) + void MovementInform(uint32 type, uint32 id) OVERRIDE { - if (me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE)) - { - if (!(WelcomeOff)) - { - if (WelcomeTimer <= diff) - { - Talk(WHISPER_DRAKES_WELCOME, me->GetCreatorGUID()); - WelcomeOff = true; - WelcomeSequelOff = true; - } - else WelcomeTimer -= diff; - } - } + if (type == POINT_MOTION_TYPE && id == POINT_LAND) + me->SetDisableGravity(false); // Needed this for proper animation after spawn, the summon in air fall to ground bug leave no other option for now, if this isn't used the drake will only walk on move. } - if (me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE)) + + void PassengerBoarded(Unit* passenger, int8 seatId, bool apply) { - if (WelcomeSequelOff) + if (passenger->GetTypeId() != TYPEID_PLAYER) + return; + + if (apply) { - if (WelcomeSequelTimer <= diff) - { - Talk(WHISPER_DRAKES_ABILITIES, me->GetCreatorGUID()); - WelcomeSequelOff = false; - } - else WelcomeSequelTimer -= diff; - } + if (_instance->GetBossState(DATA_VAROS) != DONE) + _events.ScheduleEvent(EVENT_WELCOME, 10 * IN_MILLISECONDS); - if (instance->GetBossState(DATA_UROM_EVENT) == DONE) + else if (_instance->GetBossState(DATA_UROM) == DONE) + _events.ScheduleEvent(EVENT_SPECIAL_ATTACK, 10 * IN_MILLISECONDS); + } + else { - if (!(SpecialOff)) - { - if (SpecialTimer <= diff) - { - Talk(WHISPER_DRAKES_SPECIAL, me->GetCreatorGUID()); - SpecialOff = true; - } - else SpecialTimer -= diff; - } + _events.Reset(); + _events.ScheduleEvent(EVENT_TAKE_OFF, 2 * IN_MILLISECONDS); } + } - if (!(HealthWarningOff)) + void UpdateAI(uint32 diff) OVERRIDE + { + if (_healthWarning) { if (me->GetHealthPct() <= 40.0f) - { - Talk(WHISPER_DRAKES_LOWHEALTH, me->GetCreatorGUID()); - HealthWarningOff = true; - } + _events.ScheduleEvent(EVENT_LOW_HEALTH, 0); } - if (HealthWarningOff) + _events.Update(diff); + + while (uint32 eventId = _events.ExecuteEvent()) { - if (WarningTimer <= diff) + switch (eventId) { - HealthWarningOff = false; - WarningTimer = 25000; + case EVENT_WELCOME: + Talk(WHISPER_DRAKES_WELCOME, me->GetCreatorGUID()); + _events.ScheduleEvent(EVENT_ABILITIES, 5 * IN_MILLISECONDS); + break; + case EVENT_ABILITIES: + Talk(WHISPER_DRAKES_ABILITIES, me->GetCreatorGUID()); + break; + case EVENT_SPECIAL_ATTACK: + Talk(WHISPER_DRAKES_SPECIAL, me->GetCreatorGUID()); + break; + case EVENT_LOW_HEALTH: + Talk(WHISPER_DRAKES_LOWHEALTH, me->GetCreatorGUID()); + _healthWarning = false; + _events.ScheduleEvent(EVENT_RESET_LOW_HEALTH, 25000); + break; + case EVENT_RESET_LOW_HEALTH: + _healthWarning = true; + break; + case EVENT_TAKE_OFF: + { + me->DespawnOrUnsummon(2050); + me->SetOrientation(2.5f); + me->SetSpeed(MOVE_FLIGHT, 1.0f, true); + Talk(SAY_DRAKES_TAKEOFF); + Position pos; + me->GetPosition(&pos); + Position offset = { 10.0f, 10.0f, 12.0f, 0.0f }; + pos.RelocateOffset(offset); + me->SetDisableGravity(true); + me->GetMotionMaster()->MovePoint(POINT_TAKE_OFF, pos); + break; + } + default: + break; } - else WarningTimer -= diff; } - } + }; - if (!(me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE))) - { - if (!(DisableTakeOff)) - { - if (TakeOffTimer <= diff) - { - me->DespawnOrUnsummon(2050); - me->SetOrientation(2.5f); - me->SetSpeed(MOVE_FLIGHT, 1.0f, true); - Talk(SAY_DRAKES_TAKEOFF); - Position pos; - me->GetPosition(&pos); - pos.m_positionX += 10.0f; - pos.m_positionY += 10.0f; - pos.m_positionZ += 12.0f; - me->GetMotionMaster()->MovePoint(1, pos); - DisableTakeOff = true; - } - else TakeOffTimer -= diff; - } - } + private: + InstanceScript* _instance; + EventMap _events; + bool _healthWarning; }; - }; - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_ruby_emerald_amber_drakeAI(creature); - } + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetOculusAI(creature); + } }; -class spell_gen_stop_time : public SpellScriptLoader +// 49345 - Call Emerald Drake +// 49461 - Call Amber Drake +// 49462 - Call Ruby Drake +class spell_oculus_call_ruby_emerald_amber_drake : public SpellScriptLoader { -public: - spell_gen_stop_time() : SpellScriptLoader("spell_gen_stop_time") { } - - class spell_gen_stop_time_AuraScript : public AuraScript - { - PrepareAuraScript(spell_gen_stop_time_AuraScript); + public: + spell_oculus_call_ruby_emerald_amber_drake() : SpellScriptLoader("spell_oculus_call_ruby_emerald_amber_drake") { } - void Apply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + class spell_oculus_call_ruby_emerald_amber_drake_SpellScript : public SpellScript { - Unit* caster = GetCaster(); - if (!caster) - return; - Unit* target = GetTarget(); - for (uint32 i = 0; i < 5; ++i) - caster->CastSpell(target, SPELL_SHOCK_CHARGE, false); - } + PrepareSpellScript(spell_oculus_call_ruby_emerald_amber_drake_SpellScript); - void Register() OVERRIDE + void ChangeSummonPos(SpellEffIndex /*effIndex*/) + { + // Adjust effect summon position + WorldLocation summonPos = *GetExplTargetDest(); + Position offset = { 0.0f, 0.0f, 12.0f, 0.0f }; + summonPos.RelocateOffset(offset); + SetExplTargetDest(summonPos); + GetHitDest()->RelocateOffset(offset); + } + + void ModDestHeight(SpellEffIndex /*effIndex*/) + { + // Used to cast visual effect at proper position + Position offset = { 0.0f, 0.0f, 12.0f, 0.0f }; + const_cast(GetExplTargetDest())->RelocateOffset(offset); + } + + void Register() OVERRIDE + { + OnEffectHit += SpellEffectFn(spell_oculus_call_ruby_emerald_amber_drake_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON); + OnEffectLaunch += SpellEffectFn(spell_oculus_call_ruby_emerald_amber_drake_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_SUMMON); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE { - AfterEffectApply += AuraEffectApplyFn(spell_gen_stop_time_AuraScript::Apply, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL); + return new spell_oculus_call_ruby_emerald_amber_drake_SpellScript(); } - }; - - AuraScript* GetAuraScript() const OVERRIDE - { - return new spell_gen_stop_time_AuraScript(); - } }; -class spell_call_ruby_emerald_amber_drake : public SpellScriptLoader +// 49427 - Ride Emerald Drake Que +// 49459 - Ride Amber Drake Que +// 49463 - Ride Ruby Drake Que +class spell_oculus_ride_ruby_emerald_amber_drake_que : public SpellScriptLoader { -public: - spell_call_ruby_emerald_amber_drake() : SpellScriptLoader("spell_call_ruby_emerald_amber_drake") { } + public: + spell_oculus_ride_ruby_emerald_amber_drake_que() : SpellScriptLoader("spell_oculus_ride_ruby_emerald_amber_drake_que") { } + + class spell_oculus_ride_ruby_emerald_amber_drake_que_AuraScript : public AuraScript + { + PrepareAuraScript(spell_oculus_ride_ruby_emerald_amber_drake_que_AuraScript); - class spell_call_ruby_emerald_amber_drake_SpellScript : public SpellScript - { - PrepareSpellScript(spell_call_ruby_emerald_amber_drake_SpellScript); + void HandlePeriodic(AuraEffect const* aurEff) + { + // caster of the triggered spell is wrong for an unknown reason, handle it here correctly + PreventDefaultAction(); + if (Unit* caster = GetCaster()) + GetTarget()->CastSpell(caster, GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, true); + } + + void Register() OVERRIDE + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_oculus_ride_ruby_emerald_amber_drake_que_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); + } + }; - void ChangeSummonPos(SpellEffIndex /*effIndex*/) + AuraScript* GetAuraScript() const OVERRIDE { - // Adjust effect summon position - WorldLocation summonPos = *GetExplTargetDest(); - Position offset = {0.0f, 0.0f, 12.0f, 0.0f}; - summonPos.RelocateOffset(offset); - SetExplTargetDest(summonPos); - GetHitDest()->RelocateOffset(offset); + return new spell_oculus_ride_ruby_emerald_amber_drake_que_AuraScript(); } +}; + +// 49838 - Stop Time +class spell_oculus_stop_time : public SpellScriptLoader +{ + public: + spell_oculus_stop_time() : SpellScriptLoader("spell_oculus_stop_time") { } - void ModDestHeight(SpellEffIndex /*effIndex*/) + class spell_oculus_stop_time_AuraScript : public AuraScript { - // Used to cast visual effect at proper position - Position offset = {0.0f, 0.0f, 12.0f, 0.0f}; - const_cast(GetExplTargetDest())->RelocateOffset(offset); - } + PrepareAuraScript(spell_oculus_stop_time_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_AMBER_SHOCK_CHARGE)) + return false; + return true; + } + + void Apply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* caster = GetCaster(); + if (!caster) + return; - void Register() OVERRIDE + Unit* target = GetTarget(); + for (uint32 i = 0; i < 5; ++i) + caster->CastSpell(target, SPELL_AMBER_SHOCK_CHARGE, false); + } + + void Register() OVERRIDE + { + AfterEffectApply += AuraEffectApplyFn(spell_oculus_stop_time_AuraScript::Apply, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL); + } + }; + + AuraScript* GetAuraScript() const OVERRIDE { - OnEffectHit += SpellEffectFn(spell_call_ruby_emerald_amber_drake_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON); - OnEffectLaunch += SpellEffectFn(spell_call_ruby_emerald_amber_drake_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_SUMMON); + return new spell_oculus_stop_time_AuraScript(); } - }; - - SpellScript* GetSpellScript() const OVERRIDE - { - return new spell_call_ruby_emerald_amber_drake_SpellScript(); - } }; - class spell_oculus_touch_the_nightmare : public SpellScriptLoader { public: @@ -582,8 +533,9 @@ void AddSC_oculus() new npc_verdisa_beglaristrasz_eternos(); new npc_image_belgaristrasz(); new npc_ruby_emerald_amber_drake(); - new spell_gen_stop_time(); - new spell_call_ruby_emerald_amber_drake(); + new spell_oculus_call_ruby_emerald_amber_drake(); + new spell_oculus_ride_ruby_emerald_amber_drake_que(); + new spell_oculus_stop_time(); new spell_oculus_touch_the_nightmare(); new spell_oculus_dream_funnel(); } diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.h b/src/server/scripts/Northrend/Nexus/Oculus/oculus.h index 2dd5df3bc3b..6f34cfbf6e5 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.h +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.h @@ -15,59 +15,55 @@ * with this program. If not, see . */ -#ifndef DEF_OCULUS_H -#define DEF_OCULUS_H +#ifndef OCULUS_H_ +#define OCULUS_H_ -enum Data -{ - DATA_DRAKOS_EVENT, - DATA_VAROS_EVENT, - DATA_UROM_EVENT, - DATA_EREGOS_EVENT, - DATA_UROM_PLATAFORM -}; +#define OculusScriptName "instance_oculus" + +uint32 const EncounterCount = 4; -enum Data64 +enum DataTypes { - DATA_DRAKOS, - DATA_VAROS, - DATA_UROM, - DATA_EREGOS + // Encounter States/Boss GUIDs + DATA_DRAKOS = 0, + DATA_VAROS = 1, + DATA_UROM = 2, + DATA_EREGOS = 3 }; -enum Bosses_NPCs +enum CreatureIds { NPC_DRAKOS = 27654, NPC_VAROS = 27447, NPC_UROM = 27655, NPC_EREGOS = 27656, - NPC_AZURE_RING_GUARDIAN = 28236, - NPC_CENTRIFUGE_CONSTRUCT = 27641, - NPC_RUBY_DRAKE_VEHICLE = 27756, - NPC_EMERALD_DRAKE_VEHICLE = 27692, - NPC_AMBER_DRAKE_VEHICLE = 27755, - NPC_VERDISA = 27657, - NPC_BELGARISTRASZ = 27658, - NPC_ETERNOS = 27659, - NPC_GREATER_WHELP = 28276 + NPC_AZURE_RING_GUARDIAN = 28236, + NPC_CENTRIFUGE_CONSTRUCT = 27641, + NPC_RUBY_DRAKE_VEHICLE = 27756, + NPC_EMERALD_DRAKE_VEHICLE = 27692, + NPC_AMBER_DRAKE_VEHICLE = 27755, + NPC_VERDISA = 27657, + NPC_BELGARISTRASZ = 27658, + NPC_ETERNOS = 27659, + NPC_GREATER_WHELP = 28276 }; -enum GameObjects +enum GameObjectIds { - GO_DRAGON_CAGE_DOOR = 193995, - GO_EREGOS_CACHE_N = 191349, - GO_EREGOS_CACHE_H = 193603 + GO_DRAGON_CAGE_DOOR = 193995, + GO_EREGOS_CACHE_N = 191349, + GO_EREGOS_CACHE_H = 193603 }; enum SpellEvents { - EVENT_CALL_DRAGON = 12229 + EVENT_CALL_DRAGON = 12229 }; enum CreatureActions { - ACTION_CALL_DRAGON_EVENT = 1 + ACTION_CALL_DRAGON_EVENT = 1 }; enum OculusWorldStates @@ -78,7 +74,19 @@ enum OculusWorldStates enum OculusSpells { - SPELL_CENTRIFUGE_SHIELD = 50053, - SPELL_DEATH_SPELL = 50415 + SPELL_CENTRIFUGE_SHIELD = 50053, + SPELL_DEATH_SPELL = 50415 }; -#endif + +enum Misc +{ + POINT_MOVE_OUT = 1 +}; + +template +AI* GetOculusAI(Creature* creature) +{ + return GetInstanceAI(creature, OculusScriptName); +} + +#endif // OCULUS_H_ -- cgit v1.2.3 From 96daa553b42109aa3b9d844434d52674522badac Mon Sep 17 00:00:00 2001 From: Dr-J Date: Sun, 24 Nov 2013 20:25:49 +0000 Subject: Removing unneeded scripts from zone_zuldrak.cpp (Core scripts for Amphitheatre of anguish chain removing cpp scripts scripts, please check this as dont know much about c but have just removed everything relating to amphitheatre npcs, or lines 168 - 1143 and 1869,1870,1871,1872,1873,1876 or the complete scripts for all involved npcs and the individual lines from void AddSC_zuldrak --- src/server/scripts/Northrend/zone_zuldrak.cpp | 983 -------------------------- 1 file changed, 983 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 8a6ae674491..97d14468056 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -165,982 +165,6 @@ public: } }; -/*#### -## npc_gurgthock -####*/ - -enum Gurgthock -{ - QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON = 12935, - QUEST_AMPHITHEATER_ANGUISH_KORRAK_BLOODRAGER = 12936, - QUEST_AMPHITHEATER_ANGUISH_YGGDRAS_2 = 12954, - QUEST_AMPHITHEATER_ANGUISH_YGGDRAS_1 = 12932, - QUEST_AMPHITHEATER_ANGUISH_MAGNATAUR = 12933, - QUEST_AMPHITHEATER_ANGUISH_FROM_BEYOND = 12934, - - NPC_ORINOKO_TUSKBREAKER = 30020, - NPC_KORRAK_BLOODRAGER = 30023, - NPC_YGGDRAS = 30014, - NPC_STINKBEARD = 30017, - NPC_AZ_BARIN = 30026, // air - NPC_DUKE_SINGEN = 30019, // fire - NPC_ERATHIUS = 30025, // earth - NPC_GARGORAL = 30024, // water - NPC_FIEND_WATER = 30044, - NPC_FIEND_AIR = 30045, - NPC_FIEND_FIRE = 30042, - NPC_FIEND_EARTH = 30043, - - SAY_QUEST_ACCEPT_TUSKARRMAGEDON = 0, - SAY_QUEST_ACCEPT_KORRAK_1 = 1, - SAY_QUEST_ACCEPT_KORRAK_2 = 2, - SAY_QUEST_ACCEPT_MAGNATAUR = 3, - EMOTE_YGGDRAS_SPAWN = 4, - SAY_STINKBEARD_SPAWN = 5, - SAY_GURGTHOCK_ELEMENTAL_SPAWN = 6, - SAY_GURGTHOCK_7 = 7, - SAY_QUEST_AMPHITHEATER_ANGUISH_YGGDRAS = 8, - SAY_GURGTHOCK_9 = 9, - - SAY_CALL_FOR_HELP = 0, - SAY_RECRUIT = 0, - - SPELL_CRASHING_WAVE = 55909, // water - SPELL_SHOCKWAVE = 55918, // earth - SPELL_BLAST_OF_AIR = 55912, // air - SPELL_MAGMA_WAVE = 55916, // fire - - SPELL_ORB_OF_WATER = 55888, // fiend of water spell - SPELL_ORB_OF_STORMS = 55882, // fiend of air spell - SPELL_BOULDER = 55886, // fiend of earth spell - SPELL_ORB_OF_FLAME = 55872, // fiend of fire spell -}; - -struct BossAndAdd -{ - uint32 uiBoss; - uint32 uiAdd; - uint32 uiSpell; - uint32 uiAddSpell; -}; - -static BossAndAdd Boss[]= -{ - {NPC_GARGORAL, NPC_FIEND_WATER, SPELL_CRASHING_WAVE, SPELL_ORB_OF_WATER}, - {NPC_AZ_BARIN, NPC_FIEND_AIR, SPELL_BLAST_OF_AIR, SPELL_ORB_OF_STORMS}, - {NPC_DUKE_SINGEN, NPC_FIEND_FIRE, SPELL_MAGMA_WAVE, SPELL_ORB_OF_FLAME}, - {NPC_ERATHIUS, NPC_FIEND_EARTH, SPELL_SHOCKWAVE, SPELL_BOULDER}, -}; - -const Position SpawnPosition[] = -{ - {5754.692f, -2939.46f, 286.276123f, 5.156380f}, // stinkbeard || orinoko || korrak - {5762.054199f, -2954.385010f, 273.826955f, 5.108289f}, //yggdras - {5776.855f, -2989.77979f, 272.96814f, 5.194f} // elementals -}; - -const Position AddSpawnPosition[] = -{ - {5722.487f, -3010.75f, 312.751648f, 0.478f}, // caster location - {5724.983f, -2969.89551f, 286.359619f, 0.478f}, - {5733.76025f, -3000.34644f, 286.359619f, 0.478f}, - {5739.8125f, -2981.524f, 290.7671f, 0.478f}, // caster location - {5742.101f, -2950.75586f, 286.2643f, 5.21f}, - {5743.305f, -3011.29736f, 290.7671f, 0.478f}, // caster location - {5744.417f, -3025.528f, 286.35965f, 0.478f}, - {5763.189f, -3029.67529f, 290.7671f, 0.478f}, - {5769.401f, -2935.121f, 286.335754f, 5.21f}, - {5793.061f, -2934.593f, 286.359619f, 3.53f}, - {5797.32129f, -2955.26855f, 290.7671f, 3.53f}, // caster location - {5813.94531f, -2956.74683f, 286.359619f, 3.53f}, - {5816.85547f, -2974.476f, 290.7671f, 3.53f}, // caster location - {5820.30859f, -3002.83716f, 290.7671f, 3.53f}, // caster location - {5828.50244f, -2981.737f, 286.359619f, 3.53f}, - {5828.899f, -2960.15479f, 312.751648f, 3.53f}, // caster location -}; - -class npc_gurgthock : public CreatureScript -{ -public: - npc_gurgthock() : CreatureScript("npc_gurgthock") { } - - struct npc_gurgthockAI : public ScriptedAI - { - npc_gurgthockAI(Creature* creature) : ScriptedAI(creature) { } - - void Reset() OVERRIDE - { - _summonGUID = 0; - _playerGUID = 0; - - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - uiTimer = 0; - uiPhase = 0; - uiQuest = 0; - uiRemoveFlagTimer = 5000; - - _bossRandom = 0; - - _removeFlag = false; - } - - void SetGUID(uint64 guid, int32 /*id*/) OVERRIDE - { - _playerGUID = guid; - } - - void SetData(uint32 type, uint32 data) OVERRIDE - { - _removeFlag = true; - me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - - switch (type) - { - case 1: - switch (data) - { - case QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON: - Talk(SAY_QUEST_ACCEPT_TUSKARRMAGEDON); - uiPhase = 1; - uiTimer = 4000; - break; - case QUEST_AMPHITHEATER_ANGUISH_KORRAK_BLOODRAGER: - Talk(SAY_QUEST_ACCEPT_KORRAK_1); - uiPhase = 3; - uiTimer = 3000; - break; - case QUEST_AMPHITHEATER_ANGUISH_YGGDRAS_2: - case QUEST_AMPHITHEATER_ANGUISH_YGGDRAS_1: - uiPhase = 6; - uiTimer = 3000; - break; - case QUEST_AMPHITHEATER_ANGUISH_MAGNATAUR: - uiTimer = 5000; - uiPhase = 7; - break; - case QUEST_AMPHITHEATER_ANGUISH_FROM_BEYOND: - uiTimer = 2000; - uiPhase = 12; - break; - } - break; - } - } - - void UpdateAI(uint32 diff) OVERRIDE - { - ScriptedAI::UpdateAI(diff); - - if (_removeFlag) - { - if (uiRemoveFlagTimer <= diff) - { - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - _removeFlag = false; - - uiRemoveFlagTimer = 10000; - } else uiRemoveFlagTimer -= diff; - } - - if (uiPhase) - { - if (uiTimer <= diff) - { - switch (uiPhase) - { - case 1: - if (Creature* summon = me->SummonCreature(NPC_ORINOKO_TUSKBREAKER, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000)) - _summonGUID = summon->GetGUID(); - uiPhase = 2; - uiTimer = 4000; - break; - case 2: - if (Creature* summon = Unit::GetCreature(*me, _summonGUID)) - summon->GetMotionMaster()->MoveJump(5776.319824f, -2981.005371f, 273.100037f, 10.0f, 20.0f); - uiPhase = 0; - _summonGUID = 0; - break; - case 3: - Talk(SAY_QUEST_ACCEPT_KORRAK_2); - uiTimer = 3000; - uiPhase = 4; - break; - case 4: - if (Creature* summon = me->SummonCreature(NPC_KORRAK_BLOODRAGER, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000)) - _summonGUID = summon->GetGUID(); - uiTimer = 3000; - uiPhase = 0; - break; - case 6: - Talk(SAY_GURGTHOCK_7, _playerGUID); - uiTimer = 5000; - uiPhase = 9; - break; - case 7: - Talk(SAY_GURGTHOCK_9, _playerGUID); - uiTimer = 3000; - uiPhase = 8; - break; - case 8: - Talk(SAY_QUEST_ACCEPT_MAGNATAUR); - uiTimer = 5000; - uiPhase = 11; - break; - case 9: - Talk(SAY_QUEST_AMPHITHEATER_ANGUISH_YGGDRAS, _playerGUID); - uiTimer = 10000; - uiPhase = 10; - break; - case 10: - me->SummonCreature(NPC_YGGDRAS, SpawnPosition[1], TEMPSUMMON_CORPSE_DESPAWN, 1000); - Talk(EMOTE_YGGDRAS_SPAWN); - uiPhase = 0; - break; - case 11: - if (Creature* creature = me->SummonCreature(NPC_STINKBEARD, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000)) - creature->AI()->Talk(SAY_STINKBEARD_SPAWN); - uiPhase = 0; - break; - case 12: - Talk(SAY_GURGTHOCK_9, _playerGUID); - uiTimer = 5000; - uiPhase = 13; - break; - case 13: - Talk(SAY_GURGTHOCK_ELEMENTAL_SPAWN); - uiTimer = 3000; - uiPhase = 14; - break; - case 14: - _bossRandom = urand(0, 3); - if (Creature* creature = me->SummonCreature(Boss[_bossRandom].uiBoss, SpawnPosition[2], TEMPSUMMON_CORPSE_DESPAWN, 1000)) - creature->AI()->SetData(1, _bossRandom); - uiPhase = 0; - break; - } - } - else - uiTimer -= diff; - } - } - - private: - bool _removeFlag; - uint8 _bossRandom; - uint64 _summonGUID; - uint64 _playerGUID; - - uint32 uiTimer; - uint32 uiPhase; - uint32 uiRemoveFlagTimer; - uint32 uiQuest; - - }; - - bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE - { - switch (quest->GetQuestId()) - { - case QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON: - creature->AI()->SetData(1, quest->GetQuestId()); - break; - case QUEST_AMPHITHEATER_ANGUISH_KORRAK_BLOODRAGER: - creature->AI()->SetData(1, quest->GetQuestId()); - break; - case QUEST_AMPHITHEATER_ANGUISH_YGGDRAS_2: - case QUEST_AMPHITHEATER_ANGUISH_YGGDRAS_1: - creature->AI()->SetData(1, quest->GetQuestId()); - break; - case QUEST_AMPHITHEATER_ANGUISH_MAGNATAUR: - creature->AI()->SetData(1, quest->GetQuestId()); - break; - case QUEST_AMPHITHEATER_ANGUISH_FROM_BEYOND: - creature->AI()->SetData(1, quest->GetQuestId()); - break; - } - - creature->AI()->SetGUID(player->GetGUID()); - - return false; - } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_gurgthockAI(creature); - } -}; - -/*#### -## npc_orinoko_tuskbreaker -####*/ - -enum OrinokoTuskbreaker -{ - NPC_WHISKER = 30113, - NPC_HUNGRY_PENGUIN = 30110, - - SPELL_BATTLE_SHOUT = 32064, - SPELL_FISHY_SCENT = 55937, - SPELL_IMPALE = 55929, - SPELL_SUMMON_WHISKER = 55946 -}; - -class npc_orinoko_tuskbreaker : public CreatureScript -{ -public: - npc_orinoko_tuskbreaker() : CreatureScript("npc_orinoko_tuskbreaker") { } - - struct npc_orinoko_tuskbreakerAI : public ScriptedAI - { - npc_orinoko_tuskbreakerAI(Creature* creature) : ScriptedAI(creature) - { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - me->SetReactState(REACT_PASSIVE); - } - - void Reset() OVERRIDE - { - _summoned = false; - _battleShout = false; - _fishyScent = false; - uiBattleShoutTimer = 0; - uiFishyScentTimer = 20000; - _whiskerGUID = 0; - _affectedGUID = 0; - } - - void EnterEvadeMode() OVERRIDE - { - if (Creature* whisker = me->GetCreature(*me, _whiskerGUID)) - whisker->RemoveFromWorld(); - } - - void MovementInform(uint32 type, uint32 /*pointId*/) OVERRIDE - { - if (type != EFFECT_MOTION_TYPE) - return; - - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - me->SetReactState(REACT_AGGRESSIVE); - me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); - uiBattleShoutTimer = 7000; - } - - void EnterCombat(Unit* who) OVERRIDE - { - DoCast(who, SPELL_IMPALE); - } - - void UpdateAI(uint32 diff) OVERRIDE - { - if (!UpdateVictim()) - return; - - if (!_battleShout && uiBattleShoutTimer <= diff) - { - DoCast(me, SPELL_BATTLE_SHOUT); - _battleShout = true; - } else uiBattleShoutTimer -= diff; - - if (uiFishyScentTimer <= diff) - { - if (Unit* affected = SelectTarget(SELECT_TARGET_RANDOM, 0)) - { - DoCast(affected, SPELL_FISHY_SCENT); - _affectedGUID = affected->GetGUID(); - } - uiFishyScentTimer = 20000; - } else uiFishyScentTimer -= diff; - - if (!_summoned && !HealthAbovePct(50)) - { - Talk(SAY_CALL_FOR_HELP); - //DoCastVictim(SPELL_SUMMON_WHISKER); petai is not working correctly??? - - if (Creature* whisker = me->SummonCreature(NPC_WHISKER, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0)) - _whiskerGUID = whisker->GetGUID(); - _summoned = true; - } - - DoMeleeAttackIfReady(); - } - - void JustSummoned(Creature* summon) OVERRIDE - { - switch (summon->GetEntry()) - { - case NPC_WHISKER: - summon->AI()->AttackStart(me->GetVictim()); - break; - case NPC_HUNGRY_PENGUIN: - if (Unit* affected = Unit::GetUnit(*me, _affectedGUID)) - { - if (affected->IsAlive()) - summon->AI()->AttackStart(affected); - } - break; - } - } - - void JustDied(Unit* killer) OVERRIDE - { - if (_whiskerGUID) - if (Creature* whisker = me->GetCreature(*me, _whiskerGUID)) - whisker->RemoveFromWorld(); - - if (killer->GetTypeId() == TYPEID_PLAYER) - killer->GetCharmerOrOwnerPlayerOrPlayerItself()->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON, killer); - - } - - private: - bool _summoned; - bool _battleShout; - bool _fishyScent; - uint32 uiBattleShoutTimer; - uint32 uiFishyScentTimer; - uint64 _affectedGUID; - uint64 _whiskerGUID; - }; - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_orinoko_tuskbreakerAI(creature); - } -}; - -/*#### -## npc_korrak_bloodrager -####*/ - -enum KorrakBloodrager -{ - SPELL_GROW = 55948, - SPELL_CHARGE = 24193, - SPELL_UPPERCUT = 30471, - SPELL_ENRAGE = 42745 -}; - -class npc_korrak_bloodrager : public CreatureScript -{ -public: - npc_korrak_bloodrager() : CreatureScript("npc_korrak_bloodrager") { } - - struct npc_korrak_bloodragerAI : public npc_escortAI - { - npc_korrak_bloodragerAI(Creature* creature) : npc_escortAI(creature) - { - Start(true, true, 0, NULL); - SetDespawnAtEnd(false); - } - - void Reset() OVERRIDE - { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - me->SetReactState(REACT_PASSIVE); - _enrage = false; - _chargeTimer = 15000; - _uppercutTimer = 12000; - - } - - void WaypointReached(uint32 waypointId) OVERRIDE - { - switch (waypointId) - { - case 6: - me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - me->SetReactState(REACT_AGGRESSIVE); - break; - } - } - - void EnterCombat(Unit* /*who*/) OVERRIDE - { - DoCast(me, SPELL_GROW); - } - - void UpdateAI(uint32 diff) OVERRIDE - { - npc_escortAI::UpdateAI(diff); - - if (!UpdateVictim()) - return; - - if (_uppercutTimer <= diff) - { - if (Unit* target = SelectTarget(SELECT_TARGET_NEAREST, 0)) - DoCast(target, SPELL_UPPERCUT); - _uppercutTimer = 12000; - } else _uppercutTimer -= diff; - - if (_chargeTimer <= diff) - { - if (Unit* target = SelectTarget(SELECT_TARGET_FARTHEST, 0)) - DoCast(target, SPELL_CHARGE); - _chargeTimer = 15000; - } else _chargeTimer -= diff; - - if (!_enrage && !HealthAbovePct(20)) - { - DoCast(me, SPELL_ENRAGE); - _enrage = true; - } - DoMeleeAttackIfReady(); - } - - void JustDied(Unit* killer) OVERRIDE - { - if (Player* player = killer->GetCharmerOrOwnerPlayerOrPlayerItself()) - player->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_KORRAK_BLOODRAGER, killer); - } - private: - bool _enrage; - uint32 _chargeTimer; - uint32 _uppercutTimer; - }; - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_korrak_bloodragerAI(creature); - } -}; - -/*#### -## npc_yggdras -####*/ - -enum Yggdras -{ - SPELL_CLEAVE = 40504, - SPELL_CORRODE_FLESH = 57076, - SPELL_JORMUNGAR_SPAWN = 55859 -}; - -class npc_yggdras : public CreatureScript -{ -public: - npc_yggdras() : CreatureScript("npc_yggdras") { } - - struct npc_yggdrasAI : public ScriptedAI - { - npc_yggdrasAI(Creature* creature) : ScriptedAI(creature) { } - - void Reset() OVERRIDE - { - _cleaveTimer = 9000; - _corrodeFleshTimer = 6000; - } - - void UpdateAI(uint32 diff) OVERRIDE - { - if (!UpdateVictim()) - return; - - if (me->GetVictim()->GetPositionZ() >= 286.276f) - { - std::list t_list = me->getThreatManager().getThreatList(); - for (std::list::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) - { - if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) - { - if (unit->GetPositionZ() <= 286.276f) - { - me->getThreatManager().resetAllAggro(); - me->AddThreat(unit, 5.0f); - break; - } - EnterEvadeMode(); - } - } - } - - if (_cleaveTimer <= diff) - { - DoCastVictim(SPELL_CLEAVE); - _cleaveTimer = 9000; - } else _cleaveTimer -= diff; - - if (_corrodeFleshTimer <= diff) - { - DoCastVictim(SPELL_CORRODE_FLESH); - _corrodeFleshTimer = 6000; - } else _corrodeFleshTimer -= diff; - - DoMeleeAttackIfReady(); - } - - void JustDied(Unit* killer) OVERRIDE - { - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) - { - std::string sText = (std::string(killer->GetName()) + " has defeated Yg.. Yggg-really big worm!"); - summoner->MonsterYell(sText.c_str(), LANG_UNIVERSAL, 0); - } - - if (Player* player = killer->GetCharmerOrOwnerPlayerOrPlayerItself()) - { - player->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_YGGDRAS_1, killer); - player->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_YGGDRAS_2, killer); - } - - for (uint8 i = 0; i < 3; ++i) - DoCast(killer, SPELL_JORMUNGAR_SPAWN, true); - } - private: - uint32 _cleaveTimer; - uint32 _corrodeFleshTimer; - }; - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_yggdrasAI(creature); - } -}; - -/*#### -## npc_stinkbeard -####*/ - -enum Stinkbeard -{ - SPELL_ENRAGE_STINKBEARD = 50420, - SPELL_KNOCK_AWAY = 31389, - SPELL_STINKY_BEARD = 55867, - SPELL_THUNDERBLADE = 55866, - SPELL_THUNDERCLAP = 15588 -}; - -class npc_stinkbeard : public CreatureScript -{ -public: - npc_stinkbeard() : CreatureScript("npc_stinkbeard") { } - - struct npc_stinkbeardAI : public npc_escortAI - { - npc_stinkbeardAI(Creature* creature) : npc_escortAI(creature) - { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - me->SetReactState(REACT_PASSIVE); - Start(true, true, 0, NULL); - SetDespawnAtEnd(false); - } - - void Reset() OVERRIDE - { - me->AddAura(SPELL_THUNDERBLADE, me); - uiKnockAwayTimer = 10000; - uiStinkyBeardTimer = 15000; - _enrage = false; - _thunderClap = false; - } - - void WaypointReached(uint32 waypointId) OVERRIDE - { - switch (waypointId) - { - case 7: - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); - me->SetReactState(REACT_AGGRESSIVE); - me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); - break; - } - } - - void UpdateAI(uint32 uiDiff) OVERRIDE - { - npc_escortAI::UpdateAI(uiDiff); - - if (!UpdateVictim()) - return; - - if (Unit* victim = me->GetVictim()) - { - if (victim->GetPositionZ() >= 286.276f) - { - std::list t_list = me->getThreatManager().getThreatList(); - for (std::list::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) - { - if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) - { - if (unit->GetPositionZ() <= 286.276f) - { - me->getThreatManager().resetAllAggro(); - me->AddThreat(unit, 5.0f); - break; - } - EnterEvadeMode(); - } - } - } - } - - if (_thunderClap && !HealthAbovePct(10)) - { - DoCastAOE(SPELL_THUNDERCLAP); - _thunderClap = true; - } - - if (uiKnockAwayTimer <= uiDiff) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - { - if (target && target->IsAlive()) - DoCast(target, SPELL_KNOCK_AWAY); - } - uiKnockAwayTimer = 10000; - } else uiKnockAwayTimer -= uiDiff; - - if (uiStinkyBeardTimer <= uiDiff) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - { - if (target && target->IsAlive()) - DoCast(target, SPELL_STINKY_BEARD); - } - uiStinkyBeardTimer = 15000; - } else uiStinkyBeardTimer -= uiDiff; - - if (!_enrage && !HealthAbovePct(20)) - { - DoCast(me, SPELL_ENRAGE_STINKBEARD); - _enrage = true; - } - DoMeleeAttackIfReady(); - } - - void JustDied(Unit* killer) OVERRIDE - { - if (Player* player = killer->GetCharmerOrOwnerPlayerOrPlayerItself()) - player->GetCharmerOrOwnerPlayerOrPlayerItself()->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_MAGNATAUR, killer); - - std::string sText = ("And with AUTHORITY, " + std::string(killer->GetName()) + " dominates the magnataur lord! Stinkbeard's clan is gonna miss him back home in the Dragonblight!"); - me->MonsterYell(sText.c_str(), LANG_UNIVERSAL, 0); - } - private: - bool _enrage; - bool _thunderClap; - uint32 uiKnockAwayTimer; - uint32 uiStinkyBeardTimer; - }; - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_stinkbeardAI(creature); - } -}; - -/*#### -## npc_elemental_lord -####*/ - -class npc_elemental_lord : public CreatureScript -{ -public: - npc_elemental_lord() : CreatureScript("npc_elemental_lord") { } - - struct npc_elemental_lordAI : public ScriptedAI - { - npc_elemental_lordAI(Creature* creature) : ScriptedAI(creature) { } - - std::list SummonList; - - uint32 uiElementalSpellTimer; - - uint8 uiBossRandom; - uint32 uiSpellInfo; - - bool bAddAttack; - - void Reset() OVERRIDE - { - uiBossRandom = 0; - uiSpellInfo = 0; - uiElementalSpellTimer = urand(5000, 8000); - - bAddAttack = false; - } - - void SetData(uint32 uiData, uint32 uiValue) OVERRIDE - { - if (uiData == 1) - { - uiBossRandom = uiValue; - SummonAdds(); - } - } - - void SummonAdds() - { - if (!Boss[uiBossRandom].uiAdd) - return; - - SummonList.clear(); - - for (uint8 uiI = 0; uiI < 16; uiI++) - { - if (Creature* summon = me->SummonCreature(Boss[uiBossRandom].uiAdd, AddSpawnPosition[uiI])) - { - summon->AI()->SetData(1, uiBossRandom); - SummonList.push_back(summon->GetGUID()); - } - } - - } - - void EnterCombat(Unit* unit) OVERRIDE - { - if (!SummonList.empty()) - for (std::list::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) - { - if (Creature* temp = Unit::GetCreature(*me, *itr)) - { - temp->m_CombatDistance = 100.0f; // ugly hack? we are not in a instance sorry. :( - temp->AI()->AttackStart(unit); - } - } - } - - void UpdateAI(uint32 uiDiff) OVERRIDE - { - if (!UpdateVictim()) - return; - - if (me->GetVictim()->GetPositionZ() >= 286.276f) - { - std::list t_list = me->getThreatManager().getThreatList(); - for (std::list::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) - { - if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) - { - if (unit->GetPositionZ() <= 286.276f) - { - me->getThreatManager().resetAllAggro(); - me->AddThreat(unit, 5.0f); - break; - } - EnterEvadeMode(); - } - } - } - - if (uiElementalSpellTimer <= uiDiff) - { - DoCastVictim(Boss[uiBossRandom].uiSpell); - - uiElementalSpellTimer = urand(5000, 8000); - } else uiElementalSpellTimer -= uiDiff; - - if (!bAddAttack && !HealthAbovePct(20)) - { - if (!SummonList.empty()) - for (std::list::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) - { - if (Creature* temp = Unit::GetCreature(*me, *itr)) - { - if (temp->GetPositionZ() >= 287.00f) - continue; - - if (temp->GetVictim()) - temp->GetMotionMaster()->MoveChase(temp->GetVictim()); - } - } - - bAddAttack = true; - } - - DoMeleeAttackIfReady(); - } - - void JustDied(Unit* killer) OVERRIDE - { - if (!SummonList.empty()) - for (std::list::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) - if (Creature* temp = Unit::GetCreature(*me, *itr)) - temp->DespawnOrUnsummon(); - - if (Player* player = killer->GetCharmerOrOwnerPlayerOrPlayerItself()) - player->GetCharmerOrOwnerPlayerOrPlayerItself()->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_FROM_BEYOND, killer); - - std::string sText = (std::string(killer->GetName()) + " is victorious once more!"); - - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) - summoner->MonsterYell(sText.c_str(), LANG_UNIVERSAL, 0); - } - }; - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_elemental_lordAI(creature); - } -}; - -/*#### -## npc_fiend_elemental -####*/ - -class npc_fiend_elemental : public CreatureScript -{ -public: - npc_fiend_elemental() : CreatureScript("npc_fiend_elemental") { } - - struct npc_fiend_elementalAI : public ScriptedAI - { - npc_fiend_elementalAI(Creature* creature) : ScriptedAI(creature) { } - - void Reset() OVERRIDE - { - if (me->GetPositionZ() >= 287.0f) - me->GetMotionMaster()->MoveIdle(); - - _spell = 0; - _missleTimer = urand(2000, 7000); - } - - void AttackStart(Unit* who) OVERRIDE - { - if (!who) - return; - - AttackStartNoMove(who); - } - - void SetData(uint32 Data, uint32 Value) OVERRIDE - { - if (Data == 1) - _spell = Boss[Value].uiAddSpell; - - } - - void UpdateAI(uint32 diff) OVERRIDE - { - if (!UpdateVictim()) - return; - - if (me->GetPositionZ() >= 287.0f) - { - if (_missleTimer <= diff) - { - if (_spell) // Sometimes it is 0, why? - DoCast(me, _spell); // this spell (what spell) is not supported ... YET! - _missleTimer = urand(2000, 7000); - } else _missleTimer -= diff; - } - - DoMeleeAttackIfReady(); - } - - private: - uint32 _missleTimer; - uint32 _spell; - }; - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_fiend_elementalAI(creature); - } -}; /*#### ## npc_released_offspring_harkoa @@ -1866,15 +890,8 @@ void AddSC_zuldrak() { new npc_drakuru_shackles(); new npc_captured_rageclaw(); - new npc_gurgthock(); - new npc_orinoko_tuskbreaker(); - new npc_korrak_bloodrager(); - new npc_yggdras(); - new npc_stinkbeard(); new npc_released_offspring_harkoa(); new npc_crusade_recruit(); - new npc_elemental_lord(); - new npc_fiend_elemental(); new go_scourge_enclosure(); new npc_alchemist_finklestein(); new go_finklesteins_cauldron(); -- cgit v1.2.3 From 9a0bb93b336e30619d2c59bd3c0f902bc1e61d23 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Sun, 24 Nov 2013 21:49:51 +0100 Subject: Scripts: fix warning and cleanup npc_apprentice_mirveda --- src/server/game/Entities/Unit/Unit.cpp | 2 - src/server/game/Entities/Unit/Unit.h | 2 +- .../EasternKingdoms/zone_eversong_woods.cpp | 66 ++++++++-------------- .../scripts/Northrend/Nexus/Oculus/oculus.cpp | 4 +- 4 files changed, 28 insertions(+), 46 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 2cb767a6b4d..54db2da73df 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -241,8 +241,6 @@ Unit::Unit(bool isWorldObject) : for (uint8 i = 0; i < MAX_SPELL_SCHOOL; ++i) m_threatModifier[i] = 1.0f; - m_isSorted = true; - for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i) m_speed_rate[i] = 1.0f; diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 4091ea15662..84c687a2cce 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -2158,7 +2158,7 @@ class Unit : public WorldObject typedef std::list GameObjectList; GameObjectList m_gameObj; - bool m_isSorted; + uint32 m_transform; Spell* m_currentSpells[CURRENT_MAX_SPELL]; diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp index cd96316acb4..6bc9aab3d6f 100644 --- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp +++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp @@ -67,43 +67,12 @@ class npc_apprentice_mirveda : public CreatureScript public: npc_apprentice_mirveda() : CreatureScript("npc_apprentice_mirveda") { } - bool OnQuestReward(Player* /*player*/, Creature* creature, const Quest* quest, uint32 /*slot*/) OVERRIDE - { - if (quest->GetQuestId() == QUEST_CORRUPTED_SOIL) - { - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->events.ScheduleEvent(EVENT_TALK, 2000); - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->CorruptedSoil = true; - } - return true; - } - - bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) OVERRIDE - { - if (quest->GetQuestId() == QUEST_UNEXPECTED_RESULT) - { - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->setFaction(FACTION_COMBAT); - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->events.ScheduleEvent(EVENT_SUMMON, 1000); - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->Summon = true; - CAST_AI(npc_apprentice_mirveda::npc_apprentice_mirvedaAI, creature->AI())->PlayerGUID = player->GetGUID(); - } - return true; - } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_apprentice_mirvedaAI(creature); - } - struct npc_apprentice_mirvedaAI : public ScriptedAI { npc_apprentice_mirvedaAI(Creature* creature) : ScriptedAI(creature), Summons(me) { } uint32 KillCount; uint64 PlayerGUID; - bool CorruptedSoil; - bool Summon; SummonList Summons; EventMap events; @@ -113,8 +82,26 @@ public: KillCount = 0; PlayerGUID = 0; Summons.DespawnAll(); - CorruptedSoil = false; - Summon = false; + } + + void sQuestReward(Player* /*player*/, Quest const* quest, uint32 /*opt*/) OVERRIDE + { + if (quest->GetQuestId() == QUEST_CORRUPTED_SOIL) + { + me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + events.ScheduleEvent(EVENT_TALK, 2000); + } + } + + void sQuestAccept(Player* player, Quest const* quest) OVERRIDE + { + if (quest->GetQuestId() == QUEST_UNEXPECTED_RESULT) + { + me->setFaction(FACTION_COMBAT); + me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); + events.ScheduleEvent(EVENT_SUMMON, 1000); + PlayerGUID = player->GetGUID(); + } } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -163,24 +150,16 @@ public: switch (eventId) { case EVENT_TALK: - if (!CorruptedSoil) - continue; Talk(SAY_TEST_SOIL); events.ScheduleEvent(EVENT_ADD_QUEST_GIVER_FLAG, 7000); break; case EVENT_ADD_QUEST_GIVER_FLAG: - if (!CorruptedSoil) - continue; me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - CorruptedSoil = false; break; case EVENT_SUMMON: - if (!Summon) - continue; me->SummonCreature(NPC_GHARZUL, 8749.505f, -7132.595f, 35.31983f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); me->SummonCreature(NPC_ANGERSHADE, 8755.38f, -7131.521f, 35.30957f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); me->SummonCreature(NPC_ANGERSHADE, 8753.199f, -7125.975f, 35.31986f, 3.816502f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 180000); - Summon = false; break; case EVENT_FIREBALL: if (!UpdateVictim()) @@ -195,6 +174,11 @@ public: DoMeleeAttackIfReady(); } }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_apprentice_mirvedaAI(creature); + } }; /*###### diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp index e4ffe24754a..4b24e5a81fb 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp @@ -154,7 +154,7 @@ class npc_verdisa_beglaristrasz_eternos : public CreatureScript } return; case GOSSIP_MENU_BELGARISTRASZ: - if (gossipListId >= 0 && gossipListId <= 2) + if (gossipListId <= 2) { if (gossipListId == 1) RemoveEssence(player, ITEM_AMBER_ESSENCE); @@ -274,7 +274,7 @@ class npc_ruby_emerald_amber_drake : public CreatureScript me->SetDisableGravity(false); // Needed this for proper animation after spawn, the summon in air fall to ground bug leave no other option for now, if this isn't used the drake will only walk on move. } - void PassengerBoarded(Unit* passenger, int8 seatId, bool apply) + void PassengerBoarded(Unit* passenger, int8 /*seatId*/, bool apply) OVERRIDE { if (passenger->GetTypeId() != TYPEID_PLAYER) return; -- cgit v1.2.3 From 7cd21549f61f7dcb518a9a55be2ae4e69abfdaaa Mon Sep 17 00:00:00 2001 From: Vincent_Michael Date: Sun, 24 Nov 2013 22:48:47 +0100 Subject: Core: Fix build --- src/server/game/Handlers/PetHandler.cpp | 4 ++-- src/server/scripts/Northrend/zone_zuldrak.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 8c185fe4806..ad8cacbd3c0 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -144,8 +144,8 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid CharmInfo* charmInfo = pet->GetCharmInfo(); if (!charmInfo) { - TC_LOG_ERROR("network", "WorldSession::HandlePetAction(petGuid: " UI64FMTD ", tagGuid: " UI64FMTD ", spellId: %u, flag: %u): object (GUID: %u TypeId: %u) is considered pet-like but doesn't have a charminfo!", - guid1, guid2, spellid, flag, pet->GetGUIDLow(), pet->GetTypeId()); + TC_LOG_ERROR("network", "WorldSession::HandlePetAction(petGuid: " UI64FMTD ", tagGuid: " UI64FMTD ", spellId: %u, flag: %u): object (GUID: %u Entry: %u TypeId: %u) is considered pet-like but doesn't have a charminfo!", + guid1, guid2, spellid, flag, pet->GetGUIDLow(), pet->GetEntry(), pet->GetTypeId()); return; } diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 97d14468056..29d7c017748 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -207,7 +207,8 @@ public: enum CrusadeRecruit { SPELL_QUEST_CREDIT = 50633, - QUEST_TROLL_PATROL_INTESTINAL_FORTITUDE = 12509 + QUEST_TROLL_PATROL_INTESTINAL_FORTITUDE = 12509, + SAY_RECRUIT = 0 }; enum CrusadeRecruitEvents -- cgit v1.2.3 From 3b8d38d3eae622748b73293ed1602cb844edf4b5 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Mon, 25 Nov 2013 00:00:19 +0100 Subject: Scripts/Oculus: fix boss_varos::InitializeAI() --- src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp index 3b55d804a1e..385f80ae37d 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp @@ -63,6 +63,7 @@ class boss_varos : public CreatureScript void InitializeAI() OVERRIDE { + BossAI::InitializeAI(); if (instance->GetBossState(DATA_DRAKOS) != DONE) DoCast(me, SPELL_CENTRIFUGE_SHIELD); } -- cgit v1.2.3 From 00d5c59f5baa491fe4e227b87c73357b75091299 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Tue, 26 Nov 2013 15:38:02 +0100 Subject: Scripts/Arcatraz: cleanup InstanceScript to make it work with BossAI --- .../Outland/TempestKeep/arcatraz/arcatraz.cpp | 100 +++--- .../Outland/TempestKeep/arcatraz/arcatraz.h | 68 ++-- .../arcatraz/boss_dalliah_the_doomsayer.cpp | 21 +- .../arcatraz/boss_harbinger_skyriss.cpp | 19 +- .../arcatraz/boss_wrath_scryer_soccothrates.cpp | 25 +- .../arcatraz/boss_zereketh_the_unbound.cpp | 7 - .../TempestKeep/arcatraz/instance_arcatraz.cpp | 355 ++++++++++----------- 7 files changed, 277 insertions(+), 318 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp index cd3fe507592..ff3145c5c78 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp @@ -69,11 +69,8 @@ enum MillhouseSpells class npc_millhouse_manastorm : public CreatureScript { public: + npc_millhouse_manastorm() : CreatureScript("npc_millhouse_manastorm") { } - npc_millhouse_manastorm() - : CreatureScript("npc_millhouse_manastorm") - { - } struct npc_millhouse_manastormAI : public ScriptedAI { npc_millhouse_manastormAI(Creature* creature) : ScriptedAI(creature) @@ -101,14 +98,11 @@ class npc_millhouse_manastorm : public CreatureScript Pyroblast_Timer = 1000; Fireball_Timer = 2500; - if (instance) - { - if (instance->GetData(DATA_WARDEN_2) == DONE) - Init = true; + if (instance->GetData(DATA_WARDEN_2) == DONE) + Init = true; - if (instance->GetData(DATA_HARBINGERSKYRISS) == DONE) - Talk(SAY_COMPLETE); - } + if (instance->GetBossState(DATA_HARBINGER_SKYRISS) == DONE) + Talk(SAY_COMPLETE); } void AttackStart(Unit* who) OVERRIDE @@ -134,7 +128,7 @@ class npc_millhouse_manastorm : public CreatureScript Talk(SAY_DEATH); /*for questId 10886 (heroic mode only) - if (instance && instance->GetData(TYPE_HARBINGERSKYRISS) != DONE) + if (instance->GetBossState(DATA_HARBINGER_SKYRISS) != DONE) ->FailQuest();*/ } @@ -176,8 +170,7 @@ class npc_millhouse_manastorm : public CreatureScript EventProgress_Timer = 6000; break; case 7: - if (instance) - instance->SetData(DATA_WARDEN_2, DONE); + instance->SetData(DATA_WARDEN_2, DONE); Init = true; break; } @@ -223,7 +216,7 @@ class npc_millhouse_manastorm : public CreatureScript CreatureAI* GetAI(Creature* creature) const OVERRIDE { - return new npc_millhouse_manastormAI(creature); + return GetArcatrazAI(creature); } }; /*##### @@ -273,10 +266,7 @@ enum WardenSpells class npc_warden_mellichar : public CreatureScript { public: - - npc_warden_mellichar() : CreatureScript("npc_warden_mellichar") - { - } + npc_warden_mellichar() : CreatureScript("npc_warden_mellichar") { } struct npc_warden_mellicharAI : public ScriptedAI { @@ -304,14 +294,12 @@ class npc_warden_mellichar : public CreatureScript me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); DoCast(me, SPELL_TARGET_OMEGA); - if (instance) - instance->SetData(DATA_HARBINGERSKYRISS, NOT_STARTED); + instance->SetBossState(DATA_HARBINGER_SKYRISS, NOT_STARTED); } void AttackStart(Unit* /*who*/) OVERRIDE { } void MoveInLineOfSight(Unit* who) OVERRIDE - { if (IsRunning) return; @@ -334,50 +322,42 @@ class npc_warden_mellichar : public CreatureScript Talk(YELL_INTRO1); DoCast(me, SPELL_BUBBLE_VISUAL); - if (instance) - { - instance->SetData(DATA_HARBINGERSKYRISS, IN_PROGRESS); - instance->HandleGameObject(instance->GetData64(DATA_SPHERE_SHIELD), false); - IsRunning = true; - } + instance->SetBossState(DATA_HARBINGER_SKYRISS, IN_PROGRESS); + instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); + IsRunning = true; } bool CanProgress() { - if (instance) - { - if (Phase == 7 && instance->GetData(DATA_WARDEN_4) == DONE) - return true; - if (Phase == 6 && instance->GetData(DATA_WARDEN_3) == DONE) - return true; - if (Phase == 5 && instance->GetData(DATA_WARDEN_2) == DONE) - return true; - if (Phase == 4) - return true; - if (Phase == 3 && instance->GetData(DATA_WARDEN_1) == DONE) - return true; - if (Phase == 2 && instance->GetData(DATA_HARBINGERSKYRISS) == IN_PROGRESS) - return true; - if (Phase == 1 && instance->GetData(DATA_HARBINGERSKYRISS) == IN_PROGRESS) - return true; - return false; - } + if (Phase == 7 && instance->GetData(DATA_WARDEN_4) == DONE) + return true; + if (Phase == 6 && instance->GetData(DATA_WARDEN_3) == DONE) + return true; + if (Phase == 5 && instance->GetData(DATA_WARDEN_2) == DONE) + return true; + if (Phase == 4) + return true; + if (Phase == 3 && instance->GetData(DATA_WARDEN_1) == DONE) + return true; + if (Phase == 2 && instance->GetBossState(DATA_HARBINGER_SKYRISS) == IN_PROGRESS) + return true; + if (Phase == 1 && instance->GetBossState(DATA_HARBINGER_SKYRISS) == IN_PROGRESS) + return true; + return false; } void DoPrepareForPhase() { - if (instance) - { - me->InterruptNonMeleeSpells(true); - me->RemoveAurasByType(SPELL_AURA_DUMMY); + me->InterruptNonMeleeSpells(true); + me->RemoveAurasByType(SPELL_AURA_DUMMY); - switch (Phase) - { + switch (Phase) + { case 2: DoCast(me, SPELL_TARGET_ALPHA); instance->SetData(DATA_WARDEN_1, IN_PROGRESS); - instance->HandleGameObject(instance->GetData64(DATA_SPHERE_SHIELD), false); + instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); break; case 3: DoCast(me, SPELL_TARGET_BETA); @@ -394,9 +374,8 @@ class npc_warden_mellichar : public CreatureScript case 7: instance->SetData(DATA_WARDEN_5, IN_PROGRESS); break; - } - CanSpawn = true; } + CanSpawn = true; } void UpdateAI(uint32 diff) OVERRIDE @@ -406,13 +385,10 @@ class npc_warden_mellichar : public CreatureScript if (EventProgress_Timer <= diff) { - if (instance) + if (instance->GetBossState(DATA_HARBINGER_SKYRISS) == FAIL) { - if (instance->GetData(DATA_HARBINGERSKYRISS) == FAIL) - { - Reset(); - return; - } + Reset(); + return; } if (CanSpawn) @@ -517,7 +493,7 @@ class npc_warden_mellichar : public CreatureScript CreatureAI* GetAI(Creature* creature) const OVERRIDE { - return new npc_warden_mellicharAI(creature); + return GetArcatrazAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h index 038d94fc960..1ebfad4dfeb 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2006-2009 ScriptDev2 * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -19,46 +18,53 @@ #ifndef ARCATRAZ_H #define ARCATRAZ_H -uint32 const EncounterCount = 13; +#define ArcatrazScriptName "instance_arcatraz" -#define AScriptName "instance_arcatraz" +uint32 const EncounterCount = 4; enum DataTypes { - DATA_ZEREKETH = 1, - DATA_DALLIAH = 2, - DATA_SOCCOTHRATES = 3, - DATA_HARBINGERSKYRISS = 4, - DATA_WARDEN_1 = 5, - DATA_WARDEN_2 = 6, - DATA_WARDEN_3 = 7, - DATA_WARDEN_4 = 8, - DATA_WARDEN_5 = 9, - DATA_MELLICHAR = 10, - DATA_SHIELD_OPEN = 11, - DATA_SPHERE_SHIELD = 12, - DATA_CONVERSATION = 13 + // Encounter States/Boss GUIDs + DATA_ZEREKETH = 0, + DATA_DALLIAH = 1, + DATA_SOCCOTHRATES = 2, + DATA_HARBINGER_SKYRISS = 3, + + // Additional Data + DATA_CONVERSATION = 4, + DATA_WARDEN_1 = 5, // used by EventAI + DATA_WARDEN_2 = 6, // used by EventAI + DATA_WARDEN_3 = 7, // used by EventAI + DATA_WARDEN_4 = 8, // used by EventAI + DATA_WARDEN_5 = 9, // used by EventAI + DATA_MELLICHAR = 10, + DATA_WARDENS_SHIELD = 11 }; -enum CreaturesIds +enum CreatureIds { - NPC_MELLICHAR = 20904, //skyriss will kill this unit - NPC_ALPHA_POD_TARGET = 21436, - NPC_DALLIAH = 20885, - NPC_SOCCOTHRATES = 20886 + NPC_DALLIAH = 20885, + NPC_SOCCOTHRATES = 20886, + NPC_MELLICHAR = 20904, // skyriss will kill this unit + NPC_ALPHA_POD_TARGET = 21436 }; -enum GameObjectsIds +enum GameObjectIds { - CONTAINMENT_CORE_SECURITY_FIELD_ALPHA = 184318, //door opened when Wrath-Scryer Soccothrates dies - CONTAINMENT_CORE_SECURITY_FIELD_BETA = 184319, //door opened when Dalliah the Doomsayer dies - POD_ALPHA = 183961, //pod first boss wave - POD_BETA = 183963, //pod second boss wave - POD_DELTA = 183964, //pod third boss wave - POD_GAMMA = 183962, //pod fourth boss wave - POD_OMEGA = 183965, //pod fifth boss wave - WARDENS_SHIELD = 184802, // warden shield - SEAL_SPHERE = 184802 //shield 'protecting' mellichar + GO_CONTAINMENT_CORE_SECURITY_FIELD_ALPHA = 184318, // door opened when Wrath-Scryer Soccothrates dies + GO_CONTAINMENT_CORE_SECURITY_FIELD_BETA = 184319, // door opened when Dalliah the Doomsayer dies + GO_STASIS_POD_ALPHA = 183961, // pod first boss wave + GO_STASIS_POD_BETA = 183963, // pod second boss wave + GO_STASIS_POD_DELTA = 183964, // pod third boss wave + GO_STASIS_POD_GAMMA = 183962, // pod fourth boss wave + GO_STASIS_POD_OMEGA = 183965, // pod fifth boss wave + GO_WARDENS_SHIELD = 184802 // shield 'protecting' mellichar }; +template +AI* GetArcatrazAI(Creature* creature) +{ + return GetInstanceAI(creature, ArcatrazScriptName); +} + #endif // ARCATRAZ_H diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp index eacd5b3835e..b5947e93216 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp @@ -15,19 +15,13 @@ * with this program. If not, see . */ -/* ScriptData -SDName: boss_dalliah_the_doomsayer -SD%Complete: 100% -SDComment: -SDCategory: Tempest Keep, The Arcatraz -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "arcatraz.h" enum Say { + // Dalliah the Doomsayer SAY_AGGRO = 1, SAY_SLAY = 2, SAY_WHIRLWIND = 3, @@ -35,7 +29,7 @@ enum Say SAY_DEATH = 5, SAY_SOCCOTHRATES_DEATH = 7, - // boss_wrath_scryer_soccothrates + // Wrath-Scryer Soccothrates SAY_AGGRO_DALLIAH_FIRST = 0, SAY_DALLIAH_25_PERCENT = 5 }; @@ -78,7 +72,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID)) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->SetData(1, 1); } @@ -110,9 +104,8 @@ class boss_dalliah_the_doomsayer : public CreatureScript events.ScheduleEvent(EVENT_SOCCOTHRATES_DEATH, 6000); soccothratesDeath = true; break; - break; - default: - break; + default: + break; } } @@ -168,7 +161,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000)); break; case EVENT_ME_FIRST: - if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID)) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST); break; @@ -179,7 +172,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript if (HealthBelowPct(25) && !soccothratesTaunt) { - if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID)) soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT); soccothratesTaunt = true; } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index 3748b704e0a..48d955acbc3 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -65,7 +65,7 @@ class boss_harbinger_skyriss : public CreatureScript struct boss_harbinger_skyrissAI : public BossAI { - boss_harbinger_skyrissAI(Creature* creature) : BossAI(creature, DATA_HARBINGERSKYRISS) + boss_harbinger_skyrissAI(Creature* creature) : BossAI(creature, DATA_HARBINGER_SKYRISS) { Intro = false; } @@ -98,7 +98,6 @@ class boss_harbinger_skyriss : public CreatureScript } void MoveInLineOfSight(Unit* who) OVERRIDE - { if (!Intro) return; @@ -153,27 +152,24 @@ class boss_harbinger_skyriss : public CreatureScript { if (!Intro) { - if (!instance) - return; - if (Intro_Timer <= diff) { switch (Intro_Phase) { case 1: Talk(SAY_INTRO); - instance->HandleGameObject(instance->GetData64(DATA_SPHERE_SHIELD), true); + instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), true); ++Intro_Phase; Intro_Timer = 25000; break; case 2: Talk(SAY_AGGRO); - if (Unit* mellic = Unit::GetUnit(*me, instance->GetData64(DATA_MELLICHAR))) + if (Unit* mellic = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MELLICHAR))) { //should have a better way to do this. possibly spell exist. mellic->setDeathState(JUST_DIED); mellic->SetHealth(0); - instance->SetData(DATA_SHIELD_OPEN, IN_PROGRESS); + instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); } ++Intro_Phase; Intro_Timer = 3000; @@ -268,18 +264,15 @@ class boss_harbinger_skyriss : public CreatureScript CreatureAI* GetAI(Creature* creature) const OVERRIDE { - return new boss_harbinger_skyrissAI(creature); + return GetArcatrazAI(creature); } }; class boss_harbinger_skyriss_illusion : public CreatureScript { public: + boss_harbinger_skyriss_illusion() : CreatureScript("boss_harbinger_skyriss_illusion") { } - boss_harbinger_skyriss_illusion() - : CreatureScript("boss_harbinger_skyriss_illusion") - { - } struct boss_harbinger_skyriss_illusionAI : public ScriptedAI { boss_harbinger_skyriss_illusionAI(Creature* creature) : ScriptedAI(creature) { } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp index 8d4b18b4d47..046ef93bf10 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp @@ -28,7 +28,7 @@ EndScriptData */ enum Say { - // boss_wrath_scryer_soccothrates + // Wrath-Scryer Soccothrates SAY_AGGRO = 1, SAY_SLAY = 2, SAY_KNOCK_AWAY = 3, @@ -39,7 +39,7 @@ enum Say SAY_SOCCOTHRATES_CONVO_3 = 9, SAY_SOCCOTHRATES_CONVO_4 = 10, - // boss_dalliah_the_doomsayer + // Dalliah the Doomsayer SAY_AGGRO_SOCCOTHRATES_FIRST = 0, SAY_SOCCOTHRATES_25_PERCENT = 6, SAY_DALLIAH_CONVO_1 = 8, @@ -98,7 +98,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->SetData(1, 1); } @@ -145,9 +145,8 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_DALLIAH_DEATH, 6000); dalliahDeath = true; break; - break; - default: - break; + default: + break; } } @@ -164,7 +163,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript switch (eventId) { case EVENT_PREFIGHT_1: - if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1); events.ScheduleEvent(EVENT_PREFIGHT_2, 3000); break; @@ -173,7 +172,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_3, 3000); break; case EVENT_PREFIGHT_3: - if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2); events.ScheduleEvent(EVENT_PREFIGHT_4, 6000); break; @@ -182,7 +181,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_5, 2000); break; case EVENT_PREFIGHT_5: - if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3); events.ScheduleEvent(EVENT_PREFIGHT_6, 3000); break; @@ -191,7 +190,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_7, 2000); break; case EVENT_PREFIGHT_7: - if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f); events.ScheduleEvent(EVENT_PREFIGHT_8, 4000); break; @@ -200,7 +199,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_9, 4000); break; case EVENT_PREFIGHT_9: - if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) { dalliah->SetFacingToObject(me); me->SetFacingToObject(dalliah); @@ -254,7 +253,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000)); break; case EVENT_ME_FIRST: - if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST); break; @@ -265,7 +264,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript if (HealthBelowPct(25) && !dalliahTaunt) { - if (Creature* dalliah = me->GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT); dalliahTaunt = true; } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp index 062c88bb666..7659f191ff7 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp @@ -15,13 +15,6 @@ * with this program. If not, see . */ -/* ScriptData -SDName: boss_zereketh_the_unbound -SD%Complete: 100% -SDComment: -SDCategory: Tempest Keep, The Arcatraz -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "arcatraz.h" diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp index 43f4a98c8cf..0145636f9d2 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2006-2009 ScriptDev2 * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,203 +15,122 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Instance_Arcatraz -SD%Complete: 80 -SDComment: Mainly Harbringer Skyriss event -SDCategory: Tempest Keep, The Arcatraz -EndScriptData */ - #include "ScriptMgr.h" #include "InstanceScript.h" #include "arcatraz.h" -/* Arcatraz encounters: -1 - Zereketh the Unbound event -2 - Dalliah the Doomsayer event -3 - Wrath-Scryer Soccothrates event -4 - Harbinger Skyriss event, 5 sub-events -*/ +DoorData const doorData[] = +{ + { GO_CONTAINMENT_CORE_SECURITY_FIELD_ALPHA, DATA_SOCCOTHRATES, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { GO_CONTAINMENT_CORE_SECURITY_FIELD_BETA, DATA_DALLIAH, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END +}; class instance_arcatraz : public InstanceMapScript { public: - instance_arcatraz() - : InstanceMapScript(AScriptName, 552) - { - } + instance_arcatraz() : InstanceMapScript(ArcatrazScriptName, 552) { } + struct instance_arcatraz_InstanceMapScript : public InstanceScript { - instance_arcatraz_InstanceMapScript(Map* map) : InstanceScript(map) { } - - uint32 m_auiEncounter[EncounterCount]; - - uint64 Containment_Core_Security_Field_AlphaGUID; - uint64 Containment_Core_Security_Field_BetaGUID; - uint64 Pod_AlphaGUID; - uint64 Pod_GammaGUID; - uint64 Pod_BetaGUID; - uint64 Pod_DeltaGUID; - uint64 Pod_OmegaGUID; - uint64 Wardens_ShieldGUID; - uint64 GoSphereGUID; - uint64 MellicharGUID; - - void Initialize() OVERRIDE + instance_arcatraz_InstanceMapScript(Map* map) : InstanceScript(map) { - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - - Containment_Core_Security_Field_AlphaGUID = 0; - Containment_Core_Security_Field_BetaGUID = 0; - Pod_AlphaGUID = 0; - Pod_GammaGUID = 0; - Pod_BetaGUID = 0; - Pod_DeltaGUID = 0; - Pod_OmegaGUID = 0; - Wardens_ShieldGUID = 0; - GoSphereGUID = 0; - MellicharGUID = 0; + SetBossNumber(EncounterCount); + LoadDoorData(doorData); + + MellicharGUID = 0; + WardensShieldGUID = 0; + + ConversationState = NOT_STARTED; + + memset(StasisPodGUIDs, 0, 5 * sizeof(uint64)); + memset(StasisPodStates, NOT_STARTED, 5 * sizeof(uint8)); } - bool IsEncounterInProgress() const OVERRIDE + void OnCreatureCreate(Creature* creature) OVERRIDE { - for (uint8 i = 0; i < EncounterCount; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - return true; - - return false; + if (creature->GetEntry() == NPC_MELLICHAR) + MellicharGUID = creature->GetGUID(); } void OnGameObjectCreate(GameObject* go) OVERRIDE { switch (go->GetEntry()) { - case CONTAINMENT_CORE_SECURITY_FIELD_ALPHA: - Containment_Core_Security_Field_AlphaGUID = go->GetGUID(); - break; - - case CONTAINMENT_CORE_SECURITY_FIELD_BETA: - Containment_Core_Security_Field_BetaGUID = go->GetGUID(); - break; - - case POD_ALPHA: - Pod_AlphaGUID = go->GetGUID(); - break; - - case POD_GAMMA: - Pod_GammaGUID = go->GetGUID(); - break; - - case POD_BETA: - Pod_BetaGUID = go->GetGUID(); - break; - - case POD_DELTA: - Pod_DeltaGUID = go->GetGUID(); - break; - - case POD_OMEGA: - Pod_OmegaGUID = go->GetGUID(); - break; - - case SEAL_SPHERE: - GoSphereGUID = go->GetGUID(); - break; - - /*case WARDENS_SHIELD: - Wardens_ShieldGUID = go->GetGUID(); - break;*/ + case GO_CONTAINMENT_CORE_SECURITY_FIELD_ALPHA: + case GO_CONTAINMENT_CORE_SECURITY_FIELD_BETA: + AddDoor(go, true); + break; + case GO_STASIS_POD_ALPHA: + StasisPodGUIDs[0] = go->GetGUID(); + break; + case GO_STASIS_POD_BETA: + StasisPodGUIDs[1] = go->GetGUID(); + break; + case GO_STASIS_POD_DELTA: + StasisPodGUIDs[2] = go->GetGUID(); + break; + case GO_STASIS_POD_GAMMA: + StasisPodGUIDs[3] = go->GetGUID(); + break; + case GO_STASIS_POD_OMEGA: + StasisPodGUIDs[4] = go->GetGUID(); + break; + case GO_WARDENS_SHIELD: + WardensShieldGUID = go->GetGUID(); + break; + default: + break; } } - void OnCreatureCreate(Creature* creature) OVERRIDE + void OnGameObjectRemove(GameObject* go) OVERRIDE { - if (creature->GetEntry() == NPC_MELLICHAR) - MellicharGUID = creature->GetGUID(); + switch (go->GetEntry()) + { + case GO_CONTAINMENT_CORE_SECURITY_FIELD_ALPHA: + case GO_CONTAINMENT_CORE_SECURITY_FIELD_BETA: + AddDoor(go, false); + break; + default: + break; + } } void SetData(uint32 type, uint32 data) OVERRIDE { switch (type) { - case DATA_ZEREKETH: - m_auiEncounter[0] = data; - break; - case DATA_DALLIAH: - if (data == DONE) - { - if (GameObject* go = instance->GetGameObject(Containment_Core_Security_Field_BetaGUID)) - go->UseDoorOrButton(); - } - m_auiEncounter[1] = data; - break; - case DATA_SOCCOTHRATES: - if (data == DONE) - { - if (GameObject* go = instance->GetGameObject(Containment_Core_Security_Field_AlphaGUID)) - go->UseDoorOrButton(); - } - m_auiEncounter[2] = data; - break; - case DATA_HARBINGERSKYRISS: - if (data == NOT_STARTED || data == FAIL) - { - m_auiEncounter[4] = NOT_STARTED; - m_auiEncounter[5] = NOT_STARTED; - m_auiEncounter[6] = NOT_STARTED; - m_auiEncounter[7] = NOT_STARTED; - m_auiEncounter[8] = NOT_STARTED; - } - m_auiEncounter[3] = data; - break; - case DATA_WARDEN_1: - if (data == IN_PROGRESS) - if (GameObject* go = instance->GetGameObject(Pod_AlphaGUID)) - go->UseDoorOrButton(); - m_auiEncounter[4] = data; - break; - case DATA_WARDEN_2: - if (data == IN_PROGRESS) - { - if (GameObject* go = instance->GetGameObject(Pod_BetaGUID)) - go->UseDoorOrButton(); - } - m_auiEncounter[5] = data; - break; - case DATA_WARDEN_3: - if (data == IN_PROGRESS) - { - if (GameObject* go = instance->GetGameObject(Pod_DeltaGUID)) - go->UseDoorOrButton(); - } - m_auiEncounter[6] = data; - break; - case DATA_WARDEN_4: - if (data == IN_PROGRESS) - { - if (GameObject* go = instance->GetGameObject(Pod_GammaGUID)) - go->UseDoorOrButton(); - } - m_auiEncounter[7] = data; - break; - case DATA_WARDEN_5: - if (data == IN_PROGRESS) - { - if (GameObject* go = instance->GetGameObject(Pod_OmegaGUID)) - go->UseDoorOrButton(); - } - m_auiEncounter[8] = data; - break; - case DATA_SHIELD_OPEN: - if (data == IN_PROGRESS) - { - if (GameObject* go = instance->GetGameObject(Wardens_ShieldGUID)) - go->UseDoorOrButton(); - } - break; - case DATA_CONVERSATION: - m_auiEncounter[12] = data; - break; + case DATA_WARDEN_1: + if (data == IN_PROGRESS) + HandleGameObject(StasisPodGUIDs[0], true); + StasisPodStates[0] = uint8(data); + break; + case DATA_WARDEN_2: + if (data == IN_PROGRESS) + HandleGameObject(StasisPodGUIDs[1], true); + StasisPodStates[1] = uint8(data); + break; + case DATA_WARDEN_3: + if (data == IN_PROGRESS) + HandleGameObject(StasisPodGUIDs[2], true); + StasisPodStates[2] = uint8(data); + break; + case DATA_WARDEN_4: + if (data == IN_PROGRESS) + HandleGameObject(StasisPodGUIDs[3], true); + StasisPodStates[3] = uint8(data); + break; + case DATA_WARDEN_5: + if (data == IN_PROGRESS) + HandleGameObject(StasisPodGUIDs[4], true); + StasisPodStates[4] = uint8(data); + break; + case DATA_CONVERSATION: + ConversationState = uint8(data); + break; + default: + break; } } @@ -220,13 +138,16 @@ class instance_arcatraz : public InstanceMapScript { switch (type) { - case DATA_HARBINGERSKYRISS: return m_auiEncounter[3]; - case DATA_WARDEN_1: return m_auiEncounter[4]; - case DATA_WARDEN_2: return m_auiEncounter[5]; - case DATA_WARDEN_3: return m_auiEncounter[6]; - case DATA_WARDEN_4: return m_auiEncounter[7]; - case DATA_WARDEN_5: return m_auiEncounter[8]; - case DATA_CONVERSATION: return m_auiEncounter[12]; + case DATA_WARDEN_1: + case DATA_WARDEN_2: + case DATA_WARDEN_3: + case DATA_WARDEN_4: + case DATA_WARDEN_5: + return StasisPodStates[type - DATA_WARDEN_1]; + case DATA_CONVERSATION: + return ConversationState; + default: + break; } return 0; } @@ -235,11 +156,89 @@ class instance_arcatraz : public InstanceMapScript { switch (data) { - case DATA_MELLICHAR: return MellicharGUID; - case DATA_SPHERE_SHIELD: return GoSphereGUID; + case DATA_MELLICHAR: + return MellicharGUID; + case DATA_WARDENS_SHIELD: + return WardensShieldGUID; + default: + break; } return 0; } + + bool SetBossState(uint32 type, EncounterState state) OVERRIDE + { + if (!InstanceScript::SetBossState(type, state)) + return false; + + switch (type) + { + case DATA_HARBINGER_SKYRISS: + if (state == NOT_STARTED || state == FAIL) + { + SetData(DATA_WARDEN_1, NOT_STARTED); + SetData(DATA_WARDEN_2, NOT_STARTED); + SetData(DATA_WARDEN_3, NOT_STARTED); + SetData(DATA_WARDEN_4, NOT_STARTED); + SetData(DATA_WARDEN_5, NOT_STARTED); + } + break; + default: + break; + } + return true; + } + + std::string GetSaveData() OVERRIDE + { + OUT_SAVE_INST_DATA; + + std::ostringstream saveStream; + saveStream << "A Z " << GetBossSaveData(); + + OUT_SAVE_INST_DATA_COMPLETE; + return saveStream.str(); + } + + void Load(char const* str) OVERRIDE + { + if (!str) + { + OUT_LOAD_INST_DATA_FAIL; + return; + } + + OUT_LOAD_INST_DATA(str); + + char dataHead1, dataHead2; + + std::istringstream loadStream(str); + loadStream >> dataHead1 >> dataHead2; + + if (dataHead1 == 'A' && dataHead2 == 'Z') + { + for (uint32 i = 0; i < EncounterCount; ++i) + { + uint32 tmpState; + loadStream >> tmpState; + if (tmpState == IN_PROGRESS || tmpState > SPECIAL) + tmpState = NOT_STARTED; + SetBossState(i, EncounterState(tmpState)); + } + } + else + OUT_LOAD_INST_DATA_FAIL; + + OUT_LOAD_INST_DATA_COMPLETE; + } + + protected: + uint64 StasisPodGUIDs[5]; + uint64 MellicharGUID; + uint64 WardensShieldGUID; + + uint8 ConversationState; + uint8 StasisPodStates[5]; }; InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE @@ -250,6 +249,6 @@ class instance_arcatraz : public InstanceMapScript void AddSC_instance_arcatraz() { - new instance_arcatraz; + new instance_arcatraz(); } -- cgit v1.2.3 From e353bc492b0bd39d95890fa6cdbbc2c15af384a5 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Tue, 26 Nov 2013 16:43:14 +0100 Subject: Scripts/UtgardePinnacle: cleanup InstanceScript --- .../UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp | 322 +++++------ .../UtgardeKeep/UtgardePinnacle/boss_skadi.cpp | 6 +- .../UtgardeKeep/UtgardePinnacle/boss_svala.cpp | 625 ++++++++++----------- .../UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp | 49 +- .../UtgardePinnacle/instance_utgarde_pinnacle.cpp | 383 ++++++------- .../UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h | 84 +-- 6 files changed, 701 insertions(+), 768 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp index b70bda76d76..77c19422da0 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp @@ -58,19 +58,14 @@ enum Creatures NPC_STASIS_CONTROLLER = 26688 }; -struct Locations +Position const moveLocs[] = { - float x, y, z; -}; - -struct Locations moveLocs[]= -{ - {261.6f, -449.3f, 109.5f}, - {263.3f, -454.0f, 109.5f}, - {291.5f, -450.4f, 109.5f}, - {291.5f, -454.0f, 109.5f}, - {310.0f, -453.4f, 109.5f}, - {238.6f, -460.7f, 109.5f} + { 261.6f, -449.3f, 109.5f, 0.0f }, + { 263.3f, -454.0f, 109.5f, 0.0f }, + { 291.5f, -450.4f, 109.5f, 0.0f }, + { 291.5f, -454.0f, 109.5f, 0.0f }, + { 310.0f, -453.4f, 109.5f, 0.0f }, + { 238.6f, -460.7f, 109.5f, 0.0f } }; enum Phase @@ -83,21 +78,20 @@ enum Phase PHASE_NONE }; +enum Misc +{ + ACTION_NEXT_PHASE, +}; + class boss_palehoof : public CreatureScript { public: boss_palehoof() : CreatureScript("boss_palehoof") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE + struct boss_palehoofAI : public BossAI { - return new boss_palehoofAI(creature); - } - - struct boss_palehoofAI : public ScriptedAI - { - boss_palehoofAI(Creature* creature) : ScriptedAI(creature) + boss_palehoofAI(Creature* creature) : BossAI(creature, DATA_GORTOK_PALEHOOF) { - instance = creature->GetInstanceScript(); } uint32 uiArcingSmashTimer; @@ -108,10 +102,10 @@ public: uint8 AddCount; Phase Sequence[4]; - InstanceScript* instance; - void Reset() OVERRIDE { + _Reset(); + /// There is a good reason to store them like this, we are going to shuffle the order. for (uint32 i = PHASE_FRENZIED_WORGEN; i < PHASE_GORTOK_PALEHOOF; ++i) Sequence[i] = Phase(i); @@ -129,32 +123,15 @@ public: currentPhase = PHASE_NONE; - if (instance) - { - instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, NOT_STARTED); - - Creature* temp = Unit::GetCreature((*me), instance->GetData64(DATA_NPC_FRENZIED_WORGEN)); - if (temp && !temp->IsAlive()) - temp->Respawn(); + for (uint8 i = DATA_FRENZIED_WORGEN; i <= DATA_FEROCIOUS_RHINO; ++i) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(i))) + if (!temp->IsAlive()) + temp->Respawn(); - temp = Unit::GetCreature((*me), instance->GetData64(DATA_NPC_FEROCIOUS_RHINO)); - if (temp && !temp->IsAlive()) - temp->Respawn(); - - temp = Unit::GetCreature((*me), instance->GetData64(DATA_NPC_MASSIVE_JORMUNGAR)); - if (temp && !temp->IsAlive()) - temp->Respawn(); - - temp = Unit::GetCreature((*me), instance->GetData64(DATA_NPC_RAVENOUS_FURBOLG)); - if (temp && !temp->IsAlive()) - temp->Respawn(); - - GameObject* go = instance->instance->GetGameObject(instance->GetData64(DATA_GORTOK_PALEHOOF_SPHERE)); - if (go) - { - go->SetGoState(GO_STATE_READY); - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - } + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GORTOK_PALEHOOF_SPHERE))) + { + go->SetGoState(GO_STATE_READY); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } } @@ -185,14 +162,9 @@ public: if (currentPhase != PHASE_GORTOK_PALEHOOF) return; - //Return since we have no target if (!UpdateVictim()) return; - Creature* temp = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_ORB) : 0); - if (temp && temp->IsAlive()) - temp->DisappearAndDie(); - if (uiArcingSmashTimer <= diff) { DoCast(me, SPELL_ARCING_SMASH); @@ -217,12 +189,8 @@ public: void JustDied(Unit* /*killer*/) OVERRIDE { - //Talk(SAY_DEATH); - if (instance) - instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, DONE); - Creature* temp = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_ORB) : 0); - if (temp && temp->IsAlive()) - temp->DisappearAndDie(); + _JustDied(); + //Talk(SAY_DEATH); } void KilledUnit(Unit* /*victim*/) OVERRIDE @@ -230,28 +198,30 @@ public: Talk(SAY_SLAY); } - void NextPhase() + void DoAction(int32 actionId) OVERRIDE { + if (actionId != ACTION_NEXT_PHASE) + return; + if (currentPhase == PHASE_NONE) { - if (instance) - instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_GORTOK_PALEHOOF, IN_PROGRESS); - me->SummonCreature(NPC_STASIS_CONTROLLER, moveLocs[5].x, moveLocs[5].y, moveLocs[5].z, 0, TEMPSUMMON_CORPSE_DESPAWN); + if (Creature* orb = me->SummonCreature(NPC_STASIS_CONTROLLER, moveLocs[5], TEMPSUMMON_CORPSE_DESPAWN)) + orb->CastSpell(me, SPELL_ORB_VISUAL, true); } + Phase move = PHASE_NONE; if (AddCount >= DUNGEON_MODE(2, 4)) move = PHASE_GORTOK_PALEHOOF; else move = Sequence[AddCount++]; - //send orb to summon spot - Creature* pOrb = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_ORB) : 0); - if (pOrb && pOrb->IsAlive()) - { - if (currentPhase == PHASE_NONE) - pOrb->CastSpell(me, SPELL_ORB_VISUAL, true); - pOrb->GetMotionMaster()->MovePoint(move, moveLocs[move].x, moveLocs[move].y, moveLocs[move].z); - } + + // send orb to summon spot + if (Creature* orb = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_ORB))) + if (orb->IsAlive()) + orb->GetMotionMaster()->MovePoint(move, moveLocs[move]); + currentPhase = move; } @@ -263,6 +233,10 @@ public: } }; + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetUtgardePinnacleAI(creature); + } }; //ravenous furbolg's spells @@ -305,13 +279,12 @@ public: me->GetMotionMaster()->MoveTargetedHome(); - if (instance) - if (instance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS) - { - Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); - if (pPalehoof && pPalehoof->IsAlive()) - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->Reset(); - } + if (instance->GetBossState(DATA_GORTOK_PALEHOOF) == IN_PROGRESS) + { + Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF)); + if (palehoof && palehoof->IsAlive()) + palehoof->AI()->Reset(); + } } void UpdateAI(uint32 diff) OVERRIDE @@ -360,12 +333,8 @@ public: void JustDied(Unit* /*killer*/) OVERRIDE { - if (instance) - { - Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); - if (pPalehoof) - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->NextPhase(); - } + if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF))) + palehoof->AI()->DoAction(ACTION_NEXT_PHASE); } void JustReachedHome() OVERRIDE @@ -418,13 +387,12 @@ public: me->GetMotionMaster()->MoveTargetedHome(); - if (instance) - if (instance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS) - { - Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); - if (pPalehoof && pPalehoof->IsAlive()) - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->Reset(); - } + if (instance->GetBossState(DATA_GORTOK_PALEHOOF) == IN_PROGRESS) + { + Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF)); + if (palehoof && palehoof->IsAlive()) + palehoof->AI()->Reset(); + } } void UpdateAI(uint32 diff) OVERRIDE @@ -470,17 +438,13 @@ public: DoStartMovement(who); } if (instance) - instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_GORTOK_PALEHOOF, IN_PROGRESS); } void JustDied(Unit* /*killer*/) OVERRIDE { - if (instance) - { - Creature* pPalehoof = Unit::GetCreature((*me), instance->GetData64(DATA_GORTOK_PALEHOOF)); - if (pPalehoof) - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->NextPhase(); - } + if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF))) + palehoof->AI()->DoAction(ACTION_NEXT_PHASE); } void JustReachedHome() OVERRIDE @@ -534,13 +498,12 @@ public: me->GetMotionMaster()->MoveTargetedHome(); - if (instance) - if (instance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS) - { - Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); - if (pPalehoof && pPalehoof->IsAlive()) - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->Reset(); - } + if (instance->GetBossState(DATA_GORTOK_PALEHOOF) == IN_PROGRESS) + { + Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF)); + if (palehoof && palehoof->IsAlive()) + palehoof->AI()->Reset(); + } } void UpdateAI(uint32 diff) OVERRIDE @@ -590,12 +553,8 @@ public: void JustDied(Unit* /*killer*/) OVERRIDE { - if (instance) - { - Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); - if (pPalehoof) - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->NextPhase(); - } + if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF))) + palehoof->AI()->DoAction(ACTION_NEXT_PHASE); } void JustReachedHome() OVERRIDE @@ -654,13 +613,12 @@ public: me->GetMotionMaster()->MoveTargetedHome(); - if (instance) - if (instance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS) - { - Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); - if (pPalehoof && pPalehoof->IsAlive()) - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->Reset(); - } + if (instance->GetBossState(DATA_GORTOK_PALEHOOF) == IN_PROGRESS) + { + Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF)); + if (palehoof && palehoof->IsAlive()) + palehoof->AI()->Reset(); + } } void UpdateAI(uint32 diff) OVERRIDE @@ -711,12 +669,8 @@ public: void JustDied(Unit* /*killer*/) OVERRIDE { - if (instance) - { - Creature* pPalehoof = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); - if (pPalehoof) - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->NextPhase(); - } + if (Creature* palehoof = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GORTOK_PALEHOOF))) + palehoof->AI()->DoAction(ACTION_NEXT_PHASE); } void JustReachedHome() OVERRIDE @@ -767,52 +721,76 @@ public: if (SummonTimer <= diff) { - if (currentPhase<5&¤tPhase >= 0) + uint8 nextBossId = 0; + switch (currentPhase) { - Creature* pNext = NULL; - switch (currentPhase) - { - case PHASE_FRENZIED_WORGEN: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_FRENZIED_WORGEN) : 0); break; - case PHASE_RAVENOUS_FURLBORG: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_RAVENOUS_FURBOLG) : 0); break; - case PHASE_MASSIVE_JORMUNGAR: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_MASSIVE_JORMUNGAR) : 0); break; - case PHASE_FEROCIOUS_RHINO: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_FEROCIOUS_RHINO) : 0); break; - case PHASE_GORTOK_PALEHOOF: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); break; - default: break; - } - - if (pNext) - { - pNext->RemoveAurasDueToSpell(SPELL_FREEZE); - pNext->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC); - pNext->SetStandState(UNIT_STAND_STATE_STAND); - pNext->SetInCombatWithZone(); - pNext->Attack(pNext->SelectNearestTarget(100), true); - - } - currentPhase = PHASE_NONE; + case PHASE_FRENZIED_WORGEN: + nextBossId = DATA_FRENZIED_WORGEN; + break; + case PHASE_RAVENOUS_FURLBORG: + nextBossId = DATA_RAVENOUS_FURBOLG; + break; + case PHASE_MASSIVE_JORMUNGAR: + nextBossId = DATA_MASSIVE_JORMUNGAR; + break; + case PHASE_FEROCIOUS_RHINO: + nextBossId = DATA_FEROCIOUS_RHINO; + break; + case PHASE_GORTOK_PALEHOOF: + nextBossId = DATA_GORTOK_PALEHOOF; + break; + default: + return; } - } else SummonTimer -= diff; + + if (Creature* nextBoss = ObjectAccessor::GetCreature(*me, instance->GetData64(nextBossId))) + { + nextBoss->RemoveAurasDueToSpell(SPELL_FREEZE); + nextBoss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC); + nextBoss->SetStandState(UNIT_STAND_STATE_STAND); + nextBoss->SetInCombatWithZone(); + nextBoss->Attack(nextBoss->SelectNearestTarget(100), true); + } + currentPhase = PHASE_NONE; + + if (nextBossId == DATA_GORTOK_PALEHOOF) + me->DespawnOrUnsummon(); + } + else + SummonTimer -= diff; } void MovementInform(uint32 type, uint32 id) OVERRIDE { if (type != POINT_MOTION_TYPE) return; - if (id > 4) - return; - Creature* pNext = NULL; + + uint8 nextBossId = 0; switch (id) { - case PHASE_FRENZIED_WORGEN: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_FRENZIED_WORGEN) : 0); break; - case PHASE_RAVENOUS_FURLBORG: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_RAVENOUS_FURBOLG) : 0); break; - case PHASE_MASSIVE_JORMUNGAR: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_MASSIVE_JORMUNGAR) : 0); break; - case PHASE_FEROCIOUS_RHINO: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_NPC_FEROCIOUS_RHINO) : 0); break; - case PHASE_GORTOK_PALEHOOF: pNext = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); break; - default: break; + case PHASE_FRENZIED_WORGEN: + nextBossId = DATA_FRENZIED_WORGEN; + break; + case PHASE_RAVENOUS_FURLBORG: + nextBossId = DATA_RAVENOUS_FURBOLG; + break; + case PHASE_MASSIVE_JORMUNGAR: + nextBossId = DATA_MASSIVE_JORMUNGAR; + break; + case PHASE_FEROCIOUS_RHINO: + nextBossId = DATA_FEROCIOUS_RHINO; + break; + case PHASE_GORTOK_PALEHOOF: + nextBossId = DATA_GORTOK_PALEHOOF; + break; + default: + return; } - if (pNext) - DoCast(pNext, SPELL_ORB_CHANNEL, false); - currentPhase = (Phase)id; + + if (Creature* nextBoss = ObjectAccessor::GetCreature(*me, instance->GetData64(nextBossId))) + DoCast(nextBoss, SPELL_ORB_CHANNEL, false); + + currentPhase = Phase(id); SummonTimer = 5000; } }; @@ -821,23 +799,25 @@ public: class go_palehoof_sphere : public GameObjectScript { -public: - go_palehoof_sphere() : GameObjectScript("go_palehoof_sphere") { } - - bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE - { - InstanceScript* instance = go->GetInstanceScript(); + public: + go_palehoof_sphere() : GameObjectScript("go_palehoof_sphere") { } - Creature* pPalehoof = Unit::GetCreature(*go, instance ? instance->GetData64(DATA_GORTOK_PALEHOOF) : 0); - if (pPalehoof && pPalehoof->IsAlive()) + bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE { - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - go->SetGoState(GO_STATE_ACTIVE); + InstanceScript* instance = go->GetInstanceScript(); + if (!instance) + return false; + + Creature* palehoof = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_GORTOK_PALEHOOF)); + if (palehoof && palehoof->IsAlive()) + { + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + go->SetGoState(GO_STATE_ACTIVE); - CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->NextPhase(); + palehoof->AI()->DoAction(ACTION_NEXT_PHASE); + } + return true; } - return true; - } }; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index 08670af939a..01fcd9a665d 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -210,7 +210,7 @@ public: me->SummonCreature(NPC_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f); if (instance) { - instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, NOT_STARTED); + instance->SetBossState(DATA_SKADI_THE_RUTHLESS, NOT_STARTED); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } } @@ -237,7 +237,7 @@ public: me->SetInCombatWithZone(); if (instance) { - instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_SKADI_THE_RUTHLESS, IN_PROGRESS); instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); me->GetMotionMaster()->MoveJump(Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 5.0f, 10.0f); me->SetWalk(false); @@ -412,7 +412,7 @@ public: Talk(SAY_DEATH); Summons.DespawnAll(); if (instance) - instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, DONE); + instance->SetBossState(DATA_SKADI_THE_RUTHLESS, DONE); } void KilledUnit(Unit* /*victim*/) OVERRIDE diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp index 818631788b6..1ab39048df2 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp @@ -74,7 +74,6 @@ enum Yells enum Creatures { NPC_ARTHAS = 29280, // Image of Arthas - NPC_SVALA_SORROWGRAVE = 26668, // Svala after transformation NPC_RITUAL_CHANNELER = 27281, NPC_SPECTATOR = 26667, NPC_RITUAL_TARGET = 27327, @@ -82,11 +81,6 @@ enum Creatures NPC_SCOURGE_HULK = 26555 }; -enum GameObjects -{ - GO_UTGARDE_MIRROR = 191745 -}; - enum SvalaPhase { IDLE, @@ -101,191 +95,159 @@ enum Misc DATA_INCREDIBLE_HULK = 2043 }; -static const float spectatorWP[2][3] = +Position const spectatorWP[2] = { - {296.95f, -312.76f, 86.36f}, - {297.69f, -275.81f, 86.36f} + {296.95f, -312.76f, 86.36f, 0.0f }, + {297.69f, -275.81f, 86.36f, 0.0f } }; -static Position ArthasPos = { 295.81f, -366.16f, 92.57f, 1.58f }; +Position const ArthasPos = { 295.81f, -366.16f, 92.57f, 1.58f }; class boss_svala : public CreatureScript { -public: - boss_svala() : CreatureScript("boss_svala") { } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_svalaAI(creature); - } + public: + boss_svala() : CreatureScript("boss_svala") { } - struct boss_svalaAI : public ScriptedAI - { - boss_svalaAI(Creature* creature) : ScriptedAI(creature), summons(creature) + struct boss_svalaAI : public BossAI { - instance = creature->GetInstanceScript(); - Phase = IDLE; - - me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_RITUAL_STRIKE_EFF_1, true); - me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_RITUAL_STRIKE_EFF_2, true); - } - - InstanceScript* instance; - SummonList summons; - SvalaPhase Phase; - - Position pos; - float x, y, z; + boss_svalaAI(Creature* creature) : BossAI(creature, DATA_SVALA_SORROWGRAVE) + { + Phase = IDLE; + } - uint32 introTimer; - uint8 introPhase; - uint8 sacrePhase; + SvalaPhase Phase; - TempSummon* arthas; - uint64 arthasGUID; + uint32 introTimer; + uint8 introPhase; + uint8 sacrePhase; - uint32 sinsterStrikeTimer; - uint32 callFlamesTimer; - uint32 sacrificeTimer; + uint64 arthasGUID; - bool sacrificed; + uint32 sinsterStrikeTimer; + uint32 callFlamesTimer; + uint32 sacrificeTimer; - void Reset() OVERRIDE - { - sacrificed = false; - SetCombatMovement(true); + bool sacrificed; - summons.DespawnAll(); - me->RemoveAllAuras(); + void Reset() OVERRIDE + { + _Reset(); + sacrificed = false; + SetCombatMovement(true); - if (Phase > NORMAL) - Phase = NORMAL; + if (Phase > NORMAL) + Phase = NORMAL; - me->SetDisableGravity(Phase == NORMAL); + me->SetDisableGravity(Phase == NORMAL); - introTimer = 1 * IN_MILLISECONDS; - introPhase = 0; - arthasGUID = 0; + introTimer = 1 * IN_MILLISECONDS; + introPhase = 0; + sacrePhase = 0; + arthasGUID = 0; - if (instance) - { - instance->SetData(DATA_SVALA_SORROWGRAVE_EVENT, NOT_STARTED); instance->SetData64(DATA_SACRIFICED_PLAYER, 0); } - } - void EnterCombat(Unit* /*who*/) OVERRIDE - { - Talk(SAY_AGGRO); - - sinsterStrikeTimer = 7 * IN_MILLISECONDS; - callFlamesTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); - - if (instance) - instance->SetData(DATA_SVALA_SORROWGRAVE_EVENT, IN_PROGRESS); - } - - void JustSummoned(Creature* summon) OVERRIDE - { - if (summon->GetEntry() == NPC_RITUAL_CHANNELER) - summon->CastSpell(summon, SPELL_SUMMONED_VIS, true); - - summons.Summon(summon); - } + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + Talk(SAY_AGGRO); - void SummonedCreatureDespawn(Creature* summon) OVERRIDE - { - summons.Despawn(summon); - } + sinsterStrikeTimer = 7 * IN_MILLISECONDS; + callFlamesTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); + } - void MoveInLineOfSight(Unit* who) OVERRIDE + void JustSummoned(Creature* summon) OVERRIDE + { + if (summon->GetEntry() == NPC_RITUAL_CHANNELER) + summon->CastSpell(summon, SPELL_SUMMONED_VIS, true); - { - if (!who) - return; + summons.Summon(summon); + } - if (Phase == IDLE && me->IsValidAttackTarget(who) && me->IsWithinDistInMap(who, 40)) + void MoveInLineOfSight(Unit* who) OVERRIDE { - Phase = INTRO; - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - - if (GameObject* mirror = GetClosestGameObjectWithEntry(me, GO_UTGARDE_MIRROR, 100.0f)) - mirror->SetGoState(GO_STATE_READY); + if (!who) + return; - if (Creature* arthas = me->SummonCreature(NPC_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN)) + if (Phase == IDLE && me->IsValidAttackTarget(who) && me->IsWithinDistInMap(who, 40)) { - arthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); - arthasGUID = arthas->GetGUID(); - } - } - } + Phase = INTRO; + me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - void KilledUnit(Unit* victim) OVERRIDE - { - if (victim != me) - Talk(SAY_SLAY); - } + if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, DATA_UTGARDE_MIRROR)) + mirror->SetGoState(GO_STATE_READY); - void JustDied(Unit* /*killer*/) OVERRIDE - { - if (Phase == SACRIFICING) - SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE); + if (Creature* arthas = me->SummonCreature(NPC_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN)) + { + arthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); + arthasGUID = arthas->GetGUID(); + } + } + } - me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH); + void KilledUnit(Unit* who) OVERRIDE + { + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); + } - summons.DespawnAll(); + void JustDied(Unit* /*killer*/) OVERRIDE + { + if (Phase == SACRIFICING) + SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE); - if (instance) - instance->SetData(DATA_SVALA_SORROWGRAVE_EVENT, DONE); + me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH); - Talk(SAY_DEATH); - } + _JustDied(); + Talk(SAY_DEATH); + } - void SpellHitTarget(Unit* /*target*/, const SpellInfo* spell) OVERRIDE - { - if (spell->Id == SPELL_RITUAL_STRIKE_EFF_1 && Phase != NORMAL && Phase != SVALADEAD) + void SpellHitTarget(Unit* /*target*/, SpellInfo const* spellInfo) OVERRIDE { - Phase = NORMAL; - SetCombatMovement(true); + if (spellInfo->Id == SPELL_RITUAL_STRIKE_EFF_1 && Phase != NORMAL && Phase != SVALADEAD) + { + Phase = NORMAL; + SetCombatMovement(true); - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 300.0f, true)) - me->GetMotionMaster()->MoveChase(target); + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 300.0f, true)) + me->GetMotionMaster()->MoveChase(target); + } } - } - - void UpdateAI(uint32 diff) OVERRIDE - { - if (Phase == IDLE) - return; - if (Phase == INTRO) + void UpdateAI(uint32 diff) OVERRIDE { - if (introTimer <= diff) - { - Creature* arthas = Unit::GetCreature(*me, arthasGUID); - if (!arthas) - return; + if (Phase == IDLE) + return; - switch (introPhase) + if (Phase == INTRO) + { + if (introTimer <= diff) { - case 0: - Talk(SAY_SVALA_INTRO_0); - ++introPhase; - introTimer = 8100; - break; - case 1: - arthas->AI()->Talk(SAY_DIALOG_OF_ARTHAS_1); - ++introPhase; - introTimer = 10000; - break; - case 2: - arthas->CastSpell(me, SPELL_TRANSFORMING_CHANNEL, false); - pos.Relocate(me); - pos.m_positionZ += 8.0f; - me->GetMotionMaster()->MoveTakeoff(0, pos); - // spectators flee event - if (instance) + Creature* arthas = ObjectAccessor::GetCreature(*me, arthasGUID); + if (!arthas) + return; + + switch (introPhase) + { + case 0: + Talk(SAY_SVALA_INTRO_0); + ++introPhase; + introTimer = 8100; + break; + case 1: + arthas->AI()->Talk(SAY_DIALOG_OF_ARTHAS_1); + ++introPhase; + introTimer = 10000; + break; + case 2: { + arthas->CastSpell(me, SPELL_TRANSFORMING_CHANNEL, false); + Position pos; + pos.Relocate(me); + pos.m_positionZ += 8.0f; + me->GetMotionMaster()->MoveTakeoff(0, pos); + // spectators flee event std::list lspectatorList; GetCreatureListWithEntryInGrid(lspectatorList, me, NPC_SPECTATOR, 100.0f); for (std::list::iterator itr = lspectatorList.begin(); itr != lspectatorList.end(); ++itr) @@ -294,257 +256,258 @@ public: { (*itr)->SetStandState(UNIT_STAND_STATE_STAND); (*itr)->SetWalk(false); - (*itr)->GetMotionMaster()->MovePoint(1, spectatorWP[0][0], spectatorWP[0][1], spectatorWP[0][2]); + (*itr)->GetMotionMaster()->MovePoint(1, spectatorWP[0]); } } + + ++introPhase; + introTimer = 4200; + break; } - ++introPhase; - introTimer = 4200; - break; - case 3: - me->CastSpell(me, SPELL_SVALA_TRANSFORMING1, false); - ++introPhase; - introTimer = 6200; - break; - case 4: - me->CastSpell(me, SPELL_SVALA_TRANSFORMING2, false); - arthas->InterruptNonMeleeSpells(true); - me->RemoveAllAuras(); - me->UpdateEntry(NPC_SVALA_SORROWGRAVE); - me->SetFacingToObject(arthas); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - ++introPhase; - introTimer = 3200; - break; - case 5: - Talk(SAY_SVALA_INTRO_1); - ++introPhase; - introTimer = 10000; - break; - case 6: - arthas->AI()->Talk(SAY_DIALOG_OF_ARTHAS_2); - ++introPhase; - introTimer = 7200; - break; - case 7: - Talk(SAY_SVALA_INTRO_2); - me->SetFacingTo(1.58f); - arthas->SetVisible(false); - ++introPhase; - introTimer = 13800; - break; - case 8: - pos.Relocate(me); - pos.m_positionX = me->GetHomePosition().GetPositionX(); - pos.m_positionY = me->GetHomePosition().GetPositionY(); - pos.m_positionZ = 90.6065f; - me->GetMotionMaster()->MoveLand(0, pos); - me->SetDisableGravity(false, true); - me->SetHover(true); - ++introPhase; - introTimer = 3000; - break; - case 9: - if (GameObject* mirror = GetClosestGameObjectWithEntry(me, GO_UTGARDE_MIRROR, 100.0f)) - mirror->SetGoState(GO_STATE_ACTIVE); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - arthas->DespawnOrUnsummon(); - arthasGUID = 0; - Phase = NORMAL; - break; + case 3: + me->CastSpell(me, SPELL_SVALA_TRANSFORMING1, false); + ++introPhase; + introTimer = 6200; + break; + case 4: + me->CastSpell(me, SPELL_SVALA_TRANSFORMING2, false); + arthas->InterruptNonMeleeSpells(true); + me->RemoveAllAuras(); + me->UpdateEntry(NPC_SVALA_SORROWGRAVE); + me->SetFacingToObject(arthas); + me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + ++introPhase; + introTimer = 3200; + break; + case 5: + Talk(SAY_SVALA_INTRO_1); + ++introPhase; + introTimer = 10000; + break; + case 6: + arthas->AI()->Talk(SAY_DIALOG_OF_ARTHAS_2); + ++introPhase; + introTimer = 7200; + break; + case 7: + Talk(SAY_SVALA_INTRO_2); + me->SetFacingTo(1.58f); + arthas->SetVisible(false); + ++introPhase; + introTimer = 13800; + break; + case 8: + { + Position pos; + pos.Relocate(me); + pos.m_positionX = me->GetHomePosition().GetPositionX(); + pos.m_positionY = me->GetHomePosition().GetPositionY(); + pos.m_positionZ = 90.6065f; + me->GetMotionMaster()->MoveLand(0, pos); + me->SetDisableGravity(false, true); + me->SetHover(true); + ++introPhase; + introTimer = 3000; + break; + } + case 9: + if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, DATA_UTGARDE_MIRROR)) + mirror->SetGoState(GO_STATE_ACTIVE); + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + arthas->DespawnOrUnsummon(); + arthasGUID = 0; + Phase = NORMAL; + break; + } } - } - else - introTimer -= diff; - - return; - } + else + introTimer -= diff; - if (Phase == NORMAL) - { - //Return since we have no target - if (!UpdateVictim()) return; - - if (sinsterStrikeTimer <= diff) - { - DoCastVictim(SPELL_SINSTER_STRIKE); - sinsterStrikeTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS); } - else - sinsterStrikeTimer -= diff; - if (callFlamesTimer <= diff) + if (Phase == NORMAL) { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) + if (!UpdateVictim()) + return; + + if (sinsterStrikeTimer <= diff) { - DoCast(target, SPELL_CALL_FLAMES); - callFlamesTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); + DoCastVictim(SPELL_SINSTER_STRIKE); + sinsterStrikeTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS); } - } - else callFlamesTimer -= diff; + else + sinsterStrikeTimer -= diff; - if (!sacrificed) - { - if (HealthBelowPct(50)) + if (callFlamesTimer <= diff) + { + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) + { + DoCast(target, SPELL_CALL_FLAMES); + callFlamesTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); + } + } + else + callFlamesTimer -= diff; + + if (!sacrificed) { - if (Unit* sacrificeTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 80.0f, true)) + if (HealthBelowPct(50)) { - if (instance) + if (Unit* sacrificeTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 80.0f, true)) + { instance->SetData64(DATA_SACRIFICED_PLAYER, sacrificeTarget->GetGUID()); - Talk(SAY_SACRIFICE_PLAYER); + Talk(SAY_SACRIFICE_PLAYER); - DoCast(sacrificeTarget, SPELL_RITUAL_PREPARATION); + DoCast(sacrificeTarget, SPELL_RITUAL_PREPARATION); - SetCombatMovement(false); + SetCombatMovement(false); - Phase = SACRIFICING; - sacrePhase = 0; - sacrificeTimer = 1 * IN_MILLISECONDS; + Phase = SACRIFICING; + sacrePhase = 0; + sacrificeTimer = 1 * IN_MILLISECONDS; - DoCast(me, SPELL_RITUAL_OF_THE_SWORD); - sacrificed = true; + DoCast(me, SPELL_RITUAL_OF_THE_SWORD); + sacrificed = true; + } } } - } - DoMeleeAttackIfReady(); - } - else //SACRIFICING - { - if (sacrificeTimer <= diff) + DoMeleeAttackIfReady(); + } + else // SACRIFICING { - switch (sacrePhase) + if (sacrificeTimer <= diff) { - case 0: - // spawn ritual channelers - if (instance) - { + switch (sacrePhase) + { + case 0: + // spawn ritual channelers DoCast(me, SPELL_RITUAL_CHANNELER_1, true); DoCast(me, SPELL_RITUAL_CHANNELER_2, true); DoCast(me, SPELL_RITUAL_CHANNELER_3, true); - } - ++sacrePhase; - sacrificeTimer = 2 * IN_MILLISECONDS; - break; - case 1: - me->StopMoving(); - me->GetMotionMaster()->MoveIdle(); - me->InterruptNonMeleeSpells(true); - DoCast(me, SPELL_RITUAL_STRIKE_TRIGGER, true); - ++sacrePhase; - sacrificeTimer = 200; - break; - case 2: - DoCast(me, SPELL_RITUAL_DISARM); - ++sacrePhase; - break; - case 3: - break; + ++sacrePhase; + sacrificeTimer = 2 * IN_MILLISECONDS; + break; + case 1: + me->StopMoving(); + me->GetMotionMaster()->MoveIdle(); + me->InterruptNonMeleeSpells(true); + DoCast(me, SPELL_RITUAL_STRIKE_TRIGGER, true); + ++sacrePhase; + sacrificeTimer = 200; + break; + case 2: + DoCast(me, SPELL_RITUAL_DISARM); + ++sacrePhase; + break; + case 3: + break; + } } + else + sacrificeTimer -= diff; } - else sacrificeTimer -= diff; } - } - }; + }; + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetUtgardePinnacleAI(creature); + } }; class npc_ritual_channeler : public CreatureScript { -public: - npc_ritual_channeler() : CreatureScript("npc_ritual_channeler") { } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_ritual_channelerAI(creature); - } + public: + npc_ritual_channeler() : CreatureScript("npc_ritual_channeler") { } - struct npc_ritual_channelerAI : public ScriptedAI - { - npc_ritual_channelerAI(Creature* creature) :ScriptedAI(creature) + struct npc_ritual_channelerAI : public ScriptedAI { - instance = creature->GetInstanceScript(); + npc_ritual_channelerAI(Creature* creature) : ScriptedAI(creature) + { + instance = creature->GetInstanceScript(); - SetCombatMovement(false); - } + SetCombatMovement(false); + } - InstanceScript* instance; - uint32 paralyzeTimer; + InstanceScript* instance; + uint32 paralyzeTimer; + + void Reset() OVERRIDE + { + paralyzeTimer = 1600; - void Reset() OVERRIDE - { - paralyzeTimer = 1600; - if (instance) if (IsHeroic()) DoCast(me, SPELL_SHADOWS_IN_THE_DARK); - } - - void UpdateAI(uint32 diff) OVERRIDE - { - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + } - if (paralyzeTimer <= diff) + void UpdateAI(uint32 diff) OVERRIDE { - if (instance) - if (Unit* victim = me->GetUnit(*me, instance->GetData64(DATA_SACRIFICED_PLAYER))) + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + if (paralyzeTimer <= diff) + { + if (Player* victim = ObjectAccessor::GetPlayer(*me, instance->GetData64(DATA_SACRIFICED_PLAYER))) DoCast(victim, SPELL_PARALYZE, false); - paralyzeTimer = 200; + paralyzeTimer = 200; + } + else + paralyzeTimer -= diff; } - else - paralyzeTimer -= diff; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetUtgardePinnacleAI(creature); } - }; }; class npc_spectator : public CreatureScript { -public: - npc_spectator() : CreatureScript("npc_spectator") { } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_spectatorAI(creature); - } + public: + npc_spectator() : CreatureScript("npc_spectator") { } - struct npc_spectatorAI : public ScriptedAI - { - npc_spectatorAI(Creature* creature) : ScriptedAI(creature) { } + struct npc_spectatorAI : public ScriptedAI + { + npc_spectatorAI(Creature* creature) : ScriptedAI(creature) { } - void Reset() OVERRIDE { } + void Reset() OVERRIDE { } - void MovementInform(uint32 motionType, uint32 pointId) OVERRIDE - { - if (motionType == POINT_MOTION_TYPE) + void MovementInform(uint32 motionType, uint32 pointId) OVERRIDE { - if (pointId == 1) - me->GetMotionMaster()->MovePoint(2, spectatorWP[1][0], spectatorWP[1][1], spectatorWP[1][2]); - else if (pointId == 2) - me->DespawnOrUnsummon(1000); + if (motionType == POINT_MOTION_TYPE) + { + if (pointId == 1) + me->GetMotionMaster()->MovePoint(2, spectatorWP[1]); + else if (pointId == 2) + me->DespawnOrUnsummon(1000); + } } + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetUtgardePinnacleAI(creature); } - }; }; class RitualTargetCheck { public: - explicit RitualTargetCheck(Unit* _caster) : caster(_caster) { } + explicit RitualTargetCheck() { } - bool operator() (WorldObject* unit) const + bool operator() (WorldObject* obj) const { - if (InstanceScript* instance = caster->GetInstanceScript()) - if (instance->GetData64(DATA_SACRIFICED_PLAYER) == unit->GetGUID()) + if (InstanceScript* instance = obj->GetInstanceScript()) + if (instance->GetData64(DATA_SACRIFICED_PLAYER) == obj->GetGUID()) return false; return true; } - - private: - Unit* caster; }; class spell_paralyze_pinnacle : public SpellScriptLoader @@ -558,7 +521,7 @@ class spell_paralyze_pinnacle : public SpellScriptLoader void FilterTargets(std::list& unitList) { - unitList.remove_if(RitualTargetCheck(GetCaster())); + unitList.remove_if(RitualTargetCheck()); } void Register() OVERRIDE @@ -635,7 +598,7 @@ class npc_scourge_hulk : public CreatureScript CreatureAI* GetAI(Creature* creature) const OVERRIDE { - return new npc_scourge_hulkAI(creature); + return GetUtgardePinnacleAI(creature); } }; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index f592a4b2bb2..f4c306c726a 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -103,16 +103,10 @@ class boss_ymiron : public CreatureScript public: boss_ymiron() : CreatureScript("boss_ymiron") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE + struct boss_ymironAI : public BossAI { - return new boss_ymironAI(creature); - } - - struct boss_ymironAI : public ScriptedAI - { - boss_ymironAI(Creature* creature) : ScriptedAI(creature) + boss_ymironAI(Creature* creature) : BossAI(creature, DATA_KING_YMIRON) { - instance = creature->GetInstanceScript(); for (int i = 0; i < 4; ++i) m_uiActiveOrder[i] = i; for (int i = 0; i < 3; ++i) @@ -122,9 +116,6 @@ public: m_uiActiveOrder[i] = m_uiActiveOrder[r]; m_uiActiveOrder[r] = temp; } - - m_uiActivedCreatureGUID = 0; - m_uiOrbGUID = 0; } bool m_bIsWalking; @@ -155,10 +146,9 @@ public: uint64 m_uiActivedCreatureGUID; uint64 m_uiOrbGUID; - InstanceScript* instance; - void Reset() OVERRIDE { + _Reset(); m_bIsWalking = false; m_bIsPause = false; m_bIsActiveWithBJORN = false; @@ -182,19 +172,14 @@ public: m_uiHealthAmountModifier = 1; m_uiHealthAmountMultipler = DUNGEON_MODE(20, 25); - DespawnBoatGhosts(m_uiActivedCreatureGUID); - DespawnBoatGhosts(m_uiOrbGUID); - - if (instance) - instance->SetData(DATA_KING_YMIRON_EVENT, NOT_STARTED); + m_uiActivedCreatureGUID = 0; + m_uiOrbGUID = 0; } void EnterCombat(Unit* /*who*/) OVERRIDE { + _EnterCombat(); Talk(SAY_AGGRO); - - if (instance) - instance->SetData(DATA_KING_YMIRON_EVENT, IN_PROGRESS); } void SpellHitTarget(Unit* who, SpellInfo const* spell) OVERRIDE @@ -371,21 +356,17 @@ public: void JustDied(Unit* /*killer*/) OVERRIDE { + _JustDied(); Talk(SAY_DEATH); - - DespawnBoatGhosts(m_uiActivedCreatureGUID); - DespawnBoatGhosts(m_uiOrbGUID); - - if (instance) - instance->SetData(DATA_KING_YMIRON_EVENT, DONE); } - void KilledUnit(Unit* /*victim*/) OVERRIDE + void KilledUnit(Unit* who) OVERRIDE { - Talk(SAY_SLAY); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); } - void DespawnBoatGhosts(uint64 m_uiCreatureGUID) + void DespawnBoatGhosts(uint64& m_uiCreatureGUID) { if (m_uiCreatureGUID) if (Creature* temp = Unit::GetCreature(*me, m_uiCreatureGUID)) @@ -395,14 +376,16 @@ public: } }; + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return GetUtgardePinnacleAI(creature); + } }; class achievement_kings_bane : public AchievementCriteriaScript { public: - achievement_kings_bane() : AchievementCriteriaScript("achievement_kings_bane") - { - } + achievement_kings_bane() : AchievementCriteriaScript("achievement_kings_bane") { } bool OnCheck(Player* /*player*/, Unit* target) OVERRIDE { diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp index 4959b3a6b58..46fabe41086 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp @@ -19,246 +19,235 @@ #include "InstanceScript.h" #include "utgarde_pinnacle.h" -#define MAX_ENCOUNTER 4 - -/* Utgarde Pinnacle encounters: -0 - Svala Sorrowgrave -1 - Gortok Palehoof -2 - Skadi the Ruthless -3 - King Ymiron -*/ - -enum GameObjects +DoorData const doorData[] = { - ENTRY_SKADI_THE_RUTHLESS_DOOR = 192173, - ENTRY_KING_YMIRON_DOOR = 192174, - ENTRY_GORK_PALEHOOF_SPHERE = 188593 + { GO_SKADI_THE_RUTHLESS_DOOR, DATA_SKADI_THE_RUTHLESS, DOOR_TYPE_PASSAGE, BOUNDARY_W }, + { GO_KING_YMIRON_DOOR, DATA_KING_YMIRON, DOOR_TYPE_PASSAGE, BOUNDARY_N }, + { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END }; class instance_utgarde_pinnacle : public InstanceMapScript { -public: - instance_utgarde_pinnacle() : InstanceMapScript("instance_utgarde_pinnacle", 575) { } - - InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE - { - return new instance_pinnacle(map); - } - - struct instance_pinnacle : public InstanceScript - { - instance_pinnacle(Map* map) : InstanceScript(map) { } - - uint64 uiSvalaSorrowgrave; - uint64 uiGortokPalehoof; - uint64 uiSkadiTheRuthless; - uint64 uiKingYmiron; - - uint64 uiSkadiTheRuthlessDoor; - uint64 uiKingYmironDoor; - uint64 uiGortokPalehoofSphere; + public: + instance_utgarde_pinnacle() : InstanceMapScript(UPScriptName, 575) { } - uint64 uiFrenziedWorgen; - uint64 uiRavenousFurbolg; - uint64 uiFerociousRhino; - uint64 uiMassiveJormungar; - uint64 uiPalehoofOrb; - - uint64 uiSvala; - uint64 uiSacrificedPlayer; - - uint32 m_auiEncounter[MAX_ENCOUNTER]; - - std::string str_data; - - void Initialize() OVERRIDE + struct instance_utgarde_pinnacle_InstanceMapScript : public InstanceScript { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - m_auiEncounter[i] = NOT_STARTED; - - uiSvalaSorrowgrave = 0; - uiGortokPalehoof = 0; - uiSkadiTheRuthless = 0; - uiKingYmiron = 0; - - uiSkadiTheRuthlessDoor = 0; - uiKingYmironDoor = 0; - uiGortokPalehoofSphere = 0; + instance_utgarde_pinnacle_InstanceMapScript(Map* map) : InstanceScript(map) + { + SetBossNumber(EncounterCount); + LoadDoorData(doorData); - uiFrenziedWorgen = 0; - uiRavenousFurbolg = 0; - uiFerociousRhino = 0; - uiMassiveJormungar = 0; - uiPalehoofOrb = 0; + SvalaSorrowgraveGUID = 0; + GortokPalehoofGUID = 0; + SkadiTheRuthlessGUID = 0; + KingYmironGUID = 0; - uiSvala = 0; - uiSacrificedPlayer = 0; - } + UtgardeMirrorGUID = 0; + GortokPalehoofSphereGUID = 0; - bool IsEncounterInProgress() const OVERRIDE - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - return true; + FrenziedWorgenGUID = 0; + RavenousFurbolgGUID = 0; + FerociousRhinoGUID = 0; + MassiveJormungarGUID = 0; + PalehoofOrbGUID = 0; - return false; - } + SvalaGUID = 0; + SacrificedPlayerGUID = 0; + } - void OnCreatureCreate(Creature* creature) OVERRIDE - { - switch (creature->GetEntry()) + void OnCreatureCreate(Creature* creature) OVERRIDE { - case BOSS_SVALA_SORROWGRAVE: uiSvalaSorrowgrave = creature->GetGUID(); break; - case BOSS_GORTOK_PALEHOOF: uiGortokPalehoof = creature->GetGUID(); break; - case BOSS_SKADI_RUTHLESS: uiSkadiTheRuthless = creature->GetGUID(); break; - case BOSS_KING_YMIRON: uiKingYmiron = creature->GetGUID(); break; - case NPC_FRENZIED_WORGEN: uiFrenziedWorgen = creature->GetGUID(); break; - case NPC_RAVENOUS_FURBOLG: uiRavenousFurbolg = creature->GetGUID(); break; - case NPC_MASSIVE_JORMUNGAR: uiMassiveJormungar = creature->GetGUID(); break; - case NPC_FEROCIOUS_RHINO: uiFerociousRhino = creature->GetGUID(); break; - case NPC_SVALA: uiSvala = creature->GetGUID(); break; - case NPC_PALEHOOF_ORB: uiPalehoofOrb = creature->GetGUID(); break; + switch (creature->GetEntry()) + { + case NPC_SVALA_SORROWGRAVE: + SvalaSorrowgraveGUID = creature->GetGUID(); + break; + case NPC_GORTOK_PALEHOOF: + GortokPalehoofGUID = creature->GetGUID(); + break; + case NPC_SKADI_THE_RUTHLESS: + SkadiTheRuthlessGUID = creature->GetGUID(); + break; + case NPC_KING_YMIRON: + KingYmironGUID = creature->GetGUID(); + break; + case NPC_FRENZIED_WORGEN: + FrenziedWorgenGUID = creature->GetGUID(); + break; + case NPC_RAVENOUS_FURBOLG: + RavenousFurbolgGUID = creature->GetGUID(); + break; + case NPC_MASSIVE_JORMUNGAR: + MassiveJormungarGUID = creature->GetGUID(); + break; + case NPC_FEROCIOUS_RHINO: + FerociousRhinoGUID = creature->GetGUID(); + break; + case NPC_SVALA: + SvalaGUID = creature->GetGUID(); + break; + case NPC_PALEHOOF_ORB: + PalehoofOrbGUID = creature->GetGUID(); + break; + default: + break; + } } - } - void OnGameObjectCreate(GameObject* go) OVERRIDE - { - switch (go->GetEntry()) + void OnGameObjectCreate(GameObject* go) OVERRIDE { - case ENTRY_SKADI_THE_RUTHLESS_DOOR: - uiSkadiTheRuthlessDoor = go->GetGUID(); - if (m_auiEncounter[2] == DONE) HandleGameObject(0, true, go); - break; - case ENTRY_KING_YMIRON_DOOR: - uiKingYmironDoor = go->GetGUID(); - if (m_auiEncounter[3] == DONE) HandleGameObject(0, true, go); - break; - case ENTRY_GORK_PALEHOOF_SPHERE: - uiGortokPalehoofSphere = go->GetGUID(); - if (m_auiEncounter[1] == DONE) - { - HandleGameObject(0, true, go); - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - } - break; + switch (go->GetEntry()) + { + case GO_UTGARDE_MIRROR: + UtgardeMirrorGUID = go->GetGUID(); + break; + case GO_GORTOK_PALEHOOF_SPHERE: + GortokPalehoofSphereGUID = go->GetGUID(); + if (GetBossState(DATA_GORTOK_PALEHOOF) == DONE) + { + HandleGameObject(0, true, go); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + } + break; + case GO_SKADI_THE_RUTHLESS_DOOR: + case GO_KING_YMIRON_DOOR: + AddDoor(go, true); + break; + default: + break; + } } - } - void SetData(uint32 type, uint32 data) OVERRIDE - { - switch (type) + void OnGameObjectRemove(GameObject* go) OVERRIDE { - case DATA_SVALA_SORROWGRAVE_EVENT: - m_auiEncounter[0] = data; - break; - case DATA_GORTOK_PALEHOOF_EVENT: - m_auiEncounter[1] = data; - break; - case DATA_SKADI_THE_RUTHLESS_EVENT: - if (data == DONE) - HandleGameObject(uiSkadiTheRuthlessDoor, true); - m_auiEncounter[2] = data; - break; - case DATA_KING_YMIRON_EVENT: - if (data == DONE) - HandleGameObject(uiKingYmironDoor, true); - m_auiEncounter[3] = data; - break; + switch (go->GetEntry()) + { + case GO_SKADI_THE_RUTHLESS_DOOR: + case GO_KING_YMIRON_DOOR: + AddDoor(go, false); + break; + default: + break; + } } - if (data == DONE) - SaveToDB(); - } - - void SetData64(uint32 type, uint64 data) OVERRIDE - { - switch (type) + void SetData64(uint32 type, uint64 data) OVERRIDE { - case DATA_SACRIFICED_PLAYER: - uiSacrificedPlayer = data; - break; + switch (type) + { + case DATA_SACRIFICED_PLAYER: + SacrificedPlayerGUID = data; + break; + default: + break; + } } - } - uint32 GetData(uint32 type) const OVERRIDE - { - switch (type) + uint64 GetData64(uint32 type) const OVERRIDE { - case DATA_SVALA_SORROWGRAVE_EVENT: return m_auiEncounter[0]; - case DATA_GORTOK_PALEHOOF_EVENT: return m_auiEncounter[1]; - case DATA_SKADI_THE_RUTHLESS_EVENT: return m_auiEncounter[2]; - case DATA_KING_YMIRON_EVENT: return m_auiEncounter[3]; + switch (type) + { + case DATA_SVALA_SORROWGRAVE: + return SvalaSorrowgraveGUID; + case DATA_GORTOK_PALEHOOF: + return GortokPalehoofGUID; + case DATA_SKADI_THE_RUTHLESS: + return SkadiTheRuthlessGUID; + case DATA_KING_YMIRON: + return KingYmironGUID; + case DATA_FRENZIED_WORGEN: + return FrenziedWorgenGUID; + case DATA_RAVENOUS_FURBOLG: + return RavenousFurbolgGUID; + case DATA_MASSIVE_JORMUNGAR: + return MassiveJormungarGUID; + case DATA_FEROCIOUS_RHINO: + return FerociousRhinoGUID; + case DATA_GORTOK_ORB: + return PalehoofOrbGUID; + case DATA_GORTOK_PALEHOOF_SPHERE: + return GortokPalehoofSphereGUID; + case DATA_UTGARDE_MIRROR: + return UtgardeMirrorGUID; + case DATA_SVALA: + return SvalaGUID; + case DATA_SACRIFICED_PLAYER: + return SacrificedPlayerGUID; + default: + break; + } + + return 0; } - return 0; - } - uint64 GetData64(uint32 identifier) const OVERRIDE - { - switch (identifier) + std::string GetSaveData() OVERRIDE { - case DATA_SVALA_SORROWGRAVE: return uiSvalaSorrowgrave; - case DATA_GORTOK_PALEHOOF: return uiGortokPalehoof; - case DATA_SKADI_THE_RUTHLESS: return uiSkadiTheRuthless; - case DATA_KING_YMIRON: return uiKingYmiron; - case DATA_NPC_FRENZIED_WORGEN: return uiFrenziedWorgen; - case DATA_NPC_RAVENOUS_FURBOLG: return uiRavenousFurbolg; - case DATA_NPC_MASSIVE_JORMUNGAR: return uiMassiveJormungar; - case DATA_NPC_FEROCIOUS_RHINO: return uiFerociousRhino; - case DATA_NPC_ORB: return uiPalehoofOrb; - case DATA_SVALA: return uiSvala; - case DATA_GORTOK_PALEHOOF_SPHERE: return uiGortokPalehoofSphere; - case DATA_SACRIFICED_PLAYER: return uiSacrificedPlayer; + OUT_SAVE_INST_DATA; + + std::ostringstream saveStream; + saveStream << "U P " << GetBossSaveData(); + + OUT_SAVE_INST_DATA_COMPLETE; + return saveStream.str(); } - return 0; - } + void Load(char const* str) OVERRIDE + { + if (!str) + { + OUT_LOAD_INST_DATA_FAIL; + return; + } - std::string GetSaveData() OVERRIDE - { - OUT_SAVE_INST_DATA; + OUT_LOAD_INST_DATA(str); - std::ostringstream saveStream; - saveStream << "U P " << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' - << m_auiEncounter[2] << ' ' << m_auiEncounter[3]; + char dataHead1, dataHead2; - str_data = saveStream.str(); + std::istringstream loadStream(str); + loadStream >> dataHead1 >> dataHead2; - OUT_SAVE_INST_DATA_COMPLETE; - return str_data; - } + if (dataHead1 == 'U' && dataHead2 == 'P') + { + for (uint32 i = 0; i < EncounterCount; ++i) + { + uint32 tmpState; + loadStream >> tmpState; + if (tmpState == IN_PROGRESS || tmpState > SPECIAL) + tmpState = NOT_STARTED; + SetBossState(i, EncounterState(tmpState)); + } + } + else + OUT_LOAD_INST_DATA_FAIL; - void Load(const char* in) OVERRIDE - { - if (!in) - { - OUT_LOAD_INST_DATA_FAIL; - return; + OUT_LOAD_INST_DATA_COMPLETE; } - OUT_LOAD_INST_DATA(in); + protected: + uint64 SvalaSorrowgraveGUID; + uint64 GortokPalehoofGUID; + uint64 SkadiTheRuthlessGUID; + uint64 KingYmironGUID; - char dataHead1, dataHead2; - uint16 data0, data1, data2, data3; + uint64 UtgardeMirrorGUID; + uint64 GortokPalehoofSphereGUID; - std::istringstream loadStream(in); - loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3; + uint64 FrenziedWorgenGUID; + uint64 RavenousFurbolgGUID; + uint64 FerociousRhinoGUID; + uint64 MassiveJormungarGUID; - if (dataHead1 == 'U' && dataHead2 == 'P') - { - m_auiEncounter[0] = data0; - m_auiEncounter[1] = data1; - m_auiEncounter[2] = data2; - m_auiEncounter[3] = data3; + uint64 PalehoofOrbGUID; - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - m_auiEncounter[i] = NOT_STARTED; + uint64 SvalaGUID; + uint64 SacrificedPlayerGUID; + }; - } else OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; + InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE + { + return new instance_utgarde_pinnacle_InstanceMapScript(map); } - }; }; void AddSC_instance_utgarde_pinnacle() diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h index 6166b7c4891..ddf1d1e512a 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h @@ -15,46 +15,64 @@ * with this program. If not, see . */ -#ifndef DEF_PINNACLE_H -#define DEF_PINNACLE_H +#ifndef UTGARDE_PINNACLE_H_ +#define UTGARDE_PINNACLE_H_ -enum Data +#define UPScriptName "instance_utgarde_pinnacle" + +uint32 const EncounterCount = 4; + +enum DataTypes { - DATA_SVALA_SORROWGRAVE_EVENT, - DATA_GORTOK_PALEHOOF_EVENT, - DATA_SKADI_THE_RUTHLESS_EVENT, - DATA_KING_YMIRON_EVENT + // Encounter States/Boss GUIDs + DATA_SVALA_SORROWGRAVE = 0, + DATA_GORTOK_PALEHOOF = 1, + DATA_SKADI_THE_RUTHLESS = 2, + DATA_KING_YMIRON = 3, + + // Additional Data + DATA_UTGARDE_MIRROR = 4, + DATA_SVALA = 5, + DATA_SACRIFICED_PLAYER = 6, + + DATA_FRENZIED_WORGEN = 7, + DATA_RAVENOUS_FURBOLG = 8, + DATA_MASSIVE_JORMUNGAR = 9, + DATA_FEROCIOUS_RHINO = 10, + DATA_GORTOK_ORB = 11, + DATA_GORTOK_PALEHOOF_SPHERE = 12 }; -enum Data64 +enum CreatureIds { - DATA_SVALA, - DATA_SVALA_SORROWGRAVE, - DATA_GORTOK_PALEHOOF, - DATA_SKADI_THE_RUTHLESS, - DATA_NPC_GRAUF, - DATA_KING_YMIRON, - DATA_NPC_FRENZIED_WORGEN, - DATA_NPC_RAVENOUS_FURBOLG, - DATA_NPC_MASSIVE_JORMUNGAR, - DATA_NPC_FEROCIOUS_RHINO, - DATA_NPC_ORB, - DATA_GORTOK_PALEHOOF_SPHERE, - DATA_SACRIFICED_PLAYER + NPC_SVALA_SORROWGRAVE = 26668, + NPC_GORTOK_PALEHOOF = 26687, + NPC_SKADI_THE_RUTHLESS = 26693, + NPC_KING_YMIRON = 26861, + + // Svala + NPC_SVALA = 29281, + + // Gortok Palehoof + NPC_FRENZIED_WORGEN = 26683, + NPC_RAVENOUS_FURBOLG = 26684, + NPC_MASSIVE_JORMUNGAR = 26685, + NPC_FEROCIOUS_RHINO = 26686, + NPC_PALEHOOF_ORB = 26688 }; -enum CreatureID +enum GameObjectIds { - BOSS_SVALA_SORROWGRAVE = 26668, - BOSS_GORTOK_PALEHOOF = 26687, - BOSS_SKADI_RUTHLESS = 26693, - BOSS_KING_YMIRON = 26861, - NPC_FRENZIED_WORGEN = 26683, - NPC_RAVENOUS_FURBOLG = 26684, - NPC_MASSIVE_JORMUNGAR = 26685, - NPC_FEROCIOUS_RHINO = 26686, - NPC_SVALA = 29281, - NPC_PALEHOOF_ORB = 26688 + GO_GORTOK_PALEHOOF_SPHERE = 188593, + GO_UTGARDE_MIRROR = 191745, + GO_SKADI_THE_RUTHLESS_DOOR = 192173, + GO_KING_YMIRON_DOOR = 192174 }; -#endif +template +AI* GetUtgardePinnacleAI(Creature* creature) +{ + return GetInstanceAI(creature, UPScriptName); +} + +#endif // UTGARDE_PINNACLE_H_ -- cgit v1.2.3 From 1196b93e9427001e9e52081891b5ee4954229c4f Mon Sep 17 00:00:00 2001 From: joschiwald Date: Tue, 26 Nov 2013 18:14:01 +0100 Subject: Core: fix build --- src/server/game/Entities/Creature/Creature.h | 8 ++++---- .../scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 08d3610594f..cab00be9446 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -641,15 +641,15 @@ class Creature : public Unit, public GridObject, public MapObject void GetTransportHomePosition(float &x, float &y, float &z, float &ori) { m_transportHomePosition.GetPosition(x, y, z, ori); } Position GetTransportHomePosition() { return m_transportHomePosition; } - uint32 GetWaypointPath(){return m_path_id;} + uint32 GetWaypointPath() const { return m_path_id; } void LoadPath(uint32 pathid) { m_path_id = pathid; } uint32 GetCurrentWaypointID() const { return m_waypointID; } void UpdateWaypointID(uint32 wpID) { m_waypointID = wpID; } void SearchFormation(); - CreatureGroup* GetFormation() {return m_formation;} - void SetFormation(CreatureGroup* formation) {m_formation = formation;} + CreatureGroup* GetFormation() { return m_formation; } + void SetFormation(CreatureGroup* formation) { m_formation = formation; } Unit* SelectVictim(); @@ -721,10 +721,10 @@ class Creature : public Unit, public GridObject, public MapObject CreatureData const* m_creatureData; uint16 m_LootMode; // Bitmask (default: LOOT_MODE_DEFAULT) that determines what loot will be lootable - uint32 guid_transport; bool IsInvisibleDueToDespawn() const; bool CanAlwaysSee(WorldObject const* obj) const; + private: void ForcedDespawn(uint32 timeMSToDespawn = 0); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp index 1ab39048df2..d518747a462 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp @@ -450,7 +450,7 @@ class npc_ritual_channeler : public CreatureScript if (paralyzeTimer <= diff) { - if (Player* victim = ObjectAccessor::GetPlayer(*me, instance->GetData64(DATA_SACRIFICED_PLAYER))) + if (Unit* victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SACRIFICED_PLAYER))) DoCast(victim, SPELL_PARALYZE, false); paralyzeTimer = 200; -- cgit v1.2.3 From 90334fe200640b2938d5a8f1b617977a57806b65 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Thu, 28 Nov 2013 10:44:27 -0330 Subject: Scripting/Torturer LeCraft: Move SAI script for Torturer LeCraft to cpp to make it work properly. --- sql/updates/world/2013_11_28_00_world_misc.sql | 21 +++++ src/server/scripts/Northrend/zone_dragonblight.cpp | 101 +++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 sql/updates/world/2013_11_28_00_world_misc.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_28_00_world_misc.sql b/sql/updates/world/2013_11_28_00_world_misc.sql new file mode 100644 index 00000000000..ea949e598e5 --- /dev/null +++ b/sql/updates/world/2013_11_28_00_world_misc.sql @@ -0,0 +1,21 @@ +-- Torturer LeCraft SAI +SET @ENTRY := 27209; +UPDATE `creature_template` SET `AIName`='', `ScriptName`='npc_torturer_leCraft' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +-- Texts for Torturer LeCraft +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Come to play?",12,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,1,0,"Ow! I'll tell you NOTHING, filthy $r!",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,2,0,"Wait... WAIT! What is it that you want to know? I know you're the $c named $N.",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,3,0,"OW...NO! We know that you've been stealing our armor and weapons and horses!",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,4,0,"We know... that you don't... know why we're immune... to your so-called blight. Grand Admiral Westwind somehow gave the high abbot that prayer. I beg you... no more... please?",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,5,0,"AHHHHHHHHH! Please... we know... that you... have a spy... disguised as... one of us! There... that's all that I know. Please... mercy... STOP!",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,6,0,"Please... stop. I'll do... anything....",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,7,0,"I beg you... no more.",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,8,0,"OWWWWWWWW!",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,9,0,"You won't get... anything else... out of me!",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,10,0,"They all... begged... for their... lives!",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,11,0,"I TOLD YOU... I don't know... anything... else!",15,0,100,0,0,0,"Torturer LeCraft"), +(@ENTRY,12,0,"Just... end it.",15,0,100,0,0,0,"Torturer LeCraft"); diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index 0357ea075f4..869f6bf7a5b 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -303,10 +303,111 @@ class npc_wyrmrest_defender : public CreatureScript } }; +/*##### +# npc_torturer_leCraft +#####*/ + +enum TorturerLeCraft +{ + SPELL_HEMORRHAGE = 30478, + SPELL_KIDNEY_SHOT = 30621, + SPELL_HIGH_EXECUTORS_BRANDING_IRON = 48603, + NPC_TORTURER_LECRAFT = 27394, + EVENT_HEMORRHAGE = 1, + EVENT_KIDNEY_SHOT = 2, + SAY_AGGRO = 0 +}; + +class npc_torturer_leCraft : public CreatureScript +{ + public: npc_torturer_leCraft() : CreatureScript("npc_torturer_leCraft") {} + + struct npc_torturer_leCraftAI : public ScriptedAI + { + npc_torturer_leCraftAI(Creature* creature) : ScriptedAI(creature) { } + + void Reset() OVERRIDE + { + _textcounter = 1; + _playerGUID = 0; + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _events.ScheduleEvent(EVENT_HEMORRHAGE, urand(5000, 8000)); + _events.ScheduleEvent(EVENT_KIDNEY_SHOT, urand(12000, 15000)); + Talk (SAY_AGGRO); + } + + + void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE + { + if (spell->Id != SPELL_HIGH_EXECUTORS_BRANDING_IRON) + return; + + if (Player* player = caster->ToPlayer()) + { + if (_textcounter == 1) + _playerGUID = player->GetGUID(); + + if (_playerGUID != player->GetGUID()) + return; + + Talk(_textcounter, player->GetGUID()); + + if (_textcounter == 5) + player->KilledMonsterCredit(NPC_TORTURER_LECRAFT, 0); + + ++_textcounter; + + if (_textcounter == 13) + _textcounter = 6; + } + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + _events.Update(diff); + + while (uint32 eventId = _events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_HEMORRHAGE: + DoCastVictim(SPELL_HEMORRHAGE); + _events.ScheduleEvent(EVENT_HEMORRHAGE, urand(12000, 168000)); + break; + case EVENT_KIDNEY_SHOT: + DoCastVictim(SPELL_KIDNEY_SHOT); + _events.ScheduleEvent(EVENT_KIDNEY_SHOT, urand(20000, 26000)); + break; + default: + break; + } + } + DoMeleeAttackIfReady(); + } + + private: + EventMap _events; + uint8 _textcounter; + uint64 _playerGUID; + }; + + CreatureAI* GetAI(Creature* creature) const + { + return new npc_torturer_leCraftAI(creature); + } +}; + void AddSC_dragonblight() { new npc_alexstrasza_wr_gate; new spell_q12096_q12092_dummy; new spell_q12096_q12092_bark; new npc_wyrmrest_defender; + new npc_torturer_leCraft; } -- cgit v1.2.3 From 89c5496de9175f88d624a816bf432da089d09143 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Thu, 28 Nov 2013 11:38:11 -0330 Subject: Scripting/Dragon Blight: A little cleanup to last commit. --- .../2013_11_28_01_world_creature_template.sql | 1 + src/server/scripts/Northrend/zone_dragonblight.cpp | 40 +++++++++++----------- 2 files changed, 21 insertions(+), 20 deletions(-) create mode 100644 sql/updates/world/2013_11_28_01_world_creature_template.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_28_01_world_creature_template.sql b/sql/updates/world/2013_11_28_01_world_creature_template.sql new file mode 100644 index 00000000000..a272e30d49f --- /dev/null +++ b/sql/updates/world/2013_11_28_01_world_creature_template.sql @@ -0,0 +1 @@ +UPDATE `creature_template` SET `ScriptName`='npc_torturer_lecraft' WHERE `entry`=27209; diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index 869f6bf7a5b..76ce586aa9d 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -304,7 +304,7 @@ class npc_wyrmrest_defender : public CreatureScript }; /*##### -# npc_torturer_leCraft +# npc_torturer_lecraft #####*/ enum TorturerLeCraft @@ -318,27 +318,28 @@ enum TorturerLeCraft SAY_AGGRO = 0 }; -class npc_torturer_leCraft : public CreatureScript +class npc_torturer_lecraft : public CreatureScript { - public: npc_torturer_leCraft() : CreatureScript("npc_torturer_leCraft") {} + public: npc_torturer_lecraft() : CreatureScript("npc_torturer_lecraft") {} - struct npc_torturer_leCraftAI : public ScriptedAI + struct npc_torturer_lecraftAI : public ScriptedAI { - npc_torturer_leCraftAI(Creature* creature) : ScriptedAI(creature) { } + npc_torturer_lecraftAI(Creature* creature) : ScriptedAI(creature) { } void Reset() OVERRIDE { - _textcounter = 1; + _textCounter = 1; _playerGUID = 0; } - void EnterCombat(Unit* /*who*/) OVERRIDE + void EnterCombat(Unit* who) OVERRIDE { _events.ScheduleEvent(EVENT_HEMORRHAGE, urand(5000, 8000)); _events.ScheduleEvent(EVENT_KIDNEY_SHOT, urand(12000, 15000)); - Talk (SAY_AGGRO); - } + if (Player* player = who->ToPlayer()) + Talk (SAY_AGGRO, player->GetGUID()); + } void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE { @@ -347,21 +348,21 @@ class npc_torturer_leCraft : public CreatureScript if (Player* player = caster->ToPlayer()) { - if (_textcounter == 1) + if (_textCounter == 1) _playerGUID = player->GetGUID(); if (_playerGUID != player->GetGUID()) return; - Talk(_textcounter, player->GetGUID()); + Talk(_textCounter, player->GetGUID()); - if (_textcounter == 5) + if (_textCounter == 5) player->KilledMonsterCredit(NPC_TORTURER_LECRAFT, 0); - ++_textcounter; + ++_textCounter; - if (_textcounter == 13) - _textcounter = 6; + if (_textCounter == 13) + _textCounter = 6; } } @@ -390,16 +391,15 @@ class npc_torturer_leCraft : public CreatureScript } DoMeleeAttackIfReady(); } - private: EventMap _events; - uint8 _textcounter; - uint64 _playerGUID; + uint8 _textCounter; + uint64 _playerGUID; }; CreatureAI* GetAI(Creature* creature) const { - return new npc_torturer_leCraftAI(creature); + return new npc_torturer_lecraftAI(creature); } }; @@ -409,5 +409,5 @@ void AddSC_dragonblight() new spell_q12096_q12092_dummy; new spell_q12096_q12092_bark; new npc_wyrmrest_defender; - new npc_torturer_leCraft; + new npc_torturer_lecraft; } -- cgit v1.2.3 From 6a7067f766a042c715c38a867e4c31a421a74c77 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Thu, 28 Nov 2013 20:19:57 +0100 Subject: Scripts: fix some issues found by static code analysis (also fix 2 startup errors) --- sql/updates/world/2013_11_28_02_world_misc.sql | 2 + .../SunwellPlateau/boss_eredar_twins.cpp | 32 +++++++--------- .../arcatraz/boss_dalliah_the_doomsayer.cpp | 16 +++----- .../arcatraz/boss_wrath_scryer_soccothrates.cpp | 44 +++++++++------------- .../TempestKeep/arcatraz/instance_arcatraz.cpp | 44 ++++++++++++---------- 5 files changed, 63 insertions(+), 75 deletions(-) create mode 100644 sql/updates/world/2013_11_28_02_world_misc.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_11_28_02_world_misc.sql b/sql/updates/world/2013_11_28_02_world_misc.sql new file mode 100644 index 00000000000..0e0431d4040 --- /dev/null +++ b/sql/updates/world/2013_11_28_02_world_misc.sql @@ -0,0 +1,2 @@ +UPDATE `creature_template_addon` SET `emote`=69 WHERE `entry`=31807; +DELETE FROM `creature_addon` WHERE `guid` IN (101725,101943); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index 280b4c27770..e68d834b20d 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -200,16 +200,13 @@ public: { if (!SisterDeath) { - if (instance) + Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); + if (Temp && Temp->isDead()) { - Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); - if (Temp && Temp->isDead()) - { - Talk(YELL_SISTER_ALYTHESS_DEAD); - DoCast(me, SPELL_EMPOWER); - me->InterruptSpell(CURRENT_GENERIC_SPELL); - SisterDeath = true; - } + Talk(YELL_SISTER_ALYTHESS_DEAD); + DoCast(me, SPELL_EMPOWER); + me->InterruptSpell(CURRENT_GENERIC_SPELL); + SisterDeath = true; } } @@ -347,15 +344,12 @@ public: { Enraged = false; - if (instance) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH))) { - if (Creature* temp = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SACROLASH))) - { - if (temp->isDead()) - temp->Respawn(); - else if (temp->GetVictim()) - me->getThreatManager().addThreat(temp->GetVictim(), 0.0f); - } + if (temp->isDead()) + temp->Respawn(); + else if (temp->GetVictim()) + me->getThreatManager().addThreat(temp->GetVictim(), 0.0f); } if (!me->IsInCombat()) @@ -527,7 +521,7 @@ public: if (!SisterDeath) { - Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); + Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); if (Temp && Temp->isDead()) { Talk(YELL_SISTER_SACROLASH_DEAD); @@ -538,7 +532,7 @@ public: } if (!me->GetVictim()) { - Creature* sisiter = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SACROLASH)); + Creature* sisiter = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); if (sisiter && !sisiter->isDead() && sisiter->GetVictim()) { me->AddThreat(sisiter->GetVictim(), 0.0f); diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp index b5947e93216..bbc62d4b99a 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp @@ -72,7 +72,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->SetData(1, 1); } @@ -86,9 +86,6 @@ class boss_dalliah_the_doomsayer : public CreatureScript events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000)); events.ScheduleEvent(EVENT_ME_FIRST, 6000); Talk(SAY_AGGRO); - - if (Creature* soccothrates = me->FindNearestCreature(NPC_SOCCOTHRATES, 100.0f, true)) - soccothratesGUID = soccothrates->GetGUID(); } void KilledUnit(Unit* /*victim*/) OVERRIDE @@ -161,7 +158,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000)); break; case EVENT_ME_FIRST: - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST); break; @@ -172,7 +169,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript if (HealthBelowPct(25) && !soccothratesTaunt) { - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT); soccothratesTaunt = true; } @@ -180,10 +177,9 @@ class boss_dalliah_the_doomsayer : public CreatureScript DoMeleeAttackIfReady(); } - private: - bool soccothratesTaunt; - bool soccothratesDeath; - uint64 soccothratesGUID; + private: + bool soccothratesTaunt; + bool soccothratesDeath; }; CreatureAI* GetAI(Creature* creature) const OVERRIDE diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp index 046ef93bf10..2d9bfc92583 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp @@ -98,7 +98,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->SetData(1, 1); } @@ -120,20 +120,13 @@ class boss_wrath_scryer_soccothrates : public CreatureScript void MoveInLineOfSight(Unit* who) OVERRIDE { - if (instance) + if (instance->GetData(DATA_CONVERSATION) == NOT_STARTED && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 70.0f)) { - if (instance->GetData(DATA_CONVERSATION) == NOT_STARTED && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 70.0f)) - { - Talk(SAY_SOCCOTHRATES_CONVO_1); - instance->SetData(DATA_CONVERSATION, DONE); + Talk(SAY_SOCCOTHRATES_CONVO_1); + instance->SetData(DATA_CONVERSATION, DONE); - if (Creature* dalliah = me->FindNearestCreature(NPC_DALLIAH, 50.0f, true)) - { - dalliahGUID = dalliah->GetGUID(); - preFight = true; - events.ScheduleEvent(EVENT_PREFIGHT_1, 2000); - } - } + preFight = true; + events.ScheduleEvent(EVENT_PREFIGHT_1, 2000); } } @@ -163,7 +156,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript switch (eventId) { case EVENT_PREFIGHT_1: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1); events.ScheduleEvent(EVENT_PREFIGHT_2, 3000); break; @@ -172,7 +165,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_3, 3000); break; case EVENT_PREFIGHT_3: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2); events.ScheduleEvent(EVENT_PREFIGHT_4, 6000); break; @@ -181,7 +174,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_5, 2000); break; case EVENT_PREFIGHT_5: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3); events.ScheduleEvent(EVENT_PREFIGHT_6, 3000); break; @@ -190,7 +183,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_7, 2000); break; case EVENT_PREFIGHT_7: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f); events.ScheduleEvent(EVENT_PREFIGHT_8, 4000); break; @@ -199,7 +192,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_9, 4000); break; case EVENT_PREFIGHT_9: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) { dalliah->SetFacingToObject(me); me->SetFacingToObject(dalliah); @@ -253,7 +246,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000)); break; case EVENT_ME_FIRST: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST); break; @@ -264,7 +257,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript if (HealthBelowPct(25) && !dalliahTaunt) { - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT); dalliahTaunt = true; } @@ -272,16 +265,15 @@ class boss_wrath_scryer_soccothrates : public CreatureScript DoMeleeAttackIfReady(); } - private: - bool preFight; - bool dalliahTaunt; - bool dalliahDeath; - uint64 dalliahGUID; + private: + bool preFight; + bool dalliahTaunt; + bool dalliahDeath; }; CreatureAI* GetAI(Creature* creature) const OVERRIDE { - return new boss_wrath_scryer_soccothratesAI(creature); + return GetArcatrazAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp index 0145636f9d2..cb7cd3828e2 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp @@ -38,6 +38,8 @@ class instance_arcatraz : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); + DalliahGUID = 0; + SoccothratesGUID = 0; MellicharGUID = 0; WardensShieldGUID = 0; @@ -49,8 +51,20 @@ class instance_arcatraz : public InstanceMapScript void OnCreatureCreate(Creature* creature) OVERRIDE { - if (creature->GetEntry() == NPC_MELLICHAR) - MellicharGUID = creature->GetGUID(); + switch (creature->GetEntry()) + { + case NPC_DALLIAH: + DalliahGUID = creature->GetGUID(); + break; + case NPC_SOCCOTHRATES: + SoccothratesGUID = creature->GetGUID(); + break; + case NPC_MELLICHAR: + MellicharGUID = creature->GetGUID(); + break; + default: + break; + } } void OnGameObjectCreate(GameObject* go) OVERRIDE @@ -102,29 +116,13 @@ class instance_arcatraz : public InstanceMapScript switch (type) { case DATA_WARDEN_1: - if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[0], true); - StasisPodStates[0] = uint8(data); - break; case DATA_WARDEN_2: - if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[1], true); - StasisPodStates[1] = uint8(data); - break; case DATA_WARDEN_3: - if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[2], true); - StasisPodStates[2] = uint8(data); - break; case DATA_WARDEN_4: - if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[3], true); - StasisPodStates[3] = uint8(data); - break; case DATA_WARDEN_5: if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[4], true); - StasisPodStates[4] = uint8(data); + HandleGameObject(StasisPodGUIDs[type - DATA_WARDEN_1], true); + StasisPodStates[type - DATA_WARDEN_1] = uint8(data); break; case DATA_CONVERSATION: ConversationState = uint8(data); @@ -156,6 +154,10 @@ class instance_arcatraz : public InstanceMapScript { switch (data) { + case DATA_DALLIAH: + return DalliahGUID; + case DATA_SOCCOTHRATES: + return SoccothratesGUID; case DATA_MELLICHAR: return MellicharGUID; case DATA_WARDENS_SHIELD: @@ -233,6 +235,8 @@ class instance_arcatraz : public InstanceMapScript } protected: + uint64 DalliahGUID; + uint64 SoccothratesGUID; uint64 StasisPodGUIDs[5]; uint64 MellicharGUID; uint64 WardensShieldGUID; -- cgit v1.2.3 From 38bc2a4b5c2047a334f0186f6564ccdfb32caa97 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Fri, 29 Nov 2013 07:35:08 -0330 Subject: Scripting/hinterlands: Fixed a script error involving creature_text --- src/server/scripts/EasternKingdoms/zone_hinterlands.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp index ebec0170d23..257e3c21688 100644 --- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp @@ -41,9 +41,9 @@ enum OOX { SAY_OOX_START = 0, SAY_OOX_AGGRO = 1, - SAY_OOX_AMBUSH = 3, - SAY_OOX_AMBUSH_REPLY = 4, - SAY_OOX_END = 5, + SAY_OOX_AMBUSH = 2, + SAY_OOX_AMBUSH_REPLY = 3, + SAY_OOX_END = 4, QUEST_RESQUE_OOX_09 = 836, -- cgit v1.2.3 From 6e13263c7a0ae4c8eecdf4fd9560339e2d3d9787 Mon Sep 17 00:00:00 2001 From: Vincent_Michael Date: Sun, 1 Dec 2013 01:27:08 +0100 Subject: Core/AI: Good bye, Good bye my beloved EventAI system :( --- .../auth/2013_12_01_00_auth_rbac_permissions.sql | 1 + .../world/2013_12_01_00_world_creature_ai.sql | 4 + src/server/game/AI/CreatureAIRegistry.cpp | 2 - src/server/game/AI/EventAI/CreatureEventAI.cpp | 1327 -------------------- src/server/game/AI/EventAI/CreatureEventAI.h | 630 ---------- src/server/game/AI/EventAI/CreatureEventAIMgr.cpp | 680 ---------- src/server/game/AI/EventAI/CreatureEventAIMgr.h | 46 - src/server/game/CMakeLists.txt | 1 - src/server/game/World/World.cpp | 7 - src/server/scripts/CMakeLists.txt | 1 - src/server/scripts/Commands/cs_reload.cpp | 29 - src/server/worldserver/CMakeLists.txt | 1 - 12 files changed, 5 insertions(+), 2724 deletions(-) create mode 100644 sql/updates/auth/2013_12_01_00_auth_rbac_permissions.sql create mode 100644 sql/updates/world/2013_12_01_00_world_creature_ai.sql delete mode 100644 src/server/game/AI/EventAI/CreatureEventAI.cpp delete mode 100644 src/server/game/AI/EventAI/CreatureEventAI.h delete mode 100644 src/server/game/AI/EventAI/CreatureEventAIMgr.cpp delete mode 100644 src/server/game/AI/EventAI/CreatureEventAIMgr.h (limited to 'src/server/scripts') diff --git a/sql/updates/auth/2013_12_01_00_auth_rbac_permissions.sql b/sql/updates/auth/2013_12_01_00_auth_rbac_permissions.sql new file mode 100644 index 00000000000..4db0cc4b509 --- /dev/null +++ b/sql/updates/auth/2013_12_01_00_auth_rbac_permissions.sql @@ -0,0 +1 @@ +DELETE FROM `rbac_permissions` WHERE `id`=614 diff --git a/sql/updates/world/2013_12_01_00_world_creature_ai.sql b/sql/updates/world/2013_12_01_00_world_creature_ai.sql new file mode 100644 index 00000000000..e10c64a59fe --- /dev/null +++ b/sql/updates/world/2013_12_01_00_world_creature_ai.sql @@ -0,0 +1,4 @@ +DROP TABLE `creature_ai_scripts`; +DROP TABLE `creature_ai_texts`; + +DELETE FROM `command` WHERE `name`='reload all eventai'; diff --git a/src/server/game/AI/CreatureAIRegistry.cpp b/src/server/game/AI/CreatureAIRegistry.cpp index 8f035667a34..8b74db24a42 100644 --- a/src/server/game/AI/CreatureAIRegistry.cpp +++ b/src/server/game/AI/CreatureAIRegistry.cpp @@ -22,7 +22,6 @@ #include "GuardAI.h" #include "PetAI.h" #include "TotemAI.h" -#include "CreatureEventAI.h" #include "RandomMovementGenerator.h" #include "MovementGeneratorImpl.h" #include "CreatureAIRegistry.h" @@ -46,7 +45,6 @@ namespace AIRegistry (new CreatureAIFactory("CombatAI"))->RegisterSelf(); (new CreatureAIFactory("ArcherAI"))->RegisterSelf(); (new CreatureAIFactory("TurretAI"))->RegisterSelf(); - (new CreatureAIFactory("EventAI"))->RegisterSelf(); (new CreatureAIFactory("VehicleAI"))->RegisterSelf(); (new CreatureAIFactory("SmartAI"))->RegisterSelf(); diff --git a/src/server/game/AI/EventAI/CreatureEventAI.cpp b/src/server/game/AI/EventAI/CreatureEventAI.cpp deleted file mode 100644 index 8e2e4e8dc2e..00000000000 --- a/src/server/game/AI/EventAI/CreatureEventAI.cpp +++ /dev/null @@ -1,1327 +0,0 @@ -/* - * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2005-2009 MaNGOS - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -#include "Common.h" -#include "CreatureEventAI.h" -#include "CreatureEventAIMgr.h" -#include "ObjectMgr.h" -#include "Spell.h" -#include "World.h" -#include "Cell.h" -#include "CellImpl.h" -#include "GameEventMgr.h" -#include "GridNotifiers.h" -#include "GridNotifiersImpl.h" -#include "InstanceScript.h" -#include "SpellMgr.h" -#include "CreatureAIImpl.h" -#include "ConditionMgr.h" - -bool CreatureEventAIHolder::UpdateRepeatTimer(Creature* creature, uint32 repeatMin, uint32 repeatMax) -{ - if (repeatMin == repeatMax) - Time = repeatMin; - else if (repeatMax > repeatMin) - Time = urand(repeatMin, repeatMax); - else - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using Event %u (Type = %u) has RandomMax < RandomMin. Event repeating disabled.", creature->GetEntry(), Event.event_id, Event.event_type); - Enabled = false; - return false; - } - - return true; -} - -int CreatureEventAI::Permissible(const Creature* creature) -{ - if (creature->GetAIName() == "EventAI") - return PERMIT_BASE_SPECIAL; - return PERMIT_BASE_NO; -} - -CreatureEventAI::CreatureEventAI(Creature* c) : CreatureAI(c) -{ - // Need make copy for filter unneeded steps and safe in case table reload - CreatureEventAI_Event_Map::const_iterator CreatureEvents = sEventAIMgr->GetCreatureEventAIMap().find(me->GetEntry()); - if (CreatureEvents != sEventAIMgr->GetCreatureEventAIMap().end()) - { - std::vector::const_iterator i; - for (i = (*CreatureEvents).second.begin(); i != (*CreatureEvents).second.end(); ++i) - { - //Debug check - #ifndef TRINITY_DEBUG - if ((*i).event_flags & EFLAG_DEBUG_ONLY) - continue; - #endif - if (me->GetMap()->IsDungeon()) - { - if ((1 << (me->GetMap()->GetSpawnMode()+1)) & (*i).event_flags) - { - //event flagged for instance mode - m_CreatureEventAIList.push_back(CreatureEventAIHolder(*i)); - } - continue; - } - m_CreatureEventAIList.push_back(CreatureEventAIHolder(*i)); - } - //EventMap had events but they were not added because they must be for instance - if (m_CreatureEventAIList.empty()) - TC_LOG_ERROR("misc", "CreatureEventAI: Creature %u has events but no events added to list because of instance flags.", me->GetEntry()); - } - else - TC_LOG_ERROR("misc", "CreatureEventAI: EventMap for Creature %u is empty but creature is using CreatureEventAI.", me->GetEntry()); - - m_bEmptyList = m_CreatureEventAIList.empty(); - m_Phase = 0; - m_CombatMovementEnabled = true; - m_MeleeEnabled = true; - m_AttackDistance = 0.0f; - m_AttackAngle = 0.0f; - - m_InvincibilityHpLevel = 0; - - //Handle Spawned Events - if (!m_bEmptyList) - { - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - if (SpawnedEventConditionsCheck((*i).Event)) - ProcessEvent(*i); - } -} - -bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionInvoker /*=NULL*/) -{ - if (!holder.Enabled || holder.Time) - return false; - - //Check the inverse phase mask (event doesn't trigger if current phase bit is set in mask) - if (holder.Event.event_inverse_phase_mask & (1 << m_Phase)) - return false; - - CreatureEventAI_Event const& event = holder.Event; - - //Check event conditions based on the event type, also reset events - switch (event.event_type) - { - case EVENT_T_TIMER: - if (!me->IsInCombat()) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax); - break; - case EVENT_T_TIMER_OOC: - if (me->IsInCombat()) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax); - break; - case EVENT_T_HP: - { - if (!me->IsInCombat() || !me->GetMaxHealth()) - return false; - - uint32 perc = uint32(me->GetHealthPct()); - - if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); - break; - } - case EVENT_T_MANA: - { - if (!me->IsInCombat() || !me->GetMaxPower(POWER_MANA)) - return false; - - uint32 perc = (me->GetPower(POWER_MANA)*100) / me->GetMaxPower(POWER_MANA); - - if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); - break; - } - case EVENT_T_AGGRO: - break; - case EVENT_T_KILL: - //Repeat Timers - holder.UpdateRepeatTimer(me, event.kill.repeatMin, event.kill.repeatMax); - break; - case EVENT_T_DEATH: - case EVENT_T_EVADE: - break; - case EVENT_T_SPELLHIT: - //Spell hit is special case, param1 and param2 handled within CreatureEventAI::SpellHit - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.spell_hit.repeatMin, event.spell_hit.repeatMax); - break; - case EVENT_T_RANGE: - //Repeat Timers - holder.UpdateRepeatTimer(me, event.range.repeatMin, event.range.repeatMax); - break; - case EVENT_T_OOC_LOS: - //Repeat Timers - holder.UpdateRepeatTimer(me, event.ooc_los.repeatMin, event.ooc_los.repeatMax); - break; - case EVENT_T_RESET: - case EVENT_T_SPAWNED: - break; - case EVENT_T_TARGET_HP: - { - if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->GetMaxHealth()) - return false; - - uint32 perc = uint32(me->GetVictim()->GetHealthPct()); - - if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); - break; - } - case EVENT_T_TARGET_CASTING: - if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->IsNonMeleeSpellCasted(false, false, true)) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.target_casting.repeatMin, event.target_casting.repeatMax); - break; - case EVENT_T_FRIENDLY_HP: - { - if (!me->IsInCombat()) - return false; - - Unit* unit = DoSelectLowestHpFriendly((float)event.friendly_hp.radius, event.friendly_hp.hpDeficit); - if (!unit) - return false; - - actionInvoker = unit; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.friendly_hp.repeatMin, event.friendly_hp.repeatMax); - break; - } - case EVENT_T_FRIENDLY_IS_CC: - { - if (!me->IsInCombat()) - return false; - - std::list pList; - DoFindFriendlyCC(pList, (float)event.friendly_is_cc.radius); - - //List is empty - if (pList.empty()) - return false; - - //We don't really care about the whole list, just return first available - actionInvoker = *(pList.begin()); - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.friendly_is_cc.repeatMin, event.friendly_is_cc.repeatMax); - break; - } - case EVENT_T_FRIENDLY_MISSING_BUFF: - { - std::list pList; - DoFindFriendlyMissingBuff(pList, (float)event.friendly_buff.radius, event.friendly_buff.spellId); - - //List is empty - if (pList.empty()) - return false; - - //We don't really care about the whole list, just return first available - actionInvoker = *(pList.begin()); - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.friendly_buff.repeatMin, event.friendly_buff.repeatMax); - break; - } - case EVENT_T_SUMMONED_UNIT: - { - //Prevent event from occuring on no unit or non creatures - if (!actionInvoker || actionInvoker->GetTypeId() != TYPEID_UNIT) - return false; - - //Creature id doesn't match up - if (actionInvoker->ToCreature()->GetEntry() != event.summon_unit.creatureId) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.summon_unit.repeatMin, event.summon_unit.repeatMax); - break; - } - case EVENT_T_TARGET_MANA: - { - if (!me->IsInCombat() || !me->GetVictim() || !me->GetVictim()->GetMaxPower(POWER_MANA)) - return false; - - uint32 perc = (me->GetVictim()->GetPower(POWER_MANA)*100) / me->GetVictim()->GetMaxPower(POWER_MANA); - - if (perc > event.percent_range.percentMax || perc < event.percent_range.percentMin) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); - break; - } - case EVENT_T_REACHED_HOME: - case EVENT_T_RECEIVE_EMOTE: - break; - case EVENT_T_BUFFED: - { - //Note: checked only aura for effect 0, if need check aura for effect 1/2 then - // possible way: pack in event.buffed.amount 2 uint16 (ammount+effectIdx) - Aura const* aura = me->GetAura(event.buffed.spellId); - if (!aura || aura->GetStackAmount() < event.buffed.amount) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.buffed.repeatMin, event.buffed.repeatMax); - break; - } - case EVENT_T_TARGET_BUFFED: - { - //Prevent event from occuring on no unit - if (!actionInvoker) - return false; - - //Note: checked only aura for effect 0, if need check aura for effect 1/2 then - // possible way: pack in event.buffed.amount 2 uint16 (ammount+effectIdx) - Aura const* aura = actionInvoker->GetAura(event.buffed.spellId); - if (!aura || aura->GetStackAmount() < event.buffed.amount) - return false; - - //Repeat Timers - holder.UpdateRepeatTimer(me, event.buffed.repeatMin, event.buffed.repeatMax); - break; - } - default: - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using Event %u has invalid Event Type(%u), missing from ProcessEvent() Switch.", me->GetEntry(), holder.Event.event_id, holder.Event.event_type); - break; - } - - //Disable non-repeatable events - if (!(holder.Event.event_flags & EFLAG_REPEATABLE)) - holder.Enabled = false; - - //Store random here so that all random actions match up - uint32 rnd = rand(); - - //Return if chance for event is not met - if (holder.Event.event_chance <= rnd % 100) - return false; - - //Process actions - for (uint8 j = 0; j < MAX_ACTIONS; ++j) - ProcessAction(holder.Event.action[j], rnd, holder.Event.event_id, actionInvoker); - - return true; -} - -void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 rnd, uint32 eventId, Unit* actionInvoker) -{ - switch (action.type) - { - case ACTION_T_TEXT: - { - if (!action.text.TextId1) - return; - - int32 temp = action.text.TextId1; - - if (action.text.TextId2 && action.text.TextId3) - temp = RAND(action.text.TextId1, action.text.TextId2, action.text.TextId3); - else if (action.text.TextId2 && urand(0, 1)) - temp = action.text.TextId2; - - if (temp) - { - Unit* target = NULL; - - if (actionInvoker) - { - if (actionInvoker->GetTypeId() == TYPEID_PLAYER) - target = actionInvoker; - else if (Unit* owner = actionInvoker->GetOwner()) - { - if (owner->GetTypeId() == TYPEID_PLAYER) - target = owner; - } - } - else - { - target = me->GetVictim(); - if (target && target->GetTypeId() != TYPEID_PLAYER) - if (Unit* owner = target->GetOwner()) - if (owner->GetTypeId() == TYPEID_PLAYER) - target = owner; - } - - DoScriptText(temp, me, target); - } - break; - } - case ACTION_T_SET_FACTION: - { - if (action.set_faction.factionId) - me->setFaction(action.set_faction.factionId); - else - { - if (CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(me->GetEntry())) - { - //if no id provided, assume reset and then use default - if (me->getFaction() != ci->faction_A) - me->setFaction(ci->faction_A); - } - } - break; - } - case ACTION_T_MORPH_TO_ENTRY_OR_MODEL: - { - if (action.morph.creatureId || action.morph.modelId) - { - //set model based on entry from creature_template - if (action.morph.creatureId) - { - if (CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(action.morph.creatureId)) - me->SetDisplayId(ObjectMgr::ChooseDisplayId(ci)); - } - //if no param1, then use value from param2 (modelId) - else - me->SetDisplayId(action.morph.modelId); - } - else - me->DeMorph(); - break; - } - case ACTION_T_SOUND: - me->PlayDirectSound(action.sound.soundId); - break; - case ACTION_T_EMOTE: - me->HandleEmoteCommand(action.emote.emoteId); - break; - case ACTION_T_RANDOM_SOUND: - { - int32 temp = GetRandActionParam(rnd, action.random_sound.soundId1, action.random_sound.soundId2, action.random_sound.soundId3); - if (temp >= 0) - me->PlayDirectSound(temp); - break; - } - case ACTION_T_RANDOM_EMOTE: - { - int32 temp = GetRandActionParam(rnd, action.random_emote.emoteId1, action.random_emote.emoteId2, action.random_emote.emoteId3); - if (temp >= 0) - me->HandleEmoteCommand(temp); - break; - } - case ACTION_T_CAST: - { - Unit* target = GetTargetByType(action.cast.target, actionInvoker); - Unit* caster = me; - - if (!target) - return; - - if (action.cast.castFlags & CAST_FORCE_TARGET_SELF) - caster = target; - - //Allowed to cast only if not casting (unless we interrupt ourself) or if spell is triggered - bool canCast = !caster->IsNonMeleeSpellCasted(false) || (action.cast.castFlags & (CAST_TRIGGERED | CAST_INTERRUPT_PREVIOUS)); - - // If cast flag CAST_AURA_NOT_PRESENT is active, check if target already has aura on them - if (action.cast.castFlags & CAST_AURA_NOT_PRESENT) - { - if (target->HasAura(action.cast.spellId)) - return; - } - - if (canCast) - { - const SpellInfo* tSpell = sSpellMgr->GetSpellInfo(action.cast.spellId); - - //Verify that spell exists - if (tSpell) - { - //Check if cannot cast spell - if (!(action.cast.castFlags & (CAST_FORCE_TARGET_SELF | CAST_FORCE_CAST)) && - !CanCast(target, tSpell, (action.cast.castFlags & CAST_TRIGGERED))) - { - //Melee current victim if flag not set - if (!(action.cast.castFlags & CAST_NO_MELEE_IF_OOM)) - { - if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == CHASE_MOTION_TYPE) - { - m_AttackDistance = 0.0f; - m_AttackAngle = 0.0f; - - me->GetMotionMaster()->MoveChase(me->GetVictim(), m_AttackDistance, m_AttackAngle); - } - } - } - else - { - //Interrupt any previous spell - if (caster->IsNonMeleeSpellCasted(false) && action.cast.castFlags & CAST_INTERRUPT_PREVIOUS) - caster->InterruptNonMeleeSpells(false); - - caster->CastSpell(target, action.cast.spellId, (action.cast.castFlags & CAST_TRIGGERED)); - } - } - else - TC_LOG_ERROR("sql.sql", "CreatureEventAI: event %d creature %d attempt to cast spell that doesn't exist %d", eventId, me->GetEntry(), action.cast.spellId); - } - break; - } - case ACTION_T_THREAT_SINGLE_PCT: - if (Unit* target = GetTargetByType(action.threat_single_pct.target, actionInvoker)) - me->getThreatManager().modifyThreatPercent(target, action.threat_single_pct.percent); - break; - case ACTION_T_THREAT_ALL_PCT: - { - ThreatContainer::StorageType const& threatList = me->getThreatManager().getThreatList(); - for (ThreatContainer::StorageType::const_iterator i = threatList.begin(); i != threatList.end(); ++i) - if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid())) - me->getThreatManager().modifyThreatPercent(unit, action.threat_all_pct.percent); - break; - } - case ACTION_T_QUEST_EVENT: - if (Unit* target = GetTargetByType(action.quest_event.target, actionInvoker)) - if (target->GetTypeId() == TYPEID_PLAYER) - target->ToPlayer()->AreaExploredOrEventHappens(action.quest_event.questId); - break; - case ACTION_T_SET_UNIT_FIELD: - { - Unit* target = GetTargetByType(action.set_unit_field.target, actionInvoker); - - // not allow modify important for integrity object fields - if (action.set_unit_field.field < OBJECT_END || action.set_unit_field.field >= UNIT_END) - return; - - if (target) - target->SetUInt32Value(action.set_unit_field.field, action.set_unit_field.value); - - break; - } - case ACTION_T_SET_UNIT_FLAG: - if (Unit* target = GetTargetByType(action.unit_flag.target, actionInvoker)) - target->SetFlag(UNIT_FIELD_FLAGS, action.unit_flag.value); - break; - case ACTION_T_REMOVE_UNIT_FLAG: - if (Unit* target = GetTargetByType(action.unit_flag.target, actionInvoker)) - target->RemoveFlag(UNIT_FIELD_FLAGS, action.unit_flag.value); - break; - case ACTION_T_AUTO_ATTACK: - m_MeleeEnabled = action.auto_attack.state != 0; - break; - case ACTION_T_COMBAT_MOVEMENT: - // ignore no affect case - if (m_CombatMovementEnabled == (action.combat_movement.state != 0)) - return; - - m_CombatMovementEnabled = action.combat_movement.state != 0; - - //Allow movement (create new targeted movement gen only if idle) - if (m_CombatMovementEnabled) - { - Unit* victim = me->GetVictim(); - if (me->IsInCombat() && victim) - { - if (action.combat_movement.melee) - { - me->AddUnitState(UNIT_STATE_MELEE_ATTACKING); - me->SendMeleeAttackStart(victim); - } - if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == IDLE_MOTION_TYPE) - me->GetMotionMaster()->MoveChase(victim, m_AttackDistance, m_AttackAngle); // Targeted movement generator will start melee automatically, no need to send it explicitly - } - } - else - { - if (me->IsInCombat()) - { - Unit* victim = me->GetVictim(); - if (action.combat_movement.melee && victim) - { - me->ClearUnitState(UNIT_STATE_MELEE_ATTACKING); - me->SendMeleeAttackStop(victim); - } - if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == CHASE_MOTION_TYPE) - me->GetMotionMaster()->MoveIdle(); - } - } - break; - case ACTION_T_SET_PHASE: - m_Phase = action.set_phase.phase; - break; - case ACTION_T_INC_PHASE: - { - int32 new_phase = int32(m_Phase)+action.set_inc_phase.step; - if (new_phase < 0) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d decrease m_Phase under 0. CreatureEntry = %d", eventId, me->GetEntry()); - m_Phase = 0; - } - else if (new_phase >= MAX_PHASE) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d incremented m_Phase above %u. m_Phase mask cannot be used with phases past %u. CreatureEntry = %d", eventId, MAX_PHASE-1, MAX_PHASE-1, me->GetEntry()); - m_Phase = MAX_PHASE-1; - } - else - m_Phase = new_phase; - - break; - } - case ACTION_T_EVADE: - EnterEvadeMode(); - break; - case ACTION_T_FLEE_FOR_ASSIST: - me->DoFleeToGetAssistance(); - break; - case ACTION_T_QUEST_EVENT_ALL: - if (actionInvoker && actionInvoker->GetTypeId() == TYPEID_PLAYER) - { - if (Unit* Temp = Unit::GetUnit(*me, actionInvoker->GetGUID())) - if (Temp->GetTypeId() == TYPEID_PLAYER) - Temp->ToPlayer()->GroupEventHappens(action.quest_event_all.questId, me); - } - break; - case ACTION_T_REMOVEAURASFROMSPELL: - if (Unit* target = GetTargetByType(action.remove_aura.target, actionInvoker)) - target->RemoveAurasDueToSpell(action.remove_aura.spellId); - break; - case ACTION_T_RANGED_MOVEMENT: - m_AttackDistance = (float)action.ranged_movement.distance; - m_AttackAngle = action.ranged_movement.angle/180.0f*M_PI; - - if (m_CombatMovementEnabled) - { - me->GetMotionMaster()->MoveChase(me->GetVictim(), m_AttackDistance, m_AttackAngle); - } - break; - case ACTION_T_RANDOM_PHASE: - m_Phase = GetRandActionParam(rnd, action.random_phase.phase1, action.random_phase.phase2, action.random_phase.phase3); - break; - case ACTION_T_RANDOM_PHASE_RANGE: - if (action.random_phase_range.phaseMin <= action.random_phase_range.phaseMax) - m_Phase = urand(action.random_phase_range.phaseMin, action.random_phase_range.phaseMax); - else - TC_LOG_ERROR("sql.sql", "CreatureEventAI: ACTION_T_RANDOM_PHASE_RANGE cannot have Param2 < Param1. Event = %d. CreatureEntry = %d", eventId, me->GetEntry()); - break; - case ACTION_T_KILLED_MONSTER: - //first attempt player who tapped creature - if (Player* player = me->GetLootRecipient()) - player->RewardPlayerAndGroupAtEvent(action.killed_monster.creatureId, player); // player as param is a hacky solution not to use GUID - else - { - //if not available, use actionInvoker - if (Unit* target = GetTargetByType(action.killed_monster.target, actionInvoker)) - if (Player* player2 = target->GetCharmerOrOwnerPlayerOrPlayerItself()) - player2->RewardPlayerAndGroupAtEvent(action.killed_monster.creatureId, player2); - } - break; - case ACTION_T_SET_INST_DATA: - { - InstanceScript* instance = me->GetInstanceScript(); - if (!instance) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d attempt to set instance data without instance script. Creature %d", eventId, me->GetEntry()); - return; - } - - instance->SetData(action.set_inst_data.field, action.set_inst_data.value); - break; - } - case ACTION_T_SET_INST_DATA64: - { - Unit* target = GetTargetByType(action.set_inst_data64.target, actionInvoker); - if (!target) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d attempt to set instance data64 but Target == NULL. Creature %d", eventId, me->GetEntry()); - return; - } - - InstanceScript* instance = me->GetInstanceScript(); - if (!instance) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d attempt to set instance data64 without instance script. Creature %d", eventId, me->GetEntry()); - return; - } - - instance->SetData64(action.set_inst_data64.field, target->GetGUID()); - break; - } - case ACTION_T_UPDATE_TEMPLATE: - if (me->GetEntry() == action.update_template.creatureId) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d ACTION_T_UPDATE_TEMPLATE call with param1 == current entry. Creature %d", eventId, me->GetEntry()); - return; - } - - me->UpdateEntry(action.update_template.creatureId, action.update_template.team ? HORDE : ALLIANCE); - break; - case ACTION_T_DIE: - if (me->isDead()) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %d ACTION_T_DIE on dead creature. Creature %d", eventId, me->GetEntry()); - return; - } - me->Kill(me); - break; - case ACTION_T_ZONE_COMBAT_PULSE: - { - me->SetInCombatWithZone(); - break; - } - case ACTION_T_CALL_FOR_HELP: - { - me->CallForHelp((float)action.call_for_help.radius); - break; - } - break; - - // TRINITY ONLY - case ACTION_T_MOVE_RANDOM_POINT: //dosen't work in combat - { - float x, y, z; - me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, (float)action.raw.param1); - me->GetMotionMaster()->MovePoint(0, x, y, z); - break; - } - case ACTION_T_SET_STAND_STATE: - me->SetStandState(UnitStandStateType(action.raw.param1)); - break; - case ACTION_T_SET_PHASE_MASK: - me->SetPhaseMask(action.raw.param1, true); - break; - case ACTION_T_SET_VISIBILITY: - me->SetVisible(bool(action.raw.param1)); - break; - case ACTION_T_SET_ACTIVE: - me->setActive(action.raw.param1 ? true : false); - break; - case ACTION_T_SET_AGGRESSIVE: - me->SetReactState(ReactStates(action.raw.param1)); - break; - case ACTION_T_ATTACK_START_PULSE: - AttackStart(me->SelectNearestTarget((float)action.raw.param1)); - break; - case ACTION_T_SUMMON_GO: - { - float x, y, z; - me->GetPosition(x, y, z); - GameObject* object = me->SummonGameObject(action.raw.param1, x, y, z, 0, 0, 0, 0, 0, action.raw.param2); - if (!object) - TC_LOG_ERROR("scripts", "EventAI failed to spawn object %u. Spawn event %d is on creature %d", action.raw.param1, eventId, me->GetEntry()); - - break; - } - case ACTION_T_SET_SHEATH: - { - me->SetSheath(SheathState(action.set_sheath.sheath)); - break; - } - case ACTION_T_FORCE_DESPAWN: - { - me->DespawnOrUnsummon(action.forced_despawn.msDelay); - break; - } - case ACTION_T_SET_INVINCIBILITY_HP_LEVEL: - { - if (action.invincibility_hp_level.is_percent) - m_InvincibilityHpLevel = me->CountPctFromMaxHealth(action.invincibility_hp_level.hp_level); - else - m_InvincibilityHpLevel = action.invincibility_hp_level.hp_level; - break; - } - case ACTION_T_MOUNT_TO_ENTRY_OR_MODEL: - { - if (action.mount.creatureId || action.mount.modelId) - { - // set model based on entry from creature_template - if (action.mount.creatureId) - { - if (CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(action.mount.creatureId)) - me->Mount(ObjectMgr::ChooseDisplayId(cInfo)); - } - //if no param1, then use value from param2 (modelId) - else - me->Mount(action.mount.modelId); - } - else - me->Dismount(); - - break; - } - default: - break; - } -} - -void CreatureEventAI::JustRespawned() -{ - Reset(); - - if (m_bEmptyList) - return; - - //Handle Spawned Events - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - if (SpawnedEventConditionsCheck((*i).Event)) - ProcessEvent(*i); -} - -void CreatureEventAI::Reset() -{ - m_EventUpdateTime = EVENT_UPDATE_TIME; - m_EventDiff = 0; - - if (m_bEmptyList) - return; - - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - if ((*i).Event.event_type == EVENT_T_RESET) - ProcessEvent(*i); - } - - //Reset all events to enabled - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - CreatureEventAI_Event const& event = (*i).Event; - switch (event.event_type) - { - //Reset all out of combat timers - case EVENT_T_TIMER_OOC: - { - if ((*i).UpdateRepeatTimer(me, event.timer.initialMin, event.timer.initialMax)) - (*i).Enabled = true; - break; - } - default: - /// @todo enable below code line / verify this is correct to enable events previously disabled (ex. aggro yell), instead of enable this in void EnterCombat() - //(*i).Enabled = true; - //(*i).Time = 0; - break; - } - } -} - -void CreatureEventAI::JustReachedHome() -{ - if (!m_bEmptyList) - { - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - if ((*i).Event.event_type == EVENT_T_REACHED_HOME) - ProcessEvent(*i); - } - } - - Reset(); -} - -void CreatureEventAI::EnterEvadeMode() -{ - CreatureAI::EnterEvadeMode(); - - if (m_bEmptyList) - return; - - //Handle Evade events - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - if ((*i).Event.event_type == EVENT_T_EVADE) - ProcessEvent(*i); - } -} - -void CreatureEventAI::JustDied(Unit* killer) -{ - Reset(); - - if (m_bEmptyList) - return; - - //Handle Evade events - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - if ((*i).Event.event_type == EVENT_T_DEATH) - ProcessEvent(*i, killer); - } - - // reset phase after any death state events - m_Phase = 0; -} - -void CreatureEventAI::KilledUnit(Unit* victim) -{ - if (m_bEmptyList || victim->GetTypeId() != TYPEID_PLAYER) - return; - - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - if ((*i).Event.event_type == EVENT_T_KILL) - ProcessEvent(*i, victim); - } -} - -void CreatureEventAI::JustSummoned(Creature* unit) -{ - if (m_bEmptyList || !unit) - return; - - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - if ((*i).Event.event_type == EVENT_T_SUMMONED_UNIT) - ProcessEvent(*i, unit); - } -} - -void CreatureEventAI::EnterCombat(Unit* enemy) -{ - //Check for on combat start events - if (!m_bEmptyList) - { - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - CreatureEventAI_Event const& event = (*i).Event; - switch (event.event_type) - { - case EVENT_T_AGGRO: - (*i).Enabled = true; - ProcessEvent(*i, enemy); - break; - //Reset all in combat timers - case EVENT_T_TIMER: - if ((*i).UpdateRepeatTimer(me, event.timer.initialMin, event.timer.initialMax)) - (*i).Enabled = true; - break; - //All normal events need to be re-enabled and their time set to 0 - default: - (*i).Enabled = true; - (*i).Time = 0; - break; - } - } - } - - m_EventUpdateTime = EVENT_UPDATE_TIME; - m_EventDiff = 0; -} - -void CreatureEventAI::AttackStart(Unit* who) -{ - if (!who) - return; - - if (me->Attack(who, m_MeleeEnabled)) - { - if (m_CombatMovementEnabled) - { - me->GetMotionMaster()->MoveChase(who, m_AttackDistance, m_AttackAngle); - } - else - { - me->GetMotionMaster()->MoveIdle(); - } - } -} - -void CreatureEventAI::MoveInLineOfSight(Unit* who) -{ - if (me->GetVictim()) - return; - - //Check for OOC LOS Event - if (!m_bEmptyList) - { - for (CreatureEventAIList::iterator itr = m_CreatureEventAIList.begin(); itr != m_CreatureEventAIList.end(); ++itr) - { - if ((*itr).Event.event_type == EVENT_T_OOC_LOS) - { - //can trigger if closer than fMaxAllowedRange - float fMaxAllowedRange = (float)((*itr).Event.ooc_los.maxRange); - - //if range is ok and we are actually in LOS - if (me->IsWithinDistInMap(who, fMaxAllowedRange) && me->IsWithinLOSInMap(who)) - { - //if friendly event&&who is not hostile OR hostile event&&who is hostile - if (((*itr).Event.ooc_los.noHostile && !me->IsHostileTo(who)) || - ((!(*itr).Event.ooc_los.noHostile) && me->IsHostileTo(who))) - ProcessEvent(*itr, who); - } - } - } - } - - CreatureAI::MoveInLineOfSight(who); -} - -void CreatureEventAI::SpellHit(Unit* unit, const SpellInfo* spell) -{ - if (m_bEmptyList) - return; - - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - if ((*i).Event.event_type == EVENT_T_SPELLHIT) - //If spell id matches (or no spell id) & if spell school matches (or no spell school) - if (!(*i).Event.spell_hit.spellId || spell->Id == (*i).Event.spell_hit.spellId) - if (spell->SchoolMask & (*i).Event.spell_hit.schoolMask) - ProcessEvent(*i, unit); -} - -void CreatureEventAI::UpdateAI(uint32 diff) -{ - //Check if we are in combat (also updates calls threat update code) - bool Combat = UpdateVictim(); - - if (!m_bEmptyList) - { - //Events are only updated once every EVENT_UPDATE_TIME ms to prevent lag with large amount of events - if (m_EventUpdateTime <= diff) - { - m_EventDiff += diff; - - //Check for time based events - for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) - { - //Decrement Timers - if ((*i).Time) - { - if (m_EventDiff <= (*i).Time) - { - //Do not decrement timers if event cannot trigger in this phase - if (!((*i).Event.event_inverse_phase_mask & (1 << m_Phase))) - (*i).Time -= m_EventDiff; - - //Skip processing of events that have time remaining - continue; - } - else (*i).Time = 0; - } - - //Events that are updated every EVENT_UPDATE_TIME - switch ((*i).Event.event_type) - { - case EVENT_T_TIMER_OOC: - ProcessEvent(*i); - break; - case EVENT_T_TIMER: - case EVENT_T_MANA: - case EVENT_T_HP: - case EVENT_T_TARGET_HP: - case EVENT_T_TARGET_CASTING: - case EVENT_T_FRIENDLY_HP: - if (me->GetVictim()) - ProcessEvent(*i); - break; - case EVENT_T_RANGE: - if (me->GetVictim()) - if (me->IsInMap(me->GetVictim()) && me->InSamePhase(me->GetVictim())) - if (me->IsInRange(me->GetVictim(), (float)(*i).Event.range.minDist, (float)(*i).Event.range.maxDist)) - ProcessEvent(*i); - break; - default: - break; - } - } - - m_EventDiff = 0; - m_EventUpdateTime = EVENT_UPDATE_TIME; - } - else - { - m_EventDiff += diff; - m_EventUpdateTime -= diff; - } - } - - //Melee Auto-Attack - if (Combat && m_MeleeEnabled) - DoMeleeAttackIfReady(); -} - -inline uint32 CreatureEventAI::GetRandActionParam(uint32 rnd, uint32 param1, uint32 param2, uint32 param3) -{ - switch (rnd % 3) - { - case 0: return param1; - case 1: return param2; - case 2: break; - } - - return param3; -} - -inline int32 CreatureEventAI::GetRandActionParam(uint32 rnd, int32 param1, int32 param2, int32 param3) -{ - switch (rnd % 3) - { - case 0: return param1; - case 1: return param2; - case 2: break; - } - - return param3; -} - -inline Unit* CreatureEventAI::GetTargetByType(uint32 target, Unit* actionInvoker) -{ - switch (target) - { - case TARGET_T_SELF: - return me; - case TARGET_T_HOSTILE: - return me->GetVictim(); - case TARGET_T_HOSTILE_SECOND_AGGRO: - return SelectTarget(SELECT_TARGET_TOPAGGRO, 1); - case TARGET_T_HOSTILE_LAST_AGGRO: - return SelectTarget(SELECT_TARGET_BOTTOMAGGRO, 0); - case TARGET_T_HOSTILE_RANDOM: - return SelectTarget(SELECT_TARGET_RANDOM, 0); - case TARGET_T_HOSTILE_RANDOM_NOT_TOP: - return SelectTarget(SELECT_TARGET_RANDOM, 1); - case TARGET_T_ACTION_INVOKER: - return actionInvoker; - default: - return NULL; - }; -} - -Unit* CreatureEventAI::DoSelectLowestHpFriendly(float range, uint32 minHPDiff) -{ - CellCoord p(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY())); - Cell cell(p); - cell.SetNoCreate(); - - Unit* unit = NULL; - - Trinity::MostHPMissingInRange u_check(me, range, minHPDiff); - Trinity::UnitLastSearcher searcher(me, unit, u_check); - - /* - typedef TYPELIST_4(GameObject, Creature*except pets*, DynamicObject, Corpse*Bones*) AllGridObjectTypes; - This means that if we only search grid then we cannot possibly return pets or players so this is safe - */ - TypeContainerVisitor, GridTypeMapContainer > grid_unit_searcher(searcher); - - cell.Visit(p, grid_unit_searcher, *me->GetMap(), *me, range); - return unit; -} - -void CreatureEventAI::DoFindFriendlyCC(std::list& _list, float range) -{ - CellCoord p(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY())); - Cell cell(p); - cell.SetNoCreate(); - - Trinity::FriendlyCCedInRange u_check(me, range); - Trinity::CreatureListSearcher searcher(me, _list, u_check); - - TypeContainerVisitor, GridTypeMapContainer > grid_creature_searcher(searcher); - - cell.Visit(p, grid_creature_searcher, *me->GetMap(), *me, range); -} - -void CreatureEventAI::DoFindFriendlyMissingBuff(std::list& _list, float range, uint32 spellid) -{ - CellCoord p(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY())); - Cell cell(p); - cell.SetNoCreate(); - - Trinity::FriendlyMissingBuffInRange u_check(me, range, spellid); - Trinity::CreatureListSearcher searcher(me, _list, u_check); - - TypeContainerVisitor, GridTypeMapContainer > grid_creature_searcher(searcher); - - cell.Visit(p, grid_creature_searcher, *me->GetMap(), *me, range); -} - -// ********************************* -// *** Functions used globally *** - -void CreatureEventAI::DoScriptText(int32 textEntry, WorldObject* source, Unit* target) -{ - if (!source) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i, invalid Source pointer.", textEntry); - return; - } - - if (textEntry >= 0) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText with source entry %u (TypeId=%u, guid=%u) attempts to process text entry %i, but text entry must be negative.", source->GetEntry(), source->GetTypeId(), source->GetGUIDLow(), textEntry); - return; - } - - CreatureEventAI_TextMap::const_iterator i = sEventAIMgr->GetCreatureEventAITextMap().find(textEntry); - - if (i == sEventAIMgr->GetCreatureEventAITextMap().end()) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText with source entry %u (TypeId=%u, guid=%u) could not find text entry %i.", source->GetEntry(), source->GetTypeId(), source->GetGUIDLow(), textEntry); - return; - } - - TC_LOG_DEBUG("scripts.ai", "CreatureEventAI: DoScriptText: text entry=%i, Sound=%u, Type=%u, Language=%u, Emote=%u", textEntry, (*i).second.SoundId, (*i).second.Type, (*i).second.Language, (*i).second.Emote); - - if ((*i).second.SoundId) - { - if (sSoundEntriesStore.LookupEntry((*i).second.SoundId)) - source->PlayDirectSound((*i).second.SoundId); - else - TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i tried to process invalid sound id %u.", textEntry, (*i).second.SoundId); - } - - if ((*i).second.Emote) - { - if (source->GetTypeId() == TYPEID_UNIT || source->GetTypeId() == TYPEID_PLAYER) - { - ((Unit*)source)->HandleEmoteCommand((*i).second.Emote); - } - else - TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i tried to process emote for invalid TypeId (%u).", textEntry, source->GetTypeId()); - } - - switch ((*i).second.Type) - { - case CHAT_TYPE_SAY: - source->MonsterSay(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); - break; - case CHAT_TYPE_YELL: - source->MonsterYell(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); - break; - case CHAT_TYPE_TEXT_EMOTE: - source->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0); - break; - case CHAT_TYPE_BOSS_EMOTE: - source->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0, true); - break; - case CHAT_TYPE_WHISPER: - { - if (target && target->GetTypeId() == TYPEID_PLAYER) - source->MonsterWhisper(textEntry, target->GetGUID()); - else TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry); - }break; - case CHAT_TYPE_BOSS_WHISPER: - { - if (target && target->GetTypeId() == TYPEID_PLAYER) - source->MonsterWhisper(textEntry, target->GetGUID(), true); - else TC_LOG_ERROR("sql.sql", "CreatureEventAI: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry); - }break; - case CHAT_TYPE_ZONE_YELL: - source->MonsterYellToZone(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); - break; - } -} - -bool CreatureEventAI::CanCast(Unit* target, SpellInfo const* spell, bool triggered) -{ - //No target so we can't cast - if (!target || !spell) - return false; - - //Silenced so we can't cast - if (!triggered && me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED)) - return false; - - //Check for power - if (!triggered && me->GetPower((Powers)spell->PowerType) < uint32(spell->CalcPowerCost(me, spell->GetSchoolMask()))) - return false; - - //Unit is out of range of this spell - if (!me->IsInRange(target, spell->GetMinRange(false), spell->GetMaxRange(false))) - return false; - - //Spell is on cooldown - if (me->HasSpellCooldown(spell->Id)) - return false; - - return true; -} - -void CreatureEventAI::ReceiveEmote(Player* player, uint32 textEmote) -{ - if (m_bEmptyList) - return; - - for (CreatureEventAIList::iterator itr = m_CreatureEventAIList.begin(); itr != m_CreatureEventAIList.end(); ++itr) - { - if ((*itr).Event.event_type == EVENT_T_RECEIVE_EMOTE) - { - if ((*itr).Event.receive_emote.emoteId != textEmote) - return; - - Condition cond; - cond.ConditionType = ConditionTypes((*itr).Event.receive_emote.condition); - cond.ConditionValue1 = (*itr).Event.receive_emote.conditionValue1; - cond.ConditionValue2 = (*itr).Event.receive_emote.conditionValue2; - - ConditionSourceInfo srcInfo = ConditionSourceInfo(player); - if (cond.Meets(srcInfo)) - { - TC_LOG_DEBUG("scripts.ai", "CreatureEventAI: ReceiveEmote CreatureEventAI: Condition ok, processing"); - ProcessEvent(*itr, player); - } - } - } -} - -void CreatureEventAI::DamageTaken(Unit* /*done_by*/, uint32& damage) -{ - if (m_InvincibilityHpLevel > 0 && me->GetHealth() < m_InvincibilityHpLevel+damage) - { - if (me->GetHealth() <= m_InvincibilityHpLevel) - damage = 0; - else - damage = me->GetHealth() - m_InvincibilityHpLevel; - } -} - -bool CreatureEventAI::SpawnedEventConditionsCheck(CreatureEventAI_Event const& event) -{ - if (event.event_type != EVENT_T_SPAWNED) - return false; - - switch (event.spawned.condition) - { - case SPAWNED_EVENT_ALWAY: - // always - return true; - case SPAWNED_EVENT_MAP: - // map ID check - return me->GetMapId() == event.spawned.conditionValue1; - case SPAWNED_EVENT_ZONE: - { - // zone ID check - uint32 zone, area; - me->GetZoneAndAreaId(zone, area); - return zone == event.spawned.conditionValue1 || area == event.spawned.conditionValue1; - } - default: - break; - } - - return false; -} diff --git a/src/server/game/AI/EventAI/CreatureEventAI.h b/src/server/game/AI/EventAI/CreatureEventAI.h deleted file mode 100644 index c16f0901b05..00000000000 --- a/src/server/game/AI/EventAI/CreatureEventAI.h +++ /dev/null @@ -1,630 +0,0 @@ -/* - * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2005-2009 MaNGOS - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -#ifndef TRINITY_CREATURE_EAI_H -#define TRINITY_CREATURE_EAI_H - -#include "Common.h" -#include "Creature.h" -#include "CreatureAI.h" -#include "Unit.h" - -class Player; -class WorldObject; - -#define EVENT_UPDATE_TIME 500 -#define MAX_ACTIONS 3 -#define MAX_PHASE 32 - -enum EventAI_Type -{ - EVENT_T_TIMER = 0, // InitialMin, InitialMax, RepeatMin, RepeatMax - EVENT_T_TIMER_OOC = 1, // InitialMin, InitialMax, RepeatMin, RepeatMax - EVENT_T_HP = 2, // HPMax%, HPMin%, RepeatMin, RepeatMax - EVENT_T_MANA = 3, // ManaMax%, ManaMin% RepeatMin, RepeatMax - EVENT_T_AGGRO = 4, // NONE - EVENT_T_KILL = 5, // RepeatMin, RepeatMax - EVENT_T_DEATH = 6, // NONE - EVENT_T_EVADE = 7, // NONE - EVENT_T_SPELLHIT = 8, // SpellID, School, RepeatMin, RepeatMax - EVENT_T_RANGE = 9, // MinDist, MaxDist, RepeatMin, RepeatMax - EVENT_T_OOC_LOS = 10, // NoHostile, MaxRnage, RepeatMin, RepeatMax - EVENT_T_SPAWNED = 11, // Condition, CondValue1 - EVENT_T_TARGET_HP = 12, // HPMax%, HPMin%, RepeatMin, RepeatMax - EVENT_T_TARGET_CASTING = 13, // RepeatMin, RepeatMax - EVENT_T_FRIENDLY_HP = 14, // HPDeficit, Radius, RepeatMin, RepeatMax - EVENT_T_FRIENDLY_IS_CC = 15, // DispelType, Radius, RepeatMin, RepeatMax - EVENT_T_FRIENDLY_MISSING_BUFF = 16, // SpellId, Radius, RepeatMin, RepeatMax - EVENT_T_SUMMONED_UNIT = 17, // CreatureId, RepeatMin, RepeatMax - EVENT_T_TARGET_MANA = 18, // ManaMax%, ManaMin%, RepeatMin, RepeatMax - EVENT_T_QUEST_ACCEPT = 19, // QuestID - EVENT_T_QUEST_COMPLETE = 20, // - EVENT_T_REACHED_HOME = 21, // NONE - EVENT_T_RECEIVE_EMOTE = 22, // EmoteId, Condition, CondValue1, CondValue2 - EVENT_T_BUFFED = 23, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 Repeat Min/Max - EVENT_T_TARGET_BUFFED = 24, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 Repeat Min/Max - EVENT_T_RESET = 35, // Is it called after combat, when the creature respawn and spawn. -- TRINITY ONLY - - EVENT_T_END -}; - -enum EventAI_ActionType -{ - ACTION_T_NONE = 0, // No action - ACTION_T_TEXT = 1, // TextId1, optionally -TextId2, optionally -TextId3(if -TextId2 exist). If more than just -TextId1 is defined, randomize. Negative values. - ACTION_T_SET_FACTION = 2, // FactionId (or 0 for default) - ACTION_T_MORPH_TO_ENTRY_OR_MODEL = 3, // Creature_template entry(param1) OR ModelId (param2) (or 0 for both to demorph) - ACTION_T_SOUND = 4, // SoundId - ACTION_T_EMOTE = 5, // EmoteId - ACTION_T_RANDOM_SAY = 6, // UNUSED - ACTION_T_RANDOM_YELL = 7, // UNUSED - ACTION_T_RANDOM_TEXTEMOTE = 8, // UNUSED - ACTION_T_RANDOM_SOUND = 9, // SoundId1, SoundId2, SoundId3 (-1 in any field means no output if randomed that field) - ACTION_T_RANDOM_EMOTE = 10, // EmoteId1, EmoteId2, EmoteId3 (-1 in any field means no output if randomed that field) - ACTION_T_CAST = 11, // SpellId, Target, CastFlags - ACTION_T_SUMMON = 12, // CreatureID, Target, Duration in ms - ACTION_T_THREAT_SINGLE_PCT = 13, // Threat%, Target - ACTION_T_THREAT_ALL_PCT = 14, // Threat% - ACTION_T_QUEST_EVENT = 15, // QuestID, Target - // none = 16, - ACTION_T_SET_UNIT_FIELD = 17, // Field_Number, Value, Target - ACTION_T_SET_UNIT_FLAG = 18, // Flags (may be more than one field OR'd together), Target - ACTION_T_REMOVE_UNIT_FLAG = 19, // Flags (may be more than one field OR'd together), Target - ACTION_T_AUTO_ATTACK = 20, // AllowAttackState (0 = stop attack, anything else means continue attacking) - ACTION_T_COMBAT_MOVEMENT = 21, // AllowCombatMovement (0 = stop combat based movement, anything else continue attacking) - ACTION_T_SET_PHASE = 22, // Phase - ACTION_T_INC_PHASE = 23, // Value (may be negative to decrement phase, should not be 0) - ACTION_T_EVADE = 24, // No Params - ACTION_T_FLEE_FOR_ASSIST = 25, // No Params - ACTION_T_QUEST_EVENT_ALL = 26, // QuestID - // none = 27, - ACTION_T_REMOVEAURASFROMSPELL = 28, // Target, Spellid - ACTION_T_RANGED_MOVEMENT = 29, // Distance, Angle - ACTION_T_RANDOM_PHASE = 30, // PhaseId1, PhaseId2, PhaseId3 - ACTION_T_RANDOM_PHASE_RANGE = 31, // PhaseMin, PhaseMax - ACTION_T_SUMMON_ID = 32, // CreatureId, Target, SpawnId - ACTION_T_KILLED_MONSTER = 33, // CreatureId, Target - ACTION_T_SET_INST_DATA = 34, // Field, Data - ACTION_T_SET_INST_DATA64 = 35, // Field, Target - ACTION_T_UPDATE_TEMPLATE = 36, // Entry, Team - ACTION_T_DIE = 37, // No Params - ACTION_T_ZONE_COMBAT_PULSE = 38, // No Params - ACTION_T_CALL_FOR_HELP = 39, // Radius - ACTION_T_SET_SHEATH = 40, // Sheath (0-passive, 1-melee, 2-ranged) - ACTION_T_FORCE_DESPAWN = 41, // No Params - ACTION_T_SET_INVINCIBILITY_HP_LEVEL = 42, // MinHpValue, format(0-flat, 1-percent from max health) - ACTION_T_MOUNT_TO_ENTRY_OR_MODEL = 43, // Creature_template entry(param1) OR ModelId (param2) (or 0 for both to dismount) - - ACTION_T_SET_PHASE_MASK = 97, - ACTION_T_SET_STAND_STATE = 98, - ACTION_T_MOVE_RANDOM_POINT = 99, - ACTION_T_SET_VISIBILITY = 100, - ACTION_T_SET_ACTIVE = 101, //Apply - ACTION_T_SET_AGGRESSIVE = 102, //Apply - ACTION_T_ATTACK_START_PULSE = 103, //Distance - ACTION_T_SUMMON_GO = 104, //GameObjectID, DespawnTime in ms - - ACTION_T_END = 105 -}; - -enum Target -{ - //Self (me) - TARGET_T_SELF = 0, //Self cast - - //Hostile targets (if pet then returns pet owner) - TARGET_T_HOSTILE, //Our current target (ie: highest aggro) - TARGET_T_HOSTILE_SECOND_AGGRO, //Second highest aggro (generaly used for cleaves and some special attacks) - TARGET_T_HOSTILE_LAST_AGGRO, //Dead last on aggro (no idea what this could be used for) - TARGET_T_HOSTILE_RANDOM, //Just any random target on our threat list - TARGET_T_HOSTILE_RANDOM_NOT_TOP, //Any random target except top threat - - //Invoker targets (if pet then returns pet owner) - TARGET_T_ACTION_INVOKER, //Unit who caused this Event to occur (only works for EVENT_T_AGGRO, EVENT_T_KILL, EVENT_T_DEATH, EVENT_T_SPELLHIT, EVENT_T_OOC_LOS, EVENT_T_FRIENDLY_HP, EVENT_T_FRIENDLY_IS_CC, EVENT_T_FRIENDLY_MISSING_BUFF) - - //Hostile targets (including pets) - TARGET_T_HOSTILE_WPET, //Current target (can be a pet) - TARGET_T_HOSTILE_WPET_SECOND_AGGRO, //Second highest aggro (generaly used for cleaves and some special attacks) - TARGET_T_HOSTILE_WPET_LAST_AGGRO, //Dead last on aggro (no idea what this could be used for) - TARGET_T_HOSTILE_WPET_RANDOM, //Just any random target on our threat list - TARGET_T_HOSTILE_WPET_RANDOM_NOT_TOP, //Any random target except top threat - - TARGET_T_ACTION_INVOKER_WPET, - - TARGET_T_END -}; - -enum CastFlags -{ - CAST_INTERRUPT_PREVIOUS = 0x01, //Interrupt any spell casting - CAST_TRIGGERED = 0x02, //Triggered (this makes spell cost zero mana and have no cast time) - CAST_FORCE_CAST = 0x04, //Forces cast even if creature is out of mana or out of range - CAST_NO_MELEE_IF_OOM = 0x08, //Prevents creature from entering melee if out of mana or out of range - CAST_FORCE_TARGET_SELF = 0x10, //Forces the target to cast this spell on itself - CAST_AURA_NOT_PRESENT = 0x20 //Only casts the spell if the target does not have an aura from the spell -}; - -enum EventFlags -{ - EFLAG_REPEATABLE = 0x01, //Event repeats - EFLAG_DIFFICULTY_0 = 0x02, //Event only occurs in instance difficulty 0 - EFLAG_DIFFICULTY_1 = 0x04, //Event only occurs in instance difficulty 1 - EFLAG_DIFFICULTY_2 = 0x08, //Event only occurs in instance difficulty 2 - EFLAG_DIFFICULTY_3 = 0x10, //Event only occurs in instance difficulty 3 - EFLAG_RESERVED_5 = 0x20, - EFLAG_RESERVED_6 = 0x40, - EFLAG_DEBUG_ONLY = 0x80, //Event only occurs in debug build - - EFLAG_DIFFICULTY_ALL = (EFLAG_DIFFICULTY_0|EFLAG_DIFFICULTY_1|EFLAG_DIFFICULTY_2|EFLAG_DIFFICULTY_3) -}; - -enum SpawnedEventMode -{ - SPAWNED_EVENT_ALWAY = 0, - SPAWNED_EVENT_MAP = 1, - SPAWNED_EVENT_ZONE = 2 -}; - -// String text additional data, used in (CreatureEventAI) -struct StringTextData -{ - uint32 SoundId; - uint8 Type; - uint32 Language; - uint32 Emote; -}; -// Text Maps -typedef UNORDERED_MAP CreatureEventAI_TextMap; - -struct CreatureEventAI_Action -{ - EventAI_ActionType type: 16; - union - { - // ACTION_T_TEXT = 1 - struct - { - int32 TextId1; - int32 TextId2; - int32 TextId3; - } text; - // ACTION_T_SET_FACTION = 2 - struct - { - uint32 factionId; // faction or 0 for default) - } set_faction; - // ACTION_T_MORPH_TO_ENTRY_OR_MODEL = 3 - struct - { - uint32 creatureId; // set one from fields (or 0 for both to demorph) - uint32 modelId; - } morph; - // ACTION_T_SOUND = 4 - struct - { - uint32 soundId; - } sound; - // ACTION_T_EMOTE = 5 - struct - { - uint32 emoteId; - } emote; - // ACTION_T_RANDOM_SOUND = 9 - struct - { - int32 soundId1; // (-1 in any field means no output if randomed that field) - int32 soundId2; - int32 soundId3; - } random_sound; - // ACTION_T_RANDOM_EMOTE = 10 - struct - { - int32 emoteId1; // (-1 in any field means no output if randomed that field) - int32 emoteId2; - int32 emoteId3; - } random_emote; - // ACTION_T_CAST = 11 - struct - { - uint32 spellId; - uint32 target; - uint32 castFlags; - } cast; - // ACTION_T_SUMMON = 12 - struct - { - uint32 creatureId; - uint32 target; - uint32 duration; - } summon; - // ACTION_T_THREAT_SINGLE_PCT = 13 - struct - { - int32 percent; - uint32 target; - } threat_single_pct; - // ACTION_T_THREAT_ALL_PCT = 14 - struct - { - int32 percent; - } threat_all_pct; - // ACTION_T_QUEST_EVENT = 15 - struct - { - uint32 questId; - uint32 target; - } quest_event; - // ACTION_T_SET_UNIT_FIELD = 17 - struct - { - uint32 field; - uint32 value; - uint32 target; - } set_unit_field; - // ACTION_T_SET_UNIT_FLAG = 18, // value provided mask bits that will be set - // ACTION_T_REMOVE_UNIT_FLAG = 19, // value provided mask bits that will be clear - struct - { - uint32 value; - uint32 target; - } unit_flag; - // ACTION_T_AUTO_ATTACK = 20 - struct - { - uint32 state; // 0 = stop attack, anything else means continue attacking - } auto_attack; - // ACTION_T_COMBAT_MOVEMENT = 21 - struct - { - uint32 state; // 0 = stop combat based movement, anything else continue attacking - uint32 melee; // if set: at stop send melee combat stop if in combat, use for terminate melee fighting state for switch to ranged - } combat_movement; - // ACTION_T_SET_PHASE = 22 - struct - { - uint32 phase; - } set_phase; - // ACTION_T_INC_PHASE = 23 - struct - { - int32 step; - } set_inc_phase; - // ACTION_T_QUEST_EVENT_ALL = 26 - struct - { - uint32 questId; - } quest_event_all; - // ACTION_T_REMOVEAURASFROMSPELL = 28 - struct - { - uint32 target; - uint32 spellId; - } remove_aura; - // ACTION_T_RANGED_MOVEMENT = 29 - struct - { - uint32 distance; - int32 angle; - } ranged_movement; - // ACTION_T_RANDOM_PHASE = 30 - struct - { - uint32 phase1; - uint32 phase2; - uint32 phase3; - } random_phase; - // ACTION_T_RANDOM_PHASE_RANGE = 31 - struct - { - uint32 phaseMin; - uint32 phaseMax; - } random_phase_range; - // ACTION_T_SUMMON_ID = 32 - struct - { - uint32 creatureId; - uint32 target; - uint32 spawnId; - } summon_id; - // ACTION_T_KILLED_MONSTER = 33 - struct - { - uint32 creatureId; - uint32 target; - } killed_monster; - // ACTION_T_SET_INST_DATA = 34 - struct - { - uint32 field; - uint32 value; - } set_inst_data; - // ACTION_T_SET_INST_DATA64 = 35 - struct - { - uint32 field; - uint32 target; - } set_inst_data64; - // ACTION_T_UPDATE_TEMPLATE = 36 - struct - { - uint32 creatureId; - uint32 team; - } update_template; - // ACTION_T_CALL_FOR_HELP = 39 - struct - { - uint32 radius; - } call_for_help; - // ACTION_T_SET_SHEATH = 40 - struct - { - uint32 sheath; - } set_sheath; - // ACTION_T_FORCE_DESPAWN = 41 - struct - { - uint32 msDelay; - } forced_despawn; - // ACTION_T_SET_INVINCIBILITY_HP_LEVEL = 42 - struct - { - uint32 hp_level; - uint32 is_percent; - } invincibility_hp_level; - // ACTION_T_MOUNT_TO_ENTRY_OR_MODEL = 43 - struct - { - uint32 creatureId; // set one from fields (or 0 for both to dismount) - uint32 modelId; - } mount; - // RAW - struct - { - uint32 param1; - uint32 param2; - uint32 param3; - } raw; - }; -}; - -struct CreatureEventAI_Event -{ - uint32 event_id; - - uint32 creature_id; - - uint32 event_inverse_phase_mask; - - EventAI_Type event_type : 16; - uint8 event_chance : 8; - uint8 event_flags : 8; - - union - { - // EVENT_T_TIMER = 0 - // EVENT_T_TIMER_OOC = 1 - struct - { - uint32 initialMin; - uint32 initialMax; - uint32 repeatMin; - uint32 repeatMax; - } timer; - // EVENT_T_HP = 2 - // EVENT_T_MANA = 3 - // EVENT_T_TARGET_HP = 12 - // EVENT_T_TARGET_MANA = 18 - struct - { - uint32 percentMax; - uint32 percentMin; - uint32 repeatMin; - uint32 repeatMax; - } percent_range; - // EVENT_T_KILL = 5 - struct - { - uint32 repeatMin; - uint32 repeatMax; - } kill; - // EVENT_T_SPELLHIT = 8 - struct - { - uint32 spellId; - uint32 schoolMask; // -1 ( == 0xffffffff) is ok value for full mask, or must be more limited mask like (0 < 1) = 1 for normal/physical school - uint32 repeatMin; - uint32 repeatMax; - } spell_hit; - // EVENT_T_RANGE = 9 - struct - { - uint32 minDist; - uint32 maxDist; - uint32 repeatMin; - uint32 repeatMax; - } range; - // EVENT_T_OOC_LOS = 10 - struct - { - uint32 noHostile; - uint32 maxRange; - uint32 repeatMin; - uint32 repeatMax; - } ooc_los; - // EVENT_T_SPAWNED = 11 - struct - { - uint32 condition; - uint32 conditionValue1; - } spawned; - // EVENT_T_TARGET_CASTING = 13 - struct - { - uint32 repeatMin; - uint32 repeatMax; - } target_casting; - // EVENT_T_FRIENDLY_HP = 14 - struct - { - uint32 hpDeficit; - uint32 radius; - uint32 repeatMin; - uint32 repeatMax; - } friendly_hp; - // EVENT_T_FRIENDLY_IS_CC = 15 - struct - { - uint32 dispelType; // unused ? - uint32 radius; - uint32 repeatMin; - uint32 repeatMax; - } friendly_is_cc; - // EVENT_T_FRIENDLY_MISSING_BUFF = 16 - struct - { - uint32 spellId; - uint32 radius; - uint32 repeatMin; - uint32 repeatMax; - } friendly_buff; - // EVENT_T_SUMMONED_UNIT = 17 - struct - { - uint32 creatureId; - uint32 repeatMin; - uint32 repeatMax; - } summon_unit; - // EVENT_T_QUEST_ACCEPT = 19 - // EVENT_T_QUEST_COMPLETE = 20 - struct - { - uint32 questId; - } quest; - // EVENT_T_RECEIVE_EMOTE = 22 - struct - { - uint32 emoteId; - uint32 condition; - uint32 conditionValue1; - uint32 conditionValue2; - } receive_emote; - // EVENT_T_BUFFED = 23 - // EVENT_T_TARGET_BUFFED = 24 - struct - { - uint32 spellId; - uint32 amount; - uint32 repeatMin; - uint32 repeatMax; - } buffed; - - // RAW - struct - { - uint32 param1; - uint32 param2; - uint32 param3; - uint32 param4; - } raw; - }; - - CreatureEventAI_Action action[MAX_ACTIONS]; -}; -//Event_Map -typedef UNORDERED_MAP > CreatureEventAI_Event_Map; - -struct CreatureEventAI_Summon -{ - //uint32 id; - - float position_x; - float position_y; - float position_z; - float orientation; - uint32 SpawnTimeSecs; -}; - -//EventSummon_Map -typedef UNORDERED_MAP CreatureEventAI_Summon_Map; - -struct CreatureEventAIHolder -{ - CreatureEventAIHolder(CreatureEventAI_Event const& p) : Event(p), Time(0), Enabled(true){ } - - CreatureEventAI_Event Event; - uint32 Time; - bool Enabled; - - // helper - bool UpdateRepeatTimer(Creature* creature, uint32 repeatMin, uint32 repeatMax); -}; - -class CreatureEventAI : public CreatureAI -{ - public: - explicit CreatureEventAI(Creature* c); - ~CreatureEventAI() { } - - void JustRespawned(); - void Reset(); - void JustReachedHome(); - void EnterCombat(Unit* enemy); - void EnterEvadeMode(); - void JustDied(Unit* /*killer*/); - void KilledUnit(Unit* victim); - void JustSummoned(Creature* unit); - void AttackStart(Unit* who); - void MoveInLineOfSight(Unit* who); - void SpellHit(Unit* unit, const SpellInfo* spell); - void DamageTaken(Unit* done_by, uint32& damage); - void HealReceived(Unit* /*done_by*/, uint32& /*addhealth*/) { } - void UpdateAI(uint32 diff); - void ReceiveEmote(Player* player, uint32 textEmote); - static int Permissible(const Creature*); - - bool ProcessEvent(CreatureEventAIHolder& holder, Unit* actionInvoker = NULL); - void ProcessAction(CreatureEventAI_Action const& action, uint32 rnd, uint32 eventId, Unit* actionInvoker); - inline uint32 GetRandActionParam(uint32 rnd, uint32 param1, uint32 param2, uint32 param3); - inline int32 GetRandActionParam(uint32 rnd, int32 param1, int32 param2, int32 param3); - inline Unit* GetTargetByType(uint32 target, Unit* actionInvoker); - - void DoScriptText(int32 textEntry, WorldObject* source, Unit* target); - bool CanCast(Unit* target, SpellInfo const* spell, bool triggered); - - bool SpawnedEventConditionsCheck(CreatureEventAI_Event const& event); - - Unit* DoSelectLowestHpFriendly(float range, uint32 minHPDiff); - void DoFindFriendlyMissingBuff(std::list& _list, float range, uint32 spellid); - void DoFindFriendlyCC(std::list& _list, float range); - - protected: - uint32 m_EventUpdateTime; // Time between event updates - uint32 m_EventDiff; // Time between the last event call - bool m_bEmptyList; - - typedef std::vector CreatureEventAIList; - CreatureEventAIList m_CreatureEventAIList; // Holder for events (stores enabled, time, and eventid) - // Variables used by Events themselves - uint8 m_Phase; // Current phase, max 32 phases - bool m_CombatMovementEnabled; // If we allow targeted movment gen (movement twoards top threat) - bool m_MeleeEnabled; // If we allow melee auto attack - float m_AttackDistance; // Distance to attack from - float m_AttackAngle; // Angle of attack - uint32 m_InvincibilityHpLevel; // Minimal health level allowed at damage apply -}; -#endif diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp deleted file mode 100644 index daaf531dbda..00000000000 --- a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp +++ /dev/null @@ -1,680 +0,0 @@ -/* - * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2005-2009 MaNGOS - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -#include "Common.h" -#include "DatabaseEnv.h" -#include "CreatureEventAI.h" -#include "CreatureEventAIMgr.h" -#include "ObjectMgr.h" -#include "ObjectDefines.h" -#include "GridDefines.h" -#include "ConditionMgr.h" -#include "SpellMgr.h" -#include "SpellInfo.h" -#include "Player.h" - -// ------------------- -void CreatureEventAIMgr::LoadCreatureEventAI_Texts() -{ - uint32 oldMSTime = getMSTime(); - - // Drop Existing Text Map, only done once and we are ready to add data from multiple sources. - m_CreatureEventAI_TextMap.clear(); - - // Load EventAI Text - sObjectMgr->LoadTrinityStrings("creature_ai_texts", MIN_CREATURE_AI_TEXT_STRING_ID, MAX_CREATURE_AI_TEXT_STRING_ID); - - // Gather Additional data from EventAI Texts 0 1 2 3 4 - QueryResult result = WorldDatabase.Query("SELECT entry, sound, type, language, emote FROM creature_ai_texts"); - - if (!result) - { - TC_LOG_INFO("server.loading", ">> Loaded 0 additional CreatureEventAI Texts data. DB table `creature_ai_texts` is empty."); - return; - } - - uint32 count = 0; - - do - { - Field* fields = result->Fetch(); - StringTextData temp; - - int32 i = fields[0].GetInt32(); - temp.SoundId = fields[1].GetUInt32(); - temp.Type = fields[2].GetUInt8(); - temp.Language = fields[3].GetUInt8(); - temp.Emote = fields[4].GetUInt16(); - - // range negative - if (i > MIN_CREATURE_AI_TEXT_STRING_ID || i <= MAX_CREATURE_AI_TEXT_STRING_ID) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` is not in valid range(%d-%d)", i, MIN_CREATURE_AI_TEXT_STRING_ID, MAX_CREATURE_AI_TEXT_STRING_ID); - continue; - } - - // range negative (must not happen, loaded from same table) - if (!sObjectMgr->GetTrinityStringLocale(i)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` not found", i); - continue; - } - - if (temp.SoundId) - { - if (!sSoundEntriesStore.LookupEntry(temp.SoundId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` has Sound %u but sound does not exist.", i, temp.SoundId); - } - - if (!GetLanguageDescByID(temp.Language)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` using Language %u but Language does not exist.", i, temp.Language); - - if (temp.Type > CHAT_TYPE_ZONE_YELL) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` has Type %u but this Chat Type does not exist.", i, temp.Type); - - if (temp.Emote) - { - if (!sEmotesStore.LookupEntry(temp.Emote)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Entry %i in table `creature_ai_texts` has Emote %u but emote does not exist.", i, temp.Emote); - } - - m_CreatureEventAI_TextMap[i] = temp; - ++count; - } - while (result->NextRow()); - - TC_LOG_INFO("server.loading", ">> Loaded %u additional CreatureEventAI Texts data in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); -} - -void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() -{ - uint32 oldMSTime = getMSTime(); - - //Drop Existing EventAI List - m_CreatureEventAI_Event_Map.clear(); - - // Gather event data - QueryResult result = WorldDatabase.Query("SELECT id, creature_id, event_type, event_inverse_phase_mask, event_chance, event_flags, " - "event_param1, event_param2, event_param3, event_param4, " - "action1_type, action1_param1, action1_param2, action1_param3, " - "action2_type, action2_param1, action2_param2, action2_param3, " - "action3_type, action3_param1, action3_param2, action3_param3 " - "FROM creature_ai_scripts"); - - if (!result) - { - TC_LOG_INFO("server.loading", ">> Loaded 0 CreatureEventAI scripts. DB table `creature_ai_scripts` is empty."); - return; - } - - uint32 count = 0; - - do - { - Field* fields = result->Fetch(); - - CreatureEventAI_Event temp; - temp.event_id = EventAI_Type(fields[0].GetUInt32()); - uint32 i = temp.event_id; - - temp.creature_id = fields[1].GetUInt32(); - uint32 creature_id = temp.creature_id; - - uint32 e_type = fields[2].GetUInt8(); - //Report any errors in event - if (e_type >= EVENT_T_END) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u have wrong type (%u), skipping.", i, e_type); - continue; - } - temp.event_type = EventAI_Type(e_type); - - temp.event_inverse_phase_mask = fields[3].GetInt32(); - temp.event_chance = fields[4].GetUInt32(); - temp.event_flags = fields[5].GetUInt32(); - temp.raw.param1 = fields[6].GetInt32(); - temp.raw.param2 = fields[7].GetInt32(); - temp.raw.param3 = fields[8].GetInt32(); - temp.raw.param4 = fields[9].GetInt32(); - - CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(creature_id); - //Creature does not exist in database - if (!cInfo) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u has script for non-existing creature entry (%u), skipping.", i, creature_id); - continue; - } - - // Only on the first script - if (cInfo->AIName != "EventAI" && m_CreatureEventAI_Event_Map[creature_id].empty()) - TC_LOG_ERROR("sql.sql", "Creature entry %u has EventAI scripts, but its AIName is not 'EventAI' - possible AI-mismatch?", temp.creature_id); - - //No chance of this event occuring - if (temp.event_chance == 0) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u has 0 percent chance. Event will never trigger!", i); - //Chance above 100, force it to be 100 - else if (temp.event_chance > 100) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event %u with more than 100 percent chance. Adjusting to 100 percent.", temp.creature_id, i); - temp.event_chance = 100; - } - - //Individual event checks - switch (temp.event_type) - { - case EVENT_T_TIMER: - case EVENT_T_TIMER_OOC: - if (temp.timer.initialMax < temp.timer.initialMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using timed event(%u) with param2 < param1 (InitialMax < InitialMin). Event will never repeat.", temp.creature_id, i); - if (temp.timer.repeatMax < temp.timer.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_HP: - case EVENT_T_MANA: - case EVENT_T_TARGET_HP: - case EVENT_T_TARGET_MANA: - if (temp.percent_range.percentMax > 100) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using percentage event(%u) with param2 (MinPercent) > 100. Event will never trigger! ", temp.creature_id, i); - - if (temp.percent_range.percentMax <= temp.percent_range.percentMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using percentage event(%u) with param1 <= param2 (MaxPercent <= MinPercent). Event will never trigger! ", temp.creature_id, i); - - if (temp.event_flags & EFLAG_REPEATABLE && !temp.percent_range.repeatMin && !temp.percent_range.repeatMax) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has param3 and param4=0 (RepeatMin/RepeatMax) but cannot be repeatable without timers. Removing EFLAG_REPEATABLE for event %u.", temp.creature_id, i); - temp.event_flags &= ~EFLAG_REPEATABLE; - } - break; - case EVENT_T_SPELLHIT: - if (temp.spell_hit.spellId) - { - SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.spell_hit.spellId); - if (!spell) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i); - continue; - } - - if ((temp.spell_hit.schoolMask & spell->SchoolMask) != spell->SchoolMask) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has param1(spellId %u) but param2 is not -1 and not equal to spell's school mask. Event %u can never trigger.", - temp.creature_id, temp.spell_hit.schoolMask, i); - } - } - - if (!temp.spell_hit.schoolMask) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u is using invalid SpellSchoolMask(%u) defined in event %u.", temp.creature_id, temp.spell_hit.schoolMask, i); - - if (temp.spell_hit.repeatMax < temp.spell_hit.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_RANGE: - if (temp.range.maxDist < temp.range.minDist) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with param2 < param1 (MaxDist < MinDist). Event will never repeat.", temp.creature_id, i); - if (temp.range.repeatMax < temp.range.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_OOC_LOS: - if (temp.ooc_los.repeatMax < temp.ooc_los.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_SPAWNED: - switch (temp.spawned.condition) - { - case SPAWNED_EVENT_ALWAY: - break; - case SPAWNED_EVENT_MAP: - if (!sMapStore.LookupEntry(temp.spawned.conditionValue1)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using spawned event(%u) with param1 = %u 'map specific' but with not existed map (%u) in param2. Event will never repeat.", - temp.creature_id, i, temp.spawned.condition, temp.spawned.conditionValue1); - } - break; - case SPAWNED_EVENT_ZONE: - if (!GetAreaEntryByAreaID(temp.spawned.conditionValue1)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using spawned event(%u) with param1 = %u 'area specific' but with not existed area (%u) in param2. Event will never repeat.", - temp.creature_id, i, temp.spawned.condition, temp.spawned.conditionValue1); - } - break; - default: - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using invalid spawned event %u mode (%u) in param1", temp.creature_id, i, temp.spawned.condition); - break; - } - break; - case EVENT_T_FRIENDLY_HP: - if (temp.friendly_hp.repeatMax < temp.friendly_hp.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_FRIENDLY_IS_CC: - if (temp.friendly_is_cc.repeatMax < temp.friendly_is_cc.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_FRIENDLY_MISSING_BUFF: - { - SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.spell_hit.spellId); - if (!spell) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i); - continue; - } - if (temp.friendly_buff.repeatMax < temp.friendly_buff.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - } - case EVENT_T_KILL: - if (temp.kill.repeatMax < temp.kill.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_TARGET_CASTING: - if (temp.target_casting.repeatMax < temp.target_casting.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_SUMMONED_UNIT: - if (!sObjectMgr->GetCreatureTemplate(temp.summon_unit.creatureId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with not existed creature template id (%u) in param1, skipped.", temp.creature_id, i, temp.summon_unit.creatureId); - if (temp.summon_unit.repeatMax < temp.summon_unit.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - case EVENT_T_QUEST_ACCEPT: - case EVENT_T_QUEST_COMPLETE: - if (!sObjectMgr->GetQuestTemplate(temp.quest.questId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using event(%u) with not existed qyest id (%u) in param1, skipped.", temp.creature_id, i, temp.quest.questId); - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using not implemented event (%u) in event %u.", temp.creature_id, temp.event_id, i); - continue; - - case EVENT_T_AGGRO: - case EVENT_T_DEATH: - case EVENT_T_EVADE: - case EVENT_T_REACHED_HOME: - { - if (temp.event_flags & EFLAG_REPEATABLE) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has EFLAG_REPEATABLE set. Event can never be repeatable. Removing flag for event %u.", temp.creature_id, i); - temp.event_flags &= ~EFLAG_REPEATABLE; - } - - break; - } - - case EVENT_T_RECEIVE_EMOTE: - { - if (!sEmotesTextStore.LookupEntry(temp.receive_emote.emoteId)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using event %u: param1 (EmoteTextId: %u) are not valid.", temp.creature_id, i, temp.receive_emote.emoteId); - continue; - } - if (temp.receive_emote.condition) - { - Condition cond; - cond.ConditionType = ConditionTypes(temp.receive_emote.condition); - cond.ConditionValue1 = temp.receive_emote.conditionValue1; - cond.ConditionValue2 = temp.receive_emote.conditionValue2; - if (!sConditionMgr->isConditionTypeValid(&cond)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using event %u: param2 (Condition: %u) are not valid.", temp.creature_id, i, temp.receive_emote.condition); - continue; - } - } - - if (!(temp.event_flags & EFLAG_REPEATABLE)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using event %u: EFLAG_REPEATABLE not set. Event must always be repeatable. Flag applied.", temp.creature_id, i); - temp.event_flags |= EFLAG_REPEATABLE; - } - - break; - } - - case EVENT_T_BUFFED: - case EVENT_T_TARGET_BUFFED: - { - SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.buffed.spellId); - if (!spell) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i); - continue; - } - if (temp.buffed.repeatMax < temp.buffed.repeatMin) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - break; - } - - default: - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Creature %u using not checked at load event (%u) in event %u. Need check code update?", temp.creature_id, temp.event_id, i); - break; - } - - for (uint32 j = 0; j < MAX_ACTIONS; j++) - { - uint16 action_type = fields[10+(j*4)].GetUInt8(); - if (action_type >= ACTION_T_END) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u has incorrect action type (%u), replace by ACTION_T_NONE.", i, j+1, action_type); - temp.action[j].type = ACTION_T_NONE; - continue; - } - - CreatureEventAI_Action& action = temp.action[j]; - - action.type = EventAI_ActionType(action_type); - action.raw.param1 = fields[11+(j*4)].GetInt32(); - action.raw.param2 = fields[12+(j*4)].GetInt32(); - action.raw.param3 = fields[13+(j*4)].GetInt32(); - - //Report any errors in actions - switch (action.type) - { - case ACTION_T_NONE: - break; - case ACTION_T_TEXT: - { - if (action.text.TextId1 < 0) - { - if (m_CreatureEventAI_TextMap.find(action.text.TextId1) == m_CreatureEventAI_TextMap.end()) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 refrences non-existing entry in texts table.", i, j+1); - } - if (action.text.TextId2 < 0) - { - if (m_CreatureEventAI_TextMap.find(action.text.TextId2) == m_CreatureEventAI_TextMap.end()) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param2 refrences non-existing entry in texts table.", i, j+1); - - if (!action.text.TextId1) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u has param2, but param1 is not set. Required for randomized text.", i, j+1); - } - if (action.text.TextId3 < 0) - { - if (m_CreatureEventAI_TextMap.find(action.text.TextId3) == m_CreatureEventAI_TextMap.end()) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param3 refrences non-existing entry in texts table.", i, j+1); - - if (!action.text.TextId1 || !action.text.TextId2) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u has param3, but param1 and/or param2 is not set. Required for randomized text.", i, j+1); - } - break; - } - case ACTION_T_SET_FACTION: - if (action.set_faction.factionId !=0 && !sFactionStore.LookupEntry(action.set_faction.factionId)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent FactionId %u.", i, j+1, action.set_faction.factionId); - action.set_faction.factionId = 0; - } - break; - case ACTION_T_MORPH_TO_ENTRY_OR_MODEL: - if (action.morph.creatureId !=0 || action.morph.modelId !=0) - { - if (action.morph.creatureId && !sObjectMgr->GetCreatureTemplate(action.morph.creatureId)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant Creature entry %u.", i, j+1, action.morph.creatureId); - action.morph.creatureId = 0; - } - - if (action.morph.modelId) - { - if (action.morph.creatureId) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u have unused ModelId %u with also set creature id %u.", i, j+1, action.morph.modelId, action.morph.creatureId); - action.morph.modelId = 0; - } - else if (!sCreatureDisplayInfoStore.LookupEntry(action.morph.modelId)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant ModelId %u.", i, j+1, action.morph.modelId); - action.morph.modelId = 0; - } - } - } - break; - case ACTION_T_SOUND: - if (!sSoundEntriesStore.LookupEntry(action.sound.soundId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant SoundID %u.", i, j+1, action.sound.soundId); - break; - case ACTION_T_EMOTE: - if (!sEmotesStore.LookupEntry(action.emote.emoteId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 (EmoteId: %u) are not valid.", i, j+1, action.emote.emoteId); - break; - case ACTION_T_RANDOM_SOUND: - if (!sSoundEntriesStore.LookupEntry(action.random_sound.soundId1)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 uses non-existant SoundID %u.", i, j+1, action.random_sound.soundId1); - if (action.random_sound.soundId2 >= 0 && !sSoundEntriesStore.LookupEntry(action.random_sound.soundId2)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param2 uses non-existant SoundID %u.", i, j+1, action.random_sound.soundId2); - if (action.random_sound.soundId3 >= 0 && !sSoundEntriesStore.LookupEntry(action.random_sound.soundId3)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param3 uses non-existant SoundID %u.", i, j+1, action.random_sound.soundId3); - break; - case ACTION_T_RANDOM_EMOTE: - if (!sEmotesStore.LookupEntry(action.random_emote.emoteId1)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 (EmoteId: %u) are not valid.", i, j+1, action.random_emote.emoteId1); - if (action.random_emote.emoteId2 >= 0 && !sEmotesStore.LookupEntry(action.random_emote.emoteId2)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param2 (EmoteId: %u) are not valid.", i, j+1, action.random_emote.emoteId2); - if (action.random_emote.emoteId3 >= 0 && !sEmotesStore.LookupEntry(action.random_emote.emoteId3)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param3 (EmoteId: %u) are not valid.", i, j+1, action.random_emote.emoteId3); - break; - case ACTION_T_CAST: - { - const SpellInfo* spell = sSpellMgr->GetSpellInfo(action.cast.spellId); - if (!spell) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent SpellID %u.", i, j+1, action.cast.spellId); - /* FIXME: temp.raw.param3 not have event tipes with recovery time in it.... - else - { - if (spell->RecoveryTime > 0 && temp.event_flags & EFLAG_REPEATABLE) - { - //output as debug for now, also because there's no general rule all spells have RecoveryTime - if (temp.event_param3 < spell->RecoveryTime) - TC_LOG_DEBUG("CreatureEventAI: Event %u Action %u uses SpellID %u but cooldown is longer(%u) than minumum defined in event param3(%u).", i, j+1, action.cast.spellId, spell->RecoveryTime, temp.event_param3); - } - } - */ - - //Cast is always triggered if target is forced to cast on self - if (action.cast.castFlags & CAST_FORCE_TARGET_SELF) - action.cast.castFlags |= CAST_TRIGGERED; - - if (action.cast.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - break; - } - case ACTION_T_SUMMON: - if (!sObjectMgr->GetCreatureTemplate(action.summon.creatureId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent creature entry %u.", i, j+1, action.summon.creatureId); - - if (action.summon.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - break; - case ACTION_T_THREAT_SINGLE_PCT: - if (std::abs(action.threat_single_pct.percent) > 100) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses invalid percent value %u.", i, j+1, action.threat_single_pct.percent); - if (action.threat_single_pct.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - break; - case ACTION_T_THREAT_ALL_PCT: - if (std::abs(action.threat_all_pct.percent) > 100) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses invalid percent value %u.", i, j+1, action.threat_all_pct.percent); - break; - case ACTION_T_QUEST_EVENT: - if (Quest const* qid = sObjectMgr->GetQuestTemplate(action.quest_event.questId)) - { - if (!qid->HasSpecialFlag(QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u. SpecialFlags for quest entry %u does not include |2, Action will not have any effect.", i, j+1, action.quest_event.questId); - } - else - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent Quest entry %u.", i, j+1, action.quest_event.questId); - - if (action.quest_event.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - - break; - case ACTION_T_SET_UNIT_FIELD: - if (action.set_unit_field.field < OBJECT_END || action.set_unit_field.field >= UNIT_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u param1 (UNIT_FIELD*). Index out of range for intended use.", i, j+1); - if (action.set_unit_field.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - break; - case ACTION_T_SET_UNIT_FLAG: - case ACTION_T_REMOVE_UNIT_FLAG: - if (action.unit_flag.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - break; - case ACTION_T_SET_PHASE: - if (action.set_phase.phase >= MAX_PHASE) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phase >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1); - break; - case ACTION_T_INC_PHASE: - if (action.set_inc_phase.step == 0) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u is incrementing phase by 0. Was this intended?", i, j+1); - else if (std::abs(action.set_inc_phase.step) > MAX_PHASE-1) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u is change phase by too large for any use %i.", i, j+1, action.set_inc_phase.step); - break; - case ACTION_T_QUEST_EVENT_ALL: - if (Quest const* qid = sObjectMgr->GetQuestTemplate(action.quest_event_all.questId)) - { - if (!qid->HasSpecialFlag(QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u. SpecialFlags for quest entry %u does not include |2, Action will not have any effect.", i, j+1, action.quest_event_all.questId); - } - else - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent Quest entry %u.", i, j+1, action.quest_event_all.questId); - break; - case ACTION_T_REMOVEAURASFROMSPELL: - if (!sSpellMgr->GetSpellInfo(action.remove_aura.spellId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existent SpellID %u.", i, j+1, action.remove_aura.spellId); - if (action.remove_aura.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - break; - case ACTION_T_RANDOM_PHASE: //PhaseId1, PhaseId2, PhaseId3 - if (action.random_phase.phase1 >= MAX_PHASE) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phase1 >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1); - if (action.random_phase.phase2 >= MAX_PHASE) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phase2 >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1); - if (action.random_phase.phase3 >= MAX_PHASE) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phase3 >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1); - break; - case ACTION_T_RANDOM_PHASE_RANGE: //PhaseMin, PhaseMax - if (action.random_phase_range.phaseMin >= MAX_PHASE) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phaseMin >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1); - if (action.random_phase_range.phaseMin >= MAX_PHASE) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phaseMax >= %u. Phase mask cannot be used past phase %u.", i, j+1, MAX_PHASE, MAX_PHASE-1); - if (action.random_phase_range.phaseMin >= action.random_phase_range.phaseMax) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set phaseMax <= phaseMin.", i, j+1); - std::swap(action.random_phase_range.phaseMin, action.random_phase_range.phaseMax); - // equal case processed at call - } - break; - case ACTION_T_KILLED_MONSTER: - if (!sObjectMgr->GetCreatureTemplate(action.killed_monster.creatureId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant creature entry %u.", i, j+1, action.killed_monster.creatureId); - if (action.killed_monster.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - break; - case ACTION_T_SET_INST_DATA: - if (!(temp.event_flags & EFLAG_DIFFICULTY_ALL)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u. Cannot set instance data without difficulty event flags.", i, j+1); - if (action.set_inst_data.value > 4/*SPECIAL*/) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u attempts to set instance data above encounter state 4. Custom case?", i, j+1); - break; - case ACTION_T_SET_INST_DATA64: - if (!(temp.event_flags & EFLAG_DIFFICULTY_ALL)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u. Cannot set instance data without difficulty event flags.", i, j+1); - if (action.set_inst_data64.target >= TARGET_T_END) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses incorrect Target type", i, j+1); - break; - case ACTION_T_UPDATE_TEMPLATE: - if (!sObjectMgr->GetCreatureTemplate(action.update_template.creatureId)) - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses non-existant creature entry %u.", i, j+1, action.update_template.creatureId); - break; - case ACTION_T_SET_SHEATH: - if (action.set_sheath.sheath >= MAX_SHEATH_STATE) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses wrong sheath state %u.", i, j+1, action.set_sheath.sheath); - action.set_sheath.sheath = SHEATH_STATE_UNARMED; - } - break; - case ACTION_T_SET_INVINCIBILITY_HP_LEVEL: - if (action.invincibility_hp_level.is_percent) - { - if (action.invincibility_hp_level.hp_level > 100) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses wrong percent value %u.", i, j+1, action.invincibility_hp_level.hp_level); - action.invincibility_hp_level.hp_level = 100; - } - } - break; - case ACTION_T_MOUNT_TO_ENTRY_OR_MODEL: - if (action.mount.creatureId != 0 || action.mount.modelId != 0) - { - if (action.mount.creatureId && !sObjectMgr->GetCreatureTemplate(action.mount.creatureId)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses nonexistent Creature entry %u.", i, j+1, action.mount.creatureId); - action.morph.creatureId = 0; - } - - if (action.mount.modelId) - { - if (action.mount.creatureId) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u have unused ModelId %u with also set creature id %u.", i, j+1, action.mount.modelId, action.mount.creatureId); - action.mount.modelId = 0; - } - else if (!sCreatureDisplayInfoStore.LookupEntry(action.mount.modelId)) - { - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u uses nonexistent ModelId %u.", i, j+1, action.mount.modelId); - action.mount.modelId = 0; - } - } - } - break; - case ACTION_T_EVADE: //No Params - case ACTION_T_FLEE_FOR_ASSIST: //No Params - case ACTION_T_DIE: //No Params - case ACTION_T_ZONE_COMBAT_PULSE: //No Params - case ACTION_T_FORCE_DESPAWN: //No Params - case ACTION_T_AUTO_ATTACK: //AllowAttackState (0 = stop attack, anything else means continue attacking) - case ACTION_T_COMBAT_MOVEMENT: //AllowCombatMovement (0 = stop combat based movement, anything else continue attacking) - case ACTION_T_RANGED_MOVEMENT: //Distance, Angle - case ACTION_T_CALL_FOR_HELP: //Distance - break; - - case ACTION_T_RANDOM_SAY: - case ACTION_T_RANDOM_YELL: - case ACTION_T_RANDOM_TEXTEMOTE: - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u currently unused ACTION type. Did you forget to update database?", i, j+1); - break; - - case ACTION_T_MOVE_RANDOM_POINT: - case ACTION_T_SET_STAND_STATE: - case ACTION_T_SET_PHASE_MASK: - case ACTION_T_SET_VISIBILITY: - case ACTION_T_SET_ACTIVE: - case ACTION_T_SET_AGGRESSIVE: - case ACTION_T_ATTACK_START_PULSE: - case ACTION_T_SUMMON_GO: - break; - - default: - TC_LOG_ERROR("sql.sql", "CreatureEventAI: Event %u Action %u have currently not checked at load action type (%u). Need check code update?", i, j+1, action.type); - break; - } - } - - //Add to list - m_CreatureEventAI_Event_Map[creature_id].push_back(temp); - ++count; - - } - while (result->NextRow()); - - TC_LOG_INFO("server.loading", ">> Loaded %u CreatureEventAI scripts in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); -} diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.h b/src/server/game/AI/EventAI/CreatureEventAIMgr.h deleted file mode 100644 index 577958b6f5b..00000000000 --- a/src/server/game/AI/EventAI/CreatureEventAIMgr.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2005-2009 MaNGOS - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -#ifndef TRINITY_CREATURE_EAI_MGR_H -#define TRINITY_CREATURE_EAI_MGR_H - -#include "Common.h" -#include "CreatureEventAI.h" - -class CreatureEventAIMgr -{ - friend class ACE_Singleton; - - private: - CreatureEventAIMgr(){ } - ~CreatureEventAIMgr(){ } - - public: - void LoadCreatureEventAI_Texts(); - void LoadCreatureEventAI_Scripts(); - - CreatureEventAI_Event_Map const& GetCreatureEventAIMap() const { return m_CreatureEventAI_Event_Map; } - CreatureEventAI_TextMap const& GetCreatureEventAITextMap() const { return m_CreatureEventAI_TextMap; } - - private: - CreatureEventAI_Event_Map m_CreatureEventAI_Event_Map; - CreatureEventAI_TextMap m_CreatureEventAI_TextMap; -}; - -#define sEventAIMgr ACE_Singleton::instance() -#endif diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index f455610666e..be3997243e4 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -130,7 +130,6 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/Addons ${CMAKE_CURRENT_SOURCE_DIR}/AI ${CMAKE_CURRENT_SOURCE_DIR}/AI/CoreAI - ${CMAKE_CURRENT_SOURCE_DIR}/AI/EventAI ${CMAKE_CURRENT_SOURCE_DIR}/AI/ScriptedAI ${CMAKE_CURRENT_SOURCE_DIR}/AI/SmartScripts ${CMAKE_CURRENT_SOURCE_DIR}/AuctionHouse diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 0869e44b9dc..d8dc19c5dcd 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -41,7 +41,6 @@ #include "ArenaTeamMgr.h" #include "GuildMgr.h" #include "TicketMgr.h" -#include "CreatureEventAIMgr.h" #include "SpellMgr.h" #include "GroupMgr.h" #include "Chat.h" @@ -1692,12 +1691,6 @@ void World::SetInitialWorldSettings() TC_LOG_INFO("server.loading", "Loading Scripts text locales..."); // must be after Load*Scripts calls sObjectMgr->LoadDbScriptStrings(); - TC_LOG_INFO("server.loading", "Loading CreatureEventAI Texts..."); - sEventAIMgr->LoadCreatureEventAI_Texts(); - - TC_LOG_INFO("server.loading", "Loading CreatureEventAI Scripts..."); - sEventAIMgr->LoadCreatureEventAI_Scripts(); - TC_LOG_INFO("server.loading", "Loading spell script names..."); sObjectMgr->LoadSpellScriptNames(); diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index 5be634d2060..20e4c4c7fdd 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -73,7 +73,6 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/server/game/Addons ${CMAKE_SOURCE_DIR}/src/server/game/AI ${CMAKE_SOURCE_DIR}/src/server/game/AI/CoreAI - ${CMAKE_SOURCE_DIR}/src/server/game/AI/EventAI ${CMAKE_SOURCE_DIR}/src/server/game/AI/ScriptedAI ${CMAKE_SOURCE_DIR}/src/server/game/AI/SmartScripts ${CMAKE_SOURCE_DIR}/src/server/game/AuctionHouse diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp index 039766177c1..59477c6684f 100644 --- a/src/server/scripts/Commands/cs_reload.cpp +++ b/src/server/scripts/Commands/cs_reload.cpp @@ -26,7 +26,6 @@ EndScriptData */ #include "AchievementMgr.h" #include "AuctionHouseMgr.h" #include "Chat.h" -#include "CreatureEventAIMgr.h" #include "CreatureTextMgr.h" #include "DisableMgr.h" #include "Language.h" @@ -53,7 +52,6 @@ public: { { "achievement", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_ACHIEVEMENT, true, &HandleReloadAllAchievementCommand, "", NULL }, { "area", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_AREA, true, &HandleReloadAllAreaCommand, "", NULL }, - { "eventai", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_EVENTAI, true, &HandleReloadAllEventAICommand, "", NULL }, { "gossips", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_GOSSIP, true, &HandleReloadAllGossipsCommand, "", NULL }, { "item", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_ITEM, true, &HandleReloadAllItemCommand, "", NULL }, { "locales", rbac::RBAC_PERM_COMMAND_RELOAD_ALL_LOCALES, true, &HandleReloadAllLocalesCommand, "", NULL }, @@ -80,8 +78,6 @@ public: { "conditions", rbac::RBAC_PERM_COMMAND_RELOAD_CONDITIONS, true, &HandleReloadConditions, "", NULL }, { "config", rbac::RBAC_PERM_COMMAND_RELOAD_CONFIG, true, &HandleReloadConfigCommand, "", NULL }, { "creature_text", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_TEXT, true, &HandleReloadCreatureText, "", NULL }, - { "creature_ai_scripts", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_AI_SCRIPTS, true, &HandleReloadEventAIScriptsCommand, "", NULL }, - { "creature_ai_texts", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_AI_TEXTS, true, &HandleReloadEventAITextsCommand, "", NULL }, { "creature_questender", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_QUESTENDER, true, &HandleReloadCreatureQuestEnderCommand, "", NULL }, { "creature_linked_respawn", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_LINKED_RESPAWN, true, &HandleReloadLinkedRespawnCommand, "", NULL }, { "creature_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_CREATURE_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesCreatureCommand, "", NULL }, @@ -182,7 +178,6 @@ public: HandleReloadAllAchievementCommand(handler, ""); HandleReloadAllAreaCommand(handler, ""); - HandleReloadAllEventAICommand(handler, ""); HandleReloadAllLootCommand(handler, ""); HandleReloadAllNpcCommand(handler, ""); HandleReloadAllQuestCommand(handler, ""); @@ -273,13 +268,6 @@ public: return true; } - static bool HandleReloadAllEventAICommand(ChatHandler* handler, const char* /*args*/) - { - HandleReloadEventAITextsCommand(handler, "a"); - HandleReloadEventAIScriptsCommand(handler, "a"); - return true; - } - static bool HandleReloadAllSpellCommand(ChatHandler* handler, const char* /*args*/) { HandleReloadSkillDiscoveryTemplateCommand(handler, "a"); @@ -1014,23 +1002,6 @@ public: return true; } - static bool HandleReloadEventAITextsCommand(ChatHandler* handler, const char* /*args*/) - { - - TC_LOG_INFO("misc", "Re-Loading Texts from `creature_ai_texts`..."); - sEventAIMgr->LoadCreatureEventAI_Texts(); - handler->SendGlobalGMSysMessage("DB table `creature_ai_texts` reloaded."); - return true; - } - - static bool HandleReloadEventAIScriptsCommand(ChatHandler* handler, const char* /*args*/) - { - TC_LOG_INFO("misc", "Re-Loading Scripts from `creature_ai_scripts`..."); - sEventAIMgr->LoadCreatureEventAI_Scripts(); - handler->SendGlobalGMSysMessage("DB table `creature_ai_scripts` reloaded."); - return true; - } - static bool HandleReloadSpellScriptsCommand(ChatHandler* handler, const char* args) { if (sScriptMgr->IsScriptScheduled()) diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index e48197aeb2c..99ea60ba76f 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -70,7 +70,6 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/server/game/Addons ${CMAKE_SOURCE_DIR}/src/server/game/AI ${CMAKE_SOURCE_DIR}/src/server/game/AI/CoreAI - ${CMAKE_SOURCE_DIR}/src/server/game/AI/EventAI ${CMAKE_SOURCE_DIR}/src/server/game/AI/ScriptedAI ${CMAKE_SOURCE_DIR}/src/server/game/AI/SmartScripts ${CMAKE_SOURCE_DIR}/src/server/game/AuctionHouse -- cgit v1.2.3 From 9015fee022a826e41e1fcac7146cd01fc7229450 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sat, 30 Nov 2013 21:11:03 -0330 Subject: DB/SAI: Move cpp script for npc_arete to SAI. --- sql/updates/world/2013_12_01_01_world_sai.sql | 7 +++ src/server/scripts/Northrend/zone_icecrown.cpp | 86 -------------------------- 2 files changed, 7 insertions(+), 86 deletions(-) create mode 100644 sql/updates/world/2013_12_01_01_world_sai.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_12_01_01_world_sai.sql b/sql/updates/world/2013_12_01_01_world_sai.sql new file mode 100644 index 00000000000..f59bae00809 --- /dev/null +++ b/sql/updates/world/2013_12_01_01_world_sai.sql @@ -0,0 +1,7 @@ +-- Lord-Commander Arete SAI +SET @ENTRY := 29344; +UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0 AND `id` IN (1,2); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,1,2,62,0,100,0,9812,0,0,0,15,12807,0,0,0,0,0,7,0,0,0,0,0,0,0,"Lord-Commander Arete - Gossip Option Select - Quest credit"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Lord-Commander Arete - Gossip Option Select - Close gossip"); diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp index b20efa1c5a5..5c65be982e0 100644 --- a/src/server/scripts/Northrend/zone_icecrown.cpp +++ b/src/server/scripts/Northrend/zone_icecrown.cpp @@ -24,91 +24,6 @@ #include "TemporarySummon.h" #include "CombatAI.h" -/*###### -## npc_arete -######*/ - -#define GOSSIP_ARETE_ITEM1 "Lord-Commander, I would hear your tale." -#define GOSSIP_ARETE_ITEM2 "" -#define GOSSIP_ARETE_ITEM3 "I thought that they now called themselves the Scarlet Onslaught?" -#define GOSSIP_ARETE_ITEM4 "Where did the grand admiral go?" -#define GOSSIP_ARETE_ITEM5 "That's fine. When do I start?" -#define GOSSIP_ARETE_ITEM6 "Let's finish this!" -#define GOSSIP_ARETE_ITEM7 "That's quite a tale, Lord-Commander." - -enum Arete -{ - GOSSIP_TEXTID_ARETE1 = 13525, - GOSSIP_TEXTID_ARETE2 = 13526, - GOSSIP_TEXTID_ARETE3 = 13527, - GOSSIP_TEXTID_ARETE4 = 13528, - GOSSIP_TEXTID_ARETE5 = 13529, - GOSSIP_TEXTID_ARETE6 = 13530, - GOSSIP_TEXTID_ARETE7 = 13531, - - QUEST_THE_STORY_THUS_FAR = 12807 -}; - -class npc_arete : public CreatureScript -{ -public: - npc_arete() : CreatureScript("npc_arete") { } - - bool OnGossipHello(Player* player, Creature* creature) OVERRIDE - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (player->GetQuestStatus(QUEST_THE_STORY_THUS_FAR) == QUEST_STATUS_INCOMPLETE) - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE1, creature->GetGUID()); - return true; - } - - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - return true; - } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE - { - player->PlayerTalkClass->ClearMenus(); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF+1: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE2, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+2: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE3, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+3: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE4, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+4: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE5, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+5: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE6, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+6: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7); - player->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE7, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+7: - player->CLOSE_GOSSIP_MENU(); - player->AreaExploredOrEventHappens(QUEST_THE_STORY_THUS_FAR); - break; - } - - return true; - } -}; - /*###### ## npc_squire_david ######*/ @@ -1149,7 +1064,6 @@ class npc_morbidus : public CreatureScript void AddSC_icecrown() { - new npc_arete; new npc_squire_david; new npc_argent_valiant; new npc_guardian_pavilion; -- cgit v1.2.3 From b375106ed11306a2a87fb7170c55d76309390169 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Sun, 1 Dec 2013 01:48:31 +0100 Subject: Scripts: prevent some runtime errors --- .../BlackrockSpire/instance_blackrock_spire.cpp | 37 ++-------------------- .../BlackwingLair/boss_nefarian.cpp | 1 - .../instance_halls_of_reflection.cpp | 11 ++++--- .../PitOfSaron/boss_forgemaster_garfrost.cpp | 4 +-- .../PitOfSaron/instance_pit_of_saron.cpp | 2 +- 5 files changed, 12 insertions(+), 43 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index 9b250cc169a..d7624cd600f 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -270,7 +270,7 @@ public: return true; } - void ProcessEvent(WorldObject* /*gameObject*/, uint32 eventId) OVERRIDE + void ProcessEvent(WorldObject* /*obj*/, uint32 eventId) OVERRIDE { switch (eventId) { @@ -313,102 +313,71 @@ public: { case DATA_HIGHLORD_OMOKK: return HighlordOmokk; - break; case DATA_SHADOW_HUNTER_VOSHGAJIN: return ShadowHunterVoshgajin; - break; case DATA_WARMASTER_VOONE: return WarMasterVoone; - break; case DATA_MOTHER_SMOLDERWEB: return MotherSmolderweb; - break; case DATA_UROK_DOOMHOWL: return UrokDoomhowl; - break; case DATA_QUARTERMASTER_ZIGRIS: return QuartermasterZigris; - break; case DATA_GIZRUL_THE_SLAVENER: return GizrultheSlavener; - break; case DATA_HALYCON: return Halycon; - break; case DATA_OVERLORD_WYRMTHALAK: return OverlordWyrmthalak; - break; case DATA_PYROGAURD_EMBERSEER: return PyroguardEmberseer; - break; case DATA_WARCHIEF_REND_BLACKHAND: return WarchiefRendBlackhand; - break; case DATA_GYTH: return Gyth; - break; case DATA_THE_BEAST: return TheBeast; - break; case DATA_GENERAL_DRAKKISATH: return GeneralDrakkisath; - break; case GO_EMBERSEER_IN: return go_emberseerin; - break; case GO_DOORS: return go_doors; - break; case GO_EMBERSEER_OUT: return go_emberseerout; - break; case GO_HALL_RUNE_1: return go_roomrunes[0]; - break; case GO_HALL_RUNE_2: return go_roomrunes[1]; - break; case GO_HALL_RUNE_3: return go_roomrunes[2]; - break; case GO_HALL_RUNE_4: return go_roomrunes[3]; - break; case GO_HALL_RUNE_5: return go_roomrunes[4]; - break; case GO_HALL_RUNE_6: return go_roomrunes[5]; - break; case GO_HALL_RUNE_7: return go_roomrunes[6]; - break; case GO_EMBERSEER_RUNE_1: return go_emberseerrunes[0]; - break; case GO_EMBERSEER_RUNE_2: return go_emberseerrunes[1]; - break; case GO_EMBERSEER_RUNE_3: return go_emberseerrunes[2]; - break; case GO_EMBERSEER_RUNE_4: return go_emberseerrunes[3]; - break; case GO_EMBERSEER_RUNE_5: return go_emberseerrunes[4]; - break; case GO_EMBERSEER_RUNE_6: return go_emberseerrunes[5]; - break; case GO_EMBERSEER_RUNE_7: return go_emberseerrunes[6]; - break; case GO_PORTCULLIS_ACTIVE: return go_portcullis_active; - break; case GO_PORTCULLIS_TOBOSSROOMS: return go_portcullis_tobossrooms; + default: break; } return 0; @@ -577,8 +546,6 @@ public: protected: EventMap Events; - uint32 encounter[EncounterCount]; - std::string m_strInstData; uint64 HighlordOmokk; uint64 ShadowHunterVoshgajin; uint64 WarMasterVoone; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index f3a788918f2..4e0c79509fc 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -264,7 +264,6 @@ public: if (Unit* player = me->SelectNearestPlayer(60.0f)) { me->SetInFront(player); - me->SendMovementFlagUpdate(); Talk(SAY_SUCCESS); if (GameObject* portcullis1 = me->FindNearestGameObject(GO_PORTCULLIS_ACTIVE, 65.0f)) portcullis1->SetGoState(GO_STATE_ACTIVE); diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp index 0599596fc0a..c970f8f1921 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp @@ -110,10 +110,13 @@ public: void OnCreatureCreate(Creature* creature) OVERRIDE { - Map::PlayerList const& players = instance->GetPlayers(); - if (!players.isEmpty()) - if (Player* player = players.begin()->GetSource()) - _teamInInstance = player->GetTeam(); + if (!_teamInInstance) + { + Map::PlayerList const& players = instance->GetPlayers(); + if (!players.isEmpty()) + if (Player* player = players.begin()->GetSource()) + _teamInInstance = player->GetTeam(); + } switch (creature->GetEntry()) { diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index 20b7d39815f..4a9a41f6f8e 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -187,7 +187,7 @@ class boss_garfrost : public CreatureScript switch (eventId) { case EVENT_THROW_SARONITE: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true)) { Talk(SAY_THROW_SARONITE, target->GetGUID()); DoCast(target, SPELL_THROW_SARONITE); @@ -199,7 +199,7 @@ class boss_garfrost : public CreatureScript events.ScheduleEvent(EVENT_CHILLING_WAVE, 40000, 0, PHASE_TWO); break; case EVENT_DEEP_FREEZE: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true)) { Talk(SAY_CAST_DEEP_FREEZE, target->GetGUID()); DoCast(target, SPELL_DEEP_FREEZE); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp index 7aa8b123f98..d61fc69a0ae 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp @@ -63,7 +63,7 @@ class instance_pit_of_saron : public InstanceMapScript { if (!_teamInInstance) { - Map::PlayerList const &players = instance->GetPlayers(); + Map::PlayerList const& players = instance->GetPlayers(); if (!players.isEmpty()) if (Player* player = players.begin()->GetSource()) _teamInInstance = player->GetTeam(); -- cgit v1.2.3 From 04cc51a6cf11996b3443fbbac261072b10eb0cd4 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sun, 1 Dec 2013 16:19:30 +0100 Subject: Core/Misc: Fix some static analysis issues Fix some static analysis issues, mostly false positive about fields not initialized in the constructor. It's good practice anyway to always initialize them. --- src/server/collision/Models/WorldModel.h | 6 +++--- src/server/game/Chat/ChatLink.h | 10 ++++++++-- src/server/game/Combat/UnitEvents.h | 8 ++++---- src/server/game/Entities/GameObject/GameObject.cpp | 1 + src/server/game/Entities/Object/Object.h | 5 ++++- src/server/game/Entities/Player/Player.h | 2 +- src/server/game/Entities/Transport/Transport.cpp | 3 ++- src/server/game/Globals/ObjectMgr.cpp | 3 ++- src/server/game/Globals/ObjectMgr.h | 2 +- src/server/game/Maps/TransportMgr.h | 4 ++-- src/server/game/Movement/PathGenerator.cpp | 2 ++ .../BlackrockSpire/instance_blackrock_spire.cpp | 2 ++ .../Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp | 1 + src/server/shared/Cryptography/HMACSHA1.cpp | 1 + src/server/shared/DataStores/DBCFileLoader.cpp | 2 +- src/server/worldserver/Master.cpp | 7 ++++++- 16 files changed, 41 insertions(+), 18 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/collision/Models/WorldModel.h b/src/server/collision/Models/WorldModel.h index 23fb1cdb7b6..309b6d8051c 100644 --- a/src/server/collision/Models/WorldModel.h +++ b/src/server/collision/Models/WorldModel.h @@ -36,7 +36,7 @@ namespace VMAP class MeshTriangle { public: - MeshTriangle(){ } + MeshTriangle() : idx0(0), idx1(0), idx2(0) { } MeshTriangle(uint32 na, uint32 nb, uint32 nc): idx0(na), idx1(nb), idx2(nc) { } uint32 idx0; @@ -59,7 +59,7 @@ namespace VMAP bool writeToFile(FILE* wf); static bool readFromFile(FILE* rf, WmoLiquid* &liquid); private: - WmoLiquid(): iHeight(0), iFlags(0) { } + WmoLiquid(): iTilesX(0), iTilesY(0), iType(0), iHeight(0), iFlags(0) { } uint32 iTilesX; //!< number of tiles in x direction, each uint32 iTilesY; G3D::Vector3 iCorner; //!< the lower corner @@ -74,7 +74,7 @@ namespace VMAP class GroupModel { public: - GroupModel(): iLiquid(0) { } + GroupModel(): iMogpFlags(0), iGroupWMOID(0), iLiquid(0) { } GroupModel(const GroupModel &other); GroupModel(uint32 mogpFlags, uint32 groupWMOID, const G3D::AABox &bound): iBound(bound), iMogpFlags(mogpFlags), iGroupWMOID(groupWMOID), iLiquid(0) { } diff --git a/src/server/game/Chat/ChatLink.h b/src/server/game/Chat/ChatLink.h index 57785fbe1a0..c77fcf7ad76 100644 --- a/src/server/game/Chat/ChatLink.h +++ b/src/server/game/Chat/ChatLink.h @@ -56,7 +56,10 @@ protected: class ItemChatLink : public ChatLink { public: - ItemChatLink() : ChatLink(), _item(NULL), _suffix(NULL), _property(NULL) { } + ItemChatLink() : ChatLink(), _item(NULL), _suffix(NULL), _property(NULL) + { + memset(_data, 0, sizeof(_data)); + } virtual bool Initialize(std::istringstream& iss); virtual bool ValidateName(char* buffer, const char* context); @@ -98,7 +101,10 @@ protected: class AchievementChatLink : public ChatLink { public: - AchievementChatLink() : ChatLink(), _guid(0), _achievement(NULL) { } + AchievementChatLink() : ChatLink(), _guid(0), _achievement(NULL) + { + memset(_data, 0, sizeof(_data)); + } virtual bool Initialize(std::istringstream& iss); virtual bool ValidateName(char* buffer, const char* context); diff --git a/src/server/game/Combat/UnitEvents.h b/src/server/game/Combat/UnitEvents.h index 0e568d139a8..8bb7d95a384 100644 --- a/src/server/game/Combat/UnitEvents.h +++ b/src/server/game/Combat/UnitEvents.h @@ -93,13 +93,13 @@ class ThreatRefStatusChangeEvent : public UnitBaseEvent }; ThreatManager* iThreatManager; public: - ThreatRefStatusChangeEvent(uint32 pType) : UnitBaseEvent(pType) { iHostileReference = NULL; } + ThreatRefStatusChangeEvent(uint32 pType) : UnitBaseEvent(pType), iThreatManager(NULL) { iHostileReference = NULL; } - ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference) : UnitBaseEvent(pType) { iHostileReference = pHostileReference; } + ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference) : UnitBaseEvent(pType), iThreatManager(NULL) { iHostileReference = pHostileReference; } - ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, float pValue) : UnitBaseEvent(pType) { iHostileReference = pHostileReference; iFValue = pValue; } + ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, float pValue) : UnitBaseEvent(pType), iThreatManager(NULL) { iHostileReference = pHostileReference; iFValue = pValue; } - ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, bool pValue) : UnitBaseEvent(pType) { iHostileReference = pHostileReference; iBValue = pValue; } + ThreatRefStatusChangeEvent(uint32 pType, HostileReference* pHostileReference, bool pValue) : UnitBaseEvent(pType), iThreatManager(NULL) { iHostileReference = pHostileReference; iBValue = pValue; } int32 getIValue() const { return iIValue; } diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 64e9d4a1c26..3c44c8e6035 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -64,6 +64,7 @@ GameObject::GameObject() : WorldObject(false), MapObject(), lootingGroupLowGUID = 0; ResetLootMode(); // restore default loot mode + m_stationaryPosition.Relocate(0.0f, 0.0f, 0.0f, 0.0f); } GameObject::~GameObject() diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index f03b95d0cc7..aeeb1d691f0 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -536,7 +536,10 @@ class MapObject friend class ObjectGridLoader; //grid loader for loading creatures protected: - MapObject() : _moveState(MAP_OBJECT_CELL_MOVE_NONE) { } + MapObject() : _moveState(MAP_OBJECT_CELL_MOVE_NONE) + { + _newPosition.Relocate(0.0f, 0.0f, 0.0f, 0.0f); + } private: Cell _currentCell; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 35a3f5f10d4..6aa19b5395a 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -251,7 +251,7 @@ typedef std::list PlayerCreateInfoActions; struct PlayerInfo { // existence checked by displayId != 0 - PlayerInfo() : displayId_m(0), displayId_f(0), levelInfo(NULL) { } + PlayerInfo() : mapId(0), areaId(0), positionX(0.0f), positionY(0.0f), positionZ(0.0f), orientation(0.0f), displayId_m(0), displayId_f(0), levelInfo(NULL) { } uint32 mapId; uint32 areaId; diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index ddb0775dc01..386a36ae1f0 100644 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -33,7 +33,8 @@ #include "CellImpl.h" Transport::Transport() : GameObject(), - _transportInfo(NULL), _isMoving(true), _pendingStop(false) + _transportInfo(NULL), _isMoving(true), _pendingStop(false), + _triggeredArrivalEvent(false), _triggeredDepartureEvent(false) { m_updateFlag = UPDATEFLAG_TRANSPORT | UPDATEFLAG_LOWGUID | UPDATEFLAG_STATIONARY_POSITION | UPDATEFLAG_ROTATION; } diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 8ebcc17df16..3672d4555fb 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -234,7 +234,8 @@ ObjectMgr::ObjectMgr(): _hiGoGuid(1), _hiDoGuid(1), _hiCorpseGuid(1), - _hiMoTransGuid(1) + _hiMoTransGuid(1), + DBCLocaleIndex(LOCALE_enUS) { for (uint8 i = 0; i < MAX_CLASSES; ++i) { diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index fa0f0e76e46..bf835ed6c4e 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -457,7 +457,7 @@ typedef std::pair > TransportInstanceMap; struct KeyFrame { - explicit KeyFrame(TaxiPathNodeEntry const& _node) : Node(&_node), + explicit KeyFrame(TaxiPathNodeEntry const& _node) : Index(0), Node(&_node), DistSinceStop(-1.0f), DistUntilStop(-1.0f), DistFromPrev(-1.0f), TimeFrom(0.0f), TimeTo(0.0f), Teleport(false), ArriveTime(0), DepartureTime(0), Spline(NULL), NextDistFromPrev(0.0f), NextArriveTime(0) { @@ -66,7 +66,7 @@ struct KeyFrame struct TransportTemplate { - TransportTemplate() : pathTime(0), accelTime(0.0f), accelDist(0.0f) { } + TransportTemplate() : inInstance(false), pathTime(0), accelTime(0.0f), accelDist(0.0f), entry(0) { } ~TransportTemplate(); std::set mapsUsed; diff --git a/src/server/game/Movement/PathGenerator.cpp b/src/server/game/Movement/PathGenerator.cpp index 85a08e49fd3..91ad6d2b676 100644 --- a/src/server/game/Movement/PathGenerator.cpp +++ b/src/server/game/Movement/PathGenerator.cpp @@ -33,6 +33,8 @@ PathGenerator::PathGenerator(const Unit* owner) : _endPosition(G3D::Vector3::zero()), _sourceUnit(owner), _navMesh(NULL), _navMeshQuery(NULL) { + memset(_pathPolyRefs, 0, sizeof(_pathPolyRefs)); + TC_LOG_DEBUG("maps", "++ PathGenerator::PathGenerator for %u \n", _sourceUnit->GetGUIDLow()); uint32 mapId = _sourceUnit->GetMapId(); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index d7624cd600f..a1bbad7ee1c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -73,6 +73,8 @@ public: go_blackrockaltar = 0; go_portcullis_active = 0; go_portcullis_tobossrooms = 0; + memset(go_roomrunes, 0, sizeof(go_roomrunes)); + memset(go_emberseerrunes, 0, sizeof(go_emberseerrunes)); } void OnCreatureCreate(Creature* creature) OVERRIDE diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp index 43d75fad876..3653aaf5770 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp @@ -186,6 +186,7 @@ hyjal_trashAI::hyjal_trashAI(Creature* creature) : npc_escortAI(creature) faction = 0; useFlyPath = false; damageTaken = 0; + memset(DummyTarget, 0, sizeof(DummyTarget)); Reset(); } diff --git a/src/server/shared/Cryptography/HMACSHA1.cpp b/src/server/shared/Cryptography/HMACSHA1.cpp index c6c49f14a8e..2585fa64ea1 100644 --- a/src/server/shared/Cryptography/HMACSHA1.cpp +++ b/src/server/shared/Cryptography/HMACSHA1.cpp @@ -24,6 +24,7 @@ HmacHash::HmacHash(uint32 len, uint8 *seed) { HMAC_CTX_init(&m_ctx); HMAC_Init_ex(&m_ctx, seed, len, EVP_sha1(), NULL); + memset(m_digest, 0, sizeof(m_digest)); } HmacHash::~HmacHash() diff --git a/src/server/shared/DataStores/DBCFileLoader.cpp b/src/server/shared/DataStores/DBCFileLoader.cpp index 0aa94f1d14a..3c02d5f533d 100644 --- a/src/server/shared/DataStores/DBCFileLoader.cpp +++ b/src/server/shared/DataStores/DBCFileLoader.cpp @@ -23,7 +23,7 @@ #include "DBCFileLoader.h" #include "Errors.h" -DBCFileLoader::DBCFileLoader() : fieldsOffset(NULL), data(NULL), stringTable(NULL) { } +DBCFileLoader::DBCFileLoader() : recordSize(0), recordCount(0), fieldCount(0), stringSize(0), fieldsOffset(NULL), data(NULL), stringTable(NULL) { } bool DBCFileLoader::Load(const char* filename, const char* fmt) { diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp index ffeeafc8951..3fcd4c28f0f 100644 --- a/src/server/worldserver/Master.cpp +++ b/src/server/worldserver/Master.cpp @@ -86,7 +86,12 @@ private: uint32 _lastChange; uint32 _delaytime; public: - FreezeDetectorRunnable() { _delaytime = 0; } + FreezeDetectorRunnable() + { + _loops = 0; + _lastChange = 0; + _delaytime = 0; + } void SetDelayTime(uint32 t) { _delaytime = t; } -- cgit v1.2.3 From 6a6b3104a31900b83e1cc025adde239086812844 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sun, 1 Dec 2013 12:30:52 -0330 Subject: Scripting/Sholazar Basin: Move spells for quest Dreadsaber Mastery: Stalking the Prey (12550) to cpp. --- sql/updates/world/2013_12_01_05_world_misc.sql | 10 +++++ .../scripts/Northrend/zone_sholazar_basin.cpp | 52 ++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 sql/updates/world/2013_12_01_05_world_misc.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_12_01_05_world_misc.sql b/sql/updates/world/2013_12_01_05_world_misc.sql new file mode 100644 index 00000000000..7c0fbe48985 --- /dev/null +++ b/sql/updates/world/2013_12_01_05_world_misc.sql @@ -0,0 +1,10 @@ +DELETE FROM `spell_scripts` WHERE `id` IN (52160,52163); +DELETE FROM `db_script_string` WHERE `entry` IN (2000000107,2000000108); +DELETE FROM `spell_script_names` WHERE `spell_id` IN (52160,52163); +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(52160, 'spell_shango_tracks'), +(52163, 'spell_shango_tracks'); +DELETE FROM `trinity_string` WHERE `entry` IN (28634,28635); +INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES +(28634, 'These tracks must belong to Shango.'), +(28635, 'These aren''t Shango''s tracks.'); diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index 77b85037a01..a4fbe29d1b2 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -1082,6 +1082,57 @@ public: } }; +/*###### +## Quest Dreadsaber Mastery: Stalking the Prey (12550) +######*/ + +enum ShangoTracks +{ + SPELL_CORRECT_TRACKS = 52160, + SPELL_INCORRECT_TRACKS = 52163, + SAY_CORRECT_TRACKS = 28634, + SAY_INCORRECT_TRACKS = 28635 +}; + +class spell_shango_tracks : public SpellScriptLoader +{ +public: + spell_shango_tracks() : SpellScriptLoader("spell_shango_tracks") { } + + class spell_shango_tracks_SpellScript : public SpellScript + { + PrepareSpellScript(spell_shango_tracks_SpellScript); + + void HandleScript(SpellEffIndex effIndex) + { + if (Player* player = GetHitUnit()->ToPlayer()) + { + switch (GetSpellInfo()->Id) + { + case SPELL_CORRECT_TRACKS: + player->Say(sObjectMgr->GetTrinityStringForDBCLocale(SAY_CORRECT_TRACKS), LANG_UNIVERSAL); + break; + case SPELL_INCORRECT_TRACKS: + player->Say(sObjectMgr->GetTrinityStringForDBCLocale(SAY_INCORRECT_TRACKS), LANG_UNIVERSAL); + break; + default: + break; + } + } + } + + void Register() OVERRIDE + { + OnEffectHitTarget += SpellEffectFn(spell_shango_tracks_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_shango_tracks_SpellScript(); + } +}; + void AddSC_sholazar_basin() { new npc_injured_rainspeaker_oracle(); @@ -1095,4 +1146,5 @@ void AddSC_sholazar_basin() new spell_q12589_shoot_rjr(); new npc_haiphoon(); new npc_vics_flying_machine(); + new spell_shango_tracks(); } -- cgit v1.2.3 From 422fd5fc4816be5c4ea887b3924e12f768d057fc Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sun, 1 Dec 2013 13:38:28 -0330 Subject: Scripting/Sholazar Basin: Fix spell_shango_tracks script. --- src/server/scripts/Northrend/zone_sholazar_basin.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index a4fbe29d1b2..659706d523e 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -1110,10 +1110,10 @@ public: switch (GetSpellInfo()->Id) { case SPELL_CORRECT_TRACKS: - player->Say(sObjectMgr->GetTrinityStringForDBCLocale(SAY_CORRECT_TRACKS), LANG_UNIVERSAL); + player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_CORRECT_TRACKS), LANG_UNIVERSAL, player->GetGUID()); break; case SPELL_INCORRECT_TRACKS: - player->Say(sObjectMgr->GetTrinityStringForDBCLocale(SAY_INCORRECT_TRACKS), LANG_UNIVERSAL); + player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_INCORRECT_TRACKS), LANG_UNIVERSAL, player->GetGUID()); break; default: break; -- cgit v1.2.3 From 8920994045d2774e3b76c003adb01e35f779392a Mon Sep 17 00:00:00 2001 From: w1sht0l1v3 Date: Mon, 2 Dec 2013 20:56:22 +0200 Subject: Scipts/HallsOfReflection: Fix reset during mob waves. closes #10995 --- .../HallsOfReflection/halls_of_reflection.cpp | 43 +++++++++++++--------- 1 file changed, 26 insertions(+), 17 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index 6b746222a72..06355e25207 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -1121,6 +1121,7 @@ enum TrashSpells SPELL_FROSTBOLT = 72166, SPELL_CHAINS_OF_ICE = 72121, SPELL_HALLUCINATION = 72342, + AURA_HALLUCINATION = 72343, // Phantom Hallucination (same as phantom mage + HALLUCINATION_2 when dies) SPELL_HALLUCINATION_2 = 72344, @@ -1180,10 +1181,7 @@ enum TrashEvents struct npc_gauntlet_trash : public ScriptedAI { - npc_gauntlet_trash(Creature* creature) : ScriptedAI(creature), - _instance(creature->GetInstanceScript()) - { - } + npc_gauntlet_trash(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } void Reset() OVERRIDE { @@ -1226,9 +1224,7 @@ public: struct npc_ghostly_priestAI : public npc_gauntlet_trash { - npc_ghostly_priestAI(Creature* creature) : npc_gauntlet_trash(creature) - { - } + npc_ghostly_priestAI(Creature* creature) : npc_gauntlet_trash(creature) { } void EnterCombat(Unit* /*who*/) OVERRIDE { @@ -1297,8 +1293,12 @@ public: struct npc_phantom_mageAI : public npc_gauntlet_trash { - npc_phantom_mageAI(Creature* creature) : npc_gauntlet_trash(creature) + npc_phantom_mageAI(Creature* creature) : npc_gauntlet_trash(creature) { } + + void EnterEvadeMode() OVERRIDE { + if (!me->HasAura(AURA_HALLUCINATION)) + npc_gauntlet_trash::EnterEvadeMode(); } void EnterCombat(Unit* /*who*/) OVERRIDE @@ -1342,6 +1342,8 @@ public: _events.ScheduleEvent(EVENT_CHAINS_OF_ICE, 15000); break; case EVENT_HALLUCINATION: + // removing any dots on mage or else the invisibility spell will break duration + me->RemoveAllAuras(); DoCast(SPELL_HALLUCINATION); break; } @@ -1365,6 +1367,19 @@ public: { npc_phantom_hallucinationAI(Creature* creature) : npc_phantom_mage::npc_phantom_mageAI(creature) { } + void Reset() OVERRIDE + { + if (Unit* unit = me->SelectNearestTarget()) + AttackStart(unit); + DoZoneInCombat(); + } + + void EnterEvadeMode() OVERRIDE + { + if (!me->GetOwner()->HasAura(AURA_HALLUCINATION)) + npc_phantom_mage::npc_phantom_mageAI::EnterEvadeMode(); + } + void JustDied(Unit* /*killer*/) OVERRIDE { DoCast(SPELL_HALLUCINATION_2); @@ -1384,9 +1399,7 @@ public: struct npc_shadowy_mercenaryAI : public npc_gauntlet_trash { - npc_shadowy_mercenaryAI(Creature* creature) : npc_gauntlet_trash(creature) - { - } + npc_shadowy_mercenaryAI(Creature* creature) : npc_gauntlet_trash(creature) { } void EnterCombat(Unit* /*who*/) OVERRIDE { @@ -1444,9 +1457,7 @@ public: struct npc_spectral_footmanAI : public npc_gauntlet_trash { - npc_spectral_footmanAI(Creature* creature) : npc_gauntlet_trash(creature) - { - } + npc_spectral_footmanAI(Creature* creature) : npc_gauntlet_trash(creature) { } void EnterCombat(Unit* /*who*/) OVERRIDE { @@ -1498,9 +1509,7 @@ public: struct npc_tortured_riflemanAI : public npc_gauntlet_trash { - npc_tortured_riflemanAI(Creature* creature) : npc_gauntlet_trash(creature) - { - } + npc_tortured_riflemanAI(Creature* creature) : npc_gauntlet_trash(creature) { } void EnterCombat(Unit* /*who*/) OVERRIDE { -- cgit v1.2.3 From 5bbded18b5a344c8990c1f8abbd4903359f278e7 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Tue, 3 Dec 2013 21:46:00 +0100 Subject: Core/Misc: Fix some static analysis issues Fix some static analysis issues about missing NULL checks. Pass safe Creature pointer instead of summoning a Creature, passing the GUID and retrieve the same Creature from GUID. --- src/server/game/Handlers/PetHandler.cpp | 6 ++++++ src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp | 3 ++- src/server/scripts/Northrend/zone_zuldrak.cpp | 12 +++++------- 3 files changed, 13 insertions(+), 8 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index ad8cacbd3c0..d57308d359a 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -718,6 +718,12 @@ void WorldSession::HandlePetSpellAutocastOpcode(WorldPacket& recvPacket) } SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellid); + if (!spellInfo) + { + TC_LOG_ERROR("network", "WORLD: unknown PET spell id %u", spellid); + return; + } + // do not add not learned spells/ passive spells if (!pet->HasSpell(spellid) || !spellInfo->IsAutocastable()) return; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index 8efcbf29d30..91127f2db0d 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -614,7 +614,8 @@ public: } return 50000; case 15: - arca->DealDamage(arca, arca->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); + if (arca) + arca->DealDamage(arca, arca->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); return 5000; default : return 9999999; } diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 29d7c017748..00adfa59d8d 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -57,16 +57,15 @@ public: float x, y, z; me->GetClosePoint(x, y, z, me->GetObjectSize() / 3, 0.1f); - if (Unit* summon = me->SummonCreature(NPC_RAGECLAW, x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000)) + if (Creature* summon = me->SummonCreature(NPC_RAGECLAW, x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000)) { _rageclawGUID = summon->GetGUID(); - LockRageclaw(); + LockRageclaw(summon); } } - void LockRageclaw() + void LockRageclaw(Creature* rageclaw) { - Unit* rageclaw = Unit::GetCreature(*me, _rageclawGUID); // pointer check not needed me->SetInFront(rageclaw); rageclaw->SetInFront(me); @@ -75,12 +74,11 @@ public: DoCast(rageclaw, SPELL_RIGHT_CHAIN, true); } - void UnlockRageclaw(Unit* who) + void UnlockRageclaw(Unit* who, Creature* rageclaw) { if (!who) return; - Creature* rageclaw = Unit::GetCreature(*me, _rageclawGUID); // pointer check not needed DoCast(rageclaw, SPELL_FREE_RAGECLAW, true); @@ -95,7 +93,7 @@ public: { if (Creature* rageclaw = Unit::GetCreature(*me, _rageclawGUID)) { - UnlockRageclaw(caster); + UnlockRageclaw(caster, rageclaw); caster->ToPlayer()->KilledMonster(rageclaw->GetCreatureTemplate(), _rageclawGUID); me->DespawnOrUnsummon(); } -- cgit v1.2.3 From 81c73c2d53dd8ff1f908e9e1c1ec0573441d2fc2 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Tue, 3 Dec 2013 21:05:54 -0330 Subject: Scripting/Sholazar Basin: Fix warning --- src/server/scripts/Northrend/zone_sholazar_basin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index 659706d523e..a0b6524bd89 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -1103,7 +1103,7 @@ public: { PrepareSpellScript(spell_shango_tracks_SpellScript); - void HandleScript(SpellEffIndex effIndex) + void HandleScript(SpellEffIndex /*effIndex*/) { if (Player* player = GetHitUnit()->ToPlayer()) { -- cgit v1.2.3 From 5da508c0a0e2e3e2642d7d586edf72489e974b75 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Wed, 4 Dec 2013 14:43:35 -0330 Subject: Scripting/Blade's Edge: Quest 10594 "Gauging the Resonant Frequency" Closes #6214 --- sql/updates/world/2013_12_04_01_world_misc.sql | 24 +++++ src/server/game/Spells/SpellMgr.cpp | 4 + .../scripts/Outland/zone_blades_edge_mountains.cpp | 101 ++++++++++++++++++++- 3 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 sql/updates/world/2013_12_04_01_world_misc.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_12_04_01_world_misc.sql b/sql/updates/world/2013_12_04_01_world_misc.sql new file mode 100644 index 00000000000..93ebd81665d --- /dev/null +++ b/sql/updates/world/2013_12_04_01_world_misc.sql @@ -0,0 +1,24 @@ +Quest 10594 "Gauging the Resonant Frequency" + +-- Add creature script +UPDATE creature_template SET ScriptName = 'npc_oscillating_frequency_scanner_master_bunny' WHERE entry=21760; + +-- Update triggers +UPDATE `creature_template` SET `flags_extra`=`flags_extra`|128 WHERE `entry` IN (21759,21760); + +-- Add spell script +DELETE FROM `spell_script_names` WHERE `spell_id`=37408; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(37408, 'spell_oscillating_field'); + +-- Oscillating Frequency Scanner Top Bunny (Caster) SAI +SET @ENTRY := 21759; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,11,37418,0,0,0,0,0,1,0,0,0,0,0,0,0,"Oscillating Frequency Scanner Top Bunny (Caster) - On Spawn - Cast Top Bunny Beam Test Visual"); + +-- Condition for spell Top Bunny Beam Test Visual +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=37697; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 37697, 0, 0, 31, 0, 3, 21759, 0, 0, 0, 0, '', 'Top Bunny Beam Test Visual targets Oscillating Frequency Scanner Top Bunny'); diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 994050b2374..0a815b6c28e 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -3167,6 +3167,7 @@ void SpellMgr::LoadSpellInfoCorrections() case 54171: // Divine Storm spellInfo->MaxAffectedTargets = 3; break; + case 37697: // Top Bunny Beam Test Visual case 38310: // Multi-Shot case 53385: // Divine Storm (Damage) spellInfo->MaxAffectedTargets = 4; @@ -3221,6 +3222,9 @@ void SpellMgr::LoadSpellInfoCorrections() case 28200: // Ascendance (Talisman of Ascendance trinket) spellInfo->ProcCharges = 6; break; + case 37408: // Oscillation Field + spellInfo->AttributesEx3 |= SPELL_ATTR3_STACK_FOR_DIFF_CASTERS; + break; case 47201: // Everlasting Affliction case 47202: case 47203: diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index a005153a4fc..167fd7f2074 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -19,7 +19,7 @@ /* ScriptData SDName: Blades_Edge_Mountains SD%Complete: 90 -SDComment: Quest support: 10503, 10504, 10556, 10609, 10682, 10821, 10980. Ogri'la->Skettis Flight. (npc_daranelle needs bit more work before consider complete) +SDComment: Quest support: 10503, 10504, 10556, 10594, 10609, 10682, 10821, 10980. Ogri'la->Skettis Flight. (npc_daranelle needs bit more work before consider complete) SDCategory: Blade's Edge Mountains EndScriptData */ @@ -40,6 +40,10 @@ EndContentData */ #include "GridNotifiersImpl.h" #include "Cell.h" #include "CellImpl.h" +#include "SpellInfo.h" +#include "SpellScript.h" +#include "SpellAuras.h" +#include "SpellAuraEffects.h" //Support for quest: You're Fired! (10821) bool obelisk_one, obelisk_two, obelisk_three, obelisk_four, obelisk_five; @@ -1143,6 +1147,99 @@ class go_apexis_relic : public GameObjectScript } }; +/*###### +## npc_oscillating_frequency_scanner_master_bunny used for quest 10594 "Gauging the Resonant Frequency" +######*/ + +enum ScannerMasterBunny +{ + NPC_OSCILLATING_FREQUENCY_SCANNER_TOP_BUNNY = 21759, + SPELL_OSCILLATION_FIELD = 37408, + QUEST_GAUGING_THE_RESONANT_FREQUENCY = 10594 +}; + +class npc_oscillating_frequency_scanner_master_bunny : public CreatureScript +{ +public: + npc_oscillating_frequency_scanner_master_bunny() : CreatureScript("npc_oscillating_frequency_scanner_master_bunny") { } + + struct npc_oscillating_frequency_scanner_master_bunnyAI : public ScriptedAI + { + npc_oscillating_frequency_scanner_master_bunnyAI(Creature* creature) : ScriptedAI(creature) { } + + void Reset() OVERRIDE + { + if (GetClosestCreatureWithEntry(me, NPC_OSCILLATING_FREQUENCY_SCANNER_TOP_BUNNY, 25.0f)) + me->DespawnOrUnsummon(); + else + { + // Spell 37392 does not exist in dbc, manually spawning + me->SummonCreature(21759, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 0.5f, me->GetOrientation(), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 50000); + me->SummonGameObject(184926, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), 0, 0, 0, 0, 50000); + me->DespawnOrUnsummon(50000); + } + + timer = 500; + } + + void IsSummonedBy(Unit* summoner) OVERRIDE + { + if (summoner->isType(TYPEMASK_PLAYER)) + playerGuid = summoner->GetGUID(); + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (timer <= diff) + { + if (Player* player = ObjectAccessor::GetPlayer(*me, playerGuid)) + DoCast(player, SPELL_OSCILLATION_FIELD); + + timer = 3000; + } + else + timer -= diff; + } + + private: + uint64 playerGuid; + uint32 timer; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_oscillating_frequency_scanner_master_bunnyAI(creature); + } +}; + +class spell_oscillating_field : public SpellScriptLoader +{ + public: + spell_oscillating_field() : SpellScriptLoader("spell_oscillating_field") { } + + class spell_oscillating_field_SpellScript : public SpellScript + { + PrepareSpellScript(spell_oscillating_field_SpellScript); + + void HandleEffect(SpellEffIndex /*effIndex*/) + { + if (Player* player = GetHitPlayer()) + if (player->GetAuraCount(SPELL_OSCILLATION_FIELD) == 5 && player->GetQuestStatus(QUEST_GAUGING_THE_RESONANT_FREQUENCY) == QUEST_STATUS_INCOMPLETE) + player->CompleteQuest(QUEST_GAUGING_THE_RESONANT_FREQUENCY); + } + + void Register() OVERRIDE + { + OnEffectHitTarget += SpellEffectFn(spell_oscillating_field_SpellScript::HandleEffect, EFFECT_0, SPELL_EFFECT_APPLY_AURA); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_oscillating_field_SpellScript(); + } +}; + void AddSC_blades_edge_mountains() { new npc_bladespire_ogre(); @@ -1157,4 +1254,6 @@ void AddSC_blades_edge_mountains() new npc_simon_bunny(); new go_simon_cluster(); new go_apexis_relic(); + new npc_oscillating_frequency_scanner_master_bunny(); + new spell_oscillating_field(); } -- cgit v1.2.3 From dd16bfb881d6a31c9b6af01db91a074c0f3fe8c8 Mon Sep 17 00:00:00 2001 From: joschiwald Date: Thu, 5 Dec 2013 00:00:07 +0100 Subject: Scripts/Oculus: fix drake spells Closes #6681 Closes #6680 Closes #6673 --- sql/updates/world/2013_12_04_03_world_spells.sql | 10 + .../EyeOfEternity/instance_eye_of_eternity.cpp | 2 +- .../Northrend/Nexus/Oculus/instance_oculus.cpp | 2 +- .../scripts/Northrend/Nexus/Oculus/oculus.cpp | 203 +++++++++++++++++---- .../arcatraz/boss_dalliah_the_doomsayer.cpp | 2 +- 5 files changed, 179 insertions(+), 40 deletions(-) create mode 100644 sql/updates/world/2013_12_04_03_world_spells.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_12_04_03_world_spells.sql b/sql/updates/world/2013_12_04_03_world_spells.sql new file mode 100644 index 00000000000..422b8cccb7f --- /dev/null +++ b/sql/updates/world/2013_12_04_03_world_spells.sql @@ -0,0 +1,10 @@ +DELETE FROM `spell_script_names` WHERE `spell_id` IN (50240,49840,49592); +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(50240, 'spell_oculus_evasive_maneuvers'), +(49840, 'spell_oculus_shock_lance'), +(49592, 'spell_oculus_temporal_rift'); + +DELETE FROM `spell_proc_event` WHERE `entry` IN (49592,50240); +INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES +(49592,0,0,0,0,0,0x008222A8,0,0,0,0), +(50240,0,0,0,0,0,0,0x14,0,0,0); diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp index a1511fb3dd8..4777b451e4e 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp @@ -165,7 +165,7 @@ public: unit->SetControlled(true, UNIT_STATE_ROOT); } - void ProcessEvent(WorldObject* /*obj*/, uint32 eventId) + void ProcessEvent(WorldObject* /*obj*/, uint32 eventId) OVERRIDE { if (eventId == EVENT_FOCUSING_IRIS) { diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp index 96fadc7002b..b108378910e 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp @@ -179,7 +179,7 @@ class instance_oculus : public InstanceMapScript } } - void ProcessEvent(WorldObject* /*unit*/, uint32 eventId) + void ProcessEvent(WorldObject* /*unit*/, uint32 eventId) OVERRIDE { if (eventId != EVENT_CALL_DRAGON) return; diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp index 4b24e5a81fb..1230868c020 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp @@ -38,44 +38,45 @@ enum GossipNPCs enum Drakes { -/*Ruby Drake, -(npc 27756) (item 37860) -(summoned by spell Ruby Essence = 37860 ---> Call Amber Drake == 49462 ---> Summon 27756) -*/ - SPELL_RIDE_RUBY_DRAKE_QUE = 49463, //Apply Aura: Periodic Trigger, Interval: 3 seconds ---> 49464 - SPELL_RUBY_DRAKE_SADDLE = 49464, //Allows you to ride on the back of an Amber Drake. ---> Dummy - SPELL_RUBY_SEARING_WRATH = 50232, //(60 yds) - Instant - Breathes a stream of fire at an enemy dragon, dealing 6800 to 9200 Fire damage and then jumping to additional dragons within 30 yards. Each jump increases the damage by 50%. Affects up to 5 total targets - SPELL_RUBY_EVASIVE_AURA = 50248, //Instant - Allows the Ruby Drake to generate Evasive Charges when hit by hostile attacks and spells. - SPELL_RUBY_EVASIVE_MANEUVERS = 50240, //Instant - 5 sec. cooldown - Allows your drake to dodge all incoming attacks and spells. Requires Evasive Charges to use. Each attack or spell dodged while this ability is active burns one Evasive Charge. Lasts 30 sec. or until all charges are exhausted. - //you do not have acces to until you kill Mage-Lord Urom - SPELL_RUBY_MARTYR = 50253, //Instant - 10 sec. cooldown - Redirect all harmful spells cast at friendly drakes to yourself for 10 sec. - -/*Amber Drake, -(npc 27755) (item 37859) -(summoned by spell Amber Essence = 37859 ---> Call Amber Drake == 49461 ---> Summon 27755) -*/ - SPELL_RIDE_AMBER_DRAKE_QUE = 49459, //Apply Aura: Periodic Trigger, Interval: 3 seconds ---> 49460 - SPELL_AMBER_DRAKE_SADDLE = 49460, //Allows you to ride on the back of an Amber Drake. ---> Dummy - SPELL_AMBER_SHOCK_CHARGE = 49836, - SPELL_AMBER_SHOCK_LANCE = 49840, //(60 yds) - Instant - Deals 4822 to 5602 Arcane damage and detonates all Shock Charges on an enemy dragon. Damage is increased by 6525 for each detonated. - // SPELL_AMBER_STOP_TIME //Instant - 1 min cooldown - Halts the passage of time, freezing all enemy dragons in place for 10 sec. This attack applies 5 Shock Charges to each affected target. - //you do not have access to until you kill the Mage-Lord Urom. - SPELL_AMBER_TEMPORAL_RIFT = 49592, //(60 yds) - Channeled - Channels a temporal rift on an enemy dragon for 10 sec. While trapped in the rift, all damage done to the target is increased by 100%. In addition, for every 15, 000 damage done to a target affected by Temporal Rift, 1 Shock Charge is generated. - -/*Emerald Drake, -(npc 27692) (item 37815), - (summoned by spell Emerald Essence = 37815 ---> Call Emerald Drake == 49345 ---> Summon 27692) -*/ - SPELL_RIDE_EMERALD_DRAKE_QUE = 49427, //Apply Aura: Periodic Trigger, Interval: 3 seconds ---> 49346 - SPELL_EMERALD_DRAKE_SADDLE = 49346, //Allows you to ride on the back of an Amber Drake. ---> Dummy - SPELL_EMERALD_LEECHING_POISON = 50328, //(60 yds) - Instant - Poisons the enemy dragon, leeching 1300 to the caster every 2 sec. for 12 sec. Stacks up to 3 times. - SPELL_EMERALD_TOUCH_THE_NIGHTMARE = 50341, //(60 yds) - Instant - Consumes 30% of the caster's max health to inflict 25, 000 nature damage to an enemy dragon and reduce the damage it deals by 25% for 30 sec. +/* + * Ruby Drake (27756) + * (summoned by spell Ruby Essence (37860) --> Call Amber Drake (49462) --> Summon 27756) + */ + SPELL_RIDE_RUBY_DRAKE_QUE = 49463, // Apply Aura: Periodic Trigger, Interval: 3 seconds --> 49464 + SPELL_RUBY_DRAKE_SADDLE = 49464, // Allows you to ride on the back of an Amber Drake. --> Dummy + SPELL_RUBY_SEARING_WRATH = 50232, // (60 yds) - Instant - Breathes a stream of fire at an enemy dragon, dealing 6800 to 9200 Fire damage and then jumping to additional dragons within 30 yards. Each jump increases the damage by 50%. Affects up to 5 total targets + SPELL_RUBY_EVASIVE_AURA = 50248, // Instant - Allows the Ruby Drake to generate Evasive Charges when hit by hostile attacks and spells. + SPELL_RUBY_EVASIVE_CHARGES = 50241, + SPELL_RUBY_EVASIVE_MANEUVERS = 50240, // Instant - 5 sec. cooldown - Allows your drake to dodge all incoming attacks and spells. Requires Evasive Charges to use. Each attack or spell dodged while this ability is active burns one Evasive Charge. Lasts 30 sec. or until all charges are exhausted. + // you do not have acces to until you kill Mage-Lord Urom + SPELL_RUBY_MARTYR = 50253, // Instant - 10 sec. cooldown - Redirect all harmful spells cast at friendly drakes to yourself for 10 sec. + +/* + * Amber Drake (27755) + * (summoned by spell Amber Essence (37859) --> Call Amber Drake (49461) --> Summon 27755) + */ + SPELL_RIDE_AMBER_DRAKE_QUE = 49459, // Apply Aura: Periodic Trigger, Interval: 3 seconds --> 49460 + SPELL_AMBER_DRAKE_SADDLE = 49460, // Allows you to ride on the back of an Amber Drake. --> Dummy + SPELL_AMBER_SHOCK_CHARGE = 49836, + SPELL_AMBER_SHOCK_LANCE = 49840, // (60 yds) - Instant - Deals 4822 to 5602 Arcane damage and detonates all Shock Charges on an enemy dragon. Damage is increased by 6525 for each detonated. + SPELL_AMBER_STOP_TIME = 49838, // Instant - 1 min cooldown - Halts the passage of time, freezing all enemy dragons in place for 10 sec. This attack applies 5 Shock Charges to each affected target. + // you do not have access to until you kill the Mage-Lord Urom. + SPELL_AMBER_TEMPORAL_RIFT = 49592, // (60 yds) - Channeled - Channels a temporal rift on an enemy dragon for 10 sec. While trapped in the rift, all damage done to the target is increased by 100%. In addition, for every 15, 000 damage done to a target affected by Temporal Rift, 1 Shock Charge is generated. + +/* + * Emerald Drake (27692) + * (summoned by spell Emerald Essence (37815) --> Call Emerald Drake (49345) --> Summon 27692) + */ + SPELL_RIDE_EMERALD_DRAKE_QUE = 49427, // Apply Aura: Periodic Trigger, Interval: 3 seconds --> 49346 + SPELL_EMERALD_DRAKE_SADDLE = 49346, // Allows you to ride on the back of an Amber Drake. --> Dummy + SPELL_EMERALD_LEECHING_POISON = 50328, // (60 yds) - Instant - Poisons the enemy dragon, leeching 1300 to the caster every 2 sec. for 12 sec. Stacks up to 3 times. + SPELL_EMERALD_TOUCH_THE_NIGHTMARE = 50341, // (60 yds) - Instant - Consumes 30% of the caster's max health to inflict 25, 000 nature damage to an enemy dragon and reduce the damage it deals by 25% for 30 sec. // you do not have access to until you kill the Mage-Lord Urom - SPELL_EMERALD_DREAM_FUNNEL = 50344, //(60 yds) - Channeled - Transfers 5% of the caster's max health to a friendly drake every second for 10 seconds as long as the caster channels. + SPELL_EMERALD_DREAM_FUNNEL = 50344, // (60 yds) - Channeled - Transfers 5% of the caster's max health to a friendly drake every second for 10 seconds as long as the caster channels. // Misc - POINT_LAND = 2, - POINT_TAKE_OFF = 3 + POINT_LAND = 2, + POINT_TAKE_OFF = 3 }; enum DrakeEvents @@ -432,6 +433,85 @@ class spell_oculus_ride_ruby_emerald_amber_drake_que : public SpellScriptLoader } }; +// 50240 - Evasive Maneuvers +class spell_oculus_evasive_maneuvers : public SpellScriptLoader +{ + public: + spell_oculus_evasive_maneuvers() : SpellScriptLoader("spell_oculus_evasive_maneuvers") { } + + class spell_oculus_evasive_maneuvers_AuraScript : public AuraScript + { + PrepareAuraScript(spell_oculus_evasive_maneuvers_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_RUBY_EVASIVE_CHARGES)) + return false; + return true; + } + + void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/) + { + PreventDefaultAction(); + GetTarget()->RemoveAuraFromStack(SPELL_RUBY_EVASIVE_CHARGES); + if (!GetTarget()->HasAura(SPELL_RUBY_EVASIVE_CHARGES)) + Remove(); + } + + void Register() OVERRIDE + { + OnEffectProc += AuraEffectProcFn(spell_oculus_evasive_maneuvers_AuraScript::HandleProc, EFFECT_2, SPELL_AURA_PROC_TRIGGER_SPELL); + } + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_oculus_evasive_maneuvers_AuraScript(); + } +}; + +// 49840 - Shock Lance +class spell_oculus_shock_lance : public SpellScriptLoader +{ + public: + spell_oculus_shock_lance() : SpellScriptLoader("spell_oculus_shock_lance") { } + + class spell_oculus_shock_lance_SpellScript : public SpellScript + { + PrepareSpellScript(spell_oculus_shock_lance_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_AMBER_SHOCK_CHARGE)) + return false; + return true; + } + + void CalcDamage() + { + int32 damage = GetHitDamage(); + if (Unit* target = GetHitUnit()) + if (AuraEffect const* shockCharges = target->GetAuraEffect(SPELL_AMBER_SHOCK_CHARGE, EFFECT_0, GetCaster()->GetGUID())) + { + damage += shockCharges->GetAmount(); + shockCharges->GetBase()->Remove(); + } + + SetHitDamage(damage); + } + + void Register() OVERRIDE + { + OnHit += SpellHitFn(spell_oculus_shock_lance_SpellScript::CalcDamage); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_oculus_shock_lance_SpellScript(); + } +}; + // 49838 - Stop Time class spell_oculus_stop_time : public SpellScriptLoader { @@ -457,7 +537,7 @@ class spell_oculus_stop_time : public SpellScriptLoader Unit* target = GetTarget(); for (uint32 i = 0; i < 5; ++i) - caster->CastSpell(target, SPELL_AMBER_SHOCK_CHARGE, false); + caster->CastSpell(target, SPELL_AMBER_SHOCK_CHARGE, true); } void Register() OVERRIDE @@ -472,6 +552,51 @@ class spell_oculus_stop_time : public SpellScriptLoader } }; +// 49592 - Temporal Rift +class spell_oculus_temporal_rift : public SpellScriptLoader +{ + public: + spell_oculus_temporal_rift() : SpellScriptLoader("spell_oculus_temporal_rift") { } + + class spell_oculus_temporal_rift_AuraScript : public AuraScript + { + PrepareAuraScript(spell_oculus_temporal_rift_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_AMBER_SHOCK_CHARGE)) + return false; + return true; + } + + void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) + { + PreventDefaultAction(); + int32 amount = aurEff->GetAmount() + eventInfo.GetDamageInfo()->GetDamage(); + + if (amount >= 15000) + { + if (Unit* caster = GetCaster()) + caster->CastSpell(GetTarget(), SPELL_AMBER_SHOCK_CHARGE, true); + amount -= 15000; + } + + const_cast(aurEff)->SetAmount(amount); + } + + void Register() OVERRIDE + { + OnEffectProc += AuraEffectProcFn(spell_oculus_temporal_rift_AuraScript::HandleProc, EFFECT_2, SPELL_AURA_DUMMY); + } + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_oculus_temporal_rift_AuraScript(); + } +}; + +// 50341 - Touch the Nightmare class spell_oculus_touch_the_nightmare : public SpellScriptLoader { public: @@ -498,7 +623,8 @@ class spell_oculus_touch_the_nightmare : public SpellScriptLoader } }; -class spell_oculus_dream_funnel: public SpellScriptLoader +// 50344 - Dream Funnel +class spell_oculus_dream_funnel : public SpellScriptLoader { public: spell_oculus_dream_funnel() : SpellScriptLoader("spell_oculus_dream_funnel") { } @@ -535,7 +661,10 @@ void AddSC_oculus() new npc_ruby_emerald_amber_drake(); new spell_oculus_call_ruby_emerald_amber_drake(); new spell_oculus_ride_ruby_emerald_amber_drake_que(); + new spell_oculus_evasive_maneuvers(); + new spell_oculus_shock_lance(); new spell_oculus_stop_time(); + new spell_oculus_temporal_rift(); new spell_oculus_touch_the_nightmare(); new spell_oculus_dream_funnel(); } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp index bbc62d4b99a..36377b4d715 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp @@ -184,7 +184,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript CreatureAI* GetAI(Creature* creature) const OVERRIDE { - return new boss_dalliah_the_doomsayerAI(creature); + return GetArcatrazAI(creature); } }; -- cgit v1.2.3 From dc1d1a684a89d8e75752694ed72b2e7c725c0e41 Mon Sep 17 00:00:00 2001 From: w1sht0l1v3 Date: Thu, 5 Dec 2013 16:05:15 +0200 Subject: Scripts/HoR: Some fixups. --- .../FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp index c970f8f1921..955f4fb1568 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp @@ -187,7 +187,7 @@ public: case GO_ARTHAS_DOOR: _arthasDoorGUID = go->GetGUID(); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); - if (GetBossState(DATA_FROSWORN_EVENT) == DONE) + if (GetData(DATA_FROSWORN_EVENT) == DONE) HandleGameObject(0, true, go); else HandleGameObject(0, false, go); @@ -514,13 +514,13 @@ public: OUT_SAVE_INST_DATA; std::ostringstream saveStream; - saveStream << "H R " << GetBossSaveData() << _introEvent << ' ' << _frostwornGeneral << _escapeevent; + saveStream << "H R " << GetBossSaveData() << _introEvent << ' ' << _frostwornGeneral << ' ' << _escapeevent; OUT_SAVE_INST_DATA_COMPLETE; return saveStream.str(); } - void Load(char const* in) OVERRIDE OVERRIDE + void Load(char const* in) OVERRIDE { if (!in) { -- cgit v1.2.3 From 621ba87917f2b7be25d490d0d6457d51e973edc5 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Thu, 5 Dec 2013 13:04:11 -0330 Subject: Grizzly Hills/Scripting: Fix Quest 12244 "Shredder Repair" and 12270 "Shred the Alliance" Closes #1942 #3754 --- sql/updates/world/2013_12_05_00_world_misc.sql | 39 ++++++++++++++++++++++ .../scripts/Northrend/zone_grizzly_hills.cpp | 39 ++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 sql/updates/world/2013_12_05_00_world_misc.sql (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_12_05_00_world_misc.sql b/sql/updates/world/2013_12_05_00_world_misc.sql new file mode 100644 index 00000000000..51150d8aacc --- /dev/null +++ b/sql/updates/world/2013_12_05_00_world_misc.sql @@ -0,0 +1,39 @@ +-- Fix Quest 12244 "Shredder Repair" (Aliance) and 12270 "Shred the Alliance" (Horde) + +SET @GUID := 45832; +SET @OGUID := 5927; + +-- Missing Broken-down Shredder spawns +DELETE FROM `creature` WHERE `guid` IN (@GUID, @GUID+1); +INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES +(@GUID,27354,571,1,1,0,0,4156.482,-2963.999,283.8623,6.091199,300,0,0,1,0,0), +(@GUID+1,27354,571,1,1,0,0,4085.375,-2916.553,278.0346,5.026548,300,0,0,1,0,0); + +-- Spawn Basecamp objects +DELETE FROM `gameobject` WHERE `id` = 300202; +DELETE FROM `gameobject` WHERE `guid` IN (@OGUID, @OGUID+1); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@OGUID, 300202, 571, 1, 1, 4379.31, -2921.89, 309.674, 2.54818, 0, 0, 0.439743, 0.898124, 300, 0, 1), +(@OGUID+1, 300202, 571, 1, 1, 3991.77, -3186.28, 281.448, 0.069813, 0, 0, 0.94445, -0.328654, 300, 0, 1); + +-- Broken-down Shredder +UPDATE `creature_template` SET `speed_run`=0.57142857, `spell1`=48558, `spell2`=48604, `spell3`=48548, `spell4`=0, `spell5`=48610 WHERE `entry`=27354; +DELETE FROM `creature_template_addon` WHERE `entry`=27354; +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(27354,0,0,1,0, '48456 48458'); + +-- Add Spellclick +DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=27354; +INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES +(27354,43671,1,0); + +-- conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceGroup`=27354 AND `SourceEntry` = 43671; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(18, 27354, 43671, 1, 9, 0, 12244, 0, 0, 0, '', 'Required quest active for spellclick'), +(18, 27354, 43671, 2, 9, 0, 12270, 0, 0, 0, '', 'Required quest active for spellclick'); + +-- Add Spellscript name +DELETE FROM `spell_script_names` WHERE `spell_id`=48610; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(48610, 'spell_shredder_delivery'); diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp index 9ea3023de01..44f87930f59 100644 --- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp +++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp @@ -20,6 +20,7 @@ #include "ScriptedCreature.h" #include "ScriptedEscortAI.h" #include "Player.h" +#include "Spell.h" #include "SpellInfo.h" #include "CreatureTextMgr.h" @@ -749,6 +750,43 @@ public: } }; +enum ShredderDelivery +{ + NPC_BROKEN_DOWN_SHREDDER = 27354 +}; + +class spell_shredder_delivery : public SpellScriptLoader +{ + public: + spell_shredder_delivery() : SpellScriptLoader("spell_shredder_delivery") { } + + class spell_shredder_delivery_SpellScript : public SpellScript + { + PrepareSpellScript(spell_shredder_delivery_SpellScript); + + bool Load() OVERRIDE + { + return GetCaster()->GetTypeId() == TYPEID_UNIT; + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (GetCaster()->ToCreature()->GetEntry() == NPC_BROKEN_DOWN_SHREDDER) + GetCaster()->ToCreature()->DespawnOrUnsummon(); + } + + void Register() OVERRIDE + { + OnEffectHitTarget += SpellEffectFn(spell_shredder_delivery_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_shredder_delivery_SpellScript(); + } +}; + void AddSC_grizzly_hills() { new npc_emily(); @@ -759,4 +797,5 @@ void AddSC_grizzly_hills() new npc_wounded_skirmisher(); new npc_venture_co_straggler(); new npc_lake_frog(); + new spell_shredder_delivery(); } -- cgit v1.2.3 From e667c96cfcfc953267b72a909e59ed1587ccb1d8 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Thu, 5 Dec 2013 13:24:34 -0330 Subject: Scripting/Grizzly Hills: Add missing include "SpellScript.h" --- src/server/scripts/Northrend/zone_grizzly_hills.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp index 44f87930f59..6587f0536b3 100644 --- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp +++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp @@ -22,6 +22,7 @@ #include "Player.h" #include "Spell.h" #include "SpellInfo.h" +#include "SpellScript.h" #include "CreatureTextMgr.h" /*###### -- cgit v1.2.3 From 89de7e74198e517dc7105f73af0f1d74c3629c64 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Sat, 7 Dec 2013 21:19:46 -0330 Subject: Scripting/Razorfen Downs: Additions and fixes for instance. Moved bosses Glutton, Mordresh Fire Eye, Tuten Kash to cpp. Cleaned up code for boss Amnennar The Coldbringer. Fixed up gong event for gong to have sound and proper spawning. Scripted quest 3525 "Extinguishing the Idol" so you can now fight Plagmaw the Rotting. --- sql/updates/world/2013_12_07_00_world_misc.sql | 77 +++++ src/server/game/Scripting/ScriptLoader.cpp | 10 +- src/server/scripts/Kalimdor/CMakeLists.txt | 5 +- .../boss_amnennar_the_coldbringer.cpp | 115 +++---- .../Kalimdor/RazorfenDowns/boss_glutton.cpp | 95 ++++++ .../RazorfenDowns/boss_mordresh_fire_eye.cpp | 136 ++++++++ .../Kalimdor/RazorfenDowns/boss_tuten_kash.cpp | 107 +++++++ .../RazorfenDowns/instance_razorfen_downs.cpp | 270 ++++++++-------- .../Kalimdor/RazorfenDowns/razorfen_downs.cpp | 345 +++++++++++++++++++-- .../Kalimdor/RazorfenDowns/razorfen_downs.h | 51 ++- 10 files changed, 988 insertions(+), 223 deletions(-) create mode 100644 sql/updates/world/2013_12_07_00_world_misc.sql create mode 100644 src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp create mode 100644 src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp create mode 100644 src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp (limited to 'src/server/scripts') diff --git a/sql/updates/world/2013_12_07_00_world_misc.sql b/sql/updates/world/2013_12_07_00_world_misc.sql new file mode 100644 index 00000000000..42063be2e3a --- /dev/null +++ b/sql/updates/world/2013_12_07_00_world_misc.sql @@ -0,0 +1,77 @@ +-- Talk text for Mordresh Fire Eye from sniff +SET @ENTRY := 7357; +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,'We will enslave the quilboar!',12,0,100,1,0,5819, 'Mordresh Fire Eye - SAY_OOC_1'), +(@ENTRY,1,0,'We will spread across this barren land!',12,0,100,1,0,5820, 'Mordresh Fire Eye - SAY_OOC_2'), +(@ENTRY,2,0,'Soon, the Scourge will rule the world!',12,0,100,22,0,5821, 'Mordresh Fire Eye - SAY_OOC_3'), +(@ENTRY,3,0,'Slay them, my brethren! For the Scourge!',14,0,100,0,0,5822, 'Mordresh Fire Eye - SAY_AGGRO'); + +-- Talk text for Belnistrasz from sniff +SET @ENTRY := 8516; +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,'All right, stay close. These fiends will jump right out of the shadows at you if you let your guard down.',12,0,100,0,0,0,'Belnistrasz SAY_QUEST_ACCEPTED'), +(@ENTRY,1,0,'Okay, here we go. It's going to take about five minutes to shut this thing down through the ritual. Once I start, keep the vermin off of me or it will be the end of us all!',12,0,100,0,0,0,'Belnistrasz SAY_EVENT_START'), +(@ENTRY,2,0,'Three minutes left -- I can feel the energy starting to build! Keep up the solid defense!',14,0,100,0,0,0,'Belnistrasz SAY_EVENT_THREE_MIN_LEFT'), +(@ENTRY,3,0,'Just two minutes to go! We're half way there, but don't let your guard down!',14,0,100,0,0,0,'Belnistrasz SAY_EVENT_TWO_MIN_LEFT'), +(@ENTRY,4,0,'One more minute! Hold on now, the ritual is about to take hold!',14,0,100,0,0,0,'Belnistrasz SAY_EVENT_ONE_MIN_LEFT'), +(@ENTRY,5,0,'That's it -- we made it! The ritual is set in motion, and idol fires are about to go out for good! You truly are the heroes I thought you would be!',14,0,100,4,0,0,'Belnistrasz SAY_EVENT_END'), +(@ENTRY,6,0,'You'll rue the day you crossed me, $N',12,0,100,0,0,0,'Belnistrasz SAY_AGGRO'); +(@ENTRY,7,0,'Watch out for the $N!',12,0,100,0,0,0,'Belnistrasz SAY_WATCH_OUT'); + +-- Fix trigger location +UPDATE `creature_template` SET `InhabitType`=4, `flags_extra`=`flags_extra`|128 WHERE `entry`=8662; + +-- Condition for spell Belnistrasz Idol Shutdown Visual +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=12774; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 12774, 0, 0, 31, 0, 3, 8662, 0, 0, 0, 0, '', 'Belnistrasz Idol Shutdown Visual targets Idol Oven Fire Target'); + +-- Add cpp scripts +UPDATE creature_template SET `AIName`= '',ScriptName = 'boss_tuten_kash' WHERE entry=7355; +UPDATE creature_template SET `AIName`= '',ScriptName = 'boss_mordresh_fire_eye' WHERE entry=7357; +UPDATE creature_template SET `AIName`= '',ScriptName = 'boss_glutton' WHERE entry=8567; +UPDATE creature_template SET `AIName`= '',ScriptName = 'npc_belnistrasz' WHERE entry=8516; +UPDATE creature_template SET `AIName`= '',ScriptName = 'npc_idol_room_spawner' WHERE entry=8611; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (7355,7357,8567,8516) AND `source_type`=0; + +-- Pathing for Belnistrasz Entry: 8516 +SET @NPC := 87171; +SET @PATH := @NPC * 10; +DELETE FROM `creature_template_addon` WHERE `entry`=8516; +INSERT INTO `creature_template_addon` (`entry`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (8516,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,2603.313,724.335,54.608,0,0,1,0,100,0), +(@PATH,2,2593.379,726.272,55.112,0,0,1,0,100,0), +(@PATH,3,2588.499,733.1947,55.3959,0,0,1,0,100,0), +(@PATH,4,2572.573,752.5162,54.71815,0,0,1,0,100,0), +(@PATH,5,2558.068,748.3008,54.3559,0,0,1,0,100,0), +(@PATH,6,2539.677,777.1356,46.95155,0,0,1,0,100,0), +(@PATH,7,2527.828,800.8403,44.74713,0,0,1,0,100,0), +(@PATH,8,2495.996,785.7536,39.51203,0,0,1,0,100,0), +(@PATH,9,2484.358,814.8914,43.57789,0,0,1,0,100,0), +(@PATH,10,2501.128,847.9614,47.5574,0,0,1,0,100,0), +(@PATH,11,2537.36,874.4713,47.67798,0,0,1,0,100,0), +(@PATH,12,2548.493,894.6515,47.69307,0,0,1,0,100,0), +(@PATH,13,2541.478,910.5101,46.17223,0,0,1,0,100,0), +(@PATH,14,2519.403,925.6332,46.51501,0,0,1,0,100,0), +(@PATH,15,2527.237,951.4606,49.2807,0,0,1,0,100,0), +(@PATH,16,2541.675,976.5887,50.41221,0,0,1,0,100,0), +(@PATH,17,2554.084,973.8665,50.36161,0,0,1,0,100,0), +(@PATH,18,2575.601,950.1381,52.84592,0,0,1,0,100,0); + +DELETE FROM `creature_questender` WHERE `id`=8516 AND `quest`=3525; +DELETE FROM `gameobject_questender` WHERE `id`=152097 AND `quest`=3525; +INSERT INTO `gameobject_questender` (`id`,`quest`) VALUES (152097,3525); + +-- Death's Head Geomancer SAI +SET @ENTRY := 7335; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,2,0,0,3000,4000,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Death's Head Geomancer - Combat - Cast Fireball (Normal Dungeon)"), +(@ENTRY,0,1,0,0,0,100,2,8000,10000,6000,15000,11,6725,0,0,0,0,0,5,0,0,0,0,0,0,0,"Death's Head Geomancer - Combat - Cast Flame Spike (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,12000,16000,8000,20000,11,11436,1,0,0,0,0,5,0,0,0,0,0,0,0,"Death's Head Geomancer - Combat - Cast Slow (Normal Dungeon)"), +(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Death's Head Geomancer - 0-15% Health - Flee For Assist (Normal Dungeon)"); diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp index 28fe883feb9..b486eb45915 100644 --- a/src/server/game/Scripting/ScriptLoader.cpp +++ b/src/server/game/Scripting/ScriptLoader.cpp @@ -321,7 +321,10 @@ void AddSC_boss_ptheradras(); void AddSC_instance_maraudon(); void AddSC_boss_onyxia(); //Onyxia's Lair void AddSC_instance_onyxias_lair(); -void AddSC_boss_amnennar_the_coldbringer(); //Razorfen Downs +void AddSC_boss_tuten_kash(); //Razorfen Downs +void AddSC_boss_mordresh_fire_eye(); +void AddSC_boss_glutton(); +void AddSC_boss_amnennar_the_coldbringer(); void AddSC_razorfen_downs(); void AddSC_instance_razorfen_downs(); void AddSC_razorfen_kraul(); //Razorfen Kraul @@ -1032,7 +1035,10 @@ void AddKalimdorScripts() AddSC_instance_maraudon(); AddSC_boss_onyxia(); //Onyxia's Lair AddSC_instance_onyxias_lair(); - AddSC_boss_amnennar_the_coldbringer(); //Razorfen Downs + AddSC_boss_tuten_kash(); //Razorfen Downs + AddSC_boss_mordresh_fire_eye(); + AddSC_boss_glutton(); + AddSC_boss_amnennar_the_coldbringer(); AddSC_razorfen_downs(); AddSC_instance_razorfen_downs(); AddSC_razorfen_kraul(); //Razorfen Kraul diff --git a/src/server/scripts/Kalimdor/CMakeLists.txt b/src/server/scripts/Kalimdor/CMakeLists.txt index 17c360a54b2..c02e896a87d 100644 --- a/src/server/scripts/Kalimdor/CMakeLists.txt +++ b/src/server/scripts/Kalimdor/CMakeLists.txt @@ -15,12 +15,15 @@ set(scripts_STAT_SRCS Kalimdor/zone_moonglade.cpp Kalimdor/RazorfenDowns/razorfen_downs.cpp Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp + Kalimdor/RazorfenDowns/boss_tuten_kash.cpp + Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp + Kalimdor/RazorfenDowns/boss_glutton.cpp Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp Kalimdor/RazorfenDowns/razorfen_downs.h - Kalimdor/ZulFarrak/zulfarrak.h Kalimdor/ZulFarrak/zulfarrak.cpp Kalimdor/ZulFarrak/instance_zulfarrak.cpp Kalimdor/ZulFarrak/boss_zum_rah.cpp + Kalimdor/ZulFarrak/zulfarrak.h Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp index 4a4d7fe4b07..323fd92a8f6 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2013 TrinityCore - * Copyright (C) 2006-2009 ScriptDev2 * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,63 +15,57 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Boss_Amnennar_the_coldbringer -SD%Complete: 100 -SDComment: -SDCategory: Razorfen Downs -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "razorfen_downs.h" -enum AmnennarTheColdbringer +enum Say { SAY_AGGRO = 0, SAY_SUMMON60 = 1, SAY_SUMMON30 = 2, SAY_HP = 3, - SAY_KILL = 4, + SAY_KILL = 4 +}; +enum Spells +{ SPELL_AMNENNARSWRATH = 13009, SPELL_FROSTBOLT = 15530, SPELL_FROST_NOVA = 15531, SPELL_FROST_SPECTRES = 12642 }; +enum Events +{ + EVENT_AMNENNARSWRATH = 1, + EVENT_FROSTBOLT = 2, + EVENT_FROST_NOVA = 3 +}; + class boss_amnennar_the_coldbringer : public CreatureScript { public: boss_amnennar_the_coldbringer() : CreatureScript("boss_amnennar_the_coldbringer") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new boss_amnennar_the_coldbringerAI(creature); - } - - struct boss_amnennar_the_coldbringerAI : public ScriptedAI + struct boss_amnennar_the_coldbringerAI : public BossAI { - boss_amnennar_the_coldbringerAI(Creature* creature) : ScriptedAI(creature) { } - - uint32 AmnenarsWrath_Timer; - uint32 FrostBolt_Timer; - uint32 FrostNova_Timer; - bool Spectrals60; - bool Spectrals30; - bool Hp; + boss_amnennar_the_coldbringerAI(Creature* creature) : BossAI(creature, DATA_AMNENNAR_THE_COLD_BRINGER) { } void Reset() OVERRIDE { - AmnenarsWrath_Timer = 8000; - FrostBolt_Timer = 1000; - FrostNova_Timer = urand(10000, 15000); - Spectrals30 = false; - Spectrals60 = false; - Hp = false; + _Reset(); + hp60Spectrals = false; + hp30Spectrals = false; + hp50 = false; } void EnterCombat(Unit* /*who*/) OVERRIDE { + _EnterCombat(); + events.ScheduleEvent(EVENT_AMNENNARSWRATH, 8000); + events.ScheduleEvent(EVENT_FROSTBOLT, 1000); + events.ScheduleEvent(EVENT_FROST_NOVA, urand(10000, 15000)); Talk(SAY_AGGRO); } @@ -81,55 +74,73 @@ public: Talk(SAY_KILL); } + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + } + void UpdateAI(uint32 diff) OVERRIDE { if (!UpdateVictim()) return; - //AmnenarsWrath_Timer - if (AmnenarsWrath_Timer <= diff) - { - DoCastVictim(SPELL_AMNENNARSWRATH); - AmnenarsWrath_Timer = 12000; - } else AmnenarsWrath_Timer -= diff; + events.Update(diff); - //FrostBolt_Timer - if (FrostBolt_Timer <= diff) - { - DoCastVictim(SPELL_FROSTBOLT); - FrostBolt_Timer = 8000; - } else FrostBolt_Timer -= diff; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - if (FrostNova_Timer <= diff) + while (uint32 eventId = events.ExecuteEvent()) { - DoCast(me, SPELL_FROST_NOVA); - FrostNova_Timer = 15000; - } else FrostNova_Timer -= diff; + switch (eventId) + { + case EVENT_AMNENNARSWRATH: + DoCastVictim(SPELL_AMNENNARSWRATH); + events.ScheduleEvent(EVENT_AMNENNARSWRATH, 12000); + break; + case EVENT_FROSTBOLT: + DoCastVictim(SPELL_FROSTBOLT); + events.ScheduleEvent(EVENT_FROSTBOLT, 8000); + break; + case EVENT_FROST_NOVA: + DoCast(me, SPELL_FROST_NOVA); + events.ScheduleEvent(EVENT_FROST_NOVA, 15000); + break; + } + } - if (!Spectrals60 && HealthBelowPct(60)) + if (!hp60Spectrals && HealthBelowPct(60)) { Talk(SAY_SUMMON60); DoCastVictim(SPELL_FROST_SPECTRES); - Spectrals60 = true; + hp60Spectrals = true; } - if (!Hp && HealthBelowPct(50)) + if (!hp50 && HealthBelowPct(50)) { Talk(SAY_HP); - Hp = true; + hp50 = true; } - if (!Spectrals30 && HealthBelowPct(30)) + if (!hp30Spectrals && HealthBelowPct(30)) { Talk(SAY_SUMMON30); DoCastVictim(SPELL_FROST_SPECTRES); - Spectrals30 = true; + hp30Spectrals = true; } DoMeleeAttackIfReady(); } + + private: + bool hp60Spectrals; + bool hp30Spectrals; + bool hp50; }; + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_amnennar_the_coldbringerAI(creature); + } }; void AddSC_boss_amnennar_the_coldbringer() diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp new file mode 100644 index 00000000000..a249013bd6a --- /dev/null +++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "razorfen_downs.h" + +enum Say +{ + SAY_HP50 = 0, + SAY_HP15 = 1 +}; + +enum Spells +{ + SPELL_DISEASE_CLOUD = 12627, + SPELL_FRENZY = 12795 +}; + +class boss_glutton : public CreatureScript +{ +public: + boss_glutton() : CreatureScript("boss_glutton") { } + + struct boss_gluttonAI : public BossAI + { + boss_gluttonAI(Creature* creature) : BossAI(creature, DATA_GLUTTON) { } + + void Reset() OVERRIDE + { + _Reset(); + hp50 = false; + hp15 = false; + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + } + + void UpdateAI(uint32 /*diff*/) OVERRIDE + { + if (!UpdateVictim()) + return; + + if (!hp50 && HealthBelowPct(50)) + { + Talk(SAY_HP50); + hp50 = true; + } + + if (!hp15 && HealthBelowPct(15)) + { + Talk(SAY_HP15); + DoCast(me, SPELL_FRENZY); + hp15 = true; + } + + DoMeleeAttackIfReady(); + } + + private: + bool hp50; + bool hp15; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_gluttonAI(creature); + } +}; + +void AddSC_boss_glutton() +{ + new boss_glutton(); +} diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp new file mode 100644 index 00000000000..1f45de3c4c6 --- /dev/null +++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "razorfen_downs.h" + +enum Say +{ + SAY_OOC_1 = 0, + SAY_OOC_2 = 1, + SAY_OOC_3 = 2, + SAY_AGGRO = 3 +}; + +enum Spells +{ + SPELL_FIREBALL = 12466, + SPELL_FIRE_NOVA = 12470 +}; + +enum Events +{ + EVENT_OOC_1 = 1, + EVENT_OOC_2 = 2, + EVENT_OOC_3 = 3, + EVENT_OOC_4 = 4, + EVENT_FIREBALL = 5, + EVENT_FIRE_NOVA = 6 +}; + +class boss_mordresh_fire_eye : public CreatureScript +{ +public: + boss_mordresh_fire_eye() : CreatureScript("boss_mordresh_fire_eye") { } + + struct boss_mordresh_fire_eyeAI : public BossAI + { + boss_mordresh_fire_eyeAI(Creature* creature) : BossAI(creature, DATA_MORDRESH_FIRE_EYE) { } + + void Reset() OVERRIDE + { + _Reset(); + events.ScheduleEvent(EVENT_OOC_1, 10000); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.Reset(); + Talk(SAY_AGGRO); + events.ScheduleEvent(EVENT_FIREBALL, 100); + events.ScheduleEvent(EVENT_FIRE_NOVA, urand(8000, 12000)); + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + } + + void UpdateAI(uint32 diff) OVERRIDE + { + events.Update(diff); + + if (!UpdateVictim()) + { + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_OOC_1: + Talk(SAY_OOC_1); + events.ScheduleEvent(EVENT_OOC_2, 8000); + break; + case EVENT_OOC_2: + Talk(SAY_OOC_2); + events.ScheduleEvent(EVENT_OOC_3, 3000); + break; + case EVENT_OOC_3: + me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION); + events.ScheduleEvent(EVENT_OOC_4, 6000); + break; + case EVENT_OOC_4: + Talk(SAY_OOC_3); + events.ScheduleEvent(EVENT_OOC_1, 14000); + break; + } + } + return; + } + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_FIREBALL: + DoCastVictim(SPELL_FIREBALL); + events.ScheduleEvent(EVENT_FIREBALL, urand(2400, 3800)); + break; + case EVENT_FIRE_NOVA: + DoCast(me, SPELL_FIRE_NOVA); + events.ScheduleEvent(EVENT_FIRE_NOVA, urand(11000, 16000)); + break; + } + } + DoMeleeAttackIfReady(); + } + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_mordresh_fire_eyeAI(creature); + } +}; + +void AddSC_boss_mordresh_fire_eye() +{ + new boss_mordresh_fire_eye(); +} diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp new file mode 100644 index 00000000000..5cf8a2992a3 --- /dev/null +++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2008-2013 TrinityCore + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "razorfen_downs.h" + +enum Spells +{ + SPELL_THRASH = 8876, + SPELL_WEB_SPRAY = 12252, + SPELL_VIRULENT_POISON = 12254, + SPELL_CURSE_OF_TUTENKASH = 12255 +}; + +enum Events +{ + EVENT_WEB_SPRAY = 1, + EVENT_CURSE_OF_TUTENKASH = 2 +}; + +class boss_tuten_kash : public CreatureScript +{ +public: + boss_tuten_kash() : CreatureScript("boss_tuten_kash") { } + + struct boss_tuten_kashAI : public BossAI + { + boss_tuten_kashAI(Creature* creature) : BossAI(creature, DATA_TUTEN_KASH) { } + + void Reset() OVERRIDE + { + _Reset(); + if (!me->HasAura(SPELL_THRASH)) + DoCast(me, SPELL_THRASH); + if (!me->HasAura(SPELL_VIRULENT_POISON)) + DoCast(me, SPELL_VIRULENT_POISON); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE + { + _EnterCombat(); + events.ScheduleEvent(EVENT_WEB_SPRAY, urand(3000, 5000)); + events.ScheduleEvent(EVENT_CURSE_OF_TUTENKASH, urand(9000, 14000)); + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + _JustDied(); + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_WEB_SPRAY: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, false)) + { + if (!target->HasAura(SPELL_WEB_SPRAY)) + DoCast(target, SPELL_WEB_SPRAY); + } + events.ScheduleEvent(EVENT_WEB_SPRAY, urand(6000, 8000)); + break; + case EVENT_CURSE_OF_TUTENKASH: + DoCast(me, SPELL_CURSE_OF_TUTENKASH); + events.ScheduleEvent(EVENT_CURSE_OF_TUTENKASH, urand(15000, 25000)); + break; + } + } + DoMeleeAttackIfReady(); + } + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new boss_tuten_kashAI(creature); + } +}; + +void AddSC_boss_tuten_kash() +{ + new boss_tuten_kash(); +} diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp index 091c7e46585..097f340891a 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp @@ -16,199 +16,219 @@ */ #include "ScriptMgr.h" +#include "ObjectMgr.h" #include "InstanceScript.h" #include "razorfen_downs.h" #include "Player.h" #include "TemporarySummon.h" -#define MAX_ENCOUNTER 1 +Position const PosSummonTutenkash[15] = +{ + // 7349 Tomb Fiend + { 2487.339f, 805.9111f, 43.08361f, 2.844887f }, + { 2485.405f, 804.1145f, 43.68511f, 3.054326f }, + { 2488.431f, 801.2809f, 42.70374f, 4.29351f }, + { 2489.914f, 804.7949f, 43.25175f, 1.658063f }, + { 2541.246f, 907.0941f, 46.64201f, 2.024582f }, + { 2544.701f, 907.6331f, 46.38007f, 1.605703f }, + { 2541.49f, 911.1756f, 46.26493f, 4.817109f }, + { 2544.693f, 912.8887f, 46.39912f, 2.129302f }, + { 2524.036f, 834.4852f, 48.37031f, 0.8028514f }, + { 2527.017f, 829.9793f, 48.06498f, 0.6981317f }, + // 7351 Tomb Reaver + { 2542.818f, 904.9359f, 46.80911f, 4.642576f }, + { 2543.287f, 911.2448f, 46.32785f, 0.6806784f }, + { 2489.083f, 806.5914f, 43.21102f, 3.682645f }, + { 2486.828f, 802.8737f, 43.19883f, 2.9147f }, + // 7355 Tuten'kash + { 2487.939f, 804.2224f, 43.10735f, 1.692969f } +}; class instance_razorfen_downs : public InstanceMapScript { public: - instance_razorfen_downs() : InstanceMapScript("instance_razorfen_downs", 129) { } - - InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE - { - return new instance_razorfen_downs_InstanceMapScript(map); - } + instance_razorfen_downs() : InstanceMapScript(RFDScriptName, 129) { } struct instance_razorfen_downs_InstanceMapScript : public InstanceScript { instance_razorfen_downs_InstanceMapScript(Map* map) : InstanceScript(map) { + SetBossNumber(EncounterCount); } - uint64 uiGongGUID; - - uint32 m_auiEncounter[MAX_ENCOUNTER]; - - uint16 uiGongWaves; - - std::string str_data; - void Initialize() OVERRIDE { - uiGongGUID = 0; - - uiGongWaves = 0; - - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - } - - std::string GetSaveData() OVERRIDE - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - - saveStream << "T C " << m_auiEncounter[0] - << ' ' << uiGongWaves; - - str_data = saveStream.str(); - - OUT_SAVE_INST_DATA_COMPLETE; - return str_data; + goGongGUID = 0; + gongWave = 0; + fiendsKilled = 0; + reaversKilled = 0; + summonLowRange = 0; + summonHighRange = 0; + summonCreature = 0; } - void Load(const char* in) OVERRIDE + void OnGameObjectCreate(GameObject* gameObject) OVERRIDE { - if (!in) + switch (gameObject->GetEntry()) { - OUT_LOAD_INST_DATA_FAIL; - return; + case GO_GONG: + goGongGUID = gameObject->GetGUID(); + if (GetBossState(DATA_TUTEN_KASH) == DONE) + gameObject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + break; + case GO_IDOL_OVEN_FIRE: + case GO_IDOL_CUP_FIRE: + case GO_IDOL_MOUTH_FIRE: + if (GetBossState(DATA_EXTINGUISHING_THE_IDOL) == DONE) + gameObject->Delete(); + break; + default: + break; } - - OUT_LOAD_INST_DATA(in); - - char dataHead1, dataHead2; - uint16 data0, data1; - - std::istringstream loadStream(in); - loadStream >> dataHead1 >> dataHead2 >> data0 >> data1; - - if (dataHead1 == 'T' && dataHead2 == 'C') - { - m_auiEncounter[0] = data0; - - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - m_auiEncounter[i] = NOT_STARTED; - - uiGongWaves = data1; - } else OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; } - void OnGameObjectCreate(GameObject* go) OVERRIDE + bool SetBossState(uint32 type, EncounterState state) OVERRIDE { - switch (go->GetEntry()) + if (!InstanceScript::SetBossState(type, state)) + return false; + + switch (type) { - case GO_GONG: - uiGongGUID = go->GetGUID(); - if (m_auiEncounter[0] == DONE) - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + case DATA_TUTEN_KASH: + case DATA_MORDRESH_FIRE_EYE: + case DATA_GLUTTON: + case DATA_AMNENNAR_THE_COLD_BRINGER: + case DATA_GONG: + case DATA_WAVE: + case DATA_EXTINGUISHING_THE_IDOL: break; default: break; } + return true; } - void SetData(uint32 uiType, uint32 uiData) OVERRIDE + void SetData(uint32 type, uint32 data) OVERRIDE { - if (uiType == DATA_GONG_WAVES) + if (type == DATA_WAVE) { - uiGongWaves = uiData; - - switch (uiGongWaves) + switch (data) { - case 9: - case 14: - if (GameObject* go = instance->GetGameObject(uiGongGUID)) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - break; - case 1: - case 10: - case 16: + case IN_PROGRESS: { - GameObject* go = instance->GetGameObject(uiGongGUID); - - if (!go) - return; - - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - - uint32 uiCreature = 0; - uint8 uiSummonTimes = 0; + if (GameObject* go = instance->GetGameObject(goGongGUID)) + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - switch (uiGongWaves) + switch (gongWave) { - case 1: - uiCreature = NPC_TOMB_FIEND; - uiSummonTimes = 7; - break; - case 10: - uiCreature = NPC_TOMB_REAVER; - uiSummonTimes = 3; + case 0: + summonLowRange = 0; + summonHighRange = 10; + summonCreature = NPC_TOMB_FIEND; break; - case 16: - uiCreature = NPC_TUTEN_KASH; + case 1: + summonLowRange = 10; + summonHighRange = 14; + summonCreature = NPC_TOMB_REAVER; break; - default: + case 2: + summonLowRange = 14; + summonHighRange = 15; + summonCreature = NPC_TUTEN_KASH; break; } - if (Creature* creature = go->SummonCreature(uiCreature, 2502.635f, 844.140f, 46.896f, 0.633f)) + if (GameObject* go = instance->GetGameObject(goGongGUID)) { - if (uiGongWaves == 10 || uiGongWaves == 1) + for (uint8 i = summonLowRange; i < summonHighRange; ++i) { - for (uint8 i = 0; i < uiSummonTimes; ++i) - { - if (Creature* summon = go->SummonCreature(uiCreature, 2502.635f + float(irand(-5, 5)), 844.140f + float(irand(-5, 5)), 46.896f, 0.633f)) - summon->GetMotionMaster()->MovePoint(0, 2533.479f + float(irand(-5, 5)), 870.020f + float(irand(-5, 5)), 47.678f); - } + Creature* creature = go->SummonCreature(summonCreature, PosSummonTutenkash[i]); + creature->GetMotionMaster()->MovePoint(0, 2533.479f + float(irand(-5, 5)), 870.020f + float(irand(-5, 5)), 47.678f); } - creature->GetMotionMaster()->MovePoint(0, 2533.479f + float(irand(-5, 5)), 870.020f + float(irand(-5, 5)), 47.678f); } + + ++gongWave; break; } - default: + case NPC_TOMB_FIEND: + if (++fiendsKilled == 10) + { + fiendsKilled = 0; + if (GameObject* go = instance->GetGameObject(goGongGUID)) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + } + break; + case NPC_TOMB_REAVER: + if (++reaversKilled == 4) + { + reaversKilled = 0; + if (GameObject* go = instance->GetGameObject(goGongGUID)) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); + } break; } + } - if (uiType == BOSS_TUTEN_KASH) - { - m_auiEncounter[0] = uiData; + } - if (uiData == DONE) - SaveToDB(); - } + std::string GetSaveData() OVERRIDE + { + OUT_SAVE_INST_DATA; + + std::ostringstream saveStream; + saveStream << "R D " << GetBossSaveData(); + + OUT_SAVE_INST_DATA_COMPLETE; + return saveStream.str(); } - uint32 GetData(uint32 uiType) const OVERRIDE + void Load(const char* str) OVERRIDE { - switch (uiType) + if (!str) { - case DATA_GONG_WAVES: - return uiGongWaves; + OUT_LOAD_INST_DATA_FAIL; + return; } - return 0; - } + OUT_LOAD_INST_DATA(str); - uint64 GetData64(uint32 uiType) const OVERRIDE - { - switch (uiType) + char dataHead1, dataHead2; + + std::istringstream loadStream(str); + loadStream >> dataHead1 >> dataHead2; + + if (dataHead1 == 'R' && dataHead2 == 'D') { - case DATA_GONG: return uiGongGUID; + for (uint32 i = 0; i < EncounterCount; ++i) + { + uint32 tmpState; + loadStream >> tmpState; + if (tmpState == IN_PROGRESS || tmpState > SPECIAL) + tmpState = NOT_STARTED; + SetBossState(i, EncounterState(tmpState)); + } } + else + OUT_LOAD_INST_DATA_FAIL; - return 0; + OUT_LOAD_INST_DATA_COMPLETE; } + + protected: + uint64 goGongGUID; + uint16 gongWave; + uint8 fiendsKilled; + uint8 reaversKilled; + uint8 summonLowRange; + uint8 summonHighRange; + uint32 summonCreature; }; + InstanceScript* GetInstanceScript(InstanceMap* map) const OVERRIDE + { + return new instance_razorfen_downs_InstanceMapScript(map); + } }; void AddSC_instance_razorfen_downs() diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp index 320c9970077..f81d634e019 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp @@ -32,6 +32,11 @@ EndContentData */ #include "ScriptedGossip.h" #include "razorfen_downs.h" #include "Player.h" +#include "GridDefines.h" +#include "GridNotifiers.h" +#include "GridNotifiersImpl.h" +#include "ObjectDefines.h" +#include "ObjectMgr.h" /*### # npc_henry_stern @@ -101,32 +106,272 @@ public: }; /*###### -## go_gong +## npc_belnistrasz for Quest 3525 "Extinguishing the Idol" ######*/ -class go_gong : public GameObjectScript +Position const PosSummonSpawner[3] = +{ + { 2582.789f, 954.3925f, 52.48214f, 3.787364f }, + { 2569.42f, 956.3801f, 52.27323f, 5.427974f }, + { 2570.62f, 942.3934f, 53.7433f, 0.715585f } +}; + +enum Belnistrasz +{ + EVENT_CHANNEL = 1, + EVENT_IDOL_ROOM_SPAWNER = 2, + EVENT_PROGRESS = 3, + EVENT_COMPLETE = 4, + EVENT_FIREBALL = 5, + EVENT_FROST_NOVA = 6, + + FACTION_ESCORT = 250, + + PATH_ESCORT = 871710, + POINT_REACH_IDOL = 17, + + QUEST_EXTINGUISHING_THE_IDOL = 3525, + + SAY_QUEST_ACCEPTED = 0, + SAY_EVENT_START = 1, + SAY_EVENT_THREE_MIN_LEFT = 2, + SAY_EVENT_TWO_MIN_LEFT = 3, + SAY_EVENT_ONE_MIN_LEFT = 4, + SAY_EVENT_END = 5, + SAY_AGGRO = 6, // Combat + SAY_WATCH_OUT = 7, // 25% chance to target random creature and say on wave spawn + + SPELL_ARCANE_INTELLECT = 13326, + SPELL_FIREBALL = 9053, + SPELL_FROST_NOVA = 11831, + SPELL_IDOL_SHUTDOWN_VISUAL = 12774, // Hits Unit Entry: 8662 + SPELL_IDOM_ROOM_CAMERA_SHAKE = 12816 // Dummy needs scripting +}; + +class npc_belnistrasz : public CreatureScript { public: - go_gong() : GameObjectScript("go_gong") { } + npc_belnistrasz() : CreatureScript("npc_belnistrasz") { } - bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE + struct npc_belnistraszAI : public ScriptedAI { - //basic support, not blizzlike data is missing... - InstanceScript* instance = go->GetInstanceScript(); + npc_belnistraszAI(Creature* creature) : ScriptedAI(creature) + { + instance = creature->GetInstanceScript(); + eventInProgress = false; + } - if (instance) + void Reset() OVERRIDE { - instance->SetData(DATA_GONG_WAVES, instance->GetData(DATA_GONG_WAVES)+1); - return true; + if (!eventInProgress) + { + if (!me->HasAura(SPELL_ARCANE_INTELLECT)) + DoCast(me, SPELL_ARCANE_INTELLECT); + + channeling = false; + eventProgress = 0; + spawnerCount = 0; + me->SetFlag(UNIT_NPC_FLAGS, GOSSIP_OPTION_QUESTGIVER); + } } - return false; + void EnterCombat(Unit* who) OVERRIDE + { + if (channeling) + { + Talk(SAY_WATCH_OUT, who->GetGUID()); + } + else + { + events.ScheduleEvent(EVENT_FIREBALL, 1000); + events.ScheduleEvent(EVENT_FROST_NOVA, urand(8000, 12000)); + if (urand(0, 100) > 40) + Talk(SAY_AGGRO, who->GetGUID()); + } + } + + void JustDied(Unit* /*killer*/) OVERRIDE + { + instance->SetBossState(DATA_EXTINGUISHING_THE_IDOL, DONE); + me->DespawnOrUnsummon(5000); + } + + void sQuestAccept(Player* /*player*/, Quest const* quest) OVERRIDE + { + if (quest->GetQuestId() == QUEST_EXTINGUISHING_THE_IDOL) + { + eventInProgress = true; + Talk(SAY_QUEST_ACCEPTED); + me->RemoveFlag(UNIT_NPC_FLAGS, GOSSIP_OPTION_QUESTGIVER); + me->setFaction(FACTION_ESCORT); + me->GetMotionMaster()->MovePath(PATH_ESCORT, false); + } + } + + void MovementInform(uint32 type, uint32 id) OVERRIDE + { + if (type == WAYPOINT_MOTION_TYPE && id == POINT_REACH_IDOL) + { + channeling = true; + events.ScheduleEvent(EVENT_CHANNEL, 2000); + } + } + + void UpdateAI(uint32 diff) OVERRIDE + { + if (!eventInProgress) + return; + + events.Update(diff); + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_CHANNEL: + Talk(SAY_EVENT_START); + DoCast(me, SPELL_IDOL_SHUTDOWN_VISUAL); + events.ScheduleEvent(EVENT_IDOL_ROOM_SPAWNER, 100); + events.ScheduleEvent(EVENT_PROGRESS, 120000); + break; + case EVENT_IDOL_ROOM_SPAWNER: + if (Creature* creature = me->SummonCreature(NPC_IDOL_ROOM_SPAWNER, PosSummonSpawner[urand(0,2)], TEMPSUMMON_TIMED_DESPAWN, 4000)) + creature->AI()->SetData(0,spawnerCount); + if (++spawnerCount < 8) + events.ScheduleEvent(EVENT_IDOL_ROOM_SPAWNER, 35000); + break; + case EVENT_PROGRESS: + { + switch (eventProgress) + { + case 0: + Talk(SAY_EVENT_THREE_MIN_LEFT); + ++eventProgress; + events.ScheduleEvent(EVENT_PROGRESS, 60000); + break; + case 1: + Talk(SAY_EVENT_TWO_MIN_LEFT); + ++eventProgress; + events.ScheduleEvent(EVENT_PROGRESS, 60000); + break; + case 2: + Talk(SAY_EVENT_ONE_MIN_LEFT); + ++eventProgress; + events.ScheduleEvent(EVENT_PROGRESS, 60000); + break; + case 3: + events.CancelEvent(EVENT_IDOL_ROOM_SPAWNER); + me->InterruptSpell(CURRENT_CHANNELED_SPELL); + Talk(SAY_EVENT_END); + events.ScheduleEvent(EVENT_COMPLETE, 3000); + break; + } + break; + } + case EVENT_COMPLETE: + { + DoCast(me, SPELL_IDOM_ROOM_CAMERA_SHAKE); + me->SummonGameObject(GO_BELNISTRASZS_BRAZIER, 2577.196f, 947.0781f, 53.16757f, 2.356195f, 0, 0, 0.9238796f, 0.3826832f, 3600000); + std::list ClusterList; + Trinity::AllWorldObjectsInRange objects(me, 50.0f); + Trinity::WorldObjectListSearcher searcher(me, ClusterList, objects); + me->VisitNearbyObject(50.0f, searcher); + for (std::list::const_iterator itr = ClusterList.begin(); itr != ClusterList.end(); ++itr) + { + if (Player* player = (*itr)->ToPlayer()) + { + if (player->GetQuestStatus(QUEST_EXTINGUISHING_THE_IDOL) == QUEST_STATUS_INCOMPLETE) + player->CompleteQuest(QUEST_EXTINGUISHING_THE_IDOL); + } + else if (GameObject* go = (*itr)->ToGameObject()) + { + if (go->GetEntry() == GO_IDOL_OVEN_FIRE || go->GetEntry() == GO_IDOL_CUP_FIRE || go->GetEntry() == GO_IDOL_MOUTH_FIRE) + go->Delete(); + } + } + instance->SetBossState(DATA_EXTINGUISHING_THE_IDOL, DONE); + me->DespawnOrUnsummon(); + break; + } + case EVENT_FIREBALL: + if (me->HasUnitState(UNIT_STATE_CASTING) || !UpdateVictim()) + return; + DoCastVictim(SPELL_FIREBALL); + events.ScheduleEvent(EVENT_FIREBALL, 8000); + break; + case EVENT_FROST_NOVA: + if (me->HasUnitState(UNIT_STATE_CASTING) || !UpdateVictim()) + return; + DoCast(me, SPELL_FROST_NOVA); + events.ScheduleEvent(EVENT_FROST_NOVA, 15000); + break; + } + } + if (!channeling) + DoMeleeAttackIfReady(); + } + + private: + InstanceScript* instance; + EventMap events; + bool eventInProgress; + bool channeling; + uint8 eventProgress; + uint8 spawnerCount; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_belnistraszAI(creature); } +}; + +class npc_idol_room_spawner : public CreatureScript +{ +public: + npc_idol_room_spawner() : CreatureScript("npc_idol_room_spawner") { } + + struct npc_idol_room_spawnerAI : public ScriptedAI + { + npc_idol_room_spawnerAI(Creature* creature) : ScriptedAI(creature) + { + instance = creature->GetInstanceScript(); + } + + void Reset() OVERRIDE { } + void SetData(uint32 /*type*/, uint32 data) OVERRIDE + { + if(!instance) + return; + + if (data < 7) + { + me->SummonCreature(NPC_WITHERED_BATTLE_BOAR, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); + if (data > 0 && me->GetOrientation() < 4.0f) + me->SummonCreature(NPC_WITHERED_BATTLE_BOAR, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); + me->SummonCreature(NPC_DEATHS_HEAD_GEOMANCER, me->GetPositionX() + (cos(me->GetOrientation() - (M_PI/2)) * 2), me->GetPositionY() + (sin(me->GetOrientation() - (M_PI/2)) * 2), me->GetPositionZ(), me->GetOrientation()); + me->SummonCreature(NPC_WITHERED_QUILGUARD, me->GetPositionX() + (cos(me->GetOrientation() + (M_PI/2)) * 2), me->GetPositionY() + (sin(me->GetOrientation() + (M_PI/2)) * 2), me->GetPositionZ(), me->GetOrientation()); + } + else if (data =7) + me->SummonCreature(NPC_PLAGUEMAW_THE_ROTTING, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); + } + + private: + InstanceScript* instance; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_idol_room_spawnerAI(creature); + } }; enum TombCreature { + EVENT_WEB = 7, + SPELL_POISON_PROC = 3616, + SPELL_VIRULENT_POISON_PROC = 12254, SPELL_WEB = 745 }; @@ -135,11 +380,6 @@ class npc_tomb_creature : public CreatureScript public: npc_tomb_creature() : CreatureScript("npc_tomb_creature") { } - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_tomb_creatureAI(creature); - } - struct npc_tomb_creatureAI : public ScriptedAI { npc_tomb_creatureAI(Creature* creature) : ScriptedAI(creature) @@ -147,45 +387,86 @@ public: instance = creature->GetInstanceScript(); } - InstanceScript* instance; + void Reset() OVERRIDE + { + if (!me->HasAura(SPELL_POISON_PROC) && me->GetEntry() == NPC_TOMB_FIEND) + DoCast(me, SPELL_POISON_PROC); - uint32 uiWebTimer; + if (!me->HasAura(SPELL_VIRULENT_POISON_PROC) && me->GetEntry() == NPC_TOMB_REAVER) + DoCast(me, SPELL_VIRULENT_POISON_PROC); + } - void Reset() OVERRIDE + void JustDied(Unit* /*killer*/) OVERRIDE + { + if (instance) + instance->SetData(DATA_WAVE, me->GetEntry()); + } + + void EnterCombat(Unit* /*who*/) OVERRIDE { - uiWebTimer = urand(5000, 8000); + events.ScheduleEvent(EVENT_WEB, urand(5000, 8000)); } - void UpdateAI(uint32 uiDiff) OVERRIDE + void UpdateAI(uint32 diff) OVERRIDE { if (!UpdateVictim()) return; - //from acid - if (me->GetEntry() == NPC_TOMB_REAVER) + events.Update(diff); + + while (uint32 eventId = events.ExecuteEvent()) { - if (uiWebTimer <= uiDiff) + switch (eventId) { - DoCastVictim(SPELL_WEB); - uiWebTimer = urand(7000, 16000); - } else uiWebTimer -= uiDiff; + case EVENT_WEB: + DoCastVictim(SPELL_WEB); + events.ScheduleEvent(EVENT_WEB, urand(7000, 16000)); + break; + } } - DoMeleeAttackIfReady(); } - void JustDied(Unit* /*killer*/) OVERRIDE + private: + InstanceScript* instance; + EventMap events; + }; + + CreatureAI* GetAI(Creature* creature) const OVERRIDE + { + return new npc_tomb_creatureAI(creature); + } +}; + +/*###### +## go_gong +######*/ + +class go_gong : public GameObjectScript +{ +public: + go_gong() : GameObjectScript("go_gong") { } + + bool OnGossipHello(Player* /*player*/, GameObject* go) OVERRIDE + { + InstanceScript* instance = go->GetInstanceScript(); + + if (instance) { - if (instance) - instance->SetData(DATA_GONG_WAVES, instance->GetData(DATA_GONG_WAVES)+1); + go->SendCustomAnim(0); + instance->SetData(DATA_WAVE, IN_PROGRESS); + return true; } - }; + return false; + } }; void AddSC_razorfen_downs() { new npc_henry_stern(); - new go_gong(); + new npc_belnistrasz(); + new npc_idol_room_spawner(); new npc_tomb_creature(); + new go_gong(); } diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h index c0f63474f23..9fe5314fda0 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h @@ -18,27 +18,56 @@ #ifndef DEF_RAZORFEN_DOWNS_H #define DEF_RAZORFEN_DOWNS_H -enum Data +#define RFDScriptName "instance_razorfen_downs" + +uint32 const EncounterCount = 5; + +enum DataTypes { - BOSS_TUTEN_KASH, - DATA_GONG_WAVES + // Main Bosses + DATA_TUTEN_KASH = 0, + DATA_MORDRESH_FIRE_EYE = 1, + DATA_GLUTTON = 2, + DATA_AMNENNAR_THE_COLD_BRINGER = 3, + // Events + DATA_GONG = 4, + DATA_WAVE = 5, + DATA_EXTINGUISHING_THE_IDOL = 6 }; -enum Data64 +enum CreatureIds { - DATA_GONG + // Used in Tuten Kash summon event + NPC_TOMB_FIEND = 7349, + NPC_TOMB_REAVER = 7351, + NPC_TUTEN_KASH = 7355, + // Used for quest 3525 "Extinguishing the Idol" + NPC_IDOL_ROOM_SPAWNER = 8611, + NPC_WITHERED_BATTLE_BOAR = 7333, + NPC_DEATHS_HEAD_GEOMANCER = 7335, + NPC_WITHERED_QUILGUARD = 7329, + NPC_PLAGUEMAW_THE_ROTTING = 7356 }; enum GameObjectIds { - GO_GONG = 148917 + // Used for Tuten Kash summon event + GO_GONG = 148917, + // Used for quest 3525 "Extinguishing the Idol" + GO_IDOL_OVEN_FIRE = 151951, + GO_IDOL_CUP_FIRE = 151952, + GO_IDOL_MOUTH_FIRE = 151973, + GO_BELNISTRASZS_BRAZIER = 152097 }; -enum CreatureId +template +CreatureAI* GetRazorfenDownsAI(Creature* creature) { - NPC_TOMB_FIEND = 7349, - NPC_TOMB_REAVER = 7351, - NPC_TUTEN_KASH = 7355 -}; + if (InstanceMap* instance = creature->GetMap()->ToInstanceMap()) + if (instance->GetInstanceScript()) + if (instance->GetScriptId() == sObjectMgr->GetScriptId(RFDScriptName)) + return new AI(creature); + return NULL; +} #endif -- cgit v1.2.3 From 2ed05e487d5df4d7f8d97898d14fc4802089ffdf Mon Sep 17 00:00:00 2001 From: Vincent_Michael Date: Sun, 8 Dec 2013 02:06:55 +0100 Subject: Core: Fix non pch build --- src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp index f81d634e019..e2c83b9a445 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp @@ -32,11 +32,10 @@ EndContentData */ #include "ScriptedGossip.h" #include "razorfen_downs.h" #include "Player.h" -#include "GridDefines.h" #include "GridNotifiers.h" #include "GridNotifiersImpl.h" -#include "ObjectDefines.h" -#include "ObjectMgr.h" +#include "Cell.h" +#include "CellImpl.h" /*### # npc_henry_stern -- cgit v1.2.3