*Add script function DoGetThreat and DoModifyThreatPercent and check if !pUnit to prevent crash.
*Note: it is always possible that getVictim() becomes NULL during updateAI! --HG-- branch : trunk
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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