aboutsummaryrefslogtreecommitdiff
path: root/src/scripts/kalimdor/silithus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scripts/kalimdor/silithus.cpp')
-rw-r--r--src/scripts/kalimdor/silithus.cpp1140
1 files changed, 0 insertions, 1140 deletions
diff --git a/src/scripts/kalimdor/silithus.cpp b/src/scripts/kalimdor/silithus.cpp
deleted file mode 100644
index 6383284011f..00000000000
--- a/src/scripts/kalimdor/silithus.cpp
+++ /dev/null
@@ -1,1140 +0,0 @@
-/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* ScriptData
-SDName: Silithus
-SD%Complete: 100
-SDComment: Quest support: 7785, 8304, 8507.
-SDCategory: Silithus
-EndScriptData */
-
-/* ContentData
-npc_highlord_demitrian
-npcs_rutgar_and_frankal
-quest_a_pawn_on_the_eternal_pawn
-EndContentData */
-
-#include "ScriptedPch.h"
-
-/*###
-## npc_highlord_demitrian
-###*/
-
-#define GOSSIP_DEMITRIAN1 "What do you know of it?"
-#define GOSSIP_DEMITRIAN2 "I am listening , Demitrian."
-#define GOSSIP_DEMITRIAN3 "Continue, please."
-#define GOSSIP_DEMITRIAN4 "A battle?"
-#define GOSSIP_DEMITRIAN5 "<Nod>"
-#define GOSSIP_DEMITRIAN6 "Caught unaware? How?"
-#define GOSSIP_DEMITRIAN7 "So what did Ragnaros do next?"
-
-bool GossipHello_npc_highlord_demitrian(Player* pPlayer, Creature* pCreature)
-{
- if (pCreature->isQuestGiver())
- pPlayer->PrepareQuestMenu(pCreature->GetGUID());
-
- if (pPlayer->GetQuestStatus(7785) == QUEST_STATUS_NONE &&
- (pPlayer->HasItemCount(18563,1,false) || pPlayer->HasItemCount(18564,1,false)))
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
-
- pPlayer->SEND_GOSSIP_MENU(6812, pCreature->GetGUID());
- return true;
-}
-
-bool GossipSelect_npc_highlord_demitrian(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
-{
- switch (uiAction)
- {
- case GOSSIP_ACTION_INFO_DEF:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- pPlayer->SEND_GOSSIP_MENU(6842, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+1:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- pPlayer->SEND_GOSSIP_MENU(6843, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
- pPlayer->SEND_GOSSIP_MENU(6844, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
- pPlayer->SEND_GOSSIP_MENU(6867, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+4:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
- pPlayer->SEND_GOSSIP_MENU(6868, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+5:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
- pPlayer->SEND_GOSSIP_MENU(6869, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+6:
- pPlayer->SEND_GOSSIP_MENU(6870, pCreature->GetGUID());
-
- ItemPosCountVec dest;
- uint8 msg = pPlayer->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 19016, 1);
- if (msg == EQUIP_ERR_OK)
- pPlayer->StoreNewItem(dest, 19016, true);
- break;
- }
- return true;
-}
-
-/*###
-## npcs_rutgar_and_frankal
-###*/
-
-//gossip item text best guess
-#define GOSSIP_ITEM1 "I seek information about Natalia"
-
-#define GOSSIP_ITEM2 "That sounds dangerous!"
-#define GOSSIP_ITEM3 "What did you do?"
-#define GOSSIP_ITEM4 "Who?"
-#define GOSSIP_ITEM5 "Women do that. What did she demand?"
-#define GOSSIP_ITEM6 "What do you mean?"
-#define GOSSIP_ITEM7 "What happened next?"
-
-#define GOSSIP_ITEM11 "Yes, please continue"
-#define GOSSIP_ITEM12 "What language?"
-#define GOSSIP_ITEM13 "The Priestess attacked you?!"
-#define GOSSIP_ITEM14 "I should ask the monkey about this"
-#define GOSSIP_ITEM15 "Then what..."
-
-//trigger creatures to kill
-#define TRIGGER_RUTGAR 15222
-#define TRIGGER_FRANKAL 15221
-
-bool GossipHello_npcs_rutgar_and_frankal(Player* pPlayer, Creature* pCreature)
-{
- if (pCreature->isQuestGiver())
- pPlayer->PrepareQuestMenu(pCreature->GetGUID());
-
- if (pPlayer->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
- pCreature->GetEntry() == 15170 &&
- !pPlayer->GetReqKillOrCastCurrentCount(8304, TRIGGER_RUTGAR))
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
-
- if (pPlayer->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
- pCreature->GetEntry() == 15171 &&
- pPlayer->GetReqKillOrCastCurrentCount(8304, TRIGGER_RUTGAR))
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
-
- pPlayer->SEND_GOSSIP_MENU(7754, pCreature->GetGUID());
-
- return true;
-}
-
-bool GossipSelect_npcs_rutgar_and_frankal(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
-{
- switch (uiAction)
- {
- case GOSSIP_ACTION_INFO_DEF:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- pPlayer->SEND_GOSSIP_MENU(7755, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 1:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- pPlayer->SEND_GOSSIP_MENU(7756, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 2:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- pPlayer->SEND_GOSSIP_MENU(7757, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 3:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- pPlayer->SEND_GOSSIP_MENU(7758, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 4:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
- pPlayer->SEND_GOSSIP_MENU(7759, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 5:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
- pPlayer->SEND_GOSSIP_MENU(7760, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 6:
- pPlayer->SEND_GOSSIP_MENU(7761, pCreature->GetGUID());
- //'kill' our trigger to update quest status
- pPlayer->KilledMonsterCredit(TRIGGER_RUTGAR, pCreature->GetGUID());
- break;
-
- case GOSSIP_ACTION_INFO_DEF + 9:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM11, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
- pPlayer->SEND_GOSSIP_MENU(7762, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 10:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM12, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
- pPlayer->SEND_GOSSIP_MENU(7763, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 11:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM13, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
- pPlayer->SEND_GOSSIP_MENU(7764, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 12:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM14, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
- pPlayer->SEND_GOSSIP_MENU(7765, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 13:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM15, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
- pPlayer->SEND_GOSSIP_MENU(7766, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 14:
- pPlayer->SEND_GOSSIP_MENU(7767, pCreature->GetGUID());
- //'kill' our trigger to update quest status
- pPlayer->KilledMonsterCredit(TRIGGER_FRANKAL, pCreature->GetGUID());
- break;
- }
- return true;
-}
-
-/*####
-# quest_a_pawn_on_the_eternal_board (Defines)
-####*/
-enum eEternalBoard
-{
- QUEST_A_PAWN_ON_THE_ETERNAL_BOARD = 8519,
-
- FACTION_HOSTILE = 14,
- FACTION_FRIENDLY = 35,
-
- C_ANACHRONOS = 15381,
- C_FANDRAL_STAGHELM = 15382,
- C_ARYGOS = 15380,
- C_MERITHRA = 15378,
- C_CAELESTRASZ = 15379,
-
- ANACHRONOS_SAY_1 = -1350000,
- ANACHRONOS_SAY_2 = -1350001,
- ANACHRONOS_SAY_3 = -1350002,
- ANACHRONOS_SAY_4 = -1350003,
- ANACHRONOS_SAY_5 = -1350004,
- ANACHRONOS_SAY_6 = -1350005,
- ANACHRONOS_SAY_7 = -1350006,
- ANACHRONOS_SAY_8 = -1350007,
- ANACHRONOS_SAY_9 = -1350008,
- ANACHRONOS_SAY_10 = -1350009,
- ANACHRONOS_EMOTE_1 = -1350010,
- ANACHRONOS_EMOTE_2 = -1350011,
- ANACHRONOS_EMOTE_3 = -1350012,
-
- FANDRAL_SAY_1 = -1350013,
- FANDRAL_SAY_2 = -1350014,
- FANDRAL_SAY_3 = -1350015,
- FANDRAL_SAY_4 = -1350016,
- FANDRAL_SAY_5 = -1350017,
- FANDRAL_SAY_6 = -1350018,
- FANDRAL_EMOTE_1 = -1350019,
- FANDRAL_EMOTE_2 = -1350020,
-
- CAELESTRASZ_SAY_1 = -1350021,
- CAELESTRASZ_SAY_2 = -1350022,
- CAELESTRASZ_YELL_1 = -1350023,
-
- ARYGOS_SAY_1 = -1350024,
- ARYGOS_YELL_1 = -1350025,
- ARYGOS_EMOTE_1 = -1350026,
-
- MERITHRA_SAY_1 = -1350027,
- MERITHRA_SAY_2 = -1350028,
- MERITHRA_YELL_1 = -1350029,
- MERITHRA_EMOTE_1 = -1350030,
-
- GO_GATE_OF_AHN_QIRAJ = 176146,
- GO_GLYPH_OF_AHN_QIRAJ = 176148,
- GO_ROOTS_OF_AHN_QIRAJ = 176147
-};
-/*#####
-# Quest: A Pawn on the Eternal Board
-#####*/
-
-/* ContentData
-A Pawn on the Eternal Board - creatures, gameobjects and defines
-mob_qiraj_war_spawn : Adds that are summoned in the Qiraj gates battle.
-npc_anachronos_the_ancient : Creature that controls the event.
-npc_anachronos_quest_trigger: controls the spawning of the BG War mobs.
-go_crystalline_tear : GameObject that begins the event and hands out quest
-TO DO: get correct spell IDs and timings for spells cast upon dragon transformations
-TO DO: Dragons should use the HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF) after transformation,but for some unknown reason it doesnt work.
-EndContentData */
-
-#define QUEST_A_PAWN_ON_THE_ETERNAL_BOARD 8519
-#define EVENT_AREA_RADIUS 65 //65yds
-#define EVENT_COOLDOWN 500000 //in ms. appear after event completed or failed (should be = Adds despawn time)
-
-struct QuestCinematic
-{
- int32 TextId;
- uint32 Creature, Timer;
-};
-
-// Creature 0 - Anachronos, 1 - Fandral, 2 - Arygos, 3 - Merithra, 4 - Caelestrasz
-static QuestCinematic EventAnim[]=
-{
- {ANACHRONOS_SAY_1, 0, 2000},
- {FANDRAL_SAY_1, 1, 4000},
- {MERITHRA_EMOTE_1, 3, 500},
- {MERITHRA_SAY_1, 3, 500},
- {ARYGOS_EMOTE_1, 2, 2000},
- {CAELESTRASZ_SAY_1, 4, 8000},
- {MERITHRA_SAY_2, 3, 6000},
- {NULL,3,2000},
- {MERITHRA_YELL_1, 3, 2500},
- {NULL, 3, 3000},//Morph
- {NULL,3,4000},//EmoteLiftoff
- {NULL, 3, 4000},// spell
- {NULL, 3, 1250},//fly
- {NULL, 3, 250},//remove flags
- {ARYGOS_SAY_1, 2, 3000},
- {NULL,3,2000},
- {ARYGOS_YELL_1, 2, 3000},
- {NULL, 3, 3000},//Morph
- {NULL,3,4000},//EmoteLiftoff
- {NULL, 3, 4000},// spell
- {NULL, 3, 1000},//fly
- {NULL, 3, 1000},//remove flags
- {CAELESTRASZ_SAY_2, 4, 5000},
- {NULL,3,3000},
- {CAELESTRASZ_YELL_1, 4, 3000},
- {NULL, 3, 3000},//Morph
- {NULL,3,4000},//EmoteLiftoff
- {NULL, 3, 2500},// spell
- {ANACHRONOS_SAY_2, 0, 2000},
- {NULL, 3, 250},//fly
- {NULL, 3, 25},//remove flags
- {FANDRAL_SAY_2, 1, 3000},
- {ANACHRONOS_SAY_3, 0, 10000},//Both run through the armies
- {NULL,3,2000},// Sands will stop
- {NULL,3,8000},// Summon Gate
- {ANACHRONOS_SAY_4, 0, 4000},
- {NULL, 0, 2000},//spell 1-> Arcane cosmetic (Mobs freeze)
- {NULL, 0, 5000}, //Spell 2-> Arcane long cosmetic (barrier appears) (Barrier -> Glyphs)
- {NULL, 0, 7000},//BarrieR
- {NULL, 0, 4000},//Glyphs
- {ANACHRONOS_SAY_5, 0, 2000},
- {NULL, 0, 4000},// Roots
- {FANDRAL_SAY_3, 1, 3000},//Root Text
- {FANDRAL_EMOTE_1, 1, 3000},//falls knee
- {ANACHRONOS_SAY_6, 0, 3000},
- {ANACHRONOS_SAY_7, 0, 3000},
- {ANACHRONOS_SAY_8, 0, 8000},
- {ANACHRONOS_EMOTE_1, 0, 1000},//Give Scepter
- {FANDRAL_SAY_4, 1, 3000},
- {FANDRAL_SAY_5, 1, 3000},//->Equip hammer~Scepter, throw it at door
- {FANDRAL_EMOTE_2, 1, 3000},//Throw hammer at door.
- {ANACHRONOS_SAY_9, 0, 3000},
- {FANDRAL_SAY_6, 1, 3000}, //fandral goes away
- {ANACHRONOS_EMOTE_2, 0, 3000},
- {ANACHRONOS_EMOTE_3, 0, 3000},
- {NULL, 0, 2000},
- {NULL, 0, 2000},
- {NULL, 0, 4000},
- {ANACHRONOS_SAY_10, 0, 3000},
- {NULL, 0, 2000},
- {NULL, 0, 3000},
- {NULL, 0, 15000},
- {NULL, 0, 5000},
- {NULL, 0, 3500},
- {NULL, 0, 5000},
- {NULL, 0, 3500},
- {NULL, 0, 5000},
- {NULL, 0, NULL}
-};
-
-struct Location
-{
- float x, y, z, o;
-};
-
-//Cordinates for Spawns
-static Location SpawnLocation[]=
-{
- {-8085, 1528, 2.61, 3.141592},//Kaldorei Infantry
- {-8080, 1526, 2.61, 3.141592},//Kaldorei Infantry
- {-8085, 1524, 2.61, 3.141592},//Kaldorei Infantry
- {-8080, 1522, 2.61, 3.141592},//Kaldorei Infantry
- {-8085, 1520, 2.61, 3.141592},//Kaldorei Infantry
-
- {-8085, 1524, 2.61, 3.141592},//Kaldorei Infantry
- {-8080, 1522, 2.61, 3.141592},//Kaldorei Infantry
- {-8085, 1520, 2.61, 3.141592},//Kaldorei Infantry
- {-8080, 1518, 2.61, 3.141592},//Kaldorei Infantry
- {-8085, 1516, 2.61, 3.141592},//Kaldorei Infantry
-
- {-8085, 1518, 2.61, 3.141592},//Kaldorei Infantry
- {-8080, 1516, 2.61, 3.141592},//Kaldorei Infantry
- {-8080, 1520, 2.61, 3.141592},//Kaldorei Infantry
- {-8080, 1424, 2.61, 3.141592},//Kaldorei Infantry
- {-8085, 1422, 2.61, 3.141592},//Kaldorei Infantry
- // 2 waves of warriors
- {-8082, 1528, 2.61, 3.141592},//Kaldorei Infantry
- {-8078, 1525, 2.61, 3.141592},//Kaldorei Infantry
- {-8082, 1524, 2.61, 3.141592},//Kaldorei Infantry
- {-8078, 1526, 2.61, 3.141592},//Kaldorei Infantry
- {-8082, 1527, 2.61, 3.141592},//Kaldorei Infantry
-
- {-8082, 1524, 2.61, 3.141592},//Kaldorei Infantry
- {-8078, 1522, 2.61, 3.141592},//Kaldorei Infantry
- {-8082, 1520, 2.61, 3.141592},//Kaldorei Infantry
- {-8078, 1518, 2.61, 3.141592},//Kaldorei Infantry
- {-8082, 1516, 2.61, 3.141592},//Kaldorei Infantry
-
- {-8082, 1523, 2.61, 3.141592},//Kaldorei Infantry
- {-8078, 1521, 2.61, 3.141592},//Kaldorei Infantry
- {-8082, 1528, 2.61, 3.141592},//Kaldorei Infantry
- {-8078, 1519, 2.61, 3.141592},//Kaldorei Infantry
- {-8082, 1526, 2.61, 3.141592},//Kaldorei Infantry
-
- {-8082, 1524, 2.61, 3.141592},//Kaldorei Infantry
- {-8078, 1522, 2.61, 3.141592},//Kaldorei Infantry
- {-8082, 1520, 2.61, 3.141592},//Kaldorei Infantry
- {-8078, 1518, 2.61, 3.141592},//Kaldorei Infantry
- {-8082, 1516, 2.61, 3.141592},//Kaldorei Infantry
-
- {-8088, 1510, 2.61, 0},//Anubisath Conqueror
- {-8084, 1520, 2.61, 0},//Anubisath Conqueror
- {-8088, 1530, 2.61, 0},//Anubisath Conqueror
-
- {-8080, 1513, 2.61, 0},//Qiraj Wasp
- {-8082, 1523, 2.61, 0},//Qiraj Wasp
- {-8085, 1518, 2.61, 0},//Qiraj Wasp
- {-8082, 1516, 2.61, 0},//Qiraj Wasp
- {-8085, 1520, 2.61, 0},//Qiraj Wasp
- {-8080, 1528, 2.61, 0},//Qiraj Wasp
-
- {-8082, 1513, 2.61, 0},//Qiraj Wasp
- {-8079, 1523, 2.61, 0},//Qiraj Wasp
- {-8080, 1531, 2.61, 0},//Qiraj Wasp
- {-8079, 1516, 2.61, 0},//Qiraj Wasp
- {-8082, 1520, 2.61, 0},//Qiraj Wasp
- {-8080, 1518, 2.61, 0},//Qiraj Wasp
-
- {-8081, 1514, 2.61, 0},//Qiraj Tank
- {-8081, 1520, 2.61, 0},//Qiraj Tank
- {-8081, 1526, 2.61, 0},//Qiraj Tank
- {-8081, 1512, 2.61, 0},//Qiraj Tank
- {-8082, 1520, 2.61, 0},//Qiraj Tank
- {-8081, 1528, 2.61, 0},//Qiraj Tank
-
- {-8082, 1513, 2.61, 3.141592},//Anubisath Conqueror
- {-8082, 1520, 2.61, 3.141592},//Anubisath Conqueror
- {-8082, 1527, 2.61, 3.141592},//Anubisath Conqueror
-};
-
-struct WaveData
-{
- uint8 SpawnCount, UsedSpawnPoint;
- uint32 CreatureId, SpawnTimer, YellTimer, DespTimer;
- int32 WaveTextId;
-};
-
-static WaveData WavesInfo[] =
-{
- {30, 0, 15423, 0, 0,24000, NULL}, //Kaldorei Soldier
- {3, 35, 15424, 0, 0,24000, NULL}, //Anubisath Conqueror
- {12, 38, 15414, 0, 0,24000, NULL}, //Qiraji Wasps
- {6, 50, 15422, 0, 0,24000, NULL}, //Qiraji Tanks
- {15, 15, 15423, 0, 0,24000, NULL} //Kaldorei Soldier
-
-};
-
-struct SpawnSpells
-{
- uint32 Timer1, Timer2, SpellId;
-};
-
-static SpawnSpells SpawnCast[]=//
-{
- {100000, 2000, 33652}, // Stop Time
- {38500, 300000, 28528}, // Poison Cloud
- {58000, 300000, 35871}, // Frost Debuff (need correct spell)
- {80950, 300000, 42075}, // Fire Explosion (need correct spell however this one looks cool)
-};
-/*#####
-# npc_anachronos_the_ancient
-######*/
-struct npc_anachronos_the_ancientAI : public ScriptedAI
-{
- npc_anachronos_the_ancientAI(Creature* c) : ScriptedAI(c) {}
-
- uint32 AnimationTimer;
- uint8 AnimationCount;
-
- uint64 AnachronosQuestTriggerGUID;
- uint64 MerithraGUID;
- uint64 ArygosGUID;
- uint64 CaelestraszGUID;
- uint64 FandralGUID;
- uint64 PlayerGUID;
- bool eventEnd;
-
- void Reset()
- {
- AnimationTimer = 1500;
- AnimationCount = 0;
- AnachronosQuestTriggerGUID = 0;
- MerithraGUID = 0;
- ArygosGUID = 0;
- CaelestraszGUID = 0;
- FandralGUID = 0;
- PlayerGUID = 0;
- eventEnd = false;
-
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
-
- void HandleAnimation()
- {
- Player* plr = Unit::GetPlayer(PlayerGUID);
- if (!plr)
- return;
-
- Unit* Fandral = plr->FindNearestCreature(C_FANDRAL_STAGHELM, 100, me);
- Unit* Arygos = plr->FindNearestCreature(C_ARYGOS, 100,me);
- Unit* Caelestrasz = plr->FindNearestCreature(C_CAELESTRASZ, 100, me);
- Unit* Merithra = plr->FindNearestCreature(C_MERITHRA, 100,me);
-
- if (!Fandral || !Arygos || !Caelestrasz || !Merithra)
- return;
-
- Unit* mob;
- AnimationTimer = EventAnim[AnimationCount].Timer;
- if (eventEnd == false)
- {
- switch(AnimationCount)
- {
- case 0:
- DoScriptText(ANACHRONOS_SAY_1, me , Fandral);
- break;
- case 1:
- Fandral->SetUInt64Value(UNIT_FIELD_TARGET, me->GetGUID());
- DoScriptText(FANDRAL_SAY_1, Fandral,me);
- break;
- case 2:
- Fandral->SetUInt64Value(UNIT_FIELD_TARGET,NULL);
- DoScriptText(MERITHRA_EMOTE_1,Merithra);
- break;
- case 3:
- DoScriptText(MERITHRA_SAY_1,Merithra);
- break;
- case 4:
- DoScriptText(ARYGOS_EMOTE_1,Arygos);
- break;
- case 5:
- Caelestrasz->SetUInt64Value(UNIT_FIELD_TARGET, Fandral->GetGUID());
- DoScriptText(CAELESTRASZ_SAY_1, Caelestrasz);
- break;
- case 6:
- DoScriptText(MERITHRA_SAY_2, Merithra);
- break;
- case 7:
- Caelestrasz->SetUInt64Value(UNIT_FIELD_TARGET, NULL);
- Merithra->GetMotionMaster()->MoveCharge(-8065,1530,2.61,10);
- break;
- case 8:
- DoScriptText(MERITHRA_YELL_1,Merithra);
- break;
- case 9:
- Merithra->CastSpell(Merithra,25105,true);
- break;
- case 10:
- Merithra->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- Merithra->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- Merithra->GetMotionMaster()->MoveCharge(-8065,1530,6.61,3);
- break;
- case 11:
- Merithra->CastSpell(Merithra,24818,false);
- break;
- case 12:
- Merithra->GetMotionMaster()->MoveCharge(-8100,1530,50,42);
- break;
- case 13:
- break;
- case 14:
- DoScriptText(ARYGOS_SAY_1,Arygos);
- Merithra->SetVisibility(VISIBILITY_OFF);
- break;
- case 15:
- Arygos->GetMotionMaster()->MoveCharge(-8065,1530,2.61,10);
- Merithra->GetMotionMaster()->MoveCharge(-8034.535,1535.14,2.61,42);
- break;
- case 16:
- DoScriptText(ARYGOS_YELL_1, Arygos);
- break;
- case 17:
- Arygos->CastSpell(Arygos,25107,true);
- break;
- case 18:
- Arygos->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
- Arygos->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- Arygos->GetMotionMaster()->MoveCharge(-8065,1530,6.61,42);
- break;
- case 19:
- Arygos->CastSpell(Arygos,50505,false);
- break;
- case 20:
- Arygos->GetMotionMaster()->MoveCharge(-8095,1530,50,42);
- break;
- case 21:
- break;
- case 22:
- DoScriptText(CAELESTRASZ_SAY_2,Caelestrasz, Fandral);
- break;
- case 23:
- Caelestrasz->GetMotionMaster()->MoveCharge(-8065,1530,2.61,10);
- Arygos->SetVisibility(VISIBILITY_OFF);
- Arygos->GetMotionMaster()->MoveCharge(-8034.535,1535.14,2.61,10);
- break;
- case 24:
- DoScriptText(CAELESTRASZ_YELL_1, Caelestrasz);
- break;
- case 25:
- Caelestrasz->CastSpell(Caelestrasz,25106,true);
- break;
- case 26:
- Caelestrasz->HandleEmoteCommand(254);
- Caelestrasz->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- Caelestrasz->GetMotionMaster()->MoveCharge(-8065,1530,7.61,4);
- break;
- case 27:
- Caelestrasz->CastSpell(Caelestrasz,54293,false);
- break;
- case 28:
- DoScriptText(ANACHRONOS_SAY_2,me, Fandral);
- break;
- case 29:
- Caelestrasz->GetMotionMaster()->MoveCharge(-8095,1530,50,42);
- DoScriptText(FANDRAL_SAY_2, Fandral, me);
- break;
- case 30:
- break;
- case 31:
- DoScriptText(ANACHRONOS_SAY_3, me, Fandral);
- break;
- case 32:
- Caelestrasz->SetVisibility(VISIBILITY_OFF);
- Caelestrasz->GetMotionMaster()->MoveCharge(-8034.535,1535.14,2.61,42);
- Fandral->GetMotionMaster()->MoveCharge(-8108,1529,2.77,8);
- me->GetMotionMaster()->MoveCharge(-8113,1525,2.77,8);
- break;//both run to the gate
- case 33:
- DoScriptText(ANACHRONOS_SAY_4, me);
- Caelestrasz->GetMotionMaster()->MoveCharge(-8050,1473,65,15);
- break; //Text: sands will stop
- case 34:
- DoCast(plr, 23017, true);//Arcane Channeling
- break;
- case 35:
- me->CastSpell(-8088,1520.43,2.67,25158,true);
- break;
- case 36:
- DoCast(plr, 25159, true);
- break;
- case 37:
- me->SummonGameObject(GO_GATE_OF_AHN_QIRAJ,-8130,1525,17.5,0,0,0,0,0,0);
- break;
- case 38:
- DoCast(plr, 25166, true);
- me->SummonGameObject(GO_GLYPH_OF_AHN_QIRAJ,-8130,1525,17.5,0,0,0,0,0,0);
- break;
- case 39:
- DoScriptText(ANACHRONOS_SAY_5, me, Fandral);
- break;
- case 40:
- Fandral->CastSpell(me, 25167, true);
- break;
- case 41:
- Fandral->SummonGameObject(GO_ROOTS_OF_AHN_QIRAJ,-8130,1525,17.5,0,0,0,0,0,0);
- DoScriptText(FANDRAL_SAY_3, Fandral);
- break;
- case 42:
- me->CastStop();
- DoScriptText(FANDRAL_EMOTE_1, Fandral);
- break;
- case 43:
- Fandral->CastStop();
- break;
- case 44:
- DoScriptText(ANACHRONOS_SAY_6, me);
- break;
- case 45:
- DoScriptText(ANACHRONOS_SAY_7, me);
- break;
- case 46:
- DoScriptText(ANACHRONOS_SAY_8, me);
- me->GetMotionMaster()->MoveCharge(-8110,1527,2.77,4);
- break;
- case 47:
- DoScriptText(ANACHRONOS_EMOTE_1, me);
- break;
- case 48:
- DoScriptText(FANDRAL_SAY_4,Fandral,me);
- break;
- case 49:
- DoScriptText(FANDRAL_SAY_5,Fandral,me);
- break;
- case 50:
- DoScriptText(FANDRAL_EMOTE_2,Fandral);
- Fandral->CastSpell(-8127,1525,17.5,33806,true);
- break;
- case 51:
- {
- uint32 entries[4] = { 15423, 15424, 15414, 15422 };
- for (uint8 i = 0; i < 4; ++i)
- {
- mob = plr->FindNearestCreature(entries[i],50,me);
- while (mob)
- {
- mob->RemoveFromWorld();
- mob = plr->FindNearestCreature(15423,50,me);
- }
- }
- break;
- }
- case 52:
- Fandral->GetMotionMaster()->MoveCharge(-8028.75, 1538.795, 2.61,4);
- DoScriptText(ANACHRONOS_SAY_9, me,Fandral);
- break;
- case 53:
- DoScriptText(FANDRAL_SAY_6,Fandral);
- break;
- case 54:
- DoScriptText(ANACHRONOS_EMOTE_2,me);
- break;
- case 55:
- Fandral->SetVisibility(VISIBILITY_OFF);
- break;
- case 56:
- DoScriptText(ANACHRONOS_EMOTE_3, me);
- me->GetMotionMaster()->MoveCharge(-8116,1522,3.65,4);
- break;
- case 57:
- me->GetMotionMaster()->MoveCharge(-8116.7,1527,3.7,4);
- break;
- case 58:
- me->GetMotionMaster()->MoveCharge(-8112.67,1529.9,2.86,4);
- break;
- case 59:
- me->GetMotionMaster()->MoveCharge(-8117.99,1532.24,3.94,4);
- break;
- case 60:
- if (plr)
- DoScriptText(ANACHRONOS_SAY_10, me,plr);
- me->GetMotionMaster()->MoveCharge(-8113.46,1524.16,2.89,4);
- break;
- case 61:
- me->GetMotionMaster()->MoveCharge(-8057.1,1470.32,2.61,6);
- if (plr->IsInRange(me,0,15))
- plr->GroupEventHappens(QUEST_A_PAWN_ON_THE_ETERNAL_BOARD ,me);
- break;
- case 62:
- me->SetDisplayId(15500);
- break;
- case 63:
- me->HandleEmoteCommand(254);
- me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
- break;
- case 64:
- me->GetMotionMaster()->MoveCharge(-8000,1400,150,9);
- break;
- case 65:
- me->SetVisibility(VISIBILITY_OFF);
- if (Creature* AnachronosQuestTrigger = (Unit::GetCreature(*me, AnachronosQuestTriggerGUID)))
- {
- DoScriptText(ARYGOS_YELL_1,me);
- AnachronosQuestTrigger->AI()->EnterEvadeMode();
- eventEnd=true;
- }
- break;
- }
- }
- ++AnimationCount;
- }
- void UpdateAI(const uint32 diff)
- {
- if (AnimationTimer)
- {
- if (AnimationTimer <= diff)
- HandleAnimation();
- else AnimationTimer -= diff;
- }
- if (AnimationCount < 65)
- me->CombatStop();
- if (AnimationCount == 65 || eventEnd)
- me->AI()->EnterEvadeMode();
- }
-};
-
-/*######
-# mob_qiraj_war_spawn
-######*/
-
-struct mob_qiraj_war_spawnAI : public ScriptedAI
-{
- mob_qiraj_war_spawnAI(Creature* c) : ScriptedAI(c) {}
-
- uint64 MobGUID;
- uint64 PlayerGUID;
- uint32 SpellTimer1, SpellTimer2, SpellTimer3,SpellTimer4;
- bool Timers;
- bool hasTarget;
-
- void Reset()
- {
- MobGUID = 0;
- PlayerGUID = 0;
- Timers = false;
- hasTarget = false;
- }
-
- void EnterCombat(Unit* /*who*/) {}
- void JustDied(Unit* slayer);
-
- void UpdateAI(const uint32 diff)
- {
- Unit *pTarget = NULL;
- //Player* plr = me->GetPlayer(PlayerGUID);
-
- if (!Timers)
- {
- if (me->GetEntry() == 15424 || me->GetEntry() == 15422 || me->GetEntry() == 15414) //all but Kaldorei Soldiers
- {
- SpellTimer1 = SpawnCast[1].Timer1;
- SpellTimer2 = SpawnCast[2].Timer1;
- SpellTimer3 = SpawnCast[3].Timer1;
- }
- if (me->GetEntry() == 15423 || me->GetEntry() == 15424 || me->GetEntry() == 15422 || me->GetEntry() == 15414)
- SpellTimer4 = SpawnCast[0].Timer1;
- Timers = true;
- }
- if (me->GetEntry() == 15424 || me->GetEntry() == 15422|| me->GetEntry() == 15414)
- {
- if (SpellTimer1 <= diff)
- {
- DoCast(me, SpawnCast[1].SpellId);
- DoCast(me, 24319);
- SpellTimer1 = SpawnCast[1].Timer2;
- } else SpellTimer1 -= diff;
- if (SpellTimer2 <= diff)
- {
- DoCast(me, SpawnCast[2].SpellId);
- SpellTimer2 = SpawnCast[2].Timer2;
- } else SpellTimer2 -= diff;
- if (SpellTimer3 <= diff)
- {
- DoCast(me, SpawnCast[3].SpellId);
- SpellTimer3 = SpawnCast[3].Timer2;
- } else SpellTimer3 -= diff;
- }
- if (me->GetEntry() == 15423 || me->GetEntry() == 15424 || me->GetEntry() == 15422 || me->GetEntry() == 15414)
- {
- if (SpellTimer4 <= diff)
- {
- me->RemoveAllAttackers();
- me->AttackStop();
- DoCast(me, 15533);
- SpellTimer4 = SpawnCast[0].Timer2;
- } else SpellTimer4 -= diff;
- }
- if (!hasTarget)
- {
- if (me->GetEntry() == 15424 || me->GetEntry() == 15422 || me->GetEntry() == 15414)
- pTarget = me->FindNearestCreature(15423,20,true);
- if (me->GetEntry() == 15423)
- {
- uint8 tar = urand(0,2);
-
- if (tar == 0)
- pTarget = me->FindNearestCreature(15422,20,true);
- else if (tar == 1)
- pTarget = me->FindNearestCreature(15424,20,true);
- else if (tar == 2)
- pTarget = me->FindNearestCreature(15414,20,true);
- }
- hasTarget = true;
- if (pTarget)
- me->AI()->AttackStart(pTarget);
- }
- if (!(me->FindNearestCreature(15379,60)))
- DoCast(me, 33652);
-
- if (!UpdateVictim())
- {
- hasTarget = false;
- return;
- }
-
- DoMeleeAttackIfReady();
- }
-};
-
-/*#####
-# npc_anachronos_quest_trigger
-#####*/
-
-struct npc_anachronos_quest_triggerAI : public ScriptedAI
-{
- npc_anachronos_quest_triggerAI(Creature* c) : ScriptedAI(c) {}
-
- uint64 PlayerGUID;
-
- uint32 WaveTimer;
- uint32 AnnounceTimer;
-
- int8 LiveCount;
- uint8 WaveCount;
-
- bool EventStarted;
- bool Announced;
- bool Failed;
-
- void Reset()
- {
- PlayerGUID = 0;
-
- WaveTimer = 2000;
- AnnounceTimer = 1000;
- LiveCount = 0;
- WaveCount = 0;
-
- EventStarted = false;
- Announced = false;
- Failed = false;
-
- me->SetVisibility(VISIBILITY_OFF);
- }
-
- void SummonNextWave()
- {
- //uint8 count = WavesInfo[WaveCount].SpawnCount;
- uint8 locIndex = WavesInfo[WaveCount].UsedSpawnPoint;
- srand(time(NULL));//initializing random seed
- //uint8 KaldoreiSoldierCount = 0;
- //uint8 AnubisathConquerorCount = 0;
- //uint8 QirajiWaspCount = 0;
- for (uint8 i = 0; i < 67; ++i)
- {
- Creature* Spawn = NULL;
- float X = SpawnLocation[locIndex + i].x;
- float Y = SpawnLocation[locIndex + i].y;
- float Z = SpawnLocation[locIndex + i].z;
- float O = SpawnLocation[locIndex + i].o;
- uint32 desptimer = WavesInfo[WaveCount].DespTimer;
- Spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, X, Y, Z, O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, desptimer);
-
- if (Spawn)
- {
- Spawn->LoadCreaturesAddon();
- if (Spawn->GetGUID() == 15423)
- Spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID,15427+rand()%4);
- if (i >= 30) WaveCount = 1;
- if (i >= 33) WaveCount = 2;
- if (i >= 45) WaveCount = 3;
- if (i >= 51) WaveCount = 4;
-
- if (WaveCount < 5) //1-4 Wave
- {
- CAST_AI(mob_qiraj_war_spawnAI, Spawn->AI())->MobGUID = me->GetGUID();
- CAST_AI(mob_qiraj_war_spawnAI, Spawn->AI())->PlayerGUID = PlayerGUID;
- }
- }
- }
- WaveTimer = WavesInfo[WaveCount].SpawnTimer;
- AnnounceTimer = WavesInfo[WaveCount].YellTimer;
- }
-
- void CheckEventFail()
- {
- Player* pPlayer = Unit::GetPlayer(PlayerGUID);
-
- if (!pPlayer)
- return;
-
- if (Group *EventGroup = pPlayer->GetGroup())
- {
- Player* GroupMember;
-
- uint8 GroupMemberCount = 0;
- uint8 DeadMemberCount = 0;
- uint8 FailedMemberCount = 0;
-
- const Group::MemberSlotList members = EventGroup->GetMemberSlots();
-
- for (Group::member_citerator itr = members.begin(); itr!= members.end(); ++itr)
- {
- GroupMember = (Unit::GetPlayer(itr->guid));
- if (!GroupMember)
- continue;
- if (!GroupMember->IsWithinDistInMap(me, EVENT_AREA_RADIUS) && GroupMember->GetQuestStatus(QUEST_A_PAWN_ON_THE_ETERNAL_BOARD) == QUEST_STATUS_INCOMPLETE)
- {
- GroupMember->FailQuest(QUEST_A_PAWN_ON_THE_ETERNAL_BOARD);
- GroupMember->SetQuestStatus(QUEST_A_PAWN_ON_THE_ETERNAL_BOARD, QUEST_STATUS_NONE);
- ++FailedMemberCount;
- }
- ++GroupMemberCount;
-
- if (GroupMember->isDead())
- ++DeadMemberCount;
- }
-
- if (GroupMemberCount == FailedMemberCount || !pPlayer->IsWithinDistInMap(me, EVENT_AREA_RADIUS))
- Failed = true; //only so event can restart
- }
- }
-
- void LiveCounter()
- {
- --LiveCount;
- if (!LiveCount)
- Announced = false;
- }
-
- void UpdateAI(const uint32 diff)
- {
- if (!PlayerGUID || !EventStarted)
- return;
-
- if (WaveCount < 4)
- {
- if (!Announced && AnnounceTimer <= diff)
- {
- DoScriptText(WavesInfo[WaveCount].WaveTextId, me);
- Announced = true;
- } else AnnounceTimer -= diff;
-
- if (WaveTimer <= diff)
- SummonNextWave();
- else WaveTimer -= diff;
- }
- CheckEventFail();
- if (WaveCount == 4 || Failed)
- EnterEvadeMode();
- };
-};
-void mob_qiraj_war_spawnAI::JustDied(Unit* /*slayer*/)
-{
- me->RemoveCorpse();
- if (Creature* Mob = (Unit::GetCreature(*me, MobGUID)))
- CAST_AI(npc_anachronos_quest_triggerAI, Mob->AI())->LiveCounter();
-
-};
-/*#####
-# go_crystalline_tear
-######*/
-
-bool GOQuestAccept_GO_crystalline_tear(Player* plr, GameObject* go, Quest const* quest)
-{
- if (quest->GetQuestId() == QUEST_A_PAWN_ON_THE_ETERNAL_BOARD)
- {
-
- if (Unit* Anachronos_Quest_Trigger = go->FindNearestCreature(15454, 100, plr))
- {
-
- Unit *Merithra = Anachronos_Quest_Trigger->SummonCreature(15378,-8034.535,1535.14,2.61,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,220000);
- Unit *Caelestrasz = Anachronos_Quest_Trigger->SummonCreature(15379,-8032.767, 1533.148,2.61, 1.5,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,220000);
- Unit *Arygos = Anachronos_Quest_Trigger->SummonCreature(15380,-8034.52, 1537.843, 2.61, 5.7,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,220000);
- /* Unit *Fandral = */ Anachronos_Quest_Trigger->SummonCreature(15382,-8028.462, 1535.843, 2.61, 3.141592,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,220000);
- Creature *Anachronos = Anachronos_Quest_Trigger->SummonCreature(15381,-8028.75, 1538.795, 2.61, 4,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,220000);
-
- if (Merithra)
- {
- Merithra->SetUInt32Value(UNIT_NPC_FLAGS, 0);
- Merithra->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
- Merithra->SetUInt32Value(UNIT_FIELD_DISPLAYID,15420);
- Merithra->setFaction(35);
- }
-
- if (Caelestrasz)
- {
- Caelestrasz->SetUInt32Value(UNIT_NPC_FLAGS, 0);
- Caelestrasz->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
- Caelestrasz->SetUInt32Value(UNIT_FIELD_DISPLAYID,15419);
- Caelestrasz->setFaction(35);
- }
-
- if (Arygos)
- {
- Arygos->SetUInt32Value(UNIT_NPC_FLAGS, 0);
- Arygos->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
- Arygos->SetUInt32Value(UNIT_FIELD_DISPLAYID,15418);
- Arygos->setFaction(35);
- }
-
- if (Anachronos)
- {
- CAST_AI(npc_anachronos_the_ancientAI, Anachronos->AI())->PlayerGUID = plr->GetGUID();
- CAST_AI(npc_anachronos_quest_triggerAI, CAST_CRE(Anachronos_Quest_Trigger)->AI())->Failed=false;
- CAST_AI(npc_anachronos_quest_triggerAI, CAST_CRE(Anachronos_Quest_Trigger)->AI())->PlayerGUID = plr->GetGUID();
- CAST_AI(npc_anachronos_quest_triggerAI, CAST_CRE(Anachronos_Quest_Trigger)->AI())->EventStarted=true;
- CAST_AI(npc_anachronos_quest_triggerAI, CAST_CRE(Anachronos_Quest_Trigger)->AI())->Announced=true;
- }
- }
- }
- return true;
-}
-
-CreatureAI* GetAI_npc_anachronos_quest_trigger(Creature* c)
-{
- return new npc_anachronos_quest_triggerAI(c);
-}
-
-CreatureAI* GetAI_mob_qiraj_war_spawn(Creature* c)
-{
- return new mob_qiraj_war_spawnAI(c);
-}
-
-CreatureAI* GetAI_npc_anachronos_the_ancient(Creature* c)
-{
- return new npc_anachronos_the_ancientAI(c);
-}
-
-void AddSC_silithus()
-{
- Script *newscript;
-
- newscript = new Script;
- newscript->Name = "go_crystalline_tear";
- newscript->pGOQuestAccept = &GOQuestAccept_GO_crystalline_tear;
- newscript->RegisterSelf();
-
- newscript = new Script;
- newscript->Name = "npc_anachronos_quest_trigger";
- newscript->GetAI = &GetAI_npc_anachronos_quest_trigger;
- newscript->RegisterSelf();
-
- newscript = new Script;
- newscript->Name = "npc_anachronos_the_ancient";
- newscript->GetAI = &GetAI_npc_anachronos_the_ancient;
- newscript->RegisterSelf();
-
- newscript = new Script;
- newscript->Name = "mob_qiraj_war_spawn";
- newscript->GetAI = &GetAI_mob_qiraj_war_spawn;
- newscript->RegisterSelf();
-
- newscript = new Script;
- newscript->Name = "npc_highlord_demitrian";
- newscript->pGossipHello = &GossipHello_npc_highlord_demitrian;
- newscript->pGossipSelect = &GossipSelect_npc_highlord_demitrian;
- newscript->RegisterSelf();
-
- newscript = new Script;
- newscript->Name = "npcs_rutgar_and_frankal";
- newscript->pGossipHello = &GossipHello_npcs_rutgar_and_frankal;
- newscript->pGossipSelect = &GossipSelect_npcs_rutgar_and_frankal;
- newscript->RegisterSelf();
-}
-