*More of that cleanup you all know and love ;)
--HG-- branch : trunk
This commit is contained in:
+1
-1
@@ -193,7 +193,7 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
|
||||
//Summon Voidwalkers
|
||||
if (!Voidwalkers && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_SUMMON_VOIDWALKERS, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_SUMMON_VOIDWALKERS, true);
|
||||
Voidwalkers = true;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_mothersmolderwebAI : public ScriptedAI
|
||||
void DamageTaken(Unit *done_by, uint32 &damage)
|
||||
{
|
||||
if (m_creature->GetHealth() <= damage)
|
||||
m_creature->CastSpell(m_creature,SPELL_SUMMON_SPIRE_SPIDERLING,true);
|
||||
DoCast(m_creature, SPELL_SUMMON_SPIRE_SPIDERLING, true);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
|
||||
+2
-4
@@ -41,12 +41,10 @@ struct TRINITY_DLL_DECL boss_shadowvoshAI : public ScriptedAI
|
||||
Hex_Timer = 8000;
|
||||
Cleave_Timer = 14000;
|
||||
|
||||
//m_creature->CastSpell(m_creature,SPELL_ICEARMOR,true);
|
||||
//DoCast(m_creature, SPELL_ICEARMOR, true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit *who){}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
|
||||
@@ -386,7 +386,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
|
||||
DoScriptText(SAY_AXE_TOSS1, m_creature);
|
||||
|
||||
//passive thrash aura
|
||||
m_creature->CastSpell(m_creature, SPELL_THRASH_AURA, true);
|
||||
DoCast(m_creature, SPELL_THRASH_AURA, true);
|
||||
|
||||
//models
|
||||
SetEquipmentSlots(false, EQUIP_ID_AXE, EQUIP_ID_AXE, EQUIP_NO_CHANGE);
|
||||
|
||||
@@ -201,7 +201,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
|
||||
FlameWreathTarget[i] = (*itr)->GetGUID();
|
||||
FWTargPosX[i] = (*itr)->GetPositionX();
|
||||
FWTargPosY[i] = (*itr)->GetPositionY();
|
||||
m_creature->CastSpell((*itr), SPELL_FLAME_WREATH, true);
|
||||
DoCast((*itr), SPELL_FLAME_WREATH, true);
|
||||
++i;
|
||||
}
|
||||
}
|
||||
@@ -255,9 +255,9 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
|
||||
|
||||
if (!DrinkInturrupted)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_MASS_POLY, true);
|
||||
m_creature->CastSpell(m_creature, SPELL_CONJURE, false);
|
||||
m_creature->CastSpell(m_creature, SPELL_DRINK, false);
|
||||
DoCast(m_creature, SPELL_MASS_POLY, true);
|
||||
DoCast(m_creature, SPELL_CONJURE, false);
|
||||
DoCast(m_creature, SPELL_DRINK, false);
|
||||
m_creature->SetStandState(UNIT_STAND_STATE_SIT);
|
||||
DrinkInturruptTimer = 10000;
|
||||
}
|
||||
@@ -270,7 +270,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
|
||||
m_creature->RemoveAurasDueToSpell(SPELL_DRINK);
|
||||
m_creature->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
m_creature->SetPower(POWER_MANA, m_creature->GetMaxPower(POWER_MANA)-32000);
|
||||
m_creature->CastSpell(m_creature, SPELL_POTION, false);
|
||||
DoCast(m_creature, SPELL_POTION, false);
|
||||
}
|
||||
|
||||
//Drink Inturrupt Timer
|
||||
@@ -280,8 +280,8 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
|
||||
else
|
||||
{
|
||||
m_creature->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
m_creature->CastSpell(m_creature, SPELL_POTION, true);
|
||||
m_creature->CastSpell(m_creature, SPELL_AOE_PYROBLAST, false);
|
||||
DoCast(m_creature, SPELL_POTION, true);
|
||||
DoCast(m_creature, SPELL_AOE_PYROBLAST, false);
|
||||
DrinkInturrupted = true;
|
||||
Drinking = false;
|
||||
}
|
||||
@@ -371,10 +371,10 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
|
||||
case SUPER_AE:
|
||||
DoScriptText(RAND(SAY_EXPLOSION1,SAY_EXPLOSION2), m_creature);
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_BLINK_CENTER, true);
|
||||
m_creature->CastSpell(m_creature, SPELL_PLAYERPULL, true);
|
||||
m_creature->CastSpell(m_creature, SPELL_MASSSLOW, true);
|
||||
m_creature->CastSpell(m_creature, SPELL_AEXPLOSION, false);
|
||||
DoCast(m_creature, SPELL_BLINK_CENTER, true);
|
||||
DoCast(m_creature, SPELL_PLAYERPULL, true);
|
||||
DoCast(m_creature, SPELL_MASSSLOW, true);
|
||||
DoCast(m_creature, SPELL_AEXPLOSION, false);
|
||||
break;
|
||||
|
||||
case SUPER_FLAME:
|
||||
|
||||
@@ -159,7 +159,7 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI
|
||||
switch(i)
|
||||
{
|
||||
case 0:
|
||||
m_creature->CastSpell(m_creature, SPELL_TUXEDO, false);
|
||||
DoCast(m_creature, SPELL_TUXEDO, false);
|
||||
pInstance->DoUseDoorOrButton(pInstance->GetData64(DATA_GO_STAGEDOORLEFT));
|
||||
break;
|
||||
case 4:
|
||||
@@ -546,7 +546,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI
|
||||
return 10000;
|
||||
case 10:
|
||||
if (arca)
|
||||
m_creature->CastSpell(arca, SPELL_CONFLAGRATION_BLAST, false);
|
||||
DoCast(arca, SPELL_CONFLAGRATION_BLAST, false);
|
||||
return 1000;
|
||||
case 11:
|
||||
if (arca)
|
||||
|
||||
+1
-1
@@ -466,7 +466,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenixAI : public ScriptedAI
|
||||
{
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||
m_creature->CastSpell(m_creature,SPELL_PHOENIX_BURN,true);
|
||||
DoCast(m_creature, SPELL_PHOENIX_BURN, true);
|
||||
BurnTimer = 2000;
|
||||
Death_Timer = 3000;
|
||||
Rebirth = false;
|
||||
|
||||
@@ -138,11 +138,11 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI
|
||||
|
||||
if (Heroic)
|
||||
{
|
||||
m_creature->CastSpell(m_creature,H_SPELL_SUMMON_PURE_ENERGY1,false);
|
||||
m_creature->CastSpell(m_creature,H_SPELL_SUMMON_PURE_ENERGY2,false);
|
||||
DoCast(m_creature, H_SPELL_SUMMON_PURE_ENERGY1, false);
|
||||
DoCast(m_creature, H_SPELL_SUMMON_PURE_ENERGY2, false);
|
||||
}
|
||||
else
|
||||
m_creature->CastSpell(m_creature,SPELL_SUMMON_PURE_ENERGY,false);
|
||||
DoCast(m_creature, SPELL_SUMMON_PURE_ENERGY, false);
|
||||
|
||||
//below are workaround summons, remove when summoning spells w/implicitTarget 73 implemented in Mangos
|
||||
m_creature->SummonCreature(NPC_PURE_ENERGY, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||
|
||||
+2
-2
@@ -104,11 +104,11 @@ struct TRINITY_DLL_DECL npc_kalecgosAI : public ScriptedAI
|
||||
{
|
||||
if (m_uiTransformTimer <= uiDiff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature,SPELL_ORB_KILL_CREDIT,false);
|
||||
DoCast(m_creature, SPELL_ORB_KILL_CREDIT, false);
|
||||
DoWorkaroundForQuestCredit();
|
||||
|
||||
// Transform and update entry, now ready for quest/read gossip
|
||||
m_creature->CastSpell(m_creature,SPELL_TRANSFORM_TO_KAEL,false);
|
||||
DoCast(m_creature, SPELL_TRANSFORM_TO_KAEL, false);
|
||||
m_creature->UpdateEntry(NPC_KAEL);
|
||||
|
||||
m_uiTransformTimer = 0;
|
||||
|
||||
@@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL boss_golemaggAI : public ScriptedAI
|
||||
m_uiBuffTimer = 2.5*IN_MILISECONDS;
|
||||
m_bEnraged = false;
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_MAGMASPLASH, true);
|
||||
DoCast(m_creature, SPELL_MAGMASPLASH, true);
|
||||
}
|
||||
|
||||
void JustDied(Unit* pKiller)
|
||||
|
||||
@@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_magmadarAI : public ScriptedAI
|
||||
Panic_Timer = 20000;
|
||||
Lavabomb_Timer = 12000;
|
||||
|
||||
m_creature->CastSpell(m_creature,SPELL_MAGMASPIT,true);
|
||||
DoCast(m_creature, SPELL_MAGMASPIT, true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
|
||||
@@ -118,7 +118,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public ScriptedAI
|
||||
HasSubmergedOnce = false;
|
||||
WasBanished = false;
|
||||
|
||||
m_creature->CastSpell(m_creature,SPELL_MELTWEAPON,true);
|
||||
DoCast(m_creature, SPELL_MELTWEAPON, true);
|
||||
HasAura = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ struct TRINITY_DLL_DECL instance_molten_core : public ScriptedInstance
|
||||
instance_molten_core(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
|
||||
|
||||
uint64 Lucifron, Magmadar, Gehennas, Garr, Geddon, Shazzrah, Sulfuron, Golemagg, Domo, Ragnaros, FlamewakerPriest;
|
||||
uint64 RuneKoro, RuneZeth, RuneMazj, RuneTheri, RuneBlaz, RuneKress, RuneMohn, m_uiFirelordCacheGUID;;
|
||||
uint64 RuneKoro, RuneZeth, RuneMazj, RuneTheri, RuneBlaz, RuneKress, RuneMohn, m_uiFirelordCacheGUID;
|
||||
|
||||
//If all Bosses are dead.
|
||||
bool IsBossDied[9];
|
||||
|
||||
@@ -721,7 +721,7 @@ struct TRINITY_DLL_DECL npc_scarlet_ghoulAI : public ScriptedAI
|
||||
{
|
||||
// Ghouls should display their Birth Animation
|
||||
// Crawling out of the ground
|
||||
//m_creature->CastSpell(m_creature,35177,true);
|
||||
//DoCast(m_creature, 35177, true);
|
||||
//m_creature->MonsterSay("Mommy?",LANG_UNIVERSAL,0);
|
||||
m_creature->SetReactState(REACT_DEFENSIVE);
|
||||
}
|
||||
|
||||
+2
-2
@@ -589,7 +589,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
|
||||
m_creature->InterruptNonMeleeSpells(false);
|
||||
DoCast(m_creature, SPELL_IMMUNE, true);
|
||||
DoCast(m_creature, SPELL_BODY_REGEN, true);
|
||||
m_creature->CastSpell(Head, SPELL_FLYING_HEAD,true);
|
||||
DoCast(Head, SPELL_FLYING_HEAD, true);
|
||||
DoCast(m_creature, SPELL_CONFUSE, false); //test
|
||||
done_by->ProcDamageAndSpell(m_creature,PROC_FLAG_KILL,PROC_FLAG_KILLED,PROC_EX_NONE,0);
|
||||
whirlwind = urand(4000,8000);
|
||||
@@ -658,7 +658,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
|
||||
if (conflagrate <= diff)
|
||||
{
|
||||
if (Unit *plr = SelectRandomPlayer(30.0f))
|
||||
m_creature->CastSpell(plr,SPELL_CONFLAGRATION,false);
|
||||
DoCast(plr, SPELL_CONFLAGRATION, false);
|
||||
conflagrate = urand(10000,16000);
|
||||
} else conflagrate -= diff;
|
||||
break;
|
||||
|
||||
+1
-1
@@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_interrogator_vishasAI : public ScriptedAI
|
||||
if (ShadowWordPain_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_SHADOWWORDPAIN);
|
||||
ShadowWordPain_Timer = 5000 + rand()%10000;;
|
||||
ShadowWordPain_Timer = 5000 + rand()%10000;
|
||||
} else ShadowWordPain_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
+1
-3
@@ -34,9 +34,7 @@ struct TRINITY_DLL_DECL boss_death_knight_darkreaverAI : public ScriptedAI
|
||||
void DamageTaken(Unit *done_by, uint32 &damage)
|
||||
{
|
||||
if (m_creature->GetHealth() <= damage)
|
||||
{
|
||||
m_creature->CastSpell(m_creature,23261,true); //Summon Darkreaver's Fallen Charger
|
||||
}
|
||||
DoCast(m_creature, 23261, true); //Summon Darkreaver's Fallen Charger
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
|
||||
@@ -50,12 +50,10 @@ struct TRINITY_DLL_DECL boss_rasfrostAI : public ScriptedAI
|
||||
FrostVolley_Timer = 24000;
|
||||
Fear_Timer = 45000;
|
||||
|
||||
m_creature->CastSpell(m_creature,SPELL_ICEARMOR,true);
|
||||
DoCast(m_creature, SPELL_ICEARMOR, true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit *who){}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -72,9 +70,8 @@ struct TRINITY_DLL_DECL boss_rasfrostAI : public ScriptedAI
|
||||
//Frostbolt_Timer
|
||||
if (Frostbolt_Timer <= diff)
|
||||
{
|
||||
Unit *pTarget = NULL;
|
||||
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
|
||||
if (pTarget) DoCast(pTarget,SPELL_FROSTBOLT);
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, SPELL_FROSTBOLT);
|
||||
|
||||
Frostbolt_Timer = 8000;
|
||||
} else Frostbolt_Timer -= diff;
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL boss_magistrate_barthilasAI : public ScriptedAI
|
||||
return;
|
||||
|
||||
++AngerCount;
|
||||
m_creature->CastSpell(m_creature,SPELL_FURIOUS_ANGER,false);
|
||||
DoCast(m_creature, SPELL_FURIOUS_ANGER, false);
|
||||
} else FuriousAnger_Timer -= diff;
|
||||
|
||||
//DrainingBlow
|
||||
|
||||
@@ -230,7 +230,7 @@ struct TRINITY_DLL_DECL mobs_spectral_ghostly_citizenAI : public ScriptedAI
|
||||
break;
|
||||
case TEXTEMOTE_RUDE:
|
||||
if (m_creature->IsWithinDistInMap(pPlayer, 5))
|
||||
m_creature->CastSpell(pPlayer,SPELL_SLAP,false);
|
||||
DoCast(pPlayer, SPELL_SLAP, false);
|
||||
else
|
||||
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_RUDE);
|
||||
break;
|
||||
|
||||
@@ -104,7 +104,7 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
|
||||
|
||||
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
|
||||
DoCast(m_creature, SPELL_DUAL_WIELD, true);
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_BRUTALLUS_EVENT, NOT_STARTED);
|
||||
|
||||
@@ -174,8 +174,8 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
|
||||
{
|
||||
m_creature->setActive(true);
|
||||
DoZoneInCombat();
|
||||
m_creature->CastSpell(m_creature, AURA_SUNWELL_RADIANCE, true);
|
||||
m_creature->CastSpell(m_creature, AURA_NOXIOUS_FUMES, true);
|
||||
DoCast(m_creature, AURA_SUNWELL_RADIANCE, true);
|
||||
DoCast(m_creature, AURA_NOXIOUS_FUMES, true);
|
||||
EnterPhase(PHASE_GROUND);
|
||||
|
||||
if (pInstance)
|
||||
@@ -311,7 +311,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
|
||||
{
|
||||
Vapor->AI()->AttackStart(pTarget);
|
||||
m_creature->InterruptNonMeleeSpells(false);
|
||||
m_creature->CastSpell(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug
|
||||
DoCast(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug
|
||||
Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true);
|
||||
}
|
||||
}
|
||||
@@ -325,7 +325,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
|
||||
case 3: {
|
||||
DespawnSummons(MOB_VAPOR_TRAIL);
|
||||
error_log("Summon Vapor case3");
|
||||
//m_creature->CastSpell(m_creature, SPELL_VAPOR_SELECT); need core support
|
||||
//DoCast(m_creature, SPELL_VAPOR_SELECT); need core support
|
||||
Unit *pTarget;
|
||||
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);
|
||||
if (!pTarget) pTarget = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0);
|
||||
@@ -337,7 +337,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
|
||||
{
|
||||
Vapor->AI()->AttackStart(pTarget);
|
||||
m_creature->InterruptNonMeleeSpells(false);
|
||||
m_creature->CastSpell(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug
|
||||
DoCast(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug
|
||||
Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true);
|
||||
}
|
||||
}
|
||||
@@ -377,7 +377,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
|
||||
Timer[EVENT_FLIGHT_SEQUENCE] = 10000;
|
||||
break;
|
||||
case 7:
|
||||
m_creature->CastSpell(m_creature, SPELL_FOG_BREATH, true);
|
||||
DoCast(m_creature, SPELL_FOG_BREATH, true);
|
||||
{
|
||||
float x, y, z;
|
||||
m_creature->GetPosition(x, y, z);
|
||||
@@ -451,26 +451,26 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
|
||||
{
|
||||
case EVENT_BERSERK:
|
||||
DoScriptText(YELL_BERSERK, m_creature);
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
Timer[EVENT_BERSERK] = 10000;
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_CLEAVE, false);
|
||||
Timer[EVENT_CLEAVE] = 5000 + rand()%5 * 1000;
|
||||
DoCast(m_creature->getVictim(), SPELL_CLEAVE, false);
|
||||
Timer[EVENT_CLEAVE] = urand(5000,10000);
|
||||
break;
|
||||
case EVENT_CORROSION:
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_CORROSION, false);
|
||||
Timer[EVENT_CORROSION] = 20000 + rand()%10 * 1000;
|
||||
DoCast(m_creature->getVictim(), SPELL_CORROSION, false);
|
||||
Timer[EVENT_CORROSION] = urand(20000,30000);
|
||||
break;
|
||||
case EVENT_GAS_NOVA:
|
||||
m_creature->CastSpell(m_creature, SPELL_GAS_NOVA, false);
|
||||
Timer[EVENT_GAS_NOVA] = 20000 + rand()%5 * 1000;
|
||||
DoCast(m_creature, SPELL_GAS_NOVA, false);
|
||||
Timer[EVENT_GAS_NOVA] = urand(20000,25000);
|
||||
break;
|
||||
case EVENT_ENCAPSULATE:
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true))
|
||||
{
|
||||
m_creature->CastSpell(pTarget, SPELL_ENCAPSULATE_CHANNEL, false);
|
||||
Timer[EVENT_ENCAPSULATE] = 25000 + rand()%5 * 1000;
|
||||
DoCast(pTarget, SPELL_ENCAPSULATE_CHANNEL, false);
|
||||
Timer[EVENT_ENCAPSULATE] = urand(25000,30000);
|
||||
}
|
||||
break;
|
||||
case EVENT_FLIGHT:
|
||||
@@ -488,7 +488,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
|
||||
{
|
||||
case EVENT_BERSERK:
|
||||
DoScriptText(YELL_BERSERK, m_creature);
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
Timer[EVENT_BERSERK] = 0;
|
||||
break;
|
||||
case EVENT_FLIGHT_SEQUENCE:
|
||||
@@ -560,12 +560,13 @@ struct TRINITY_DLL_DECL mob_felmyst_vaporAI : public ScriptedAI
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
//m_creature->CastSpell(m_creature, SPELL_VAPOR_FORCE, true); core bug
|
||||
//DoCast(m_creature, SPELL_VAPOR_FORCE, true); core bug
|
||||
}
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!m_creature->getVictim())
|
||||
AttackStart(SelectUnit(SELECT_TARGET_RANDOM, 0));
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
AttackStart(pTarget);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -574,7 +575,7 @@ struct TRINITY_DLL_DECL mob_felmyst_trailAI : public ScriptedAI
|
||||
mob_felmyst_trailAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
m_creature->CastSpell(m_creature, SPELL_TRAIL_TRIGGER, true);
|
||||
DoCast(m_creature, SPELL_TRAIL_TRIGGER, true);
|
||||
m_creature->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID());
|
||||
m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 0.01); // core bug
|
||||
}
|
||||
|
||||
@@ -604,7 +604,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
|
||||
case TIMER_SOUL_FLAY:
|
||||
if (!m_creature->IsNonMeleeSpellCasted(false))
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_SOUL_FLAY, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_SOUL_FLAY, false);
|
||||
m_creature->getVictim()->CastSpell(m_creature->getVictim(), SPELL_SOUL_FLAY_SLOW, true);
|
||||
Timer[TIMER_SOUL_FLAY] = 3500;
|
||||
}
|
||||
|
||||
@@ -107,10 +107,10 @@ struct TRINITY_DLL_DECL npc_calvin_montagueAI : public ScriptedAI
|
||||
++m_uiPhase;
|
||||
break;
|
||||
case 2:
|
||||
if (Unit* pUnit = Unit::GetUnit(*m_creature, m_uiPlayerGUID))
|
||||
CAST_PLR(pUnit)->AreaExploredOrEventHappens(QUEST_590);
|
||||
if (Player *pPlayer = Unit::GetPlayer(m_uiPlayerGUID))
|
||||
pPlayer->AreaExploredOrEventHappens(QUEST_590);
|
||||
|
||||
m_creature->CastSpell(m_creature,SPELL_DRINK,true);
|
||||
DoCast(m_creature, SPELL_DRINK, true);
|
||||
++m_uiPhase;
|
||||
break;
|
||||
case 3:
|
||||
@@ -132,9 +132,9 @@ CreatureAI* GetAI_npc_calvin_montague(Creature* pCreature)
|
||||
return new npc_calvin_montagueAI (pCreature);
|
||||
}
|
||||
|
||||
bool QuestAccept_npc_calvin_montague(Player* pPlayer, Creature* pCreature, Quest const* quest)
|
||||
bool QuestAccept_npc_calvin_montague(Player* pPlayer, Creature* pCreature, Quest const* pQuest)
|
||||
{
|
||||
if (quest->GetQuestId() == QUEST_590)
|
||||
if (pQuest->GetQuestId() == QUEST_590)
|
||||
{
|
||||
pCreature->setFaction(FACTION_HOSTILE);
|
||||
pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
|
||||
@@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL boss_ironayaAI : public ScriptedAI
|
||||
//If we are <50% hp do knockaway ONCE
|
||||
if (!hasCastedKnockaway && m_creature->GetHealth()*2 < m_creature->GetMaxHealth())
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_KNOCKAWAY, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_KNOCKAWAY, true);
|
||||
|
||||
// current aggro target is knocked away pick new target
|
||||
Unit* Target = SelectUnit(SELECT_TARGET_TOPAGGRO, 0);
|
||||
|
||||
@@ -60,7 +60,7 @@ struct TRINITY_DLL_DECL mob_jadespine_basiliskAI : public ScriptedAI
|
||||
{
|
||||
//Cast
|
||||
// DoCast(m_creature->getVictim(), SPELL_CSLUMBER);
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_CSLUMBER, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_CSLUMBER, true);
|
||||
|
||||
//Stop attacking target thast asleep and pick new target
|
||||
Cslumber_Timer = 28000;
|
||||
@@ -68,7 +68,7 @@ struct TRINITY_DLL_DECL mob_jadespine_basiliskAI : public ScriptedAI
|
||||
Unit* Target = SelectUnit(SELECT_TARGET_TOPAGGRO, 0);
|
||||
|
||||
if (!Target || Target == m_creature->getVictim())
|
||||
Target = SelectUnit(SELECT_TARGET_RANDOM, 0);
|
||||
Target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
|
||||
|
||||
if (Target)
|
||||
m_creature->TauntApply(Target);
|
||||
|
||||
@@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL npc_tapoke_slim_jahnAI : public npc_escortAI
|
||||
if (HasEscortState(STATE_ESCORT_ESCORTING) && !m_bFriendSummoned && pPlayer)
|
||||
{
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
m_creature->CastSpell(m_creature, SPELL_CALL_FRIENDS, true);
|
||||
DoCast(m_creature, SPELL_CALL_FRIENDS, true);
|
||||
|
||||
m_bFriendSummoned = true;
|
||||
}
|
||||
|
||||
@@ -266,7 +266,7 @@ struct TRINITY_DLL_DECL boss_akilzonAI : public ScriptedAI
|
||||
{
|
||||
m_creature->MonsterYell(SAY_ONENRAGE, LANG_UNIVERSAL, NULL);
|
||||
DoPlaySoundToSet(m_creature, SOUND_ONENRAGE);
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
Enrage_Timer = 600000;
|
||||
} else Enrage_Timer -= diff;
|
||||
|
||||
@@ -275,7 +275,7 @@ struct TRINITY_DLL_DECL boss_akilzonAI : public ScriptedAI
|
||||
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1);
|
||||
if (!pTarget) pTarget = m_creature->getVictim();
|
||||
TargetGUID = pTarget->GetGUID();
|
||||
m_creature->CastSpell(pTarget, SPELL_STATIC_DISRUPTION, false);
|
||||
DoCast(pTarget, SPELL_STATIC_DISRUPTION, false);
|
||||
m_creature->SetInFront(m_creature->getVictim());
|
||||
StaticDisruption_Timer = (10+rand()%8)*1000; // < 20s
|
||||
|
||||
@@ -311,7 +311,7 @@ struct TRINITY_DLL_DECL boss_akilzonAI : public ScriptedAI
|
||||
return;
|
||||
}
|
||||
pTarget->CastSpell(pTarget, 44007, true);//cloud visual
|
||||
m_creature->CastSpell(pTarget, SPELL_ELECTRICAL_STORM, false);//storm cyclon + visual
|
||||
DoCast(pTarget, SPELL_ELECTRICAL_STORM, false);//storm cyclon + visual
|
||||
float x,y,z;
|
||||
pTarget->GetPosition(x,y,z);
|
||||
if (pTarget)
|
||||
@@ -399,7 +399,7 @@ struct TRINITY_DLL_DECL mob_soaring_eagleAI : public ScriptedAI
|
||||
if (TargetGUID)
|
||||
{
|
||||
if (Unit *pTarget = Unit::GetUnit(*m_creature, TargetGUID))
|
||||
m_creature->CastSpell(pTarget, SPELL_EAGLE_SWOOP, true);
|
||||
DoCast(pTarget, SPELL_EAGLE_SWOOP, true);
|
||||
TargetGUID = 0;
|
||||
m_creature->SetSpeed(MOVE_RUN, 1.2f);
|
||||
EagleSwoop_Timer = 5000 + rand()%5000;
|
||||
|
||||
@@ -155,15 +155,12 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
case PHASE_ENRAGE:
|
||||
if (Phase == PHASE_MERGE)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_TRANSFORM_MERGE, true);
|
||||
DoCast(m_creature, SPELL_TRANSFORM_MERGE, true);
|
||||
m_creature->Attack(m_creature->getVictim(), true);
|
||||
m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim());
|
||||
}
|
||||
if (Unit *Lynx = Unit::GetUnit(*m_creature, LynxGUID))
|
||||
{
|
||||
Lynx->SetVisibility(VISIBILITY_OFF);
|
||||
Lynx->setDeathState(JUST_DIED);
|
||||
}
|
||||
if (Creature *Lynx = Unit::GetCreature(*m_creature, LynxGUID))
|
||||
Lynx->DisappearAndDie();
|
||||
m_creature->SetMaxHealth(600000);
|
||||
m_creature->SetHealth(600000 - 150000 * TransformCount);
|
||||
FrenzyTimer = 16000;
|
||||
@@ -174,7 +171,7 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
case PHASE_SPLIT:
|
||||
m_creature->MonsterYell(YELL_SPLIT, LANG_UNIVERSAL, NULL);
|
||||
DoPlaySoundToSet(m_creature, SOUND_SPLIT);
|
||||
m_creature->CastSpell(m_creature, SPELL_TRANSFORM_SPLIT, true);
|
||||
DoCast(m_creature, SPELL_TRANSFORM_SPLIT, true);
|
||||
break;
|
||||
case PHASE_HUMAN:
|
||||
//DoCast(m_creature, SPELL_SUMMON_LYNX, true);
|
||||
@@ -221,8 +218,8 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
if (SaberlashTimer <= diff)
|
||||
{
|
||||
// A tank with more than 490 defense skills should receive no critical hit
|
||||
//m_creature->CastSpell(m_creature, 41296, true);
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_SABER_LASH, true);
|
||||
//DoCast(m_creature, 41296, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_SABER_LASH, true);
|
||||
//m_creature->RemoveAurasDueToSpell(41296);
|
||||
SaberlashTimer = 30000;
|
||||
} else SaberlashTimer -= diff;
|
||||
@@ -230,7 +227,7 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
|
||||
if (FrenzyTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature, SPELL_FRENZY);
|
||||
FrenzyTimer = (10+rand()%5)*1000;
|
||||
FrenzyTimer = urand(10000,15000);
|
||||
} else FrenzyTimer -= diff;
|
||||
|
||||
if (Phase == PHASE_LYNX)
|
||||
|
||||
@@ -350,17 +350,16 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
|
||||
if (CheckAddState_Timer <= diff)
|
||||
{
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
Unit* Temp = Unit::GetUnit((*m_creature),AddGUID[i]);
|
||||
if (Temp && Temp->isAlive() && !Temp->getVictim())
|
||||
CAST_CRE(Temp)->AI()->AttackStart(m_creature->getVictim());
|
||||
}
|
||||
if (Creature *pTemp = Unit::GetCreature(*m_creature, AddGUID[i]))
|
||||
if (pTemp->isAlive() && !pTemp->getVictim())
|
||||
pTemp->AI()->AttackStart(m_creature->getVictim());
|
||||
|
||||
CheckAddState_Timer = 5000;
|
||||
} else CheckAddState_Timer -= diff;
|
||||
|
||||
if (DrainPower_Timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_DRAIN_POWER, true);
|
||||
DoCast(m_creature, SPELL_DRAIN_POWER, true);
|
||||
m_creature->MonsterYell(YELL_DRAIN_POWER, LANG_UNIVERSAL, NULL);
|
||||
DoPlaySoundToSet(m_creature, SOUND_YELL_DRAIN_POWER);
|
||||
DrainPower_Timer = urand(40000,55000); // must cast in 60 sec, or buff/debuff will disappear
|
||||
@@ -372,7 +371,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
|
||||
SpiritBolts_Timer = 13000; // cast drain power first
|
||||
else
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_SPIRIT_BOLTS, false);
|
||||
DoCast(m_creature, SPELL_SPIRIT_BOLTS, false);
|
||||
m_creature->MonsterYell(YELL_SPIRIT_BOLTS, LANG_UNIVERSAL, NULL);
|
||||
DoPlaySoundToSet(m_creature, SOUND_YELL_SPIRIT_BOLTS);
|
||||
SpiritBolts_Timer = 40000;
|
||||
@@ -397,7 +396,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
|
||||
trigger->CastSpell(pTarget, SPELL_SIPHON_SOUL, true);
|
||||
trigger->GetMotionMaster()->MoveChase(m_creature);
|
||||
|
||||
//m_creature->CastSpell(pTarget, SPELL_SIPHON_SOUL, true);
|
||||
//DoCast(pTarget, SPELL_SIPHON_SOUL, true);
|
||||
//m_creature->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, pTarget->GetGUID());
|
||||
//m_creature->SetUInt32Value(UNIT_CHANNEL_SPELL, SPELL_SIPHON_SOUL);
|
||||
|
||||
@@ -455,7 +454,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
|
||||
break;
|
||||
}
|
||||
if (pTarget)
|
||||
m_creature->CastSpell(pTarget, PlayerAbility[PlayerClass][random].spell, false);
|
||||
DoCast(pTarget, PlayerAbility[PlayerClass][random].spell, false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -489,14 +488,14 @@ struct TRINITY_DLL_DECL boss_thurgAI : public boss_hexlord_addAI
|
||||
if (!templist.empty())
|
||||
{
|
||||
if (Unit *pTarget = *(templist.begin()))
|
||||
m_creature->CastSpell(pTarget, SPELL_BLOODLUST, false);
|
||||
DoCast(pTarget, SPELL_BLOODLUST, false);
|
||||
}
|
||||
bloodlust_timer = 12000;
|
||||
} else bloodlust_timer -= diff;
|
||||
|
||||
if (cleave_timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_CLEAVE, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_CLEAVE, false);
|
||||
cleave_timer = 12000; //3 sec cast
|
||||
} else cleave_timer -= diff;
|
||||
|
||||
@@ -551,7 +550,7 @@ struct TRINITY_DLL_DECL boss_alyson_antilleAI : public boss_hexlord_addAI
|
||||
if (pTarget)
|
||||
{
|
||||
if (pTarget->IsWithinDistInMap(m_creature, 50))
|
||||
m_creature->CastSpell(pTarget,SPELL_FLASH_HEAL, false);
|
||||
DoCast(pTarget, SPELL_FLASH_HEAL, false);
|
||||
else
|
||||
{
|
||||
// bugged
|
||||
@@ -564,10 +563,10 @@ struct TRINITY_DLL_DECL boss_alyson_antilleAI : public boss_hexlord_addAI
|
||||
if (urand(0,1))
|
||||
{
|
||||
if (pTarget = DoSelectLowestHpFriendly(50, 0))
|
||||
m_creature->CastSpell(pTarget, SPELL_DISPEL_MAGIC, false);
|
||||
DoCast(pTarget, SPELL_DISPEL_MAGIC, false);
|
||||
}
|
||||
else if (pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
m_creature->CastSpell(pTarget, SPELL_DISPEL_MAGIC, false);
|
||||
DoCast(pTarget, SPELL_DISPEL_MAGIC, false);
|
||||
}
|
||||
flashheal_timer = 2500;
|
||||
} else flashheal_timer -= diff;
|
||||
@@ -578,7 +577,7 @@ struct TRINITY_DLL_DECL boss_alyson_antilleAI : public boss_hexlord_addAI
|
||||
{
|
||||
Unit *pTarget = SelectTarget();
|
||||
|
||||
m_creature->CastSpell(pTarget, SPELL_DISPEL_MAGIC, false);
|
||||
DoCast(pTarget, SPELL_DISPEL_MAGIC, false);
|
||||
}
|
||||
else
|
||||
m_creature->CastSpell(SelectUnit(SELECT_TARGET_RANDOM, 0), SPELL_DISPEL_MAGIC, false);
|
||||
@@ -626,7 +625,7 @@ struct TRINITY_DLL_DECL boss_gazakrothAI : public boss_hexlord_addAI
|
||||
|
||||
if (firebolt_timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_FIREBOLT, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_FIREBOLT, false);
|
||||
firebolt_timer = 700;
|
||||
} else firebolt_timer -= diff;
|
||||
|
||||
@@ -659,13 +658,13 @@ struct TRINITY_DLL_DECL boss_lord_raadanAI : public boss_hexlord_addAI
|
||||
|
||||
if (thunderclap_timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_THUNDERCLAP, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_THUNDERCLAP, false);
|
||||
thunderclap_timer = 12000;
|
||||
} else thunderclap_timer -= diff;
|
||||
|
||||
if (flamebreath_timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_FLAME_BREATH, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_FLAME_BREATH, false);
|
||||
flamebreath_timer = 12000;
|
||||
} else flamebreath_timer -= diff;
|
||||
|
||||
@@ -693,7 +692,7 @@ struct TRINITY_DLL_DECL boss_darkheartAI : public boss_hexlord_addAI
|
||||
|
||||
if (psychicwail_timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_PSYCHIC_WAIL, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_PSYCHIC_WAIL, false);
|
||||
psychicwail_timer = 12000;
|
||||
} else psychicwail_timer -= diff;
|
||||
|
||||
@@ -738,7 +737,7 @@ struct TRINITY_DLL_DECL boss_slitherAI : public boss_hexlord_addAI
|
||||
if (venomspit_timer <= diff)
|
||||
{
|
||||
if (Unit* victim = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
m_creature->CastSpell(victim,SPELL_VENOM_SPIT, false);
|
||||
DoCast(victim, SPELL_VENOM_SPIT, false);
|
||||
venomspit_timer = 2500;
|
||||
} else venomspit_timer -= diff;
|
||||
|
||||
@@ -802,13 +801,13 @@ struct TRINITY_DLL_DECL boss_koraggAI : public boss_hexlord_addAI
|
||||
|
||||
if (mightyblow_timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_MIGHTY_BLOW, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_MIGHTY_BLOW, false);
|
||||
mightyblow_timer = 12000;
|
||||
}
|
||||
if (coldstare_timer <= diff)
|
||||
{
|
||||
if (Unit* victim = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
m_creature->CastSpell(victim,SPELL_COLD_STARE, false);
|
||||
if (Unit* victim = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(victim, SPELL_COLD_STARE, false);
|
||||
coldstare_timer = 12000;
|
||||
}
|
||||
|
||||
|
||||
@@ -343,14 +343,14 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
|
||||
{
|
||||
if (!enraged)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_ENRAGE, true);
|
||||
DoCast(m_creature, SPELL_ENRAGE, true);
|
||||
enraged = true;
|
||||
EnrageTimer = 300000;
|
||||
}
|
||||
else
|
||||
{
|
||||
DoScriptText(SAY_BERSERK, m_creature);
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
EnrageTimer = 300000;
|
||||
}
|
||||
} else EnrageTimer -= diff;
|
||||
@@ -363,9 +363,9 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
|
||||
m_creature->GetMotionMaster()->Clear();
|
||||
DoTeleportTo(JanalainPos[0][0],JanalainPos[0][1],JanalainPos[0][2]);
|
||||
m_creature->StopMoving();
|
||||
m_creature->CastSpell(m_creature, SPELL_FIRE_BOMB_CHANNEL, false);
|
||||
DoCast(m_creature, SPELL_FIRE_BOMB_CHANNEL, false);
|
||||
//DoTeleportPlayer(m_creature, JanalainPos[0][0], JanalainPos[0][1],JanalainPos[0][2], 0);
|
||||
//m_creature->CastSpell(m_creature, SPELL_TELE_TO_CENTER, true);
|
||||
//DoCast(m_creature, SPELL_TELE_TO_CENTER, true);
|
||||
|
||||
FireWall();
|
||||
SpawnBombs();
|
||||
@@ -380,7 +380,7 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
|
||||
if (Player* i_pl = i->getSource())
|
||||
if (i_pl->isAlive())
|
||||
DoTeleportPlayer(i_pl, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0);
|
||||
//m_creature->CastSpell(Temp, SPELL_SUMMON_PLAYERS, true); // core bug, spell does not work if too far
|
||||
//DoCast(Temp, SPELL_SUMMON_PLAYERS, true) // core bug, spell does not work if too far
|
||||
return;
|
||||
} else BombTimer -= diff;
|
||||
|
||||
@@ -394,7 +394,7 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
|
||||
m_creature->GetMotionMaster()->Clear();
|
||||
DoTeleportTo(JanalainPos[0][0],JanalainPos[0][1],JanalainPos[0][2]);
|
||||
m_creature->StopMoving();
|
||||
m_creature->CastSpell(m_creature, SPELL_HATCH_ALL, false);
|
||||
DoCast(m_creature, SPELL_HATCH_ALL, false);
|
||||
HatchAllEggs(2);
|
||||
noeggs = true;
|
||||
}
|
||||
@@ -422,7 +422,7 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
|
||||
{
|
||||
m_creature->AttackStop();
|
||||
m_creature->GetMotionMaster()->Clear();
|
||||
m_creature->CastSpell(pTarget, SPELL_FLAME_BREATH, false);
|
||||
DoCast(pTarget, SPELL_FLAME_BREATH, false);
|
||||
m_creature->StopMoving();
|
||||
isFlameBreathing = true;
|
||||
}
|
||||
@@ -445,7 +445,7 @@ struct TRINITY_DLL_DECL mob_janalai_firebombAI : public ScriptedAI
|
||||
void SpellHit(Unit *caster, const SpellEntry *spell)
|
||||
{
|
||||
if (spell->Id == SPELL_FIRE_BOMB_THROW)
|
||||
m_creature->CastSpell(m_creature, SPELL_FIRE_BOMB_DUMMY, true);
|
||||
DoCast(m_creature, SPELL_FIRE_BOMB_DUMMY, true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who) {}
|
||||
@@ -621,7 +621,7 @@ struct TRINITY_DLL_DECL mob_hatchlingAI : public ScriptedAI
|
||||
|
||||
if (BuffetTimer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_FLAMEBUFFET, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_FLAMEBUFFET, false);
|
||||
BuffetTimer = 10000;
|
||||
} else BuffetTimer -= diff;
|
||||
|
||||
|
||||
@@ -274,7 +274,7 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
|
||||
m_creature->AttackerStateUpdate(m_creature->getVictim());
|
||||
if (m_creature->getVictim() && health == m_creature->getVictim()->GetHealth())
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_OVERPOWER, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_OVERPOWER, false);
|
||||
Overpower_Timer = 5000;
|
||||
}
|
||||
} else m_creature->AttackerStateUpdate(m_creature->getVictim());
|
||||
@@ -353,7 +353,7 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
|
||||
if (NextPhase == 2)
|
||||
{
|
||||
m_creature->GetMotionMaster()->Clear();
|
||||
m_creature->CastSpell(m_creature, SPELL_ENERGY_STORM, true); // enemy aura
|
||||
DoCast(m_creature, SPELL_ENERGY_STORM, true); // enemy aura
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
Creature* Vortex = DoSpawnCreature(CREATURE_FEATHER_VORTEX, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||
@@ -396,7 +396,7 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
|
||||
|
||||
if (Berserk_Timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
m_creature->MonsterYell(YELL_BERSERK, LANG_UNIVERSAL, NULL);
|
||||
DoPlaySoundToSet(m_creature, SOUND_BERSERK);
|
||||
Berserk_Timer = 60000;
|
||||
@@ -423,8 +423,8 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
|
||||
|
||||
if (Grievous_Throw_Timer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
m_creature->CastSpell(pTarget, SPELL_GRIEVOUS_THROW, false);
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, SPELL_GRIEVOUS_THROW, false);
|
||||
Grievous_Throw_Timer = 10000;
|
||||
} else Grievous_Throw_Timer -= diff;
|
||||
break;
|
||||
@@ -473,7 +473,7 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
|
||||
AttackStart(pTarget);
|
||||
if (m_creature->IsWithinMeleeRange(pTarget))
|
||||
{
|
||||
m_creature->CastSpell(pTarget, SPELL_CLAW_RAGE_DAMAGE, true);
|
||||
DoCast(pTarget, SPELL_CLAW_RAGE_DAMAGE, true);
|
||||
++Claw_Counter;
|
||||
if (Claw_Counter == 12)
|
||||
{
|
||||
@@ -521,7 +521,7 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
|
||||
{
|
||||
if (m_creature->IsWithinMeleeRange(pTarget))
|
||||
{
|
||||
m_creature->CastSpell(pTarget, SPELL_LYNX_RUSH_DAMAGE, true);
|
||||
DoCast(pTarget, SPELL_LYNX_RUSH_DAMAGE, true);
|
||||
++Claw_Counter;
|
||||
if (Claw_Counter == 9)
|
||||
{
|
||||
@@ -591,7 +591,7 @@ struct TRINITY_DLL_DECL feather_vortexAI : public ScriptedAI
|
||||
void SpellHit(Unit *caster, const SpellEntry *spell)
|
||||
{
|
||||
if (spell->Id == SPELL_ZAP_INFORM)
|
||||
m_creature->CastSpell(caster, SPELL_ZAP_DAMAGE, true);
|
||||
DoCast(caster, SPELL_ZAP_DAMAGE, true);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
|
||||
@@ -119,7 +119,8 @@ struct TRINITY_DLL_DECL npc_zulaman_hostageAI : public ScriptedAI
|
||||
}
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (IsLoot) m_creature->CastSpell(m_creature, 7, false);
|
||||
if (IsLoot)
|
||||
DoCast(m_creature, 7, false);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -207,12 +207,10 @@ struct TRINITY_DLL_DECL mob_shade_of_jindoAI : public ScriptedAI
|
||||
void Reset()
|
||||
{
|
||||
ShadowShock_Timer = 1000;
|
||||
m_creature->CastSpell(m_creature, SPELL_INVISIBLE,true);
|
||||
DoCast(m_creature, SPELL_INVISIBLE, true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit *who){}
|
||||
|
||||
void UpdateAI (const uint32 diff)
|
||||
{
|
||||
|
||||
@@ -134,7 +134,7 @@ struct TRINITY_DLL_DECL example_escortAI : public npc_escortAI
|
||||
if (m_uiDeathCoilTimer <= uiDiff)
|
||||
{
|
||||
DoScriptText(SAY_SPELL, m_creature);
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_DEATH_COIL, false);
|
||||
DoCast(m_creature->getVictim(), SPELL_DEATH_COIL, false);
|
||||
m_uiDeathCoilTimer = 4000;
|
||||
}
|
||||
else
|
||||
@@ -150,12 +150,12 @@ struct TRINITY_DLL_DECL example_escortAI : public npc_escortAI
|
||||
if (m_creature->HasAura(SPELL_ELIXIR_OF_FORTITUDE, 0))
|
||||
{
|
||||
DoScriptText(SAY_RAND_1, m_creature);
|
||||
m_creature->CastSpell(m_creature, SPELL_BLUE_FIREWORK, false);
|
||||
DoCast(m_creature, SPELL_BLUE_FIREWORK, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
DoScriptText(SAY_RAND_2, m_creature);
|
||||
m_creature->CastSpell(m_creature, SPELL_ELIXIR_OF_FORTITUDE, false);
|
||||
DoCast(m_creature, SPELL_ELIXIR_OF_FORTITUDE, false);
|
||||
}
|
||||
|
||||
m_uiChatTimer = 12000;
|
||||
|
||||
@@ -78,7 +78,7 @@ struct TRINITY_DLL_DECL npc_draenei_survivorAI : public ScriptedAI
|
||||
|
||||
CanSayHelp = true;
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_IRRIDATION, true);
|
||||
DoCast(m_creature, SPELL_IRRIDATION, true);
|
||||
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
|
||||
@@ -107,7 +107,7 @@ struct TRINITY_DLL_DECL npc_draenei_survivorAI : public ScriptedAI
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
|
||||
m_creature->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_STUNNED, true);
|
||||
DoCast(m_creature, SPELL_STUNNED, true);
|
||||
|
||||
pCaster = Caster->GetGUID();
|
||||
|
||||
|
||||
@@ -78,11 +78,11 @@ struct TRINITY_DLL_DECL npc_medivh_bmAI : public ScriptedAI
|
||||
return;
|
||||
|
||||
if (pInstance->GetData(TYPE_MEDIVH) == IN_PROGRESS)
|
||||
m_creature->CastSpell(m_creature,SPELL_CHANNEL,true);
|
||||
DoCast(m_creature, SPELL_CHANNEL, true);
|
||||
else if (m_creature->HasAura(SPELL_CHANNEL))
|
||||
m_creature->RemoveAura(SPELL_CHANNEL);
|
||||
|
||||
m_creature->CastSpell(m_creature,SPELL_PORTAL_RUNE,true);
|
||||
DoCast(m_creature, SPELL_PORTAL_RUNE, true);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit *who)
|
||||
@@ -97,7 +97,7 @@ struct TRINITY_DLL_DECL npc_medivh_bmAI : public ScriptedAI
|
||||
|
||||
DoScriptText(SAY_INTRO, m_creature);
|
||||
pInstance->SetData(TYPE_MEDIVH,IN_PROGRESS);
|
||||
m_creature->CastSpell(m_creature,SPELL_CHANNEL,false);
|
||||
DoCast(m_creature, SPELL_CHANNEL, false);
|
||||
Check_Timer = 5000;
|
||||
}
|
||||
else if (who->GetTypeId() == TYPEID_UNIT && m_creature->IsWithinDistInMap(who, 15.0f))
|
||||
|
||||
@@ -741,7 +741,7 @@ void hyjalAI::UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (MassTeleportTimer < diff && DoMassTeleport)
|
||||
{
|
||||
m_creature->CastSpell(m_creature,SPELL_MASS_TELEPORT,false);
|
||||
DoCast(m_creature, SPELL_MASS_TELEPORT, false);
|
||||
DoMassTeleport = false;
|
||||
} else MassTeleportTimer -= diff;
|
||||
return;
|
||||
@@ -979,7 +979,7 @@ void hyjalAI::WaypointReached(uint32 i)
|
||||
WaitForTeleport = true;
|
||||
TeleportTimer = 20000;
|
||||
if (m_creature->GetEntry() == JAINA)
|
||||
m_creature->CastSpell(m_creature,SPELL_MASS_TELEPORT,false);
|
||||
DoCast(m_creature, SPELL_MASS_TELEPORT, false);
|
||||
if (m_creature->GetEntry() == THRALL && DummyGuid)
|
||||
{
|
||||
Unit* Dummy = Unit::GetUnit((*m_creature),DummyGuid);
|
||||
|
||||
@@ -110,7 +110,7 @@ struct TRINITY_DLL_DECL npc_kerlonianAI : public FollowerAI
|
||||
DoScriptText(RAND(SAY_KER_SLEEP_1,SAY_KER_SLEEP_2,SAY_KER_SLEEP_3,SAY_KER_SLEEP_4), m_creature);
|
||||
|
||||
m_creature->SetStandState(UNIT_STAND_STATE_SLEEP);
|
||||
m_creature->CastSpell(m_creature, SPELL_SLEEP_VISUAL, false);
|
||||
DoCast(m_creature, SPELL_SLEEP_VISUAL, false);
|
||||
}
|
||||
|
||||
void ClearSleeping()
|
||||
|
||||
@@ -72,7 +72,7 @@ struct TRINITY_DLL_DECL npc_aged_dying_ancient_kodoAI : public ScriptedAI
|
||||
DoScriptText(RAND(SAY_SMEED_HOME_1,SAY_SMEED_HOME_2,SAY_SMEED_HOME_3), pWho);
|
||||
|
||||
//spell have no implemented effect (dummy), so useful to notify spellHit
|
||||
m_creature->CastSpell(m_creature,SPELL_KODO_KOMBO_GOSSIP,true);
|
||||
DoCast(m_creature, SPELL_KODO_KOMBO_GOSSIP, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ struct TRINITY_DLL_DECL mobs_risen_husk_spiritAI : public ScriptedAI
|
||||
if (pDoneBy->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
if (damage >= m_creature->GetHealth() && CAST_PLR(pDoneBy)->GetQuestStatus(QUEST_WHATS_HAUNTING_WITCH_HILL) == QUEST_STATUS_INCOMPLETE)
|
||||
m_creature->CastSpell(pDoneBy, SPELL_SUMMON_RESTLESS_APPARITION, false);
|
||||
DoCast(pDoneBy, SPELL_SUMMON_RESTLESS_APPARITION, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ struct TRINITY_DLL_DECL boss_kurinnaxxAI : public ScriptedAI
|
||||
if (uiMortalWoundTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_MORTALWOUND);
|
||||
uiMortalWoundTimer = urand(2000,7000);;
|
||||
uiMortalWoundTimer = urand(2000,7000);
|
||||
} else uiMortalWoundTimer -= diff;
|
||||
|
||||
//Santrap spell
|
||||
|
||||
@@ -632,19 +632,19 @@ struct TRINITY_DLL_DECL npc_anachronos_the_ancientAI : public ScriptedAI
|
||||
Caelestrasz->GetMotionMaster()->MoveCharge(-8165,1530,65,7);
|
||||
break; //Text: sands will stop
|
||||
case 34:
|
||||
m_creature->CastSpell(plr, 23017, true);//Arcane Channeling
|
||||
DoCast(plr, 23017, true);//Arcane Channeling
|
||||
break;
|
||||
case 35:
|
||||
m_creature->CastSpell(-8088,1520.43,2.67,25158,true);
|
||||
break;
|
||||
case 36:
|
||||
m_creature->CastSpell(plr, 25159, true);
|
||||
DoCast(plr, 25159, true);
|
||||
break;
|
||||
case 37:
|
||||
m_creature->SummonGameObject(GO_GATE_OF_AHN_QIRAJ,-8130,1525,17.5,0,0,0,0,0,0);
|
||||
break;
|
||||
case 38:
|
||||
m_creature->CastSpell(plr, 25166, true);
|
||||
DoCast(plr, 25166, true);
|
||||
m_creature->SummonGameObject(GO_GLYPH_OF_AHN_QIRAJ,-8130,1525,17.5,0,0,0,0,0,0);
|
||||
break;
|
||||
case 39:
|
||||
|
||||
@@ -322,7 +322,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
|
||||
m_creature->StopMoving();
|
||||
|
||||
//Actual dark glare cast, maybe something missing here?
|
||||
m_creature->CastSpell(m_creature, SPELL_DARK_GLARE, false);
|
||||
DoCast(m_creature, SPELL_DARK_GLARE, false);
|
||||
|
||||
//Increase tick
|
||||
++DarkGlareTick;
|
||||
|
||||
@@ -485,7 +485,7 @@ struct TRINITY_DLL_DECL boss_veklorAI : public boss_twinemperorsAI
|
||||
{
|
||||
TwinReset();
|
||||
ShadowBolt_Timer = 0;
|
||||
Blizzard_Timer = 15000 + rand()%5000;;
|
||||
Blizzard_Timer = 15000 + rand()%5000;
|
||||
ArcaneBurst_Timer = 1000;
|
||||
Scorpions_Timer = 7000 + rand()%7000;
|
||||
|
||||
|
||||
@@ -288,7 +288,7 @@ struct TRINITY_DLL_DECL npc_pluckyAI : public ScriptedAI
|
||||
if (m_creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_PLUCKY_CHICKEN, false);
|
||||
DoCast(m_creature, SPELL_PLUCKY_CHICKEN, false);
|
||||
}
|
||||
|
||||
void ReceiveEmote(Player* pPlayer, uint32 uiTextEmote)
|
||||
@@ -299,7 +299,7 @@ struct TRINITY_DLL_DECL npc_pluckyAI : public ScriptedAI
|
||||
{
|
||||
m_creature->setFaction(FACTION_FRIENDLY);
|
||||
m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
m_creature->CastSpell(m_creature, SPELL_PLUCKY_HUMAN, false);
|
||||
DoCast(m_creature, SPELL_PLUCKY_HUMAN, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -311,7 +311,7 @@ struct TRINITY_DLL_DECL npc_pluckyAI : public ScriptedAI
|
||||
{
|
||||
m_creature->setFaction(FACTION_FRIENDLY);
|
||||
m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
m_creature->CastSpell(m_creature, SPELL_PLUCKY_HUMAN, false);
|
||||
DoCast(m_creature, SPELL_PLUCKY_HUMAN, false);
|
||||
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ struct MANGOS_DLL_DECL boss_amanitarAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_AMANITAR_EVENT, IN_PROGRESS);
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_MINI, false);
|
||||
DoCast(m_creature, SPELL_MINI, false);
|
||||
}
|
||||
|
||||
void SpawnAdds()
|
||||
@@ -187,7 +187,7 @@ struct MANGOS_DLL_DECL mob_amanitar_mushroomsAI : public Scripted_NoMovementAI
|
||||
if (m_creature->GetEntry() == NPC_HEALTHY_MUSHROOM && killer->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
m_creature->InterruptNonMeleeSpells(false);
|
||||
m_creature->CastSpell(killer, HEALTHY_MUSHROOM_SPELL_POTENT_FUNGUS, false);
|
||||
DoCast(killer, HEALTHY_MUSHROOM_SPELL_POTENT_FUNGUS, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+6
-6
@@ -271,7 +271,7 @@ struct MANGOS_DLL_DECL boss_jedoga_shadowseekerAI : public ScriptedAI
|
||||
DoScriptText(RAND(TEXT_SACRIFICE_2_1, TEXT_SACRIFICE_2_2), m_creature);
|
||||
|
||||
m_creature->InterruptNonMeleeSpells(false);
|
||||
m_creature->CastSpell(m_creature, SPELL_GIFT_OF_THE_HERALD, false);
|
||||
DoCast(m_creature, SPELL_GIFT_OF_THE_HERALD, false);
|
||||
|
||||
bOpFerok = false;
|
||||
bCanDown = true;
|
||||
@@ -303,7 +303,7 @@ struct MANGOS_DLL_DECL boss_jedoga_shadowseekerAI : public ScriptedAI
|
||||
|
||||
if (uiCycloneTimer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, HEROIC(SPELL_CYCLONE_STRIKE, SPELL_CYCLONE_STRIKE_H), false);
|
||||
DoCast(m_creature, HEROIC(SPELL_CYCLONE_STRIKE, SPELL_CYCLONE_STRIKE_H), false);
|
||||
uiCycloneTimer = urand(15000,30000);
|
||||
} else uiCycloneTimer -= diff;
|
||||
|
||||
@@ -363,7 +363,7 @@ struct MANGOS_DLL_DECL mob_jedoga_initiandAI : public ScriptedAI
|
||||
}
|
||||
else
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_SPHERE_VISUAL, false);
|
||||
DoCast(m_creature, SPELL_SPHERE_VISUAL, false);
|
||||
m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, true);
|
||||
m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE);
|
||||
@@ -461,7 +461,7 @@ struct MANGOS_DLL_DECL mob_jedoga_initiandAI : public ScriptedAI
|
||||
}
|
||||
if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS && !m_creature->HasAura(SPELL_SPHERE_VISUAL))
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_SPHERE_VISUAL, false);
|
||||
DoCast(m_creature, SPELL_SPHERE_VISUAL, false);
|
||||
m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, true);
|
||||
m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE);
|
||||
@@ -533,7 +533,7 @@ struct MANGOS_DLL_DECL npc_jedogas_aufseher_triggerAI : public Scripted_NoMoveme
|
||||
}
|
||||
if (!casted)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_BEAM_VISUAL_JEDOGAS_AUFSEHER_1, false);
|
||||
DoCast(m_creature, SPELL_BEAM_VISUAL_JEDOGAS_AUFSEHER_1, false);
|
||||
casted = true;
|
||||
}
|
||||
}
|
||||
@@ -541,7 +541,7 @@ struct MANGOS_DLL_DECL npc_jedogas_aufseher_triggerAI : public Scripted_NoMoveme
|
||||
{
|
||||
if (!casted2 && pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH))
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_BEAM_VISUAL_JEDOGAS_AUFSEHER_2, false);
|
||||
DoCast(m_creature, SPELL_BEAM_VISUAL_JEDOGAS_AUFSEHER_2, false);
|
||||
casted2 = true;
|
||||
}
|
||||
if (casted2 && !pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH))
|
||||
|
||||
@@ -134,7 +134,7 @@ struct TRINITY_DLL_DECL boss_anub_arakAI : public ScriptedAI
|
||||
|
||||
if (Channeling == true)
|
||||
{
|
||||
for(int ind = 0 ; ind < 4; ind++) m_creature->CastSpell(m_creature->getVictim(),SPELL_SUMMON_CARRION_BEETLES,true);
|
||||
for(int ind = 0 ; ind < 4; ind++) DoCast(m_creature->getVictim(), SPELL_SUMMON_CARRION_BEETLES, true);
|
||||
Channeling = false;
|
||||
|
||||
}
|
||||
@@ -226,7 +226,7 @@ struct TRINITY_DLL_DECL boss_anub_arakAI : public ScriptedAI
|
||||
{
|
||||
if (SPELL_LEECHING_SWARM_Timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature,SPELL_LEECHING_SWARM,true);
|
||||
DoCast(m_creature, SPELL_LEECHING_SWARM, true);
|
||||
|
||||
SPELL_LEECHING_SWARM_Timer = 19000;
|
||||
} else SPELL_LEECHING_SWARM_Timer -= diff;
|
||||
@@ -234,7 +234,7 @@ struct TRINITY_DLL_DECL boss_anub_arakAI : public ScriptedAI
|
||||
if (SPELL_CARRION_BEETLES_Timer <= diff)
|
||||
{
|
||||
Channeling = true;
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_CARRION_BEETLES,false);
|
||||
DoCast(m_creature->getVictim(), SPELL_CARRION_BEETLES, false);
|
||||
|
||||
SPELL_CARRION_BEETLES_Timer = 25000;
|
||||
} else SPELL_CARRION_BEETLES_Timer -= diff;
|
||||
@@ -261,7 +261,7 @@ struct TRINITY_DLL_DECL boss_anub_arakAI : public ScriptedAI
|
||||
VENOMANCER_Timer = 25000;
|
||||
DATTER_Timer = 32000;
|
||||
|
||||
m_creature->CastSpell(m_creature,SPELL_SUBMERGE,false);
|
||||
DoCast(m_creature, SPELL_SUBMERGE, false);
|
||||
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
+8
-7
@@ -169,8 +169,8 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI
|
||||
if (CurseFatigueTimer <= diff)
|
||||
{
|
||||
//WowWiki say "Curse of Fatigue-Kirk'thir will cast Curse of Fatigue on 2-3 targets periodically."
|
||||
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
|
||||
Unit *pTarget_1 = SelectUnit(SELECT_TARGET_RANDOM, 1);
|
||||
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
|
||||
Unit *pTarget_1 = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true);
|
||||
|
||||
DoCast(pTarget, HEROIC(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE));
|
||||
DoCast(pTarget_1, HEROIC(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE));
|
||||
@@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI
|
||||
} else CurseFatigueTimer -= diff;
|
||||
|
||||
if (!m_creature->HasAura(SPELL_FRENZY) && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 10)
|
||||
m_creature->CastSpell(m_creature,SPELL_FRENZY,true);
|
||||
DoCast(m_creature, SPELL_FRENZY, true);
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -201,6 +201,7 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI
|
||||
{
|
||||
Map::PlayerList const &players = pMap->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
if (itr->getSource())
|
||||
itr->getSource()->CompletedAchievement(AchievWatchHimDie);
|
||||
}
|
||||
}
|
||||
@@ -327,13 +328,13 @@ struct TRINITY_DLL_DECL npc_anub_ar_warriorAI : public ScriptedAI
|
||||
|
||||
if (StrikeTimer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_STRIKE, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_STRIKE, true);
|
||||
StrikeTimer = 15000;
|
||||
} else StrikeTimer -= diff;
|
||||
|
||||
if (CleaveTimer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_CLEAVE, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_CLEAVE, true);
|
||||
CleaveTimer = 17000;
|
||||
} else CleaveTimer -= diff;
|
||||
|
||||
@@ -358,7 +359,7 @@ struct TRINITY_DLL_DECL npc_watcher_gashraAI : public ScriptedAI
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
m_creature->CastSpell(m_creature,SPELL_ENRAGE,true);
|
||||
DoCast(m_creature, SPELL_ENRAGE, true);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -369,7 +370,7 @@ struct TRINITY_DLL_DECL npc_watcher_gashraAI : public ScriptedAI
|
||||
if (WebWrapTimer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
m_creature->CastSpell(pTarget, SPELL_WEB_WRAP,true);
|
||||
DoCast(pTarget, SPELL_WEB_WRAP, true);
|
||||
WebWrapTimer = 17000;
|
||||
} else WebWrapTimer -= diff;
|
||||
|
||||
|
||||
@@ -558,7 +558,7 @@ struct TRINITY_DLL_DECL npc_jennyAI : public ScriptedAI
|
||||
|
||||
void DamageTaken(Unit* pDone_by, uint32& uiDamage)
|
||||
{
|
||||
m_creature->CastSpell(m_creature,SPELL_DROP_CRATE,true);
|
||||
DoCast(m_creature, SPELL_DROP_CRATE, true);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* pWho)
|
||||
@@ -567,7 +567,7 @@ struct TRINITY_DLL_DECL npc_jennyAI : public ScriptedAI
|
||||
{
|
||||
if(CAST_PLR(m_creature->GetOwner())->GetQuestStatus(QUEST_LOADER_UP) == QUEST_STATUS_INCOMPLETE && m_creature->GetAura(SPELL_CRATES_CARRIED))
|
||||
{
|
||||
m_creature->CastSpell(CAST_PLR(m_creature->GetOwner()),SPELL_GIVE_JENNY_CREDIT,true); // Maybe is not working.
|
||||
DoCast(CAST_PLR(m_creature->GetOwner()), SPELL_GIVE_JENNY_CREDIT, true); // Maybe is not working.
|
||||
CAST_PLR(m_creature->GetOwner())->CompleteQuest(QUEST_LOADER_UP);
|
||||
m_creature->DisappearAndDie();
|
||||
}
|
||||
@@ -714,7 +714,7 @@ struct TRINITY_DLL_DECL npc_nesingwary_trapperAI : public ScriptedAI
|
||||
Phase_Timer = 1000;
|
||||
break;
|
||||
case 8:
|
||||
m_creature->CastSpell(m_creature,SPELL_TRAPPED,true);
|
||||
DoCast(m_creature, SPELL_TRAPPED, true);
|
||||
Phase = 0;
|
||||
break;
|
||||
}
|
||||
@@ -901,7 +901,7 @@ struct TRINITY_DLL_DECL npc_nexus_drake_hatchlingAI : public FollowerAI //The sp
|
||||
if (spell->Id == SPELL_DRAKE_HARPOON && caster->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
pHarpooner = CAST_PLR(caster);
|
||||
m_creature->CastSpell(m_creature,SPELL_RED_DRAGONBLOOD,true);
|
||||
DoCast(m_creature, SPELL_RED_DRAGONBLOOD, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -934,7 +934,7 @@ struct TRINITY_DLL_DECL npc_nexus_drake_hatchlingAI : public FollowerAI //The sp
|
||||
pDrakeAI->StartFollow(pHarpooner, 35, NULL);
|
||||
}
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_SUBDUED, true);
|
||||
DoCast(m_creature, SPELL_SUBDUED, true);
|
||||
pHarpooner->CastSpell(pHarpooner, SPELL_DRAKE_HATCHLING_SUBDUED, true);
|
||||
|
||||
m_creature->AttackStop();
|
||||
|
||||
@@ -91,7 +91,7 @@ struct TRINITY_DLL_DECL boss_drakkari_colossusAI : public ScriptedAI
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->addUnitState(UNIT_STAT_STUNNED);
|
||||
m_creature->CastSpell(m_creature,SPELL_EMERGE,false);
|
||||
DoCast(m_creature, SPELL_EMERGE, false);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -103,7 +103,7 @@ struct TRINITY_DLL_DECL boss_drakkari_colossusAI : public ScriptedAI
|
||||
if (Summoned == false && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 50 && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() > 6)
|
||||
{
|
||||
PrepareToSummonElemental();
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_EMERGE_2, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_EMERGE_2, true);
|
||||
Summoned = true;
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ struct TRINITY_DLL_DECL boss_drakkari_colossusAI : public ScriptedAI
|
||||
{
|
||||
if (!m_creature->hasUnitState(UNIT_STAT_STUNNED))
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_MIGHTY_BLOW,true);
|
||||
DoCast(m_creature->getVictim(), SPELL_MIGHTY_BLOW, true);
|
||||
}
|
||||
|
||||
MightyBlowTimer = 10000;
|
||||
@@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL boss_drakkari_elementalAI : public ScriptedAI
|
||||
if(GoToColossus == false && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 50)
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->CastSpell(Colossus ,SPELL_MERGE,true);
|
||||
DoCast(Colossus, SPELL_MERGE, true);
|
||||
|
||||
GoToColossus = true;
|
||||
PreparationDone = true;
|
||||
@@ -189,7 +189,7 @@ struct TRINITY_DLL_DECL boss_drakkari_elementalAI : public ScriptedAI
|
||||
{
|
||||
m_creature->addUnitState(UNIT_STAT_STUNNED);
|
||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||
m_creature->CastSpell(Colossus ,SPELL_MERGE,true);
|
||||
DoCast(Colossus, SPELL_MERGE, true);
|
||||
|
||||
PreparationDone = false;
|
||||
|
||||
@@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_drakkari_elementalAI : public ScriptedAI
|
||||
if(m_creature->GetVisibility() == VISIBILITY_ON)
|
||||
{
|
||||
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
|
||||
m_creature->CastSpell(pTarget,SPELL_SURGE,false);
|
||||
DoCast(pTarget, SPELL_SURGE, false);
|
||||
}
|
||||
|
||||
SurgeTimer = 7000;
|
||||
|
||||
@@ -65,7 +65,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, m_creature);
|
||||
m_creature->CastSpell(m_creature,SPELL_MOJO_FRENZY,true);
|
||||
DoCast(m_creature, SPELL_MOJO_FRENZY, true);
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MOORABI_EVENT, IN_PROGRESS);
|
||||
@@ -87,13 +87,13 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
|
||||
if (SPELL_GROUND_TREMOR_TIMER <= diff)
|
||||
{
|
||||
DoScriptText(SAY_QUAKE, m_creature);
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_QUAKE,true);
|
||||
DoCast(m_creature->getVictim(), SPELL_QUAKE, true);
|
||||
SPELL_GROUND_TREMOR_TIMER = 10000;
|
||||
} else SPELL_GROUND_TREMOR_TIMER -= diff;
|
||||
|
||||
if (SPELL_NUMBING_SHOUT_TIMER <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_NUMBING_ROAR,true);
|
||||
DoCast(m_creature->getVictim(), SPELL_NUMBING_ROAR, true);
|
||||
SPELL_NUMBING_SHOUT_TIMER = 10000;
|
||||
} else SPELL_NUMBING_SHOUT_TIMER -=diff;
|
||||
|
||||
@@ -110,7 +110,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
|
||||
{
|
||||
DoScriptText(EMOTE_TRANSFORM, m_creature);
|
||||
DoScriptText(SAY_TRANSFORM, m_creature);
|
||||
m_creature->CastSpell(m_creature,SPELL_TRANSFORMATION,false);
|
||||
DoCast(m_creature, SPELL_TRANSFORMATION, false);
|
||||
SPELL_TRANSFORMATION_TIMER = 10000;
|
||||
} else SPELL_TRANSFORMATION_TIMER -= diff;
|
||||
|
||||
@@ -118,20 +118,20 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
|
||||
if (SPELL_GROUND_TREMOR_TIMER <= diff)
|
||||
{
|
||||
DoScriptText(SAY_QUAKE, m_creature);
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_GROUND_TREMOR,true);
|
||||
DoCast(m_creature->getVictim(), SPELL_GROUND_TREMOR, true);
|
||||
SPELL_GROUND_TREMOR_TIMER = 10000;
|
||||
} else SPELL_GROUND_TREMOR_TIMER -= diff;
|
||||
|
||||
//CAST NUMBING SHOUT || DETERMINED_STAB
|
||||
if (SPELL_NUMBING_SHOUT_TIMER <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_NUMBING_SHOUT,true);
|
||||
DoCast(m_creature->getVictim(), SPELL_NUMBING_SHOUT, true);
|
||||
SPELL_NUMBING_SHOUT_TIMER = 10000;
|
||||
} else SPELL_NUMBING_SHOUT_TIMER -= diff;
|
||||
|
||||
if (SPELL_DETERMINED_STAB_TIMER <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_DETERMINED_STAB,true);
|
||||
DoCast(m_creature->getVictim(), SPELL_DETERMINED_STAB, true);
|
||||
SPELL_DETERMINED_STAB_TIMER = 8000;
|
||||
} else SPELL_DETERMINED_STAB_TIMER -= diff;
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ struct TRINITY_DLL_DECL mob_slad_ran_constrictorAI : public ScriptedAI
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_GRIP_OF_SLAD_RAN);
|
||||
uiGripOfSladRanTimer = 5000;
|
||||
} else uiGripOfSladRanTimer -= diff;;
|
||||
} else uiGripOfSladRanTimer -= diff;
|
||||
}
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
|
||||
@@ -162,7 +162,7 @@ struct TRINITY_DLL_DECL boss_keristraszaAI : public ScriptedAI
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->CastSpell(m_creature, SPELL_FROZEN_PRISON, false);
|
||||
DoCast(m_creature, SPELL_FROZEN_PRISON, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -677,7 +677,7 @@ struct TRINITY_DLL_DECL dummy_dragonAI : public ScriptedAI
|
||||
// Twilight Revenge to main boss
|
||||
if (Unit* pSartharion = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_SARTHARION)))
|
||||
if (pSartharion->isAlive())
|
||||
m_creature->CastSpell(pSartharion,SPELL_TWILIGHT_REVENGE,true);
|
||||
DoCast(pSartharion, SPELL_TWILIGHT_REVENGE, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -238,13 +238,13 @@ struct TRINITY_DLL_DECL npc_victorious_challengerAI : public ScriptedAI
|
||||
|
||||
if(RendTimer < diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_REND_VC,true);
|
||||
DoCast(m_creature->getVictim(), SPELL_REND_VC, true);
|
||||
RendTimer = 15000;
|
||||
}else RendTimer -= diff;
|
||||
|
||||
if(SunderArmorTimer < diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_SUNDER_ARMOR, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_SUNDER_ARMOR, true);
|
||||
SunderArmorTimer = 10000;
|
||||
}else SunderArmorTimer -= diff;
|
||||
|
||||
|
||||
@@ -231,7 +231,7 @@ struct TRINITY_DLL_DECL boss_ionarAI : public ScriptedAI
|
||||
else if (m_uiSparkAtHomeCount == MAX_SPARKS)
|
||||
{
|
||||
m_creature->SetVisibility(VISIBILITY_ON);
|
||||
m_creature->CastSpell(m_creature, SPELL_SPARK_DESPAWN, false);
|
||||
DoCast(m_creature, SPELL_SPARK_DESPAWN, false);
|
||||
|
||||
DespawnSpark();
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI
|
||||
if (m_uiResumePulsingShockwave_Timer <= uiDiff)
|
||||
{
|
||||
//breaks at movement, can we assume when it's time, this spell is casted and also must stop movement?
|
||||
m_creature->CastSpell(m_creature, SPELL_PULSING_SHOCKWAVE_AURA, true);
|
||||
DoCast(m_creature, SPELL_PULSING_SHOCKWAVE_AURA, true);
|
||||
|
||||
DoCast(m_creature, m_bIsHeroic ? SPELL_PULSING_SHOCKWAVE_H : SPELL_PULSING_SHOCKWAVE_N); // need core support
|
||||
m_bIsAura = true;
|
||||
|
||||
@@ -293,7 +293,7 @@ struct TRINITY_DLL_DECL boss_volkhanAI : public ScriptedAI
|
||||
|
||||
m_bHasTemper = true;
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_TEMPER, false);
|
||||
DoCast(m_creature, SPELL_TEMPER, false);
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
@@ -188,7 +188,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI
|
||||
{
|
||||
Unit *pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO, 0);
|
||||
if (pTarget && pTarget->isAlive() && pTarget->GetTypeId() == TYPEID_PLAYER)
|
||||
m_creature->CastSpell(pTarget, Heroic ? SPELL_SHADOWBOLT_HEROIC : SPELL_SHADOWBOLT, true);
|
||||
m_creature->CastSpell(pTarget, HEROIC(SPELL_SHADOWBOLT, SPELL_SHADOWBOLT_HEROIC), true);
|
||||
ShadowboltTimer = 10000;
|
||||
} else ShadowboltTimer -= diff;
|
||||
|
||||
@@ -199,8 +199,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI
|
||||
DoScriptText(SAY_SKELETONS, m_creature);
|
||||
for (uint8 i = 0; i < 5; ++i)
|
||||
{
|
||||
Skeleton = m_creature->SummonCreature(CREATURE_SKELETON, SkeletonSpawnPoint[i][0], SkeletonSpawnPoint[i][1] , SKELETONSPAWN_Z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
|
||||
if (Skeleton)
|
||||
if (Skeleton = m_creature->SummonCreature(CREATURE_SKELETON, SkeletonSpawnPoint[i][0], SkeletonSpawnPoint[i][1] , SKELETONSPAWN_Z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000))
|
||||
{
|
||||
Skeleton->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||
Skeleton->GetMotionMaster()->MovePoint(0, m_creature->GetPositionX(), m_creature->GetPositionY() , m_creature->GetPositionZ());
|
||||
@@ -213,8 +212,8 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI
|
||||
|
||||
if (FrostTombTimer <= diff)
|
||||
{
|
||||
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1);
|
||||
if (pTarget && pTarget->isAlive() && pTarget->GetTypeId() == TYPEID_PLAYER)
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
if (pTarget->isAlive())
|
||||
{
|
||||
//DoCast(pTarget, SPELL_FROST_TOMB_SUMMON, true);
|
||||
if (Creature *pChains = m_creature->SummonCreature(CREATURE_FROSTTOMB, pTarget->GetPositionX(), pTarget->GetPositionY(), pTarget->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 20000))
|
||||
@@ -249,7 +248,7 @@ struct TRINITY_DLL_DECL mob_vrykul_skeletonAI : public ScriptedAI
|
||||
void Reset()
|
||||
{
|
||||
Respawn_Time = 12000;
|
||||
Decrepify_Timer = 10000 + rand()%20000;
|
||||
Decrepify_Timer = urand(10000,20000);
|
||||
isDead = false;
|
||||
}
|
||||
|
||||
@@ -282,7 +281,7 @@ struct TRINITY_DLL_DECL mob_vrykul_skeletonAI : public ScriptedAI
|
||||
isDead = false;
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
m_creature->CastSpell(m_creature,SPELL_SCOURGE_RESSURRECTION,true);
|
||||
DoCast(m_creature, SPELL_SCOURGE_RESSURRECTION, true);
|
||||
|
||||
if (m_creature->getVictim())
|
||||
{
|
||||
|
||||
@@ -95,14 +95,14 @@ struct TRINITY_DLL_DECL boss_zuramatAI : public ScriptedAI
|
||||
|
||||
if (SpellSummonVoidTimer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_SUMMON_VOID_SENTRY,false);
|
||||
DoCast(m_creature->getVictim(), SPELL_SUMMON_VOID_SENTRY, false);
|
||||
SpellSummonVoidTimer = 20000;
|
||||
} else SpellSummonVoidTimer -=diff;
|
||||
|
||||
if(SpellVoidShiftedTimer < diff && shiftcast)
|
||||
{
|
||||
if (Shifted)
|
||||
m_creature->CastSpell(Shifted,SPELL_VOID_SHIFTED,false);
|
||||
DoCast(Shifted, SPELL_VOID_SHIFTED, false);
|
||||
shiftcast = false;
|
||||
} else SpellVoidShiftedTimer -=diff;
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@ struct TRINITY_DLL_DECL npc_drakuru_shacklesAI : public ScriptedAI
|
||||
m_creature->SetInFront(Rageclaw);
|
||||
Rageclaw->SetInFront(m_creature);
|
||||
|
||||
m_creature->CastSpell(Rageclaw, SPELL_LEFT_CHAIN, true);
|
||||
m_creature->CastSpell(Rageclaw, SPELL_RIGHT_CHAIN, true);
|
||||
DoCast(Rageclaw, SPELL_LEFT_CHAIN, true);
|
||||
DoCast(Rageclaw, SPELL_RIGHT_CHAIN, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -119,7 +119,7 @@ struct TRINITY_DLL_DECL npc_captured_rageclawAI : public ScriptedAI
|
||||
Despawn = false;
|
||||
DespawnTimer = 0;
|
||||
m_creature->setFaction(35);
|
||||
m_creature->CastSpell(m_creature, SPELL_KNEEL, true); // Little Hack for kneel - Thanks Illy :P
|
||||
DoCast(m_creature, SPELL_KNEEL, true); // Little Hack for kneel - Thanks Illy :P
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit *who){}
|
||||
|
||||
+3
-3
@@ -281,7 +281,7 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI
|
||||
if (m_creature->IsNonMeleeSpellCasted(false))
|
||||
m_creature->InterruptNonMeleeSpells(true);
|
||||
|
||||
m_creature->CastSpell(m_creature,SPELL_ETHEREAL_APPRENTICE,true);
|
||||
DoCast(m_creature, SPELL_ETHEREAL_APPRENTICE, true);
|
||||
m_creature->ForcedDespawn();
|
||||
return;
|
||||
} else Apprentice_Timer -= diff;
|
||||
@@ -322,10 +322,10 @@ struct TRINITY_DLL_DECL mob_ethereal_apprenticeAI : public ScriptedAI
|
||||
{
|
||||
if (isFireboltTurn)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_ETHEREAL_APPRENTICE_FIREBOLT, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_ETHEREAL_APPRENTICE_FIREBOLT, true);
|
||||
isFireboltTurn = false;
|
||||
}else{
|
||||
m_creature->CastSpell(m_creature->getVictim(), SPELL_ETHEREAL_APPRENTICE_FROSTBOLT, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_ETHEREAL_APPRENTICE_FROSTBOLT, true);
|
||||
isFireboltTurn = true;
|
||||
}
|
||||
Cast_Timer = 3000;
|
||||
|
||||
+1
-1
@@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI
|
||||
if (Blink)
|
||||
{
|
||||
DoCast(m_creature, HEROIC(SPELL_ARCANE_EXPLOSION, H_SPELL_ARCANE_EXPLOSION));
|
||||
m_creature->CastSpell(m_creature,SPELL_ARCANE_BUBBLE,true);
|
||||
DoCast(m_creature, SPELL_ARCANE_BUBBLE, true);
|
||||
Blink = false;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ struct TRINITY_DLL_DECL boss_ambassador_hellmawAI : public npc_escortAI
|
||||
if (m_pInstance && m_creature->isAlive())
|
||||
{
|
||||
if (m_pInstance->GetData(TYPE_OVERSEER) != DONE)
|
||||
m_creature->CastSpell(m_creature, SPELL_BANISH, true);
|
||||
DoCast(m_creature, SPELL_BANISH, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -248,7 +248,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
|
||||
if (ShadowBoltVolley_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature, SPELL_SHADOWBOLT_VOLLEY);
|
||||
ShadowBoltVolley_Timer = 15000 + rand()%15000;;
|
||||
ShadowBoltVolley_Timer = 15000 + rand()%15000;
|
||||
} else ShadowBoltVolley_Timer -= diff;
|
||||
|
||||
if (HeroicMode && banish_Timer <= diff)
|
||||
|
||||
@@ -368,7 +368,7 @@ struct TRINITY_DLL_DECL boss_illidan_stormrageAI : public ScriptedAI
|
||||
boss_illidan_stormrageAI(Creature* c) : ScriptedAI(c), Summons(m_creature)
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
|
||||
DoCast(m_creature, SPELL_DUAL_WIELD, true);
|
||||
|
||||
SpellEntry *TempSpell = GET_SPELL(SPELL_SHADOWFIEND_PASSIVE);
|
||||
if (TempSpell)
|
||||
@@ -783,7 +783,7 @@ struct TRINITY_DLL_DECL boss_illidan_stormrageAI : public ScriptedAI
|
||||
case EVENT_PARASITIC_SHADOWFIEND:
|
||||
{
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 200, true))
|
||||
m_creature->CastSpell(pTarget, SPELL_PARASITIC_SHADOWFIEND, true);
|
||||
DoCast(pTarget, SPELL_PARASITIC_SHADOWFIEND, true);
|
||||
Timer[EVENT_PARASITIC_SHADOWFIEND] = 35000 + rand()%10000;
|
||||
}
|
||||
break;
|
||||
@@ -1709,7 +1709,7 @@ struct TRINITY_DLL_DECL shadow_demonAI : public ScriptedAI
|
||||
void Reset()
|
||||
{
|
||||
TargetGUID = 0;
|
||||
m_creature->CastSpell(m_creature, SPELL_SHADOW_DEMON_PASSIVE, true);
|
||||
DoCast(m_creature, SPELL_SHADOW_DEMON_PASSIVE, true);
|
||||
}
|
||||
|
||||
void JustDied(Unit *killer)
|
||||
@@ -2059,8 +2059,8 @@ void boss_illidan_stormrageAI::SummonFlamesOfAzzinoth()
|
||||
|
||||
void boss_illidan_stormrageAI::SummonMaiev()
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_SHADOW_PRISON, true);
|
||||
m_creature->CastSpell(m_creature, 40403, true);
|
||||
DoCast(m_creature, SPELL_SHADOW_PRISON, true);
|
||||
DoCast(m_creature, 40403, true);
|
||||
if (!MaievGUID) // If Maiev cannot be summoned, reset the encounter and post some errors to the console.
|
||||
{
|
||||
EnterEvadeMode();
|
||||
|
||||
@@ -109,7 +109,7 @@ struct TRINITY_DLL_DECL npc_enslaved_soulAI : public ScriptedAI
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, ENSLAVED_SOUL_PASSIVE, true);
|
||||
DoCast(m_creature, ENSLAVED_SOUL_PASSIVE, true);
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
||||
@@ -260,7 +260,7 @@ struct TRINITY_DLL_DECL boss_reliquary_of_soulsAI : public ScriptedAI
|
||||
if (Phase == 3)
|
||||
{
|
||||
if (!Essence->isAlive())
|
||||
m_creature->CastSpell(m_creature, 7, true);
|
||||
DoCast(m_creature, 7, true);
|
||||
else return;
|
||||
}
|
||||
else
|
||||
@@ -372,9 +372,9 @@ struct TRINITY_DLL_DECL boss_essence_of_sufferingAI : public ScriptedAI
|
||||
{
|
||||
DoScriptText(SUFF_SAY_FREED, m_creature);
|
||||
DoZoneInCombat();
|
||||
m_creature->CastSpell(m_creature, AURA_OF_SUFFERING, true); // linked aura need core support
|
||||
m_creature->CastSpell(m_creature, ESSENCE_OF_SUFFERING_PASSIVE, true);
|
||||
m_creature->CastSpell(m_creature, ESSENCE_OF_SUFFERING_PASSIVE2, true);
|
||||
DoCast(m_creature, AURA_OF_SUFFERING, true); // linked aura need core support
|
||||
DoCast(m_creature, ESSENCE_OF_SUFFERING_PASSIVE, true);
|
||||
DoCast(m_creature, ESSENCE_OF_SUFFERING_PASSIVE2, true);
|
||||
}
|
||||
else return;
|
||||
}
|
||||
@@ -509,7 +509,7 @@ struct TRINITY_DLL_DECL boss_essence_of_desireAI : public ScriptedAI
|
||||
if (RuneShieldTimer <= diff)
|
||||
{
|
||||
m_creature->InterruptNonMeleeSpells(false);
|
||||
m_creature->CastSpell(m_creature, SPELL_RUNE_SHIELD, true);
|
||||
DoCast(m_creature, SPELL_RUNE_SHIELD, true);
|
||||
SoulShockTimer += 2000;
|
||||
DeadenTimer += 2000;
|
||||
RuneShieldTimer = 60000;
|
||||
|
||||
@@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL boss_supremusAI : public ScriptedAI
|
||||
switch(eventId)
|
||||
{
|
||||
case EVENT_BERSERK:
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
break;
|
||||
case EVENT_FLAME:
|
||||
DoCast(m_creature, SPELL_MOLTEN_PUNCH);
|
||||
|
||||
@@ -99,7 +99,7 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI
|
||||
if (spell->Id == SPELL_HURL_SPINE && m_creature->HasAura(SPELL_TIDAL_SHIELD))
|
||||
{
|
||||
m_creature->RemoveAurasDueToSpell(SPELL_TIDAL_SHIELD);
|
||||
m_creature->CastSpell(m_creature, SPELL_TIDAL_BURST, true);
|
||||
DoCast(m_creature, SPELL_TIDAL_BURST, true);
|
||||
ResetTimer();
|
||||
}
|
||||
}
|
||||
@@ -145,12 +145,12 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI
|
||||
switch(eventId)
|
||||
{
|
||||
case EVENT_SHIELD:
|
||||
m_creature->CastSpell(m_creature, SPELL_TIDAL_SHIELD, true);
|
||||
DoCast(m_creature, SPELL_TIDAL_SHIELD, true);
|
||||
ResetTimer(45000);
|
||||
break;
|
||||
case EVENT_BERSERK:
|
||||
DoScriptText(SAY_ENRAGE2, m_creature);
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
events.DelayEvents(15000, GCD_YELL);
|
||||
break;
|
||||
case EVENT_SPINE:
|
||||
@@ -159,7 +159,7 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI
|
||||
if (!pTarget) pTarget = m_creature->getVictim();
|
||||
if (pTarget)
|
||||
{
|
||||
m_creature->CastSpell(pTarget, SPELL_IMPALING_SPINE, true);
|
||||
DoCast(pTarget, SPELL_IMPALING_SPINE, true);
|
||||
SpineTargetGUID = pTarget->GetGUID();
|
||||
//must let target summon, otherwise you cannot click the spine
|
||||
pTarget->SummonGameObject(GOBJECT_SPINE, pTarget->GetPositionX(), pTarget->GetPositionY(), pTarget->GetPositionZ(), m_creature->GetOrientation(), 0, 0, 0, 0, 30);
|
||||
@@ -172,11 +172,11 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI
|
||||
}
|
||||
case EVENT_NEEDLE:
|
||||
{
|
||||
//m_creature->CastSpell(m_creature, SPELL_NEEDLE_SPINE, true);
|
||||
//DoCast(m_creature, SPELL_NEEDLE_SPINE, true);
|
||||
std::list<Unit*> pTargets;
|
||||
SelectTargetList(pTargets, 3, SELECT_TARGET_RANDOM, 80, true);
|
||||
for (std::list<Unit*>::iterator i = pTargets.begin(); i != pTargets.end(); ++i)
|
||||
m_creature->CastSpell(*i, 39835, true);
|
||||
DoCast(*i, 39835, true);
|
||||
events.ScheduleEvent(EVENT_NEEDLE, urand(15000,25000), GCD_CAST);
|
||||
events.DelayEvents(1500, GCD_CAST);
|
||||
return;
|
||||
|
||||
@@ -157,9 +157,9 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance
|
||||
if (m_auiEncounter[1] == DONE)HandleGameObject(NULL,true,pGo);break;
|
||||
case 185478: ShadeOfAkamaDoor = pGo->GetGUID();break;
|
||||
case 185480: CommonDoor = pGo->GetGUID();
|
||||
if (m_auiEncounter[3] == DONE)HandleGameObject(NULL,true,pGo);;break;
|
||||
if (m_auiEncounter[3] == DONE)HandleGameObject(NULL,true,pGo);break;
|
||||
case 186153: TeronDoor = pGo->GetGUID();
|
||||
if (m_auiEncounter[3] == DONE)HandleGameObject(NULL,true,pGo);;break;
|
||||
if (m_auiEncounter[3] == DONE)HandleGameObject(NULL,true,pGo);break;
|
||||
case 185892: GuurtogDoor = pGo->GetGUID();
|
||||
if (m_auiEncounter[4] == DONE)HandleGameObject(NULL,true,pGo);break;
|
||||
case 185479: TempleDoor = pGo->GetGUID();
|
||||
|
||||
@@ -264,7 +264,7 @@ struct TRINITY_DLL_DECL npc_daranelleAI : public ScriptedAI
|
||||
{
|
||||
DoScriptText(SAY_SPELL_INFLUENCE, m_creature, who);
|
||||
//TODO: Move the below to updateAI and run if this statement == true
|
||||
m_creature->CastSpell(who,37028,true);
|
||||
DoCast(who, 37028, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -897,7 +897,7 @@ struct TRINITY_DLL_DECL mob_shield_generator_channelAI : public ScriptedAI
|
||||
//start visual channel
|
||||
if (!Casted || !Vashj->HasAura(SPELL_MAGIC_BARRIER))
|
||||
{
|
||||
m_creature->CastSpell(Vashj,SPELL_MAGIC_BARRIER,true);
|
||||
DoCast(Vashj, SPELL_MAGIC_BARRIER, true);
|
||||
Casted = true;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -198,7 +198,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI
|
||||
m_creature->SetDisplayId(MODEL_NIGHTELF);
|
||||
m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0);
|
||||
m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
|
||||
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
|
||||
DoCast(m_creature, SPELL_DUAL_WIELD, true);
|
||||
m_creature->SetCorpseDelay(1000*60*60);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, NOT_STARTED);
|
||||
@@ -469,7 +469,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI
|
||||
// will cast only when in range of spell
|
||||
if (m_creature->IsWithinDist(m_creature->getVictim(), 30))
|
||||
{
|
||||
//m_creature->CastSpell(m_creature->getVictim(), SPELL_CHAOS_BLAST, true);
|
||||
//DoCast(m_creature->getVictim(), SPELL_CHAOS_BLAST, true);
|
||||
int damage = 100;
|
||||
m_creature->CastCustomSpell(m_creature->getVictim(), SPELL_CHAOS_BLAST, &damage, NULL, NULL, false, NULL, NULL, m_creature->GetGUID());
|
||||
}
|
||||
@@ -592,7 +592,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blind_demonformAI : public ScriptedAI
|
||||
void JustDied(Unit *victim)
|
||||
{
|
||||
//invisibility (blizzlike, at the end of the fight he doesn't die, he disappears)
|
||||
m_creature->CastSpell(m_creature, 8149, true);
|
||||
DoCast(m_creature, 8149, true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
@@ -614,7 +614,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blind_demonformAI : public ScriptedAI
|
||||
// will cast only when in range od spell
|
||||
if (m_creature->IsWithinDist(m_creature->getVictim(), 30))
|
||||
{
|
||||
//m_creature->CastSpell(m_creature->getVictim(),SPELL_CHAOS_BLAST,true);
|
||||
//DoCast(m_creature->getVictim(), SPELL_CHAOS_BLAST, true);
|
||||
int damage = 100;
|
||||
m_creature->CastCustomSpell(m_creature->getVictim(), SPELL_CHAOS_BLAST, &damage, NULL, NULL, false, NULL, NULL, m_creature->GetGUID());
|
||||
ChaosBlast_Timer = 3000;
|
||||
@@ -628,7 +628,7 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI
|
||||
{
|
||||
mob_greyheart_spellbinderAI(Creature *c) : ScriptedAI(c)
|
||||
{
|
||||
pInstance = c->GetInstanceData();;
|
||||
pInstance = c->GetInstanceData();
|
||||
leotherasGUID = 0;
|
||||
AddedBanish = false;
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ struct TRINITY_DLL_DECL boss_high_king_maulgarAI : public ScriptedAI
|
||||
Charging_Timer = 0;
|
||||
Roar_Timer = 0;
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, false);
|
||||
DoCast(m_creature, SPELL_DUAL_WIELD, false);
|
||||
|
||||
Phase2 = false;
|
||||
|
||||
@@ -258,7 +258,7 @@ struct TRINITY_DLL_DECL boss_high_king_maulgarAI : public ScriptedAI
|
||||
Phase2 = true;
|
||||
DoScriptText(SAY_ENRAGE, m_creature);
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
|
||||
DoCast(m_creature, SPELL_DUAL_WIELD, true);
|
||||
m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
|
||||
m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
|
||||
}
|
||||
|
||||
+13
-13
@@ -109,7 +109,7 @@ struct TRINITY_DLL_DECL mob_abyssalAI : public ScriptedAI
|
||||
{
|
||||
if (trigger == 2 && spell->Id == SPELL_BLAZE_TARGET)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_BLAZE_TRAP, true);
|
||||
DoCast(m_creature, SPELL_BLAZE_TRAP, true);
|
||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||
Despawn_Timer = 130000;
|
||||
}
|
||||
@@ -122,7 +122,7 @@ struct TRINITY_DLL_DECL mob_abyssalAI : public ScriptedAI
|
||||
if (trigger == 1) //debris
|
||||
{
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
m_creature->CastSpell(m_creature, SPELL_DEBRIS_VISUAL, true);
|
||||
DoCast(m_creature, SPELL_DEBRIS_VISUAL, true);
|
||||
FireBlast_Timer = 5000;
|
||||
Despawn_Timer = 10000;
|
||||
}
|
||||
@@ -140,7 +140,7 @@ struct TRINITY_DLL_DECL mob_abyssalAI : public ScriptedAI
|
||||
{
|
||||
if (FireBlast_Timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_DEBRIS_DAMAGE, true);
|
||||
DoCast(m_creature, SPELL_DEBRIS_DAMAGE, true);
|
||||
trigger = 3;
|
||||
} else FireBlast_Timer -= diff;
|
||||
}
|
||||
@@ -220,7 +220,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
m_creature->addUnitState(UNIT_STAT_STUNNED);
|
||||
m_creature->CastSpell(m_creature, SPELL_SHADOW_CAGE_C, true);
|
||||
DoCast(m_creature, SPELL_SHADOW_CAGE_C, true);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
@@ -271,7 +271,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
|
||||
if (ClickerNum >= CLICKERS_COUNT && !m_creature->HasAura(SPELL_SHADOW_CAGE))
|
||||
{
|
||||
DoScriptText(SAY_BANISH, m_creature);
|
||||
m_creature->CastSpell(m_creature, SPELL_SHADOW_CAGE, true);
|
||||
DoCast(m_creature, SPELL_SHADOW_CAGE, true);
|
||||
}
|
||||
else if (ClickerNum < CLICKERS_COUNT && m_creature->HasAura(SPELL_SHADOW_CAGE))
|
||||
m_creature->RemoveAurasDueToSpell(SPELL_SHADOW_CAGE);
|
||||
@@ -330,7 +330,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
|
||||
|
||||
if (Berserk_Timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
DoScriptText(EMOTE_BERSERK, m_creature);
|
||||
Berserk_Timer = 60000;
|
||||
} else Berserk_Timer -= diff;
|
||||
@@ -357,7 +357,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
|
||||
// to avoid blastnova interruption
|
||||
if (!m_creature->IsNonMeleeSpellCasted(false))
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_QUAKE_TRIGGER, true);
|
||||
DoCast(m_creature, SPELL_QUAKE_TRIGGER, true);
|
||||
Quake_Timer = 50000;
|
||||
}
|
||||
} else Quake_Timer -= diff;
|
||||
@@ -372,7 +372,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
|
||||
if (summon)
|
||||
{
|
||||
CAST_AI(mob_abyssalAI, summon->AI())->SetTrigger(2);
|
||||
m_creature->CastSpell(summon, SPELL_BLAZE_TARGET, true);
|
||||
DoCast(summon, SPELL_BLAZE_TARGET, true);
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
@@ -385,8 +385,8 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
|
||||
{
|
||||
Phase3 = true;
|
||||
DoScriptText(SAY_CHAMBER_DESTROY, m_creature);
|
||||
m_creature->CastSpell(m_creature, SPELL_CAMERA_SHAKE, true);
|
||||
m_creature->CastSpell(m_creature, SPELL_DEBRIS_KNOCKDOWN, true);
|
||||
DoCast(m_creature, SPELL_CAMERA_SHAKE, true);
|
||||
DoCast(m_creature, SPELL_DEBRIS_KNOCKDOWN, true);
|
||||
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_COLLAPSE, true);
|
||||
@@ -451,7 +451,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_CHANNELER_EVENT, NOT_STARTED);
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_SHADOW_GRASP_C, false);
|
||||
DoCast(m_creature, SPELL_SHADOW_GRASP_C, false);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature *summon)
|
||||
@@ -462,7 +462,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI
|
||||
void DamageTaken(Unit*, uint32 &damage)
|
||||
{
|
||||
if (damage >= m_creature->GetHealth())
|
||||
m_creature->CastSpell(m_creature, SPELL_SOUL_TRANSFER, true);
|
||||
DoCast(m_creature, SPELL_SOUL_TRANSFER, true);
|
||||
}
|
||||
|
||||
void JustDied(Unit* who)
|
||||
@@ -499,7 +499,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI
|
||||
if (Infernal_Timer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
m_creature->CastSpell(pTarget, SPELL_BURNING_ABYSSAL, true);
|
||||
DoCast(pTarget, SPELL_BURNING_ABYSSAL, true);
|
||||
Infernal_Timer = 30000 + rand()%10000;
|
||||
} else Infernal_Timer -= diff;
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ struct TRINITY_DLL_DECL npc_ancestral_wolfAI : public npc_escortAI
|
||||
void Reset()
|
||||
{
|
||||
pRyga = NULL;
|
||||
m_creature->CastSpell(m_creature, SPELL_ANCESTRAL_WOLF_BUFF, true);
|
||||
DoCast(m_creature, SPELL_ANCESTRAL_WOLF_BUFF, true);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* pWho)
|
||||
|
||||
@@ -566,7 +566,7 @@ struct TRINITY_DLL_DECL npc_maghar_captiveAI : public npc_escortAI
|
||||
|
||||
void Aggro(Unit* pWho)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_EARTHBIND_TOTEM, false);
|
||||
DoCast(m_creature, SPELL_EARTHBIND_TOTEM, false);
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 uiPointId)
|
||||
@@ -808,7 +808,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI
|
||||
{
|
||||
if (spell->Id == SPELL_SPARROWHAWK_NET && CAST_PLR(caster)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
m_creature->CastSpell(caster, SPELL_ITEM_CAPTIVE_SPARROWHAWK, true);
|
||||
DoCast(caster, SPELL_ITEM_CAPTIVE_SPARROWHAWK, true);
|
||||
m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||
m_creature->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
|
||||
|
||||
if (Berserk_Timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
|
||||
DoCast(m_creature, SPELL_BERSERK, true);
|
||||
Berserk_Timer = 60000;
|
||||
} else Berserk_Timer -= diff;
|
||||
|
||||
@@ -235,7 +235,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
|
||||
Platforms_Move_Timer = 30000+rand()%5000;
|
||||
break;
|
||||
case WE_QUILL:
|
||||
m_creature->CastSpell(m_creature, SPELL_FLAME_QUILLS, true);
|
||||
DoCast(m_creature, SPELL_FLAME_QUILLS, true);
|
||||
Platforms_Move_Timer = 1;
|
||||
WaitTimer = 10000;
|
||||
WaitEvent = WE_DUMMY;
|
||||
@@ -252,7 +252,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
|
||||
m_creature->SetSpeed(MOVE_RUN, DefaultMoveSpeedRate);
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
DoZoneInCombat();
|
||||
m_creature->CastSpell(m_creature, SPELL_REBIRTH, true);
|
||||
DoCast(m_creature, SPELL_REBIRTH, true);
|
||||
MeltArmor_Timer = 60000;
|
||||
Charge_Timer = 7000;
|
||||
DiveBomb_Timer = 40000+rand()%5000;
|
||||
@@ -261,7 +261,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
|
||||
break;
|
||||
case WE_METEOR:
|
||||
m_creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, false);
|
||||
m_creature->CastSpell(m_creature, SPELL_DIVE_BOMB_VISUAL, false);
|
||||
DoCast(m_creature, SPELL_DIVE_BOMB_VISUAL, false);
|
||||
WaitEvent = WE_DIVE;
|
||||
WaitTimer = 4000;
|
||||
return;
|
||||
@@ -269,7 +269,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
{
|
||||
m_creature->RemoveAurasDueToSpell(SPELL_DIVE_BOMB_VISUAL);
|
||||
m_creature->CastSpell(pTarget, SPELL_DIVE_BOMB, true);
|
||||
DoCast(pTarget, SPELL_DIVE_BOMB, true);
|
||||
float dist = 3.0f;
|
||||
if (m_creature->IsWithinDist3d(pTarget->GetPositionX(), pTarget->GetPositionY(), pTarget->GetPositionZ(), 5.0f))
|
||||
dist = 5.0f;
|
||||
@@ -293,7 +293,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
|
||||
m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
m_creature->SetDisplayId(m_creature->GetNativeDisplayId());
|
||||
m_creature->CastSpell(m_creature, SPELL_REBIRTH_2, true);
|
||||
DoCast(m_creature, SPELL_REBIRTH_2, true);
|
||||
break;
|
||||
case WE_DUMMY:
|
||||
default:
|
||||
@@ -413,7 +413,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
|
||||
m_creature->AI()->AttackStart(pTarget);
|
||||
else
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_FLAME_BUFFET, true);
|
||||
DoCast(m_creature, SPELL_FLAME_BUFFET, true);
|
||||
m_creature->setAttackTimer(BASE_ATTACK, 1500);
|
||||
}
|
||||
}
|
||||
@@ -447,7 +447,7 @@ struct TRINITY_DLL_DECL mob_ember_of_alarAI : public ScriptedAI
|
||||
if (damage >= m_creature->GetHealth() && pKiller != m_creature && !toDie)
|
||||
{
|
||||
damage = 0;
|
||||
m_creature->CastSpell(m_creature, SPELL_EMBER_BLAST, true);
|
||||
DoCast(m_creature, SPELL_EMBER_BLAST, true);
|
||||
m_creature->SetDisplayId(11686);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (pInstance && pInstance->GetData(DATA_ALAREVENT) == 2)
|
||||
|
||||
@@ -640,12 +640,12 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
||||
//Spawn weapons
|
||||
if (PhaseSubphase == 1)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_SUMMON_WEAPONS, false);
|
||||
DoCast(m_creature, SPELL_SUMMON_WEAPONS, false);
|
||||
|
||||
uint8 uiMaxWeapon = sizeof(m_auiSpellSummonWeapon)/sizeof(uint32);
|
||||
|
||||
for (uint32 i = 0; i < uiMaxWeapon; ++i)
|
||||
m_creature->CastSpell(m_creature,m_auiSpellSummonWeapon[i],true);
|
||||
DoCast(m_creature, m_auiSpellSummonWeapon[i], true);
|
||||
|
||||
PhaseSubphase = 2;
|
||||
Phase_Timer = TIME_PHASE_2_3;
|
||||
@@ -887,7 +887,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
||||
{
|
||||
if (Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid()))
|
||||
{
|
||||
m_creature->CastSpell(pUnit, SPELL_KNOCKBACK, true);
|
||||
DoCast(pUnit, SPELL_KNOCKBACK, true);
|
||||
//Gravity lapse - needs an exception in Spell system to work
|
||||
|
||||
pUnit->CastSpell(pUnit, SPELL_GRAVITY_LAPSE, true, 0, 0, m_creature->GetGUID());
|
||||
@@ -1340,13 +1340,13 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI
|
||||
void Reset()
|
||||
{
|
||||
Cycle_Timer = 2000;
|
||||
m_creature->CastSpell(m_creature,SPELL_BURN,true);
|
||||
DoCast(m_creature, SPELL_BURN, true);
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
//is this spell in use anylonger?
|
||||
//m_creature->CastSpell(m_creature,SPELL_EMBER_BLAST,true);
|
||||
//DoCast(m_creature, SPELL_EMBER_BLAST, true);
|
||||
m_creature->SummonCreature(NPC_PHOENIX_EGG,m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ(),m_creature->GetOrientation(),TEMPSUMMON_TIMED_DESPAWN,16000);
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL mob_crystalcore_devastatorAI : public ScriptedAI
|
||||
//Knockaway_Timer
|
||||
if (Knockaway_Timer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_KNOCKAWAY, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_KNOCKAWAY, true);
|
||||
|
||||
// current aggro target is knocked away pick new target
|
||||
Unit* pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO, 0);
|
||||
|
||||
@@ -160,7 +160,7 @@ struct TRINITY_DLL_DECL mob_infested_root_walkerAI : public ScriptedAI
|
||||
if (m_creature->GetHealth() <= damage)
|
||||
if (rand()%100 < 75)
|
||||
//Summon Wood Mites
|
||||
m_creature->CastSpell(m_creature,39130,true);
|
||||
DoCast(m_creature, 39130, true);
|
||||
}
|
||||
};
|
||||
CreatureAI* GetAI_mob_infested_root_walker(Creature* pCreature)
|
||||
@@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL mob_rotting_forest_ragerAI : public ScriptedAI
|
||||
if (m_creature->GetHealth() <= damage)
|
||||
if (rand()%100 < 75)
|
||||
//Summon Lots of Wood Mights
|
||||
m_creature->CastSpell(m_creature,39134,true);
|
||||
DoCast(m_creature, 39134, true);
|
||||
}
|
||||
};
|
||||
CreatureAI* GetAI_mob_rotting_forest_rager(Creature* pCreature)
|
||||
|
||||
@@ -183,7 +183,7 @@ struct TRINITY_DLL_DECL boss_taerarAI : public ScriptedAI
|
||||
int iSize = sizeof(m_auiSpellSummonShade) / sizeof(uint32);
|
||||
|
||||
for (int i = 0; i < iSize; ++i)
|
||||
m_creature->CastSpell(pTarget, m_auiSpellSummonShade[i], true);
|
||||
DoCast(pTarget, m_auiSpellSummonShade[i], true);
|
||||
|
||||
++m_uiShadesSummoned; // prevent casting twice at same health
|
||||
m_bShades = true;
|
||||
|
||||
@@ -398,7 +398,7 @@ struct TRINITY_DLL_DECL npc_dancing_flamesAI : public ScriptedAI
|
||||
case TEXTEMOTE_DANCE:
|
||||
{
|
||||
if (!pPlayer->HasAura(SPELL_SEDUCTION))
|
||||
m_creature->CastSpell(pPlayer,SPELL_SEDUCTION,true);
|
||||
DoCast(pPlayer, SPELL_SEDUCTION, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1027,7 +1027,7 @@ struct TRINITY_DLL_DECL npc_guardianAI : public ScriptedAI
|
||||
|
||||
if (m_creature->isAttackReady())
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_DEATHTOUCH, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_DEATHTOUCH, true);
|
||||
m_creature->resetAttackTimer();
|
||||
}
|
||||
}
|
||||
@@ -1443,7 +1443,7 @@ struct TRINITY_DLL_DECL npc_tonk_mineAI : public ScriptedAI
|
||||
{
|
||||
if (ExplosionTimer <= diff)
|
||||
{
|
||||
m_creature->CastSpell(m_creature, SPELL_TONK_MINE_DETONATE, true);
|
||||
DoCast(m_creature, SPELL_TONK_MINE_DETONATE, true);
|
||||
m_creature->setDeathState(DEAD); // unsummon it
|
||||
} else
|
||||
ExplosionTimer -= diff;
|
||||
@@ -1681,7 +1681,7 @@ struct TRINITY_DLL_DECL mob_mojoAI : public ScriptedAI
|
||||
}
|
||||
m_creature->AddAura(43906,pPlayer);//add polymorph frog thing
|
||||
victimGUID = pPlayer->GetGUID();
|
||||
m_creature->CastSpell(m_creature,20372,true);//tag.hearts
|
||||
DoCast(m_creature, 20372, true);//tag.hearts
|
||||
m_creature->GetMotionMaster()->MoveFollow(pPlayer,0,0);
|
||||
hearts = 15000;
|
||||
}
|
||||
@@ -1824,7 +1824,7 @@ struct TRINITY_DLL_DECL npc_lightwellAI : public PassiveAI
|
||||
|
||||
void Reset()
|
||||
{
|
||||
m_creature->CastSpell(m_creature, 59907, false); // Spell for Lightwell Charges
|
||||
DoCast(m_creature, 59907, false); // Spell for Lightwell Charges
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user