mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 15:40:45 +01:00
Script/ZulGurub: implement several RP texts (#23358)
This commit is contained in:
10
sql/updates/world/3.3.5/9999_99_99_99_world.sql
Normal file
10
sql/updates/world/3.3.5/9999_99_99_99_world.sql
Normal file
@@ -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');
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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[] =
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user