Core/PacketIO: Updated to 11.0.0

Port From (https://github.com/TrinityCore/TrinityCore/commit/e59eef5432c7b70679d33f4911c88d0f7d75fd39)
This commit is contained in:
Hondacrx
2024-09-02 18:44:55 -04:00
parent bd0d40fa13
commit f38ad4607e
74 changed files with 4980 additions and 3595 deletions
+6 -6
View File
@@ -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))
+10 -10
View File
@@ -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); }