mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 18:15:31 +01:00
*Minor cleanup/typo fixes for cd98f7a7b802
--HG-- branch : trunk
This commit is contained in:
@@ -8,10 +8,10 @@
|
||||
enum CastTarget
|
||||
{
|
||||
CAST_SELF = 0, //Self cast
|
||||
CAST_HOSTILE_TARGET, //Our current pTarget (ie: highest aggro)
|
||||
CAST_HOSTILE_TARGET, //Our current target (ie: highest aggro)
|
||||
CAST_HOSTILE_SECOND_AGGRO, //Second highest aggro (generaly used for cleaves and some special attacks)
|
||||
CAST_HOSTILE_LAST_AGGRO, //Dead last on aggro (no idea what this could be used for)
|
||||
CAST_HOSTILE_RANDOM, //Just any random pTarget on our threat list
|
||||
CAST_HOSTILE_RANDOM, //Just any random target on our threat list
|
||||
CAST_FRIENDLY_RANDOM, //NOT YET IMPLEMENTED
|
||||
|
||||
//Special cases
|
||||
|
||||
@@ -197,7 +197,7 @@ Unit* ScriptedAI::SelectUnit(SelectAggroTarget pTarget, uint32 uiPosition)
|
||||
|
||||
SpellEntry const* ScriptedAI::SelectSpell(Unit* pTarget, int32 uiSchool, int32 uiMechanic, SelectTargetType selectTargets, uint32 uiPowerCostMin, uint32 uiPowerCostMax, float fRangeMin, float fRangeMax, SelectEffect selectEffects)
|
||||
{
|
||||
//No pTarget so we can't cast
|
||||
//No target so we can't cast
|
||||
if (!pTarget)
|
||||
return false;
|
||||
|
||||
@@ -264,7 +264,7 @@ SpellEntry const* ScriptedAI::SelectSpell(Unit* pTarget, int32 uiSchool, int32 u
|
||||
if (fRangeMax && m_creature->GetSpellMaxRangeForTarget(pTarget, pTempRange) > fRangeMax)
|
||||
continue;
|
||||
|
||||
//Check if our pTarget is in range
|
||||
//Check if our target is in range
|
||||
if (m_creature->IsWithinDistInMap(pTarget, m_creature->GetSpellMinRangeForTarget(pTarget, pTempRange)) || !m_creature->IsWithinDistInMap(pTarget, m_creature->GetSpellMaxRangeForTarget(pTarget, pTempRange)))
|
||||
continue;
|
||||
|
||||
@@ -282,7 +282,7 @@ SpellEntry const* ScriptedAI::SelectSpell(Unit* pTarget, int32 uiSchool, int32 u
|
||||
|
||||
bool ScriptedAI::CanCast(Unit* pTarget, SpellEntry const* pSpell, bool bTriggered)
|
||||
{
|
||||
//No pTarget so we can't cast
|
||||
//No target so we can't cast
|
||||
if (!pTarget || !pSpell)
|
||||
return false;
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
|
||||
//Cast affliction
|
||||
DoCast(pUnit, SpellAfflict, true);
|
||||
|
||||
//Chromatic mutation if pTarget is effected by all afflictions
|
||||
//Chromatic mutation if target is effected by all afflictions
|
||||
if (pUnit->HasAura(SPELL_BROODAF_BLUE)
|
||||
&& pUnit->HasAura(SPELL_BROODAF_BLACK)
|
||||
&& pUnit->HasAura(SPELL_BROODAF_RED)
|
||||
|
||||
@@ -170,7 +170,7 @@ struct TRINITY_DLL_DECL boss_vaelAI : public ScriptedAI
|
||||
Unit *pTarget = NULL;
|
||||
|
||||
uint8 i = 0;
|
||||
while (i < 3) // max 3 tries to get a random pTarget with power_mana
|
||||
while (i < 3) // max 3 tries to get a random target with power_mana
|
||||
{
|
||||
++i;
|
||||
if (pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)) //not aggro leader
|
||||
|
||||
@@ -276,7 +276,7 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
|
||||
{
|
||||
DoCast(pTarget, SPELL_BLIND);
|
||||
Blind_Timer = 40000;
|
||||
} else Blind_Timer = 1000 + diff; // if pTarget is out of melee range, wait a bit.
|
||||
} else Blind_Timer = 1000 + diff; // if target is out of melee range, wait a bit.
|
||||
} else Blind_Timer -= diff;
|
||||
}
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
|
||||
xh = pTarget->GetPositionX();
|
||||
yh = pTarget->GetPositionY();
|
||||
|
||||
// check if pTarget is between (not checking distance from the beam yet)
|
||||
// check if target is between (not checking distance from the beam yet)
|
||||
if(dist(xn,yn,xh,yh)>=dist(xn,yn,xp,yp) || dist(xp,yp,xh,yh)>=dist(xn,yn,xp,yp))
|
||||
return false;
|
||||
// check distance from the beam
|
||||
@@ -187,8 +187,8 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
|
||||
pTarget->AddAura(PlayerBuff[j], pTarget);
|
||||
else
|
||||
pTarget->AddAura(NetherBuff[j], pTarget);
|
||||
// cast visual beam on the chosen pTarget if switched
|
||||
// simple pTarget switching isn't working -> using BeamerGUID to cast (workaround)
|
||||
// cast visual beam on the chosen target if switched
|
||||
// simple target switching isn't working -> using BeamerGUID to cast (workaround)
|
||||
if(!current || pTarget != current)
|
||||
{
|
||||
BeamTarget[j] = pTarget->GetGUID();
|
||||
@@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
|
||||
BeamerGUID[j] = beamer->GetGUID();
|
||||
}
|
||||
}
|
||||
// aggro pTarget if Red Beam
|
||||
// aggro target if Red Beam
|
||||
if(j==RED_PORTAL && m_creature->getVictim() != pTarget && pTarget->GetTypeId() == TYPEID_PLAYER)
|
||||
m_creature->getThreatManager().addThreat(pTarget, 100000.0f+DoGetThreat(m_creature->getVictim()));
|
||||
}
|
||||
|
||||
@@ -288,7 +288,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
|
||||
if (!t_list.size())
|
||||
return;
|
||||
|
||||
//begin + 1 , so we don't pTarget the one with the highest threat
|
||||
//begin + 1, so we don't target the one with the highest threat
|
||||
std::list<HostilReference *>::iterator itr = t_list.begin();
|
||||
std::advance(itr, 1);
|
||||
for (; itr!= t_list.end(); ++itr) //store the threat list in a different container
|
||||
@@ -442,7 +442,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
|
||||
if (pTarget)
|
||||
{
|
||||
axe->AI()->AttackStart(pTarget);
|
||||
// axe->getThreatManager().tauntApply(pTarget); //Taunt Apply and fade out does not work properly
|
||||
//axe->getThreatManager().tauntApply(pTarget); //Taunt Apply and fade out does not work properly
|
||||
// So we'll use a hack to add a lot of threat to our target
|
||||
axe->AddThreat(pTarget, 10000000.0f);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ EndScriptData */
|
||||
#define SPELL_FIENDISH_PORTAL 30171 // Opens portal and summons Fiendish Portal, 2 sec cast
|
||||
#define SPELL_FIENDISH_PORTAL_1 30179 // Opens portal and summons Fiendish Portal, instant cast
|
||||
|
||||
#define SPELL_FIREBOLT 30050 // Blasts a pTarget for 150 Fire damage.
|
||||
#define SPELL_FIREBOLT 30050 // Blasts a target for 150 Fire damage.
|
||||
#define SPELL_BROKEN_PACT 30065 // All damage taken increased by 25%.
|
||||
#define SPELL_AMPLIFY_FLAMES 30053 // Increases the Fire damage taken by an enemy by 500 for 25 sec.
|
||||
|
||||
@@ -328,7 +328,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI
|
||||
}
|
||||
};
|
||||
|
||||
#define SPELL_FIREBOLT 30050 // Blasts a pTarget for 181-209 Fire damage.
|
||||
#define SPELL_FIREBOLT 30050 // Blasts a target for 181-209 Fire damage.
|
||||
|
||||
struct TRINITY_DLL_DECL mob_fiendish_impAI : public ScriptedAI
|
||||
{
|
||||
|
||||
@@ -284,7 +284,7 @@ struct TRINITY_DLL_DECL pyrewood_ambushAI : public ScriptedAI
|
||||
|
||||
if(KillCount && Phase < 6)
|
||||
{
|
||||
if(!UpdateVictim()) //reset() on pTarget Despawn...
|
||||
if(!UpdateVictim()) //reset() on target Despawn...
|
||||
return;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
@@ -297,7 +297,7 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
|
||||
pTarget->CastSpell(pTarget, SPELL_BURN, true);
|
||||
BurnTimer = urand(60000,180000);
|
||||
} else
|
||||
BurnTimer = 1000 + diff; // if pTarget has SPELL_BURN, wait a bit.
|
||||
BurnTimer = 1000 + diff; // if target has SPELL_BURN, wait a bit.
|
||||
else
|
||||
BurnTimer = urand(60000,180000); // no targets!?
|
||||
} else BurnTimer -= diff;
|
||||
|
||||
@@ -78,7 +78,7 @@ enum Spells
|
||||
SPELL_PYROGENICS = 45230, //15secs
|
||||
SPELL_FLAME_TOUCHED = 45348,
|
||||
SPELL_CONFLAGRATION = 45342, //30-35 secs
|
||||
SPELL_BLAZE = 45235, //on main pTarget every 3 secs
|
||||
SPELL_BLAZE = 45235, //on main target every 3 secs
|
||||
SPELL_FLAME_SEAR = 46771,
|
||||
SPELL_BLAZE_SUMMON = 45236, //187366 GO
|
||||
SPELL_BLAZE_BURN = 45246
|
||||
|
||||
@@ -109,7 +109,7 @@ enum SpellIds
|
||||
SPELL_ARMAGEDDON_VISUAL = 45911, // Does the hellfire visual to indicate where the meteor missle lands
|
||||
SPELL_ARMAGEDDON_VISUAL2 = 45914, // Does the light visual to indicate where the meteor missle lands
|
||||
SPELL_ARMAGEDDON_VISUAL3 = 24207, // This shouldn't correct but same as seen on the movie
|
||||
SPELL_ARMAGEDDON_SUMMON_TRIGGER = 45921, // Summons the triggers that cast the spells on himself need random pTarget select
|
||||
SPELL_ARMAGEDDON_SUMMON_TRIGGER = 45921, // Summons the triggers that cast the spells on himself need random target select
|
||||
SPELL_ARMAGEDDON_DAMAGE = 45915, // This does the area damage
|
||||
|
||||
/* Shield Orb Spells*/
|
||||
|
||||
@@ -60,7 +60,7 @@ struct TRINITY_DLL_DECL boss_ironayaAI : public ScriptedAI
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_KNOCKAWAY, true);
|
||||
|
||||
// current aggro pTarget is knocked away pick new target
|
||||
// current aggro target is knocked away pick new target
|
||||
Unit* Target = SelectUnit(SELECT_TARGET_TOPAGGRO, 0);
|
||||
|
||||
if (!Target || Target == m_creature->getVictim())
|
||||
|
||||
@@ -62,7 +62,7 @@ struct TRINITY_DLL_DECL mob_jadespine_basiliskAI : public ScriptedAI
|
||||
// DoCast(m_creature->getVictim(),SPELL_CSLUMBER);
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_CSLUMBER, true);
|
||||
|
||||
//Stop attacking pTarget thast asleep and pick new target
|
||||
//Stop attacking target thast asleep and pick new target
|
||||
Cslumber_Timer = 28000;
|
||||
|
||||
Unit* Target = SelectUnit(SELECT_TARGET_TOPAGGRO, 0);
|
||||
|
||||
@@ -596,7 +596,7 @@ struct TRINITY_DLL_DECL feather_vortexAI : public ScriptedAI
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
//if the vortex reach the pTarget, it change his pTarget to another player
|
||||
//if the vortex reach the target, it change his target to another player
|
||||
if (m_creature->IsWithinMeleeRange(m_creature->getVictim()))
|
||||
AttackStart(SelectUnit(SELECT_TARGET_RANDOM, 0));
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI
|
||||
Hex_Timer = 12000 + rand()%8000;
|
||||
} else Hex_Timer -= diff;
|
||||
|
||||
//Casting the delusion curse with a shade. So shade will attack the same pTarget with the curse.
|
||||
//Casting the delusion curse with a shade. So shade will attack the same target with the curse.
|
||||
if (Delusions_Timer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||
|
||||
@@ -147,7 +147,7 @@ struct TRINITY_DLL_DECL boss_mandokirAI : public ScriptedAI
|
||||
|
||||
if (Watch_Timer <= diff) //Every 20 Sec Mandokir will check this
|
||||
{
|
||||
if (WatchTarget) //If someone is watched and If the Position of the watched pTarget is different from the one stored, or are attacking, mandokir will charge him
|
||||
if (WatchTarget) //If someone is watched and If the Position of the watched target is different from the one stored, or are attacking, mandokir will charge him
|
||||
{
|
||||
Unit* pUnit = Unit::GetUnit(*m_creature, WatchTarget);
|
||||
|
||||
@@ -185,7 +185,7 @@ struct TRINITY_DLL_DECL boss_mandokirAI : public ScriptedAI
|
||||
}
|
||||
}
|
||||
|
||||
if ((Watch_Timer < 1000) && endWatch) //1 sec before the debuf expire, store the pTarget position
|
||||
if ((Watch_Timer < 1000) && endWatch) //1 sec before the debuf expire, store the target position
|
||||
{
|
||||
Unit* pUnit = Unit::GetUnit(*m_creature, WatchTarget);
|
||||
if (pUnit)
|
||||
@@ -232,7 +232,7 @@ struct TRINITY_DLL_DECL boss_mandokirAI : public ScriptedAI
|
||||
Fear_Timer = 4000;
|
||||
} else Fear_Timer -=diff;
|
||||
|
||||
//Mortal Strike if pTarget below 50% hp
|
||||
//Mortal Strike if target below 50% hp
|
||||
if (m_creature->getVictim() && m_creature->getVictim()->GetHealth() < m_creature->getVictim()->GetMaxHealth()*0.5)
|
||||
{
|
||||
if (MortalStrike_Timer <= diff)
|
||||
|
||||
@@ -163,7 +163,7 @@ struct TRINITY_DLL_DECL boss_marliAI : public ScriptedAI
|
||||
{
|
||||
Unit *pTarget = NULL;
|
||||
int i = 0;
|
||||
while (i < 3) // max 3 tries to get a random pTarget with power_mana
|
||||
while (i < 3) // max 3 tries to get a random target with power_mana
|
||||
{
|
||||
++i;
|
||||
if (pTarget = SelectTarget(SELECT_TARGET_RANDOM,1, 100, true)) // not aggro leader
|
||||
|
||||
@@ -78,7 +78,7 @@ struct TRINITY_DLL_DECL example_escortAI : public npc_escortAI
|
||||
case 4:
|
||||
if (Player* pPlayer = GetPlayerForEscort())
|
||||
{
|
||||
//pTmpPlayer is the pTarget of the text
|
||||
//pTmpPlayer is the target of the text
|
||||
DoScriptText(SAY_WP_3, m_creature, pPlayer);
|
||||
//pTmpPlayer is the source of the text
|
||||
DoScriptText(SAY_WP_4, pPlayer);
|
||||
|
||||
@@ -14,7 +14,7 @@ update creature_template set scriptname = 'boss_meathook' where entry = '';
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_CONSTRICTING_CHAINS = 52696, //Encases the targets in chains, dealing 1800 Physical damage every 1 sec. and stunning the pTarget for 5 sec.
|
||||
SPELL_CONSTRICTING_CHAINS = 52696, //Encases the targets in chains, dealing 1800 Physical damage every 1 sec. and stunning the target for 5 sec.
|
||||
H_SPELL_CONSTRICTING_CHAINS = 58823,
|
||||
SPELL_DISEASE_EXPULSION = 52666, //Meathook belches out a cloud of disease, dealing 1710 to 1890 Nature damage and interrupting the spell casting of nearby enemy targets for 4 sec.
|
||||
H_SPELL_DISEASE_EXPULSION = 58824,
|
||||
|
||||
@@ -324,7 +324,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI
|
||||
{
|
||||
if (!m_creature->IsWithinDistInMap(pTarget, m_creature->GetAttackDistance(pTarget)))
|
||||
return true; // Cast Finger of Death
|
||||
else // This pTarget is closest, he is our new tank
|
||||
else // This target is closest, he is our new tank
|
||||
m_creature->AddThreat(pTarget, m_creature->getThreatManager().getThreat(m_creature->getVictim()));
|
||||
}
|
||||
|
||||
|
||||
@@ -277,7 +277,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
|
||||
|
||||
m_creature->InterruptNonMeleeSpells(false);
|
||||
|
||||
//Select random pTarget for dark beam to start on
|
||||
//Select random target for dark beam to start on
|
||||
Unit *pTarget = NULL;
|
||||
pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
|
||||
|
||||
@@ -555,7 +555,7 @@ struct TRINITY_DLL_DECL cthunAI : public ScriptedAI
|
||||
//Check if we have a target
|
||||
if (!UpdateVictim())
|
||||
{
|
||||
//No pTarget so we'll use this section to do our random wispers instance wide
|
||||
//No target so we'll use this section to do our random wispers instance wide
|
||||
//WisperTimer
|
||||
if (WisperTimer <= diff)
|
||||
{
|
||||
@@ -736,7 +736,7 @@ struct TRINITY_DLL_DECL cthunAI : public ScriptedAI
|
||||
|
||||
if (pTarget)
|
||||
{
|
||||
//Set pTarget in stomach
|
||||
//Set target in stomach
|
||||
Stomach_Map[pTarget->GetGUID()] = true;
|
||||
pTarget->InterruptNonMeleeSpells(false);
|
||||
pTarget->CastSpell(pTarget, SPELL_MOUTH_TENTACLE, true, NULL, NULL, m_creature->GetGUID());
|
||||
|
||||
@@ -91,7 +91,7 @@ struct MANGOS_DLL_DECL boss_hadronoxAI : public ScriptedAI
|
||||
FirstTime = false;
|
||||
}
|
||||
|
||||
//when Hadronox kills any enemy (that includes a party member) she will regain 10% of her HP if the pTarget had Leech Poison on
|
||||
//when Hadronox kills any enemy (that includes a party member) she will regain 10% of her HP if the target had Leech Poison on
|
||||
void KilledUnit(Unit* Victim)
|
||||
{
|
||||
// not sure if this aura check is correct, I think it is though
|
||||
|
||||
@@ -53,7 +53,7 @@ enum AmberDrake
|
||||
SPELL_AMBER_SHOCK_LANCE = 49840, //(60 yds) - Instant - Deals 4822 to 5602 Arcane damage and detonates all Shock Charges on an enemy dragon. Damage is increased by 6525 for each detonated.
|
||||
// SPELL_AMBER_STOP_TIME //Instant - 1 min cooldown - Halts the passage of time, freezing all enemy dragons in place for 10 sec. This attack applies 5 Shock Charges to each affected target.
|
||||
//you do not have access to until you kill the Mage-Lord Urom.
|
||||
SPELL_AMBER_TEMPORAL_RIFT = 49592 //(60 yds) - Channeled - Channels a temporal rift on an enemy dragon for 10 sec. While trapped in the rift, all damage done to the pTarget is increased by 100%. In addition, for every 15,000 damage done to a pTarget affected by Temporal Rift, 1 Shock Charge is generated.
|
||||
SPELL_AMBER_TEMPORAL_RIFT = 49592 //(60 yds) - Channeled - Channels a temporal rift on an enemy dragon for 10 sec. While trapped in the rift, all damage done to the target is increased by 100%. In addition, for every 15,000 damage done to a target affected by Temporal Rift, 1 Shock Charge is generated.
|
||||
};
|
||||
/*Emerald Drake,
|
||||
(npc 27692) (item 37815),
|
||||
|
||||
@@ -17,12 +17,12 @@ enum Spells
|
||||
SPELL_ARCANE_SHIELD = 53813, //Dummy --> Channeled, shields the caster from damage.
|
||||
SPELL_EMPOWERED_ARCANE_EXPLOSION = 51110,
|
||||
SPELL_EMPOWERED_ARCANE_EXPLOSION_2 = 59377,
|
||||
SPELL_FROSTBOMB = 51103, //Urom throws a bomb, hitting its pTarget with the highest aggro which inflict directly 650 frost damage and drops a frost zone on the ground. This zone deals 650 frost damage per second and reduce the movement speed by 35%. Lasts 1 minute.
|
||||
SPELL_FROSTBOMB = 51103, //Urom throws a bomb, hitting its target with the highest aggro which inflict directly 650 frost damage and drops a frost zone on the ground. This zone deals 650 frost damage per second and reduce the movement speed by 35%. Lasts 1 minute.
|
||||
SPELL_SUMMON_MENAGERIE = 50476, //Summons an assortment of creatures and teleports the caster to safety.
|
||||
SPELL_SUMMON_MENAGERIE_2 = 50495,
|
||||
SPELL_SUMMON_MENAGERIE_3 = 50496,
|
||||
SPELL_TELEPORT = 51112, //Teleports to the center of Oculus
|
||||
SPELL_TIME_BOMB = 51121, //Deals arcane damage to a random player, and after 6 seconds, deals zone damage to nearby equal to the health missing of the pTarget afflicted by the debuff.
|
||||
SPELL_TIME_BOMB = 51121, //Deals arcane damage to a random player, and after 6 seconds, deals zone damage to nearby equal to the health missing of the target afflicted by the debuff.
|
||||
SPELL_TIME_BOMB_2 = 59376
|
||||
};
|
||||
//not in db
|
||||
|
||||
@@ -353,7 +353,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
|
||||
Unit* pShad = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_SHADRON) : 0);
|
||||
Unit* pVesp = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_VESPERON) : 0);
|
||||
|
||||
//spell will pTarget dragons, if they are still alive at 35%
|
||||
//spell will target dragons, if they are still alive at 35%
|
||||
if (!m_bIsBerserk && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) <= 35
|
||||
&& ((pTene && pTene->isAlive()) || (pShad && pShad->isAlive()) || (pVesp && pVesp->isAlive())))
|
||||
{
|
||||
@@ -712,7 +712,7 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
//if no pTarget, update dummy and return
|
||||
//if no target, update dummy and return
|
||||
if (!UpdateVictim())
|
||||
{
|
||||
dummy_dragonAI::UpdateAI(uiDiff);
|
||||
@@ -788,7 +788,7 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
//if no pTarget, update dummy and return
|
||||
//if no target, update dummy and return
|
||||
if (!UpdateVictim())
|
||||
{
|
||||
dummy_dragonAI::UpdateAI(uiDiff);
|
||||
@@ -858,7 +858,7 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
//if no pTarget, update dummy and return
|
||||
//if no target, update dummy and return
|
||||
if (!UpdateVictim())
|
||||
{
|
||||
dummy_dragonAI::UpdateAI(uiDiff);
|
||||
|
||||
@@ -290,7 +290,7 @@ struct TRINITY_DLL_DECL boss_bjarngrimAI : public ScriptedAI
|
||||
{
|
||||
if (m_uiIntercept_Timer <= uiDiff)
|
||||
{
|
||||
//not much point is this, better random pTarget and more often?
|
||||
//not much point is this, better random target and more often?
|
||||
DoCast(m_creature->getVictim(), SPELL_INTERCEPT);
|
||||
m_uiIntercept_Timer = 45000 + rand()%1000;
|
||||
}
|
||||
|
||||
@@ -431,7 +431,7 @@ struct TRINITY_DLL_DECL mob_molten_golemAI : public ScriptedAI
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
//Return since we have no pTarget or if we are frozen
|
||||
//Return since we have no target or if we are frozen
|
||||
if (!UpdateVictim() || m_bIsFrozen)
|
||||
return;
|
||||
|
||||
|
||||
@@ -305,7 +305,7 @@ struct TRINITY_DLL_DECL boss_runemaster_molgeimAI : public ScriptedAI
|
||||
case EVENT_ENRAGE:
|
||||
DoCast(SPELL_BERSERK);
|
||||
break;
|
||||
case EVENT_RUNE_OF_POWER: // Improve pTarget selection; random alive friendly
|
||||
case EVENT_RUNE_OF_POWER: // Improve target selection; random alive friendly
|
||||
{
|
||||
Unit *Target = DoSelectLowestHpFriendly(60);
|
||||
if(!Target || (Target && !Target->isAlive()))
|
||||
|
||||
@@ -154,7 +154,7 @@ struct TRINITY_DLL_DECL boss_flame_leviathanAI : public BossAI
|
||||
UpdateVictim(); // begin to kill other things
|
||||
return;
|
||||
case EVENT_MISSILE:
|
||||
//TODO: without unitpTarget no visual effect
|
||||
//TODO: without target no visual effect
|
||||
//DoCastAOE(SPELL_MISSILE_BARRAGE);
|
||||
DoCast(me->getVictim(), SPELL_MISSILE_BARRAGE);
|
||||
events.RepeatEvent(1500);
|
||||
|
||||
@@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI
|
||||
{
|
||||
if (!wait_Timer)
|
||||
{
|
||||
// Spawn pTarget for Axe
|
||||
// Spawn target for Axe
|
||||
Unit *pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO, 1);
|
||||
if (pTarget)
|
||||
{
|
||||
|
||||
@@ -217,11 +217,10 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI
|
||||
if (pTarget && pTarget->isAlive() && pTarget->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
//DoCast(pTarget, SPELL_FROST_TOMB_SUMMON, true);
|
||||
Creature* Chains = m_creature->SummonCreature(CREATURE_FROSTTOMB, pTarget->GetPositionX(), pTarget->GetPositionY(), pTarget->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 20000);
|
||||
if (Chains)
|
||||
if (Creature *pChains = m_creature->SummonCreature(CREATURE_FROSTTOMB, pTarget->GetPositionX(), pTarget->GetPositionY(), pTarget->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 20000))
|
||||
{
|
||||
CAST_AI(mob_frost_tombAI, Chains->AI())->SetPrisoner(pTarget);
|
||||
Chains->CastSpell(pTarget, SPELL_FROST_TOMB, true);
|
||||
CAST_AI(mob_frost_tombAI, pChains->AI())->SetPrisoner(pTarget);
|
||||
pChains->CastSpell(pTarget, SPELL_FROST_TOMB, true);
|
||||
|
||||
DoScriptText(SAY_FROST_TOMB, m_creature);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ update creature_template set scriptname = 'boss_skadi' where entry = '';
|
||||
#define H_SPELL_CRUSH 59330
|
||||
#define SPELL_POISONED_SPEAR 50225
|
||||
#define H_SPELL_POISONED_SPEAR 59331
|
||||
#define SPELL_WHIRLWIND 50228 //random pTarget, but not the tank approx. every 20s
|
||||
#define SPELL_WHIRLWIND 50228 //random target, but not the tank approx. every 20s
|
||||
#define H_SPELL_WHIRLWIND 59332
|
||||
|
||||
//Spawned creatures
|
||||
|
||||
@@ -143,7 +143,7 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI
|
||||
|
||||
if (Sheep_Timer <= diff)
|
||||
{
|
||||
//second top aggro pTarget in normal, random pTarget in heroic correct?
|
||||
//second top aggro target in normal, random target in heroic correct?
|
||||
Unit *pTarget = NULL;
|
||||
pTarget = HeroicMode ? SelectUnit(SELECT_TARGET_RANDOM,0) : SelectUnit(SELECT_TARGET_TOPAGGRO,1);
|
||||
if (pTarget)
|
||||
|
||||
@@ -96,7 +96,7 @@ struct TRINITY_DLL_DECL boss_murmurAI : public ScriptedAI
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
//Return since we have no pTarget or casting
|
||||
//Return since we have no target or casting
|
||||
if (!UpdateVictim() || m_creature->IsNonMeleeSpellCasted(false))
|
||||
return;
|
||||
|
||||
@@ -172,7 +172,7 @@ struct TRINITY_DLL_DECL boss_murmurAI : public ScriptedAI
|
||||
} else SonicShock_Timer -= diff;
|
||||
}
|
||||
|
||||
// Select nearest most aggro pTarget if top aggro too far
|
||||
// Select nearest most aggro target if top aggro too far
|
||||
if (!m_creature->isAttackReady())
|
||||
return;
|
||||
if (!m_creature->IsWithinMeleeRange(m_creature->getVictim()))
|
||||
|
||||
@@ -126,7 +126,7 @@ struct TRINITY_DLL_DECL boss_gurtogg_bloodboilAI : public ScriptedAI
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
}
|
||||
|
||||
// Note: This seems like a very complicated fix. The fix needs to be handled by the core, as implementation of limited-pTarget AoE spells are still not limited.
|
||||
// Note: This seems like a very complicated fix. The fix needs to be handled by the core, as implementation of limited-target AoE spells are still not limited.
|
||||
void CastBloodboil()
|
||||
{
|
||||
// Get the Threat List
|
||||
|
||||
@@ -73,7 +73,7 @@ const char* SAY_KILL2 = "This is too easy!";
|
||||
#define SPELL_PARASITIC_SHADOWFIEND 41917 // DoT of 3k Shadow every 2 seconds. Lasts 10 seconds. (Script effect: Summon 2 parasites once the debuff has ticked off)
|
||||
#define SPELL_PARASITIC_SHADOWFIEND2 41914 // Used by Parasitic
|
||||
#define SPELL_SUMMON_PARASITICS 41915 // Summons 2 Parasitic Shadowfiends on the target. It's supposed to be cast as soon as the Parasitic Shadowfiend debuff is gone, but the spells aren't linked :(
|
||||
#define SPELL_AGONIZING_FLAMES 40932 // 4k fire damage initial to pTarget and anyone w/i 5 yards. PHASE 3 ONLY
|
||||
#define SPELL_AGONIZING_FLAMES 40932 // 4k fire damage initial to target and anyone w/i 5 yards. PHASE 3 ONLY
|
||||
#define SPELL_ENRAGE 40683 // Increases damage by 50% and attack speed by 30%. 20 seconds, PHASE 5 ONLY
|
||||
// Flying (Phase 2)
|
||||
#define SPELL_THROW_GLAIVE 39635 // Throws a glaive on the ground
|
||||
@@ -100,7 +100,7 @@ const char* SAY_KILL2 = "This is too easy!";
|
||||
#define SPELL_SUMMON_SHADOWDEMON 41117 // Summon four shadowfiends
|
||||
#define SPELL_SHADOWFIEND_PASSIVE 41913 // Passive aura for shadowfiends
|
||||
#define SPELL_SHADOW_DEMON_PASSIVE 41079 // Adds the "shadowform" aura to Shadow Demons.
|
||||
#define SPELL_CONSUME_SOUL 41080 // Once the Shadow Demons reach their pTarget, they use this to kill them
|
||||
#define SPELL_CONSUME_SOUL 41080 // Once the Shadow Demons reach their target, they use this to kill them
|
||||
#define SPELL_PARALYZE 41083 // Shadow Demons cast this on their target
|
||||
#define SPELL_PURPLE_BEAM 39123 // Purple Beam connecting Shadow Demon to their target
|
||||
//Phase Flight spells
|
||||
@@ -1727,7 +1727,7 @@ struct TRINITY_DLL_DECL shadow_demonAI : public ScriptedAI
|
||||
DoCast(m_creature->getVictim(), SPELL_PURPLE_BEAM, true);
|
||||
DoCast(m_creature->getVictim(), SPELL_PARALYZE, true);
|
||||
}
|
||||
// Kill our pTarget if we're very close.
|
||||
// Kill our target if we're very close.
|
||||
if (m_creature->IsWithinDistInMap(m_creature->getVictim(), 3))
|
||||
DoCast(m_creature->getVictim(), SPELL_CONSUME_SOUL);
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ struct TRINITY_DLL_DECL boss_shahrazAI : public ScriptedAI
|
||||
PrismaticShieldTimer = 15000;
|
||||
} else PrismaticShieldTimer -= diff;
|
||||
|
||||
// Select 3 random targets (can select same pTarget more than once), teleport to a random location then make them cast explosions until they get away from each other.
|
||||
// Select 3 random targets (can select same target more than once), teleport to a random location then make them cast explosions until they get away from each other.
|
||||
if (FatalAttractionTimer <= diff)
|
||||
{
|
||||
ExplosionCount = 0;
|
||||
|
||||
@@ -197,7 +197,7 @@ struct TRINITY_DLL_DECL boss_reliquary_of_soulsAI : public ScriptedAI
|
||||
{
|
||||
DoModifyThreatPercent(pUnit, -100);
|
||||
float threat = pTarget->getThreatManager().getThreat(pUnit);
|
||||
m_creature->AddThreat(pUnit, threat); // This makes it so that the unit has the same amount of threat in Reliquary's threatlist as in the pTarget creature's (One of the Essences).
|
||||
m_creature->AddThreat(pUnit, threat); // This makes it so that the unit has the same amount of threat in Reliquary's threatlist as in the target creature's (One of the Essences).
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI
|
||||
{
|
||||
m_creature->CastSpell(pTarget, SPELL_IMPALING_SPINE, true);
|
||||
SpineTargetGUID = pTarget->GetGUID();
|
||||
//must let pTarget summon, otherwise you cannot click the spine
|
||||
//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);
|
||||
DoScriptText(rand()%2 ? SAY_NEEDLE1 : SAY_NEEDLE2, m_creature);
|
||||
events.DelayEvents(1500, GCD_CAST);
|
||||
|
||||
@@ -788,7 +788,7 @@ struct TRINITY_DLL_DECL boss_veras_darkshadowAI : public boss_illidari_councilAI
|
||||
DoCast(pTarget, SPELL_DEADLY_POISON);
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
DoResetThreat();
|
||||
m_creature->AddThreat(pTarget, 3000.0f); // Make Veras attack his pTarget for a while, he will cast Envenom 4 seconds after.
|
||||
m_creature->AddThreat(pTarget, 3000.0f); // Make Veras attack his target for a while, he will cast Envenom 4 seconds after.
|
||||
DeadlyPoisonTimer += 6000;
|
||||
VanishTimer = 90000;
|
||||
AppearEnvenomTimer = 4000;
|
||||
|
||||
@@ -293,7 +293,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI
|
||||
{
|
||||
case 0:
|
||||
//Shoot
|
||||
//Used in Phases 1 and 3 after Entangle or while having nobody in melee range. A shot that hits her pTarget for 4097-5543 Physical damage.
|
||||
//Used in Phases 1 and 3 after Entangle or while having nobody in melee range. A shot that hits her target for 4097-5543 Physical damage.
|
||||
DoCast(m_creature->getVictim(), SPELL_SHOOT);
|
||||
break;
|
||||
case 1:
|
||||
@@ -339,7 +339,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI
|
||||
if (ShockBlast_Timer <= diff)
|
||||
{
|
||||
//Shock Burst
|
||||
//Randomly used in Phases 1 and 3 on Vashj's pTarget, it's a Shock spell doing 8325-9675 nature damage and stunning the pTarget for 5 seconds, during which she will not attack her pTarget but switch to the next person on the aggro list.
|
||||
//Randomly used in Phases 1 and 3 on Vashj's target, it's a Shock spell doing 8325-9675 nature damage and stunning the target for 5 seconds, during which she will not attack her target but switch to the next person on the aggro list.
|
||||
DoCast(m_creature->getVictim(), SPELL_SHOCK_BLAST);
|
||||
m_creature->TauntApply(m_creature->getVictim());
|
||||
|
||||
@@ -350,7 +350,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI
|
||||
if (StaticCharge_Timer <= diff)
|
||||
{
|
||||
//Static Charge
|
||||
//Used on random people (only 1 person at any given time) in Phases 1 and 3, it's a debuff doing 2775 to 3225 Nature damage to the pTarget and everybody in about 5 yards around it, every 1 seconds for 30 seconds. It can be removed by Cloak of Shadows, Iceblock, Divine Shield, etc, but not by Cleanse or Dispel Magic.
|
||||
//Used on random people (only 1 person at any given time) in Phases 1 and 3, it's a debuff doing 2775 to 3225 Nature damage to the target and everybody in about 5 yards around it, every 1 seconds for 30 seconds. It can be removed by Cloak of Shadows, Iceblock, Divine Shield, etc, but not by Cleanse or Dispel Magic.
|
||||
Unit *pTarget = NULL;
|
||||
pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 200, true);
|
||||
|
||||
|
||||
@@ -227,7 +227,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
counter = 0;
|
||||
do{pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 50, true); //pTarget players only
|
||||
do{pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 50, true); //target players only
|
||||
if (counter < Playercount)
|
||||
break;
|
||||
if (pTarget) itr = list.find(pTarget->GetGUID());
|
||||
@@ -308,7 +308,7 @@ struct TRINITY_DLL_DECL mob_water_globuleAI : public ScriptedAI
|
||||
|
||||
if (who->isTargetableForAttack() && who->isInAccessiblePlaceFor(m_creature) && m_creature->IsHostileTo(who))
|
||||
{
|
||||
//no attack radius check - it attacks the first pTarget that moves in his los
|
||||
//no attack radius check - it attacks the first target that moves in his los
|
||||
//who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
|
||||
AttackStart(who);
|
||||
}
|
||||
|
||||
@@ -59,11 +59,11 @@ static Yell RandomTaunt[]=
|
||||
#define SPELL_CLEAVE 30619
|
||||
#define SPELL_QUAKE_TRIGGER 30657 // must be cast with 30561 as the proc spell
|
||||
#define SPELL_QUAKE_KNOCKBACK 30571
|
||||
#define SPELL_BLAZE_TARGET 30541 // core bug, does not support pTarget 7
|
||||
#define SPELL_BLAZE_TARGET 30541 // core bug, does not support target 7
|
||||
#define SPELL_BLAZE_TRAP 30542
|
||||
#define SPELL_DEBRIS_KNOCKDOWN 36449
|
||||
#define SPELL_DEBRIS_VISUAL 30632
|
||||
#define SPELL_DEBRIS_DAMAGE 30631 // core bug, does not support pTarget 8
|
||||
#define SPELL_DEBRIS_DAMAGE 30631 // core bug, does not support target 8
|
||||
#define SPELL_CAMERA_SHAKE 36455
|
||||
#define SPELL_BERSERK 27680
|
||||
|
||||
@@ -79,7 +79,7 @@ static Yell RandomTaunt[]=
|
||||
#define SPELL_DARK_MENDING 30528
|
||||
#define SPELL_FEAR 30530 //39176
|
||||
#define SPELL_BURNING_ABYSSAL 30511
|
||||
#define SPELL_SOUL_TRANSFER 30531 // core bug, does not support pTarget 7
|
||||
#define SPELL_SOUL_TRANSFER 30531 // core bug, does not support target 7
|
||||
|
||||
#define SPELL_FIRE_BLAST 37110
|
||||
|
||||
@@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
|
||||
m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
|
||||
m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
|
||||
|
||||
// pTarget 7, random pTarget with certain entry spell, need core fix
|
||||
// target 7, random target with certain entry spell, need core fix
|
||||
SpellEntry *TempSpell;
|
||||
TempSpell = GET_SPELL(SPELL_BLAZE_TARGET);
|
||||
if (TempSpell && TempSpell->EffectImplicitTargetA[0] != 6)
|
||||
|
||||
@@ -24,8 +24,8 @@ EndScriptData */
|
||||
#include "precompiled.h"
|
||||
#include "magtheridons_lair.h"
|
||||
|
||||
#define SPELL_SOUL_TRANSFER 30531 // core bug, does not support pTarget 7
|
||||
#define SPELL_BLAZE_TARGET 30541 // core bug, does not support pTarget 7
|
||||
#define SPELL_SOUL_TRANSFER 30531 // core bug, does not support target 7
|
||||
#define SPELL_BLAZE_TARGET 30541 // core bug, does not support target 7
|
||||
|
||||
#define CHAMBER_CENTER_X -15.14
|
||||
#define CHAMBER_CENTER_Y 1.8
|
||||
|
||||
@@ -59,23 +59,22 @@ struct TRINITY_DLL_DECL mob_crystalcore_devastatorAI : public ScriptedAI
|
||||
{
|
||||
m_creature->CastSpell(m_creature->getVictim(),SPELL_KNOCKAWAY, true);
|
||||
|
||||
// current aggro pTarget is knocked away pick new target
|
||||
Unit* Target = SelectUnit(SELECT_TARGET_TOPAGGRO, 0);
|
||||
// current aggro target is knocked away pick new target
|
||||
Unit* pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO, 0);
|
||||
|
||||
if (!Target || Target == m_creature->getVictim())
|
||||
Target = SelectUnit(SELECT_TARGET_TOPAGGRO, 1);
|
||||
if (!pTarget || pTarget == m_creature->getVictim())
|
||||
pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO, 1);
|
||||
|
||||
if (Target)
|
||||
m_creature->TauntApply(Target);
|
||||
if (pTarget)
|
||||
m_creature->TauntApply(pTarget);
|
||||
|
||||
Knockaway_Timer = 23000;
|
||||
}
|
||||
else Knockaway_Timer -= diff;
|
||||
} else Knockaway_Timer -= diff;
|
||||
|
||||
//Countercharge_Timer
|
||||
if (Countercharge_Timer <= diff)
|
||||
{
|
||||
DoCast(this->m_creature,SPELL_COUNTERCHARGE);
|
||||
DoCast(m_creature,SPELL_COUNTERCHARGE);
|
||||
Countercharge_Timer = 45000;
|
||||
} else Countercharge_Timer -= diff;
|
||||
|
||||
|
||||
@@ -191,7 +191,7 @@ struct TRINITY_DLL_DECL npc_air_force_botsAI : public ScriptedAI
|
||||
Aura* pMarkAura = pWho->GetAura(SPELL_GUARDS_MARK, 0);
|
||||
if (pMarkAura)
|
||||
{
|
||||
// the pTarget wasn't able to move out of our range within 25 seconds
|
||||
// the target wasn't able to move out of our range within 25 seconds
|
||||
if (!pLastSpawnedGuard)
|
||||
{
|
||||
pLastSpawnedGuard = SummonGuard();
|
||||
@@ -1513,7 +1513,7 @@ struct TRINITY_DLL_DECL npc_snake_trap_serpentsAI : public ScriptedAI
|
||||
m_creature->SetStatFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER , Info->attackpower);
|
||||
}
|
||||
|
||||
//Redefined for random pTarget selection:
|
||||
//Redefined for random target selection:
|
||||
void MoveInLineOfSight(Unit *who)
|
||||
{
|
||||
if (!m_creature->getVictim() && who->isTargetableForAttack() && (m_creature->IsHostileTo(who)) && who->isInAccessiblePlaceFor(m_creature))
|
||||
|
||||
Reference in New Issue
Block a user