Core/PacketIO: Updated to 11.0.0
Port From (https://github.com/TrinityCore/TrinityCore/commit/e59eef5432c7b70679d33f4911c88d0f7d75fd39)
This commit is contained in:
@@ -1714,12 +1714,12 @@ namespace Game.Entities
|
||||
|
||||
public virtual void UpdateNearbyPlayersInteractions()
|
||||
{
|
||||
for (int i = 0; i < m_unitData.NpcFlags.GetSize(); ++i)
|
||||
if (m_unitData.NpcFlags[i] != 0)
|
||||
{
|
||||
m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, i);
|
||||
ForceUpdateFieldChange();
|
||||
}
|
||||
if (m_unitData.NpcFlags != 0)
|
||||
m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags);
|
||||
if (m_unitData.NpcFlags2 != 0)
|
||||
m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags2);
|
||||
|
||||
ForceUpdateFieldChange();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -345,6 +345,36 @@ namespace Game.Entities
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SetEnableFullSpeedTurning(bool enable)
|
||||
{
|
||||
if (!IsPlayer())
|
||||
return false;
|
||||
|
||||
if (enable == HasUnitMovementFlag2(MovementFlag2.FullSpeedTurning))
|
||||
return false;
|
||||
|
||||
if (enable)
|
||||
AddUnitMovementFlag2(MovementFlag2.FullSpeedTurning);
|
||||
else
|
||||
RemoveUnitMovementFlag2(MovementFlag2.FullSpeedTurning);
|
||||
|
||||
ServerOpcodes[] fullSpeedTurningOpcodeTable = [ServerOpcodes.MoveDisableFullSpeedTurning, ServerOpcodes.MoveEnableFullSpeedTurning];
|
||||
Player playerMover = GetUnitBeingMoved()?.ToPlayer();
|
||||
if (playerMover != null)
|
||||
{
|
||||
MoveSetFlag packet = new(fullSpeedTurningOpcodeTable[enable ? 1 : 0]);
|
||||
packet.MoverGUID = GetGUID();
|
||||
packet.SequenceIndex = m_movementCounter++;
|
||||
playerMover.SendPacket(packet);
|
||||
|
||||
MoveUpdate moveUpdate = new();
|
||||
moveUpdate.Status = m_movementInfo;
|
||||
SendMessageToSet(moveUpdate, playerMover);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool SetCanTransitionBetweenSwimAndFly(bool enable)
|
||||
{
|
||||
if (!IsTypeId(TypeId.Player))
|
||||
|
||||
@@ -867,17 +867,17 @@ namespace Game.Entities
|
||||
m_areaTrigger.Last()?.Remove();
|
||||
}
|
||||
|
||||
public NPCFlags GetNpcFlags() { return (NPCFlags)m_unitData.NpcFlags[0]; }
|
||||
public bool HasNpcFlag(NPCFlags flags) { return (m_unitData.NpcFlags[0] & (uint)flags) != 0; }
|
||||
public void SetNpcFlag(NPCFlags flags) { SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 0), (uint)flags); }
|
||||
public void RemoveNpcFlag(NPCFlags flags) { RemoveUpdateFieldFlagValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 0), (uint)flags); }
|
||||
public void ReplaceAllNpcFlags(NPCFlags flags) { SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 0), (uint)flags); }
|
||||
public NPCFlags GetNpcFlags() { return (NPCFlags)m_unitData.NpcFlags.GetValue(); }
|
||||
public bool HasNpcFlag(NPCFlags flags) { return (m_unitData.NpcFlags & (uint)flags) != 0; }
|
||||
public void SetNpcFlag(NPCFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags), (uint)flags); }
|
||||
public void RemoveNpcFlag(NPCFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags), (uint)flags); }
|
||||
public void ReplaceAllNpcFlags(NPCFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags), (uint)flags); }
|
||||
|
||||
public NPCFlags2 GetNpcFlags2() { return (NPCFlags2)m_unitData.NpcFlags[1]; }
|
||||
public bool HasNpcFlag2(NPCFlags2 flags) { return (m_unitData.NpcFlags[1] & (uint)flags) != 0; }
|
||||
public void SetNpcFlag2(NPCFlags2 flags) { SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 1), (uint)flags); }
|
||||
public void RemoveNpcFlag2(NPCFlags2 flags) { RemoveUpdateFieldFlagValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 1), (uint)flags); }
|
||||
public void ReplaceAllNpcFlags2(NPCFlags2 flags) { SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 1), (uint)flags); }
|
||||
public NPCFlags2 GetNpcFlags2() { return (NPCFlags2)m_unitData.NpcFlags2.GetValue(); }
|
||||
public bool HasNpcFlag2(NPCFlags2 flags) { return (m_unitData.NpcFlags2 & (uint)flags) != 0; }
|
||||
public void SetNpcFlag2(NPCFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags2), (uint)flags); }
|
||||
public void RemoveNpcFlag2(NPCFlags2 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags2), (uint)flags); }
|
||||
public void ReplaceAllNpcFlags2(NPCFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags2), (uint)flags); }
|
||||
|
||||
public bool IsVendor() { return HasNpcFlag(NPCFlags.Vendor); }
|
||||
public bool IsTrainer() { return HasNpcFlag(NPCFlags.Trainer); }
|
||||
|
||||
Reference in New Issue
Block a user