*Merge.
--HG-- branch : trunk
This commit is contained in:
@@ -381,6 +381,7 @@ scripts/zone/uldaman/instance_uldaman.cpp \
|
||||
scripts/zone/uldaman/boss_ironaya.cpp \
|
||||
scripts/zone/uldaman/uldaman.cpp \
|
||||
scripts/zone/undercity/undercity.cpp \
|
||||
scripts/zone/ungoro_crater/ungoro_crater.cpp \
|
||||
scripts/zone/wailing_caverns/instance_wailing_caverns.cpp \
|
||||
scripts/zone/western_plaguelands/western_plaguelands.cpp \
|
||||
scripts/zone/westfall/westfall.cpp \
|
||||
|
||||
@@ -563,6 +563,8 @@ extern void AddSC_instance_uldaman();
|
||||
extern void AddSC_undercity();
|
||||
|
||||
//Un'Goro Crater
|
||||
extern void AddSC_ungoro_crater();
|
||||
|
||||
//Upper blackrock spire
|
||||
//Wailing caverns
|
||||
|
||||
@@ -1770,6 +1772,8 @@ void ScriptsInit()
|
||||
AddSC_undercity();
|
||||
|
||||
//Un'Goro Crater
|
||||
AddSC_ungoro_crater();
|
||||
|
||||
//Upper blackrock spire
|
||||
//Wailing caverns
|
||||
|
||||
|
||||
@@ -1236,6 +1236,10 @@
|
||||
<Filter
|
||||
Name="Un'Goro Crater"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\scripts\zone\ungoro_crater\ungoro_crater.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Aunchindoun"
|
||||
|
||||
@@ -1498,6 +1498,10 @@
|
||||
<Filter
|
||||
Name="Un'Goro Crater"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\scripts\zone\ungoro_crater\ungoro_crater.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Aunchindoun"
|
||||
|
||||
@@ -1518,6 +1518,10 @@
|
||||
<Filter
|
||||
Name="Un'Goro Crater"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\scripts\zone\ungoro_crater\ungoro_crater.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Aunchindoun"
|
||||
|
||||
@@ -711,11 +711,23 @@ void ScriptedAI::DoResetThreat()
|
||||
{
|
||||
Unit* pUnit = NULL;
|
||||
pUnit = Unit::GetUnit((*m_creature), (*itr)->getUnitGuid());
|
||||
if(pUnit && m_creature->getThreatManager().getThreat(pUnit))
|
||||
m_creature->getThreatManager().modifyThreatPercent(pUnit, -100);
|
||||
if(pUnit && DoGetThreat(pUnit))
|
||||
DoModifyThreatPercent(pUnit, -100);
|
||||
}
|
||||
}
|
||||
|
||||
float ScriptedAI::DoGetThreat(Unit* pUnit)
|
||||
{
|
||||
if(!pUnit) return 0.0f;
|
||||
return m_creature->getThreatManager().getThreat(pUnit);
|
||||
}
|
||||
|
||||
void ScriptedAI::DoModifyThreatPercent(Unit *pUnit, int32 pct)
|
||||
{
|
||||
if(!pUnit) return;
|
||||
m_creature->getThreatManager().modifyThreatPercent(pUnit, pct);
|
||||
}
|
||||
|
||||
void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float o)
|
||||
{
|
||||
if(!pUnit || pUnit->GetTypeId() != TYPEID_PLAYER)
|
||||
|
||||
@@ -144,6 +144,9 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
|
||||
//Drops all threat to 0%. Does not remove players from the threat list
|
||||
void DoResetThreat();
|
||||
|
||||
float DoGetThreat(Unit *u);
|
||||
void DoModifyThreatPercent(Unit *pUnit, int32 pct);
|
||||
|
||||
//Teleports a player without dropping threat (only teleports to same map)
|
||||
void DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float o);
|
||||
void DoTeleportAll(float x, float y, float z, float o);
|
||||
|
||||
@@ -684,7 +684,7 @@ struct TRINITY_DLL_DECL Mob_EventAI : public ScriptedAI
|
||||
Unit* target = GetTargetByType(param2, pActionInvoker);
|
||||
|
||||
if (target)
|
||||
m_creature->getThreatManager().modifyThreatPercent(target, param1);
|
||||
DoModifyThreatPercent(target, param1);
|
||||
}
|
||||
break;
|
||||
case ACTION_T_THREAT_ALL_PCT:
|
||||
@@ -696,7 +696,7 @@ struct TRINITY_DLL_DECL Mob_EventAI : public ScriptedAI
|
||||
{
|
||||
Temp = Unit::GetUnit((*m_creature),(*i)->getUnitGuid());
|
||||
if (Temp)
|
||||
m_creature->getThreatManager().modifyThreatPercent(Temp, param1);
|
||||
DoModifyThreatPercent(Temp, param1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -189,8 +189,8 @@ struct TRINITY_DLL_DECL boss_gurtogg_bloodboilAI : public ScriptedAI
|
||||
pUnit = Unit::GetUnit((*m_creature), guid);
|
||||
if(pUnit)
|
||||
{
|
||||
if(m_creature->getThreatManager().getThreat(pUnit))
|
||||
m_creature->getThreatManager().modifyThreatPercent(pUnit, -100);
|
||||
if(DoGetThreat(pUnit))
|
||||
DoModifyThreatPercent(pUnit, -100);
|
||||
if(TargetThreat)
|
||||
m_creature->AddThreat(pUnit, TargetThreat);
|
||||
}
|
||||
@@ -231,7 +231,7 @@ struct TRINITY_DLL_DECL boss_gurtogg_bloodboilAI : public ScriptedAI
|
||||
if(BewilderingStrikeTimer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_BEWILDERING_STRIKE);
|
||||
float mt_threat = m_creature->getThreatManager().getThreat(m_creature->getVictim());
|
||||
float mt_threat = DoGetThreat(m_creature->getVictim());
|
||||
if (Unit* target = SelectUnit(SELECT_TARGET_TOPAGGRO, 1))
|
||||
m_creature->AddThreat(target, mt_threat);
|
||||
BewilderingStrikeTimer = 20000;
|
||||
@@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL boss_gurtogg_bloodboilAI : public ScriptedAI
|
||||
if(EjectTimer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_EJECT1);
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(), -40);
|
||||
DoModifyThreatPercent(m_creature->getVictim(), -40);
|
||||
EjectTimer = 15000;
|
||||
}else EjectTimer -= diff;
|
||||
|
||||
@@ -286,11 +286,11 @@ struct TRINITY_DLL_DECL boss_gurtogg_bloodboilAI : public ScriptedAI
|
||||
{
|
||||
Phase1 = false;
|
||||
|
||||
TargetThreat = m_creature->getThreatManager().getThreat(target);
|
||||
TargetThreat = DoGetThreat(target);
|
||||
TargetGUID = target->GetGUID();
|
||||
target->CastSpell(m_creature, SPELL_TAUNT_GURTOGG, true);
|
||||
if(m_creature->getThreatManager().getThreat(target))
|
||||
m_creature->getThreatManager().modifyThreatPercent(target, -100);
|
||||
if(DoGetThreat(target))
|
||||
DoModifyThreatPercent(target, -100);
|
||||
m_creature->AddThreat(target, 50000000.0f);
|
||||
// If VMaps are disabled, this spell can call the whole instance
|
||||
DoCast(m_creature, SPELL_INSIGNIFIGANCE, true);
|
||||
|
||||
@@ -316,7 +316,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI
|
||||
Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
|
||||
if(pUnit && pUnit->isAlive())
|
||||
{
|
||||
float threat = m_creature->getThreatManager().getThreat(pUnit);
|
||||
float threat = DoGetThreat(pUnit);
|
||||
Blossom->AddThreat(pUnit, threat);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,8 +104,8 @@ struct TRINITY_DLL_DECL boss_broodlordAI : public ScriptedAI
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_KNOCKBACK);
|
||||
//Drop 50% aggro
|
||||
if (m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-50);
|
||||
if (DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-50);
|
||||
|
||||
KnockBack_Timer = 15000 + rand()%15000;
|
||||
}else KnockBack_Timer -= diff;
|
||||
|
||||
@@ -63,8 +63,8 @@ struct TRINITY_DLL_DECL boss_firemawAI : public ScriptedAI
|
||||
if (WingBuffet_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_WINGBUFFET);
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-75);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-75);
|
||||
|
||||
WingBuffet_Timer = 25000;
|
||||
}else WingBuffet_Timer -= diff;
|
||||
|
||||
@@ -65,8 +65,8 @@ struct TRINITY_DLL_DECL boss_flamegorAI : public ScriptedAI
|
||||
if (WingBuffet_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_WINGBUFFET);
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-75);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-75);
|
||||
|
||||
WingBuffet_Timer = 25000;
|
||||
}else WingBuffet_Timer -= diff;
|
||||
|
||||
@@ -97,8 +97,8 @@ struct TRINITY_DLL_DECL boss_razorgoreAI : public ScriptedAI
|
||||
DoCast(m_creature->getVictim(),SPELL_CONFLAGRATION);
|
||||
//We will remove this threat reduction and add an aura check.
|
||||
|
||||
//if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
//m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-50);
|
||||
//if(DoGetThreat(m_creature->getVictim()))
|
||||
//DoModifyThreatPercent(m_creature->getVictim(),-50);
|
||||
|
||||
Conflagration_Timer = 12000;
|
||||
}else Conflagration_Timer -= diff;
|
||||
|
||||
@@ -291,7 +291,7 @@ struct TRINITY_DLL_DECL mob_doomfire_targettingAI : public ScriptedAI
|
||||
target = SelectUnit(SELECT_TARGET_RANDOM, 1);
|
||||
if(target && target->isAlive())
|
||||
{
|
||||
m_creature->AddThreat(target, m_creature->getThreatManager().getThreat(m_creature->getVictim()));
|
||||
m_creature->AddThreat(target, DoGetThreat(m_creature->getVictim()));
|
||||
m_creature->GetMotionMaster()->MoveChase(target);
|
||||
}
|
||||
break;
|
||||
@@ -469,7 +469,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public ScriptedAI
|
||||
if(!m_creature->IsWithinDistInMap(target, m_creature->GetAttackDistance(target)))
|
||||
return true; // Cast Finger of Death
|
||||
else // This target is closest, he is our new tank
|
||||
m_creature->AddThreat(target, m_creature->getThreatManager().getThreat(m_creature->getVictim()));
|
||||
m_creature->AddThreat(target, DoGetThreat(m_creature->getVictim()));
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
+2
-2
@@ -101,7 +101,7 @@ struct TRINITY_DLL_DECL mob_inner_demonAI : public ScriptedAI
|
||||
if(done_by->GetGUID() != victimGUID && done_by->GetGUID() != m_creature->GetGUID())
|
||||
{
|
||||
damage = 0;
|
||||
m_creature->getThreatManager().modifyThreatPercent(done_by, -100);
|
||||
DoModifyThreatPercent(done_by, -100);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -343,7 +343,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI
|
||||
if( pUnit_target && pUnit_target->isAlive())
|
||||
{
|
||||
pUnit->CastSpell(pUnit_target, SPELL_CONSUMING_MADNESS, true);
|
||||
m_creature->getThreatManager().modifyThreatPercent(pUnit_target, -100);
|
||||
DoModifyThreatPercent(pUnit_target, -100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -519,7 +519,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
|
||||
if(axe)
|
||||
{
|
||||
float threat = 1000000.0f;
|
||||
if(axe->getVictim() && m_creature->getThreatManager().getThreat(axe->getVictim()))
|
||||
if(axe->getVictim() && DoGetThreat(axe->getVictim()))
|
||||
{
|
||||
threat = axe->getThreatManager().getThreat(axe->getVictim());
|
||||
axe->getThreatManager().modifyThreatPercent(axe->getVictim(), -100);
|
||||
|
||||
@@ -795,9 +795,9 @@ struct TRINITY_DLL_DECL boss_bigbadwolfAI : public ScriptedAI
|
||||
DoScriptText(SAY_WOLF_HOOD, m_creature);
|
||||
|
||||
DoCast(target, SPELL_LITTLE_RED_RIDING_HOOD, true);
|
||||
TempThreat = m_creature->getThreatManager().getThreat(target);
|
||||
TempThreat = DoGetThreat(target);
|
||||
if(TempThreat)
|
||||
m_creature->getThreatManager().modifyThreatPercent(target, -100);
|
||||
DoModifyThreatPercent(target, -100);
|
||||
HoodGUID = target->GetGUID();
|
||||
m_creature->AddThreat(target, 1000000.0f);
|
||||
ChaseTimer = 20000;
|
||||
@@ -811,8 +811,8 @@ struct TRINITY_DLL_DECL boss_bigbadwolfAI : public ScriptedAI
|
||||
if(target)
|
||||
{
|
||||
HoodGUID = 0;
|
||||
if(m_creature->getThreatManager().getThreat(target))
|
||||
m_creature->getThreatManager().modifyThreatPercent(target, -100);
|
||||
if(DoGetThreat(target))
|
||||
DoModifyThreatPercent(target, -100);
|
||||
m_creature->AddThreat(target, TempThreat);
|
||||
TempThreat = 0;
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
|
||||
Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
|
||||
if(pUnit && pUnit->isAlive())
|
||||
{
|
||||
float threat = m_creature->getThreatManager().getThreat(pUnit);
|
||||
float threat = DoGetThreat(pUnit);
|
||||
SummonedUnit->AddThreat(pUnit, 0.1f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -508,7 +508,7 @@ struct TRINITY_DLL_DECL boss_kagani_nightstrikeAI : public boss_priestess_guestA
|
||||
if(Gouge_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_GOUGE);
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-100);
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-100);
|
||||
Gouge_Timer = 5500;
|
||||
}else Gouge_Timer -= diff;
|
||||
|
||||
@@ -758,7 +758,7 @@ struct TRINITY_DLL_DECL boss_yazzaiAI : public boss_priestess_guestAI
|
||||
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
|
||||
{
|
||||
DoCast(target, SPELL_POLYMORPH);
|
||||
m_creature->getThreatManager().modifyThreatPercent(target,-100);
|
||||
DoModifyThreatPercent(target,-100);
|
||||
Polymorph_Timer = 20000;
|
||||
}
|
||||
}else Polymorph_Timer -= diff;
|
||||
@@ -1022,7 +1022,7 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_guestAI
|
||||
if(Freezing_Trap_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_FREEZING_TRAP);
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-100);
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-100);
|
||||
Freezing_Trap_Timer = 30000;
|
||||
}else Freezing_Trap_Timer -= diff;
|
||||
|
||||
|
||||
@@ -105,8 +105,8 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI
|
||||
target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
||||
if (target && target->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
if(m_creature->getThreatManager().getThreat(target))
|
||||
m_creature->getThreatManager().modifyThreatPercent(target, -100);
|
||||
if(DoGetThreat(target))
|
||||
DoModifyThreatPercent(target, -100);
|
||||
|
||||
switch(rand()%6)
|
||||
{
|
||||
|
||||
@@ -115,7 +115,7 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
|
||||
m_creature->setFaction(35);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID,11686); // Invisible Model
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-99);
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-99);
|
||||
|
||||
//Summon 10 Illusions attacking random gamers
|
||||
Unit* target = NULL;
|
||||
|
||||
@@ -247,8 +247,8 @@ struct TRINITY_DLL_DECL boss_dathrohan_balnazzarAI : public ScriptedAI
|
||||
if (rand()%100 < 60) //60% chance to cast
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_PSYCHICSCREAM);
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-50);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-50);
|
||||
}
|
||||
//15 seconds until we should cast this again
|
||||
PsychicScream_Timer = 20000;
|
||||
|
||||
@@ -139,8 +139,8 @@ struct TRINITY_DLL_DECL boss_void_reaverAI : public ScriptedAI
|
||||
DoCast(m_creature->getVictim(),SPELL_KNOCK_AWAY);
|
||||
|
||||
//Drop 25% aggro
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-25);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-25);
|
||||
|
||||
KnockAway_Timer = 30000;
|
||||
}else KnockAway_Timer -= diff;
|
||||
|
||||
@@ -187,8 +187,8 @@ struct TRINITY_DLL_DECL boss_vemAI : public ScriptedAI
|
||||
if (KnockBack_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_KNOCKBACK);
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-80);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-80);
|
||||
KnockBack_Timer = 15000 + rand()%10000;
|
||||
}else KnockBack_Timer -= diff;
|
||||
|
||||
|
||||
@@ -127,8 +127,8 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI
|
||||
{
|
||||
DoCast(target, SPELL_ROOT);
|
||||
|
||||
if(m_creature->getThreatManager().getThreat(target))
|
||||
m_creature->getThreatManager().modifyThreatPercent(target, -100);
|
||||
if(DoGetThreat(target))
|
||||
DoModifyThreatPercent(target, -100);
|
||||
|
||||
switch(rand()%3)
|
||||
{
|
||||
|
||||
@@ -116,7 +116,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
|
||||
if (ohealth <= 0)
|
||||
{
|
||||
pOtherBoss->setDeathState(JUST_DIED);
|
||||
pOtherBoss->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
||||
pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
|
||||
{
|
||||
pOtherBoss->SetHealth(0);
|
||||
pOtherBoss->setDeathState(JUST_DIED);
|
||||
pOtherBoss->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
||||
pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
||||
((boss_twinemperorsAI *)pOtherBoss->AI())->DontYellWhenDead = true;
|
||||
}
|
||||
if (!DontYellWhenDead) // I hope AI is not threaded
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/* ScriptData
|
||||
SDName: Terokkar_Forest
|
||||
SD%Complete: 80
|
||||
SDComment: Quest support: 9889(test script only, sql inside script), 10009, 10873, 10896, 11096. Skettis->Ogri'la Flight
|
||||
SDComment: Quest support: 9889, 10009, 10873, 10896, 11096, 10052, 10051. Skettis->Ogri'la Flight
|
||||
SDCategory: Terokkar Forest
|
||||
EndScriptData */
|
||||
|
||||
@@ -28,9 +28,11 @@ mob_rotting_forest_rager
|
||||
mob_netherweb_victim
|
||||
npc_floon
|
||||
npc_skyguard_handler_deesak
|
||||
npc_isla_starmane
|
||||
EndContentData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "../../npc/npc_escortAI.h"
|
||||
|
||||
/*######
|
||||
## mob_unkor_the_ruthless
|
||||
@@ -354,9 +356,138 @@ bool GossipSelect_npc_skyguard_handler_deesak(Player *player, Creature *_Creatur
|
||||
}
|
||||
|
||||
/*######
|
||||
## AddSC
|
||||
## npc_isla_starmane
|
||||
######*/
|
||||
|
||||
#define SAY_PROGRESS_1 "Ok let's get out of here!"
|
||||
#define SAY_PROGRESS_2 "You sure you're ready? Take a moment."
|
||||
#define SAY_PROGRESS_3 "Alright, let's do this!"
|
||||
#define SAY_PROGRESS_4 "Ok, I think I can make it on my own from here. Thank you so much for breaking me out of there!"
|
||||
|
||||
#define QUEST_EFTW_H 10052
|
||||
#define QUEST_EFTW_A 10051
|
||||
#define GO_CAGE 182794
|
||||
#define SPELL_CAT 32447
|
||||
|
||||
struct TRINITY_DLL_DECL npc_isla_starmaneAI : public npc_escortAI
|
||||
{
|
||||
npc_isla_starmaneAI(Creature* c) : npc_escortAI(c) {Reset();}
|
||||
|
||||
bool Completed;
|
||||
|
||||
void WaypointReached(uint32 i)
|
||||
{
|
||||
Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
|
||||
|
||||
if(!player)
|
||||
return;
|
||||
|
||||
switch(i)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
GameObject* Cage = FindGameObject(GO_CAGE, 99);
|
||||
if(Cage)
|
||||
Cage->SetGoState(0);
|
||||
}break;
|
||||
case 2: DoSay(SAY_PROGRESS_1, LANG_UNIVERSAL, player); break;
|
||||
case 5: DoSay(SAY_PROGRESS_2, LANG_UNIVERSAL, player); break;
|
||||
case 6: DoSay(SAY_PROGRESS_3, LANG_UNIVERSAL, player); break;
|
||||
case 29:DoSay(SAY_PROGRESS_4, LANG_UNIVERSAL, player);
|
||||
if (player)
|
||||
{
|
||||
if(((Player*)player)->GetTeam() == ALLIANCE)
|
||||
((Player*)player)->GroupEventHappens(QUEST_EFTW_A, m_creature);
|
||||
else if(((Player*)player)->GetTeam() == HORDE)
|
||||
((Player*)player)->GroupEventHappens(QUEST_EFTW_H, m_creature);
|
||||
} Completed = true;
|
||||
m_creature->SetInFront(player); break;
|
||||
case 30: m_creature->HandleEmoteCommand(EMOTE_ONESHOT_WAVE); break;
|
||||
case 31: DoCast(m_creature, SPELL_CAT);
|
||||
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); break;
|
||||
}
|
||||
}
|
||||
|
||||
void Reset()
|
||||
{
|
||||
Completed = false;
|
||||
}
|
||||
|
||||
void Aggro(Unit* who){}
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
if (PlayerGUID)
|
||||
{
|
||||
Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
|
||||
if (player && !Completed)
|
||||
{
|
||||
if(((Player*)player)->GetTeam() == ALLIANCE)
|
||||
((Player*)player)->FailQuest(QUEST_EFTW_A);
|
||||
else if(((Player*)player)->GetTeam() == HORDE)
|
||||
((Player*)player)->FailQuest(QUEST_EFTW_H);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
||||
bool QuestAccept_npc_isla_starmane(Player* player, Creature* creature, Quest const* quest)
|
||||
{
|
||||
if (quest->GetQuestId() == QUEST_EFTW_H || quest->GetQuestId() == QUEST_EFTW_A)
|
||||
{
|
||||
((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI_npc_isla_starmaneAI(Creature *_Creature)
|
||||
{
|
||||
npc_isla_starmaneAI* thisAI = new npc_isla_starmaneAI(_Creature);
|
||||
|
||||
thisAI->AddWaypoint(0, -2265.21, 3091.14, 13.91);
|
||||
thisAI->AddWaypoint(1, -2266.80, 3091.33, 13.82, 1000);
|
||||
thisAI->AddWaypoint(2, -2268.20, 3091.14, 13.82, 7000);//progress1
|
||||
thisAI->AddWaypoint(3, -2278.32, 3098.98, 13.82);
|
||||
thisAI->AddWaypoint(4, -2294.82, 3110.59, 13.82);
|
||||
thisAI->AddWaypoint(5, -2300.71, 3114.60, 13.82, 20000);//progress2
|
||||
thisAI->AddWaypoint(6, -2300.71, 3114.60, 13.82, 3000);//progress3
|
||||
thisAI->AddWaypoint(7, -2307.36, 3122.76, 13.79);
|
||||
thisAI->AddWaypoint(8, -2312.83, 3130.55, 12.04);
|
||||
thisAI->AddWaypoint(9, -2345.02, 3151.00, 8.38);
|
||||
thisAI->AddWaypoint(10, -2351.97, 3157.61, 6.27);
|
||||
thisAI->AddWaypoint(11, -2360.35, 3171.48, 3.31);
|
||||
thisAI->AddWaypoint(12, -2371.44, 3185.41, 0.89);
|
||||
thisAI->AddWaypoint(13, -2371.21, 3197.92, -0.96);
|
||||
thisAI->AddWaypoint(14, -2380.35, 3210.45, -1.08);
|
||||
thisAI->AddWaypoint(15, -2384.74, 3221.25, -1.17);
|
||||
thisAI->AddWaypoint(16, -2386.15, 3233.39, -1.29);
|
||||
thisAI->AddWaypoint(17, -2383.45, 3247.79, -1.32);
|
||||
thisAI->AddWaypoint(18, -2367.50, 3265.64, -1.33);
|
||||
thisAI->AddWaypoint(19, -2354.90, 3273.30, -1.50);
|
||||
thisAI->AddWaypoint(20, -2348.88, 3280.58, -0.09);
|
||||
thisAI->AddWaypoint(21, -2349.06, 3295.86, -0.95);
|
||||
thisAI->AddWaypoint(22, -2350.43, 3328.27, -2.10);
|
||||
thisAI->AddWaypoint(23, -2346.76, 3356.27, -2.82);
|
||||
thisAI->AddWaypoint(24, -2340.56, 3370.68, -4.02);
|
||||
thisAI->AddWaypoint(25, -2318.84, 3384.60, -7.61);
|
||||
thisAI->AddWaypoint(26, -2313.99, 3398.61, -10.40);
|
||||
thisAI->AddWaypoint(27, -2320.85, 3414.49, -11.49);
|
||||
thisAI->AddWaypoint(28, -2338.26, 3426.06, -11.46);
|
||||
thisAI->AddWaypoint(29, -2342.67, 3439.44, -11.32, 12000);//progress4
|
||||
thisAI->AddWaypoint(30, -2342.67, 3439.44, -11.32, 7000);//emote bye
|
||||
thisAI->AddWaypoint(31, -2342.67, 3439.44, -11.32, 5000);//cat form
|
||||
thisAI->AddWaypoint(32, -2344.60, 3461.27, -10.44);
|
||||
thisAI->AddWaypoint(33, -2396.81, 3517.17, -3.55);
|
||||
thisAI->AddWaypoint(34, -2439.23, 3523.00, -1.05);
|
||||
|
||||
return (CreatureAI*)thisAI;
|
||||
}
|
||||
|
||||
void AddSC_terokkar_forest()
|
||||
{
|
||||
Script *newscript;
|
||||
@@ -392,4 +523,10 @@ void AddSC_terokkar_forest()
|
||||
newscript->pGossipHello = &GossipHello_npc_skyguard_handler_deesak;
|
||||
newscript->pGossipSelect = &GossipSelect_npc_skyguard_handler_deesak;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name= "npc_isla_starmane";
|
||||
newscript->GetAI = &GetAI_npc_isla_starmaneAI;
|
||||
newscript->pQuestAccept = &QuestAccept_npc_isla_starmane;
|
||||
newscript->RegisterSelf();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,208 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Ungoro Crater
|
||||
SD%Complete: 100
|
||||
SDComment: Support for Quest: 4245
|
||||
SDCategory: Ungoro Crater
|
||||
EndScriptData */
|
||||
|
||||
/* ContentData
|
||||
npc_a-me
|
||||
EndContentData */
|
||||
|
||||
#include "precompiled.h"
|
||||
#include "../../npc/npc_escortAI.h"
|
||||
|
||||
#define SAY_READY -1000200
|
||||
#define SAY_AGGRO1 -1000201
|
||||
#define SAY_SEARCH -1000202
|
||||
#define SAY_AGGRO2 -1000203
|
||||
#define SAY_AGGRO3 -1000204
|
||||
#define SAY_FINISH -1000205
|
||||
|
||||
#define SPELL_DEMORALIZINGSHOUT 13730
|
||||
|
||||
#define QUEST_CHASING_AME 4245
|
||||
#define ENTRY_TARLORD 6519
|
||||
#define ENTRY_TARLORD1 6519
|
||||
#define ENTRY_STOMPER 6513
|
||||
|
||||
|
||||
struct TRINITY_DLL_DECL npc_ameAI : public npc_escortAI
|
||||
{
|
||||
npc_ameAI(Creature *c) : npc_escortAI(c) {Reset();}
|
||||
|
||||
uint32 DEMORALIZINGSHOUT_Timer;
|
||||
|
||||
void WaypointReached(uint32 i)
|
||||
{
|
||||
Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
|
||||
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
switch (i)
|
||||
{
|
||||
|
||||
case 19:
|
||||
m_creature->SummonCreature(ENTRY_STOMPER, -6391.69, -1730.49, -272.83, 4.96, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
|
||||
DoScriptText(SAY_AGGRO1, m_creature, player);
|
||||
break;
|
||||
case 28:
|
||||
DoScriptText(SAY_SEARCH, m_creature, player);
|
||||
break;
|
||||
case 38:
|
||||
m_creature->SummonCreature(ENTRY_TARLORD, -6370.75, -1382.84, -270.51, 6.06, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
|
||||
DoScriptText(SAY_AGGRO2, m_creature, player);
|
||||
break;
|
||||
case 49:
|
||||
m_creature->SummonCreature(ENTRY_TARLORD1, -6324.44, -1181.05, -270.17, 4.34, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
|
||||
DoScriptText(SAY_AGGRO3, m_creature, player);
|
||||
break;
|
||||
case 55:
|
||||
DoScriptText(SAY_FINISH, m_creature, player);
|
||||
if (player && player->GetTypeId() == TYPEID_PLAYER)
|
||||
((Player*)player)->GroupEventHappens(QUEST_CHASING_AME,m_creature);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void Reset()
|
||||
{
|
||||
DEMORALIZINGSHOUT_Timer = 5000;
|
||||
}
|
||||
|
||||
void Aggro(Unit* who)
|
||||
{}
|
||||
|
||||
void JustSummoned(Creature* summoned)
|
||||
{
|
||||
summoned->AI()->AttackStart(m_creature);
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer)
|
||||
{
|
||||
if (PlayerGUID)
|
||||
{
|
||||
if (Unit* player = Unit::GetUnit((*m_creature), PlayerGUID))
|
||||
((Player*)player)->FailQuest(QUEST_CHASING_AME);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
|
||||
return;
|
||||
|
||||
if (DEMORALIZINGSHOUT_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_DEMORALIZINGSHOUT);
|
||||
DEMORALIZINGSHOUT_Timer = 70000;
|
||||
}else DEMORALIZINGSHOUT_Timer -= diff;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
bool QuestAccept_npc_ame(Player* player, Creature* creature, Quest const* quest)
|
||||
{
|
||||
if (quest->GetQuestId() == QUEST_CHASING_AME)
|
||||
{
|
||||
((npc_escortAI*)(creature->AI()))->Start(false, true, false, player->GetGUID());
|
||||
DoScriptText(SAY_READY, creature, player);
|
||||
// Change faction so mobs attack
|
||||
creature->setFaction(775);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI_npc_ame(Creature *_Creature)
|
||||
{
|
||||
npc_ameAI* thisAI = new npc_ameAI(_Creature);
|
||||
|
||||
thisAI->AddWaypoint(1, -6380.38, -1965.14, -258.292, 5000);
|
||||
thisAI->AddWaypoint(2, -6383.06, -1962.9, -258.936);
|
||||
thisAI->AddWaypoint(3, -6391.09, -1956.13, -260.291);
|
||||
thisAI->AddWaypoint(4, -6395.29, -1933.58, -262.949);
|
||||
thisAI->AddWaypoint(5, -6396.58, -1919.93, -263.838);
|
||||
thisAI->AddWaypoint(6, -6389.01, -1912.64, -260.689);
|
||||
thisAI->AddWaypoint(7, -6369.19, -1892.87, -255.924);
|
||||
thisAI->AddWaypoint(8, -6373.77, -1879.36, -259.268);
|
||||
thisAI->AddWaypoint(9, -6377.55, -1869.56, -260.503);
|
||||
thisAI->AddWaypoint(10, -6376.58, -1860.79, -260.026);
|
||||
thisAI->AddWaypoint(11, -6373.13, -1847.22, -259.249);
|
||||
thisAI->AddWaypoint(12, -6370.54, -1837.04, -260.007);
|
||||
thisAI->AddWaypoint(13, -6372.52, -1829.16, -260.071);
|
||||
thisAI->AddWaypoint(14, -6377.13, -1815.94, -262.632);
|
||||
thisAI->AddWaypoint(15, -6380.27, -1806.95, -265.53);
|
||||
thisAI->AddWaypoint(16, -6386.04, -1790.43, -268.546);
|
||||
thisAI->AddWaypoint(17, -6386.72, -1776.29, -269.851);
|
||||
thisAI->AddWaypoint(18, -6385.92, -1762.31, -271.494);
|
||||
thisAI->AddWaypoint(19, -6384.69, -1744.86, -272.196);
|
||||
thisAI->AddWaypoint(20, -6383.8, -1732.66, -272.222);
|
||||
thisAI->AddWaypoint(21, -6382.66, -1716.96, -272.235);
|
||||
thisAI->AddWaypoint(22, -6381.5, -1703.01, -272.964);
|
||||
thisAI->AddWaypoint(23, -6379.96, -1685.58, -272.842);
|
||||
thisAI->AddWaypoint(24, -6379.34, -1678.61, -272.34);
|
||||
thisAI->AddWaypoint(25, -6364.45, -1636.27, -271.065);
|
||||
thisAI->AddWaypoint(26, -6371.85, -1626.36, -272.188);
|
||||
thisAI->AddWaypoint(27, -6383.5, -1629.01, -272.206);
|
||||
thisAI->AddWaypoint(28, -6388.09, -1635.37, -272.105, 5000);
|
||||
thisAI->AddWaypoint(29, -6375.42, -1637.33, -272.193);
|
||||
thisAI->AddWaypoint(30, -6365.46, -1617.25, -272.141);
|
||||
thisAI->AddWaypoint(31, -6353.79, -1603.48, -271.932);
|
||||
thisAI->AddWaypoint(32, -6340.24, -1592.41, -269.435);
|
||||
thisAI->AddWaypoint(33, -6329.45, -1566.89, -269.895);
|
||||
thisAI->AddWaypoint(34, -6312.2, -1499.06, -269.507);
|
||||
thisAI->AddWaypoint(35, -6304.55, -1468.5, -269.431);
|
||||
thisAI->AddWaypoint(36, -6310.36, -1440.94, -268.427);
|
||||
thisAI->AddWaypoint(37, -6321, -1418.91, -266.525);
|
||||
thisAI->AddWaypoint(38, -6358.76, -1389.97, -267.522);
|
||||
thisAI->AddWaypoint(39, -6378.65, -1375.67, -271.749);
|
||||
thisAI->AddWaypoint(40, -6387.22, -1360.95, -272.109);
|
||||
thisAI->AddWaypoint(41, -6406.95, -1323.87, -271.586);
|
||||
thisAI->AddWaypoint(42, -6405, -1311.92, -271.906);
|
||||
thisAI->AddWaypoint(43, -6395.56, -1303.62, -271.902);
|
||||
thisAI->AddWaypoint(44, -6375.97, -1296.08, -271.865);
|
||||
thisAI->AddWaypoint(45, -6364.39, -1281.23, -269.012);
|
||||
thisAI->AddWaypoint(46, -6353.71, -1263.19, -267.95);
|
||||
thisAI->AddWaypoint(47, -6340.09, -1248.65, -267.441);
|
||||
thisAI->AddWaypoint(48, -6338.21, -1237.11, -267.844);
|
||||
thisAI->AddWaypoint(49, -6336.6, -1219.69, -269.196);
|
||||
thisAI->AddWaypoint(50, -6334.44, -1202.33, -271.527);
|
||||
thisAI->AddWaypoint(51, -6329.56, -1189.82, -270.947);
|
||||
thisAI->AddWaypoint(52, -6324.66, -1179.46, -270.103);
|
||||
thisAI->AddWaypoint(53, -6315.08, -1176.74, -269.735);
|
||||
thisAI->AddWaypoint(54, -6308.49, -1179.12, -269.57);
|
||||
thisAI->AddWaypoint(55, -6302.43, -1181.32, -269.328, 5000);
|
||||
thisAI->AddWaypoint(56, -6298.87, -1185.79, -269.278);
|
||||
|
||||
return (CreatureAI*)thisAI;
|
||||
}
|
||||
|
||||
void AddSC_ungoro_crater()
|
||||
{
|
||||
Script *newscript;
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "npc_ame";
|
||||
newscript->GetAI = &GetAI_npc_ame;
|
||||
newscript->pQuestAccept = &QuestAccept_npc_ame;
|
||||
newscript->RegisterSelf();
|
||||
}
|
||||
@@ -184,8 +184,8 @@ struct TRINITY_DLL_DECL boss_arlokkAI : public ScriptedAI
|
||||
if(PhaseTwo && Gouge_Timer < diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_GOUGE);
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-80);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-80);
|
||||
|
||||
Gouge_Timer = 17000+rand()%10000;
|
||||
}else Gouge_Timer -= diff;
|
||||
|
||||
@@ -59,8 +59,8 @@ struct TRINITY_DLL_DECL boss_grilekAI : public ScriptedAI
|
||||
|
||||
target = SelectUnit(SELECT_TARGET_RANDOM,1);
|
||||
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-50);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-50);
|
||||
if (target)
|
||||
AttackStart(target);
|
||||
|
||||
|
||||
@@ -98,8 +98,8 @@ struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_HEX);
|
||||
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-80);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-80);
|
||||
|
||||
Hex_Timer = 12000 + rand()%8000;
|
||||
}else Hex_Timer -= diff;
|
||||
@@ -127,8 +127,8 @@ struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI
|
||||
{
|
||||
DoTeleportPlayer(target, -11583.7783,-1249.4278,77.5471,4.745);
|
||||
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(target,-100);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(target,-100);
|
||||
|
||||
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX()+2, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
|
||||
Skeletons->AI()->AttackStart(target);
|
||||
|
||||
@@ -146,8 +146,8 @@ struct TRINITY_DLL_DECL boss_marliAI : public ScriptedAI
|
||||
m_creature->UpdateDamagePhysical(BASE_ATTACK);
|
||||
DoCast(m_creature->getVictim(),SPELL_ENVOLWINGWEB);
|
||||
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-100);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-100);
|
||||
|
||||
PhaseTwo = true;
|
||||
Transform_Timer = 35000 + rand()%25000;
|
||||
|
||||
@@ -117,8 +117,8 @@ struct TRINITY_DLL_DECL boss_renatakiAI : public ScriptedAI
|
||||
Unit* target = NULL;
|
||||
target = SelectUnit(SELECT_TARGET_RANDOM,1);
|
||||
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-50);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-50);
|
||||
|
||||
if (target)
|
||||
AttackStart(target);
|
||||
|
||||
@@ -434,8 +434,8 @@ struct TRINITY_DLL_DECL mob_zealot_zathAI : public ScriptedAI
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_GOUGE);
|
||||
|
||||
if(m_creature->getThreatManager().getThreat(m_creature->getVictim()))
|
||||
m_creature->getThreatManager().modifyThreatPercent(m_creature->getVictim(),-100);
|
||||
if(DoGetThreat(m_creature->getVictim()))
|
||||
DoModifyThreatPercent(m_creature->getVictim(),-100);
|
||||
|
||||
Gouge_Timer = 17000+rand()%10000;
|
||||
}else Gouge_Timer -= diff;
|
||||
|
||||
Reference in New Issue
Block a user