aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeader <keader.android@gmail.com>2020-11-05 12:05:14 -0300
committerKeader <keader.android@gmail.com>2020-11-05 12:05:14 -0300
commit83e0a70ddce81ac3d3552689d975b0f2c0262b49 (patch)
tree8479f1f00cef89909a253cb2a989ffe2090cf67c
parentc2a0b78a051ea3301d8769b2c11fae00e14fe095 (diff)
Scripts/Black Temple: Some little fixes
- Fixed Reliquary of Souls ignoring boundary - Fixed Maiev texts timer - Fixed Shadow Prison hitting every single npc on black temple Many thanks to Ovahlord
-rw-r--r--sql/updates/world/3.3.5/2020_11_05_00_world.sql4
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp10
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp6
3 files changed, 16 insertions, 4 deletions
diff --git a/sql/updates/world/3.3.5/2020_11_05_00_world.sql b/sql/updates/world/3.3.5/2020_11_05_00_world.sql
new file mode 100644
index 00000000000..db187f14675
--- /dev/null
+++ b/sql/updates/world/3.3.5/2020_11_05_00_world.sql
@@ -0,0 +1,4 @@
+--
+DELETE FROM `conditions` WHERE `SourceEntry`= 40647 AND `SourceTypeOrReferenceId`= 13;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ScriptName`, `Comment`) VALUES
+(13, 4, 40647, 0, 0, 31, 0, 3, 23089, 0, 0, 0, '', 'Shadow Prison - Target Akama');
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index 1f9bdfd41a5..5c9537f4442 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -235,7 +235,8 @@ enum IllidanPhases
PHASE_MINIONS,
PHASE_2,
PHASE_3,
- PHASE_4
+ PHASE_4,
+ PHASE_OUTRO
};
enum IllidanSplineMovement
@@ -1621,12 +1622,12 @@ struct npc_maiev : public ScriptedAI
{
npc_maiev(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _canDown(true) { }
- void Reset() override
+ void JustAppeared() override
{
if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE))
me->SetFacingToObject(illidan);
me->SetReactState(REACT_PASSIVE);
- _events.SetPhase(PHASE_INTRO);
+ _events.SetPhase(PHASE_OUTRO);
_events.ScheduleEvent(EVENT_MAIEV_APPEAR, 1s);
_events.ScheduleEvent(EVENT_MAIEV_EXCLAMATION, 2s);
_events.ScheduleEvent(EVENT_MAIEV_JUSTICE_TEXT, 14s);
@@ -1647,6 +1648,7 @@ struct npc_maiev : public ScriptedAI
if (actionId == ACTION_START_OUTRO)
{
_events.Reset();
+ _events.SetPhase(PHASE_OUTRO);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE))
@@ -1671,7 +1673,7 @@ struct npc_maiev : public ScriptedAI
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() && !_events.IsInPhase(PHASE_INTRO))
+ if (!_events.IsInPhase(PHASE_OUTRO) && !UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index 2ecdc6c54ae..0ca732462ae 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -656,6 +656,12 @@ struct npc_reliquary_combat_trigger : public ScriptedAI
{
SetCombatMovement(false);
creature->m_SightDistance = 70.0f;
+ SetBoundary(_instance->GetBossBoundary(DATA_RELIQUARY_OF_SOULS));
+ }
+
+ bool CanAIAttack(Unit const* who) const override
+ {
+ return ScriptedAI::CanAIAttack(who) && IsInBoundary(&who->GetPosition());
}
void Reset() override