*Update naxx scripts.
--HG-- branch : trunk
This commit is contained in:
@@ -45,8 +45,16 @@ EndScriptData */
|
|||||||
#define TELE_Z 274.040
|
#define TELE_Z 274.040
|
||||||
#define TELE_O 6.277
|
#define TELE_O 6.277
|
||||||
|
|
||||||
// IMPORTANT: BALCONY TELEPORT NOT ADDED YET! WILL BE ADDED SOON!
|
#define MAX_SUMMON_POS 5
|
||||||
// Dev note 26.12.2008: When is soon? :)
|
|
||||||
|
const float SummonPos[MAX_SUMMON_POS][4] =
|
||||||
|
{
|
||||||
|
{2728.12, -3544.43, 261.91, 6.04},
|
||||||
|
{2729.05, -3544.47, 261.91, 5.58},
|
||||||
|
{2728.24, -3465.08, 264.20, 3.56},
|
||||||
|
{2704.11, -3456.81, 265.53, 4.51},
|
||||||
|
{2663.56, -3464.43, 262.66, 5.20},
|
||||||
|
};
|
||||||
|
|
||||||
enum Events
|
enum Events
|
||||||
{
|
{
|
||||||
@@ -71,6 +79,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
events.Reset();
|
events.Reset();
|
||||||
summons.DespawnAll();
|
summons.DespawnAll();
|
||||||
|
me->setActive(false);
|
||||||
instance->SetBossState(BOSS_NOTH, NOT_STARTED);
|
instance->SetBossState(BOSS_NOTH, NOT_STARTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,6 +87,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
DoScriptText(SAY_AGGRO, me);
|
DoScriptText(SAY_AGGRO, me);
|
||||||
DoZoneInCombat();
|
DoZoneInCombat();
|
||||||
|
me->setActive(true);
|
||||||
|
|
||||||
events.ScheduleEvent(EVENT_CURSE, 20000+rand()%10000);
|
events.ScheduleEvent(EVENT_CURSE, 20000+rand()%10000);
|
||||||
events.ScheduleEvent(EVENT_WARRIOR, 30000);
|
events.ScheduleEvent(EVENT_WARRIOR, 30000);
|
||||||
@@ -95,6 +105,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
|||||||
void JustSummoned(Creature *summon)
|
void JustSummoned(Creature *summon)
|
||||||
{
|
{
|
||||||
summons.Summon(summon);
|
summons.Summon(summon);
|
||||||
|
summon->setActive(true);
|
||||||
DoZoneInCombat(summon);
|
DoZoneInCombat(summon);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,10 +113,21 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
|||||||
|
|
||||||
void JustDied(Unit* Killer)
|
void JustDied(Unit* Killer)
|
||||||
{
|
{
|
||||||
|
summons.DespawnAll();
|
||||||
DoScriptText(SAY_DEATH, me);
|
DoScriptText(SAY_DEATH, me);
|
||||||
instance->SetBossState(BOSS_NOTH, DONE);
|
instance->SetBossState(BOSS_NOTH, DONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SummonUndead(uint32 entry, uint32 num)
|
||||||
|
{
|
||||||
|
for(uint32 i = 0; i < num; ++i)
|
||||||
|
{
|
||||||
|
uint32 pos = rand()%MAX_SUMMON_POS;
|
||||||
|
me->SummonCreature(entry, SummonPos[pos][0], SummonPos[pos][1], SummonPos[pos][2],
|
||||||
|
SummonPos[pos][3], TEMPSUMMON_CORPSE_DESPAWN, 60000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
if(!UpdateVictim())
|
if(!UpdateVictim())
|
||||||
@@ -123,8 +145,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
|||||||
return;
|
return;
|
||||||
case EVENT_WARRIOR:
|
case EVENT_WARRIOR:
|
||||||
DoScriptText(SAY_SUMMON, me);
|
DoScriptText(SAY_SUMMON, me);
|
||||||
for(uint8 i = 0; i < 6; i++)
|
SummonUndead(MOB_WARRIOR, HEROIC(2,3));
|
||||||
m_creature->SummonCreature(MOB_WARRIOR,2684.804,-3502.517,261.313,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,80000);
|
|
||||||
events.ScheduleEvent(EVENT_WARRIOR, 30000);
|
events.ScheduleEvent(EVENT_WARRIOR, 30000);
|
||||||
return;
|
return;
|
||||||
case EVENT_BLINK:
|
case EVENT_BLINK:
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
|
|||||||
if(param == DATA_SAPPHIRON_BIRTH)
|
if(param == DATA_SAPPHIRON_BIRTH)
|
||||||
{
|
{
|
||||||
phase = PHASE_BIRTH;
|
phase = PHASE_BIRTH;
|
||||||
events.ScheduleEvent(EVENT_BIRTH, 25000);
|
events.ScheduleEvent(EVENT_BIRTH, 23000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,18 @@ EndScriptData */
|
|||||||
#include "precompiled.h"
|
#include "precompiled.h"
|
||||||
#include "def_naxxramas.h"
|
#include "def_naxxramas.h"
|
||||||
|
|
||||||
|
const DoorData doorData[] =
|
||||||
|
{
|
||||||
|
{181200, BOSS_NOTH, DOOR_TYPE_ROOM},
|
||||||
|
{181201, BOSS_NOTH, DOOR_TYPE_PASSAGE},
|
||||||
|
{181202, BOSS_NOTH, DOOR_TYPE_PASSAGE},
|
||||||
|
{181202, BOSS_HEIGAN, DOOR_TYPE_ROOM},
|
||||||
|
{181203, BOSS_HEIGAN, DOOR_TYPE_PASSAGE},
|
||||||
|
{181241, BOSS_HEIGAN, DOOR_TYPE_PASSAGE},
|
||||||
|
{181241, BOSS_LOATHEB, DOOR_TYPE_ROOM},
|
||||||
|
{0, 0, DOOR_TYPE_ROOM}, // EOF
|
||||||
|
};
|
||||||
|
|
||||||
#define SPELL_ERUPTION 29371
|
#define SPELL_ERUPTION 29371
|
||||||
|
|
||||||
const float HeiganPos[2] = {2796, -3707};
|
const float HeiganPos[2] = {2796, -3707};
|
||||||
@@ -61,6 +73,7 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
|
|||||||
, Sapphiron(NULL)
|
, Sapphiron(NULL)
|
||||||
{
|
{
|
||||||
SetBossNumber(15);
|
SetBossNumber(15);
|
||||||
|
LoadDoorData(doorData);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::set<GameObject*> HeiganEruption[4];
|
std::set<GameObject*> HeiganEruption[4];
|
||||||
@@ -88,13 +101,10 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
|
|||||||
|
|
||||||
switch(go->GetEntry())
|
switch(go->GetEntry())
|
||||||
{
|
{
|
||||||
case 181200: SetBossRoomDoor(BOSS_NOTH, go, add); break;
|
case GO_BIRTH: if(!add && Sapphiron) Sapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH); return;
|
||||||
case 181201: SetBossPassageDoor(BOSS_NOTH, go, add); break;
|
|
||||||
case 181202: SetBossRoomDoor(BOSS_HEIGAN, go, add); break;
|
|
||||||
case 181203: SetBossPassageDoor(BOSS_HEIGAN, go, add); break;
|
|
||||||
case 181241: SetBossRoomDoor(BOSS_LOATHEB, go, add); break;
|
|
||||||
case GO_BIRTH: if(!add && Sapphiron) Sapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH); break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AddDoor(go, add);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetData(uint32 id, uint32 value)
|
void SetData(uint32 id, uint32 value)
|
||||||
|
|||||||
Reference in New Issue
Block a user