fix(DB/Creature): make sure Enchanted Elementals always walk and not run towards Lady Vashj (#17809)

initial
This commit is contained in:
Dan
2023-11-20 20:54:13 +01:00
committed by GitHub
parent e940305cff
commit db44d7a35a
2 changed files with 11 additions and 26 deletions

View File

@@ -0,0 +1,10 @@
--
DELETE FROM `smart_scripts` WHERE `entryorguid` = 21958 AND `source_type` = 0;
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(21958, 0, 0, 0, 54, 0, 100, 512, 0, 0, 0, 0, 0, 0, 53, 0, 2195800, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Enchanted Elemental - Just Summoned - Start Waypoint'),
(21958, 0, 1, 0, 75, 0, 100, 0, 0, 21212, 2, 1000, 0, 0, 11, 38044, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Enchanted Elemental - On Distance to Vashj - Cast Spell Surge'),
(21958, 0, 2, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Enchanted Elemental - On Aggro - Set In Combat With Zone');
DELETE FROM `waypoints` WHERE `entry` = 2195800;
INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `point_comment`) VALUES
(2195800, 1, 29.415501, -924.127991, 42.901901, NULL, 0, 'Enchanted Elemental - Vashj Home Position');

View File

@@ -66,26 +66,6 @@ enum Misc
POINT_HOME = 1,
};
class startFollow : public BasicEvent
{
public:
startFollow(Unit* owner) : _owner(owner) { }
bool Execute(uint64 /*execTime*/, uint32 /*diff*/) override
{
if (InstanceScript* instance = _owner->GetInstanceScript())
{
if (Creature* vashj = ObjectAccessor::GetCreature(*_owner, instance->GetGuidData(NPC_LADY_VASHJ)))
{
_owner->GetMotionMaster()->MoveFollow(vashj, 3.0f, vashj->GetAngle(_owner), MOTION_SLOT_CONTROLLED);
}
}
return true;
}
private:
Unit* _owner;
};
struct boss_lady_vashj : public BossAI
{
boss_lady_vashj(Creature* creature) : BossAI(creature, DATA_LADY_VASHJ)
@@ -147,16 +127,11 @@ struct boss_lady_vashj : public BossAI
{
summon->CastSpell(summon, SPELL_MAGIC_BARRIER);
}
else if (summon->GetEntry() == NPC_ENCHANTED_ELEMENTAL)
{
summon->SetWalk(true);
summon->m_Events.AddEvent(new startFollow(summon), summon->m_Events.CalculateTime(0));
}
else if (summon->GetEntry() == NPC_TOXIC_SPOREBAT)
{
summon->GetMotionMaster()->MoveRandom(30.0f);
}
else if (summon->GetEntry() != NPC_TAINTED_ELEMENTAL)
else if (summon->GetEntry() != NPC_TAINTED_ELEMENTAL && summon->GetEntry() != NPC_ENCHANTED_ELEMENTAL)
{
summon->GetMotionMaster()->MovePoint(POINT_HOME, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), true, true);
}