*Implemented doors for nightbane event
--HG-- branch : trunk
This commit is contained in:
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
/* ScriptData
|
/* ScriptData
|
||||||
SDName: Boss_Nightbane
|
SDName: Boss_Nightbane
|
||||||
SD%Complete: 70
|
SD%Complete: 80
|
||||||
SDComment: SDComment: skelleton adds need 2 more, timers,
|
SDComment: SDComment: skelleton adds need 2 more, timers,
|
||||||
SDCategory: Karazhan
|
SDCategory: Karazhan
|
||||||
EndScriptData */
|
EndScriptData */
|
||||||
@@ -26,7 +26,7 @@ EndScriptData */
|
|||||||
|
|
||||||
//phase 1
|
//phase 1
|
||||||
#define SPELL_BELLOWING_ROAR 39427
|
#define SPELL_BELLOWING_ROAR 39427
|
||||||
#define SPELL_CHARRED_EARTH 30129 //Also 30209 (Target Charred Earth) triggers this
|
#define SPELL_CHARRED_EARTH 30129
|
||||||
#define SPELL_DISTRACTING_ASH 30130
|
#define SPELL_DISTRACTING_ASH 30130
|
||||||
#define SPELL_SMOLDERING_BREATH 30210
|
#define SPELL_SMOLDERING_BREATH 30210
|
||||||
#define SPELL_TAIL_SWEEP 25653
|
#define SPELL_TAIL_SWEEP 25653
|
||||||
@@ -123,11 +123,10 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
|
|||||||
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||||
m_creature->setActive(true);
|
m_creature->setActive(true);
|
||||||
|
|
||||||
if(pInstance)
|
|
||||||
pInstance->SetData(DATA_NIGHTBANE_EVENT, NOT_STARTED);
|
|
||||||
|
|
||||||
if(pInstance->GetData(DATA_NIGHTBANE_EVENT) == DONE)
|
if(pInstance->GetData(DATA_NIGHTBANE_EVENT) == DONE)
|
||||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||||
|
else
|
||||||
|
pInstance->SetData(DATA_NIGHTBANE_EVENT, NOT_STARTED);
|
||||||
|
|
||||||
HandleTerraceDoors(true);
|
HandleTerraceDoors(true);
|
||||||
|
|
||||||
@@ -143,10 +142,10 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
|
|||||||
|
|
||||||
void HandleTerraceDoors(bool open)
|
void HandleTerraceDoors(bool open)
|
||||||
{
|
{
|
||||||
//if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_1)))
|
if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_1)))
|
||||||
// Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
|
Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
|
||||||
//if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_2)))
|
if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_2)))
|
||||||
// Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
|
Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Aggro(Unit *who)
|
void Aggro(Unit *who)
|
||||||
@@ -319,16 +318,14 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
|
|||||||
|
|
||||||
if (CharredEarthTimer < diff)
|
if (CharredEarthTimer < diff)
|
||||||
{
|
{
|
||||||
Unit* target = NULL;
|
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||||
target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
|
||||||
DoCast(target,SPELL_CHARRED_EARTH);
|
DoCast(target,SPELL_CHARRED_EARTH);
|
||||||
CharredEarthTimer = 20000; //timer
|
CharredEarthTimer = 20000; //timer
|
||||||
}else CharredEarthTimer -= diff;
|
}else CharredEarthTimer -= diff;
|
||||||
|
|
||||||
if (TailSweepTimer < diff)
|
if (TailSweepTimer < diff)
|
||||||
{
|
{
|
||||||
Unit* target = NULL;
|
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||||
target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
|
||||||
if (!m_creature->HasInArc( M_PI, target))
|
if (!m_creature->HasInArc( M_PI, target))
|
||||||
DoCast(target,SPELL_TAIL_SWEEP);
|
DoCast(target,SPELL_TAIL_SWEEP);
|
||||||
TailSweepTimer = 15000;//timer
|
TailSweepTimer = 15000;//timer
|
||||||
@@ -336,8 +333,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
|
|||||||
|
|
||||||
if (SearingCindersTimer < diff)
|
if (SearingCindersTimer < diff)
|
||||||
{
|
{
|
||||||
Unit* target = NULL;
|
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||||
target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
|
||||||
DoCast(target,SPELL_SEARING_CINDERS);
|
DoCast(target,SPELL_SEARING_CINDERS);
|
||||||
SearingCindersTimer = 10000; //timer
|
SearingCindersTimer = 10000; //timer
|
||||||
}else SearingCindersTimer -= diff;
|
}else SearingCindersTimer -= diff;
|
||||||
@@ -379,8 +375,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
|
|||||||
|
|
||||||
if (DistractingAshTimer < diff)
|
if (DistractingAshTimer < diff)
|
||||||
{
|
{
|
||||||
Unit* target = NULL;
|
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||||
target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
|
||||||
DoCast(target,SPELL_DISTRACTING_ASH);
|
DoCast(target,SPELL_DISTRACTING_ASH);
|
||||||
DistractingAshTimer = 2000;//timer wrong
|
DistractingAshTimer = 2000;//timer wrong
|
||||||
}else DistractingAshTimer -= diff;
|
}else DistractingAshTimer -= diff;
|
||||||
@@ -397,8 +392,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
|
|||||||
|
|
||||||
if (FireballBarrageTimer < diff)
|
if (FireballBarrageTimer < diff)
|
||||||
{
|
{
|
||||||
Unit* target = NULL;
|
if (Unit* target = SelectUnit(SELECT_TARGET_FARTHEST, 0))
|
||||||
target = SelectUnit(SELECT_TARGET_FARTHEST,0);
|
|
||||||
DoCast(target,SPELL_FIREBALL_BARRAGE);
|
DoCast(target,SPELL_FIREBALL_BARRAGE);
|
||||||
FireballBarrageTimer = 20000; //Timer
|
FireballBarrageTimer = 20000; //Timer
|
||||||
}else FireballBarrageTimer -= diff;
|
}else FireballBarrageTimer -= diff;
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
#define DATA_GAMEOBJECT_GAME_DOOR 24
|
#define DATA_GAMEOBJECT_GAME_DOOR 24
|
||||||
#define DATA_GAMEOBJECT_GAME_EXIT_DOOR 25
|
#define DATA_GAMEOBJECT_GAME_EXIT_DOOR 25
|
||||||
#define DATA_IMAGE_OF_MEDIVH 26
|
#define DATA_IMAGE_OF_MEDIVH 26
|
||||||
|
#define DATA_MASTERS_TERRACE_DOOR_1 27
|
||||||
|
#define DATA_MASTERS_TERRACE_DOOR_2 28
|
||||||
|
|
||||||
// Opera Performances
|
// Opera Performances
|
||||||
#define EVENT_OZ 1
|
#define EVENT_OZ 1
|
||||||
|
|||||||
@@ -149,6 +149,8 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
|||||||
case DATA_GAMEOBJECT_GAME_DOOR: return GamesmansDoor;
|
case DATA_GAMEOBJECT_GAME_DOOR: return GamesmansDoor;
|
||||||
case DATA_GAMEOBJECT_GAME_EXIT_DOOR: return GamesmansExitDoor;
|
case DATA_GAMEOBJECT_GAME_EXIT_DOOR: return GamesmansExitDoor;
|
||||||
case DATA_GAMEOBJECT_NETHER_DOOR: return NetherspaceDoor;
|
case DATA_GAMEOBJECT_NETHER_DOOR: return NetherspaceDoor;
|
||||||
|
case DATA_MASTERS_TERRACE_DOOR_1: return MastersTerraceDoor[0];
|
||||||
|
case DATA_MASTERS_TERRACE_DOOR_2: return MastersTerraceDoor[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user