gave faerlina areatrigger scriptname. Using it to do her greet scripttext
This commit is contained in:
@@ -13,3 +13,7 @@ VALUES (533001,181195,533,3143.88,-3572.45,287,2.345,0,0,0.921723,0.387849,25,10
|
||||
|
||||
-- Give Anub'rekhan gate GO_FLAG_NO_INTERACT flag. It's opened by instance script
|
||||
UPDATE `gameobject_template` SET `flags` = `flags`| 16 WHERE `entry`='181195';
|
||||
|
||||
-- give AreaTrigger outside Faerlina scriptname
|
||||
DELETE FROM `scripted_areatrigger` where entry = 4115;
|
||||
INSERT INTO `scripted_areatrigger` (`entry`, `ScriptName`) VALUES ('4115', 'at_naxxramas');
|
||||
|
||||
@@ -26,7 +26,7 @@ EndScriptData */
|
||||
|
||||
enum
|
||||
{
|
||||
SAY_GREET = -1533009,
|
||||
SAY_GREET = -1533009, // Done in instance_naxxramas::onNaxxramasAreaTrigger()
|
||||
SAY_AGGRO1 = -1533010,
|
||||
SAY_AGGRO2 = -1533011,
|
||||
SAY_AGGRO3 = -1533012,
|
||||
@@ -35,19 +35,19 @@ enum
|
||||
SAY_SLAY2 = -1533015,
|
||||
SAY_DEATH = -1533016,
|
||||
|
||||
//SOUND_RANDOM_AGGRO = 8955, //soundId containing the 4 aggro sounds, we not using this
|
||||
//SOUND_RANDOM_AGGRO = 8955, //soundId containing the 4 aggro sounds, we not using this
|
||||
|
||||
SPELL_POSIONBOLT_VOLLEY = 28796,
|
||||
SPELL_ENRAGE = 28798,
|
||||
|
||||
SPELL_RAINOFFIRE = 28794 //Not sure if targeted AoEs work if casted directly upon a pPlayer
|
||||
SPELL_RAINOFFIRE = 28794 //Not sure if targeted AoEs work if casted directly upon a pPlayer
|
||||
};
|
||||
|
||||
struct boss_faerlinaAI : public ScriptedAI
|
||||
{
|
||||
boss_faerlinaAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
m_pInstance = (instance_naxxramas*)pCreature->GetInstanceData();
|
||||
m_bHasTaunted = false;
|
||||
Reset();
|
||||
}
|
||||
|
||||
@@ -56,7 +56,6 @@ struct boss_faerlinaAI : public ScriptedAI
|
||||
uint32 m_uiPoisonBoltVolleyTimer;
|
||||
uint32 m_uiRainOfFireTimer;
|
||||
uint32 m_uiEnrageTimer;
|
||||
bool m_bHasTaunted;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
@@ -89,10 +88,9 @@ struct boss_faerlinaAI : public ScriptedAI
|
||||
|
||||
void MoveInLineOfSight(Unit* pWho)
|
||||
{
|
||||
if (!m_bHasTaunted && m_creature->IsWithinDistInMap(pWho, 60.0f))
|
||||
//todo aggro range
|
||||
if (m_creature->IsWithinDistInMap(pWho, 60.0f))
|
||||
{
|
||||
DoScriptText(SAY_GREET, m_creature);
|
||||
m_bHasTaunted = true;
|
||||
}
|
||||
|
||||
ScriptedAI::MoveInLineOfSight(pWho);
|
||||
|
||||
@@ -25,6 +25,9 @@ EndScriptData */
|
||||
#include "naxxramas.h"
|
||||
|
||||
instance_naxxramas::instance_naxxramas(Map* pMap) : ScriptedInstance(pMap),
|
||||
m_faerlinaHaveGreeted(false),
|
||||
|
||||
|
||||
m_uiAracEyeRampGUID(0),
|
||||
m_uiPlagEyeRampGUID(0),
|
||||
m_uiMiliEyeRampGUID(0),
|
||||
@@ -635,13 +638,11 @@ InstanceData* GetInstanceData_instance_naxxramas(Map* pMap)
|
||||
return new instance_naxxramas(pMap);
|
||||
}
|
||||
|
||||
bool AreaTrigger_at_naxxramas(Player* pPlayer, const AreaTriggerEntry* pAt)
|
||||
void instance_naxxramas::onNaxxramasAreaTrigger(Player* pPlayer, const AreaTriggerEntry* pAt)
|
||||
{
|
||||
if (pAt->id == AREATRIGGER_KELTHUZAD)
|
||||
switch (pAt->id)
|
||||
{
|
||||
if (pPlayer->isDead())
|
||||
return false;
|
||||
|
||||
case AREATRIGGER_KELTHUZAD:
|
||||
if (instance_naxxramas* pInstance = (instance_naxxramas*)pPlayer->GetInstanceData())
|
||||
{
|
||||
if (pInstance->GetData(TYPE_KELTHUZAD) == NOT_STARTED)
|
||||
@@ -650,8 +651,29 @@ bool AreaTrigger_at_naxxramas(Player* pPlayer, const AreaTriggerEntry* pAt)
|
||||
pInstance->SetChamberCenterCoords(pAt->x, pAt->y, pAt->z);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case AREATRIGGER_FAERLINA:
|
||||
if (!m_faerlinaHaveGreeted)
|
||||
{
|
||||
m_faerlinaHaveGreeted = true;
|
||||
if (Creature* pFaerlina = GetCreature(m_uiFaerlinanGUID))
|
||||
{
|
||||
DoScriptText(-1533009, pFaerlina);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool AreaTrigger_at_naxxramas(Player* pPlayer, const AreaTriggerEntry* pAt)
|
||||
{
|
||||
if (pPlayer->isGameMaster() || !pPlayer->isAlive())
|
||||
return false;
|
||||
|
||||
if (instance_naxxramas* pInstance = (instance_naxxramas*)pPlayer->GetInstanceData())
|
||||
{
|
||||
pInstance->onNaxxramasAreaTrigger(pPlayer, pAt);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ enum
|
||||
|
||||
// Gothik
|
||||
NPC_GOTHIK = 16060,
|
||||
NPC_SUB_BOSS_TRIGGER = 16137, //summon locations
|
||||
NPC_SUB_BOSS_TRIGGER = 16137, //summon locations
|
||||
NPC_UNREL_TRAINEE = 16124,
|
||||
NPC_UNREL_DEATH_KNIGHT = 16125,
|
||||
NPC_UNREL_RIDER = 16126,
|
||||
@@ -62,38 +62,38 @@ enum
|
||||
NPC_GUARDIAN = 16441,
|
||||
|
||||
// Arachnid Quarter
|
||||
GO_ARAC_ANUB_DOOR = 181126, //encounter door
|
||||
GO_ARAC_ANUB_GATE = 181195, //open after boss is dead
|
||||
GO_ARAC_FAER_WEB = 181235, //encounter door
|
||||
GO_ARAC_FAER_DOOR = 194022, //after faerlina, to outer ring
|
||||
GO_ARAC_MAEX_INNER_DOOR = 181197, //encounter door
|
||||
GO_ARAC_MAEX_OUTER_DOOR = 181209, //right before maex
|
||||
GO_ARAC_ANUB_DOOR = 181126, //encounter door
|
||||
GO_ARAC_ANUB_GATE = 181195, //open after boss is dead
|
||||
GO_ARAC_FAER_WEB = 181235, //encounter door
|
||||
GO_ARAC_FAER_DOOR = 194022, //after faerlina, to outer ring
|
||||
GO_ARAC_MAEX_INNER_DOOR = 181197, //encounter door
|
||||
GO_ARAC_MAEX_OUTER_DOOR = 181209, //right before maex
|
||||
|
||||
// Plague Quarter
|
||||
GO_PLAG_SLIME01_DOOR = 181198, //not used
|
||||
GO_PLAG_SLIME02_DOOR = 181199, //not used
|
||||
GO_PLAG_NOTH_ENTRY_DOOR = 181200, //encounter door
|
||||
GO_PLAG_NOTH_EXIT_DOOR = 181201, //exit, open when boss dead
|
||||
GO_PLAG_SLIME01_DOOR = 181198, //not used
|
||||
GO_PLAG_SLIME02_DOOR = 181199, //not used
|
||||
GO_PLAG_NOTH_ENTRY_DOOR = 181200, //encounter door
|
||||
GO_PLAG_NOTH_EXIT_DOOR = 181201, //exit, open when boss dead
|
||||
GO_PLAG_HEIG_ENTRY_DOOR = 181202,
|
||||
GO_PLAG_HEIG_EXIT_DOOR = 181203, //exit, open when boss dead
|
||||
GO_PLAG_LOAT_DOOR = 181241, //encounter door
|
||||
GO_PLAG_HEIG_EXIT_DOOR = 181203, //exit, open when boss dead
|
||||
GO_PLAG_LOAT_DOOR = 181241, //encounter door
|
||||
|
||||
// Military Quarter
|
||||
GO_MILI_GOTH_ENTRY_GATE = 181124, //open after razuvious died
|
||||
GO_MILI_GOTH_EXIT_GATE = 181125, //exit, open at boss dead
|
||||
GO_MILI_GOTH_COMBAT_GATE = 181170, //used while encounter is in progress
|
||||
GO_MILI_HORSEMEN_DOOR = 181119, //encounter door
|
||||
GO_MILI_GOTH_ENTRY_GATE = 181124, //open after razuvious died
|
||||
GO_MILI_GOTH_EXIT_GATE = 181125, //exit, open at boss dead
|
||||
GO_MILI_GOTH_COMBAT_GATE = 181170, //used while encounter is in progress
|
||||
GO_MILI_HORSEMEN_DOOR = 181119, //encounter door
|
||||
|
||||
GO_CHEST_HORSEMEN_NORM = 181366, //four horsemen event, DoRespawnGameObject() when event == DONE
|
||||
GO_CHEST_HORSEMEN_NORM = 181366, //four horsemen event, DoRespawnGameObject() when event == DONE
|
||||
GO_CHEST_HORSEMEN_HERO = 193426,
|
||||
|
||||
// Construct Quarter
|
||||
GO_CONS_PATH_EXIT_DOOR = 181123,
|
||||
GO_CONS_GLUT_EXIT_DOOR = 181120,
|
||||
GO_CONS_THAD_DOOR = 181121, // Thaddius enc door
|
||||
GO_CONS_THAD_DOOR = 181121, // Thaddius enc door
|
||||
|
||||
// Frostwyrm Lair
|
||||
GO_KELTHUZAD_WATERFALL_DOOR = 181225, // exit, open after sapphiron is dead
|
||||
GO_KELTHUZAD_WATERFALL_DOOR = 181225, // exit, open after sapphiron is dead
|
||||
|
||||
// Eyes
|
||||
GO_ARAC_EYE_RAMP = 181212,
|
||||
@@ -107,9 +107,10 @@ enum
|
||||
GO_MILI_PORTAL = 181578,
|
||||
GO_CONS_PORTAL = 181576,
|
||||
|
||||
AREATRIGGER_FROSTWYRM = 4120, //not needed here, but AT to be scripted
|
||||
AREATRIGGER_GOTHIK = 4116,
|
||||
AREATRIGGER_KELTHUZAD = 4112,
|
||||
AREATRIGGER_GOTHIK = 4116
|
||||
AREATRIGGER_FAERLINA = 4115, // Used for faerlinas greet message
|
||||
AREATRIGGER_FROSTWYRM = 4120 //not needed here, but AT to be scripted
|
||||
};
|
||||
|
||||
struct GothTrigger
|
||||
@@ -150,6 +151,10 @@ class instance_naxxramas : public ScriptedInstance
|
||||
|
||||
void OnPlayerDeath(Player* p) override;
|
||||
|
||||
void onNaxxramasAreaTrigger(Player* pPlayer, const AreaTriggerEntry* pAt);
|
||||
|
||||
private:
|
||||
bool m_faerlinaHaveGreeted;
|
||||
protected:
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
std::string strInstData;
|
||||
|
||||
Reference in New Issue
Block a user