diff options
6 files changed, 36 insertions, 33 deletions
diff --git a/sql/updates/world/master/2025_11_23_00_world.sql b/sql/updates/world/master/2025_11_23_00_world.sql new file mode 100644 index 00000000000..e06ad48b6e0 --- /dev/null +++ b/sql/updates/world/master/2025_11_23_00_world.sql @@ -0,0 +1 @@ +UPDATE `vehicle_seat_addon` SET `ExitParamX`=1299.1362, `ExitParamY`=1207.2826, `ExitParamZ`=58.477764, `ExitParamO`=3.054326057434082031 WHERE `SeatEntry`=8420; diff --git a/src/server/scripts/Battlegrounds/IsleOfConquest/isle_of_conquest.cpp b/src/server/scripts/Battlegrounds/IsleOfConquest/isle_of_conquest.cpp index c70ee68865e..309e4cd7692 100644 --- a/src/server/scripts/Battlegrounds/IsleOfConquest/isle_of_conquest.cpp +++ b/src/server/scripts/Battlegrounds/IsleOfConquest/isle_of_conquest.cpp @@ -20,12 +20,11 @@ #include "Battleground.h" #include "GameObject.h" #include "GameObjectAI.h" -#include "Map.h" -#include "MotionMaster.h" #include "ObjectAccessor.h" #include "PassiveAI.h" #include "Player.h" #include "ScriptedCreature.h" +#include "Spell.h" #include "SpellInfo.h" #include "SpellScript.h" #include "Vehicle.h" diff --git a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp index 9d587ec5f94..8f8dbf85d5c 100644 --- a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp +++ b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp @@ -1617,8 +1617,6 @@ struct go_silverpine_abandoned_outhouse : public GameObjectAI Position const YorickReadyPosition = { 1313.7f, 1211.99f, 58.5f, 4.564474f }; -Position const YorickDeathPosition = { 1295.52f, 1206.58f, 58.501f }; - enum DeathstalkerRaneYorick { PHASE_WAITING_TO_EXSANGUINATE = 265, @@ -1822,7 +1820,6 @@ struct npc_silverpine_deathstalker_rane_yorick : public ScriptedAI } case EVENT_RANE_LAST_MOVE: - me->GetMotionMaster()->MoveJump(YorickDeathPosition, 10.0f, 10.0f); DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH); _events.ScheduleEvent(EVENT_RANE_LAST_MOVE + 1, 2s); break; @@ -3937,7 +3934,6 @@ struct npc_silverpine_skitterweb_matriarch : public ScriptedAI void JustAppeared() override { me->SetDisableGravity(true); - me->SetHover(true); _lurkingOnCeilingPos = me->GetPosition(); @@ -3953,16 +3949,9 @@ struct npc_silverpine_skitterweb_matriarch : public ScriptedAI void JustReachedHome() override { - me->SetDisableGravity(true); - me->SetHover(true); - - me->CastSpell(nullptr, SPELL_SKITTERWEB, true); - - me->SetAIAnimKitId(ANIMKIT_MATRIARCH_HANGING_BY_WEB); - - me->GetMotionMaster()->MoveJump(_lurkingOnCeilingPos, 8.0f, 8.0f); + me->SetFacingTo(0.820305f); - _events.ScheduleEvent(EVENT_RESET_POSITION, 1s + 500ms); + _events.ScheduleEvent(EVENT_RESET_POSITION, 1s); } void JustSummoned(Creature* summon) override @@ -3993,13 +3982,11 @@ struct npc_silverpine_skitterweb_matriarch : public ScriptedAI { case EVENT_MATRIARCH_AGGRO: me->SetDisableGravity(false); - me->SetHover(false); me->GetMotionMaster()->MoveFall(); _events.ScheduleEvent(EVENT_MATRIARCH_AGGRO + 1, 1s); break; case EVENT_MATRIARCH_AGGRO + 1: - me->PlayOneShotAnimKitId(ANIMKIT_MATRIARCH_INTERACT); me->CastStop(); me->SetHomePosition(me->GetPosition()); _events.ScheduleEvent(EVENT_MATRIARCH_AGGRO + 2, 1s + 500ms); @@ -4011,8 +3998,10 @@ struct npc_silverpine_skitterweb_matriarch : public ScriptedAI break; case EVENT_RESET_POSITION: - me->SetFacingTo(0.820305f); + me->SetDisableGravity(true); + me->NearTeleportTo(_lurkingOnCeilingPos); me->SetHomePosition(me->GetPosition()); + me->CastSpell(nullptr, SPELL_SKITTERWEB, true); me->SetAIAnimKitId(ANIMKIT_MATRIARCH_LURKING_ON_CEILING); break; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index 1fd04161511..5489d042e33 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -38,6 +38,7 @@ enum AIs enum Spells { // generic + SPELL_LEAP = 67382, // intro SPELL_ANTI_AOE = 68595, SPELL_PVP_TRINKET = 65547, @@ -482,13 +483,13 @@ struct boss_toc_champion_controller : public BossAI if (playerTeam == ALLIANCE) { champion->SetHomePosition(vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 0); - champion->GetMotionMaster()->MoveJump(vChampionJumpTarget[pos], 20.0f, 20.0f); - champion->SetOrientation(0); + champion->CastSpell(vChampionJumpTarget[pos], SPELL_LEAP); } else { - champion->SetHomePosition((ToCCommonLoc[1].GetPositionX()*2)-vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 3); - champion->GetMotionMaster()->MoveJump({ (ToCCommonLoc[1].GetPositionX() * 2) - vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ() }, 20.0f, 20.0f); + Position jumpTarget = { (ToCCommonLoc[1].GetPositionX() * 2) - vChampionJumpTarget[pos].GetPositionX(), vChampionJumpTarget[pos].GetPositionY(), vChampionJumpTarget[pos].GetPositionZ(), 3 }; + champion->SetHomePosition(jumpTarget); + champion->CastSpell(jumpTarget, SPELL_LEAP); champion->SetOrientation(3); } } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp index 9aa6f4d2636..d0e08c48e1b 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp @@ -74,8 +74,6 @@ enum MaexxnaData DATA_WEBWRAP_VICTIM_GUID = 0 }; -const float WEB_WRAP_MOVE_SPEED = 20.0f; - struct WebTargetSelector { WebTargetSelector(Unit* maexxna) : _maexxna(maexxna) {} @@ -147,10 +145,7 @@ struct boss_maexxna : public BossAI target->RemoveAura(SPELL_WEB_SPRAY); if (Creature* wrap = DoSummon(NPC_WEB_WRAP, WrapPositions[wrapPos], 70s, TEMPSUMMON_TIMED_DESPAWN)) - { wrap->AI()->SetGUID(target->GetGUID(), DATA_WEBWRAP_VICTIM_GUID); // handles application of debuff - target->GetMotionMaster()->MoveJump(WrapPositions[wrapPos], WEB_WRAP_MOVE_SPEED, WEB_WRAP_MOVE_SPEED); // move after stun to avoid stun cancelling move - } } } events.Repeat(Seconds(40)); @@ -204,8 +199,29 @@ struct npc_webwrap : public NullCreatureAI victimGUID = guid; if (Unit* victim = ObjectAccessor::GetUnit(*me, victimGUID)) { - visibleTimer = (me->GetDistance2d(victim) / WEB_WRAP_MOVE_SPEED + 0.5f) * AsUnderlyingType(IN_MILLISECONDS); - victim->CastSpell(victim, SPELL_WEB_WRAP, CastSpellExtraArgs(TRIGGERED_FULL_MASK) + uint32 spellId = 28621; + // TODO: not fully correct - should be using different set of script_effect spells first (29280, 29281, 29282, 29283, 29285, 29287) + float dist = me->GetDistance2d(victim); + float speed = 50.0f; + if (dist <= 20.0f) + { + spellId = 28618; + speed = 20.0f; + } + else if (dist <= 30.0f) + { + spellId = 28619; + speed = 30.0f; + } + else if (dist <= 40.0f) + { + spellId = 28620; + speed = 40.0f; + } + + visibleTimer = (me->GetDistance2d(victim) / speed + 0.5f) * AsUnderlyingType(IN_MILLISECONDS); + + victim->CastSpell(victim, spellId, CastSpellExtraArgs(TRIGGERED_FULL_MASK) .SetOriginalCaster(me->GetGUID())); } } diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index beeb737ebf6..4622d5cb3f4 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -138,11 +138,8 @@ public: me->AddAura(SPELL_JULES_GOES_PRONE, me); me->AddAura(SPELL_JULES_THREATENS_AURA, me); - me->SetCanFly(true); - me->SetSpeedRate(MOVE_RUN, 0.2f); - me->SetFacingTo(3.207566f); - me->GetMotionMaster()->MoveJump(exorcismPos[2], 2.0f, 2.0f); + me->GetMotionMaster()->MovePoint(11, exorcismPos[2], false, {}, 1.25f); success = false; |
