aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2013_06_24_00_world_creature_text.sql22
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp92
2 files changed, 109 insertions, 5 deletions
diff --git a/sql/updates/world/2013_06_24_00_world_creature_text.sql b/sql/updates/world/2013_06_24_00_world_creature_text.sql
new file mode 100644
index 00000000000..6419e43ad14
--- /dev/null
+++ b/sql/updates/world/2013_06_24_00_world_creature_text.sql
@@ -0,0 +1,22 @@
+-- Text for Lord Victor Nefarius from sniff
+SET @VICTOR := 10162;
+SET @REND := 10429;
+DELETE FROM `creature_text` WHERE `entry` IN (@VICTOR,@REND);
+INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
+-- Lord Victor Nefarius texts UBRS
+(@VICTOR,0,0,"Excellent... it would appear as if the meddlesome insects have arrived just in time to feed my legion. Welcome, mortals!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,1,0,"Let not even a drop of their blood remain upon the arena floor, my children. Feast on their souls!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,2,0,"Foolsss... Kill the one in the dress!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,3,0,"Inconceivable!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,4,0,"Your efforts will prove fruitless. None shall stand in our way!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,5,0,"Do not force my hand, children! I shall use your hides to line my boots.",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,6,0,"Use the freezing breath, imbecile!",14,0,100,22,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,7,0,"THIS CANNOT BE!!! Rend, deal with these insects.",14,0,100,0,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,8,0,"The Warchief shall make quick work of you, mortals. Prepare yourselves!",14,0,100,25,0,0,'Lord Victor Nefarius (UBRS)'),
+(@VICTOR,9,0,"Your victory shall be short lived. The days of both the Alliance and Horde are coming to an end! The next time we meet shall be the last.",14,0,100,5,0,0,'Lord Victor Nefarius (UBRS)'),
+-- Lord Victor Nefarius texts BWL
+(@VICTOR,10,0,"In this world where time is your enemy, it is my greatest ally. This grand game of life that you think you play in fact plays you. To that I say...",12,0,100,22,0,0,'Lord Victor Nefarius SAY_GAMESBEGIN_1 (BWL)'),
+(@VICTOR,11,0,"Let the games begin!",14,0,100,22,0,8280,'Lord Victor Nefarius SAY_GAMESBEGIN_2 (BWL)'),
+(@VICTOR,12,0,"Ah, the heroes. You are persistent, aren't you. Your allied attempted to match his power against mine, and had to pay the price. Now he shall serve me, by slaughtering you. Get up little red wyrm and destroy them!",14,0,100,22,0,8279,'Lord Victor Nefarius SAY_VAEL_INTRO (BWL)'),
+-- Warchief Rend Blackhand text
+(@REND,0,0,"With pleasure...",14,0,100,0,0,0,'Warchief Rend Blackhand');
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
index a6138c38f28..84670ed4e0c 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
@@ -30,9 +30,21 @@ EndScriptData */
enum Says
{
- SAY_GAMESBEGIN_1 = 0,
- SAY_GAMESBEGIN_2 = 1,
- //SAY_VAEL_INTRO = 2, Not used - when he corrupts Vaelastrasz
+ // UBRS text
+ SAY_GYTH_REND_1 = 0,
+ SAY_GYTH_REND_2 = 1,
+ SAY_GYTH_REND_3 = 2,
+ SAY_GYTH_REND_4 = 3,
+ SAY_GYTH_REND_5 = 4,
+ SAY_GYTH_REND_6 = 5,
+ SAY_GYTH_REND_7 = 6,
+ SAY_GYTH_REND_8 = 7,
+ SAY_GYTH_REND_9 = 8,
+ SAY_GYTH_REND_10 = 9,
+ // BWL text
+ SAY_GAMESBEGIN_1 = 10,
+ SAY_GAMESBEGIN_2 = 11,
+ //SAY_VAEL_INTRO = 12, Not used - when he corrupts Vaelastrasz
};
#define GOSSIP_ITEM_1 "I've made no mistakes."
@@ -41,6 +53,7 @@ enum Says
enum Creatures
{
+ NPC_REND_BLACKHAND = 10429,
CREATURE_BRONZE_DRAKANOID = 14263,
CREATURE_BLUE_DRAKANOID = 14261,
CREATURE_RED_DRAKANOID = 14264,
@@ -68,8 +81,23 @@ enum Creatures
enum Spells
{
- SPELL_SHADOWBOLT = 21077,
- SPELL_FEAR = 26070
+ // UBRS Spells
+ SPELL_CHROMATIC_CHAOS = 16337, // Self Cast hits 10339
+ SPELL_VAELASTRASZZ_SPAWN = 16354, // Self Cast Depawn one sec after
+ // BWL Spells
+ SPELL_SHADOWBOLT = 21077,
+ SPELL_FEAR = 26070
+};
+
+enum Events
+{
+ // UBRS Events
+ EVENT_PLAYER_CHECK = 0,
+ EVENT_GYTH_REND_1 = 1,
+ EVENT_GYTH_REND_2 = 2,
+ EVENT_GYTH_REND_3 = 3,
+ EVENT_GYTH_REND_4 = 4,
+ EVENT_GYTH_REND_5 = 5,
};
//This script is complicated
@@ -178,6 +206,11 @@ public:
void Reset()
{
+ if(me->GetMapId() == 229)
+ {
+ _events.ScheduleEvent(EVENT_PLAYER_CHECK, 5000);
+ }
+
if(me->GetMapId() == 469)
{
SpawnedAdds = 0;
@@ -229,6 +262,51 @@ public:
void UpdateAI(uint32 diff)
{
+
+ if(me->GetMapId() == 229) // UBRS EVENTS
+ {
+ _events.Update(diff);
+
+ while (uint32 eventId = _events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_PLAYER_CHECK:
+ // If player found within 30.0f
+ // _events.ScheduleEvent(EVENT_GYTH_REND_1, 1000);
+ // else
+ // events.ScheduleEvent(EVENT_PLAYER_CHECK, 5000);
+ break;
+ case EVENT_GYTH_REND_1:
+ Talk(SAY_GYTH_REND_1);
+ _events.ScheduleEvent(EVENT_GYTH_REND_2, 4000);
+ break;
+ case EVENT_GYTH_REND_2:
+ if (Unit* player = SelectTarget(SELECT_TARGET_NEAREST, 0, 30.0f, false))
+ me->SetInFront(player);
+ me->SendMovementFlagUpdate();
+ me->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
+ _events.ScheduleEvent(EVENT_GYTH_REND_3, 4000);
+ break;
+ case EVENT_GYTH_REND_3:
+ Talk(SAY_GYTH_REND_2);
+ _events.ScheduleEvent(EVENT_GYTH_REND_4, 4000);
+ break;
+ case EVENT_GYTH_REND_4:
+ if (Creature* rend = me->FindNearestCreature(NPC_REND_BLACKHAND, 5.0f, true))
+ me->SetInFront(rend);
+ me->SendMovementFlagUpdate();
+ _events.ScheduleEvent(EVENT_GYTH_REND_5, 4000);
+ break;
+ case EVENT_GYTH_REND_5:
+ me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
+ _events.ScheduleEvent(EVENT_GYTH_REND_5, 4000);
+ default:
+ break;
+ }
+ }
+ }
+
if (!UpdateVictim())
return;
@@ -348,6 +426,10 @@ public:
}
private:
+ EventMap _events;
+ // UBRS
+
+ // BWL
uint32 SpawnedAdds;
uint32 AddSpawnTimer;
uint32 ShadowBoltTimer;