Core/Auras: Implemented SPELL_AURA_MOVE_SET_CANT_SWIM and related new opcodes

Port From (https://github.com/TrinityCore/TrinityCore/commit/010550da224c446461b26bc4f38ee5cc35d4aa3d)
This commit is contained in:
Hondacrx
2024-11-10 13:30:00 -05:00
parent 6c8387f9ec
commit 026e717fde
5 changed files with 46 additions and 1 deletions
@@ -1596,6 +1596,32 @@ namespace Game.Entities
RemoveNpcFlag(NPCFlags.SpellClick | NPCFlags.PlayerVehicle);
}
public bool SetMoveCantSwim(bool cantSwim)
{
if (cantSwim == HasExtraUnitMovementFlag2(MovementFlags3.CantSwim))
return false;
if (cantSwim)
AddExtraUnitMovementFlag2(MovementFlags3.CantSwim);
else
RemoveExtraUnitMovementFlag2(MovementFlags3.CantSwim);
Player playerMover = GetUnitBeingMoved()?.ToPlayer();
if (playerMover != null)
{
MoveSetFlag packet = new(cantSwim ? ServerOpcodes.MoveSetCantSwim : ServerOpcodes.MoveUnsetCantSwim);
packet.MoverGUID = GetGUID();
packet.SequenceIndex = m_movementCounter++;
playerMover.SendPacket(packet);
MoveUpdate moveUpdate = new();
moveUpdate.Status = m_movementInfo;
SendMessageToSet(moveUpdate, playerMover);
}
return true;
}
void SendSetVehicleRecId(uint vehicleId)
{
Player player = ToPlayer();