aboutsummaryrefslogtreecommitdiff
path: root/src
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 /src
parentfb28cee6eeb97b722ebce54a444de9f13717752c (diff)
Script/ZulGurub: implement several RP texts (#23358)
Diffstat (limited to 'src')
-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
3 files changed, 50 insertions, 5 deletions
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)
{