mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 10:56:38 +01:00
*Update naxx scripts.
--HG-- branch : trunk
This commit is contained in:
@@ -45,8 +45,16 @@ EndScriptData */
|
||||
#define TELE_Z 274.040
|
||||
#define TELE_O 6.277
|
||||
|
||||
// IMPORTANT: BALCONY TELEPORT NOT ADDED YET! WILL BE ADDED SOON!
|
||||
// Dev note 26.12.2008: When is soon? :)
|
||||
#define MAX_SUMMON_POS 5
|
||||
|
||||
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
|
||||
{
|
||||
@@ -71,6 +79,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
||||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->setActive(false);
|
||||
instance->SetBossState(BOSS_NOTH, NOT_STARTED);
|
||||
}
|
||||
|
||||
@@ -78,6 +87,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
DoZoneInCombat();
|
||||
me->setActive(true);
|
||||
|
||||
events.ScheduleEvent(EVENT_CURSE, 20000+rand()%10000);
|
||||
events.ScheduleEvent(EVENT_WARRIOR, 30000);
|
||||
@@ -95,6 +105,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
||||
void JustSummoned(Creature *summon)
|
||||
{
|
||||
summons.Summon(summon);
|
||||
summon->setActive(true);
|
||||
DoZoneInCombat(summon);
|
||||
}
|
||||
|
||||
@@ -102,10 +113,21 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
||||
|
||||
void JustDied(Unit* Killer)
|
||||
{
|
||||
summons.DespawnAll();
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
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)
|
||||
{
|
||||
if(!UpdateVictim())
|
||||
@@ -123,8 +145,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
||||
return;
|
||||
case EVENT_WARRIOR:
|
||||
DoScriptText(SAY_SUMMON, me);
|
||||
for(uint8 i = 0; i < 6; i++)
|
||||
m_creature->SummonCreature(MOB_WARRIOR,2684.804,-3502.517,261.313,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,80000);
|
||||
SummonUndead(MOB_WARRIOR, HEROIC(2,3));
|
||||
events.ScheduleEvent(EVENT_WARRIOR, 30000);
|
||||
return;
|
||||
case EVENT_BLINK:
|
||||
|
||||
@@ -141,7 +141,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
|
||||
if(param == DATA_SAPPHIRON_BIRTH)
|
||||
{
|
||||
phase = PHASE_BIRTH;
|
||||
events.ScheduleEvent(EVENT_BIRTH, 25000);
|
||||
events.ScheduleEvent(EVENT_BIRTH, 23000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,18 @@ EndScriptData */
|
||||
#include "precompiled.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
|
||||
|
||||
const float HeiganPos[2] = {2796, -3707};
|
||||
@@ -61,6 +73,7 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
|
||||
, Sapphiron(NULL)
|
||||
{
|
||||
SetBossNumber(15);
|
||||
LoadDoorData(doorData);
|
||||
}
|
||||
|
||||
std::set<GameObject*> HeiganEruption[4];
|
||||
@@ -88,13 +101,10 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
|
||||
|
||||
switch(go->GetEntry())
|
||||
{
|
||||
case 181200: SetBossRoomDoor(BOSS_NOTH, go, add); break;
|
||||
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;
|
||||
case GO_BIRTH: if(!add && Sapphiron) Sapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH); return;
|
||||
}
|
||||
|
||||
AddDoor(go, add);
|
||||
}
|
||||
|
||||
void SetData(uint32 id, uint32 value)
|
||||
|
||||
Reference in New Issue
Block a user