mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 17:54:48 +01:00
*Update Naxx scripts.
--HG-- branch : trunk
This commit is contained in:
@@ -30,5 +30,21 @@ DELETE FROM `spell_script_target` WHERE `entry` IN (55479);
|
||||
INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
|
||||
(55479, 1, 16803); # Force Obedience - Death Knight Understudy
|
||||
|
||||
# Death Knight Understudy
|
||||
UPDATE creature_template SET spell1=0, spell2=0, spell3=0, spell4=61696, spell5=29060, spell6=29061 WHERE entry IN (16803,29941);
|
||||
INSERT INTO creature_template (entry, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8) VALUES
|
||||
(16803, 0, 0, 0, 61696, 29060, 29061, 0, 0), # Death Knight Understudy
|
||||
(29941, 0, 0, 0, 61696, 29060, 29061, 0, 0), # Death Knight Understudy (H)
|
||||
(16573, 15284, 28991, 28969, 34970, 28864, 0, 0, 0), # Crypt Guard
|
||||
(29256, 15284, 28991, 56098, 34970, 28864, 0, 0, 0), # Crypt Guard (H)
|
||||
(16984, 15496, 0, 0, 0, 0, 0, 0, 0), # Plagued Warrior
|
||||
(29632, 15496, 0, 0, 0, 0, 0, 0, 0), # Plagued Warrior (H)
|
||||
(16290, 28156, 0, 0, 0, 0, 0, 0, 0), # Fallout Slime
|
||||
(29388, 54367, 0, 0, 0, 0, 0, 0, 0) # Fallout Slime (H)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
spell1 = VALUES(spell1),
|
||||
spell2 = VALUES(spell2),
|
||||
spell3 = VALUES(spell3),
|
||||
spell4 = VALUES(spell4),
|
||||
spell5 = VALUES(spell5),
|
||||
spell6 = VALUES(spell6),
|
||||
spell7 = VALUES(spell7),
|
||||
spell8 = VALUES(spell8);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -14,14 +14,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Anubrekhan
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Naxxramas
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_naxxramas.h"
|
||||
|
||||
#define SAY_GREET RAND(-1533000,-1533004,-1533005,-1533006,-1533007)
|
||||
#define SAY_AGGRO RAND(-1533001,-1533002,-1533003)
|
||||
@@ -31,46 +25,29 @@ EndScriptData */
|
||||
#define SPELL_LOCUSTSWARM HEROIC(28785,54021)
|
||||
|
||||
#define SPELL_SELF_SPAWN_5 29105 //This spawns 5 corpse scarabs ontop of us (most likely the player casts this on death)
|
||||
#define SPELL_SELF_SPAWN_10 28864 //This is used by the crypt guards when they die
|
||||
|
||||
#define EVENT_IMPALE 1
|
||||
#define EVENT_LOCUST 2
|
||||
|
||||
#define MOB_CRYPT_GUARD 16573
|
||||
|
||||
struct TRINITY_DLL_DECL boss_anubrekhanAI : public ScriptedAI
|
||||
struct TRINITY_DLL_DECL boss_anubrekhanAI : public BossAI
|
||||
{
|
||||
boss_anubrekhanAI(Creature *c) : ScriptedAI(c), summons(me) {}
|
||||
boss_anubrekhanAI(Creature *c) : BossAI(c, BOSS_ANUBREKHAN) {}
|
||||
|
||||
bool HasTaunted;
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
|
||||
void Prepare()
|
||||
{
|
||||
HasTaunted = false;
|
||||
DoSpawnCreature(MOB_CRYPT_GUARD, 0, 10, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
|
||||
DoSpawnCreature(MOB_CRYPT_GUARD, 0, 10, 0, me->GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
|
||||
if(HeroicMode)
|
||||
DoSpawnCreature(MOB_CRYPT_GUARD, 0, -10, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
|
||||
DoSpawnCreature(MOB_CRYPT_GUARD, 0, -10, 0, me->GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
|
||||
}
|
||||
|
||||
void InitializeAI() { Prepare(); }
|
||||
void JustReachedHome() { Prepare(); }
|
||||
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
}
|
||||
|
||||
void JustSummoned(Creature *summon)
|
||||
{
|
||||
summons.Summon(summon);
|
||||
DoZoneInCombat(summon);
|
||||
}
|
||||
|
||||
void SummonedCreatureDespawn(Creature *summon) {summons.Despawn(summon);}
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
//Force the player to spawn corpse scarabs via spell
|
||||
@@ -82,9 +59,8 @@ struct TRINITY_DLL_DECL boss_anubrekhanAI : public ScriptedAI
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
_EnterCombat();
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
DoZoneInCombat();
|
||||
|
||||
events.ScheduleEvent(EVENT_IMPALE, 15000, 1);
|
||||
events.ScheduleEvent(EVENT_LOCUST, 80000 + rand()%40000, 1);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -14,20 +14,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Grobbulus
|
||||
SD%Complete: 0
|
||||
SDComment: Place holder
|
||||
SDCategory: Naxxramas
|
||||
EndScriptData */
|
||||
|
||||
/*Poison Cloud 26590
|
||||
Slime Spray 28157
|
||||
Fallout slime 28218
|
||||
Mutating Injection 28169
|
||||
Enrages 26527*/
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_naxxramas.h"
|
||||
|
||||
#define SPELL_BOMBARD_SLIME 28280
|
||||
|
||||
@@ -43,20 +31,13 @@ Enrages 26527*/
|
||||
|
||||
#define MOB_FALLOUT_SLIME 16290
|
||||
|
||||
struct TRINITY_DLL_DECL boss_grobbulusAI : public ScriptedAI
|
||||
struct TRINITY_DLL_DECL boss_grobbulusAI : public BossAI
|
||||
{
|
||||
boss_grobbulusAI(Creature *c) : ScriptedAI(c) {}
|
||||
|
||||
EventMap events;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
}
|
||||
boss_grobbulusAI(Creature *c) : BossAI(c, BOSS_GROBBULUS) {}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_CLOUD, 15000);
|
||||
events.ScheduleEvent(EVENT_INJECT, 20000);
|
||||
events.ScheduleEvent(EVENT_SPRAY, 15000+rand()%15000); //not sure
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -14,13 +14,6 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Heigan
|
||||
SD%Complete: 0
|
||||
SDComment: Place Holder
|
||||
SDCategory: Naxxramas
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_naxxramas.h"
|
||||
|
||||
@@ -50,25 +43,14 @@ enum Phases
|
||||
//Spell by eye stalks
|
||||
#define SPELL_MIND_FLAY 26143
|
||||
|
||||
struct TRINITY_DLL_DECL boss_heiganAI : public ScriptedAI
|
||||
struct TRINITY_DLL_DECL boss_heiganAI : public BossAI
|
||||
{
|
||||
boss_heiganAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
instance = ((ScriptedInstance*)c->GetInstanceData());
|
||||
}
|
||||
boss_heiganAI(Creature *c) : BossAI(c, BOSS_HEIGAN) {}
|
||||
|
||||
EventMap events;
|
||||
ScriptedInstance *instance;
|
||||
uint32 eruptSection;
|
||||
bool eruptDirection;
|
||||
Phases phase;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
instance->SetBossState(BOSS_HEIGAN, NOT_STARTED);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* Victim)
|
||||
{
|
||||
if(!(rand()%5))
|
||||
@@ -77,16 +59,15 @@ struct TRINITY_DLL_DECL boss_heiganAI : public ScriptedAI
|
||||
|
||||
void JustDied(Unit* Killer)
|
||||
{
|
||||
_JustDied();
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
instance->SetBossState(BOSS_HEIGAN, DONE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
_EnterCombat();
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
DoZoneInCombat();
|
||||
EnterPhase(PHASE_FIGHT);
|
||||
instance->SetBossState(BOSS_HEIGAN, IN_PROGRESS);
|
||||
}
|
||||
|
||||
void EnterPhase(Phases newPhase)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -14,13 +14,6 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Noth
|
||||
SD%Complete: 40
|
||||
SDComment: Missing Balcony stage
|
||||
SDCategory: Naxxramas
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_naxxramas.h"
|
||||
|
||||
@@ -68,33 +61,25 @@ enum Events
|
||||
EVENT_GROUND,
|
||||
};
|
||||
|
||||
struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
||||
struct TRINITY_DLL_DECL boss_nothAI : public BossAI
|
||||
{
|
||||
boss_nothAI(Creature *c) : ScriptedAI(c), summons(me)
|
||||
{
|
||||
instance = ((ScriptedInstance*)c->GetInstanceData());
|
||||
}
|
||||
boss_nothAI(Creature *c) : BossAI(c, BOSS_NOTH) {}
|
||||
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
ScriptedInstance *instance;
|
||||
uint32 waveCount, balconyCount;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
_Reset();
|
||||
me->setActive(false);
|
||||
instance->SetBossState(BOSS_NOTH, NOT_STARTED);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
_EnterCombat();
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
me->setActive(true);
|
||||
balconyCount = 0;
|
||||
EnterPhaseGround();
|
||||
instance->SetBossState(BOSS_NOTH, IN_PROGRESS);
|
||||
}
|
||||
|
||||
void EnterPhaseGround()
|
||||
@@ -104,7 +89,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
||||
EnterEvadeMode();
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_BALCONY, 11000);
|
||||
events.ScheduleEvent(EVENT_BALCONY, 110000);
|
||||
events.ScheduleEvent(EVENT_CURSE, 20000+rand()%10000);
|
||||
events.ScheduleEvent(EVENT_WARRIOR, 30000);
|
||||
if(HeroicMode)
|
||||
@@ -125,13 +110,10 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
|
||||
summon->AI()->DoZoneInCombat();
|
||||
}
|
||||
|
||||
void SummonedCreatureDespawn(Creature *summon) { summons.Despawn(summon); }
|
||||
|
||||
void JustDied(Unit* Killer)
|
||||
{
|
||||
summons.DespawnAll();
|
||||
_JustDied();
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
instance->SetBossState(BOSS_NOTH, DONE);
|
||||
}
|
||||
|
||||
void SummonUndead(uint32 entry, uint32 num)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -14,14 +14,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Patchwerk
|
||||
SD%Complete: 80
|
||||
SDComment: Some issues with hateful strike inturrupting the melee swing timer.
|
||||
SDCategory: Naxxramas
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_naxxramas.h"
|
||||
|
||||
#define SAY_AGGRO RAND(-1533017,-1533018)
|
||||
#define SAY_SLAY -1533019
|
||||
@@ -39,16 +33,15 @@ EndScriptData */
|
||||
#define EVENT_HATEFUL 2
|
||||
#define EVENT_SLIME 3
|
||||
|
||||
struct TRINITY_DLL_DECL boss_patchwerkAI : public ScriptedAI
|
||||
struct TRINITY_DLL_DECL boss_patchwerkAI : public BossAI
|
||||
{
|
||||
boss_patchwerkAI(Creature *c) : ScriptedAI(c) {}
|
||||
boss_patchwerkAI(Creature *c) : BossAI(c, BOSS_PATCHWERK) {}
|
||||
|
||||
bool Enraged;
|
||||
EventMap events;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
_Reset();
|
||||
Enraged = false;
|
||||
}
|
||||
|
||||
@@ -60,13 +53,14 @@ struct TRINITY_DLL_DECL boss_patchwerkAI : public ScriptedAI
|
||||
|
||||
void JustDied(Unit* Killer)
|
||||
{
|
||||
_JustDied();
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
_EnterCombat();
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
DoZoneInCombat();
|
||||
events.ScheduleEvent(EVENT_HATEFUL, 1200);
|
||||
events.ScheduleEvent(EVENT_BERSERK, 360000);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
/*
|
||||
* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -14,14 +16,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Razuvious
|
||||
SD%Complete: 50
|
||||
SDComment: Missing adds and event is impossible without Mind Control
|
||||
SDCategory: Naxxramas
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_naxxramas.h"
|
||||
|
||||
//Razuvious - NO TEXT sound only
|
||||
//8852 aggro01 - Hah hah, I'm just getting warmed up!
|
||||
@@ -37,121 +33,86 @@ EndScriptData */
|
||||
//8860 death - An honorable... death...
|
||||
//8947 - Aggro Mixed? - ?
|
||||
|
||||
#define SOUND_AGGRO1 8852
|
||||
#define SOUND_AGGRO2 8853
|
||||
#define SOUND_AGGRO3 8854
|
||||
#define SOUND_SLAY1 8861
|
||||
#define SOUND_SLAY2 8863
|
||||
#define SOUND_COMMND1 8855
|
||||
#define SOUND_COMMND2 8856
|
||||
#define SOUND_COMMND3 8858
|
||||
#define SOUND_COMMND4 8859
|
||||
#define SOUND_COMMND5 8861
|
||||
#define SOUND_AGGRO RAND(8852,8853,8854)
|
||||
#define SOUND_SLAY RAND(8861,8863)
|
||||
#define SOUND_COMMND RAND(8855,8856,8858,8859,8861)
|
||||
#define SOUND_DEATH 8860
|
||||
#define SOUND_AGGROMIX 8847
|
||||
|
||||
#define SPELL_UNBALANCINGSTRIKE 26613
|
||||
#define SPELL_DISRUPTINGSHOUT 29107
|
||||
#define SPELL_UNBALANCING_STRIKE 26613
|
||||
#define SPELL_DISRUPTING_SHOUT HEROIC(29107,55543)
|
||||
#define SPELL_JAGGED_KNIFE 55550
|
||||
#define SPELL_HOPELESS 29105
|
||||
|
||||
struct TRINITY_DLL_DECL boss_razuviousAI : public ScriptedAI
|
||||
enum Events
|
||||
{
|
||||
boss_razuviousAI(Creature *c) : ScriptedAI(c) {}
|
||||
EVENT_STRIKE,
|
||||
EVENT_SHOUT,
|
||||
EVENT_KNIFE,
|
||||
EVENT_COMMAND,
|
||||
};
|
||||
|
||||
uint32 UnbalancingStrike_Timer;
|
||||
uint32 DisruptingShout_Timer;
|
||||
uint32 CommandSound_Timer;
|
||||
struct TRINITY_DLL_DECL boss_razuviousAI : public BossAI
|
||||
{
|
||||
boss_razuviousAI(Creature *c) : BossAI(c, BOSS_RAZUVIOUS) {}
|
||||
|
||||
void Reset()
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
UnbalancingStrike_Timer = 30000; //30 seconds
|
||||
DisruptingShout_Timer = 25000; //25 seconds
|
||||
CommandSound_Timer = 40000; //40 seconds
|
||||
if(!(rand()%3))
|
||||
DoPlaySoundToSet(me, SOUND_SLAY);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* Victim)
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
if (rand()%3)
|
||||
return;
|
||||
|
||||
switch (rand()%2)
|
||||
{
|
||||
case 0:
|
||||
DoPlaySoundToSet(m_creature, SOUND_SLAY1);
|
||||
break;
|
||||
case 1:
|
||||
DoPlaySoundToSet(m_creature, SOUND_SLAY2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void JustDied(Unit* Killer)
|
||||
{
|
||||
DoPlaySoundToSet(m_creature, SOUND_DEATH);
|
||||
_JustDied();
|
||||
DoPlaySoundToSet(me, SOUND_DEATH);
|
||||
me->CastSpell(me, SPELL_HOPELESS, true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
switch (rand()%3)
|
||||
{
|
||||
case 0:
|
||||
DoPlaySoundToSet(m_creature, SOUND_AGGRO1);
|
||||
break;
|
||||
case 1:
|
||||
DoPlaySoundToSet(m_creature, SOUND_AGGRO2);
|
||||
break;
|
||||
case 2:
|
||||
DoPlaySoundToSet(m_creature, SOUND_AGGRO3);
|
||||
break;
|
||||
}
|
||||
_EnterCombat();
|
||||
DoPlaySoundToSet(m_creature, SOUND_AGGRO);
|
||||
events.ScheduleEvent(EVENT_STRIKE, 30000);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 25000);
|
||||
events.ScheduleEvent(EVENT_COMMAND, 40000);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
if(!UpdateVictim())
|
||||
return;
|
||||
|
||||
//UnbalancingStrike_Timer
|
||||
if (UnbalancingStrike_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_UNBALANCINGSTRIKE);
|
||||
UnbalancingStrike_Timer = 30000;
|
||||
}else UnbalancingStrike_Timer -= diff;
|
||||
events.Update(diff);
|
||||
|
||||
//DisruptingShout_Timer
|
||||
if (DisruptingShout_Timer < diff)
|
||||
while(uint32 eventId = events.ExecuteEvent())
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_DISRUPTINGSHOUT);
|
||||
DisruptingShout_Timer = 25000;
|
||||
}else DisruptingShout_Timer -= diff;
|
||||
|
||||
//CommandSound_Timer
|
||||
if (CommandSound_Timer < diff)
|
||||
{
|
||||
switch (rand()%5)
|
||||
switch(eventId)
|
||||
{
|
||||
case 0:
|
||||
DoPlaySoundToSet(m_creature, SOUND_COMMND1);
|
||||
break;
|
||||
case 1:
|
||||
DoPlaySoundToSet(m_creature, SOUND_COMMND2);
|
||||
break;
|
||||
case 2:
|
||||
DoPlaySoundToSet(m_creature, SOUND_COMMND3);
|
||||
break;
|
||||
case 3:
|
||||
DoPlaySoundToSet(m_creature, SOUND_COMMND4);
|
||||
break;
|
||||
case 4:
|
||||
DoPlaySoundToSet(m_creature, SOUND_COMMND5);
|
||||
break;
|
||||
case EVENT_STRIKE:
|
||||
DoCast(me->getVictim(), SPELL_UNBALANCING_STRIKE);
|
||||
events.ScheduleEvent(EVENT_STRIKE, 30000);
|
||||
return;
|
||||
case EVENT_SHOUT:
|
||||
DoCastAOE(SPELL_DISRUPTING_SHOUT);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 25000);
|
||||
return;
|
||||
case EVENT_KNIFE:
|
||||
if(Unit *target = SelectTarget(SELECT_TARGET_RANDOM, 0, 45))
|
||||
DoCast(target, SPELL_JAGGED_KNIFE);
|
||||
events.ScheduleEvent(EVENT_KNIFE, 25000);
|
||||
return;
|
||||
case EVENT_COMMAND:
|
||||
DoPlaySoundToSet(me, SOUND_COMMND);
|
||||
events.ScheduleEvent(EVENT_COMMAND, 40000);
|
||||
return;
|
||||
}
|
||||
|
||||
CommandSound_Timer = 40000;
|
||||
}else CommandSound_Timer -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_razuvious(Creature *_Creature)
|
||||
{
|
||||
return new boss_razuviousAI (_Creature);
|
||||
@@ -165,4 +126,3 @@ void AddSC_boss_razuvious()
|
||||
newscript->GetAI = &GetAI_boss_razuvious;
|
||||
newscript->RegisterSelf();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
/*
|
||||
* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -14,13 +16,6 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Sapphiron
|
||||
SD%Complete: 0
|
||||
SDComment: Place Holder
|
||||
SDCategory: Naxxramas
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_naxxramas.h"
|
||||
|
||||
@@ -71,14 +66,12 @@ enum Events
|
||||
|
||||
typedef std::map<uint64, uint64> IceBlockMap;
|
||||
|
||||
struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
|
||||
struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI
|
||||
{
|
||||
boss_sapphironAI(Creature* c) : ScriptedAI(c)
|
||||
boss_sapphironAI(Creature* c) : BossAI(c, BOSS_SAPPHIRON)
|
||||
, phase(PHASE_NULL)
|
||||
{
|
||||
}
|
||||
{}
|
||||
|
||||
EventMap events;
|
||||
Phases phase;
|
||||
uint32 iceboltCount;
|
||||
IceBlockMap iceblocks;
|
||||
@@ -97,16 +90,18 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
|
||||
|
||||
void Reset()
|
||||
{
|
||||
_Reset();
|
||||
|
||||
if(phase = PHASE_FLIGHT)
|
||||
ClearIceBlock();
|
||||
|
||||
events.Reset();
|
||||
phase = PHASE_NULL;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
_EnterCombat();
|
||||
|
||||
me->CastSpell(me, SPELL_FROST_AURA, true);
|
||||
|
||||
events.ScheduleEvent(EVENT_BERSERK, 15*60000);
|
||||
@@ -128,6 +123,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
|
||||
|
||||
void JustDied(Unit*)
|
||||
{
|
||||
_JustDied();
|
||||
me->CastSpell(me, SPELL_DIES, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2009 Trinity <http://www.trinitycore.org/>
|
||||
* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -21,14 +21,28 @@
|
||||
|
||||
enum Encounter
|
||||
{
|
||||
BOSS_ANUBREKHAN,
|
||||
BOSS_FAERLINA,
|
||||
BOSS_MAEXXNA,
|
||||
BOSS_NOTH,
|
||||
BOSS_HEIGAN,
|
||||
BOSS_LOATHEB,
|
||||
BOSS_PATCHWERK,
|
||||
BOSS_GROBBULUS,
|
||||
BOSS_GLUTH,
|
||||
BOSS_THADDIUS,
|
||||
BOSS_RAZUVIOUS,
|
||||
BOSS_GOTHIK,
|
||||
BOSS_HORSEMEN,
|
||||
BOSS_SAPPHIRON,
|
||||
BOSS_KELTHUZAD,
|
||||
MAX_BOSS_NUMBER
|
||||
};
|
||||
|
||||
enum Data
|
||||
{
|
||||
DATA_HEIGAN_ERUPT,
|
||||
DATA_GOTHIK_GATE,
|
||||
DATA_SAPPHIRON_BIRTH,
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -14,18 +14,16 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Instance_Naxxramas
|
||||
SD%Complete: 0
|
||||
SDComment: Place holder
|
||||
SDCategory: Naxxramas
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "def_naxxramas.h"
|
||||
|
||||
const DoorData doorData[] =
|
||||
{
|
||||
{181126, BOSS_ANUBREKHAN,DOOR_TYPE_ROOM},
|
||||
{181195, BOSS_ANUBREKHAN,DOOR_TYPE_PASSAGE},
|
||||
{194022, BOSS_FAERLINA, DOOR_TYPE_PASSAGE},
|
||||
{181209, BOSS_FAERLINA, DOOR_TYPE_PASSAGE},
|
||||
{181209, BOSS_MAEXXNA, DOOR_TYPE_ROOM},
|
||||
{181200, BOSS_NOTH, DOOR_TYPE_ROOM},
|
||||
{181201, BOSS_NOTH, DOOR_TYPE_PASSAGE},
|
||||
{181202, BOSS_NOTH, DOOR_TYPE_PASSAGE},
|
||||
@@ -33,9 +31,21 @@ const DoorData doorData[] =
|
||||
{181203, BOSS_HEIGAN, DOOR_TYPE_PASSAGE},
|
||||
{181241, BOSS_HEIGAN, DOOR_TYPE_PASSAGE},
|
||||
{181241, BOSS_LOATHEB, DOOR_TYPE_ROOM},
|
||||
{181123, BOSS_PATCHWERK, DOOR_TYPE_PASSAGE},
|
||||
{181123, BOSS_GROBBULUS, DOOR_TYPE_ROOM},
|
||||
{181120, BOSS_GLUTH, DOOR_TYPE_PASSAGE},
|
||||
{181121, BOSS_GLUTH, DOOR_TYPE_PASSAGE},
|
||||
{181121, BOSS_THADDIUS, DOOR_TYPE_ROOM},
|
||||
{181124, BOSS_RAZUVIOUS, DOOR_TYPE_PASSAGE},
|
||||
{181124, BOSS_GOTHIK, DOOR_TYPE_ROOM},
|
||||
{181125, BOSS_GOTHIK, DOOR_TYPE_PASSAGE},
|
||||
{181119, BOSS_GOTHIK, DOOR_TYPE_PASSAGE},
|
||||
{181119, BOSS_HORSEMEN, DOOR_TYPE_ROOM},
|
||||
{0, 0, DOOR_TYPE_ROOM}, // EOF
|
||||
};
|
||||
|
||||
#define GO_GOTHIK_GATE 181170
|
||||
|
||||
#define SPELL_ERUPTION 29371
|
||||
|
||||
const float HeiganPos[2] = {2796, -3707};
|
||||
@@ -72,7 +82,7 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
|
||||
instance_naxxramas(Map *map) : ScriptedInstance(map)
|
||||
, Sapphiron(NULL)
|
||||
{
|
||||
SetBossNumber(15);
|
||||
SetBossNumber(MAX_BOSS_NUMBER);
|
||||
LoadDoorData(doorData);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user