Scripts/The Eye: Update instance script (#26190)

This commit is contained in:
offl
2021-03-11 20:19:23 +02:00
committed by GitHub
parent 10304a8875
commit 5a22cd868a
5 changed files with 48 additions and 89 deletions

View File

@@ -0,0 +1,5 @@
--
UPDATE `instance_spawn_groups` SET `bossStateId` = 3 WHERE `instanceMapId` = 550 AND `bossStateId` = 0 AND `spawnGroupId` = 47;
UPDATE `instance_spawn_groups` SET `bossStateId` = 0 WHERE `instanceMapId` = 550 AND `bossStateId` = 1 AND `spawnGroupId` = 44;
UPDATE `instance_spawn_groups` SET `bossStateId` = 2 WHERE `instanceMapId` = 550 AND `bossStateId` = 2 AND `spawnGroupId` = 46;
UPDATE `instance_spawn_groups` SET `bossStateId` = 1 WHERE `instanceMapId` = 550 AND `bossStateId` = 3 AND `spawnGroupId` = 45;

View File

@@ -98,7 +98,7 @@ class boss_high_astromancer_solarian : public CreatureScript
struct boss_high_astromancer_solarianAI : public BossAI
{
boss_high_astromancer_solarianAI(Creature* creature) : BossAI(creature, DATA_HIGH_ASTROMANCER_SOLARIAN)
boss_high_astromancer_solarianAI(Creature* creature) : BossAI(creature, DATA_SOLARIAN)
{
Initialize();
@@ -457,7 +457,7 @@ class npc_solarium_priest : public CreatureScript
switch (urand(0, 1))
{
case 0:
target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ASTROMANCER));
target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_SOLARIAN));
break;
case 1:
target = me;

View File

@@ -486,10 +486,10 @@ class boss_kaelthas : public CreatureScript
Talk(SAY_INTRO);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
_advisorGuid[ADVISOR_THALADRED] = instance->GetGuidData(DATA_THALADREDTHEDARKENER);
_advisorGuid[ADVISOR_SANGUINAR] = instance->GetGuidData(DATA_LORDSANGUINAR);
_advisorGuid[ADVISOR_CAPERNIAN] = instance->GetGuidData(DATA_GRANDASTROMANCERCAPERNIAN);
_advisorGuid[ADVISOR_TELONICUS] = instance->GetGuidData(DATA_MASTERENGINEERTELONICUS);
_advisorGuid[ADVISOR_THALADRED] = instance->GetGuidData(DATA_THALADRED);
_advisorGuid[ADVISOR_SANGUINAR] = instance->GetGuidData(DATA_SANGUINAR);
_advisorGuid[ADVISOR_CAPERNIAN] = instance->GetGuidData(DATA_CAPERNIAN);
_advisorGuid[ADVISOR_TELONICUS] = instance->GetGuidData(DATA_TELONICUS);
_phase = PHASE_INTRO;
instance->SetBossState(DATA_KAELTHAS, IN_PROGRESS);

View File

@@ -15,23 +15,16 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Instance_The_Eye
SD%Complete: 100
SDComment:
SDCategory: Tempest Keep, The Eye
EndScriptData */
#include "ScriptMgr.h"
#include "Creature.h"
#include "InstanceScript.h"
#include "the_eye.h"
/* The Eye encounters:
0 - Kael'thas event
1 - Al' ar event
2 - Solarian Event
3 - Void Reaver event
0 - Al'ar
1 - Void Reaver
2 - Solarian
3 - Kael'thas
*/
DoorData const doorData[] =
@@ -41,6 +34,19 @@ DoorData const doorData[] =
{ 0, 0, DOOR_TYPE_ROOM } // END
};
ObjectData const creatureData[] =
{
{ NPC_ALAR, DATA_ALAR },
{ NPC_VOID_REAVER, DATA_VOID_REAVER },
{ NPC_SOLARIAN, DATA_SOLARIAN },
{ NPC_KAELTHAS, DATA_KAELTHAS },
{ NPC_CAPERNIAN, DATA_CAPERNIAN },
{ NPC_SANGUINAR, DATA_SANGUINAR },
{ NPC_TELONICUS, DATA_TELONICUS },
{ NPC_THALADRED, DATA_THALADRED },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
{
{ GO_KAEL_STATUE_RIGHT, DATA_KAEL_STATUE_RIGHT },
@@ -61,60 +67,7 @@ class instance_the_eye : public InstanceMapScript
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadDoorData(doorData);
LoadObjectData(nullptr, gameObjectData);
}
ObjectGuid ThaladredTheDarkener;
ObjectGuid LordSanguinar;
ObjectGuid GrandAstromancerCapernian;
ObjectGuid MasterEngineerTelonicus;
ObjectGuid Kaelthas;
ObjectGuid Astromancer;
ObjectGuid Alar;
void OnCreatureCreate(Creature* creature) override
{
switch (creature->GetEntry())
{
case NPC_SANGUINAR:
LordSanguinar = creature->GetGUID();
break;
case NPC_CAPERNIAN:
GrandAstromancerCapernian = creature->GetGUID();
break;
case NPC_TELONICUS:
MasterEngineerTelonicus = creature->GetGUID();
break;
case NPC_THALADRED:
ThaladredTheDarkener = creature->GetGUID();
break;
case NPC_KAELTHAS:
Kaelthas = creature->GetGUID();
break;
case NPC_HIGH_ASTROMANCER_SOLARIAN:
Astromancer = creature->GetGUID();
break;
case NPC_ALAR:
Alar = creature->GetGUID();
break;
default:
break;
}
}
ObjectGuid GetGuidData(uint32 identifier) const override
{
switch (identifier)
{
case DATA_THALADREDTHEDARKENER: return ThaladredTheDarkener;
case DATA_LORDSANGUINAR: return LordSanguinar;
case DATA_GRANDASTROMANCERCAPERNIAN: return GrandAstromancerCapernian;
case DATA_MASTERENGINEERTELONICUS: return MasterEngineerTelonicus;
case DATA_KAELTHAS: return Kaelthas;
case DATA_HIGH_ASTROMANCER_SOLARIAN: return Astromancer;
case DATA_ALAR: return Alar;
}
return ObjectGuid::Empty;
LoadObjectData(creatureData, gameObjectData);
}
};
@@ -123,6 +76,7 @@ class instance_the_eye : public InstanceMapScript
return new instance_the_eye_InstanceMapScript(map);
}
};
void AddSC_instance_the_eye()
{
new instance_the_eye;

View File

@@ -27,33 +27,33 @@ uint32 const EncounterCount = 4;
enum TEDataTypes
{
// Encounter States/Boss GUIDs
DATA_KAELTHAS = 0,
DATA_ALAR = 1,
DATA_HIGH_ASTROMANCER_SOLARIAN = 2,
DATA_VOID_REAVER = 3,
DATA_ASTROMANCER = 4,
DATA_GRANDASTROMANCERCAPERNIAN = 5,
DATA_LORDSANGUINAR = 6,
DATA_MASTERENGINEERTELONICUS = 7,
DATA_THALADREDTHEDARKENER = 8,
// Encounter States
DATA_ALAR = 0,
DATA_VOID_REAVER = 1,
DATA_SOLARIAN = 2,
DATA_KAELTHAS = 3,
// Additional Data
DATA_KAEL_STATUE_LEFT = 9,
DATA_KAEL_STATUE_RIGHT = 10,
DATA_TEMPEST_BRIDGE_WINDOW = 11
DATA_CAPERNIAN = 4,
DATA_SANGUINAR = 5,
DATA_TELONICUS = 6,
DATA_THALADRED = 7,
DATA_KAEL_STATUE_LEFT = 8,
DATA_KAEL_STATUE_RIGHT = 9,
DATA_TEMPEST_BRIDGE_WINDOW = 10
};
enum TECreatureIds
{
NPC_ALAR = 19514,
NPC_VOID_REAVER = 19516,
NPC_SOLARIAN = 18805,
NPC_KAELTHAS = 19622,
NPC_SANGUINAR = 20060,
NPC_CAPERNIAN = 20062,
NPC_TELONICUS = 20063,
NPC_THALADRED = 20064,
NPC_KAELTHAS = 19622,
NPC_HIGH_ASTROMANCER_SOLARIAN = 18805,
NPC_ALAR = 19514
NPC_THALADRED = 20064
};
enum TEGameObjectIds