aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2025_11_23_00_world.sql1
-rw-r--r--src/server/scripts/Battlegrounds/IsleOfConquest/isle_of_conquest.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp21
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp9
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp30
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp5
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;