aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWyrserth <43747507+Wyrserth@users.noreply.github.com>2019-06-05 23:01:38 +0200
committerccrs <ccrs@users.noreply.github.com>2019-06-05 23:01:38 +0200
commit41931c069d442c0e15a344023d2bbf8c1b0820d9 (patch)
tree261b9223e7c44407dfd0e578b90e56819d7f41aa
parentfb28cee6eeb97b722ebce54a444de9f13717752c (diff)
Script/ZulGurub: implement several RP texts (#23358)
-rw-r--r--sql/updates/world/3.3.5/9999_99_99_99_world.sql10
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp41
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h11
4 files changed, 60 insertions, 5 deletions
diff --git a/sql/updates/world/3.3.5/9999_99_99_99_world.sql b/sql/updates/world/3.3.5/9999_99_99_99_world.sql
new file mode 100644
index 00000000000..e17fc33b1e7
--- /dev/null
+++ b/sql/updates/world/3.3.5/9999_99_99_99_world.sql
@@ -0,0 +1,10 @@
+UPDATE `creature_text` SET `TextRange`=3 WHERE `CreatureID`=14834 AND `GroupId` IN (2, 3);
+DELETE FROM `creature_text` WHERE `CreatureID`=14834 AND `GroupId`=4;
+INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(14834, 4, 0, "Your callous disregard for the sovereign might of the Gurubashi Empire has been noted. The inhabitants of Zul'Gurub have been alerted to your presence.", 16, 0, 100, 0, 0, 0, 10550, 3, "hakkar SAY_ENTRANCE");
+
+DELETE FROM `areatrigger_scripts` WHERE `entry` IN (3957, 3958, 3960);
+INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES
+(3957, 'at_zulgurub_entrance'),
+(3958, 'at_zulgurub_entrance'),
+(3960, 'at_zulgurub_entrance');
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
index e3015b4db35..f3fbc0ab5cb 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
@@ -16,7 +16,9 @@
*/
#include "zulgurub.h"
+#include "DBCStructure.h"
#include "InstanceScript.h"
+#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -24,8 +26,9 @@ enum Says
{
SAY_AGGRO = 0,
SAY_FLEEING = 1,
- SAY_MINION_DESTROY = 2, // Where does it belong?
- SAY_PROTECT_ALTAR = 3 // Where does it belong?
+ SAY_MINION_DESTROY = 2,
+ SAY_PROTECT_ALTAR = 3,
+ SAY_ENTRANCE = 4
};
enum Spells
@@ -180,7 +183,41 @@ class boss_hakkar : public CreatureScript
}
};
+class at_zulgurub_entrance : public OnlyOnceAreaTriggerScript
+{
+public:
+ at_zulgurub_entrance() : OnlyOnceAreaTriggerScript("at_zulgurub_entrance") { }
+
+ bool _OnTrigger(Player* player, AreaTriggerEntry const* areaTrigger) override
+ {
+ InstanceScript* instance = player->GetInstanceScript();
+ if (!instance || instance->GetBossState(DATA_HAKKAR) == DONE)
+ return true;
+
+ if (Creature* hakkar = instance->GetCreature(DATA_HAKKAR))
+ {
+ switch (areaTrigger->id)
+ {
+ case AREA_TRIGGER_1:
+ hakkar->AI()->Talk(SAY_ENTRANCE);
+ break;
+ case AREA_TRIGGER_2:
+ hakkar->AI()->Talk(SAY_PROTECT_ALTAR);
+ break;
+ case AREA_TRIGGER_3:
+ hakkar->AI()->Talk(SAY_MINION_DESTROY);
+ break;
+ default:
+ break;
+ }
+ }
+
+ return true;
+ }
+};
+
void AddSC_boss_hakkar()
{
new boss_hakkar();
+ new at_zulgurub_entrance();
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
index 714e70ea129..6abdd862fc9 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
@@ -36,7 +36,8 @@ ObjectData const creatureData[] =
{ NPC_JINDO_THE_HEXXER, DATA_JINDO },
{ NPC_ARLOKK, DATA_ARLOKK },
{ NPC_PRIESTESS_MARLI, DATA_MARLI },
- { NPC_VILEBRANCH_SPEAKER, DATA_VILEBRANCH_SPEAKER }
+ { NPC_VILEBRANCH_SPEAKER, DATA_VILEBRANCH_SPEAKER },
+ { NPC_HAKKAR, DATA_HAKKAR }
};
ObjectData const gameobjectData[] =
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
index 38d958ae4cc..04908985733 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
@@ -60,8 +60,8 @@ enum ZGCreatureIds
NPC_MANDOKIR = 11382, // Mandokir Event
NPC_OHGAN = 14988, // Mandokir Event
NPC_VILEBRANCH_SPEAKER = 11391, // Mandokir Event
- NPC_CHAINED_SPIRT = 15117 // Mandokir Event
-
+ NPC_CHAINED_SPIRT = 15117, // Mandokir Event
+ NPC_HAKKAR = 14834
};
enum ZGGameObjectIds
@@ -70,6 +70,13 @@ enum ZGGameObjectIds
GO_GONG_OF_BETHEKK = 180526 // Arlokk Event
};
+enum ZulGurubAreaTriggers
+{
+ AREA_TRIGGER_1 = 3957,
+ AREA_TRIGGER_2 = 3958,
+ AREA_TRIGGER_3 = 3960
+};
+
template <class AI, class T>
inline AI* GetZulGurubAI(T* obj)
{