Code Style: Remove trailing spaces
--HG-- branch : trunk
This commit is contained in:
@@ -49,7 +49,7 @@ enum Creatures
|
||||
struct mob_av_marshal_or_warmasterAI : public ScriptedAI
|
||||
{
|
||||
mob_av_marshal_or_warmasterAI(Creature *c) : ScriptedAI(c) {}
|
||||
|
||||
|
||||
uint32 uiChargeTimer;
|
||||
uint32 uiCleaveTimer;
|
||||
uint32 uiDemoralizingShoutTimer;
|
||||
@@ -57,7 +57,7 @@ struct mob_av_marshal_or_warmasterAI : public ScriptedAI
|
||||
uint32 uiWhirlwind2Timer;
|
||||
uint32 uiEnrageTimer;
|
||||
uint32 uiResetTimer;
|
||||
|
||||
|
||||
bool bHasAura;
|
||||
|
||||
void Reset()
|
||||
@@ -72,12 +72,12 @@ struct mob_av_marshal_or_warmasterAI : public ScriptedAI
|
||||
|
||||
bHasAura = false;
|
||||
}
|
||||
|
||||
|
||||
void JustRespawned()
|
||||
{
|
||||
Reset();
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!bHasAura)
|
||||
@@ -112,47 +112,47 @@ struct mob_av_marshal_or_warmasterAI : public ScriptedAI
|
||||
|
||||
bHasAura = true;
|
||||
}
|
||||
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
if (uiChargeTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_CHARGE);
|
||||
uiChargeTimer = urand(10*IN_MILISECONDS,25*IN_MILISECONDS);
|
||||
} else uiChargeTimer -= diff;
|
||||
|
||||
|
||||
if (uiCleaveTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_CLEAVE);
|
||||
uiCleaveTimer = urand(10*IN_MILISECONDS,16*IN_MILISECONDS);
|
||||
} else uiCleaveTimer -= diff;
|
||||
|
||||
|
||||
if (uiDemoralizingShoutTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_DEMORALIZING_SHOUT);
|
||||
uiDemoralizingShoutTimer = urand(10*IN_MILISECONDS,15*IN_MILISECONDS);
|
||||
} else uiDemoralizingShoutTimer -= diff;
|
||||
|
||||
|
||||
if (uiWhirlwind1Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_WHIRLWIND1);
|
||||
uiWhirlwind1Timer = urand(6*IN_MILISECONDS,20*IN_MILISECONDS);
|
||||
} else uiWhirlwind1Timer -= diff;
|
||||
|
||||
|
||||
if (uiWhirlwind2Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_WHIRLWIND2);
|
||||
uiWhirlwind2Timer = urand(10*IN_MILISECONDS,25*IN_MILISECONDS);
|
||||
} else uiWhirlwind2Timer -= diff;
|
||||
|
||||
|
||||
if (uiEnrageTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_ENRAGE);
|
||||
uiEnrageTimer = urand(10*IN_MILISECONDS,30*IN_MILISECONDS);
|
||||
}else uiEnrageTimer -= diff;
|
||||
|
||||
|
||||
|
||||
|
||||
// check if creature is not outside of building
|
||||
if(uiResetTimer <= diff)
|
||||
{
|
||||
@@ -160,7 +160,7 @@ struct mob_av_marshal_or_warmasterAI : public ScriptedAI
|
||||
EnterEvadeMode();
|
||||
uiResetTimer = 5*IN_MILISECONDS;
|
||||
} else uiResetTimer -= diff;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -43,11 +43,11 @@ enum WaterElementalSpells
|
||||
struct mob_water_elementalAI : public ScriptedAI
|
||||
{
|
||||
mob_water_elementalAI(Creature *c) : ScriptedAI(c) {}
|
||||
|
||||
|
||||
uint32 uiWaterBoltTimer;
|
||||
uint64 uiBalindaGUID;
|
||||
uint32 uiResetTimer;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiWaterBoltTimer = 3*IN_MILISECONDS;
|
||||
@@ -58,13 +58,13 @@ struct mob_water_elementalAI : public ScriptedAI
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
if(uiWaterBoltTimer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_WATERBOLT);
|
||||
uiWaterBoltTimer = 5*IN_MILISECONDS;
|
||||
} else uiWaterBoltTimer -= diff;
|
||||
|
||||
|
||||
// check if creature is not outside of building
|
||||
if(uiResetTimer < diff)
|
||||
{
|
||||
@@ -73,7 +73,7 @@ struct mob_water_elementalAI : public ScriptedAI
|
||||
EnterEvadeMode();
|
||||
uiResetTimer = 5*IN_MILISECONDS;
|
||||
} else uiResetTimer -= diff;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
@@ -88,7 +88,7 @@ struct boss_balindaAI : public ScriptedAI
|
||||
uint32 uiFrostboltTimer;
|
||||
uint32 uiResetTimer;
|
||||
uint32 uiWaterElementalTimer;
|
||||
|
||||
|
||||
SummonList Summons;
|
||||
|
||||
void Reset()
|
||||
@@ -117,7 +117,7 @@ struct boss_balindaAI : public ScriptedAI
|
||||
{
|
||||
((mob_water_elementalAI*)summoned->AI())->uiBalindaGUID = m_creature->GetGUID();
|
||||
summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM,0, 50, true));
|
||||
summoned->setFaction(m_creature->getFaction());
|
||||
summoned->setFaction(m_creature->getFaction());
|
||||
Summons.Summon(summoned);
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ enum eEnums
|
||||
NPC_SEETHREL = 9038,
|
||||
NPC_GLOOMREL = 9037,
|
||||
NPC_DOOMREL = 9039,
|
||||
NPC_MAGMUS = 9938,
|
||||
NPC_MAGMUS = 9938,
|
||||
|
||||
GO_ARENA1 = 161525,
|
||||
GO_ARENA2 = 161522,
|
||||
@@ -164,7 +164,7 @@ struct instance_blackrock_depths : public ScriptedInstance
|
||||
case NPC_SEETHREL: TombBossGUIDs[4] = pCreature->GetGUID(); break;
|
||||
case NPC_GLOOMREL: TombBossGUIDs[5] = pCreature->GetGUID(); break;
|
||||
case NPC_ANGERREL: TombBossGUIDs[6] = pCreature->GetGUID(); break;
|
||||
case NPC_MAGMUS:
|
||||
case NPC_MAGMUS:
|
||||
MagmusGUID = pCreature->GetGUID();
|
||||
if(!pCreature->isAlive())
|
||||
HandleGameObject(GetData64(DATA_THRONE_DOOR), true); // if Magmus is dead open door to last boss
|
||||
|
||||
@@ -28,9 +28,9 @@ struct npc_rookey_whelpAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
|
||||
void JustDied(Unit *who)
|
||||
{
|
||||
if (pInstance)
|
||||
@@ -38,12 +38,12 @@ struct npc_rookey_whelpAI : public ScriptedAI
|
||||
pInstance->SetData(WHELP_DEATH_COUNT, pInstance->GetData(WHELP_DEATH_COUNT)+1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
@@ -72,7 +72,7 @@ void AddSC_blackrock_spire()
|
||||
newscript->GetAI = &GetAI_rookey_whelp;
|
||||
newscript->RegisterSelf();
|
||||
newscript = new Script;
|
||||
|
||||
|
||||
newscript->Name = "go_rookey_egg";
|
||||
newscript->pGOHello = &GOHello_rookey_egg;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
@@ -21,6 +21,6 @@ enum Data
|
||||
{
|
||||
EVENT_LEEEROY,
|
||||
WHELP_DEATH_COUNT
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -25,13 +25,13 @@ enum Achievements
|
||||
struct instance_blackrock_spire : public ScriptedInstance
|
||||
{
|
||||
instance_blackrock_spire(Map* pMap) : ScriptedInstance(pMap) {}
|
||||
|
||||
|
||||
uint32 uiLeeroyTimer;
|
||||
uint32 uiWhelpCount;
|
||||
uint32 uiLeroyData;
|
||||
|
||||
|
||||
bool bLeeeeeeeeroy;
|
||||
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
uiLeeroyTimer = 15*IN_MILISECONDS;
|
||||
@@ -39,7 +39,7 @@ struct instance_blackrock_spire : public ScriptedInstance
|
||||
bLeeeeeeeeroy = true;
|
||||
uiLeroyData = 0;
|
||||
}
|
||||
|
||||
|
||||
void SetData(uint32 type, uint32 data)
|
||||
{
|
||||
switch(type)
|
||||
@@ -57,7 +57,7 @@ struct instance_blackrock_spire : public ScriptedInstance
|
||||
}
|
||||
uiWhelpCount = data;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
@@ -71,7 +71,7 @@ struct instance_blackrock_spire : public ScriptedInstance
|
||||
}
|
||||
|
||||
void Update(uint32 diff)
|
||||
{
|
||||
{
|
||||
if (GetData(EVENT_LEEEROY) != FAIL && GetData(EVENT_LEEEROY) == IN_PROGRESS)
|
||||
{
|
||||
if (uiLeeroyTimer <= diff)
|
||||
|
||||
@@ -270,7 +270,7 @@ struct boss_selin_fireheartAI : public ScriptedAI
|
||||
if (DrainCrystalTimer <= diff)
|
||||
{
|
||||
SelectNearestCrystal();
|
||||
if (IsHeroic())
|
||||
if (IsHeroic())
|
||||
DrainCrystalTimer = 10000 + rand()%5000;
|
||||
else
|
||||
DrainCrystalTimer = 20000 + rand()%5000;
|
||||
|
||||
@@ -85,11 +85,11 @@ struct npc_valkyr_battle_maidenAI : public PassiveAI
|
||||
FlyBackTimer = 5000;
|
||||
break;
|
||||
case 3:
|
||||
me->SetVisibility(VISIBILITY_OFF);
|
||||
FlyBackTimer = 3000;
|
||||
me->SetVisibility(VISIBILITY_OFF);
|
||||
FlyBackTimer = 3000;
|
||||
break;
|
||||
case 4:
|
||||
me->DisappearAndDie();
|
||||
me->DisappearAndDie();
|
||||
break;
|
||||
default:
|
||||
//Nothing To DO
|
||||
|
||||
@@ -147,26 +147,26 @@ struct instance_stratholme : public ScriptedInstance
|
||||
{
|
||||
switch(pGo->GetEntry())
|
||||
{
|
||||
case GO_SERVICE_ENTRANCE:
|
||||
serviceEntranceGUID = pGo->GetGUID();
|
||||
case GO_SERVICE_ENTRANCE:
|
||||
serviceEntranceGUID = pGo->GetGUID();
|
||||
break;
|
||||
case GO_GAUNTLET_GATE1:
|
||||
//weird, but unless flag is set, client will not respond as expected. DB bug?
|
||||
pGo->SetFlag(GAMEOBJECT_FLAGS,GO_FLAG_LOCKED);
|
||||
gauntletGate1GUID = pGo->GetGUID();
|
||||
break;
|
||||
case GO_ZIGGURAT1:
|
||||
ziggurat1GUID = pGo->GetGUID();
|
||||
case GO_ZIGGURAT1:
|
||||
ziggurat1GUID = pGo->GetGUID();
|
||||
if (GetData(TYPE_BARONESS) == IN_PROGRESS)
|
||||
HandleGameObject(0, true, pGo);
|
||||
break;
|
||||
case GO_ZIGGURAT2:
|
||||
ziggurat2GUID = pGo->GetGUID();
|
||||
case GO_ZIGGURAT2:
|
||||
ziggurat2GUID = pGo->GetGUID();
|
||||
if (GetData(TYPE_NERUB) == IN_PROGRESS)
|
||||
HandleGameObject(0, true, pGo);
|
||||
break;
|
||||
case GO_ZIGGURAT3:
|
||||
ziggurat3GUID = pGo->GetGUID();
|
||||
case GO_ZIGGURAT3:
|
||||
ziggurat3GUID = pGo->GetGUID();
|
||||
if (GetData(TYPE_PALLID) == IN_PROGRESS)
|
||||
HandleGameObject(0, true, pGo);
|
||||
break;
|
||||
@@ -180,18 +180,18 @@ struct instance_stratholme : public ScriptedInstance
|
||||
if (GetData(TYPE_BARON) == DONE || GetData(TYPE_RAMSTEIN) == DONE)
|
||||
HandleGameObject(0, true, pGo);
|
||||
break;
|
||||
case GO_PORT_GAUNTLET:
|
||||
portGauntletGUID = pGo->GetGUID();
|
||||
case GO_PORT_GAUNTLET:
|
||||
portGauntletGUID = pGo->GetGUID();
|
||||
if (GetData(TYPE_BARONESS) == IN_PROGRESS && GetData(TYPE_NERUB) == IN_PROGRESS && GetData(TYPE_PALLID) == IN_PROGRESS)
|
||||
HandleGameObject(0, true, pGo);
|
||||
break;
|
||||
case GO_PORT_SLAUGTHER:
|
||||
portSlaugtherGUID = pGo->GetGUID();
|
||||
case GO_PORT_SLAUGTHER:
|
||||
portSlaugtherGUID = pGo->GetGUID();
|
||||
if (GetData(TYPE_BARONESS) == IN_PROGRESS && GetData(TYPE_NERUB) == IN_PROGRESS && GetData(TYPE_PALLID) == IN_PROGRESS)
|
||||
HandleGameObject(0, true, pGo);
|
||||
break;
|
||||
case GO_PORT_ELDERS:
|
||||
portElderGUID = pGo->GetGUID();
|
||||
case GO_PORT_ELDERS:
|
||||
portElderGUID = pGo->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,9 +99,9 @@ struct boss_brutallusAI : public ScriptedAI
|
||||
IntroFrostBoltTimer = 0;
|
||||
|
||||
IsIntro = false;
|
||||
Enraged = false;
|
||||
Enraged = false;
|
||||
|
||||
DoCast(m_creature, SPELL_DUAL_WIELD, true);
|
||||
DoCast(m_creature, SPELL_DUAL_WIELD, true);
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_BRUTALLUS_EVENT, NOT_STARTED);
|
||||
@@ -151,7 +151,7 @@ struct boss_brutallusAI : public ScriptedAI
|
||||
Madrigosa->setActive(true);
|
||||
IsIntro = true;
|
||||
Madrigosa->SetMaxHealth(m_creature->GetMaxHealth());
|
||||
Madrigosa->SetHealth(m_creature->GetMaxHealth());
|
||||
Madrigosa->SetHealth(m_creature->GetMaxHealth());
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->Attack(Madrigosa, true);
|
||||
Madrigosa->Attack(m_creature, true);
|
||||
|
||||
@@ -25,7 +25,7 @@ EndScriptData */
|
||||
npcs_dithers_and_arbington
|
||||
npc_myranda_the_hag
|
||||
npc_the_scourge_cauldron
|
||||
npc_andorhal_tower
|
||||
npc_andorhal_tower
|
||||
EndContentData */
|
||||
|
||||
#include "ScriptedPch.h"
|
||||
@@ -206,7 +206,7 @@ CreatureAI* GetAI_npc_the_scourge_cauldron(Creature* pCreature)
|
||||
}
|
||||
|
||||
/*######
|
||||
## npcs_andorhal_tower
|
||||
## npcs_andorhal_tower
|
||||
######*/
|
||||
|
||||
enum eAndorhalTower
|
||||
|
||||
@@ -55,7 +55,7 @@ enum Yells
|
||||
|
||||
enum Spells
|
||||
{
|
||||
// List of spells.
|
||||
// List of spells.
|
||||
// Not required to define them in this way, but will make it easier to maintain in case spellId change
|
||||
SPELL_BUFF = 25661,
|
||||
SPELL_ONE = 12555,
|
||||
|
||||
@@ -31,12 +31,12 @@ struct boss_aku_maiAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
uint32 uiPoisonCloudTimer;
|
||||
bool bIsEnraged;
|
||||
|
||||
|
||||
ScriptedInstance *pInstance;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiPoisonCloudTimer = urand(5000,9000);
|
||||
@@ -44,24 +44,24 @@ struct boss_aku_maiAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(TYPE_AKU_MAI, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(TYPE_AKU_MAI, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(TYPE_AKU_MAI, DONE);
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
if (uiPoisonCloudTimer < diff)
|
||||
{
|
||||
DoCastVictim(SPELL_POISON_CLOUD);
|
||||
@@ -73,7 +73,7 @@ struct boss_aku_maiAI : public ScriptedAI
|
||||
DoCast(m_creature,SPELL_FRENZIED_RAGE);
|
||||
bIsEnraged = true;
|
||||
}
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
@@ -86,7 +86,7 @@ CreatureAI* GetAI_boss_aku_mai(Creature* pCreature)
|
||||
void AddSC_boss_aku_mai()
|
||||
{
|
||||
Script *newscript;
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_aku_mai";
|
||||
newscript->GetAI = &GetAI_boss_aku_mai;
|
||||
|
||||
@@ -64,7 +64,7 @@ struct boss_gelihastAI : public ScriptedAI
|
||||
DoCastVictim(SPELL_NET);
|
||||
uiNetTimer = urand(4000,7000);
|
||||
} else uiNetTimer -= diff;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -75,7 +75,7 @@ struct boss_epochAI : public ScriptedAI
|
||||
uiTimeWarpTimer = 25300;
|
||||
uiTimeStopTimer = 21300;
|
||||
uiWoundingStrikeTimer = 5300;
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_EPOCH_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -83,7 +83,7 @@ struct boss_epochAI : public ScriptedAI
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_EPOCH_EVENT, IN_PROGRESS);
|
||||
}
|
||||
@@ -126,7 +126,7 @@ struct boss_epochAI : public ScriptedAI
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_EPOCH_EVENT, DONE);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ struct boss_infinite_corruptorAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -47,7 +47,7 @@ struct boss_infinite_corruptorAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_INFINITE_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
if (pInstance)
|
||||
@@ -64,7 +64,7 @@ struct boss_infinite_corruptorAI : public ScriptedAI
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
if (pInstance)
|
||||
|
||||
@@ -87,7 +87,7 @@ struct boss_mal_ganisAI : public ScriptedAI
|
||||
bool bYelled2;
|
||||
|
||||
CombatPhases Phase;
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -100,7 +100,7 @@ struct boss_mal_ganisAI : public ScriptedAI
|
||||
uiVampiricTouchTimer = urand(10000,15000);
|
||||
uiSleepTimer = urand(15000,20000);
|
||||
uiOutroTimer = 1000;
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MAL_GANIS_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -218,7 +218,7 @@ struct boss_mal_ganisAI : public ScriptedAI
|
||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||
m_creature->Kill(m_creature);
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
} else uiOutroTimer -= diff;
|
||||
break;
|
||||
|
||||
@@ -48,7 +48,7 @@ enum Yells
|
||||
|
||||
struct boss_meathookAI : public ScriptedAI
|
||||
{
|
||||
boss_meathookAI(Creature *c) : ScriptedAI(c)
|
||||
boss_meathookAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
if (pInstance)
|
||||
@@ -58,7 +58,7 @@ struct boss_meathookAI : public ScriptedAI
|
||||
uint32 uiChainTimer;
|
||||
uint32 uiDiseaseTimer;
|
||||
uint32 uiFrenzyTimer;
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -66,7 +66,7 @@ struct boss_meathookAI : public ScriptedAI
|
||||
uiChainTimer = urand(12000,17000); //seen on video 13, 17, 15, 12, 16
|
||||
uiDiseaseTimer = urand(2000,4000); //approx 3s
|
||||
uiFrenzyTimer = urand(21000,26000); //made it up
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MEATHOOK_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -74,7 +74,7 @@ struct boss_meathookAI : public ScriptedAI
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MEATHOOK_EVENT, IN_PROGRESS);
|
||||
}
|
||||
@@ -110,7 +110,7 @@ struct boss_meathookAI : public ScriptedAI
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MEATHOOK_EVENT, DONE);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ struct boss_salrammAI : public ScriptedAI
|
||||
uint32 uiShadowBoltTimer;
|
||||
uint32 uiStealFleshTimer;
|
||||
uint32 uiSummonGhoulsTimer;
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -82,7 +82,7 @@ struct boss_salrammAI : public ScriptedAI
|
||||
uiShadowBoltTimer = urand(8000,12000); // approx 10s
|
||||
uiStealFleshTimer = 12345;
|
||||
uiSummonGhoulsTimer = urand(19000,24000); //on a video approx 24s after aggro
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_SALRAMM_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -90,7 +90,7 @@ struct boss_salrammAI : public ScriptedAI
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_SALRAMM_EVENT, IN_PROGRESS);
|
||||
}
|
||||
@@ -140,7 +140,7 @@ struct boss_salrammAI : public ScriptedAI
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_SALRAMM_EVENT, DONE);
|
||||
}
|
||||
|
||||
+44
-44
@@ -248,21 +248,21 @@ struct npc_arthasAI : public npc_escortAI
|
||||
uint64 uiEpochGUID;
|
||||
uint64 uiMalganisGUID;
|
||||
uint64 uiInfiniteGUID;
|
||||
|
||||
|
||||
uint32 uiExorcismTimer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiUtherGUID = 0;
|
||||
uiJainaGUID = 0;
|
||||
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
uiCitymenGUID[i] = 0;
|
||||
|
||||
for (uint8 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i)
|
||||
for (uint8 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i)
|
||||
uiWaveGUID[i] = 0;
|
||||
|
||||
for (uint8 i = 0; i < ENCOUNTER_DRACONIAN_NUMBER; ++i)
|
||||
for (uint8 i = 0; i < ENCOUNTER_DRACONIAN_NUMBER; ++i)
|
||||
uiInfiniteDraconianGUID[i] = 0;
|
||||
|
||||
uiStalkerGUID = 0;
|
||||
@@ -283,7 +283,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
uiGossipStep = 0;
|
||||
break;
|
||||
}
|
||||
uiPhaseTimer = 1000;
|
||||
uiPhaseTimer = 1000;
|
||||
uiExorcismTimer = 7300;
|
||||
uiWave = 0;
|
||||
}
|
||||
@@ -299,7 +299,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, FAIL);
|
||||
}
|
||||
|
||||
|
||||
void SpawnTimeRift(uint32 timeRiftID, uint64* guidVector)
|
||||
{
|
||||
m_creature->SummonCreature((uint32)RiftAndSpawnsLocations[timeRiftID][0],RiftAndSpawnsLocations[timeRiftID][1],RiftAndSpawnsLocations[timeRiftID][2],RiftAndSpawnsLocations[timeRiftID][3],RiftAndSpawnsLocations[timeRiftID][4],TEMPSUMMON_TIMED_DESPAWN,11000);
|
||||
@@ -380,7 +380,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
if (Unit* pDisguised1 = m_creature->SummonCreature(NPC_CITY_MAN4,2403.22f,1205.54f,134.04f,3.311264f,TEMPSUMMON_DEAD_DESPAWN,180000))
|
||||
{
|
||||
uiInfiniteDraconianGUID[1] = pDisguised1->GetGUID();
|
||||
|
||||
|
||||
if (Unit* pDisguised2 = m_creature->SummonCreature(NPC_CITY_MAN,2400.82f,1201.69f,134.01f,1.534082f,TEMPSUMMON_DEAD_DESPAWN,180000))
|
||||
{
|
||||
uiInfiniteDraconianGUID[2] = pDisguised2->GetGUID();
|
||||
@@ -733,8 +733,8 @@ struct npc_arthasAI : public npc_escortAI
|
||||
pZombie->UpdateEntry(NPC_ZOMBIE, 0);
|
||||
else //There's no one else to transform
|
||||
uiStep++;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
uiStep++;
|
||||
uiPhaseTimer = 500;
|
||||
break;
|
||||
@@ -742,7 +742,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
if (Creature* pMalganis = Unit::GetCreature(*me, uiMalganisGUID))
|
||||
DoScriptText(SAY_PHASE207, pMalganis);
|
||||
JumpToNextStep(17000);
|
||||
break;
|
||||
break;
|
||||
case 39:
|
||||
if (Creature* pMalganis = Unit::GetCreature(*me, uiMalganisGUID))
|
||||
pMalganis->SetVisibility(VISIBILITY_OFF);
|
||||
@@ -760,7 +760,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
uiBossEvent = DATA_MEATHOOK_EVENT;
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, IN_PROGRESS);
|
||||
|
||||
|
||||
m_creature->SetReactState(REACT_DEFENSIVE);
|
||||
SetDespawnAtFar(false);
|
||||
JumpToNextStep(5000);
|
||||
@@ -794,11 +794,11 @@ struct npc_arthasAI : public npc_escortAI
|
||||
uint32 deadCounter = 0;
|
||||
for (uint8 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i)
|
||||
{
|
||||
if (uiWaveGUID[i] == 0)
|
||||
if (uiWaveGUID[i] == 0)
|
||||
break;
|
||||
++mobCounter;
|
||||
Unit* pTemp = Unit::GetCreature(*me, uiWaveGUID[i]);
|
||||
if (!pTemp || pTemp->isDead())
|
||||
if (!pTemp || pTemp->isDead())
|
||||
++deadCounter;
|
||||
}
|
||||
|
||||
@@ -806,8 +806,8 @@ struct npc_arthasAI : public npc_escortAI
|
||||
JumpToNextStep(1000);
|
||||
else
|
||||
uiPhaseTimer = 1000;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
JumpToNextStep(500);
|
||||
break;
|
||||
case 49: //Summon Boss
|
||||
@@ -821,7 +821,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
uiBossID = NPC_SALRAMM;
|
||||
|
||||
if (Unit* pBoss = m_creature->SummonCreature(uiBossID,2232.19f,1331.933f,126.662f,3.15f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,900000))
|
||||
{
|
||||
{
|
||||
uiBossGUID = pBoss->GetGUID();
|
||||
pBoss->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||
pBoss->GetMotionMaster()->MovePoint(0, 2194.110f,1332.00f,130.00f);
|
||||
@@ -841,13 +841,13 @@ struct npc_arthasAI : public npc_escortAI
|
||||
else if (uiBossEvent == DATA_SALRAMM_EVENT)
|
||||
{
|
||||
SetHoldState(false);
|
||||
bStepping = false;
|
||||
bStepping = false;
|
||||
uiBossEvent = DATA_EPOCH_EVENT;
|
||||
}
|
||||
}
|
||||
else if (pInstance->GetData(uiBossEvent) == FAIL)
|
||||
}
|
||||
else if (pInstance->GetData(uiBossEvent) == FAIL)
|
||||
npc_escortAI::EnterEvadeMode();
|
||||
else
|
||||
else
|
||||
uiPhaseTimer = 10000;
|
||||
}
|
||||
break;
|
||||
@@ -866,7 +866,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
if (Creature* pDisguised0 = Unit::GetCreature(*me, uiInfiniteDraconianGUID[0]))
|
||||
DoScriptText(SAY_PHASE302, pDisguised0);
|
||||
JumpToNextStep(7000);
|
||||
break;
|
||||
break;
|
||||
case 63:
|
||||
DoScriptText(SAY_PHASE303, m_creature);
|
||||
SetHoldState(false);
|
||||
@@ -877,7 +877,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
case 64:
|
||||
m_creature->HandleEmoteCommand(54);
|
||||
JumpToNextStep(1000);
|
||||
break;
|
||||
break;
|
||||
case 65:
|
||||
if (Creature* pDisguised0 = Unit::GetCreature(*me, uiInfiniteDraconianGUID[0]))
|
||||
pDisguised0->HandleEmoteCommand(11);
|
||||
@@ -936,12 +936,12 @@ struct npc_arthasAI : public npc_escortAI
|
||||
}
|
||||
JumpToNextStep(5000);
|
||||
break;
|
||||
case 72:
|
||||
case 72:
|
||||
case 74:
|
||||
case 76:
|
||||
if (m_creature->isInCombat())
|
||||
uiPhaseTimer = 1000;
|
||||
else
|
||||
else
|
||||
{
|
||||
if (uiStep == 72) DoScriptText(SAY_PHASE308,m_creature);
|
||||
if (uiStep == 74) DoScriptText(SAY_PHASE308,m_creature);
|
||||
@@ -955,7 +955,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
case 78:
|
||||
if (m_creature->isInCombat())
|
||||
uiPhaseTimer = 1000;
|
||||
else
|
||||
else
|
||||
{
|
||||
DoScriptText(SAY_PHASE312,m_creature);
|
||||
JumpToNextStep(5000);
|
||||
@@ -975,7 +975,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
m_creature->SetUInt64Value(UNIT_FIELD_TARGET, uiEpochGUID);
|
||||
}
|
||||
JumpToNextStep(18000);
|
||||
break;
|
||||
break;
|
||||
case 81:
|
||||
if (pInstance)
|
||||
if (pInstance->GetData(DATA_EPOCH_EVENT) != DONE)
|
||||
@@ -990,13 +990,13 @@ struct npc_arthasAI : public npc_escortAI
|
||||
{
|
||||
//Make Epoch attackable
|
||||
pEpoch->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE | UNIT_FLAG_UNK_9);
|
||||
pEpoch->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
pEpoch->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
pEpoch->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
JumpToNextStep(1000);
|
||||
break;
|
||||
break;
|
||||
case 83:
|
||||
if (pInstance)
|
||||
{
|
||||
@@ -1008,9 +1008,9 @@ struct npc_arthasAI : public npc_escortAI
|
||||
uiBossEvent = DATA_MAL_GANIS_EVENT;
|
||||
JumpToNextStep(15000);
|
||||
}
|
||||
else if (pInstance->GetData(DATA_EPOCH_EVENT) == FAIL)
|
||||
else if (pInstance->GetData(DATA_EPOCH_EVENT) == FAIL)
|
||||
npc_escortAI::EnterEvadeMode();
|
||||
else
|
||||
else
|
||||
uiPhaseTimer = 10000;
|
||||
}
|
||||
break;
|
||||
@@ -1032,7 +1032,7 @@ struct npc_arthasAI : public npc_escortAI
|
||||
{
|
||||
GameObject* pGate = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_MAL_GANIS_GATE_1));
|
||||
pGate->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
}
|
||||
SetHoldState(false);
|
||||
bStepping = false;
|
||||
JumpToNextStep(0);
|
||||
@@ -1059,9 +1059,9 @@ struct npc_arthasAI : public npc_escortAI
|
||||
SetHoldState(false);
|
||||
JumpToNextStep(1000);
|
||||
}
|
||||
else if (pInstance->GetData(DATA_MAL_GANIS_EVENT) == FAIL)
|
||||
else if (pInstance->GetData(DATA_MAL_GANIS_EVENT) == FAIL)
|
||||
npc_escortAI::EnterEvadeMode();
|
||||
else
|
||||
else
|
||||
uiPhaseTimer = 10000;
|
||||
}
|
||||
break;
|
||||
@@ -1083,19 +1083,19 @@ struct npc_arthasAI : public npc_escortAI
|
||||
break;
|
||||
}
|
||||
} else uiPhaseTimer -= diff;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Battling skills
|
||||
if (!m_creature->getVictim())
|
||||
return;
|
||||
|
||||
|
||||
if (uiExorcismTimer < diff)
|
||||
{
|
||||
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
DoCast(target, DUNGEON_MODE(SPELL_EXORCISM_N, SPELL_EXORCISM_H));
|
||||
uiExorcismTimer = 7300;
|
||||
} else uiExorcismTimer -= diff;
|
||||
|
||||
|
||||
if (HealthBelowPct(40))
|
||||
DoCast(m_creature, SPELL_HOLY_LIGHT);
|
||||
}
|
||||
@@ -1116,7 +1116,7 @@ CreatureAI* GetAI_npc_arthas(Creature* pCreature)
|
||||
bool GossipHello_npc_arthas(Player* pPlayer, Creature* pCreature)
|
||||
{
|
||||
npc_arthasAI* pAI = CAST_AI(npc_arthasAI,pCreature->AI());
|
||||
|
||||
|
||||
if (pAI && pAI->bStepping == false)
|
||||
{
|
||||
switch (pAI->uiGossipStep)
|
||||
@@ -1161,7 +1161,7 @@ bool GossipSelect_npc_arthas(Player *pPlayer, Creature *pCreature, uint32 sender
|
||||
|
||||
if (!pAI)
|
||||
return false;
|
||||
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
|
||||
@@ -46,7 +46,7 @@ enum Data64
|
||||
|
||||
enum Creatures
|
||||
{
|
||||
NPC_MEATHOOK = 26529,
|
||||
NPC_MEATHOOK = 26529,
|
||||
NPC_SALRAMM = 26530,
|
||||
NPC_EPOCH = 26532,
|
||||
NPC_MAL_GANIS = 26533,
|
||||
|
||||
+11
-11
@@ -24,15 +24,15 @@
|
||||
/* Culling of Stratholme encounters:
|
||||
0 - Meathook
|
||||
1 - Salramm the Fleshcrafter
|
||||
2 - Chrono-Lord Epoch
|
||||
3 - Mal'Ganis
|
||||
2 - Chrono-Lord Epoch
|
||||
3 - Mal'Ganis
|
||||
4 - Infinite Corruptor (Heroic only)
|
||||
*/
|
||||
|
||||
struct instance_culling_of_stratholme : public ScriptedInstance
|
||||
{
|
||||
instance_culling_of_stratholme(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
|
||||
|
||||
|
||||
uint64 uiArthas;
|
||||
uint64 uiMeathook;
|
||||
uint64 uiSalramm;
|
||||
@@ -45,10 +45,10 @@ struct instance_culling_of_stratholme : public ScriptedInstance
|
||||
uint64 uiMalGanisGate2;
|
||||
uint64 uiExitGate;
|
||||
uint64 uiMalGanisChest;
|
||||
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
std::string str_data;
|
||||
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
@@ -56,7 +56,7 @@ struct instance_culling_of_stratholme : public ScriptedInstance
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void OnCreatureCreate(Creature* pCreature, bool add)
|
||||
{
|
||||
switch(pCreature->GetEntry())
|
||||
@@ -108,7 +108,7 @@ struct instance_culling_of_stratholme : public ScriptedInstance
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SetData(uint32 type, uint32 data)
|
||||
{
|
||||
switch(type)
|
||||
@@ -144,11 +144,11 @@ struct instance_culling_of_stratholme : public ScriptedInstance
|
||||
m_auiEncounter[4] = data;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (data == DONE)
|
||||
SaveToDB();
|
||||
}
|
||||
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
switch(type)
|
||||
@@ -161,7 +161,7 @@ struct instance_culling_of_stratholme : public ScriptedInstance
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
uint64 GetData64(uint32 identifier)
|
||||
{
|
||||
switch(identifier)
|
||||
@@ -180,7 +180,7 @@ struct instance_culling_of_stratholme : public ScriptedInstance
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
@@ -179,7 +179,7 @@ void AddSC_desolace()
|
||||
newscript->pEffectDummyCreature = &EffectDummyCreature_npc_aged_dying_ancient_kodo;
|
||||
newscript->pGossipHello = &GossipHello_npc_aged_dying_ancient_kodo;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "go_iruxos";
|
||||
newscript->pGOHello = &GOHello_go_iruxos;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
*/
|
||||
|
||||
#include "ScriptedPch.h"
|
||||
|
||||
@@ -39,24 +39,24 @@ enum LazyPeon
|
||||
struct npc_lazy_peonAI : public ScriptedAI
|
||||
{
|
||||
npc_lazy_peonAI(Creature *c) : ScriptedAI(c) {}
|
||||
|
||||
|
||||
uint64 uiPlayerGUID;
|
||||
|
||||
|
||||
uint32 m_uiRebuffTimer;
|
||||
uint32 work;
|
||||
|
||||
|
||||
void Reset ()
|
||||
{
|
||||
uiPlayerGUID = 0;
|
||||
work = false;
|
||||
}
|
||||
|
||||
|
||||
void MovementInform(uint32 type, uint32 id)
|
||||
{
|
||||
if (id == 1)
|
||||
work = true;
|
||||
}
|
||||
|
||||
|
||||
void SpellHit(Unit *caster, const SpellEntry *spell)
|
||||
{
|
||||
if (spell->Id == SPELL_AWAKEN_PEON && caster->GetTypeId() == TYPEID_PLAYER
|
||||
@@ -69,7 +69,7 @@ struct npc_lazy_peonAI : public ScriptedAI
|
||||
m_creature->GetMotionMaster()->MovePoint(1,Lumberpile->GetPositionX()-1,Lumberpile->GetPositionY(),Lumberpile->GetPositionZ());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
if (work = true)
|
||||
@@ -95,7 +95,7 @@ CreatureAI* GetAI_npc_lazy_peon(Creature* pCreature)
|
||||
void AddSC_durotar()
|
||||
{
|
||||
Script* newscript;
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "npc_lazy_peon";
|
||||
newscript->GetAI = &GetAI_npc_lazy_peon;
|
||||
|
||||
@@ -109,7 +109,7 @@ struct instance_razorfen_downs : public ScriptedInstance
|
||||
if (uiType == DATA_GONG_WAVES)
|
||||
{
|
||||
uiGongWaves = uiData;
|
||||
|
||||
|
||||
switch(uiGongWaves)
|
||||
{
|
||||
case 9:
|
||||
@@ -127,10 +127,10 @@ struct instance_razorfen_downs : public ScriptedInstance
|
||||
return;
|
||||
|
||||
pGo->SetFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
|
||||
|
||||
|
||||
uint32 uiCreature = 0;
|
||||
uint8 uiSummonTimes = 0;
|
||||
|
||||
|
||||
switch(uiGongWaves)
|
||||
{
|
||||
case 1:
|
||||
@@ -147,7 +147,7 @@ struct instance_razorfen_downs : public ScriptedInstance
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (Creature* pCreature = pGo->SummonCreature(uiCreature,2502.635,844.140,46.896,0.633))
|
||||
{
|
||||
|
||||
@@ -117,7 +117,7 @@ struct npc_tomb_creatureAI : public ScriptedAI
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
//from acid
|
||||
if (m_creature->GetEntry() == CREATURE_TOMB_REAVER)
|
||||
{
|
||||
|
||||
@@ -48,7 +48,7 @@ struct boss_ayamissAI : public ScriptedAI
|
||||
uint32 POISONSTINGER_Timer;
|
||||
uint32 SUMMONSWARMER_Timer;
|
||||
uint32 phase;
|
||||
|
||||
|
||||
ScriptedInstance *pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -57,7 +57,7 @@ struct boss_ayamissAI : public ScriptedAI
|
||||
POISONSTINGER_Timer = 30000;
|
||||
SUMMONSWARMER_Timer = 60000;
|
||||
phase=1;
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_AYAMISS_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -67,7 +67,7 @@ struct boss_ayamissAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_AYAMISS_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit *killer)
|
||||
{
|
||||
if (pInstance)
|
||||
|
||||
@@ -35,21 +35,21 @@ struct boss_buruAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance *pInstance;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_BURU_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_BURU_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit *killer)
|
||||
{
|
||||
if (pInstance)
|
||||
|
||||
@@ -40,14 +40,14 @@ struct boss_kurinnaxxAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
uint32 uiMortalWoundTimer;
|
||||
uint32 uiSandtrapTimer;
|
||||
uint32 uiWideSlashTimer;
|
||||
uint32 uiSummonPlayerTimer;
|
||||
uint32 uiTrashTimer;
|
||||
bool bIsEnraged;
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -58,17 +58,17 @@ struct boss_kurinnaxxAI : public ScriptedAI
|
||||
uiWideSlashTimer = urand(10000,15000);
|
||||
uiTrashTimer = urand(20000,25000);
|
||||
uiSummonPlayerTimer = urand(30000,40000);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_KURINNAXX_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_KURINNAXX_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit *killer)
|
||||
{
|
||||
if (pInstance)
|
||||
@@ -101,21 +101,21 @@ struct boss_kurinnaxxAI : public ScriptedAI
|
||||
DoCast(pTarget, SPELL_SANDTRAP);
|
||||
uiSandtrapTimer = 30000;
|
||||
} else uiSandtrapTimer -= diff;
|
||||
|
||||
|
||||
//Wide Slash spell
|
||||
if (uiWideSlashTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_WIDE_SLASH);
|
||||
uiWideSlashTimer = urand(10000,15000);
|
||||
} else uiWideSlashTimer -= diff;
|
||||
|
||||
|
||||
//Trash spell
|
||||
if (uiTrashTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, SPELL_TRASH);
|
||||
uiTrashTimer = urand(20000,25000);
|
||||
} else uiTrashTimer -= diff;
|
||||
|
||||
|
||||
//Summon Player spell
|
||||
if (uiSummonPlayerTimer <= diff)
|
||||
{
|
||||
|
||||
@@ -56,12 +56,12 @@ struct boss_moamAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
uint32 uiTrampleTimer;
|
||||
uint32 uiDrainManaTimer;
|
||||
uint32 uiPhaseTimer;
|
||||
CombatPhase Phase;
|
||||
|
||||
|
||||
ScriptedInstance *pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -71,7 +71,7 @@ struct boss_moamAI : public ScriptedAI
|
||||
uiPhaseTimer = 90000;
|
||||
Phase = NORMAL;
|
||||
m_creature->SetPower(POWER_MANA,0);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MOAM_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -79,17 +79,17 @@ struct boss_moamAI : public ScriptedAI
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
DoScriptText(EMOTE_AGGRO, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MOAM_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit *killer)
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MOAM_EVENT, DONE);
|
||||
}
|
||||
|
||||
|
||||
void DrainMana()
|
||||
{
|
||||
for (uint8 i=0;i<6;++i)
|
||||
@@ -108,7 +108,7 @@ struct boss_moamAI : public ScriptedAI
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
//If we are 100%MANA cast Arcane Erruption
|
||||
if (m_creature->GetPower(POWER_MANA) == m_creature->GetMaxPower(POWER_MANA))
|
||||
{
|
||||
@@ -116,23 +116,23 @@ struct boss_moamAI : public ScriptedAI
|
||||
DoScriptText(EMOTE_MANA_FULL, m_creature);
|
||||
m_creature->SetPower(POWER_MANA,0);
|
||||
}
|
||||
|
||||
|
||||
//Trample Spell
|
||||
if (uiTrampleTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_TRAMPLE);
|
||||
uiTrampleTimer = urand(3000,7000);
|
||||
} else uiTrampleTimer -= diff;
|
||||
|
||||
|
||||
//Drain Mana
|
||||
if (uiDrainManaTimer <= diff)
|
||||
{
|
||||
DrainMana();
|
||||
uiDrainManaTimer = urand(3000,7000);
|
||||
} else uiDrainManaTimer -= diff;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
|
||||
//After 90secs change phase
|
||||
if (uiPhaseTimer <= diff)
|
||||
{
|
||||
|
||||
@@ -43,21 +43,21 @@ struct boss_ossirianAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance *pInstance;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_OSSIRIAN_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_OSSIRIAN_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit *killer)
|
||||
{
|
||||
if (pInstance)
|
||||
|
||||
@@ -49,21 +49,21 @@ struct boss_rajaxxAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance *pInstance;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_RAJAXX_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_RAJAXX_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit *killer)
|
||||
{
|
||||
if (pInstance)
|
||||
|
||||
@@ -37,7 +37,7 @@ EndScriptData */
|
||||
struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
{
|
||||
instance_ruins_of_ahn_qiraj(Map* pMap) : ScriptedInstance(pMap) { Initialize(); }
|
||||
|
||||
|
||||
uint64 uiKurinaxx;
|
||||
uint64 uiRajaxx;
|
||||
uint64 uiMoam;
|
||||
@@ -47,11 +47,11 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
|
||||
uint8 m_auiEncounter[MAX_ENCOUNTER];
|
||||
std::string str_data;
|
||||
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
|
||||
|
||||
uiKurinaxx = 0;
|
||||
uiRajaxx = 0;
|
||||
uiMoam = 0;
|
||||
@@ -59,7 +59,7 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
uiAyamiss = 0;
|
||||
uiOssirian = 0;
|
||||
}
|
||||
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
@@ -67,7 +67,7 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void OnCreatureCreate(Creature* pCreature, bool add)
|
||||
{
|
||||
switch (pCreature->GetEntry())
|
||||
@@ -92,7 +92,7 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint32 GetData(uint32 identifier)
|
||||
{
|
||||
switch(identifier)
|
||||
@@ -104,10 +104,10 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
case DATA_AYAMISS_EVENT: return m_auiEncounter[4];
|
||||
case DATA_OSSIRIAN_EVENT: return m_auiEncounter[5];
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void SetData(uint32 identifier, uint32 data)
|
||||
{
|
||||
switch(identifier)
|
||||
@@ -131,11 +131,11 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
m_auiEncounter[5] = data;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (data == DONE)
|
||||
SaveToDB();
|
||||
}
|
||||
|
||||
|
||||
uint64 GetData64(uint32 uiIdentifier)
|
||||
{
|
||||
switch(uiIdentifier)
|
||||
@@ -147,10 +147,10 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
case DATA_AYAMISS: return uiAyamiss;
|
||||
case DATA_OSSIRIAN: return uiOssirian;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
@@ -164,7 +164,7 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return str_data;
|
||||
}
|
||||
|
||||
|
||||
void Load(const char* in)
|
||||
{
|
||||
if (!in)
|
||||
@@ -189,7 +189,7 @@ struct instance_ruins_of_ahn_qiraj : public ScriptedInstance
|
||||
m_auiEncounter[3] = data3;
|
||||
m_auiEncounter[4] = data4;
|
||||
m_auiEncounter[5] = data5;
|
||||
|
||||
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
if (m_auiEncounter[i] == IN_PROGRESS)
|
||||
m_auiEncounter[i] = NOT_STARTED;
|
||||
|
||||
@@ -29,7 +29,7 @@ EndScriptData */
|
||||
*
|
||||
* The first phase is the EYE phase: the Eye of C'Thun is active and C'thun is not active.
|
||||
* During this phase, the "Eye of C'Thun" alternates between 2 sub-phases:
|
||||
* - PHASE_EYE_GREEN_BEAM:
|
||||
* - PHASE_EYE_GREEN_BEAM:
|
||||
* 50 sec phase during which the Eye mainly casts its Green Beam every 3 sec.
|
||||
* - PHASE_EYE_RED_BEAM:
|
||||
* 35 sec phase during which the Eye casts its red beam every sec.
|
||||
@@ -39,7 +39,7 @@ EndScriptData */
|
||||
* This phase starts with the transformation of the Eye into C'Thun (PHASE_CTHUN_TRANSITION).
|
||||
* After the transformation, C'Thun alternates between 2 sub-phases:
|
||||
* - PHASE_CTHUN_STOMACH:
|
||||
* - C'Thun is almost insensible to all damage (99% damage reduction).
|
||||
* - C'Thun is almost insensible to all damage (99% damage reduction).
|
||||
* - It spawns 2 tentacles in its stomach.
|
||||
* - C'Thun swallows players.
|
||||
* - This sub-phase ends when the 2 tentacles are killed. Swallowed players are regurgitate.
|
||||
@@ -50,7 +50,7 @@ EndScriptData */
|
||||
*
|
||||
* This CTHUN phase ends when C'Thun is killed
|
||||
*
|
||||
* Note:
|
||||
* Note:
|
||||
* - the current phase is stored in the instance data to be easily shared between the eye and cthun.
|
||||
*/
|
||||
|
||||
@@ -94,7 +94,7 @@ enum Spells
|
||||
{
|
||||
//***** Main Phase 1 ********
|
||||
//Eye Spells
|
||||
SPELL_FREEZE_ANIM = 16245,
|
||||
SPELL_FREEZE_ANIM = 16245,
|
||||
SPELL_GREEN_BEAM = 26134,
|
||||
SPELL_DARK_GLARE = 26029,
|
||||
SPELL_RED_COLORATION = 22518, //Probably not the right spell but looks similar
|
||||
@@ -331,7 +331,7 @@ struct eye_of_cthunAI : public Scripted_NoMovementAI
|
||||
//Freeze animation
|
||||
DoCast(m_creature, SPELL_FREEZE_ANIM);
|
||||
m_creature->SetOrientation(DarkGlareAngle);
|
||||
m_creature->StopMoving();
|
||||
m_creature->StopMoving();
|
||||
|
||||
//Darkbeam for 35 seconds
|
||||
PhaseTimer = 35000;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
#include "ScriptedPch.h"
|
||||
|
||||
#define NPC_GAHZRILLA 7273
|
||||
@@ -42,7 +42,7 @@ struct instance_zulfarrak : public ScriptedInstance
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
InstanceData* GetInstanceData_instance_zulfarrak(Map* pMap)
|
||||
{
|
||||
return new instance_zulfarrak(pMap);
|
||||
|
||||
@@ -28,7 +28,7 @@ enum Spells
|
||||
SPELL_BASH = 57094, // Victim
|
||||
SPELL_ENTANGLING_ROOTS = 57095, // Random Victim 100Y
|
||||
SPELL_MINI = 57055, // Self
|
||||
SPELL_VENOM_BOLT_VOLLEY = 57088, // Random Victim 100Y
|
||||
SPELL_VENOM_BOLT_VOLLEY = 57088, // Random Victim 100Y
|
||||
SPELL_HEALTHY_MUSHROOM_POTENT_FUNGUS = 56648, // Killer 3Y
|
||||
SPELL_POISONOUS_MUSHROOM_POISON_CLOUD = 57061, // Self - Duration 8 Sec
|
||||
SPELL_POISONOUS_MUSHROOM_VISUAL_AREA = 61566, // Self
|
||||
|
||||
@@ -69,7 +69,7 @@ struct boss_elder_nadoxAI : public ScriptedAI
|
||||
uint32 uiSwarmerSpawnTimer;
|
||||
uint32 uiGuardSpawnTimer;
|
||||
uint32 uiEnragueTimer;
|
||||
|
||||
|
||||
bool bGuardSpawned;
|
||||
|
||||
ScriptedInstance *pInstance;
|
||||
@@ -180,7 +180,7 @@ CreatureAI* GetAI_boss_elder_nadox(Creature* pCreature)
|
||||
enum AddSpells
|
||||
{
|
||||
SPELL_SPRINT = 56354,
|
||||
SPELL_GUARDIAN_AURA = 56151
|
||||
SPELL_GUARDIAN_AURA = 56151
|
||||
};
|
||||
|
||||
struct mob_ahnkahar_nerubianAI : public ScriptedAI
|
||||
@@ -212,7 +212,7 @@ struct mob_ahnkahar_nerubianAI : public ScriptedAI
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
if (m_creature->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY)
|
||||
m_creature->RemoveAurasDueToSpell(SPELL_GUARDIAN_AURA);
|
||||
|
||||
|
||||
@@ -518,7 +518,7 @@ struct npc_jedogas_aufseher_triggerAI : public Scripted_NoMovementAI
|
||||
return;
|
||||
|
||||
if (!bRemoved && m_creature->GetPositionX() > 440.0f)
|
||||
{
|
||||
{
|
||||
if (pInstance->GetData(DATA_PRINCE_TALDARAM_EVENT) == DONE)
|
||||
{
|
||||
m_creature->InterruptNonMeleeSpells(true);
|
||||
|
||||
@@ -226,7 +226,7 @@ struct boss_taldaramAI : public ScriptedAI
|
||||
uiPhaseTimer = 500;
|
||||
if (Unit* pEmbraceTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
uiEmbraceTarget = pEmbraceTarget->GetGUID();
|
||||
|
||||
|
||||
}
|
||||
uiVanishTimer = urand(25*IN_MILISECONDS,35*IN_MILISECONDS);
|
||||
} else uiVanishTimer -= diff;
|
||||
|
||||
@@ -58,14 +58,14 @@ struct instance_ahnkahet : public ScriptedInstance
|
||||
uint8 InitiandCnt,
|
||||
switchtrigger,
|
||||
initiandkilled;
|
||||
|
||||
|
||||
std::string str_data;
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
InitiandGUIDs.clear();
|
||||
|
||||
|
||||
Elder_Nadox =0;
|
||||
Prince_Taldaram =0;
|
||||
Jedoga_Shadowseeker =0;
|
||||
@@ -256,7 +256,7 @@ struct instance_ahnkahet : public ScriptedInstance
|
||||
<< spheres[0] << " " << spheres[1];
|
||||
|
||||
str_data = saveStream.str();
|
||||
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return str_data;
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ struct boss_anub_arakAI : public ScriptedAI
|
||||
m_creature->RemoveAura(SPELL_SUBMERGE);
|
||||
|
||||
lSummons.DespawnAll();
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ANUBARAK_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -112,7 +112,7 @@ struct boss_anub_arakAI : public ScriptedAI
|
||||
void EnterCombat(Unit *pWho)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ANUBARAK_EVENT, IN_PROGRESS);
|
||||
}
|
||||
@@ -245,11 +245,11 @@ struct boss_anub_arakAI : public ScriptedAI
|
||||
if (uiPhase != 1)
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit *pKiller)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ANUBARAK_EVENT, DONE);
|
||||
}
|
||||
@@ -258,7 +258,7 @@ struct boss_anub_arakAI : public ScriptedAI
|
||||
{
|
||||
if (pVictim == m_creature)
|
||||
return;
|
||||
|
||||
|
||||
DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature);
|
||||
}
|
||||
|
||||
@@ -266,7 +266,7 @@ struct boss_anub_arakAI : public ScriptedAI
|
||||
{
|
||||
lSummons.Summon(summon);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_anub_arak(Creature *pCreature)
|
||||
|
||||
@@ -2040,7 +2040,7 @@ struct npc_trapped_mammoth_calfAI : public ScriptedAI
|
||||
void Reset()
|
||||
{
|
||||
GameObject *pTrap;
|
||||
|
||||
|
||||
uiTimer = 1500;
|
||||
bStarted = false;
|
||||
|
||||
@@ -2089,7 +2089,7 @@ struct npc_trapped_mammoth_calfAI : public ScriptedAI
|
||||
if (param == 1)
|
||||
bStarted = true;
|
||||
}
|
||||
|
||||
|
||||
void MovementInform(uint32 uiType, uint32 uiId)
|
||||
{
|
||||
GameObject* pTrap;
|
||||
@@ -2184,7 +2184,7 @@ struct npc_seaforium_depth_chargeAI : public ScriptedAI
|
||||
{
|
||||
if (uiExplosionTimer < diff)
|
||||
{
|
||||
DoCast(SPELL_SEAFORIUM_DEPTH_CHARGE_EXPLOSION);
|
||||
DoCast(SPELL_SEAFORIUM_DEPTH_CHARGE_EXPLOSION);
|
||||
for(uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
if(Creature* cCredit = m_creature->FindNearestCreature(25402 + i, 10.0f))//25402-25405 credit markers
|
||||
@@ -2194,7 +2194,7 @@ struct npc_seaforium_depth_chargeAI : public ScriptedAI
|
||||
Player* pOwner = uOwner->ToPlayer();
|
||||
if(pOwner && pOwner->GetQuestStatus(QUEST_BURY_THOSE_COCKROACHES) == QUEST_STATUS_INCOMPLETE)
|
||||
pOwner->KilledMonsterCredit(cCredit->GetEntry(),cCredit->GetGUID());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
m_creature->Kill(m_creature);
|
||||
@@ -2225,7 +2225,7 @@ struct npc_valiance_keep_cannoneerAI : public ScriptedAI
|
||||
uint32 uiTimer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
{
|
||||
uiTimer = urand(13000,18000);
|
||||
}
|
||||
|
||||
@@ -2261,7 +2261,7 @@ enum Spells
|
||||
SPELL_TRANSITUS_SHIELD_BEAM = 48310
|
||||
};
|
||||
|
||||
enum NPCs
|
||||
enum NPCs
|
||||
{
|
||||
NPC_TRANSITUS_SHIELD_DUMMY = 27306,
|
||||
NPC_WARMAGE_HOLLISTER = 27906,
|
||||
@@ -2336,7 +2336,7 @@ struct npc_warmage_coldarraAI : public Scripted_NoMovementAI
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else m_uiTimer -= uiDiff;
|
||||
|
||||
ScriptedAI::UpdateAI(uiDiff);
|
||||
@@ -2506,7 +2506,7 @@ void AddSC_borean_tundra()
|
||||
newscript->Name = "npc_valiance_keep_cannoneer";
|
||||
newscript->GetAI = &GetAI_npc_valiance_keep_cannoneer;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "npc_warmage_coldarra";
|
||||
newscript->GetAI = &GetAI_npc_warmage_coldarra;
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
SDName: CrystalSongForest
|
||||
SDAuthor: Malcrom
|
||||
SD%Complete: 99%
|
||||
SDComment:
|
||||
SDComment:
|
||||
SDCategory: CrystalsongForest
|
||||
Script Data End */
|
||||
|
||||
@@ -35,7 +35,7 @@ enum Spells
|
||||
SPELL_TRANSITUS_SHIELD_BEAM = 48310
|
||||
};
|
||||
|
||||
enum NPCs
|
||||
enum NPCs
|
||||
{
|
||||
NPC_TRANSITUS_SHIELD_DUMMY = 27306,
|
||||
NPC_WARMAGE_SARINA = 32369,
|
||||
@@ -62,7 +62,7 @@ struct npc_warmage_violetstandAI : public Scripted_NoMovementAI
|
||||
{
|
||||
if (m_uiTimer <= uiDiff)
|
||||
{
|
||||
m_creature->CastStop();
|
||||
m_creature->CastStop();
|
||||
Creature* pTarget = GetClosestCreatureWithEntry(me,NPC_TRANSITUS_SHIELD_DUMMY,32.0f);
|
||||
|
||||
switch(me->GetEntry())
|
||||
@@ -90,7 +90,7 @@ struct npc_warmage_violetstandAI : public Scripted_NoMovementAI
|
||||
m_uiTimer = 90000;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else m_uiTimer -= uiDiff;
|
||||
|
||||
ScriptedAI::UpdateAI(uiDiff);
|
||||
|
||||
@@ -111,7 +111,7 @@ CreatureAI* GetAI_npc_mageguard_dalaran(Creature* pCreature)
|
||||
|
||||
enum eHiraSnowdawn
|
||||
{
|
||||
SPELL_COLD_WEATHER_FLYING = 54197
|
||||
SPELL_COLD_WEATHER_FLYING = 54197
|
||||
};
|
||||
|
||||
#define GOSSIP_TEXT_TRAIN_HIRA "I seek training to ride a steed."
|
||||
@@ -138,7 +138,7 @@ bool GossipSelect_npc_hira_snowdawn(Player* pPlayer, Creature* pCreature, uint32
|
||||
|
||||
if (uiAction == GOSSIP_ACTION_TRADE)
|
||||
pPlayer->SEND_VENDORLIST(pCreature->GetGUID());
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ struct boss_dredAI : public ScriptedAI
|
||||
DoCastVictim(SPELL_MANGLING_SLASH,false);
|
||||
uiManglingSlashTimer = 20*IN_MILISECONDS;
|
||||
} else uiManglingSlashTimer -=diff;
|
||||
|
||||
|
||||
if (uiFearsomeRoarTimer < diff)
|
||||
{
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_FEARSOME_ROAR, H_SPELL_FEARSOME_ROAR),false);
|
||||
|
||||
@@ -79,7 +79,7 @@ struct boss_tharon_jaAI : public ScriptedAI
|
||||
uint32 uiEyeBeamTimer;
|
||||
uint32 uiLightningBreathTimer;
|
||||
uint32 uiPoisonCloudTimer;
|
||||
|
||||
|
||||
CombatPhase Phase;
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
@@ -95,7 +95,7 @@ struct boss_tharon_jaAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_THARON_JA_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
@@ -103,7 +103,7 @@ struct boss_tharon_jaAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_THARON_JA_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
//Return since we have no target
|
||||
@@ -119,19 +119,19 @@ struct boss_tharon_jaAI : public ScriptedAI
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_CURSE_OF_LIFE, H_SPELL_CURSE_OF_LIFE));
|
||||
uiCurseOfLifeTimer = urand(10*IN_MILISECONDS,15*IN_MILISECONDS);
|
||||
} else uiCurseOfLifeTimer -= diff;
|
||||
|
||||
|
||||
if (uiShadowVolleyTimer < diff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_SHADOW_VOLLEY,H_SPELL_SHADOW_VOLLEY));
|
||||
uiShadowVolleyTimer = urand(8*IN_MILISECONDS,10*IN_MILISECONDS);
|
||||
} else uiShadowVolleyTimer -= diff;
|
||||
|
||||
|
||||
if (uiRainOfFireTimer < diff)
|
||||
{
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_RAIN_OF_FIRE,H_SPELL_RAIN_OF_FIRE));
|
||||
uiRainOfFireTimer = urand(14*IN_MILISECONDS,18*IN_MILISECONDS);
|
||||
} else uiRainOfFireTimer -= diff;
|
||||
|
||||
|
||||
if (uiPhaseTimer < diff)
|
||||
{
|
||||
DoCast(SPELL_DECAY_FLESH);
|
||||
@@ -183,7 +183,7 @@ struct boss_tharon_jaAI : public ScriptedAI
|
||||
DoCastAOE(DUNGEON_MODE(SPELL_POISON_CLOUD, H_SPELL_POISON_CLOUD));
|
||||
uiPoisonCloudTimer = urand(10*IN_MILISECONDS,12*IN_MILISECONDS);
|
||||
} else uiPoisonCloudTimer -= diff;
|
||||
|
||||
|
||||
if (uiPhaseTimer < diff)
|
||||
{
|
||||
DoCast(SPELL_RETURN_FLESH);
|
||||
|
||||
@@ -89,7 +89,7 @@ struct boss_trollgoreAI : public ScriptedAI
|
||||
lSummons.DespawnAll();
|
||||
|
||||
m_creature->RemoveAura(DUNGEON_MODE(SPELL_CONSUME_AURA,H_SPELL_CONSUME_AURA));
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_TROLLGORE_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -151,7 +151,7 @@ struct boss_trollgoreAI : public ScriptedAI
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
@@ -165,7 +165,7 @@ struct boss_trollgoreAI : public ScriptedAI
|
||||
pInstance->SetData(DATA_TROLLGORE_EVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void KilledUnit(Unit *victim)
|
||||
{
|
||||
if (victim == m_creature)
|
||||
|
||||
@@ -45,29 +45,29 @@ struct boss_bronjahmAI : public ScriptedAI
|
||||
{
|
||||
pInstance = m_creature->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
uint32 uiFearTimer;
|
||||
uint32 uiShadowBoltTimer;
|
||||
uint32 uiMagicsBaneTimer;
|
||||
uint32 uiCorruptSoulTimer;
|
||||
|
||||
|
||||
CombatPhases Phase;
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
Phase = PHASE_1;
|
||||
|
||||
|
||||
uiFearTimer = urand(8000,12000);
|
||||
uiShadowBoltTimer = 2000;
|
||||
uiMagicsBaneTimer = urand(8000,15000);
|
||||
uiCorruptSoulTimer = urand(15000,25000);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_BRONJAHM_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
//DoScriptText(SAY_AGGRO, m_creature);
|
||||
@@ -75,7 +75,7 @@ struct boss_bronjahmAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_BRONJAHM_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
//DoScriptText(SAY_DEATH, m_creature);
|
||||
@@ -83,13 +83,13 @@ struct boss_bronjahmAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_BRONJAHM_EVENT, DONE);
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
//Return since we have no target
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
switch (Phase)
|
||||
{
|
||||
case PHASE_1:
|
||||
@@ -111,23 +111,23 @@ struct boss_bronjahmAI : public ScriptedAI
|
||||
} else uiFearTimer -= diff;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (HealthBelowPct(30))
|
||||
DoCast(m_creature,SPELL_TELEPORT);
|
||||
|
||||
|
||||
if (uiShadowBoltTimer <= diff)
|
||||
{
|
||||
if (m_creature->IsWithinMeleeRange(m_creature->getVictim()))
|
||||
DoCastVictim(SPELL_SHADOW_BOLT);
|
||||
uiShadowBoltTimer = 2000;
|
||||
} else uiShadowBoltTimer -= diff;
|
||||
|
||||
|
||||
if (uiMagicsBaneTimer <= diff)
|
||||
{
|
||||
DoCastVictim(DUNGEON_MODE(SPELL_MAGIC_S_BANE,SPELL_MAGIC_S_BANE_H));
|
||||
uiMagicsBaneTimer = urand(8000,15000);
|
||||
} else uiMagicsBaneTimer -= diff;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
@@ -143,9 +143,9 @@ struct mob_corrupted_soul_fragmentAI : public ScriptedAI
|
||||
{
|
||||
pInstance = m_creature->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
SetCombatMovement(false);
|
||||
@@ -154,7 +154,7 @@ struct mob_corrupted_soul_fragmentAI : public ScriptedAI
|
||||
m_creature->GetMotionMaster()->MoveChase(pBronjham);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void MovementInform(uint32 type, uint32 id)
|
||||
{
|
||||
if (pInstance)
|
||||
@@ -173,7 +173,7 @@ CreatureAI* GetAI_mob_corrupted_soul_fragment(Creature* pCreature)
|
||||
void AddSC_boss_bronjahm()
|
||||
{
|
||||
Script *newscript;
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "mob_corruptel_soul_fragment";
|
||||
newscript->GetAI = &GetAI_mob_corrupted_soul_fragment;
|
||||
|
||||
@@ -37,7 +37,7 @@ struct instance_forge_of_souls : public ScriptedInstance
|
||||
{
|
||||
uiBronjahm = 0;
|
||||
uiDevourer = 0;
|
||||
|
||||
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
m_auiEncounter[i] = NOT_STARTED;
|
||||
}
|
||||
|
||||
+3
-3
@@ -40,7 +40,7 @@ struct instance_halls_of_reflection : public ScriptedInstance
|
||||
uiFalric = 0;
|
||||
uiMarwyn = 0;
|
||||
uiLichKing = 0;
|
||||
|
||||
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
m_auiEncounter[i] = NOT_STARTED;
|
||||
}
|
||||
@@ -57,7 +57,7 @@ struct instance_halls_of_reflection : public ScriptedInstance
|
||||
break;
|
||||
case CREATURE_LICHKING:
|
||||
uiLichKing = pCreature->GetGUID();
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*
|
||||
@@ -80,7 +80,7 @@ struct instance_halls_of_reflection : public ScriptedInstance
|
||||
break;
|
||||
case DATA_LICHKING_EVENT:
|
||||
m_auiEncounter[2] = data;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
if (data == DONE)
|
||||
|
||||
@@ -71,7 +71,7 @@ struct boss_garfrostAI : public ScriptedAI
|
||||
bool phase2;
|
||||
bool phase3;
|
||||
bool bAchievement;
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
EventMap events;
|
||||
|
||||
@@ -82,7 +82,7 @@ struct boss_garfrostAI : public ScriptedAI
|
||||
phase2 = false;
|
||||
phase3 = false;
|
||||
bAchievement = true;
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_GARFROST_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
@@ -175,8 +175,8 @@ struct boss_ickAI : public ScriptedAI
|
||||
if (pKrick->AI())
|
||||
pKrick->AI()->DoAction(ACTION_OUTRO);
|
||||
}
|
||||
|
||||
if (pInstance)
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_KRICKANDICK_EVENT, DONE);
|
||||
}
|
||||
|
||||
@@ -208,7 +208,7 @@ struct boss_ickAI : public ScriptedAI
|
||||
DoScriptText(SAY_ICK_CHASE_1, m_creature, pTarget);
|
||||
DoCast(pTarget, SPELL_PURSUED);
|
||||
}
|
||||
|
||||
|
||||
DoCast(SPELL_CONFUSION);
|
||||
events.ScheduleEvent(EVENT_PURSUE, 30000, GCD_1);
|
||||
return;
|
||||
@@ -274,7 +274,7 @@ struct boss_krickAI : public ScriptedAI
|
||||
KrickPhase phase;
|
||||
uint64 uiNpcOutroDialog;
|
||||
uint64 uiTyrannus;
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiNpcOutroDialog = 0;
|
||||
@@ -307,7 +307,7 @@ struct boss_krickAI : public ScriptedAI
|
||||
|
||||
void DoAction(const int32 actionId)
|
||||
{
|
||||
switch(actionId)
|
||||
switch(actionId)
|
||||
{
|
||||
case ACTION_OUTRO:
|
||||
{
|
||||
@@ -324,7 +324,7 @@ struct boss_krickAI : public ScriptedAI
|
||||
if (pJainaOrSylvanas) {
|
||||
Position pos;
|
||||
m_creature->GetNearPosition(pos, 5.0f, 0);
|
||||
pJainaOrSylvanas->NearTeleportTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(),
|
||||
pJainaOrSylvanas->NearTeleportTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(),
|
||||
pos.GetAngle(m_creature->GetPositionX(), m_creature->GetPositionY()));
|
||||
}
|
||||
else {
|
||||
@@ -333,7 +333,7 @@ struct boss_krickAI : public ScriptedAI
|
||||
else
|
||||
pJainaOrSylvanas = m_creature->SummonCreature(NPC_JAINA_PART1, *m_creature, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
}
|
||||
|
||||
|
||||
if (pJainaOrSylvanas)
|
||||
{
|
||||
pJainaOrSylvanas->SetOrientation(pJainaOrSylvanas->GetAngle(m_creature->GetPositionX(), m_creature->GetPositionY()));
|
||||
@@ -406,14 +406,14 @@ struct boss_krickAI : public ScriptedAI
|
||||
uiTyrannus = (pInstance ? pInstance->GetData64(DATA_TYRANNUS) : 0);
|
||||
events.ScheduleEvent(EVENT_OUTRO_7, 1);
|
||||
break;
|
||||
case EVENT_OUTRO_7:
|
||||
case EVENT_OUTRO_7:
|
||||
if (Creature *pTyrannus = m_creature->GetCreature(*m_creature, uiTyrannus))
|
||||
DoScriptText(SAY_TYRANNUS_OUTRO_7, pTyrannus);
|
||||
events.ScheduleEvent(EVENT_OUTRO_8, 7000);
|
||||
break;
|
||||
case EVENT_OUTRO_8:
|
||||
DoScriptText(SAY_KRICK_OUTRO_8, m_creature);
|
||||
// TODO: Tyrannus starts killing Krick.
|
||||
// TODO: Tyrannus starts killing Krick.
|
||||
// there shall be some visual spell effect
|
||||
events.ScheduleEvent(EVENT_OUTRO_9, 6000);
|
||||
break;
|
||||
@@ -427,7 +427,7 @@ struct boss_krickAI : public ScriptedAI
|
||||
|
||||
events.ScheduleEvent(EVENT_OUTRO_10, 12000);
|
||||
break;
|
||||
case EVENT_OUTRO_10:
|
||||
case EVENT_OUTRO_10:
|
||||
{
|
||||
Creature* pNpcDialog = m_creature->GetCreature(*m_creature, uiNpcOutroDialog);
|
||||
if (pNpcDialog)
|
||||
@@ -447,7 +447,7 @@ struct boss_krickAI : public ScriptedAI
|
||||
Creature* pNpcDialog = m_creature->GetCreature(*m_creature, uiNpcOutroDialog);
|
||||
if (pNpcDialog)
|
||||
pNpcDialog->DisappearAndDie();
|
||||
|
||||
|
||||
m_creature->DisappearAndDie();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "pit_of_saron.h"
|
||||
|
||||
/*
|
||||
* SDComment: TODO:
|
||||
* SDComment: TODO:
|
||||
* - implement aura for spell Overlord Brand.
|
||||
* - Intro/Outro
|
||||
* - improve script of Rimefang
|
||||
@@ -90,14 +90,14 @@ struct boss_tyrannusAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
EventMap events;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
events.Reset();
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_TYRANNUS_EVENT, NOT_STARTED);
|
||||
}
|
||||
@@ -127,8 +127,8 @@ struct boss_tyrannusAI : public ScriptedAI
|
||||
{
|
||||
DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2), m_creature);
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
|
||||
@@ -183,7 +183,7 @@ struct boss_rimefangAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
EventMap events;
|
||||
|
||||
@@ -193,7 +193,7 @@ struct boss_rimefangAI : public ScriptedAI
|
||||
m_creature->InterruptSpell(CURRENT_GENERIC_SPELL);
|
||||
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
events.Reset();
|
||||
events.Reset();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
@@ -204,7 +204,7 @@ struct boss_rimefangAI : public ScriptedAI
|
||||
events.ScheduleEvent(EVENT_MARK_OF_RIMEFANG, 25000);
|
||||
events.ScheduleEvent(EVENT_ICY_BLAST, 35000);
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
//Return since we have no target
|
||||
|
||||
@@ -55,7 +55,7 @@ struct instance_pit_of_saron : public ScriptedInstance
|
||||
bool IsEncounterInProgress() const
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
if (uiEncounter[i] == IN_PROGRESS)
|
||||
if (uiEncounter[i] == IN_PROGRESS)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -73,24 +73,24 @@ struct instance_pit_of_saron : public ScriptedInstance
|
||||
|
||||
switch(pCreature->GetEntry())
|
||||
{
|
||||
case CREATURE_KRICK:
|
||||
uiKrick = pCreature->GetGUID();
|
||||
case CREATURE_KRICK:
|
||||
uiKrick = pCreature->GetGUID();
|
||||
break;
|
||||
|
||||
case CREATURE_ICK:
|
||||
uiIck = pCreature->GetGUID();
|
||||
break;
|
||||
|
||||
case CREATURE_GARFROST:
|
||||
uiGarfrost = pCreature->GetGUID();
|
||||
case CREATURE_GARFROST:
|
||||
uiGarfrost = pCreature->GetGUID();
|
||||
break;
|
||||
|
||||
case CREATURE_TYRANNUS:
|
||||
uiTyrannus = pCreature->GetGUID();
|
||||
case CREATURE_TYRANNUS:
|
||||
uiTyrannus = pCreature->GetGUID();
|
||||
break;
|
||||
|
||||
case CREATURE_RIMEFANG:
|
||||
uiRimefang = pCreature->GetGUID();
|
||||
uiRimefang = pCreature->GetGUID();
|
||||
break;
|
||||
|
||||
case NPC_SYLVANAS_PART1:
|
||||
@@ -120,7 +120,7 @@ struct instance_pit_of_saron : public ScriptedInstance
|
||||
pCreature->UpdateEntry(NPC_CHAMPION_2_ALLIANCE, ALLIANCE);
|
||||
break;
|
||||
case NPC_CHAMPION_3_HORDE: // No 3rd set for Alliance?
|
||||
if (uiTeamInInstance == ALLIANCE)
|
||||
if (uiTeamInInstance == ALLIANCE)
|
||||
pCreature->UpdateEntry(NPC_CHAMPION_2_ALLIANCE, ALLIANCE);
|
||||
break;
|
||||
}
|
||||
@@ -148,13 +148,13 @@ struct instance_pit_of_saron : public ScriptedInstance
|
||||
switch(type)
|
||||
{
|
||||
case DATA_GARFROST_EVENT:
|
||||
uiEncounter[0] = data;
|
||||
uiEncounter[0] = data;
|
||||
break;
|
||||
case DATA_TYRANNUS_EVENT:
|
||||
uiEncounter[1] = data;
|
||||
uiEncounter[1] = data;
|
||||
break;
|
||||
case DATA_KRICKANDICK_EVENT:
|
||||
uiEncounter[2] = data;
|
||||
uiEncounter[2] = data;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -446,7 +446,7 @@ struct mob_wrathbone_coldwraithAI: public ScriptedAI
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
@@ -788,7 +788,7 @@ struct mob_deathwhisper_shadowcasterAI: public ScriptedAI
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
@@ -839,7 +839,7 @@ struct mob_deathwhisper_necrolyteAI: public ScriptedAI
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
@@ -931,7 +931,7 @@ struct mob_geist_ambusherAI: public ScriptedAI
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -126,11 +126,11 @@ enum eFloppy
|
||||
NPC_HUNGRY_WORG = 26586,
|
||||
NPC_RAVENOUS_WORG = 26590, //RWORG
|
||||
NPC_EMILY = 26588,
|
||||
|
||||
|
||||
QUEST_PERILOUS_ADVENTURE = 12027,
|
||||
|
||||
|
||||
SPELL_MRFLOPPY = 47184, //vehicle aura
|
||||
|
||||
|
||||
SAY_WORGHAGGRO1 = -1800001, //Um... I think one of those wolves is back...
|
||||
SAY_WORGHAGGRO2 = -1800002, //He's going for Mr. Floppy!
|
||||
SAY_WORGRAGGRO3 = -1800003, //Oh, no! Look, it's another wolf, and it's a biiiiiig one!
|
||||
@@ -304,7 +304,7 @@ bool QuestAccept_npc_emily(Player* pPlayer, Creature* pCreature, Quest const* qu
|
||||
{
|
||||
Mrfloppy->GetMotionMaster()->MoveFollow(pCreature, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
|
||||
}
|
||||
|
||||
|
||||
if (npc_escortAI* pEscortAI = CAST_AI(npc_emilyAI, (pCreature->AI())))
|
||||
pEscortAI->Start(true, false, pPlayer->GetGUID());
|
||||
}
|
||||
@@ -394,7 +394,7 @@ struct npc_outhouse_bunnyAI : public ScriptedAI
|
||||
if (uiType == 1)
|
||||
m_gender = uiData;
|
||||
}
|
||||
|
||||
|
||||
void SpellHit(Unit* pCaster, const SpellEntry* pSpell)
|
||||
{
|
||||
if (pSpell->Id == SPELL_OUTHOUSE_GROANS)
|
||||
@@ -475,10 +475,10 @@ struct npc_amberpine_woodsmanAI : public ScriptedAI
|
||||
{
|
||||
m_uiTimer = 0;
|
||||
m_uiPhase = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
{
|
||||
// call this each update tick?
|
||||
if (Creature* stag = me->FindNearestCreature(TALLHORN_STAG, 0.2f))
|
||||
{
|
||||
@@ -495,7 +495,7 @@ struct npc_amberpine_woodsmanAI : public ScriptedAI
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_LOOT);
|
||||
m_uiTimer = 3000;
|
||||
m_uiPhase = 2;
|
||||
break;
|
||||
break;
|
||||
case 2:
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H);
|
||||
m_uiTimer = 4000;
|
||||
@@ -506,8 +506,8 @@ struct npc_amberpine_woodsmanAI : public ScriptedAI
|
||||
else
|
||||
m_uiTimer -= uiDiff;
|
||||
}
|
||||
ScriptedAI::UpdateAI(uiDiff);
|
||||
|
||||
ScriptedAI::UpdateAI(uiDiff);
|
||||
|
||||
UpdateVictim();
|
||||
}
|
||||
};
|
||||
@@ -532,7 +532,7 @@ void AddSC_grizzly_hills()
|
||||
newscript->GetAI = &GetAI_npc_emily;
|
||||
newscript->pQuestAccept = &QuestAccept_npc_emily;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "npc_mrfloppy";
|
||||
newscript->GetAI = &GetAI_npc_mrfloppy;
|
||||
|
||||
@@ -192,7 +192,7 @@ struct boss_gal_darahAI : public ScriptedAI
|
||||
else
|
||||
{
|
||||
uiTransformationTimer -= diff;
|
||||
|
||||
|
||||
if (bStartOfTransformation)
|
||||
{
|
||||
bStartOfTransformation = false;
|
||||
@@ -258,7 +258,7 @@ struct boss_gal_darahAI : public ScriptedAI
|
||||
itr->getSource()->CompletedAchievement(achievWhatTheEck);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pInstance->SetData(DATA_GAL_DARAH_EVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ struct boss_slad_ranAI : public ScriptedAI
|
||||
DoScriptText(SAY_SUMMON_SNAKES,m_creature);
|
||||
uiPhase = 1;
|
||||
}
|
||||
|
||||
|
||||
if (uiPhase == 1 && HealthBelowPct(25))
|
||||
{
|
||||
DoScriptText(SAY_SUMMON_CONSTRICTORS,m_creature);
|
||||
|
||||
@@ -294,7 +294,7 @@ struct instance_gundrak : public ScriptedInstance
|
||||
if (data == DONE)
|
||||
SaveToDB();
|
||||
}
|
||||
|
||||
|
||||
void SetData64(uint32 type, uint64 data)
|
||||
{
|
||||
if (type == DATA_RUIN_DWELLER_DIED)
|
||||
|
||||
@@ -191,7 +191,7 @@ struct npc_argent_valiantAI : public ScriptedAI
|
||||
pCreature->GetMotionMaster()->MovePoint(0,8599.258,963.951,547.553);
|
||||
pCreature->setFaction(35); //wrong faction in db?
|
||||
}
|
||||
|
||||
|
||||
uint32 uiChargeTimer;
|
||||
uint32 uiShieldBreakerTimer;
|
||||
|
||||
@@ -200,7 +200,7 @@ struct npc_argent_valiantAI : public ScriptedAI
|
||||
uiChargeTimer = 7000;
|
||||
uiShieldBreakerTimer = 10000;
|
||||
}
|
||||
|
||||
|
||||
void MovementInform(uint32 uiType, uint32 uiId)
|
||||
{
|
||||
if (uiType != POINT_MOTION_TYPE)
|
||||
@@ -220,7 +220,7 @@ struct npc_argent_valiantAI : public ScriptedAI
|
||||
m_creature->SetHomePosition(m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ(),m_creature->GetOrientation());
|
||||
EnterEvadeMode();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
@@ -238,7 +238,7 @@ struct npc_argent_valiantAI : public ScriptedAI
|
||||
DoCastVictim(SPELL_SHIELD_BREAKER);
|
||||
uiShieldBreakerTimer = 10000;
|
||||
} else uiShieldBreakerTimer -= uiDiff;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -41,7 +41,7 @@ enum Spells
|
||||
SPELL_LOCUST_SWARM_10 = 28785,
|
||||
SPELL_LOCUST_SWARM_25 = 54021,
|
||||
SPELL_SUMMON_CORPSE_SCARABS_PLR = 29105, // This spawns 5 corpse scarabs on top of player
|
||||
SPELL_SUMMON_CORPSE_SCARABS_MOB = 28864, // This spawns 10 corpse scarabs on top of dead guards
|
||||
SPELL_SUMMON_CORPSE_SCARABS_MOB = 28864, // This spawns 10 corpse scarabs on top of dead guards
|
||||
SPELL_BERSERK = 27680,
|
||||
};
|
||||
|
||||
@@ -61,7 +61,7 @@ struct boss_anubrekhanAI : public BossAI
|
||||
{
|
||||
Position pos;
|
||||
|
||||
// respawn guard using home position,
|
||||
// respawn guard using home position,
|
||||
// otherwise, after a wipe, they respawn where boss was at wipe moment.
|
||||
pos = m_creature->GetHomePosition();
|
||||
pos.m_positionY -= 10.0f;
|
||||
|
||||
@@ -151,7 +151,7 @@ struct boss_faerlinaAI : public BossAI
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
|
||||
void SpellHit(Unit* caster, const SpellEntry *spell)
|
||||
{
|
||||
if (spell->Id == SPELL_WIDOWS_EMBRACE || spell->Id == H_SPELL_WIDOWS_EMBRACE)
|
||||
@@ -193,7 +193,7 @@ struct mob_faerlina_addAI : public ScriptedAI
|
||||
if (Creature *pFaerlina = pInstance->instance->GetCreature(pInstance->GetData64(DATA_FAERLINA)))
|
||||
DoCast(pFaerlina, SPELL_WIDOWS_EMBRACE);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_mob_faerlina_add(Creature* pCreature)
|
||||
|
||||
@@ -105,7 +105,7 @@ struct boss_four_horsemenAI : public BossAI
|
||||
DoEncounterAction(NULL, false, true, false);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(DATA_HORSEMEN0 + id, NOT_STARTED);
|
||||
instance->SetData(DATA_HORSEMEN0 + id, NOT_STARTED);
|
||||
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
uiEventStarterGUID = 0;
|
||||
@@ -279,7 +279,7 @@ struct boss_four_horsemenAI : public BossAI
|
||||
summons.DespawnAll();
|
||||
|
||||
if (instance)
|
||||
instance->SetData(DATA_HORSEMEN0 + id, DONE);
|
||||
instance->SetData(DATA_HORSEMEN0 + id, DONE);
|
||||
|
||||
if (instance && DoEncounterAction(NULL, false, false, true))
|
||||
{
|
||||
|
||||
@@ -49,7 +49,7 @@ enum Creatures
|
||||
};
|
||||
|
||||
struct Waves { uint32 entry, time, mode; };
|
||||
// wave setups are not the same in heroic and normal difficulty,
|
||||
// wave setups are not the same in heroic and normal difficulty,
|
||||
// mode is 0 only normal, 1 both and 2 only heroic
|
||||
// but this is handled in DoGothikSummon function
|
||||
const Waves waves[] =
|
||||
@@ -358,15 +358,15 @@ struct boss_gothikAI : public BossAI
|
||||
|
||||
switch(spell->Id)
|
||||
{
|
||||
case SPELL_INFORM_DEAD_TRAINEE:
|
||||
DoSummon(MOB_DEAD_TRAINEE, pTarget, 0);
|
||||
case SPELL_INFORM_DEAD_TRAINEE:
|
||||
DoSummon(MOB_DEAD_TRAINEE, pTarget, 0);
|
||||
break;
|
||||
case SPELL_INFORM_DEAD_KNIGHT:
|
||||
DoSummon(MOB_DEAD_KNIGHT, pTarget, 0);
|
||||
case SPELL_INFORM_DEAD_KNIGHT:
|
||||
DoSummon(MOB_DEAD_KNIGHT, pTarget, 0);
|
||||
break;
|
||||
case SPELL_INFORM_DEAD_RIDER:
|
||||
case SPELL_INFORM_DEAD_RIDER:
|
||||
DoSummon(MOB_DEAD_RIDER, pTarget, 1.0f);
|
||||
DoSummon(MOB_DEAD_HORSE, pTarget, 1.0f);
|
||||
DoSummon(MOB_DEAD_HORSE, pTarget, 1.0f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -488,7 +488,7 @@ struct mob_gothik_minionAI : public CombatAI
|
||||
bool liveSide;
|
||||
bool gateClose;
|
||||
|
||||
bool isOnSameSide(const Unit *pWho)
|
||||
bool isOnSameSide(const Unit *pWho)
|
||||
{
|
||||
return (liveSide == IN_LIVE_SIDE(pWho));
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ enum Spells
|
||||
SPELL_BERSERK = 28498,
|
||||
|
||||
//spells for chained
|
||||
//warlock
|
||||
//warlock
|
||||
SPELL_CURSE_OF_AGONY = 47864,
|
||||
SPELL_SHADOW_BOLT = 47809,
|
||||
//shaman
|
||||
@@ -148,7 +148,7 @@ const Position Pos[12] =
|
||||
//creatures in corners
|
||||
//Unstoppable Abominations
|
||||
#define MAX_ABOMINATIONS 21
|
||||
const Position PosAbominations[MAX_ABOMINATIONS] =
|
||||
const Position PosAbominations[MAX_ABOMINATIONS] =
|
||||
{
|
||||
{3755.52, -5155.22, 143.480, 2.0},
|
||||
{3744.35, -5164.03, 143.590, 2.00},
|
||||
@@ -175,7 +175,7 @@ const Position PosAbominations[MAX_ABOMINATIONS] =
|
||||
|
||||
//Soldiers of the Frozen Wastes
|
||||
#define MAX_WASTES 49
|
||||
const Position PosWastes[MAX_WASTES] =
|
||||
const Position PosWastes[MAX_WASTES] =
|
||||
{
|
||||
{3754.41, -5147.24, 143.204, 2.0},
|
||||
{3754.68, -5156.17, 143.418, 2.0},
|
||||
@@ -230,7 +230,7 @@ const Position PosWastes[MAX_WASTES] =
|
||||
|
||||
//Soul Weavers
|
||||
#define MAX_WEAVERS 7
|
||||
const Position PosWeavers[MAX_WEAVERS] =
|
||||
const Position PosWeavers[MAX_WEAVERS] =
|
||||
{
|
||||
{3752.45, -5168.35, 143.562, 1.6094},
|
||||
{3772.2, -5070.04, 143.329, 1.93686},
|
||||
@@ -252,9 +252,9 @@ struct NotCharmedTargetSelector : public std::unary_function<Unit *, bool> {
|
||||
|
||||
struct boss_kelthuzadAI : public BossAI
|
||||
{
|
||||
boss_kelthuzadAI(Creature* c) : BossAI(c, BOSS_KELTHUZAD), spawns(c)
|
||||
boss_kelthuzadAI(Creature* c) : BossAI(c, BOSS_KELTHUZAD), spawns(c)
|
||||
{
|
||||
uiFaction = m_creature->getFaction();
|
||||
uiFaction = m_creature->getFaction();
|
||||
}
|
||||
|
||||
uint32 Phase;
|
||||
@@ -287,7 +287,7 @@ struct boss_kelthuzadAI : public BossAI
|
||||
if (Player* charmed = Unit::GetPlayer((*itr).first))
|
||||
charmed->SetFloatValue(OBJECT_FIELD_SCALE_X, (*itr).second);
|
||||
}
|
||||
|
||||
|
||||
chained.clear();
|
||||
spawns.DespawnAll();
|
||||
|
||||
@@ -406,7 +406,7 @@ struct boss_kelthuzadAI : public BossAI
|
||||
events.PopEvent();
|
||||
break;
|
||||
case EVENT_TRIGGER:
|
||||
if (GameObject *pKTTrigger = m_creature->GetMap()->GetGameObject(KTTriggerGUID))
|
||||
if (GameObject *pKTTrigger = m_creature->GetMap()->GetGameObject(KTTriggerGUID))
|
||||
pKTTrigger->SetPhaseMask(2, true);
|
||||
events.PopEvent();
|
||||
break;
|
||||
@@ -657,7 +657,7 @@ bool AreaTrigger_at_kelthuzad_center(Player* pPlayer, const AreaTriggerEntry *at
|
||||
if (trigger->getLootState() == GO_READY)
|
||||
trigger->UseDoorOrButton();
|
||||
|
||||
// Note: summon must be done by trigger and not by KT.
|
||||
// Note: summon must be done by trigger and not by KT.
|
||||
// Otherwise, they attack immediately as KT is in combat.
|
||||
for (uint8 i = 0; i <= MAX_ABOMINATIONS; ++i)
|
||||
{
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#include "ScriptedPch.h"
|
||||
#include "naxxramas.h"
|
||||
|
||||
enum Spells
|
||||
enum Spells
|
||||
{
|
||||
SPELL_WEB_WRAP = 28622,
|
||||
SPELL_WEB_SPRAY_10 = 29484,
|
||||
|
||||
@@ -43,7 +43,7 @@ enum Events
|
||||
EVENT_HATEFUL,
|
||||
EVENT_SLIME
|
||||
};
|
||||
|
||||
|
||||
#define ACHIEVEMENT_MAKE_QUICK_WERK_OF_HIM RAID_MODE(1856, 1857)
|
||||
#define MAX_ENCOUNTER_TIME 3 * 60 * 1000
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ struct boss_thaddiusAI : public BossAI
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->hasUnitState(UNIT_STAT_CASTING))
|
||||
@@ -250,7 +250,7 @@ CreatureAI* GetAI_boss_thaddius(Creature* pCreature)
|
||||
|
||||
struct mob_stalaggAI : public ScriptedAI
|
||||
{
|
||||
mob_stalaggAI(Creature *c) : ScriptedAI(c)
|
||||
mob_stalaggAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
@@ -301,7 +301,7 @@ struct mob_stalaggAI : public ScriptedAI
|
||||
|
||||
// reset aggro to be sure that feugen will not follow the jump
|
||||
pFeugen->getThreatManager().modifyThreatPercent(pFeugenVictim, -100);
|
||||
pFeugenVictim->JumpTo(m_creature, 0.3f);
|
||||
pFeugenVictim->JumpTo(m_creature, 0.3f);
|
||||
|
||||
m_creature->getThreatManager().modifyThreatPercent(pStalaggVictim, -100);
|
||||
pStalaggVictim->JumpTo(pFeugen, 0.3f);
|
||||
@@ -329,7 +329,7 @@ CreatureAI* GetAI_mob_stalagg(Creature* pCreature)
|
||||
|
||||
struct mob_feugenAI : public ScriptedAI
|
||||
{
|
||||
mob_feugenAI(Creature *c) : ScriptedAI(c)
|
||||
mob_feugenAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ struct instance_naxxramas : public InstanceData
|
||||
|
||||
uint64 uiKelthuzad;
|
||||
uint64 uiKelthuzadTrigger;
|
||||
uint64 uiPortals[4];
|
||||
uint64 uiPortals[4];
|
||||
|
||||
time_t minHorsemenDiedTime;
|
||||
time_t maxHorsemenDiedTime;
|
||||
@@ -176,9 +176,9 @@ struct instance_naxxramas : public InstanceData
|
||||
case GO_HORSEMEN_CHEST_HERO: HorsemenChestGUID = add ? pGo->GetGUID() : 0; break;
|
||||
case GO_KELTHUZAD_PORTAL01: uiPortals[0] = pGo->GetGUID(); break;
|
||||
case GO_KELTHUZAD_PORTAL02: uiPortals[1] = pGo->GetGUID(); break;
|
||||
case GO_KELTHUZAD_PORTAL03: uiPortals[2] = pGo->GetGUID(); break;
|
||||
case GO_KELTHUZAD_PORTAL04: uiPortals[3] = pGo->GetGUID(); break;
|
||||
case GO_KELTHUZAD_TRIGGER: uiKelthuzadTrigger = pGo->GetGUID(); break;
|
||||
case GO_KELTHUZAD_PORTAL03: uiPortals[2] = pGo->GetGUID(); break;
|
||||
case GO_KELTHUZAD_PORTAL04: uiPortals[3] = pGo->GetGUID(); break;
|
||||
case GO_KELTHUZAD_TRIGGER: uiKelthuzadTrigger = pGo->GetGUID(); break;
|
||||
}
|
||||
|
||||
AddDoor(pGo, add);
|
||||
@@ -211,7 +211,7 @@ struct instance_naxxramas : public InstanceData
|
||||
|
||||
if (minHorsemenDiedTime == 0)
|
||||
minHorsemenDiedTime = now;
|
||||
|
||||
|
||||
maxHorsemenDiedTime = now;
|
||||
}
|
||||
break;
|
||||
@@ -297,7 +297,7 @@ struct instance_naxxramas : public InstanceData
|
||||
case 7601: // Criteria for achievement 2177: And They Would All Go Down Together 15sec of each other 25-man
|
||||
if (Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_25MAN_NORMAL && (maxHorsemenDiedTime - minHorsemenDiedTime) < 15)
|
||||
return true;
|
||||
return false;
|
||||
return false;
|
||||
case 13233: // Criteria for achievement 2186: The Immortal (25-man)
|
||||
// TODO.
|
||||
break;
|
||||
|
||||
@@ -66,7 +66,7 @@ struct boss_magus_telestraAI : public ScriptedAI
|
||||
uint64 uiFireMagusGUID;
|
||||
uint64 uiFrostMagusGUID;
|
||||
uint64 uiArcaneMagusGUID;
|
||||
|
||||
|
||||
bool bFireMagusDead;
|
||||
bool bFrostMagusDead;
|
||||
bool bArcaneMagusDead;
|
||||
@@ -98,7 +98,7 @@ struct boss_magus_telestraAI : public ScriptedAI
|
||||
|
||||
uiAchievementProgress = 0;
|
||||
uiAchievementTimer = 0;
|
||||
|
||||
|
||||
bIsAchievementTimerRunning = false;
|
||||
bIsWaitingToAppear = false;
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ struct boss_drakosAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
uint32 uiMagicPullTimer ;
|
||||
uint32 uiStompTimer ;
|
||||
uint32 uiBombSummonTimer ;
|
||||
@@ -73,11 +73,11 @@ struct boss_drakosAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_DRAKOS_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_DRAKOS_EVENT, IN_PROGRESS);
|
||||
}
|
||||
@@ -147,7 +147,7 @@ struct boss_drakosAI : public ScriptedAI
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_DRAKOS_EVENT, DONE);
|
||||
}
|
||||
|
||||
@@ -88,13 +88,13 @@ struct boss_eregosAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_EREGOS_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_EREGOS_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void AttackStart(Unit* who) {}
|
||||
void MoveInLineOfSight(Unit* who) {}
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -105,7 +105,7 @@ struct boss_eregosAI : public ScriptedAI
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
if (pInstance)
|
||||
|
||||
@@ -51,7 +51,7 @@ struct boss_uromAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -62,11 +62,11 @@ struct boss_uromAI : public ScriptedAI
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_UROM_EVENT, IN_PROGRESS);
|
||||
}
|
||||
|
||||
|
||||
void AttackStart(Unit* who) {}
|
||||
void MoveInLineOfSight(Unit* who) {}
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -80,7 +80,7 @@ struct boss_uromAI : public ScriptedAI
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_UROM_EVENT, DONE);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ struct boss_varosAI : public ScriptedAI
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
void Reset()
|
||||
@@ -60,7 +60,7 @@ struct boss_varosAI : public ScriptedAI
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_VAROS_EVENT, IN_PROGRESS);
|
||||
}
|
||||
@@ -77,7 +77,7 @@ struct boss_varosAI : public ScriptedAI
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_VAROS_EVENT, DONE);
|
||||
}
|
||||
|
||||
@@ -28,15 +28,15 @@
|
||||
struct instance_oculus : public ScriptedInstance
|
||||
{
|
||||
instance_oculus(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
|
||||
|
||||
|
||||
uint64 uiDrakos;
|
||||
uint64 uiVaros;
|
||||
uint64 uiUrom;
|
||||
uint64 uiEregos;
|
||||
|
||||
|
||||
uint8 m_auiEncounter[MAX_ENCOUNTER];
|
||||
std::string str_data;
|
||||
|
||||
|
||||
void OnCreatureCreate(Creature* pCreature, bool add)
|
||||
{
|
||||
switch(pCreature->GetEntry())
|
||||
@@ -55,7 +55,7 @@ struct instance_oculus : public ScriptedInstance
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SetData(uint32 type, uint32 data)
|
||||
{
|
||||
switch(type)
|
||||
@@ -77,7 +77,7 @@ struct instance_oculus : public ScriptedInstance
|
||||
if (data == DONE)
|
||||
SaveToDB();
|
||||
}
|
||||
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
switch(type)
|
||||
@@ -90,7 +90,7 @@ struct instance_oculus : public ScriptedInstance
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
uint64 GetData64(uint32 identifier)
|
||||
{
|
||||
switch(identifier)
|
||||
@@ -104,7 +104,7 @@ struct instance_oculus : public ScriptedInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
std::string GetSaveData()
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
@@ -165,7 +165,7 @@ bool GossipSelect_npc_oculus_drake(Player* pPlayer, Creature* pCreature, uint32
|
||||
void AddSC_oculus()
|
||||
{
|
||||
Script *newscript;
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "npc_oculus_drake";
|
||||
newscript->pGossipHello = &GossipHello_npc_oculus_drake;
|
||||
|
||||
@@ -296,7 +296,7 @@ struct boss_sartharionAI : public ScriptedAI
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_DUO,H_ACHIEV_TWILIGHT_DUO));
|
||||
else if (achievProgress == 3)
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_ZONE,H_ACHIEV_TWILIGHT_ZONE));
|
||||
|
||||
|
||||
pInstance->SetData(TYPE_SARTHARION_EVENT, DONE);
|
||||
}
|
||||
}
|
||||
@@ -695,20 +695,20 @@ struct dummy_dragonAI : public ScriptedAI
|
||||
//using a grid search here seem to be more efficient than caching all four guids
|
||||
//in instance script and calculate range to each.
|
||||
GameObject* pPortal = m_creature->FindNearestGameObject(GO_TWILIGHT_PORTAL,50.0f);
|
||||
if (GameObject* TwilightPortal = GameObject::GetGameObject((*m_creature), pInstance->GetData64(GO_TWILIGHT_PORTAL)))
|
||||
TwilightPortal->SetGoState(GO_STATE_ACTIVE);
|
||||
if (GameObject* TwilightPortal = GameObject::GetGameObject((*m_creature), pInstance->GetData64(GO_TWILIGHT_PORTAL)))
|
||||
TwilightPortal->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
switch(m_creature->GetEntry())
|
||||
{
|
||||
case NPC_TENEBRON:
|
||||
{
|
||||
iTextId = WHISPER_HATCH_EGGS;
|
||||
if (pInstance && pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
|
||||
if (pInstance && pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
|
||||
m_creature->SummonCreature(NPC_TWILIGHT_EGG, TwilightEggs[0].x, TwilightEggs[0].y, TwilightEggs[0].z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
|
||||
else
|
||||
m_creature->SummonCreature(NPC_TWILIGHT_EGG, TwilightEggsSarth[0].x, TwilightEggsSarth[0].y, TwilightEggsSarth[0].z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
case NPC_SHADRON:
|
||||
{
|
||||
iTextId = WHISPER_OPEN_PORTAL;
|
||||
@@ -721,7 +721,7 @@ struct dummy_dragonAI : public ScriptedAI
|
||||
}
|
||||
case NPC_VESPERON:
|
||||
{
|
||||
if (pInstance && !pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
|
||||
if (pInstance && !pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
|
||||
Creature* Acolyte = m_creature->SummonCreature(NPC_ACOLYTE_OF_VESPERON, AcolyteofVesperon.x, AcolyteofVesperon.y , AcolyteofVesperon.z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
|
||||
else
|
||||
Creature* Acolyte = m_creature->SummonCreature(NPC_ACOLYTE_OF_VESPERON, AcolyteofVesperon2.x, AcolyteofVesperon2.y , AcolyteofVesperon2.z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
|
||||
@@ -858,7 +858,7 @@ struct mob_tenebronAI : public dummy_dragonAI
|
||||
OpenPortal();
|
||||
m_uiHatchEggTimer = 30000;
|
||||
}
|
||||
else
|
||||
else
|
||||
m_uiHatchEggTimer -= uiDiff;
|
||||
|
||||
// shadow breath
|
||||
@@ -1027,7 +1027,7 @@ struct mob_vesperonAI : public dummy_dragonAI
|
||||
if (m_uiAcolyteVesperonTimer <= uiDiff)
|
||||
{
|
||||
OpenPortal();
|
||||
DoCast(m_creature->getVictim(), SPELL_TWILIGHT_TORMENT_VESP);
|
||||
DoCast(m_creature->getVictim(), SPELL_TWILIGHT_TORMENT_VESP);
|
||||
m_uiAcolyteVesperonTimer = urand(60000,70000);
|
||||
}
|
||||
else
|
||||
@@ -1080,10 +1080,10 @@ struct mob_acolyte_of_shadronAI : public ScriptedAI
|
||||
pSartharion->CastSpell(m_creature, SPELL_GIFT_OF_TWILIGTH_SAR, true);
|
||||
else
|
||||
{
|
||||
pShadron->CastSpell(m_creature, SPELL_GIFT_OF_TWILIGTH_SHA,true);
|
||||
pShadron->CastSpell(m_creature, SPELL_GIFT_OF_TWILIGTH_SHA,true);
|
||||
pShadron->AddThreat(pTarget, 100.0f);
|
||||
AttackStart(pShadron->getVictim());
|
||||
}
|
||||
}
|
||||
}
|
||||
m_creature->AddAura(SPELL_TWILIGHT_SHIFT_ENTER,m_creature);
|
||||
}
|
||||
@@ -1161,7 +1161,7 @@ struct mob_acolyte_of_vesperonAI : public ScriptedAI
|
||||
{
|
||||
if (pInstance)
|
||||
{
|
||||
m_creature->AddAura(SPELL_TWILIGHT_SHIFT_ENTER,m_creature);
|
||||
m_creature->AddAura(SPELL_TWILIGHT_SHIFT_ENTER,m_creature);
|
||||
}
|
||||
DoCast(m_creature, SPELL_TWILIGHT_TORMENT_VESP_ACO);
|
||||
}
|
||||
@@ -1175,7 +1175,7 @@ struct mob_acolyte_of_vesperonAI : public ScriptedAI
|
||||
|
||||
if (pVesperon && pVesperon->isAlive() && pVesperon->HasAura(SPELL_TWILIGHT_TORMENT_VESP))
|
||||
pVesperon->RemoveAurasDueToSpell(SPELL_TWILIGHT_TORMENT_VESP);
|
||||
|
||||
|
||||
Map *map = m_creature->GetMap();
|
||||
if (map->IsDungeon())
|
||||
{
|
||||
@@ -1194,7 +1194,7 @@ struct mob_acolyte_of_vesperonAI : public ScriptedAI
|
||||
i->getSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT_ENTER);
|
||||
}
|
||||
if (i->getSource()->isAlive() && i->getSource()->HasAura(SPELL_TWILIGHT_TORMENT_VESP,0) && !i->getSource()->getVictim())
|
||||
i->getSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT);
|
||||
i->getSource()->RemoveAurasDueToSpell(SPELL_TWILIGHT_SHIFT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1221,8 +1221,8 @@ CreatureAI* GetAI_mob_acolyte_of_vesperon(Creature* pCreature)
|
||||
|
||||
struct mob_twilight_eggsAI : public Scripted_NoMovementAI
|
||||
{
|
||||
mob_twilight_eggsAI(Creature* pCreature) : Scripted_NoMovementAI(pCreature)
|
||||
{
|
||||
mob_twilight_eggsAI(Creature* pCreature) : Scripted_NoMovementAI(pCreature)
|
||||
{
|
||||
pInstance = pCreature->GetInstanceData();
|
||||
}
|
||||
uint32 m_uiFadeArmorTimer;
|
||||
@@ -1239,7 +1239,7 @@ struct mob_twilight_eggsAI : public Scripted_NoMovementAI
|
||||
{
|
||||
if (!pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
|
||||
m_creature->SummonCreature(NPC_TWILIGHT_WHELP, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
|
||||
else
|
||||
else
|
||||
m_creature->SummonCreature(NPC_SHARTHARION_TWILIGHT_WHELP, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
|
||||
m_creature->DealDamage(m_creature, m_creature->GetHealth());
|
||||
}
|
||||
@@ -1248,9 +1248,9 @@ struct mob_twilight_eggsAI : public Scripted_NoMovementAI
|
||||
if (m_uiHatchEggTimer <= uiDiff)
|
||||
{
|
||||
SpawnWhelps();
|
||||
}
|
||||
}
|
||||
else
|
||||
m_uiHatchEggTimer -= uiDiff;
|
||||
m_uiHatchEggTimer -= uiDiff;
|
||||
}
|
||||
void AttackStart(Unit* pWho) {}
|
||||
void MoveInLineOfSight(Unit* pWho) {}
|
||||
|
||||
@@ -28,11 +28,11 @@ enum Spells
|
||||
H_SPELL_BALL_LIGHTNING = 59800,
|
||||
SPELL_STATIC_OVERLOAD = 52658,
|
||||
H_SPELL_STATIC_OVERLOAD = 59795,
|
||||
|
||||
|
||||
SPELL_DISPERSE = 52770,
|
||||
SPELL_SUMMON_SPARK = 52746,
|
||||
SPELL_SPARK_DESPAWN = 52776,
|
||||
|
||||
|
||||
//Spark of Ionar
|
||||
SPELL_SPARK_VISUAL_TRIGGER = 52667,
|
||||
H_SPELL_SPARK_VISUAL_TRIGGER = 59833
|
||||
@@ -78,7 +78,7 @@ struct boss_ionarAI : public ScriptedAI
|
||||
|
||||
bool bIsSplitPhase;
|
||||
bool bHasDispersed;
|
||||
|
||||
|
||||
uint32 uiSplitTimer;
|
||||
|
||||
uint32 uiStaticOverloadTimer;
|
||||
@@ -92,7 +92,7 @@ struct boss_ionarAI : public ScriptedAI
|
||||
|
||||
bIsSplitPhase = true;
|
||||
bHasDispersed = false;
|
||||
|
||||
|
||||
uiSplitTimer = 25*IN_MILISECONDS;
|
||||
|
||||
uiStaticOverloadTimer = urand(5*IN_MILISECONDS, 6*IN_MILISECONDS);
|
||||
|
||||
@@ -152,7 +152,7 @@ struct mob_tribuna_controllerAI : public ScriptedAI
|
||||
pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_ABEDNEUM),false);
|
||||
pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_SKY_FLOOR),false);
|
||||
}
|
||||
|
||||
|
||||
KaddrakGUIDList.clear();
|
||||
}
|
||||
|
||||
@@ -538,7 +538,7 @@ struct npc_brann_hosAI : public npc_escortAI
|
||||
if (!bHasBeenDamaged)
|
||||
pInstance->DoCompleteAchievement(ACHIEV_BRANN_SPANKIN_NEW);
|
||||
}
|
||||
|
||||
|
||||
JumpToNextStep(5500);
|
||||
break;
|
||||
case 30:
|
||||
@@ -663,7 +663,7 @@ struct npc_brann_hosAI : public npc_escortAI
|
||||
{
|
||||
DoScriptText(SAY_LOW_HEALTH, m_creature);
|
||||
bIsLowHP = true;
|
||||
}
|
||||
}
|
||||
else if (bIsLowHP && !HealthBelowPct(30))
|
||||
bIsLowHP = false;
|
||||
|
||||
|
||||
@@ -234,24 +234,24 @@ struct boss_algalonAI : public ScriptedAI
|
||||
{
|
||||
switch(uiStep)
|
||||
{
|
||||
case 1:
|
||||
DoScriptText(SAY_SUMMON_1, m_creature);
|
||||
case 1:
|
||||
DoScriptText(SAY_SUMMON_1, m_creature);
|
||||
JumpToNextStep(3000);
|
||||
break;
|
||||
case 2:
|
||||
DoScriptText(SAY_SUMMON_2, m_creature);
|
||||
break;
|
||||
case 2:
|
||||
DoScriptText(SAY_SUMMON_2, m_creature);
|
||||
JumpToNextStep(3000);
|
||||
break;
|
||||
case 3:
|
||||
DoScriptText(SAY_SUMMON_3, m_creature);
|
||||
break;
|
||||
case 3:
|
||||
DoScriptText(SAY_SUMMON_3, m_creature);
|
||||
JumpToNextStep(3000);
|
||||
break;
|
||||
case 4:
|
||||
DoScriptText(SAY_ENGADED_FOR_FIRTS_TIME, m_creature);
|
||||
break;
|
||||
case 4:
|
||||
DoScriptText(SAY_ENGADED_FOR_FIRTS_TIME, m_creature);
|
||||
JumpToNextStep(3000);
|
||||
break;
|
||||
case 5:
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
break;
|
||||
case 5:
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->SetReactState(REACT_AGGRESSIVE);
|
||||
Summon = true;
|
||||
break;
|
||||
|
||||
@@ -114,7 +114,7 @@ struct boss_kologarnAI : public BossAI
|
||||
// TODO: because we are using hack, he is stunned and cannot cast, so we use triggered for every spell
|
||||
switch(events.GetEvent())
|
||||
{
|
||||
case EVENT_NONE:
|
||||
case EVENT_NONE:
|
||||
break;
|
||||
case EVENT_SMASH:
|
||||
if(left && right)
|
||||
|
||||
@@ -267,7 +267,7 @@ struct boss_razorscaleAI : public BossAI
|
||||
const float y = -174.92;
|
||||
const float GroundLevel = m_creature->GetBaseMap()->GetHeight(x, y, MAX_HEIGHT);
|
||||
const float FlightHeight = GroundLevel + 4.0f; // TODO: Fly out of range of attacks (442 is sufficient height for this), minus ~(10*number of harpoon gun chains attached to Razorscale)
|
||||
|
||||
|
||||
if (Phase == 1) // Always flying during Phase 1
|
||||
IsFlying = true;
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ enum Yells
|
||||
|
||||
//#define VOID_ZONE_DMG_10 5000
|
||||
//#define VOID_ZONE_DMG_25 7500
|
||||
//#define VOID_ZONE_RADIUS
|
||||
//#define VOID_ZONE_RADIUS
|
||||
|
||||
|
||||
/************************************************
|
||||
@@ -174,7 +174,7 @@ struct boss_xt002_AI : public BossAI
|
||||
uint32 uiHeartPhaseTimer;
|
||||
uint32 uiSpawnAddTimer;
|
||||
uint32 uiEnrageTimer;
|
||||
|
||||
|
||||
bool searing_light_active;
|
||||
uint64 uiSearingLightTarget;
|
||||
|
||||
@@ -360,7 +360,7 @@ struct boss_xt002_AI : public BossAI
|
||||
case 3: m_creature->SummonCreature(NPC_XS013_SCRAPBOT, irand(UL_X - 3, UL_X + 3), irand(UL_Y - 3, UL_Y + 3), SPAWN_Z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Spawn 5 Scrapbots
|
||||
switch (rand() % 4)
|
||||
{
|
||||
@@ -399,7 +399,7 @@ struct boss_xt002_AI : public BossAI
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
|
||||
if (gravity_bomb_active)
|
||||
{
|
||||
if (uiGravityBombAuraTimer <= diff)
|
||||
@@ -437,7 +437,7 @@ struct boss_xt002_AI : public BossAI
|
||||
|
||||
//Summon the heart npc
|
||||
m_creature->SummonCreature(NPC_XT002_HEART, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ() + 7, 0, TEMPSUMMON_TIMED_DESPAWN, TIMER_HEART_PHASE);
|
||||
|
||||
|
||||
// Start "end of phase 2 timer"
|
||||
uiHeartPhaseTimer = TIMER_HEART_PHASE;
|
||||
|
||||
@@ -620,7 +620,7 @@ struct mob_pummellerAI : public ScriptedAI
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
if (m_creature->IsWithinMeleeRange(m_creature->getVictim()))
|
||||
{
|
||||
if (uiArcingSmashTimer <= diff)
|
||||
|
||||
@@ -320,7 +320,7 @@ struct instance_ulduar : public ScriptedInstance
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
{
|
||||
loadStream >> m_auiEncounter[i];
|
||||
|
||||
|
||||
if (m_auiEncounter[i] == IN_PROGRESS)
|
||||
m_auiEncounter[i] = NOT_STARTED;
|
||||
}
|
||||
|
||||
@@ -169,9 +169,9 @@ struct boss_ingvar_the_plundererAI : public ScriptedAI
|
||||
|
||||
void KilledUnit(Unit *victim)
|
||||
{
|
||||
if (bIsUndead)
|
||||
if (bIsUndead)
|
||||
DoScriptText(YELL_KILL_1,m_creature);
|
||||
else
|
||||
else
|
||||
DoScriptText(YELL_KILL_2,m_creature);
|
||||
}
|
||||
|
||||
@@ -351,7 +351,7 @@ struct mob_annhylde_the_callerAI : public ScriptedAI
|
||||
}
|
||||
uiResurectTimer = 3000;
|
||||
uiResurectPhase = 2;
|
||||
}
|
||||
}
|
||||
else if (uiResurectPhase == 2)
|
||||
{
|
||||
if (Creature* ingvar = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_INGVAR) : 0))
|
||||
|
||||
@@ -47,7 +47,7 @@ struct Locations
|
||||
{
|
||||
float x, y, z;
|
||||
};
|
||||
|
||||
|
||||
struct Locations moveLocs[]=
|
||||
{
|
||||
{261.6,-449.3,109.5},
|
||||
@@ -57,7 +57,7 @@ struct Locations moveLocs[]=
|
||||
{310.0,-453.4,109.5},
|
||||
{238.6,-460.7,109.5}
|
||||
};
|
||||
|
||||
|
||||
enum Phase
|
||||
{
|
||||
PHASE_FRENZIED_WORGEN,
|
||||
@@ -92,11 +92,11 @@ struct boss_palehoofAI : public ScriptedAI
|
||||
uiWhiteringRoarTimer = 10000;
|
||||
|
||||
m_creature->GetMotionMaster()->MoveTargetedHome();
|
||||
|
||||
|
||||
for(uint32 i=0;i<4;i++)
|
||||
DoneAdds[i]=false;
|
||||
AddCount=0;
|
||||
|
||||
|
||||
currentPhase=PHASE_NONE;
|
||||
|
||||
if (pInstance)
|
||||
@@ -125,15 +125,15 @@ struct boss_palehoofAI : public ScriptedAI
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
}
|
||||
|
||||
|
||||
void AttackStart(Unit* who)
|
||||
{
|
||||
if (!who)
|
||||
return;
|
||||
|
||||
|
||||
if (m_creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
return;
|
||||
|
||||
|
||||
if (m_creature->Attack(who, true))
|
||||
{
|
||||
m_creature->AddThreat(who, 0.0f);
|
||||
@@ -150,30 +150,30 @@ struct boss_palehoofAI : public ScriptedAI
|
||||
//Return since we have no target
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
|
||||
Creature* pTemp = Unit::GetCreature((*m_creature), pInstance ? pInstance->GetData64(DATA_MOB_ORB) : 0);
|
||||
if (pTemp && pTemp->isAlive())
|
||||
pTemp->DisappearAndDie();
|
||||
|
||||
|
||||
if (uiArcingSmashTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, SPELL_ARCING_SMASH);
|
||||
uiArcingSmashTimer = urand(13000,17000);
|
||||
} else uiArcingSmashTimer -= diff;
|
||||
|
||||
|
||||
if (uiImpaleTimer <= diff)
|
||||
{
|
||||
if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, DUNGEON_MODE(SPELL_IMPALE, H_SPELL_IMPALE));
|
||||
uiImpaleTimer = urand(8000,12000);
|
||||
} else uiImpaleTimer -= diff;
|
||||
|
||||
|
||||
if (uiWhiteringRoarTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, DUNGEON_MODE(SPELL_WITHERING_ROAR, H_SPELL_WITHERING_ROAR));
|
||||
uiWhiteringRoarTimer = urand(8000,12000);
|
||||
} else uiWhiteringRoarTimer -= diff;
|
||||
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ struct boss_palehoofAI : public ScriptedAI
|
||||
}
|
||||
currentPhase = move;
|
||||
}
|
||||
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NOT_ATTACKABLE_1|UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
@@ -272,7 +272,7 @@ struct mob_ravenous_furbolgAI : public ScriptedAI
|
||||
uiTerrifyingRoarTimer = 15000;
|
||||
|
||||
m_creature->GetMotionMaster()->MoveTargetedHome();
|
||||
|
||||
|
||||
if (pInstance)
|
||||
if(pInstance->GetData(DATA_GORTOK_PALEHOOF_EVENT)==IN_PROGRESS)
|
||||
{
|
||||
@@ -335,7 +335,7 @@ struct mob_ravenous_furbolgAI : public ScriptedAI
|
||||
CAST_AI(boss_palehoofAI, pPalehoof->AI())->NextPhase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NOT_ATTACKABLE_1|UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
@@ -378,7 +378,7 @@ struct mob_frenzied_worgenAI : public ScriptedAI
|
||||
uint32 uiEnrage2Timer = 10000;
|
||||
|
||||
m_creature->GetMotionMaster()->MoveTargetedHome();
|
||||
|
||||
|
||||
if (pInstance)
|
||||
if(pInstance->GetData(DATA_GORTOK_PALEHOOF_EVENT)==IN_PROGRESS)
|
||||
{
|
||||
@@ -443,7 +443,7 @@ struct mob_frenzied_worgenAI : public ScriptedAI
|
||||
CAST_AI(boss_palehoofAI, pPalehoof->AI())->NextPhase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NOT_ATTACKABLE_1|UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
@@ -487,7 +487,7 @@ struct mob_ferocious_rhinoAI : public ScriptedAI
|
||||
uiGrievousWoundTimer = 20000;
|
||||
|
||||
m_creature->GetMotionMaster()->MoveTargetedHome();
|
||||
|
||||
|
||||
if (pInstance)
|
||||
if(pInstance->GetData(DATA_GORTOK_PALEHOOF_EVENT)==IN_PROGRESS)
|
||||
{
|
||||
@@ -551,7 +551,7 @@ struct mob_ferocious_rhinoAI : public ScriptedAI
|
||||
CAST_AI(boss_palehoofAI, pPalehoof->AI())->NextPhase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NOT_ATTACKABLE_1|UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
@@ -600,7 +600,7 @@ struct mob_massive_jormungarAI : public ScriptedAI
|
||||
uiPoisonBreathTimer = 10000;
|
||||
|
||||
m_creature->GetMotionMaster()->MoveTargetedHome();
|
||||
|
||||
|
||||
if (pInstance)
|
||||
if(pInstance->GetData(DATA_GORTOK_PALEHOOF_EVENT) == IN_PROGRESS)
|
||||
{
|
||||
@@ -665,7 +665,7 @@ struct mob_massive_jormungarAI : public ScriptedAI
|
||||
CAST_AI(boss_palehoofAI,pPalehoof->AI())->NextPhase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NOT_ATTACKABLE_1|UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
@@ -726,7 +726,7 @@ struct mob_palehoof_orbAI : public ScriptedAI
|
||||
pNext->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
pNext->SetInCombatWithZone();
|
||||
pNext->Attack(pNext->SelectNearestTarget(100),true);
|
||||
|
||||
|
||||
}
|
||||
currentPhase=PHASE_NONE;
|
||||
}
|
||||
@@ -809,12 +809,12 @@ void AddSC_boss_palehoof()
|
||||
newscript->GetAI = &GetAI_mob_massive_jormungar;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "mob_palehoof_orb";
|
||||
newscript->GetAI = &GetAI_mob_palehoof_orb;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "go_palehoof_sphere";
|
||||
|
||||
@@ -186,7 +186,7 @@ struct boss_svalaAI : public ScriptedAI
|
||||
uiArthasGUID = 0;
|
||||
Phase = FINISHED;
|
||||
}
|
||||
else
|
||||
else
|
||||
Reset();
|
||||
break;
|
||||
}
|
||||
@@ -247,7 +247,7 @@ struct boss_svala_sorrowgraveAI : public ScriptedAI
|
||||
uiCallFlamesTimer = 10*IN_MILISECONDS;
|
||||
uiRitualOfSwordTimer = 20*IN_MILISECONDS;
|
||||
uiSacrificeTimer = 8*IN_MILISECONDS;
|
||||
|
||||
|
||||
bSacrificed = false;
|
||||
|
||||
Phase = NORMAL;
|
||||
@@ -320,7 +320,7 @@ struct boss_svala_sorrowgraveAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
{
|
||||
pInstance->SetData64(DATA_SACRIFICED_PLAYER,pSacrificeTarget->GetGUID());
|
||||
|
||||
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
if (Creature* pSummon = m_creature->SummonCreature(CREATURE_RITUAL_CHANNELER, RitualChannelerPos[i], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 360000))
|
||||
pSummon->AI()->DoAction(0);
|
||||
|
||||
@@ -52,17 +52,17 @@ struct instance_pinnacle : public ScriptedInstance
|
||||
uiGortokPalehoof = 0;
|
||||
uiSkadiTheRuthless = 0;
|
||||
uiKingYmiron = 0;
|
||||
|
||||
|
||||
uiSkadiTheRuthlessDoor = 0;
|
||||
uiKingYmironDoor = 0;
|
||||
uiGortokPalehoofSphere = 0;
|
||||
|
||||
|
||||
uiFrenziedWorgen = 0;
|
||||
uiRavenousFurbolg = 0;
|
||||
uiFerociousRhino = 0;
|
||||
uiMassiveJormungar = 0;
|
||||
uiPalehoofOrb = 0;
|
||||
|
||||
|
||||
uiSvala = 0;
|
||||
uiSacrificedPlayer = 0;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ UPDATE `creature_template` SET `ScriptName`='mob_flame_warder' WHERE `entry`='35
|
||||
#include "ScriptedPch.h"
|
||||
#include "vault_of_archavon.h"
|
||||
|
||||
enum Events
|
||||
enum Events
|
||||
{
|
||||
EVENT_NONE,
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ struct instance_archavon : public ScriptedInstance
|
||||
bool IsEncounterInProgress() const
|
||||
{
|
||||
for (uint8 i = 0; i < ENCOUNTERS; i++)
|
||||
if (uiEncounters[i] == IN_PROGRESS)
|
||||
if (uiEncounters[i] == IN_PROGRESS)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -123,7 +123,7 @@ struct instance_archavon : public ScriptedInstance
|
||||
for (uint8 i = 0; i < ENCOUNTERS; ++i)
|
||||
if (uiEncounters[i] == IN_PROGRESS)
|
||||
uiEncounters[i] = NOT_STARTED;
|
||||
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -304,7 +304,7 @@ struct boss_ichoronAI : public ScriptedAI
|
||||
}
|
||||
|
||||
|
||||
void SummonedCreatureDespawn(Creature *pSummoned)
|
||||
void SummonedCreatureDespawn(Creature *pSummoned)
|
||||
{
|
||||
m_waterElements.remove(pSummoned->GetGUID());
|
||||
}
|
||||
|
||||
@@ -349,7 +349,7 @@ struct instance_violet_hold : public ScriptedInstance
|
||||
break;
|
||||
case 12:
|
||||
if (uiSecondBoss == 0)
|
||||
do
|
||||
do
|
||||
{
|
||||
uiSecondBoss = urand(1,6);
|
||||
} while (uiSecondBoss == uiFirstBoss);
|
||||
@@ -408,7 +408,7 @@ struct instance_violet_hold : public ScriptedInstance
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "V H " << (uint16)m_auiEncounter[0]
|
||||
saveStream << "V H " << (uint16)m_auiEncounter[0]
|
||||
<< " " << (uint16)m_auiEncounter[1]
|
||||
<< " " << (uint16)m_auiEncounter[2]
|
||||
<< " " << (uint16)uiFirstBoss
|
||||
|
||||
@@ -226,7 +226,7 @@ struct npc_teleportation_portalAI : public ScriptedAI
|
||||
pSummon->GetMotionMaster()->MovePoint(0, DoorPosition);
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
bPortalGuardianOrKeeperSpawn = true;
|
||||
uint32 entry = RAND(CREATURE_PORTAL_GUARDIAN, CREATURE_PORTAL_KEEPER);
|
||||
|
||||
@@ -527,7 +527,7 @@ struct npc_orinoko_tuskbreakerAI : public ScriptedAI
|
||||
{
|
||||
DoScriptText(SAY_CALL_FOR_HELP ,m_creature);
|
||||
//DoCast(m_creature->getVictim(), SPELL_SUMMON_WHISKER); petai is not working correctly???
|
||||
|
||||
|
||||
if (Creature *pWhisker = m_creature->SummonCreature(NPC_WHISKER, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0))
|
||||
uiWhisker = pWhisker->GetGUID();
|
||||
bSummoned = true;
|
||||
@@ -929,16 +929,16 @@ struct npc_crusade_recruitAI : public ScriptedAI
|
||||
uint8 m_uiPhase; //The current phase we are in
|
||||
uint32 m_uiTimer; //Timer until phase transition
|
||||
float m_heading; //Store creature heading
|
||||
|
||||
|
||||
void Reset()
|
||||
{
|
||||
m_uiTimer = 0;
|
||||
m_uiPhase = 0;
|
||||
m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
|
||||
m_heading = m_creature->GetOrientation();
|
||||
m_heading = m_creature->GetOrientation();
|
||||
}
|
||||
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
if (m_uiPhase)
|
||||
@@ -950,11 +950,11 @@ struct npc_crusade_recruitAI : public ScriptedAI
|
||||
case 1:
|
||||
// say random text
|
||||
m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
DoScriptText(RAND(SAY_RECRUIT_1,SAY_RECRUIT_2,SAY_RECRUIT_3), m_creature);
|
||||
m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
DoScriptText(RAND(SAY_RECRUIT_1,SAY_RECRUIT_2,SAY_RECRUIT_3), m_creature);
|
||||
m_uiTimer = 3000;
|
||||
m_uiPhase = 2;
|
||||
break;
|
||||
break;
|
||||
case 2:
|
||||
// walk forward
|
||||
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||
@@ -973,8 +973,8 @@ struct npc_crusade_recruitAI : public ScriptedAI
|
||||
else
|
||||
m_uiTimer -= uiDiff;
|
||||
}
|
||||
ScriptedAI::UpdateAI(uiDiff);
|
||||
|
||||
ScriptedAI::UpdateAI(uiDiff);
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
}
|
||||
@@ -986,7 +986,7 @@ CreatureAI* GetAI_npc_crusade_recruit(Creature* pCreature)
|
||||
}
|
||||
|
||||
bool GossipHello_npc_crusade_recruit(Player* pPlayer, Creature* pCreature)
|
||||
{
|
||||
{
|
||||
if (pPlayer->GetQuestStatus(QUEST_TROLL_PATROL_INTESTINAL_FORTITUDE) == QUEST_STATUS_INCOMPLETE)
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ struct boss_talon_king_ikissAI : public ScriptedAI
|
||||
//second top aggro target in normal, random target in heroic correct?
|
||||
if (IsHeroic())
|
||||
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
|
||||
else
|
||||
else
|
||||
pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
|
||||
|
||||
if (pTarget)
|
||||
|
||||
@@ -26,13 +26,13 @@ EndScriptData */
|
||||
#define SAY_INTRO -1000147
|
||||
#define SAY_AGGRO1 -1000148
|
||||
#define SAY_AGGRO2 -1000149
|
||||
#define SAY_SURPREME1 -1000154
|
||||
#define SAY_SURPREME1 -1000154
|
||||
#define SAY_SURPREME2 -1000149
|
||||
#define SAY_KILL1 -1000150
|
||||
#define SAY_KILL2 -1000151
|
||||
#define SAY_KILL3 -1000152
|
||||
#define SAY_DEATH -1000155
|
||||
#define EMOTE_FRENZY -1000151
|
||||
#define SAY_KILL3 -1000152
|
||||
#define SAY_DEATH -1000155
|
||||
#define EMOTE_FRENZY -1000151
|
||||
#define SAY_RAND1 -1000158
|
||||
#define SAY_RAND2 -1000157
|
||||
|
||||
|
||||
@@ -24,10 +24,10 @@ EndScriptData */
|
||||
#include "ScriptedPch.h"
|
||||
|
||||
#define SAY_AGGRO -1000159
|
||||
#define SAY_EARTHQUAKE_1 -1000160
|
||||
#define SAY_EARTHQUAKE_2 -1000161
|
||||
#define SAY_EARTHQUAKE_1 -1000160
|
||||
#define SAY_EARTHQUAKE_2 -1000161
|
||||
#define SAY_OVERRUN_1 -1000162
|
||||
#define SAY_OVERRUN_2 -1000163
|
||||
#define SAY_OVERRUN_2 -1000163
|
||||
#define SAY_SLAY_1 -1000164
|
||||
#define SAY_SLAY_2 -1000165
|
||||
#define SAY_SLAY_3 -1000166
|
||||
|
||||
@@ -155,7 +155,7 @@ struct mob_ragin_flamesAI : public ScriptedAI
|
||||
{
|
||||
mob_ragin_flamesAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
|
||||
ScriptedInstance *pInstance;
|
||||
|
||||
@@ -138,7 +138,7 @@ bool AreaTrigger_at_ravenholdt(Player* pPlayer, const AreaTriggerEntry* pAt)
|
||||
enum eWarsongFarms
|
||||
{
|
||||
QUEST_THE_WARSONG_FARMS = 11686,
|
||||
|
||||
|
||||
NPC_CREDIT_SLAUGHTERHOUSE = 25672,
|
||||
NPC_CREDIT_GRAINERY = 25669,
|
||||
NPC_CREDIT_TORP_FARM = 25671,
|
||||
|
||||
@@ -715,8 +715,8 @@ bool GOHello_go_soulwell(Player *pPlayer, GameObject* pGO)
|
||||
if (!pPlayer->IsInSameRaidWith(static_cast<Player *>(caster)))
|
||||
return true;
|
||||
|
||||
// Repeating this at every use is ugly and inefficient. But as long as we don't have proper
|
||||
// GO scripting with at least On Create and On Update events, the other options are no less
|
||||
// Repeating this at every use is ugly and inefficient. But as long as we don't have proper
|
||||
// GO scripting with at least On Create and On Update events, the other options are no less
|
||||
// ugly and hacky.
|
||||
uint32 newSpell = 0;
|
||||
if (pGO->GetEntry() == 193169) // Soulwell for rank 2
|
||||
@@ -855,8 +855,8 @@ bool GOHello_go_amberpine_outhouse(Player *pPlayer, GameObject *pGO)
|
||||
}
|
||||
else
|
||||
pPlayer->SEND_GOSSIP_MENU(GOSSIP_OUTHOUSE_INUSE, pGO->GetGUID());
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GOSelect_go_amberpine_outhouse(Player *pPlayer, GameObject *pGO, uint32 uiSender, uint32 uiAction)
|
||||
{
|
||||
@@ -1044,7 +1044,7 @@ void AddSC_go_scripts()
|
||||
newscript->Name = "go_dragonflayer_cage";
|
||||
newscript->pGOHello = &GOHello_go_dragonflayer_cage;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "go_amberpine_outhouse";
|
||||
newscript->pGOHello = &GOHello_go_amberpine_outhouse;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user