mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-22 21:26:23 +00:00
fix(Scripts/Hyjal): Implement Eternal Silence spell when going into t… (#18960)
fix(Scripts/Hyjal): Implement Eternal Silence spell when going into the Well of Eternity
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
--
|
||||
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = -42201 AND `spell_effect` = 42205;
|
||||
INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
|
||||
(-42201, 42205, 0, 'Eternal Silence trigger Residue of Eternity on removal');
|
||||
@@ -2176,6 +2176,9 @@ void Player::SetInWater(bool apply)
|
||||
RemoveAurasWithInterruptFlags(apply ? AURA_INTERRUPT_FLAG_NOT_ABOVEWATER : AURA_INTERRUPT_FLAG_NOT_UNDERWATER);
|
||||
|
||||
getHostileRefMgr().updateThreatTables();
|
||||
|
||||
if (InstanceScript* instance = GetInstanceScript())
|
||||
instance->OnPlayerInWaterStateUpdate(this, apply);
|
||||
}
|
||||
|
||||
bool Player::IsInAreaTriggerRadius(AreaTrigger const* trigger, float delta) const
|
||||
|
||||
@@ -186,6 +186,9 @@ public:
|
||||
|
||||
virtual void OnPlayerAreaUpdate(Player* /*player*/, uint32 /*oldArea*/, uint32 /*newArea*/) {}
|
||||
|
||||
//Called when a player enters/leaves water bodies.
|
||||
virtual void OnPlayerInWaterStateUpdate(Player* /*player*/, bool /*inWater*/) {}
|
||||
|
||||
//Handle open / close objects
|
||||
//use HandleGameObject(ObjectGuid::Empty, boolen, GO); in OnObjectCreate in instance scripts
|
||||
//use HandleGameObject(GUID, boolen, nullptr); in any other script
|
||||
|
||||
@@ -144,7 +144,11 @@ enum HyjalMisc
|
||||
START_WAVE_HORDE_RETREAT = 39,
|
||||
START_WAVE_NIGHT_ELF = 42,
|
||||
|
||||
CONTEXT_GROUP_WAVES = 1
|
||||
CONTEXT_GROUP_WAVES = 1,
|
||||
|
||||
AREA_NORDRASSIL = 3710,
|
||||
|
||||
SPELL_ETERNAL_SILENCE = 42201
|
||||
};
|
||||
|
||||
enum HyjalPaths
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "InstanceMapScript.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "Opcodes.h"
|
||||
#include "Player.h"
|
||||
#include "WorldPacket.h"
|
||||
#include "hyjal.h"
|
||||
|
||||
@@ -530,6 +531,14 @@ public:
|
||||
_scheduler.Update(diff);
|
||||
}
|
||||
|
||||
void OnPlayerInWaterStateUpdate(Player* player, bool inWater) override
|
||||
{
|
||||
if (inWater && player->GetAreaId() == AREA_NORDRASSIL)
|
||||
{
|
||||
player->CastSpell(player, SPELL_ETERNAL_SILENCE, true);
|
||||
}
|
||||
}
|
||||
|
||||
protected:
|
||||
int32 trash;
|
||||
uint8 _currentWave;
|
||||
|
||||
Reference in New Issue
Block a user