mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 02:46:33 +01:00
Core/Scripts: zone_silithus.cpp cleanup
By tkrokli
This commit is contained in:
59
sql/updates/world/3.3.5/2016_07_29_00_world.sql
Normal file
59
sql/updates/world/3.3.5/2016_07_29_00_world.sql
Normal file
@@ -0,0 +1,59 @@
|
||||
-- SmartAI script for creature entry 15170 Rutgar Glyphshaper and 15171 Frankal Stonebridge
|
||||
SET @RUTGAR := 15170;
|
||||
SET @FRANKAL := 15171;
|
||||
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry` IN (@RUTGAR,@FRANKAL);
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@RUTGAR,@FRANKAL) AND `source_type`= 0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@RUTGAR, 0, 0,1, 62,0,100,0,6545,0,0,0, 33,15222,0,0,0,0,0, 7,0,0,0,0,0,0,0,"Rutgar Glyphshaper - on Gossip Menu 6545 id 0 selected - Kill Credit 'Rutgar Invisible Trigger'"),
|
||||
(@RUTGAR, 0, 1,0, 61,0,100,0, 0,0,0,0, 72, 0,0,0,0,0,0, 7,0,0,0,0,0,0,0,"Rutgar Glyphshaper - on Gossip Menu 6545 id 0 selected - Close Gossip"),
|
||||
(@FRANKAL,0, 2,3, 62,0,100,0,6552,0,0,0, 33,15221,0,0,0,0,0, 7,0,0,0,0,0,0,0,"Frankal Stonebridge - on Gossip Menu 6552 id 0 selected - Kill Credit 'Frankal Invisible Trigger'"),
|
||||
(@FRANKAL,0, 3,0, 61,0,100,0, 0,0,0,0, 72, 0,0,0,0,0,0, 7,0,0,0,0,0,0,0,"Frankal Stonebridge - on Gossip Menu 6552 id 0 selected - Close Gossip");
|
||||
|
||||
-- gossip menu options for NPC 15170 Rutgar Glyphshaper and NPC 15171 Frankal Stonebridge
|
||||
DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (6534,6551,6550,6549,6548,6547,6546,6545,6533,6558,6557,6556,6555,6554,6553,6552);
|
||||
INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`OptionBroadcastTextID`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`,`BoxBroadcastTextID`) VALUES
|
||||
(6534,0,0,"Hello, Rutgar. The Commander has sent me here to gather some information about his missing wife.", 10712,1,1,6551,0,0,0,'',0),
|
||||
(6551,0,0,"That sounds dangerous.", 10714,1,1,6550,0,0,0,'',0),
|
||||
(6550,0,0,"What happened to her after that?", 10716,1,1,6549,0,0,0,'',0),
|
||||
(6549,0,0,"Natalia?", 10718,1,1,6548,0,0,0,'',0),
|
||||
(6548,0,0,"What demands?", 10720,1,1,6547,0,0,0,'',0),
|
||||
(6547,0,0,"Lost it? What do you mean?", 10722,1,1,6546,0,0,0,'',0),
|
||||
(6546,0,0,"Possessed by what?", 10724,1,1,6545,0,0,0,'',0),
|
||||
(6545,0,0,"I'll be back once I straighten this mess out.", 10726,1,1, 0,0,0,0,'',0),
|
||||
(6533,0,0,"Hello, Frankal. I've heard that you might have some information as to the whereabouts of Mistress Natalia Mar'alith.",10727,1,1,6558,0,0,0,'',0),
|
||||
(6558,0,0,"That's what I like to hear.", 10729,1,1,6557,0,0,0,'',0),
|
||||
(6557,0,0,"That's odd.", 10731,1,1,6556,0,0,0,'',0),
|
||||
(6556,0,0,"You couldn't handle a lone night elf priestess?", 10733,1,1,6555,0,0,0,'',0),
|
||||
(6555,0,0,"I've been meaning to ask you about that monkey.", 10735,1,1,6554,0,0,0,'',0),
|
||||
(6554,0,0,"Then what?", 10737,1,1,6553,0,0,0,'',0),
|
||||
(6553,0,0,"What a story! So she went into Hive'Regal and that was the last you saw of her?", 10739,1,1,6552,0,0,0,'',0),
|
||||
(6552,0,0,"Thanks for the information, Frankal.", 10741,1,1, 0,0,0,0,'',0);
|
||||
|
||||
-- conditions for Rutgar Glyphshaper's and Frankal Stonebridge's gossip menus
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup` IN (6533,6534) AND `SourceEntry` IN (0,7735,7736);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(14,6533,7735,0,0,9,0,8304,0,0,0,0,0,'',"Show gossip_menu.entry 6533 text_id 7735 only if Quest 8304 is taken (active)"),
|
||||
(14,6534,7736,0,0,9,0,8304,0,0,0,0,0,'',"Show gossip_menu.entry 6534 text_id 7736 only if Quest 8304 is taken (active)"),
|
||||
(15,6533, 0,0,0,9,0,8304,0,0,0,0,0,'',"Show gossip_menu_option.menu_id 6533 id 0 only if Quest 8304 is taken (active)"),
|
||||
(15,6534, 0,0,0,9,0,8304,0,0,0,0,0,'',"Show gossip_menu_option.menu_id 6534 id 0 only if Quest 8304 is taken (active)");
|
||||
|
||||
-- gossip menu options for gameobject_template.displayId 6425 Lesser Wind Stone, 6426 Wind Stone, 6427 Greater Wind Stone
|
||||
DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (6540,6542,6543) AND `id` IN (0,1,2,3,4);
|
||||
INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`OptionBroadcastTextID`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`,`BoxBroadcastTextID`) VALUES
|
||||
(6540,0,0,"I am no cultist, you monster! Come to me and face your destruction!", 10684,1,1,0,0,0,0,'',0),
|
||||
(6540,1,0,"Crimson Templar! I hold your crest of beckoning. Heed my summons!", 10685,1,1,0,0,0,0,'',0),
|
||||
(6540,2,0,"Azure Templar! I hold your crest of beckoning. Heed my summons!", 10692,1,1,0,0,0,0,'',0),
|
||||
(6540,3,0,"Earthen Templar! I hold your crest of beckoning. Heed my summons!", 10691,1,1,0,0,0,0,'',0),
|
||||
(6540,4,0,"Hoary Templar! I hold your crest of beckoning. Heed my summons!", 10690,1,1,0,0,0,0,'',0),
|
||||
(6542,0,0,"You will listen to this, vile duke! I am not your Twilight's Hammer lapdog! I am here to challenge you! Come! Come, and meet your death...",10698,1,1,0,0,0,0,'',0),
|
||||
(6542,1,0,"Duke of Cynders! I hold your signet! Heed my call!", 10699,1,1,0,0,0,0,'',0),
|
||||
(6542,2,0,"Duke of Fathoms! I hold your signet! Heed my call!", 10702,1,1,0,0,0,0,'',0),
|
||||
(6542,3,0,"Duke of Shards! I hold your signet! Heed my call!", 10701,1,1,0,0,0,0,'',0),
|
||||
(6542,4,0,"Duke of Zephyrs! I hold your signet! Heed my call!", 10700,1,1,0,0,0,0,'',0),
|
||||
(6543,0,0,"The day of judgement has come, fiend! I challenge you to battle!", 10707,1,1,0,0,0,0,'',0),
|
||||
(6543,1,0,"Skaldrenox! I hold your scepter, and charge you to enter this world!",10708,1,1,0,0,0,0,'',0),
|
||||
(6543,2,0,"Skwol! I hold your scepter! I command you to enter this world!", 10711,1,1,0,0,0,0,'',0),
|
||||
(6543,3,0,"Kazum! I hold your scepter! I command you to enter this world!", 10710,1,1,0,0,0,0,'',0),
|
||||
(6543,4,0,"Whirlaxis! I hold your scepter! I command you to enter this world!", 10709,1,1,0,0,0,0,'',0);
|
||||
@@ -34,195 +34,66 @@ EndContentData */
|
||||
#include "Group.h"
|
||||
#include "Player.h"
|
||||
|
||||
/*###
|
||||
## 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..."
|
||||
|
||||
enum RutgarAndFrankal //trigger creatures to kill
|
||||
{
|
||||
TRIGGER_FRANKAL = 15221,
|
||||
TRIGGER_RUTGAR = 15222
|
||||
};
|
||||
|
||||
class npcs_rutgar_and_frankal : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npcs_rutgar_and_frankal() : CreatureScript("npcs_rutgar_and_frankal") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->SEND_GOSSIP_MENU(7755, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->SEND_GOSSIP_MENU(7756, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->SEND_GOSSIP_MENU(7757, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
player->SEND_GOSSIP_MENU(7758, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 4:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
player->SEND_GOSSIP_MENU(7759, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 5:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
player->SEND_GOSSIP_MENU(7760, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 6:
|
||||
player->SEND_GOSSIP_MENU(7761, creature->GetGUID());
|
||||
//'kill' our trigger to update quest status
|
||||
player->KilledMonsterCredit(TRIGGER_RUTGAR);
|
||||
break;
|
||||
|
||||
case GOSSIP_ACTION_INFO_DEF + 9:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM11, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
player->SEND_GOSSIP_MENU(7762, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 10:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM12, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
player->SEND_GOSSIP_MENU(7763, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 11:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM13, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
player->SEND_GOSSIP_MENU(7764, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 12:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM14, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
player->SEND_GOSSIP_MENU(7765, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 13:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM15, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
player->SEND_GOSSIP_MENU(7766, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 14:
|
||||
player->SEND_GOSSIP_MENU(7767, creature->GetGUID());
|
||||
//'kill' our trigger to update quest status
|
||||
player->KilledMonsterCredit(TRIGGER_FRANKAL);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
|
||||
creature->GetEntry() == 15170 &&
|
||||
!player->GetReqKillOrCastCurrentCount(8304, TRIGGER_RUTGAR))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
if (player->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
|
||||
creature->GetEntry() == 15171 &&
|
||||
player->GetReqKillOrCastCurrentCount(8304, TRIGGER_RUTGAR))
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
|
||||
|
||||
player->SEND_GOSSIP_MENU(7754, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/*####
|
||||
# quest_a_pawn_on_the_eternal_board (Defines)
|
||||
####*/
|
||||
enum EternalBoard
|
||||
{
|
||||
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 = 0,
|
||||
ANACHRONOS_SAY_2 = 1,
|
||||
ANACHRONOS_SAY_3 = 2,
|
||||
ANACHRONOS_SAY_4 = 3,
|
||||
ANACHRONOS_SAY_5 = 4,
|
||||
ANACHRONOS_SAY_6 = 5,
|
||||
ANACHRONOS_SAY_7 = 6,
|
||||
ANACHRONOS_SAY_8 = 7,
|
||||
ANACHRONOS_SAY_9 = 8,
|
||||
ANACHRONOS_SAY_10 = 9,
|
||||
ANACHRONOS_EMOTE_1 = 10,
|
||||
ANACHRONOS_EMOTE_2 = 11,
|
||||
ANACHRONOS_EMOTE_3 = 12,
|
||||
|
||||
FANDRAL_SAY_1 = 0,
|
||||
FANDRAL_SAY_2 = 1,
|
||||
FANDRAL_SAY_3 = 2,
|
||||
FANDRAL_SAY_4 = 3,
|
||||
FANDRAL_SAY_5 = 4,
|
||||
FANDRAL_SAY_6 = 5,
|
||||
FANDRAL_EMOTE_1 = 6,
|
||||
FANDRAL_EMOTE_2 = 7,
|
||||
|
||||
CAELESTRASZ_SAY_1 = 0,
|
||||
CAELESTRASZ_SAY_2 = 1,
|
||||
CAELESTRASZ_YELL_1 = 2,
|
||||
|
||||
ARYGOS_SAY_1 = 0,
|
||||
ARYGOS_YELL_1 = 1,
|
||||
ARYGOS_EMOTE_1 = 2,
|
||||
|
||||
MERITHRA_SAY_1 = 0,
|
||||
MERITHRA_SAY_2 = 1,
|
||||
MERITHRA_YELL_1 = 2,
|
||||
MERITHRA_EMOTE_1 = 3,
|
||||
|
||||
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
|
||||
npc_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 */
|
||||
enum EternalBoard
|
||||
{
|
||||
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)
|
||||
FACTION_HOSTILE = 14,
|
||||
FACTION_FRIENDLY = 35,
|
||||
|
||||
EVENT_AREA_RADIUS = 65, // 65yds
|
||||
EVENT_COOLDOWN = 500000, // in ms. appears after event completed or failed (should be = Adds despawn time)
|
||||
|
||||
NPC_ANACHRONOS = 15381,
|
||||
NPC_FANDRAL_STAGHELM = 15382,
|
||||
NPC_ARYGOS = 15380,
|
||||
NPC_MERITHRA_OF_THE_DREAM = 15378,
|
||||
NPC_CAELESTRASZ = 15379,
|
||||
|
||||
ANACHRONOS_SAY_1 = 0,
|
||||
ANACHRONOS_SAY_2 = 1,
|
||||
ANACHRONOS_SAY_3 = 2,
|
||||
ANACHRONOS_SAY_4 = 3,
|
||||
ANACHRONOS_SAY_5 = 4,
|
||||
ANACHRONOS_SAY_6 = 5,
|
||||
ANACHRONOS_SAY_7 = 6,
|
||||
ANACHRONOS_SAY_8 = 7,
|
||||
ANACHRONOS_SAY_9 = 8,
|
||||
ANACHRONOS_SAY_10 = 9,
|
||||
ANACHRONOS_EMOTE_1 = 10,
|
||||
ANACHRONOS_EMOTE_2 = 11,
|
||||
ANACHRONOS_EMOTE_3 = 12,
|
||||
|
||||
FANDRAL_SAY_1 = 0,
|
||||
FANDRAL_SAY_2 = 1,
|
||||
FANDRAL_SAY_3 = 2,
|
||||
FANDRAL_SAY_4 = 3,
|
||||
FANDRAL_SAY_5 = 4,
|
||||
FANDRAL_SAY_6 = 5,
|
||||
FANDRAL_EMOTE_1 = 6,
|
||||
FANDRAL_EMOTE_2 = 7,
|
||||
|
||||
CAELESTRASZ_SAY_1 = 0,
|
||||
CAELESTRASZ_SAY_2 = 1,
|
||||
CAELESTRASZ_YELL_1 = 2,
|
||||
|
||||
ARYGOS_SAY_1 = 0,
|
||||
ARYGOS_YELL_1 = 1,
|
||||
ARYGOS_EMOTE_1 = 2,
|
||||
|
||||
MERITHRA_SAY_1 = 0,
|
||||
MERITHRA_SAY_2 = 1,
|
||||
MERITHRA_YELL_1 = 2,
|
||||
MERITHRA_EMOTE_1 = 3,
|
||||
|
||||
GO_GATE_OF_AHN_QIRAJ = 176146,
|
||||
GO_GLYPH_OF_AHN_QIRAJ = 176148,
|
||||
GO_ROOTS_OF_AHN_QIRAJ = 176147
|
||||
};
|
||||
|
||||
struct QuestCinematic
|
||||
{
|
||||
@@ -233,59 +104,59 @@ struct QuestCinematic
|
||||
// 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},
|
||||
{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},
|
||||
{MERITHRA_SAY_2, 3, 6000},
|
||||
{0, 3, 2000},
|
||||
{MERITHRA_YELL_1, 3, 2500},
|
||||
{0, 3, 3000}, //Morph
|
||||
{0, 3, 4000}, //EmoteLiftoff
|
||||
{0, 3, 4000}, // spell
|
||||
{0, 3, 1250}, //fly
|
||||
{0, 3, 250}, //remove flags
|
||||
{MERITHRA_YELL_1, 3, 2500},
|
||||
{0, 3, 3000}, //Morph
|
||||
{0, 3, 4000}, //EmoteLiftoff
|
||||
{0, 3, 4000}, // spell
|
||||
{0, 3, 1250}, //fly
|
||||
{0, 3, 250}, //remove flags
|
||||
{ARYGOS_SAY_1, 2, 3000},
|
||||
{0, 3, 2000},
|
||||
{ARYGOS_YELL_1, 2, 3000},
|
||||
{0, 3, 3000}, //Morph
|
||||
{0, 3, 4000}, //EmoteLiftoff
|
||||
{0, 3, 4000}, // spell
|
||||
{0, 3, 1000}, //fly
|
||||
{0, 3, 1000}, //remove flags
|
||||
{0, 3, 3000}, //Morph
|
||||
{0, 3, 4000}, //EmoteLiftoff
|
||||
{0, 3, 4000}, // spell
|
||||
{0, 3, 1000}, //fly
|
||||
{0, 3, 1000}, //remove flags
|
||||
{CAELESTRASZ_SAY_2, 4, 5000},
|
||||
{0, 3, 3000},
|
||||
{CAELESTRASZ_YELL_1, 4, 3000},
|
||||
{0, 3, 3000}, //Morph
|
||||
{0, 3, 4000}, //EmoteLiftoff
|
||||
{0, 3, 2500}, // spell
|
||||
{0, 3, 3000}, //Morph
|
||||
{0, 3, 4000}, //EmoteLiftoff
|
||||
{0, 3, 2500}, // spell
|
||||
{ANACHRONOS_SAY_2, 0, 2000},
|
||||
{0, 3, 250}, //fly
|
||||
{0, 3, 25}, //remove flags
|
||||
{0, 3, 250}, //fly
|
||||
{0, 3, 25}, //remove flags
|
||||
{FANDRAL_SAY_2, 1, 3000},
|
||||
{ANACHRONOS_SAY_3, 0, 10000}, //Both run through the armies
|
||||
{0, 3, 2000}, // Sands will stop
|
||||
{0, 3, 8000}, // Summon Gate
|
||||
{ANACHRONOS_SAY_3, 0, 10000}, //Both run through the armies
|
||||
{0, 3, 2000}, // Sands will stop
|
||||
{0, 3, 8000}, // Summon Gate
|
||||
{ANACHRONOS_SAY_4, 0, 4000},
|
||||
{0, 0, 2000}, //spell 1-> Arcane cosmetic (Mobs freeze)
|
||||
{0, 0, 5000}, //Spell 2-> Arcane long cosmetic (barrier appears) (Barrier -> Glyphs)
|
||||
{0, 0, 7000}, //BarrieR
|
||||
{0, 0, 4000}, //Glyphs
|
||||
{0, 0, 2000}, //spell 1-> Arcane cosmetic (Mobs freeze)
|
||||
{0, 0, 5000}, //Spell 2-> Arcane long cosmetic (barrier appears) (Barrier -> Glyphs)
|
||||
{0, 0, 7000}, //BarrieR
|
||||
{0, 0, 4000}, //Glyphs
|
||||
{ANACHRONOS_SAY_5, 0, 2000},
|
||||
{0, 0, 4000}, // Roots
|
||||
{FANDRAL_SAY_3, 1, 3000}, //Root Text
|
||||
{FANDRAL_EMOTE_1, 1, 3000}, //falls knee
|
||||
{0, 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
|
||||
{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.
|
||||
{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
|
||||
{FANDRAL_SAY_6, 1, 3000}, //fandral goes away
|
||||
{ANACHRONOS_EMOTE_2, 0, 3000},
|
||||
{ANACHRONOS_EMOTE_3, 0, 3000},
|
||||
{0, 0, 2000},
|
||||
@@ -348,30 +219,30 @@ Position const SpawnLocation[] =
|
||||
{-8078.0f, 1518.0f, 2.61f, 3.141592f}, //Kaldorei Infantry
|
||||
{-8082.0f, 1516.0f, 2.61f, 3.141592f}, //Kaldorei Infantry
|
||||
|
||||
{-8088.0f, 1510.0f, 2.61f, 0.0f}, //Anubisath Conqueror
|
||||
{-8084.0f, 1520.0f, 2.61f, 0.0f}, //Anubisath Conqueror
|
||||
{-8088.0f, 1530.0f, 2.61f, 0.0f}, //Anubisath Conqueror
|
||||
{-8088.0f, 1510.0f, 2.61f, 0.0f}, //Anubisath Conqueror
|
||||
{-8084.0f, 1520.0f, 2.61f, 0.0f}, //Anubisath Conqueror
|
||||
{-8088.0f, 1530.0f, 2.61f, 0.0f}, //Anubisath Conqueror
|
||||
|
||||
{-8080.0f, 1513.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8082.0f, 1523.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8085.0f, 1518.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8082.0f, 1516.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8085.0f, 1520.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8080.0f, 1528.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8080.0f, 1513.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8082.0f, 1523.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8085.0f, 1518.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8082.0f, 1516.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8085.0f, 1520.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8080.0f, 1528.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
|
||||
{-8082.0f, 1513.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8079.0f, 1523.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8080.0f, 1531.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8079.0f, 1516.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8082.0f, 1520.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8080.0f, 1518.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8082.0f, 1513.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8079.0f, 1523.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8080.0f, 1531.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8079.0f, 1516.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8082.0f, 1520.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
{-8080.0f, 1518.0f, 2.61f, 0.0f}, //Qiraj Wasp
|
||||
|
||||
{-8081.0f, 1514.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1520.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1526.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1512.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8082.0f, 1520.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1528.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1514.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1520.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1526.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1512.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8082.0f, 1520.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
{-8081.0f, 1528.0f, 2.61f, 0.0f}, //Qiraj Tank
|
||||
|
||||
{-8082.0f, 1513.0f, 2.61f, 3.141592f}, //Anubisath Conqueror
|
||||
{-8082.0f, 1520.0f, 2.61f, 3.141592f}, //Anubisath Conqueror
|
||||
@@ -402,14 +273,36 @@ struct SpawnSpells
|
||||
|
||||
static SpawnSpells SpawnCast[4] =
|
||||
{
|
||||
{100000, 2000, 33652}, // Stop Time
|
||||
{100000, 2000, 33652}, // Stoned
|
||||
{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
|
||||
######*/
|
||||
|
||||
enum AnachronosTheAncient
|
||||
{
|
||||
NPC_QIRAJI_WASP = 15414,
|
||||
NPC_QIRAJI_TANK = 15422,
|
||||
NPC_KALDOREI_INFANTRY = 15423,
|
||||
NPC_ANUBISATH_CONQUEROR = 15424,
|
||||
SPELL_ARCANE_CHANNELING = 23017,
|
||||
SPELL_NOXIOUS_BREATH = 24818,
|
||||
SPELL_GREEN_DRAGON_TRANSFORM_DND = 25105,
|
||||
SPELL_RED_DRAGON_TRANSFORM_DND = 25106,
|
||||
SPELL_BLUE_DRAGON_TRANSFORM_DND = 25107,
|
||||
SPELL_TIME_STOP = 25158,
|
||||
SPELL_CALL_PRISMATIC_BARRIER = 25159,
|
||||
SPELL_CALL_GLYPHS_OF_WARDING = 25166,
|
||||
SPELL_CALL_ANCIENTS = 25167,
|
||||
SPELL_THROW_HAMMER = 33806,
|
||||
SPELL_FROST_BREATH = 50505,
|
||||
SPELL_FLAME_BREATH = 54293
|
||||
};
|
||||
|
||||
class npc_anachronos_the_ancient : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -464,10 +357,10 @@ public:
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
Creature* Fandral = player->FindNearestCreature(C_FANDRAL_STAGHELM, 100.0f);
|
||||
Creature* Arygos = player->FindNearestCreature(C_ARYGOS, 100.0f);
|
||||
Creature* Caelestrasz = player->FindNearestCreature(C_CAELESTRASZ, 100.0f);
|
||||
Creature* Merithra = player->FindNearestCreature(C_MERITHRA, 100.0f);
|
||||
Creature* Fandral = player->FindNearestCreature(NPC_FANDRAL_STAGHELM, 100.0f);
|
||||
Creature* Arygos = player->FindNearestCreature(NPC_ARYGOS, 100.0f);
|
||||
Creature* Caelestrasz = player->FindNearestCreature(NPC_CAELESTRASZ, 100.0f);
|
||||
Creature* Merithra = player->FindNearestCreature(NPC_MERITHRA_OF_THE_DREAM, 100.0f);
|
||||
|
||||
if (!Fandral || !Arygos || !Caelestrasz || !Merithra)
|
||||
return;
|
||||
@@ -509,7 +402,7 @@ public:
|
||||
Merithra->AI()->Talk(MERITHRA_YELL_1);
|
||||
break;
|
||||
case 9:
|
||||
Merithra->CastSpell(Merithra, 25105, true);
|
||||
Merithra->CastSpell(Merithra, SPELL_GREEN_DRAGON_TRANSFORM_DND, true);
|
||||
break;
|
||||
case 10:
|
||||
Merithra->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
@@ -517,7 +410,7 @@ public:
|
||||
Merithra->GetMotionMaster()->MoveCharge(-8065, 1530, 6.61f, 3);
|
||||
break;
|
||||
case 11:
|
||||
Merithra->CastSpell(Merithra, 24818, false);
|
||||
Merithra->CastSpell(Merithra, SPELL_NOXIOUS_BREATH, false);
|
||||
break;
|
||||
case 12:
|
||||
Merithra->GetMotionMaster()->MoveCharge(-8100, 1530, 50, 42);
|
||||
@@ -536,7 +429,7 @@ public:
|
||||
Arygos->AI()->Talk(ARYGOS_YELL_1);
|
||||
break;
|
||||
case 17:
|
||||
Arygos->CastSpell(Arygos, 25107, true);
|
||||
Arygos->CastSpell(Arygos, SPELL_BLUE_DRAGON_TRANSFORM_DND, true);
|
||||
break;
|
||||
case 18:
|
||||
Arygos->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
@@ -544,7 +437,7 @@ public:
|
||||
Arygos->GetMotionMaster()->MoveCharge(-8065, 1530, 6.61f, 42);
|
||||
break;
|
||||
case 19:
|
||||
Arygos->CastSpell(Arygos, 50505, false);
|
||||
Arygos->CastSpell(Arygos, SPELL_FROST_BREATH, false);
|
||||
break;
|
||||
case 20:
|
||||
Arygos->GetMotionMaster()->MoveCharge(-8095, 1530, 50, 42);
|
||||
@@ -563,15 +456,15 @@ public:
|
||||
Caelestrasz->AI()->Talk(CAELESTRASZ_YELL_1);
|
||||
break;
|
||||
case 25:
|
||||
Caelestrasz->CastSpell(Caelestrasz, 25106, true);
|
||||
Caelestrasz->CastSpell(Caelestrasz, SPELL_RED_DRAGON_TRANSFORM_DND, true);
|
||||
break;
|
||||
case 26:
|
||||
Caelestrasz->HandleEmoteCommand(254);
|
||||
Caelestrasz->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
Caelestrasz->SetDisableGravity(true);
|
||||
Caelestrasz->GetMotionMaster()->MoveCharge(-8065, 1530, 7.61f, 4);
|
||||
break;
|
||||
case 27:
|
||||
Caelestrasz->CastSpell(Caelestrasz, 54293, false);
|
||||
Caelestrasz->CastSpell(Caelestrasz, SPELL_FLAME_BREATH, false);
|
||||
break;
|
||||
case 28:
|
||||
Talk(ANACHRONOS_SAY_2, Fandral);
|
||||
@@ -596,26 +489,26 @@ public:
|
||||
Caelestrasz->GetMotionMaster()->MoveCharge(-8050, 1473, 65, 15);
|
||||
break; //Text: sands will stop
|
||||
case 34:
|
||||
DoCast(player, 23017, true);//Arcane Channeling
|
||||
DoCast(player, SPELL_ARCANE_CHANNELING, true);//Arcane Channeling
|
||||
break;
|
||||
case 35:
|
||||
me->CastSpell(-8088, 1520.43f, 2.67f, 25158, true);
|
||||
me->CastSpell(-8088, 1520.43f, 2.67f, SPELL_TIME_STOP, true);
|
||||
break;
|
||||
case 36:
|
||||
DoCast(player, 25159, true);
|
||||
DoCast(player, SPELL_CALL_PRISMATIC_BARRIER, true);
|
||||
break;
|
||||
case 37:
|
||||
me->SummonGameObject(GO_GATE_OF_AHN_QIRAJ, -8130, 1525, 17.5f, 0, 0, 0, 0, 0, 0);
|
||||
break;
|
||||
case 38:
|
||||
DoCast(player, 25166, true);
|
||||
DoCast(player, SPELL_CALL_GLYPHS_OF_WARDING, true);
|
||||
me->SummonGameObject(GO_GLYPH_OF_AHN_QIRAJ, -8130, 1525, 17.5f, 0, 0, 0, 0, 0, 0);
|
||||
break;
|
||||
case 39:
|
||||
Talk(ANACHRONOS_SAY_5, Fandral);
|
||||
break;
|
||||
case 40:
|
||||
Fandral->CastSpell(me, 25167, true);
|
||||
Fandral->CastSpell(me, SPELL_CALL_ANCIENTS, true);
|
||||
break;
|
||||
case 41:
|
||||
Fandral->SummonGameObject(GO_ROOTS_OF_AHN_QIRAJ, -8130, 1525, 17.5f, 0, 0, 0, 0, 0, 0);
|
||||
@@ -649,11 +542,11 @@ public:
|
||||
break;
|
||||
case 50:
|
||||
Fandral->AI()->Talk(FANDRAL_EMOTE_2);
|
||||
Fandral->CastSpell(-8127, 1525, 17.5f, 33806, true);
|
||||
Fandral->CastSpell(-8127, 1525, 17.5f, SPELL_THROW_HAMMER, true);
|
||||
break;
|
||||
case 51:
|
||||
{
|
||||
uint32 entries[4] = { 15423, 15424, 15414, 15422 };
|
||||
uint32 entries[4] = { NPC_KALDOREI_INFANTRY, NPC_ANUBISATH_CONQUEROR, NPC_QIRAJI_WASP, NPC_QIRAJI_TANK };
|
||||
Unit* mob = NULL;
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
@@ -661,7 +554,7 @@ public:
|
||||
while (mob)
|
||||
{
|
||||
mob->RemoveFromWorld();
|
||||
mob = player->FindNearestCreature(15423, 50);
|
||||
mob = player->FindNearestCreature(NPC_KALDOREI_INFANTRY, 50);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -706,7 +599,7 @@ public:
|
||||
me->SetDisplayId(15500);
|
||||
break;
|
||||
case 63:
|
||||
me->HandleEmoteCommand(254);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
me->SetDisableGravity(true);
|
||||
break;
|
||||
case 64:
|
||||
@@ -746,6 +639,13 @@ public:
|
||||
# npc_qiraj_war_spawn
|
||||
######*/
|
||||
|
||||
enum QirajWarSpawn
|
||||
{
|
||||
SPELL_STONED_CHANNEL_CAST_VISUAL = 15533,
|
||||
SPELL_SUMMON_POISON_CLOUD = 24319,
|
||||
SPELL_STONED = 33652
|
||||
};
|
||||
|
||||
class npc_qiraj_war_spawn : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -793,22 +693,22 @@ public:
|
||||
{
|
||||
if (!Timers)
|
||||
{
|
||||
if (me->GetEntry() == 15424 || me->GetEntry() == 15422 || me->GetEntry() == 15414) //all but Kaldorei Soldiers
|
||||
if (me->GetEntry() == NPC_ANUBISATH_CONQUEROR || me->GetEntry() == NPC_QIRAJI_TANK || me->GetEntry() == NPC_QIRAJI_WASP) //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)
|
||||
if (me->GetEntry() == NPC_KALDOREI_INFANTRY || me->GetEntry() == NPC_ANUBISATH_CONQUEROR || me->GetEntry() == NPC_QIRAJI_TANK || me->GetEntry() == NPC_QIRAJI_WASP)
|
||||
SpellTimer4 = SpawnCast[0].Timer1;
|
||||
Timers = true;
|
||||
}
|
||||
if (me->GetEntry() == 15424 || me->GetEntry() == 15422|| me->GetEntry() == 15414)
|
||||
if (me->GetEntry() == NPC_ANUBISATH_CONQUEROR || me->GetEntry() == NPC_QIRAJI_TANK || me->GetEntry() == NPC_QIRAJI_WASP)
|
||||
{
|
||||
if (SpellTimer1 <= diff)
|
||||
{
|
||||
DoCast(me, SpawnCast[1].SpellId);
|
||||
DoCast(me, 24319);
|
||||
DoCast(me, SPELL_SUMMON_POISON_CLOUD);
|
||||
SpellTimer1 = SpawnCast[1].Timer2;
|
||||
} else SpellTimer1 -= diff;
|
||||
if (SpellTimer2 <= diff)
|
||||
@@ -822,38 +722,38 @@ public:
|
||||
SpellTimer3 = SpawnCast[3].Timer2;
|
||||
} else SpellTimer3 -= diff;
|
||||
}
|
||||
if (me->GetEntry() == 15423 || me->GetEntry() == 15424 || me->GetEntry() == 15422 || me->GetEntry() == 15414)
|
||||
if (me->GetEntry() == NPC_KALDOREI_INFANTRY || me->GetEntry() == NPC_ANUBISATH_CONQUEROR || me->GetEntry() == NPC_QIRAJI_TANK || me->GetEntry() == NPC_QIRAJI_WASP)
|
||||
{
|
||||
if (SpellTimer4 <= diff)
|
||||
{
|
||||
me->RemoveAllAttackers();
|
||||
me->AttackStop();
|
||||
DoCast(me, 15533);
|
||||
DoCast(me, SPELL_STONED_CHANNEL_CAST_VISUAL);
|
||||
SpellTimer4 = SpawnCast[0].Timer2;
|
||||
} else SpellTimer4 -= diff;
|
||||
}
|
||||
if (!hasTarget)
|
||||
{
|
||||
Unit* target = NULL;
|
||||
if (me->GetEntry() == 15424 || me->GetEntry() == 15422 || me->GetEntry() == 15414)
|
||||
target = me->FindNearestCreature(15423, 20, true);
|
||||
if (me->GetEntry() == 15423)
|
||||
if (me->GetEntry() == NPC_ANUBISATH_CONQUEROR || me->GetEntry() == NPC_QIRAJI_TANK || me->GetEntry() == NPC_QIRAJI_WASP)
|
||||
target = me->FindNearestCreature(NPC_KALDOREI_INFANTRY, 20, true);
|
||||
if (me->GetEntry() == NPC_KALDOREI_INFANTRY)
|
||||
{
|
||||
uint8 tar = urand(0, 2);
|
||||
|
||||
if (tar == 0)
|
||||
target = me->FindNearestCreature(15422, 20, true);
|
||||
target = me->FindNearestCreature(NPC_QIRAJI_TANK, 20, true);
|
||||
else if (tar == 1)
|
||||
target = me->FindNearestCreature(15424, 20, true);
|
||||
target = me->FindNearestCreature(NPC_ANUBISATH_CONQUEROR, 20, true);
|
||||
else if (tar == 2)
|
||||
target = me->FindNearestCreature(15414, 20, true);
|
||||
target = me->FindNearestCreature(NPC_QIRAJI_WASP, 20, true);
|
||||
}
|
||||
hasTarget = true;
|
||||
if (target)
|
||||
AttackStart(target);
|
||||
}
|
||||
if (!(me->FindNearestCreature(15379, 60)))
|
||||
DoCast(me, 33652);
|
||||
if (!(me->FindNearestCreature(NPC_CAELESTRASZ, 60)))
|
||||
DoCast(me, SPELL_STONED);
|
||||
|
||||
if (!UpdateVictim())
|
||||
{
|
||||
@@ -932,7 +832,7 @@ public:
|
||||
|
||||
if (Creature* spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, SpawnLocation[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, desptimer))
|
||||
{
|
||||
if (spawn->GetEntry() == 15423)
|
||||
if (spawn->GetEntry() == NPC_KALDOREI_INFANTRY)
|
||||
spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15427 + rand32() % 4);
|
||||
if (i >= 30) WaveCount = 1;
|
||||
if (i >= 33) WaveCount = 2;
|
||||
@@ -1040,6 +940,14 @@ void npc_qiraj_war_spawn::npc_qiraj_war_spawnAI::JustDied(Unit* /*slayer*/)
|
||||
# go_crystalline_tear
|
||||
######*/
|
||||
|
||||
enum CrystallineTear
|
||||
{
|
||||
ARYGOS_GNOME_FORM = 15418,
|
||||
CAELESTRASZ_NIGHT_ELF_FORM = 15419,
|
||||
MERITHRA_NIGHT_ELF_FORM = 15420,
|
||||
ANACHRONOS_QUEST_TRIGGER_INVISIBLE = 15454
|
||||
};
|
||||
|
||||
class go_crystalline_tear : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
@@ -1049,19 +957,19 @@ public:
|
||||
{
|
||||
if (quest->GetQuestId() == QUEST_A_PAWN_ON_THE_ETERNAL_BOARD)
|
||||
{
|
||||
if (Creature* trigger = go->FindNearestCreature(15454, 100))
|
||||
if (Creature* trigger = go->FindNearestCreature(ANACHRONOS_QUEST_TRIGGER_INVISIBLE, 100))
|
||||
{
|
||||
Unit* Merithra = trigger->SummonCreature(15378, -8034.535f, 1535.14f, 2.61f, 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
Unit* Caelestrasz = trigger->SummonCreature(15379, -8032.767f, 1533.148f, 2.61f, 1.5f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
Unit* Arygos = trigger->SummonCreature(15380, -8034.52f, 1537.843f, 2.61f, 5.7f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
/* Unit* Fandral = */ trigger->SummonCreature(15382, -8028.462f, 1535.843f, 2.61f, 3.141592f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
Creature* Anachronos = trigger->SummonCreature(15381, -8028.75f, 1538.795f, 2.61f, 4, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
Unit* Merithra = trigger->SummonCreature(NPC_MERITHRA_OF_THE_DREAM, -8034.535f, 1535.14f, 2.61f, 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
Unit* Caelestrasz = trigger->SummonCreature(NPC_CAELESTRASZ, -8032.767f, 1533.148f, 2.61f, 1.5f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
Unit* Arygos = trigger->SummonCreature(NPC_ARYGOS, -8034.52f, 1537.843f, 2.61f, 5.7f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
/* Unit* Fandral = */ trigger->SummonCreature(NPC_FANDRAL_STAGHELM, -8028.462f, 1535.843f, 2.61f, 3.141592f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
Creature* Anachronos = trigger->SummonCreature(NPC_ANACHRONOS, -8028.75f, 1538.795f, 2.61f, 4, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 220000);
|
||||
|
||||
if (Merithra)
|
||||
{
|
||||
Merithra->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
Merithra->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
|
||||
Merithra->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15420);
|
||||
Merithra->SetUInt32Value(UNIT_FIELD_DISPLAYID, MERITHRA_NIGHT_ELF_FORM);
|
||||
Merithra->setFaction(35);
|
||||
}
|
||||
|
||||
@@ -1069,7 +977,7 @@ public:
|
||||
{
|
||||
Caelestrasz->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
Caelestrasz->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
|
||||
Caelestrasz->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15419);
|
||||
Caelestrasz->SetUInt32Value(UNIT_FIELD_DISPLAYID, CAELESTRASZ_NIGHT_ELF_FORM);
|
||||
Caelestrasz->setFaction(35);
|
||||
}
|
||||
|
||||
@@ -1077,7 +985,7 @@ public:
|
||||
{
|
||||
Arygos->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
Arygos->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
|
||||
Arygos->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15418);
|
||||
Arygos->SetUInt32Value(UNIT_FIELD_DISPLAYID, ARYGOS_GNOME_FORM);
|
||||
Arygos->setFaction(35);
|
||||
}
|
||||
|
||||
@@ -1107,112 +1015,107 @@ public:
|
||||
|
||||
enum WSSpells
|
||||
{
|
||||
SPELL_PUNISHMENT = 24803,
|
||||
SPELL_SPAWN_IN = 25035,
|
||||
AURA_TWILIGHT_SET = 24746,
|
||||
AURA_MEDALLION = 24748,
|
||||
AURA_RING = 24782,
|
||||
|
||||
AURA_TWILIGHT_SET = 24746,
|
||||
AURA_MEDALLION = 24748,
|
||||
AURA_RING = 24782,
|
||||
SPELL_TEMPLAR_RANDOM = 24745,
|
||||
SPELL_TEMPLAR_FIRE = 24747,
|
||||
SPELL_TEMPLAR_AIR = 24757,
|
||||
SPELL_TEMPLAR_EARTH = 24759,
|
||||
SPELL_TEMPLAR_WATER = 24761,
|
||||
|
||||
SPELL_TEMPLAR_RANDOM = 24745,
|
||||
SPELL_TEMPLAR_FIRE = 24747,
|
||||
SPELL_TEMPLAR_AIR = 24757,
|
||||
SPELL_TEMPLAR_EARTH = 24759,
|
||||
SPELL_TEMPLAR_WATER = 24761,
|
||||
SPELL_DUKE_RANDOM = 24762,
|
||||
SPELL_DUKE_FIRE = 24766,
|
||||
SPELL_DUKE_AIR = 24769,
|
||||
SPELL_DUKE_EARTH = 24771,
|
||||
SPELL_DUKE_WATER = 24773,
|
||||
|
||||
SPELL_DUKE_RANDOM = 24762,
|
||||
SPELL_DUKE_FIRE = 24766,
|
||||
SPELL_DUKE_AIR = 24769,
|
||||
SPELL_DUKE_EARTH = 24771,
|
||||
SPELL_DUKE_WATER = 24773,
|
||||
SPELL_ROYAL_RANDOM = 24785,
|
||||
SPELL_ROYAL_FIRE = 24787,
|
||||
SPELL_ROYAL_AIR = 24791,
|
||||
SPELL_ROYAL_EARTH = 24792,
|
||||
SPELL_ROYAL_WATER = 24793,
|
||||
|
||||
SPELL_ROYAL_RANDOM = 24785,
|
||||
SPELL_ROYAL_FIRE = 24787,
|
||||
SPELL_ROYAL_AIR = 24791,
|
||||
SPELL_ROYAL_EARTH = 24792,
|
||||
SPELL_ROYAL_WATER = 24793
|
||||
SPELL_PUNISHMENT = 24803,
|
||||
SPELL_SPAWN_IN = 25035
|
||||
};
|
||||
|
||||
enum WSGossip
|
||||
{
|
||||
GOSSIPID_LESSER_WS = 6540,
|
||||
GOSSIPID_WS = 6542,
|
||||
GOSSIPID_GREATER_WS = 6543
|
||||
OPTION_ID_WS_RANDOM = 0,
|
||||
OPTION_ID_1_CRIMSON = 1,
|
||||
OPTION_ID_2_AZURE = 2,
|
||||
OPTION_ID_3_EARTHEN = 3,
|
||||
OPTION_ID_4_HOARY = 4,
|
||||
OPTION_ID_1_CYNDERS = 1,
|
||||
OPTION_ID_2_FATHOMS = 2,
|
||||
OPTION_ID_3_SHARDS = 3,
|
||||
OPTION_ID_4_ZEPHYRS = 4,
|
||||
OPTION_ID_1_SKALDRENOX = 1,
|
||||
OPTION_ID_2_SKWOL = 2,
|
||||
OPTION_ID_3_KAZUM = 3,
|
||||
OPTION_ID_4_WHIRLAXIS = 4,
|
||||
GOSSIP_ID_LESSER_WS = 6540,
|
||||
GOSSIP_ID_WIND_STONE = 6542,
|
||||
GOSSIP_ID_GREATER_WS = 6543
|
||||
};
|
||||
|
||||
enum WSCreatures
|
||||
{
|
||||
NPC_TEMPLAR_FIRE = 15209,
|
||||
NPC_TEMPLAR_WATER = 15211,
|
||||
NPC_TEMPLAR_AIR = 15212,
|
||||
NPC_TEMPLAR_EARTH = 15307,
|
||||
NPC_TEMPLAR_FIRE = 15209,
|
||||
NPC_TEMPLAR_WATER = 15211,
|
||||
NPC_TEMPLAR_AIR = 15212,
|
||||
NPC_TEMPLAR_EARTH = 15307,
|
||||
|
||||
NPC_DUKE_FIRE = 15206,
|
||||
NPC_DUKE_WATER = 15207,
|
||||
NPC_DUKE_EARTH = 15208,
|
||||
NPC_DUKE_AIR = 15220,
|
||||
NPC_DUKE_FIRE = 15206,
|
||||
NPC_DUKE_WATER = 15207,
|
||||
NPC_DUKE_EARTH = 15208,
|
||||
NPC_DUKE_AIR = 15220,
|
||||
|
||||
NPC_ROYAL_FIRE = 15203,
|
||||
NPC_ROYAL_AIR = 15204,
|
||||
NPC_ROYAL_EARTH = 15205,
|
||||
NPC_ROYAL_WATER = 15305
|
||||
NPC_ROYAL_FIRE = 15203,
|
||||
NPC_ROYAL_AIR = 15204,
|
||||
NPC_ROYAL_EARTH = 15205,
|
||||
NPC_ROYAL_WATER = 15305
|
||||
};
|
||||
|
||||
enum WSItems
|
||||
{
|
||||
ITEM_TEMPLAR_FIRE = 20416,
|
||||
ITEM_TEMPLAR_EARTH = 20419,
|
||||
ITEM_TEMPLAR_WATER = 20420,
|
||||
ITEM_TEMPLAR_AIR = 20418,
|
||||
ITEM_TEMPLAR_FIRE = 20416,
|
||||
ITEM_TEMPLAR_AIR = 20418,
|
||||
ITEM_TEMPLAR_EARTH = 20419,
|
||||
ITEM_TEMPLAR_WATER = 20420,
|
||||
|
||||
ITEM_DUKE_FIRE = 20432,
|
||||
ITEM_DUKE_EARTH = 20435,
|
||||
ITEM_DUKE_WATER = 20436,
|
||||
ITEM_DUKE_AIR = 20433,
|
||||
ITEM_DUKE_FIRE = 20432,
|
||||
ITEM_DUKE_AIR = 20433,
|
||||
ITEM_DUKE_EARTH = 20435,
|
||||
ITEM_DUKE_WATER = 20436,
|
||||
|
||||
ITEM_ROYAL_FIRE = 20447,
|
||||
ITEM_ROYAL_EARTH = 20449,
|
||||
ITEM_ROYAL_WATER = 20450,
|
||||
ITEM_ROYAL_AIR = 20448,
|
||||
ITEM_ROYAL_FIRE = 20447,
|
||||
ITEM_ROYAL_AIR = 20448,
|
||||
ITEM_ROYAL_EARTH = 20449,
|
||||
ITEM_ROYAL_WATER = 20450
|
||||
};
|
||||
|
||||
enum WS
|
||||
{
|
||||
TEMPLAR = 0,
|
||||
DUKE = 1,
|
||||
ROYAL = 2,
|
||||
TEMPLAR = 0,
|
||||
DUKE = 1,
|
||||
ROYAL = 2,
|
||||
|
||||
FIRE = 0x1,
|
||||
WATER = 0x2,
|
||||
EARTH = 0x4,
|
||||
AIR = 0x8
|
||||
};
|
||||
FIRE = 0x1,
|
||||
WATER = 0x2,
|
||||
EARTH = 0x4,
|
||||
AIR = 0x8
|
||||
};
|
||||
|
||||
enum WSTexts
|
||||
{
|
||||
SAY_TEMPLAR_AGGRO = 0,
|
||||
SAY_DUKE_AGGRO = 0,
|
||||
YELL_ROYAL_AGGRO = 0
|
||||
SAY_TEMPLAR_AGGRO = 0,
|
||||
SAY_DUKE_AGGRO = 0,
|
||||
YELL_ROYAL_AGGRO = 0
|
||||
};
|
||||
|
||||
#define GOSSIP_TEMPLAR_RANDOM "I am no cultist, you monster! Come to me and face your destruction!"
|
||||
#define GOSSIP_TEMPLAR_FIRE "Crimson Templar! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_TEMPLAR_EARTH "Earthen Templar! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_TEMPLAR_AIR "Hoary Templar! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_TEMPLAR_WATER "Azure Templar! I hold your signet! Heed my call!"
|
||||
|
||||
#define GOSSIP_DUKE_RANDOM "You will listen to this, vile duke! I am not your Twilight's Hammer lapdog! I am here to challenge you! Come! Come, and meet your death..."
|
||||
#define GOSSIP_DUKE_FIRE "Duke of Cynders! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_DUKE_EARTH "The Duke of Shards! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_DUKE_AIR "The Duke of Zephyrs! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_DUKE_WATER "The Duke of Fathoms! I hold your signet! Heed my call!"
|
||||
|
||||
#define GOSSIP_ROYAL_RANDOM "The day of the judgement has come, fiend! I challenge you to battle!"
|
||||
#define GOSSIP_ROYAL_FIRE "Prince Skaldrenox! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_ROYAL_EARTH "Baron Kazum! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_ROYAL_AIR "High Marshal Whirlaxis! I hold your signet! Heed my call!"
|
||||
#define GOSSIP_ROYAL_WATER "Lord Skwol! I hold your signet! Heed my call!"
|
||||
|
||||
class go_wind_stone : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
@@ -1294,7 +1197,7 @@ class go_wind_stone : public GameObjectScript
|
||||
case NPC_TEMPLAR_WATER:
|
||||
case NPC_TEMPLAR_AIR:
|
||||
case NPC_TEMPLAR_EARTH:
|
||||
summons->AI()->Talk(SAY_TEMPLAR_AGGRO);
|
||||
summons->AI()->Talk(SAY_TEMPLAR_AGGRO, player);
|
||||
break;
|
||||
|
||||
case NPC_DUKE_FIRE:
|
||||
@@ -1323,10 +1226,10 @@ class go_wind_stone : public GameObjectScript
|
||||
uint32 gossipId = go->GetGOInfo()->GetGossipMenuId();
|
||||
switch (gossipId)
|
||||
{
|
||||
case GOSSIPID_LESSER_WS:
|
||||
case GOSSIP_ID_LESSER_WS:
|
||||
{
|
||||
if (rank >= 1) // 1 or 2 or 3
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_LESSER_WS, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
else
|
||||
{
|
||||
go->CastSpell(player, SPELL_PUNISHMENT);
|
||||
@@ -1335,19 +1238,19 @@ class go_wind_stone : public GameObjectScript
|
||||
|
||||
uint8 item = GetItems(player, TEMPLAR);
|
||||
if (item & FIRE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_LESSER_WS, OPTION_ID_1_CRIMSON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
if (item & WATER)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_LESSER_WS, OPTION_ID_2_AZURE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
if (item & EARTH)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_LESSER_WS, OPTION_ID_3_EARTHEN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
if (item & AIR)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TEMPLAR_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_LESSER_WS, OPTION_ID_4_HOARY, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
break;
|
||||
}
|
||||
case GOSSIPID_WS:
|
||||
case GOSSIP_ID_WIND_STONE:
|
||||
{
|
||||
if (rank >= 2) // 2 or 3
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_WIND_STONE, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
else
|
||||
{
|
||||
go->CastSpell(player, SPELL_PUNISHMENT);
|
||||
@@ -1356,19 +1259,19 @@ class go_wind_stone : public GameObjectScript
|
||||
|
||||
uint8 item = GetItems(player, DUKE);
|
||||
if (item & FIRE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_WIND_STONE, OPTION_ID_1_CYNDERS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
|
||||
if (item & WATER)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_WIND_STONE, OPTION_ID_2_FATHOMS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
|
||||
if (item & EARTH)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_WIND_STONE, OPTION_ID_3_SHARDS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
if (item & AIR)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUKE_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_WIND_STONE, OPTION_ID_4_ZEPHYRS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
|
||||
break;
|
||||
}
|
||||
case GOSSIPID_GREATER_WS:
|
||||
case GOSSIP_ID_GREATER_WS:
|
||||
{
|
||||
if (rank == 3) // 3
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_GREATER_WS, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
else
|
||||
{
|
||||
go->CastSpell(player, SPELL_PUNISHMENT);
|
||||
@@ -1377,13 +1280,13 @@ class go_wind_stone : public GameObjectScript
|
||||
|
||||
uint8 item = GetItems(player, ROYAL);
|
||||
if (item & FIRE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_FIRE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_GREATER_WS, OPTION_ID_1_SKALDRENOX, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
if (item & WATER)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_WATER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_GREATER_WS, OPTION_ID_2_SKWOL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
if (item & EARTH)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_EARTH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_GREATER_WS, OPTION_ID_3_KAZUM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
if (item & AIR)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ROYAL_AIR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
|
||||
player->ADD_GOSSIP_ITEM_DB(GOSSIP_ID_GREATER_WS, OPTION_ID_4_WHIRLAXIS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -1462,6 +1365,5 @@ void AddSC_silithus()
|
||||
new npc_anachronos_quest_trigger();
|
||||
new npc_anachronos_the_ancient();
|
||||
new npc_qiraj_war_spawn();
|
||||
new npcs_rutgar_and_frankal();
|
||||
new go_wind_stone();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user