From 3e2f82d4af65d789b8ec0dc3ef6dd1fd27c8c444 Mon Sep 17 00:00:00 2001 From: Hondacrx Date: Sun, 10 Nov 2024 17:27:43 -0500 Subject: [PATCH] Core/PacketIO: Enable CAN_ADV_FLY opcodes Port From (https://github.com/TrinityCore/TrinityCore/commit/edf61ad8e5a010ec681f8437ca0a39192fa095c2) --- Source/Game/Entities/Unit/Unit.Movement.cs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Source/Game/Entities/Unit/Unit.Movement.cs b/Source/Game/Entities/Unit/Unit.Movement.cs index edec0422c..8435d276d 100644 --- a/Source/Game/Entities/Unit/Unit.Movement.cs +++ b/Source/Game/Entities/Unit/Unit.Movement.cs @@ -1596,6 +1596,32 @@ namespace Game.Entities RemoveNpcFlag(NPCFlags.SpellClick | NPCFlags.PlayerVehicle); } + bool SetCanAdvFly(bool enable) + { + if (enable == HasExtraUnitMovementFlag2(MovementFlags3.CanAdvFly)) + return false; + + if (enable) + AddExtraUnitMovementFlag2(MovementFlags3.CanAdvFly); + else + RemoveExtraUnitMovementFlag2(MovementFlags3.CanAdvFly | MovementFlags3.AdvFlying); + + Player playerMover = GetUnitBeingMoved()?.ToPlayer(); + if (playerMover != null) + { + MoveSetFlag packet = new(enable ? ServerOpcodes.MoveSetCanAdvFly : ServerOpcodes.MoveUnsetCanAdvFly); + packet.MoverGUID = GetGUID(); + packet.SequenceIndex = m_movementCounter++; + playerMover.SendPacket(packet); + + MoveUpdate moveUpdate = new(); + moveUpdate.Status = m_movementInfo; + SendMessageToSet(moveUpdate, playerMover); + } + + return true; + } + public bool SetMoveCantSwim(bool cantSwim) { if (cantSwim == HasExtraUnitMovementFlag2(MovementFlags3.CantSwim))