aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSnapperRy <snapperryen@gmail.com>2016-10-14 17:49:55 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-09-06 16:01:55 +0200
commita2fce3a48653b8efeeab1cf243adbd959b9ac27f (patch)
tree0f772c07280d62c84f395fdcd5d8f57c57d6fd3a
parentd7c85d719306ad6f3e239e7e43975eb70bbdbc9f (diff)
Script/Creature: Scarshield Infiltrator/Vaelan.
(cherry picked from commit fdc4ab4ab4ab99657cb64b42e9e30272aebc5527)
-rw-r--r--sql/updates/world/master/2017_09_06_06_world_2016_10_14_02_world_335.sql91
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h6
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp30
3 files changed, 125 insertions, 2 deletions
diff --git a/sql/updates/world/master/2017_09_06_06_world_2016_10_14_02_world_335.sql b/sql/updates/world/master/2017_09_06_06_world_2016_10_14_02_world_335.sql
new file mode 100644
index 00000000000..e2329bf7577
--- /dev/null
+++ b/sql/updates/world/master/2017_09_06_06_world_2016_10_14_02_world_335.sql
@@ -0,0 +1,91 @@
+--
+DELETE FROM `creature_text` WHERE `entry` IN (10296, 10299);
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(10296, 0, 0, "At last - one among you is worthy of my knowledge. Worry not - I have probed your thoughts, no harm will come to you.", 12, 0, 100, 1, 0, 0, 5555, 0, "Vaelan"),
+(10296, 1, 0, "Listen carefully, for the lord of Blackrock will surely destroy you, should you not be prepared.", 12, 0, 100, 1, 0, 0, 5556, 0, "Vaelan"),
+(10296, 2, 0, "%s is surrounded by a barrier of anti-magic.", 16, 0, 100, 0, 0, 0, 5590, 0, "Vaelan"),
+(10296, 3, 0, "I have discerned the path that you must take. Are you prepared?", 12, 0, 100, 1, 0, 0, 5591, 0, "Vaelan"),
+(10299, 0, 0, "Begone, mortal. You are not worthy of my knowledge.", 15, 0, 100, 0, 0, 0, 5592, 0, "Scarshield Infiltrator");
+
+UPDATE `creature_template` SET `gossip_menu_id`=12039 WHERE `entry`=10296;
+DELETE FROM `gossip_menu_option` WHERE `MenuId` BETWEEN 12039 AND 12048;
+INSERT INTO `gossip_menu_option` (`MenuId`, `OptionIndex`, `OptionIcon`, `OptionText`, `OptionBroadcastTextId`, `OptionType`, `OptionNpcflag`, `VerifiedBuild`) VALUES
+(12039, 0, 0, "Your kind?", 5569, 1, 1, 0),
+(12039, 1, 0, "As you wish, Vaelan.", 5589, 1, 1, 0),
+(12040, 0, 0, "Please.", 5571, 1, 1, 0),
+(12041, 0, 0, "No, Vaelan, I do not.", 5573, 1, 1, 0),
+(12042, 0, 0, "Demon Soul?", 5575, 1, 1, 0),
+(12043, 0, 0, "Where he left off?", 5577, 1, 1, 0),
+(12044, 0, 0, "Why not destroy them with the combined might of the Aspects?", 5579, 1, 1, 0),
+(12045, 0, 0, "Unless?", 5581, 1, 1, 0),
+(12046, 0, 0, "I am willing to try but I will require instruction.", 5583, 1, 1, 0),
+(12047, 0, 0, "I will do my best, Vaelan.", 5585, 1, 1, 0),
+(12048, 0, 0, "It will be done.", 5587, 1, 1, 0);
+
+DELETE FROM `gossip_menu_option_action` WHERE `MenuId` BETWEEN 12039 AND 12048;
+INSERT INTO `gossip_menu_option_action` (`MenuId`, `OptionIndex`, `ActionMenuId`, `ActionPoiId`) VALUES
+(12039, 0, 12040, 0),
+(12040, 0, 12041, 0),
+(12041, 0, 12042, 0),
+(12042, 0, 12043, 0),
+(12043, 0, 12044, 0),
+(12044, 0, 12045, 0),
+(12045, 0, 12046, 0),
+(12046, 0, 12047, 0),
+(12047, 0, 12048, 0);
+
+DELETE FROM `gossip_menu` WHERE `entry` BETWEEN 12039 AND 12048;
+INSERT INTO `gossip_menu` (`entry`, `text_id`, `VerifiedBuild`) VALUES
+(12039, 3301, 0),
+(12039, 3311, 0),
+(12040, 3302, 0),
+(12041, 3303, 0),
+(12042, 3304, 0),
+(12043, 3305, 0),
+(12044, 3306, 0),
+(12045, 3307, 0),
+(12046, 3308, 0),
+(12047, 3309, 0),
+(12048, 3310, 0);
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14, 15) AND `SourceGroup`=12039;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(14, 12039, 3311, 0, 0, 2, 0, 12219, 1, 0, 0, 0, 0, "", "Show gossip menu 12039 with text 3311 if player has item Unadorned Seal of Ascension in inventory OR"),
+(14, 12039, 3311, 0, 1, 2, 0, 12324, 1, 0, 0, 0, 0, "", "Show gossip menu 12039 with text 3311 if player has item Forged Seal of Ascension in inventory"),
+(15, 12039, 0, 0, 0, 2, 0, 12219, 1, 0, 1, 0, 0, "", "Show gossip option 0 if player does not have item Unadorned Seal of Ascension in inventory AND"),
+(15, 12039, 0, 0, 0, 2, 0, 12324, 1, 0, 1, 0, 0, "", "Show gossip option 0 if player does not have item Forged Seal of Ascension in inventory"),
+(15, 12039, 1, 0, 0, 2, 0, 12219, 1, 0, 0, 0, 0, "", "Show gossip option 1 if player has item Unadorned Seal of Ascension in inventory OR"),
+(15, 12039, 1, 0, 1, 2, 0, 12324, 1, 0, 0, 0, 0, "", "Show gossip option 1 if player has item Forged Seal of Ascension in inventory");
+
+UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry` IN (10296, 10299);
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (10296, 10299, 1029900, 1029901);
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(10299, 0, 0, 0, 62, 0, 100, 0, 12039, 1, 0, 0, 80, 1029901, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Gossip Option 1 (menu 12039) selected - Call Actionlist"),
+(10299, 0, 1, 0, 62, 0, 100, 0, 12048, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Gossip Option 0 (menu 12048) selected - Close gossip"),
+(10299, 0, 2, 0, 38, 0, 100, 1, 1, 1, 1000, 1000, 80, 1029900, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Data 1 1 Set - Call Actionlist"),
+(1029900, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 16037, 2, 0, 0, 0, 0, 21, 90, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Cast"),
+(1029900, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 91, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Remove Flag Standstate Kneel"),
+(1029900, 9, 2, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 36, 10296, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Change entry"),
+(1029900, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 83, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Remove Gossip+Questgiver flag"),
+(1029900, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 21, 90, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Face nearest player"),
+(1029900, 9, 5, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Talk 0"),
+(1029900, 9, 6, 0, 0, 0, 100, 0, 6000, 6000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Talk 1"),
+(1029900, 9, 7, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 82, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Add Gossip flag"),
+(1029901, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Close Gossip"),
+(1029901, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Remove Gossip flag"),
+(1029901, 9, 2, 0, 0, 0, 100, 0, 100, 100, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Play Emote 1"),
+(1029901, 9, 3, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 11, 16051, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Cast Spell"),
+(1029901, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Talk 2"),
+(1029901, 9, 5, 0, 0, 0, 100, 0, 4500, 4500, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Talk 3"),
+(1029901, 9, 6, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 82, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Scarshield Infiltrator - On Script - Add Questgiver Flag");
+
+DELETE FROM `areatrigger_scripts` WHERE `entry`=1946;
+INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES
+(1946, "at_nearby_scarshield_infiltrator");
+
+DELETE FROM `creature_template_addon` WHERE `entry`=10299;
+INSERT INTO `creature_template_addon` (entry, bytes1) VALUES
+(10299, 8);
+
+UPDATE `creature` SET `position_x`=56.9316, `position_y`=-399.4169, `position_z`=64.3478 WHERE `guid`=42798;
+DELETE FROM `creature` WHERE `guid`=42797;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h
index b4bda52ccf4..78f331a5ba7 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h
@@ -50,7 +50,8 @@ enum BRSDataTypes
DATA_HALL_RUNE_4 = 19,
DATA_HALL_RUNE_5 = 20,
DATA_HALL_RUNE_6 = 21,
- DATA_HALL_RUNE_7 = 22
+ DATA_HALL_RUNE_7 = 22,
+ DATA_SCARSHIELD_INFILTRATOR = 23
};
enum BRSCreaturesIds
@@ -73,7 +74,8 @@ enum BRSCreaturesIds
NPC_BLACKHAND_SUMMONER = 9818,
NPC_BLACKHAND_VETERAN = 9819,
NPC_BLACKHAND_INCARCERATOR = 10316,
- NPC_LORD_VICTOR_NEFARIUS = 10162
+ NPC_LORD_VICTOR_NEFARIUS = 10162,
+ NPC_SCARSHIELD_INFILTRATOR = 10299
};
enum BRSAdditionalData
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 599423ea7d8..f4514695782 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
@@ -107,6 +107,9 @@ public:
if (GetBossState(DATA_GYTH) == DONE)
creature->DisappearAndDie();
break;
+ case NPC_SCARSHIELD_INFILTRATOR:
+ ScarshieldInfiltrator = creature->GetGUID();
+ break;
}
}
@@ -316,6 +319,8 @@ public:
return TheBeast;
case DATA_GENERAL_DRAKKISATH:
return GeneralDrakkisath;
+ case DATA_SCARSHIELD_INFILTRATOR:
+ return ScarshieldInfiltrator;
case GO_EMBERSEER_IN:
return go_emberseerin;
case GO_DOORS:
@@ -494,6 +499,7 @@ public:
ObjectGuid LordVictorNefarius;
ObjectGuid TheBeast;
ObjectGuid GeneralDrakkisath;
+ ObjectGuid ScarshieldInfiltrator;
ObjectGuid go_emberseerin;
ObjectGuid go_doors;
ObjectGuid go_emberseerout;
@@ -563,9 +569,33 @@ public:
}
};
+class at_nearby_scarshield_infiltrator : public AreaTriggerScript
+{
+public:
+ at_nearby_scarshield_infiltrator() : AreaTriggerScript("at_nearby_scarshield_infiltrator") { }
+
+ bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/, bool /*entered*/) override
+ {
+ if (player && player->IsAlive())
+ if (InstanceScript* instance = player->GetInstanceScript())
+ if (Creature* infiltrator = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_SCARSHIELD_INFILTRATOR)))
+ {
+ if (player->getLevel() >= 57)
+ infiltrator->AI()->SetData(1, 1);
+ else if (infiltrator->GetEntry() == NPC_SCARSHIELD_INFILTRATOR)
+ infiltrator->AI()->Talk(0, player);
+
+ return true;
+ }
+
+ return false;
+ }
+};
+
void AddSC_instance_blackrock_spire()
{
new instance_blackrock_spire();
new at_dragonspire_hall();
new at_blackrock_stadium();
+ new at_nearby_scarshield_infiltrator();
}