aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts
diff options
context:
space:
mode:
authormegamage <none@none>2009-01-09 16:43:23 -0600
committermegamage <none@none>2009-01-09 16:43:23 -0600
commit1ffb1cef3344206dfea149cb78146c30449d51c2 (patch)
tree655ac591f6f5aaca3dc65d67f3940f589e2394db /src/bindings/scripts
parent5c8f52d134899e10484dd47e91b612e2228842bf (diff)
parent90a82a81ad5d20d5e7188d6e9d660280f0b1eab4 (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/bindings/scripts')
-rw-r--r--src/bindings/scripts/Makefile.am1
-rw-r--r--src/bindings/scripts/ScriptMgr.cpp4
-rw-r--r--src/bindings/scripts/VC71/71ScriptDev2.vcproj4
-rw-r--r--src/bindings/scripts/VC80/80ScriptDev2.vcproj4
-rw-r--r--src/bindings/scripts/VC90/90ScriptDev2.vcproj4
-rw-r--r--src/bindings/scripts/include/sc_creature.cpp16
-rw-r--r--src/bindings/scripts/include/sc_creature.h3
-rw-r--r--src/bindings/scripts/scripts/creature/mob_event_ai.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp141
-rw-r--r--src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp208
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp4
35 files changed, 439 insertions, 62 deletions
diff --git a/src/bindings/scripts/Makefile.am b/src/bindings/scripts/Makefile.am
index 74e1674619a..87cdb11db0a 100644
--- a/src/bindings/scripts/Makefile.am
+++ b/src/bindings/scripts/Makefile.am
@@ -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 \
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp
index a4d75f6aeb2..bcd7ec54a54 100644
--- a/src/bindings/scripts/ScriptMgr.cpp
+++ b/src/bindings/scripts/ScriptMgr.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
diff --git a/src/bindings/scripts/VC71/71ScriptDev2.vcproj b/src/bindings/scripts/VC71/71ScriptDev2.vcproj
index a9ed124ebec..2559d4a9bff 100644
--- a/src/bindings/scripts/VC71/71ScriptDev2.vcproj
+++ b/src/bindings/scripts/VC71/71ScriptDev2.vcproj
@@ -1236,6 +1236,10 @@
<Filter
Name="Un&apos;Goro Crater"
>
+ <File
+ RelativePath="..\scripts\zone\ungoro_crater\ungoro_crater.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Aunchindoun"
diff --git a/src/bindings/scripts/VC80/80ScriptDev2.vcproj b/src/bindings/scripts/VC80/80ScriptDev2.vcproj
index 5d84995e2ed..1c7bbd6e3c0 100644
--- a/src/bindings/scripts/VC80/80ScriptDev2.vcproj
+++ b/src/bindings/scripts/VC80/80ScriptDev2.vcproj
@@ -1498,6 +1498,10 @@
<Filter
Name="Un&apos;Goro Crater"
>
+ <File
+ RelativePath="..\scripts\zone\ungoro_crater\ungoro_crater.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Aunchindoun"
diff --git a/src/bindings/scripts/VC90/90ScriptDev2.vcproj b/src/bindings/scripts/VC90/90ScriptDev2.vcproj
index 635c7c67bf9..8dfa9aafe8c 100644
--- a/src/bindings/scripts/VC90/90ScriptDev2.vcproj
+++ b/src/bindings/scripts/VC90/90ScriptDev2.vcproj
@@ -1518,6 +1518,10 @@
<Filter
Name="Un&apos;Goro Crater"
>
+ <File
+ RelativePath="..\scripts\zone\ungoro_crater\ungoro_crater.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Aunchindoun"
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp
index 20c5600dc02..12992eedc52 100644
--- a/src/bindings/scripts/include/sc_creature.cpp
+++ b/src/bindings/scripts/include/sc_creature.cpp
@@ -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)
diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h
index 9c7ffc022eb..12ec3f0cbf5 100644
--- a/src/bindings/scripts/include/sc_creature.h
+++ b/src/bindings/scripts/include/sc_creature.h
@@ -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);
diff --git a/src/bindings/scripts/scripts/creature/mob_event_ai.cpp b/src/bindings/scripts/scripts/creature/mob_event_ai.cpp
index d764fb02c2e..456a88ab3bb 100644
--- a/src/bindings/scripts/scripts/creature/mob_event_ai.cpp
+++ b/src/bindings/scripts/scripts/creature/mob_event_ai.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
index bbffd9db814..567c9302704 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
@@ -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);
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
index 4f01ea56348..133978d8b00 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
@@ -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);
}
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp
index 470f9152152..560adc63011 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp
index dbc5d2bf9a3..532657e3063 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp
index 9ff952bb4da..5af096fa4ac 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp
index e079ef35e95..e706a22ff6e 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
index 7a61d678bff..b1bb9b9e63a 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
index 833bb03bce2..a44231dc1b3 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
@@ -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);
}
}
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
index 08ee10967a1..4c644f4af65 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
@@ -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);
diff --git a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
index 7f7dd02961b..5574ce20128 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
@@ -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;
}
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
index 6c11ac87c29..a2219096968 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
@@ -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);
}
}
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
index fcfc36c5ec4..a0ffe784c6c 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
index 540128a92c4..93002e53976 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
@@ -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)
{
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
index 31f1b90aa3f..b0168a506a0 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp
index 16d56dd99f1..6b00ce594f4 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
index f8512982ead..2f52eef8c05 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
index 387c40c17f1..8f06423482f 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
index a9164b90876..34dd5c7c30e 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
@@ -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)
{
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
index 356fd85ef68..461f41de6eb 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
@@ -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
diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
index bcd2d8994e7..47ba4a33e1d 100644
--- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
+++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
@@ -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();
}
diff --git a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp
new file mode 100644
index 00000000000..51cb2b4456d
--- /dev/null
+++ b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp
@@ -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();
+}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
index 7f0b2d92b22..caa37fd188f 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp
index 95717222b36..11e9fcd36fb 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp
@@ -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);
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
index fb902612622..7ed29debb42 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
@@ -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);
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
index b26c8108d4e..1e095ef3f0b 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
@@ -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;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp
index 8b993815c00..889a80e111c 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp
@@ -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);
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
index 4340b47438b..cd44ec16382 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
@@ -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;