From f01c32aa5b4ae96b22fb1d3e619c340fe81c172d Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Thu, 16 May 2019 03:45:51 +0200 Subject: [PATCH] Scripts/Deadmines: fixed an issue that was causing Molten Slack's fixate to target the Prototype Reaper instead of the other players * fixed logic for Vanessa's rope summoning --- .../EasternKingdoms/Deadmines/boss_foe_reaper_5000.cpp | 10 +++++----- .../EasternKingdoms/Deadmines/instance_deadmines.cpp | 6 ++++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_foe_reaper_5000.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_foe_reaper_5000.cpp index e697003a31..d0767e9312 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/boss_foe_reaper_5000.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_foe_reaper_5000.cpp @@ -493,11 +493,11 @@ class FixateTargetingCheck bool operator()(WorldObject* object) { - if (Unit* unit = object->ToUnit()) - if ((unit->GetEntry() == NPC_PROTOTYPE_REAPER && unit->IsCharmedOwnedByPlayerOrPlayer()) || unit->GetTypeId() == TYPEID_PLAYER) - return false; + Unit* target = object->ToUnit(); + if (!target) + return true; - return true; + return (target->GetEntry() == NPC_PROTOTYPE_REAPER || target->GetVehicle()); } }; @@ -556,7 +556,7 @@ class spell_foe_reaper_5000_fixate : public SpellScriptLoader return ValidateSpellInfo({ SPELL_FIXATE_TAUNT }); } - void HandleHit(SpellEffIndex effIndex) + void HandleHit(SpellEffIndex /*effIndex*/) { if (Unit* caster = GetCaster()) GetHitUnit()->CastSpell(caster, SPELL_FIXATE_TAUNT, true); diff --git a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp index 8e1dfe8778..83dc2e95aa 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp @@ -567,8 +567,7 @@ class instance_deadmines : public InstanceMapScript uint8 i = 0; if (!_ropeAnchorPairs.empty()) { - std::vector _ropeAnchorCopy; - for (auto itr = _ropeAnchorCopy.begin(); itr != _ropeAnchorCopy.end(); itr++) + for (auto itr = _ropeAnchorPairs.begin(); itr != _ropeAnchorPairs.end();) { if (!instance->GetCreature(itr->ropeGuid)) { @@ -581,7 +580,10 @@ class instance_deadmines : public InstanceMapScript } } _ropeAnchorPairs.erase(itr); + itr = _ropeAnchorPairs.begin(); } + else + itr++; } } else