mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 17:54:48 +01:00
Merge [SD2]
r1041 Add support to respawn GO 164869. In addition, add placeholders to respawn 169243, 185168, 185169, 179703, 181366 and 193426 r1042 Remove limited/obsolete grid search for ancient gem in hyjal, replace with instance wide respawn of go (stored in instance script list) r1043 Code cleanup in instance script for Kara r1044 Added placeholder scripts for boss nazan/vazruden - Skip, we already have scripted that boss r1045 Initialize variables in boss omrogg. Use different summon type for heads and fix possible crash. Some code cleanup and sd2 style applied. --HG-- branch : trunk
This commit is contained in:
@@ -457,7 +457,11 @@ bool GossipSelect_boss_gloomrel(Player *player, Creature *_Creature, uint32 send
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+22:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
//re-spawn object here
|
||||
if (ScriptedInstance* pInstance = (ScriptedInstance*)_Creature->GetInstanceData())
|
||||
{
|
||||
//are 5 minutes expected? go template may have data to despawn when used at quest
|
||||
pInstance->DoRespawnGameObject(pInstance->GetData64(DATA_GO_CHALICE),MINUTE*5);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -5,23 +5,27 @@
|
||||
#ifndef DEF_BRD_H
|
||||
#define DEF_BRD_H
|
||||
|
||||
#define TYPE_RING_OF_LAW 1
|
||||
#define TYPE_VAULT 2
|
||||
#define TYPE_BAR 3
|
||||
#define TYPE_TOMB_OF_SEVEN 4
|
||||
#define TYPE_LYCEUM 5
|
||||
#define TYPE_IRON_HALL 6
|
||||
enum
|
||||
{
|
||||
TYPE_RING_OF_LAW = 1,
|
||||
TYPE_VAULT = 2,
|
||||
TYPE_BAR = 3,
|
||||
TYPE_TOMB_OF_SEVEN = 4,
|
||||
TYPE_LYCEUM = 5,
|
||||
TYPE_IRON_HALL = 6,
|
||||
|
||||
DATA_EMPEROR = 10,
|
||||
DATA_PHALANX = 11,
|
||||
|
||||
#define DATA_EMPEROR 10
|
||||
#define DATA_PHALANX 11
|
||||
DATA_ARENA1 = 12,
|
||||
DATA_ARENA2 = 13,
|
||||
DATA_ARENA3 = 14,
|
||||
DATA_ARENA4 = 15,
|
||||
|
||||
#define DATA_ARENA1 12
|
||||
#define DATA_ARENA2 13
|
||||
#define DATA_ARENA3 14
|
||||
#define DATA_ARENA4 15
|
||||
|
||||
#define DATA_GO_BAR_KEG 16
|
||||
#define DATA_GO_BAR_KEG_TRAP 17
|
||||
#define DATA_GO_BAR_DOOR 18
|
||||
DATA_GO_BAR_KEG = 16,
|
||||
DATA_GO_BAR_KEG_TRAP = 17,
|
||||
DATA_GO_BAR_DOOR = 18,
|
||||
DATA_GO_CHALICE = 19
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -32,28 +32,34 @@ update `instance_template` set `script`='instance_blackrock_depths' where `map`=
|
||||
#include "precompiled.h"
|
||||
#include "def_blackrock_depths.h"
|
||||
|
||||
#define ENCOUNTERS 6
|
||||
enum
|
||||
{
|
||||
ENCOUNTERS = 6,
|
||||
|
||||
#define C_EMPEROR 9019
|
||||
#define C_PHALANX 9502
|
||||
|
||||
#define GO_ARENA1 161525
|
||||
#define GO_ARENA2 161522
|
||||
#define GO_ARENA3 161524
|
||||
#define GO_ARENA4 161523
|
||||
#define GO_SHADOW_LOCK 161460
|
||||
#define GO_SHADOW_MECHANISM 161461
|
||||
#define GO_SHADOW_GIANT_DOOR 157923
|
||||
#define GO_SHADOW_DUMMY 161516
|
||||
#define GO_BAR_KEG_SHOT 170607
|
||||
#define GO_BAR_KEG_TRAP 171941
|
||||
#define GO_BAR_DOOR 170571
|
||||
#define GO_TOMB_ENTER 170576
|
||||
#define GO_TOMB_EXIT 170577
|
||||
#define GO_LYCEUM 170558
|
||||
#define GO_GOLEM_ROOM_N 170573
|
||||
#define GO_GOLEM_ROOM_S 170574
|
||||
#define GO_THONE_ROOM 170575
|
||||
NPC_EMPEROR = 9019,
|
||||
NPC_PHALANX = 9502,
|
||||
|
||||
GO_ARENA1 = 161525,
|
||||
GO_ARENA2 = 161522,
|
||||
GO_ARENA3 = 161524,
|
||||
GO_ARENA4 = 161523,
|
||||
GO_SHADOW_LOCK = 161460,
|
||||
GO_SHADOW_MECHANISM = 161461,
|
||||
GO_SHADOW_GIANT_DOOR = 157923,
|
||||
GO_SHADOW_DUMMY = 161516,
|
||||
GO_BAR_KEG_SHOT = 170607,
|
||||
GO_BAR_KEG_TRAP = 171941,
|
||||
GO_BAR_DOOR = 170571,
|
||||
GO_TOMB_ENTER = 170576,
|
||||
GO_TOMB_EXIT = 170577,
|
||||
GO_LYCEUM = 170558,
|
||||
GO_GOLEM_ROOM_N = 170573,
|
||||
GO_GOLEM_ROOM_S = 170574,
|
||||
GO_THONE_ROOM = 170575,
|
||||
|
||||
GO_SPECTRAL_CHALICE = 164869,
|
||||
GO_CHEST_SEVEN = 169243
|
||||
};
|
||||
|
||||
struct TRINITY_DLL_DECL instance_blackrock_depths : public ScriptedInstance
|
||||
{
|
||||
@@ -118,8 +124,8 @@ struct TRINITY_DLL_DECL instance_blackrock_depths : public ScriptedInstance
|
||||
{
|
||||
switch(creature->GetEntry())
|
||||
{
|
||||
case C_EMPEROR: EmperorGUID = creature->GetGUID(); break;
|
||||
case C_PHALANX: PhalanxGUID = creature->GetGUID(); break;
|
||||
case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;
|
||||
case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,30 +5,34 @@
|
||||
#ifndef DEF_HYJAL_H
|
||||
#define DEF_HYJAL_H
|
||||
|
||||
#define WORLD_STATE_WAVES 2842
|
||||
#define WORLD_STATE_ENEMY 2453
|
||||
#define WORLD_STATE_ENEMYCOUNT 2454
|
||||
|
||||
#define DATA_ANETHERON 1
|
||||
#define DATA_ANETHERONEVENT 2
|
||||
#define DATA_ARCHIMONDE 3
|
||||
#define DATA_ARCHIMONDEEVENT 4
|
||||
#define DATA_AZGALOR 5
|
||||
#define DATA_AZGALOREVENT 6
|
||||
#define DATA_JAINAPROUDMOORE 7
|
||||
#define DATA_KAZROGAL 8
|
||||
#define DATA_KAZROGALEVENT 9
|
||||
#define DATA_RAGEWINTERCHILL 10
|
||||
#define DATA_RAGEWINTERCHILLEVENT 11
|
||||
#define DATA_THRALL 12
|
||||
#define DATA_TYRANDEWHISPERWIND 13
|
||||
#define DATA_TRASH 14
|
||||
#define DATA_RESET_TRASH_COUNT 15
|
||||
#define DATA_ALLIANCE_RETREAT 16
|
||||
#define DATA_HORDE_RETREAT 17
|
||||
#define DATA_RAIDDAMAGE 18
|
||||
#define DATA_RESET_RAIDDAMAGE 19
|
||||
|
||||
#define ERROR_INST_DATA "TSCR: Instance data not set properly for Mount Hyjal. Encounters will be buggy"
|
||||
|
||||
enum
|
||||
{
|
||||
WORLD_STATE_WAVES = 2842,
|
||||
WORLD_STATE_ENEMY = 2453,
|
||||
WORLD_STATE_ENEMYCOUNT = 2454,
|
||||
|
||||
DATA_ANETHERON = 1,
|
||||
DATA_ANETHERONEVENT = 2,
|
||||
DATA_ARCHIMONDE = 3,
|
||||
DATA_ARCHIMONDEEVENT = 4,
|
||||
DATA_AZGALOR = 5,
|
||||
DATA_AZGALOREVENT = 6,
|
||||
DATA_JAINAPROUDMOORE = 7,
|
||||
DATA_KAZROGAL = 8,
|
||||
DATA_KAZROGALEVENT = 9,
|
||||
DATA_RAGEWINTERCHILL = 10,
|
||||
DATA_RAGEWINTERCHILLEVENT = 11,
|
||||
DATA_THRALL = 12,
|
||||
DATA_TYRANDEWHISPERWIND = 13,
|
||||
DATA_TRASH = 14,
|
||||
DATA_RESET_TRASH_COUNT = 15,
|
||||
DATA_ALLIANCE_RETREAT = 16,
|
||||
DATA_HORDE_RETREAT = 17,
|
||||
DATA_RAIDDAMAGE = 18,
|
||||
DATA_RESET_RAIDDAMAGE = 19,
|
||||
TYPE_RETREAT = 20
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -662,6 +662,8 @@ void hyjalAI::Retreat()
|
||||
{
|
||||
if(pInstance)
|
||||
{
|
||||
pInstance->SetData(TYPE_RETREAT,SPECIAL);
|
||||
|
||||
if(Faction == 0)
|
||||
{
|
||||
pInstance->SetData(DATA_ALLIANCE_RETREAT, 1);
|
||||
|
||||
@@ -25,8 +25,12 @@ EndScriptData */
|
||||
#include "def_hyjal.h"
|
||||
#include "hyjal_trash.h"
|
||||
|
||||
#define ENCOUNTERS 5
|
||||
enum
|
||||
{
|
||||
ENCOUNTERS = 5,
|
||||
|
||||
GO_ANCIENT_GEM = 185557
|
||||
};
|
||||
/* Battle of Mount Hyjal encounters:
|
||||
0 - Rage Winterchill event
|
||||
1 - Anetheron event
|
||||
@@ -42,6 +46,8 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance
|
||||
uint32 Encounters[ENCOUNTERS];
|
||||
std::string str_data;
|
||||
|
||||
std::list<uint64> m_uiAncientGemGUID;
|
||||
|
||||
uint64 RageWinterchill;
|
||||
uint64 Anetheron;
|
||||
uint64 Kazrogal;
|
||||
@@ -64,6 +70,8 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
m_uiAncientGemGUID.clear();
|
||||
|
||||
RageWinterchill = 0;
|
||||
Anetheron = 0;
|
||||
Kazrogal = 0;
|
||||
@@ -83,7 +91,6 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance
|
||||
|
||||
hordeRetreat = 0;
|
||||
allianceRetreat = 0;
|
||||
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
@@ -112,6 +119,9 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance
|
||||
else
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
break;
|
||||
case GO_ANCIENT_GEM:
|
||||
m_uiAncientGemGUID.push_back(go->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,6 +218,19 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance
|
||||
else Trash--;
|
||||
UpdateWorldState(WORLD_STATE_ENEMYCOUNT, Trash);
|
||||
break;
|
||||
case TYPE_RETREAT:
|
||||
if (data == SPECIAL)
|
||||
{
|
||||
if (!m_uiAncientGemGUID.empty())
|
||||
{
|
||||
for(std::list<uint64>::iterator itr = m_uiAncientGemGUID.begin(); itr != m_uiAncientGemGUID.end(); ++itr)
|
||||
{
|
||||
//don't know how long it expected
|
||||
DoRespawnGameObject(*itr,DAY);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DATA_ALLIANCE_RETREAT:
|
||||
allianceRetreat = data;
|
||||
OpenDoor(HordeGate,true);
|
||||
|
||||
@@ -51,24 +51,6 @@ struct TRINITY_DLL_DECL instance_ramparts : public ScriptedInstance
|
||||
}
|
||||
}
|
||||
|
||||
void DoRespawnChest()
|
||||
{
|
||||
uint64 uiChest;
|
||||
|
||||
if (instance->IsHeroic())
|
||||
uiChest = m_uiChestHGUID;
|
||||
else
|
||||
uiChest = m_uiChestNGUID;
|
||||
|
||||
if (GameObject* pGo = instance->GetGameObject(uiChest))
|
||||
{
|
||||
if (pGo->isSpawned())
|
||||
return;
|
||||
|
||||
pGo->SetRespawnTime(HOUR*IN_MILISECONDS);
|
||||
}
|
||||
}
|
||||
|
||||
void SetData(uint32 uiType, uint32 uiData)
|
||||
{
|
||||
debug_log("TSCR: Instance Ramparts: SetData received for type %u with data %u",uiType,uiData);
|
||||
@@ -77,12 +59,12 @@ struct TRINITY_DLL_DECL instance_ramparts : public ScriptedInstance
|
||||
{
|
||||
case TYPE_VAZRUDEN:
|
||||
if (uiData == DONE && m_uiEncounter[1] == DONE)
|
||||
DoRespawnChest();
|
||||
DoRespawnGameObject(instance->IsHeroic() ? m_uiChestHGUID : m_uiChestNGUID, HOUR*IN_MILISECONDS);
|
||||
m_uiEncounter[0] = uiData;
|
||||
break;
|
||||
case TYPE_NAZAN:
|
||||
if (uiData == DONE && m_uiEncounter[0] == DONE)
|
||||
DoRespawnChest();
|
||||
DoRespawnGameObject(instance->IsHeroic() ? m_uiChestHGUID : m_uiChestNGUID, HOUR*IN_MILISECONDS);
|
||||
m_uiEncounter[1] = uiData;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -29,8 +29,22 @@ EndContentData */
|
||||
#include "precompiled.h"
|
||||
#include "def_shattered_halls.h"
|
||||
|
||||
#define ENTRY_LEFT_HEAD 19523
|
||||
#define ENTRY_RIGHT_HEAD 19524
|
||||
enum
|
||||
{
|
||||
YELL_DIE_L = -1540039,
|
||||
YELL_DIE_R = -1540040,
|
||||
EMOTE_ENRAGE = -1540041,
|
||||
|
||||
SPELL_BLAST_WAVE = 30600,
|
||||
SPELL_FEAR = 30584,
|
||||
SPELL_THUNDERCLAP = 30633,
|
||||
|
||||
SPELL_BURNING_MAUL = 30598,
|
||||
H_SPELL_BURNING_MAUL = 36056,
|
||||
|
||||
NPC_LEFT_HEAD = 19523,
|
||||
NPC_RIGHT_HEAD = 19524
|
||||
};
|
||||
|
||||
struct Yell
|
||||
{
|
||||
@@ -40,61 +54,50 @@ struct Yell
|
||||
|
||||
static Yell GoCombat[]=
|
||||
{
|
||||
{-1540018, ENTRY_LEFT_HEAD},
|
||||
{-1540019, ENTRY_LEFT_HEAD},
|
||||
{-1540020, ENTRY_LEFT_HEAD},
|
||||
{-1540018, NPC_LEFT_HEAD},
|
||||
{-1540019, NPC_LEFT_HEAD},
|
||||
{-1540020, NPC_LEFT_HEAD},
|
||||
};
|
||||
static Yell GoCombatDelay[]=
|
||||
{
|
||||
{-1540021, ENTRY_RIGHT_HEAD},
|
||||
{-1540022, ENTRY_RIGHT_HEAD},
|
||||
{-1540023, ENTRY_RIGHT_HEAD},
|
||||
{-1540021, NPC_RIGHT_HEAD},
|
||||
{-1540022, NPC_RIGHT_HEAD},
|
||||
{-1540023, NPC_RIGHT_HEAD},
|
||||
};
|
||||
|
||||
static Yell Threat[]=
|
||||
{
|
||||
{-1540024, ENTRY_LEFT_HEAD},
|
||||
{-1540025, ENTRY_RIGHT_HEAD},
|
||||
{-1540026, ENTRY_LEFT_HEAD},
|
||||
{-1540027, ENTRY_LEFT_HEAD},
|
||||
{-1540024, NPC_LEFT_HEAD},
|
||||
{-1540025, NPC_RIGHT_HEAD},
|
||||
{-1540026, NPC_LEFT_HEAD},
|
||||
{-1540027, NPC_LEFT_HEAD},
|
||||
};
|
||||
static Yell ThreatDelay1[]=
|
||||
{
|
||||
{-1540028, ENTRY_RIGHT_HEAD},
|
||||
{-1540029, ENTRY_LEFT_HEAD},
|
||||
{-1540030, ENTRY_RIGHT_HEAD},
|
||||
{-1540031, ENTRY_RIGHT_HEAD},
|
||||
{-1540028, NPC_RIGHT_HEAD},
|
||||
{-1540029, NPC_LEFT_HEAD},
|
||||
{-1540030, NPC_RIGHT_HEAD},
|
||||
{-1540031, NPC_RIGHT_HEAD},
|
||||
};
|
||||
static Yell ThreatDelay2[]=
|
||||
{
|
||||
{-1540032, ENTRY_LEFT_HEAD},
|
||||
{-1540033, ENTRY_RIGHT_HEAD},
|
||||
{-1540034, ENTRY_LEFT_HEAD},
|
||||
{-1540035, ENTRY_LEFT_HEAD},
|
||||
{-1540032, NPC_LEFT_HEAD},
|
||||
{-1540033, NPC_RIGHT_HEAD},
|
||||
{-1540034, NPC_LEFT_HEAD},
|
||||
{-1540035, NPC_LEFT_HEAD},
|
||||
};
|
||||
|
||||
static Yell Killing[]=
|
||||
{
|
||||
{-1540036, ENTRY_LEFT_HEAD},
|
||||
{-1540037, ENTRY_RIGHT_HEAD},
|
||||
{-1540036, NPC_LEFT_HEAD},
|
||||
{-1540037, NPC_RIGHT_HEAD},
|
||||
};
|
||||
static Yell KillingDelay[]=
|
||||
{
|
||||
{-1540038, ENTRY_RIGHT_HEAD},
|
||||
{-1000000, ENTRY_LEFT_HEAD},
|
||||
{-1540038, NPC_RIGHT_HEAD},
|
||||
{-1000000, NPC_LEFT_HEAD},
|
||||
};
|
||||
|
||||
#define YELL_DIE_L -1540039
|
||||
#define YELL_DIE_R -1540040
|
||||
#define EMOTE_ENRAGE -1540041
|
||||
|
||||
#define SPELL_BLAST_WAVE 30600
|
||||
#define SPELL_FEAR 30584
|
||||
#define SPELL_THUNDERCLAP 30633
|
||||
|
||||
#define SPELL_BURNING_MAUL 30598
|
||||
#define H_SPELL_BURNING_MAUL 36056
|
||||
|
||||
struct TRINITY_DLL_DECL mob_omrogg_headsAI : public ScriptedAI
|
||||
{
|
||||
mob_omrogg_headsAI(Creature *c) : ScriptedAI(c) {}
|
||||
@@ -102,12 +105,15 @@ struct TRINITY_DLL_DECL mob_omrogg_headsAI : public ScriptedAI
|
||||
bool DeathYell;
|
||||
uint32 Death_Timer;
|
||||
|
||||
void Reset() {}
|
||||
void Reset()
|
||||
{
|
||||
Death_Timer = 4000;
|
||||
DeathYell = false;
|
||||
}
|
||||
void EnterCombat(Unit* who) { }
|
||||
|
||||
void DoDeathYell()
|
||||
{
|
||||
Death_Timer = 4000;
|
||||
DeathYell = true;
|
||||
}
|
||||
|
||||
@@ -119,7 +125,8 @@ struct TRINITY_DLL_DECL mob_omrogg_headsAI : public ScriptedAI
|
||||
if (Death_Timer < diff)
|
||||
{
|
||||
DoScriptText(YELL_DIE_R, m_creature);
|
||||
DeathYell = false;
|
||||
Death_Timer = false;
|
||||
m_creature->setDeathState(JUST_DIED);
|
||||
}else Death_Timer -= diff;
|
||||
}
|
||||
};
|
||||
@@ -128,6 +135,8 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
{
|
||||
boss_warbringer_omroggAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
LeftHeadGUID = 0;
|
||||
RightHeadGUID = 0;
|
||||
pInstance = c->GetInstanceData();
|
||||
HeroicMode = m_creature->GetMap()->IsHeroic();
|
||||
}
|
||||
@@ -135,8 +144,8 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
ScriptedInstance* pInstance;
|
||||
bool HeroicMode;
|
||||
|
||||
uint64 LeftHead;
|
||||
uint64 RightHead;
|
||||
uint64 LeftHeadGUID;
|
||||
uint64 RightHeadGUID;
|
||||
int iaggro;
|
||||
int ithreat;
|
||||
int ikilling;
|
||||
@@ -156,9 +165,18 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
|
||||
void Reset()
|
||||
{
|
||||
if (Unit* pLeftHead = Unit::GetUnit(*m_creature,LeftHeadGUID))
|
||||
{
|
||||
pLeftHead->setDeathState(JUST_DIED);
|
||||
LeftHeadGUID = 0;
|
||||
}
|
||||
|
||||
if (Unit* pRightHead = Unit::GetUnit(*m_creature,RightHeadGUID))
|
||||
{
|
||||
pRightHead->setDeathState(JUST_DIED);
|
||||
RightHeadGUID = 0;
|
||||
}
|
||||
|
||||
LeftHead = 0;
|
||||
RightHead = 0;
|
||||
|
||||
AggroYell = false;
|
||||
ThreatYell = false;
|
||||
@@ -182,35 +200,32 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
|
||||
void DoYellForThreat()
|
||||
{
|
||||
if (LeftHead && RightHead)
|
||||
{
|
||||
Unit *Left = Unit::GetUnit(*m_creature,LeftHead);
|
||||
Unit *Right = Unit::GetUnit(*m_creature,RightHead);
|
||||
Unit *pLeftHead = Unit::GetUnit(*m_creature,LeftHeadGUID);
|
||||
Unit *pRightHead = Unit::GetUnit(*m_creature,RightHeadGUID);
|
||||
|
||||
if (!Left || !Right)
|
||||
return;
|
||||
if (!pLeftHead || !pRightHead)
|
||||
return;
|
||||
|
||||
ithreat = rand()%4;
|
||||
ithreat = rand()%4;
|
||||
|
||||
Unit *source = (Left->GetEntry() == Threat[ithreat].creature ? Left : Right);
|
||||
Unit *source = (pLeftHead->GetEntry() == Threat[ithreat].creature ? pLeftHead : pRightHead);
|
||||
|
||||
DoScriptText(Threat[ithreat].id, source);
|
||||
DoScriptText(Threat[ithreat].id, source);
|
||||
|
||||
Delay_Timer = 3500;
|
||||
ThreatYell = true;
|
||||
}
|
||||
Delay_Timer = 3500;
|
||||
ThreatYell = true;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
DoSpawnCreature(ENTRY_LEFT_HEAD,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,90000);
|
||||
DoSpawnCreature(ENTRY_RIGHT_HEAD,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,90000);
|
||||
DoSpawnCreature(NPC_LEFT_HEAD,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,90000);
|
||||
DoSpawnCreature(NPC_RIGHT_HEAD,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,90000);
|
||||
|
||||
if (Unit *Left = Unit::GetUnit(*m_creature,LeftHead))
|
||||
if (Unit *pLeftHead = Unit::GetUnit(*m_creature,LeftHeadGUID))
|
||||
{
|
||||
iaggro = rand()%3;
|
||||
|
||||
DoScriptText(GoCombat[iaggro].id, Left);
|
||||
DoScriptText(GoCombat[iaggro].id, pLeftHead);
|
||||
|
||||
Delay_Timer = 3500;
|
||||
AggroYell = true;
|
||||
@@ -222,11 +237,11 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
|
||||
void JustSummoned(Creature *summoned)
|
||||
{
|
||||
if (summoned->GetEntry() == ENTRY_LEFT_HEAD)
|
||||
LeftHead = summoned->GetGUID();
|
||||
if (summoned->GetEntry() == NPC_LEFT_HEAD)
|
||||
LeftHeadGUID = summoned->GetGUID();
|
||||
|
||||
if (summoned->GetEntry() == ENTRY_RIGHT_HEAD)
|
||||
RightHead = summoned->GetGUID();
|
||||
if (summoned->GetEntry() == NPC_RIGHT_HEAD)
|
||||
RightHeadGUID = summoned->GetGUID();
|
||||
|
||||
//summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
//summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
@@ -235,47 +250,42 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
if (LeftHead && RightHead)
|
||||
Unit* pLeftHead = Unit::GetUnit(*m_creature,LeftHeadGUID);
|
||||
Unit* pRightHead = Unit::GetUnit(*m_creature,RightHeadGUID);
|
||||
|
||||
|
||||
if (!pLeftHead || !pRightHead)
|
||||
return;
|
||||
|
||||
ikilling = rand()%2;
|
||||
|
||||
Unit *source = (pLeftHead->GetEntry() == Killing[ikilling].creature ? pLeftHead : pRightHead);
|
||||
|
||||
switch(ikilling)
|
||||
{
|
||||
Unit *Left = Unit::GetUnit(*m_creature,LeftHead);
|
||||
Unit *Right = Unit::GetUnit(*m_creature,RightHead);
|
||||
|
||||
if (!Left || !Right)
|
||||
return;
|
||||
|
||||
ikilling = rand()%2;
|
||||
|
||||
Unit *source = (Left->GetEntry() == Killing[ikilling].creature ? Left : Right);
|
||||
|
||||
switch(ikilling)
|
||||
{
|
||||
case 0:
|
||||
DoScriptText(Killing[ikilling].id, source);
|
||||
Delay_Timer = 3500;
|
||||
KillingYell = true;
|
||||
break;
|
||||
case 1:
|
||||
DoScriptText(Killing[ikilling].id, source);
|
||||
KillingYell = false;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
DoScriptText(Killing[ikilling].id, source);
|
||||
Delay_Timer = 3500;
|
||||
KillingYell = true;
|
||||
break;
|
||||
case 1:
|
||||
DoScriptText(Killing[ikilling].id, source);
|
||||
KillingYell = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void JustDied(Unit* Killer)
|
||||
{
|
||||
if (LeftHead && RightHead)
|
||||
{
|
||||
Unit *Left = Unit::GetUnit(*m_creature,LeftHead);
|
||||
Unit *Right = Unit::GetUnit(*m_creature,RightHead);
|
||||
Unit* pLeftHead = Unit::GetUnit(*m_creature,LeftHeadGUID);
|
||||
Unit* pRightHead = Unit::GetUnit(*m_creature,RightHeadGUID);
|
||||
|
||||
if (!Left || !Right)
|
||||
return;
|
||||
if (!pLeftHead || !pRightHead)
|
||||
return;
|
||||
|
||||
DoScriptText(YELL_DIE_L, Left);
|
||||
DoScriptText(YELL_DIE_L, pLeftHead);
|
||||
|
||||
CAST_AI(mob_omrogg_headsAI, CAST_CRE(Right)->AI())->DoDeathYell();
|
||||
}
|
||||
CAST_AI(mob_omrogg_headsAI, CAST_CRE(pRightHead)->AI())->DoDeathYell();
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(TYPE_OMROGG, DONE);
|
||||
@@ -287,24 +297,21 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
{
|
||||
Delay_Timer = 3500;
|
||||
|
||||
if (!LeftHead || !RightHead)
|
||||
return;
|
||||
Unit* pLeftHead = Unit::GetUnit(*m_creature,LeftHeadGUID);
|
||||
Unit* pRightHead = Unit::GetUnit(*m_creature,RightHeadGUID);
|
||||
|
||||
Unit *Left = Unit::GetUnit(*m_creature,LeftHead);
|
||||
Unit *Right = Unit::GetUnit(*m_creature,RightHead);
|
||||
|
||||
if (!Left || !Right)
|
||||
if (!pLeftHead || !pRightHead)
|
||||
return;
|
||||
|
||||
if (AggroYell)
|
||||
{
|
||||
DoScriptText(GoCombatDelay[iaggro].id, Right);
|
||||
DoScriptText(GoCombatDelay[iaggro].id, pRightHead);
|
||||
AggroYell = false;
|
||||
}
|
||||
|
||||
if (ThreatYell2)
|
||||
{
|
||||
Unit *source = (Left->GetEntry() == ThreatDelay2[ithreat].creature ? Left : Right);
|
||||
Unit *source = (pLeftHead->GetEntry() == ThreatDelay2[ithreat].creature ? pLeftHead : pRightHead);
|
||||
|
||||
DoScriptText(ThreatDelay2[ithreat].id, source);
|
||||
ThreatYell2 = false;
|
||||
@@ -312,7 +319,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
|
||||
if (ThreatYell)
|
||||
{
|
||||
Unit *source = (Left->GetEntry() == ThreatDelay1[ithreat].creature ? Left : Right);
|
||||
Unit *source = (pLeftHead->GetEntry() == ThreatDelay1[ithreat].creature ? pLeftHead : pRightHead);
|
||||
|
||||
DoScriptText(ThreatDelay1[ithreat].id, source);
|
||||
ThreatYell = false;
|
||||
@@ -321,7 +328,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
|
||||
|
||||
if (KillingYell)
|
||||
{
|
||||
Unit *source = (Left->GetEntry() == KillingDelay[ikilling].creature ? Left : Right);
|
||||
Unit *source = (pLeftHead->GetEntry() == KillingDelay[ikilling].creature ? pLeftHead : pRightHead);
|
||||
|
||||
DoScriptText(KillingDelay[ikilling].id, source);
|
||||
KillingYell = false;
|
||||
|
||||
@@ -65,6 +65,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
||||
uint64 NetherspaceDoor; // Door at Malchezaar
|
||||
uint64 MastersTerraceDoor[2];
|
||||
uint64 ImageGUID;
|
||||
uint64 DustCoveredChest;
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
@@ -91,6 +92,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
||||
MastersTerraceDoor[0]= 0;
|
||||
MastersTerraceDoor[1]= 0;
|
||||
ImageGUID = 0;
|
||||
DustCoveredChest = 0;
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
@@ -176,7 +178,11 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
||||
case DATA_SHADEOFARAN_EVENT: Encounters[6] = data; break;
|
||||
case DATA_TERESTIAN_EVENT: Encounters[7] = data; break;
|
||||
case DATA_NETHERSPITE_EVENT: Encounters[8] = data; break;
|
||||
case DATA_CHESS_EVENT: Encounters[9] = data; break;
|
||||
case DATA_CHESS_EVENT:
|
||||
if (data == DONE)
|
||||
DoRespawnGameObject(DustCoveredChest,DAY);
|
||||
Encounters[9] = data;
|
||||
break;
|
||||
case DATA_MALCHEZZAR_EVENT: Encounters[10] = data; break;
|
||||
case DATA_NIGHTBANE_EVENT:
|
||||
if (Encounters[11] == DONE)
|
||||
@@ -231,6 +237,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
||||
else
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
break;
|
||||
case 185119: DustCoveredChest = go->GetGUID(); break;
|
||||
}
|
||||
|
||||
switch(OperaEvent)
|
||||
|
||||
@@ -40,214 +40,217 @@ EndScriptData */
|
||||
|
||||
struct TRINITY_DLL_DECL instance_molten_core : public ScriptedInstance
|
||||
{
|
||||
instance_molten_core(Map *map) : ScriptedInstance(map) {Initialize();};
|
||||
instance_molten_core(Map *map) : ScriptedInstance(map) {Initialize();};
|
||||
|
||||
uint64 Lucifron, Magmadar, Gehennas, Garr, Geddon, Shazzrah, Sulfuron, Golemagg, Domo, Ragnaros, FlamewakerPriest;
|
||||
uint64 RuneKoro, RuneZeth, RuneMazj, RuneTheri, RuneBlaz, RuneKress, RuneMohn;
|
||||
uint64 Lucifron, Magmadar, Gehennas, Garr, Geddon, Shazzrah, Sulfuron, Golemagg, Domo, Ragnaros, FlamewakerPriest;
|
||||
uint64 RuneKoro, RuneZeth, RuneMazj, RuneTheri, RuneBlaz, RuneKress, RuneMohn, m_uiFirelordCacheGUID;;
|
||||
|
||||
//If all Bosses are dead.
|
||||
bool IsBossDied[9];
|
||||
//If all Bosses are dead.
|
||||
bool IsBossDied[9];
|
||||
|
||||
uint32 Encounter[ENCOUNTERS];
|
||||
uint32 Encounter[ENCOUNTERS];
|
||||
|
||||
void Initialize()
|
||||
void Initialize()
|
||||
{
|
||||
Lucifron = 0;
|
||||
Magmadar = 0;
|
||||
Gehennas = 0;
|
||||
Garr = 0;
|
||||
Geddon = 0;
|
||||
Shazzrah = 0;
|
||||
Sulfuron = 0;
|
||||
Golemagg = 0;
|
||||
Domo = 0;
|
||||
Ragnaros = 0;
|
||||
FlamewakerPriest = 0;
|
||||
|
||||
RuneKoro = 0;
|
||||
RuneZeth = 0;
|
||||
RuneMazj = 0;
|
||||
RuneTheri = 0;
|
||||
RuneBlaz = 0;
|
||||
RuneKress = 0;
|
||||
RuneMohn = 0;
|
||||
|
||||
m_uiFirelordCacheGUID = 0;
|
||||
|
||||
IsBossDied[0] = false;
|
||||
IsBossDied[1] = false;
|
||||
IsBossDied[2] = false;
|
||||
IsBossDied[3] = false;
|
||||
IsBossDied[4] = false;
|
||||
IsBossDied[5] = false;
|
||||
IsBossDied[6] = false;
|
||||
|
||||
IsBossDied[7] = false;
|
||||
IsBossDied[8] = false;
|
||||
|
||||
for(uint8 i = 0; i < ENCOUNTERS; i++)
|
||||
Encounter[i] = NOT_STARTED;
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
{
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
void OnGameObjectCreate(GameObject *go, bool add)
|
||||
{
|
||||
switch(go->GetEntry())
|
||||
{
|
||||
Lucifron = 0;
|
||||
Magmadar = 0;
|
||||
Gehennas = 0;
|
||||
Garr = 0;
|
||||
Geddon = 0;
|
||||
Shazzrah = 0;
|
||||
Sulfuron = 0;
|
||||
Golemagg = 0;
|
||||
Domo = 0;
|
||||
Ragnaros = 0;
|
||||
FlamewakerPriest = 0;
|
||||
|
||||
RuneKoro = 0;
|
||||
RuneZeth = 0;
|
||||
RuneMazj = 0;
|
||||
RuneTheri = 0;
|
||||
RuneBlaz = 0;
|
||||
RuneKress = 0;
|
||||
RuneMohn = 0;
|
||||
|
||||
IsBossDied[0] = false;
|
||||
IsBossDied[1] = false;
|
||||
IsBossDied[2] = false;
|
||||
IsBossDied[3] = false;
|
||||
IsBossDied[4] = false;
|
||||
IsBossDied[5] = false;
|
||||
IsBossDied[6] = false;
|
||||
|
||||
IsBossDied[7] = false;
|
||||
IsBossDied[8] = false;
|
||||
|
||||
for(uint8 i = 0; i < ENCOUNTERS; i++)
|
||||
Encounter[i] = NOT_STARTED;
|
||||
case 176951: //Sulfuron
|
||||
RuneKoro = go->GetGUID();
|
||||
break;
|
||||
case 176952: //Geddon
|
||||
RuneZeth = go->GetGUID();
|
||||
break;
|
||||
case 176953: //Shazzrah
|
||||
RuneMazj = go->GetGUID();
|
||||
break;
|
||||
case 176954: //Golemagg
|
||||
RuneTheri = go->GetGUID();
|
||||
break;
|
||||
case 176955: //Garr
|
||||
RuneBlaz = go->GetGUID();
|
||||
break;
|
||||
case 176956: //Magmadar
|
||||
RuneKress = go->GetGUID();
|
||||
break;
|
||||
case 176957: //Gehennas
|
||||
RuneMohn = go->GetGUID();
|
||||
break;
|
||||
case 179703:
|
||||
m_uiFirelordCacheGUID = go->GetGUID(); //when majordomo event == DONE DoRespawnGameObject(m_uiFirelordCacheGUID,);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void OnCreatureCreate(Creature *creature, bool add)
|
||||
{
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case ID_LUCIFRON:
|
||||
Lucifron = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_MAGMADAR:
|
||||
Magmadar = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_GEHENNAS:
|
||||
Gehennas = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_GARR:
|
||||
Garr = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_GEDDON:
|
||||
Geddon = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_SHAZZRAH:
|
||||
Shazzrah = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_SULFURON:
|
||||
Sulfuron = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_GOLEMAGG:
|
||||
Golemagg = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_DOMO:
|
||||
Domo = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_RAGNAROS:
|
||||
Ragnaros = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_FLAMEWAKERPRIEST:
|
||||
FlamewakerPriest = creature->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64 (uint32 identifier)
|
||||
{
|
||||
switch(identifier)
|
||||
{
|
||||
case DATA_SULFURON:
|
||||
return Sulfuron;
|
||||
case DATA_GOLEMAGG:
|
||||
return Sulfuron;
|
||||
|
||||
case DATA_FLAMEWAKERPRIEST:
|
||||
return FlamewakerPriest;
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
{
|
||||
return false;
|
||||
};
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void OnGameObjectCreate(GameObject *go, bool add)
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
switch(go->GetEntry())
|
||||
{
|
||||
case 176951: //Sulfuron
|
||||
RuneKoro = go->GetGUID();
|
||||
break;
|
||||
case 176952: //Geddon
|
||||
RuneZeth = go->GetGUID();
|
||||
break;
|
||||
case 176953: //Shazzrah
|
||||
RuneMazj = go->GetGUID();
|
||||
break;
|
||||
case 176954: //Golemagg
|
||||
RuneTheri = go->GetGUID();
|
||||
break;
|
||||
case 176955: //Garr
|
||||
RuneBlaz = go->GetGUID();
|
||||
break;
|
||||
case 176956: //Magmadar
|
||||
RuneKress = go->GetGUID();
|
||||
break;
|
||||
case 176957: //Gehennas
|
||||
RuneMohn = go->GetGUID();
|
||||
break;
|
||||
}
|
||||
case DATA_LUCIFRONISDEAD:
|
||||
if(IsBossDied[0])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_MAGMADARISDEAD:
|
||||
if(IsBossDied[1])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_GEHENNASISDEAD:
|
||||
if(IsBossDied[2])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_GARRISDEAD:
|
||||
if(IsBossDied[3])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_GEDDONISDEAD:
|
||||
if(IsBossDied[4])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_SHAZZRAHISDEAD:
|
||||
if(IsBossDied[5])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_SULFURONISDEAD:
|
||||
if(IsBossDied[6])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_GOLEMAGGISDEAD:
|
||||
if(IsBossDied[7])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_MAJORDOMOISDEAD:
|
||||
if(IsBossDied[8])
|
||||
return 1;
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature *creature, bool add)
|
||||
{
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case ID_LUCIFRON:
|
||||
Lucifron = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_MAGMADAR:
|
||||
Magmadar = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_GEHENNAS:
|
||||
Gehennas = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_GARR:
|
||||
Garr = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_GEDDON:
|
||||
Geddon = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_SHAZZRAH:
|
||||
Shazzrah = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_SULFURON:
|
||||
Sulfuron = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_GOLEMAGG:
|
||||
Golemagg = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_DOMO:
|
||||
Domo = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_RAGNAROS:
|
||||
Ragnaros = creature->GetGUID();
|
||||
break;
|
||||
|
||||
case ID_FLAMEWAKERPRIEST:
|
||||
FlamewakerPriest = creature->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64 (uint32 identifier)
|
||||
{
|
||||
switch(identifier)
|
||||
{
|
||||
case DATA_SULFURON:
|
||||
return Sulfuron;
|
||||
case DATA_GOLEMAGG:
|
||||
return Sulfuron;
|
||||
|
||||
case DATA_FLAMEWAKERPRIEST:
|
||||
return FlamewakerPriest;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case DATA_LUCIFRONISDEAD:
|
||||
if(IsBossDied[0])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_MAGMADARISDEAD:
|
||||
if(IsBossDied[1])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_GEHENNASISDEAD:
|
||||
if(IsBossDied[2])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_GARRISDEAD:
|
||||
if(IsBossDied[3])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_GEDDONISDEAD:
|
||||
if(IsBossDied[4])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_SHAZZRAHISDEAD:
|
||||
if(IsBossDied[5])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_SULFURONISDEAD:
|
||||
if(IsBossDied[6])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_GOLEMAGGISDEAD:
|
||||
if(IsBossDied[7])
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case DATA_MAJORDOMOISDEAD:
|
||||
if(IsBossDied[8])
|
||||
return 1;
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data)
|
||||
{
|
||||
if (type == DATA_GOLEMAGG_DEATH)
|
||||
IsBossDied[7] = true;
|
||||
}
|
||||
void SetData(uint32 type, uint32 data)
|
||||
{
|
||||
if (type == DATA_GOLEMAGG_DEATH)
|
||||
IsBossDied[7] = true;
|
||||
}
|
||||
};
|
||||
|
||||
InstanceData* GetInstance_instance_molten_core(Map *map)
|
||||
|
||||
@@ -57,10 +57,14 @@ const MinionData minionData[] =
|
||||
{0, 0,}
|
||||
};
|
||||
|
||||
#define GO_GOTHIK_GATE 181170
|
||||
#define GO_HORSEMEN_CHEST 181366
|
||||
enum
|
||||
{
|
||||
GO_HORSEMEN_CHEST_HERO = 193426,
|
||||
GO_HORSEMEN_CHEST = 181366, //four horsemen event, DoRespawnGameObject() when event == DONE
|
||||
GO_GOTHIK_GATE = 181170,
|
||||
|
||||
#define SPELL_ERUPTION 29371
|
||||
SPELL_ERUPTION = 29371
|
||||
};
|
||||
|
||||
const float HeiganPos[2] = {2796, -3707};
|
||||
const float HeiganEruptionSlope[3] =
|
||||
|
||||
Reference in New Issue
Block a user