mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-09 00:08:01 +00:00
fix(Scripts/Hyjal): Limit Anetheron sleep to 3 targets (#18929)
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
--
|
||||||
|
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_anetheron_sleep';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||||
|
(31298, 'spell_anetheron_sleep');
|
||||||
@@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
#include "CreatureScript.h"
|
#include "CreatureScript.h"
|
||||||
#include "ScriptedCreature.h"
|
#include "ScriptedCreature.h"
|
||||||
|
#include "SpellScript.h"
|
||||||
|
#include "SpellScriptLoader.h"
|
||||||
#include "hyjal.h"
|
#include "hyjal.h"
|
||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
@@ -58,18 +60,18 @@ public:
|
|||||||
|
|
||||||
scheduler.Schedule(20s, 28s, [this](TaskContext context)
|
scheduler.Schedule(20s, 28s, [this](TaskContext context)
|
||||||
{
|
{
|
||||||
if (DoCastRandomTarget(SPELL_CARRION_SWARM, 0, 60.f))
|
if (DoCastRandomTarget(SPELL_CARRION_SWARM, 0, 60.f) == SPELL_CAST_OK)
|
||||||
Talk(SAY_SWARM);
|
Talk(SAY_SWARM);
|
||||||
context.Repeat(10s, 15s);
|
context.Repeat(10s, 15s);
|
||||||
}).Schedule(25s, 32s, [this](TaskContext context)
|
}).Schedule(25s, 32s, [this](TaskContext context)
|
||||||
{
|
{
|
||||||
if (DoCastRandomTarget(SPELL_SLEEP))
|
if (DoCastRandomTarget(SPELL_SLEEP) == SPELL_CAST_OK)
|
||||||
Talk(SAY_SLEEP);
|
Talk(SAY_SLEEP);
|
||||||
|
|
||||||
context.Repeat(35s, 48s);
|
context.Repeat(35s, 48s);
|
||||||
}).Schedule(30s, 48s, [this](TaskContext context)
|
}).Schedule(30s, 48s, [this](TaskContext context)
|
||||||
{
|
{
|
||||||
if (DoCastRandomTarget(SPELL_INFERNO))
|
if (DoCastRandomTarget(SPELL_INFERNO) == SPELL_CAST_OK)
|
||||||
Talk(SAY_INFERNO);
|
Talk(SAY_INFERNO);
|
||||||
|
|
||||||
context.Repeat(50s, 55s);
|
context.Repeat(50s, 55s);
|
||||||
@@ -138,7 +140,24 @@ private:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class spell_anetheron_sleep : public SpellScript
|
||||||
|
{
|
||||||
|
PrepareSpellScript(spell_anetheron_sleep);
|
||||||
|
|
||||||
|
void FilterTargets(std::list<WorldObject*>& targets)
|
||||||
|
{
|
||||||
|
if (!targets.empty())
|
||||||
|
Acore::Containers::RandomResize(targets, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_anetheron_sleep::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void AddSC_boss_anetheron()
|
void AddSC_boss_anetheron()
|
||||||
{
|
{
|
||||||
RegisterHyjalAI(boss_anetheron);
|
RegisterHyjalAI(boss_anetheron);
|
||||||
|
RegisterSpellScript(spell_anetheron_sleep);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user