Core: Updated to 11.2.5.63704

Port From (https://github.com/TrinityCore/TrinityCore/commit/53068a94e88991ae7196fb247df4b7ca2e47e554)
This commit is contained in:
Hondacrx
2025-12-16 13:57:09 -05:00
parent ed33a88776
commit 3a890782b5
57 changed files with 3079 additions and 2630 deletions
@@ -299,7 +299,7 @@ namespace Game.Networking.Packets
_worldPacket.WritePackedGuid(InviteGuid);
_worldPacket.WriteUInt64(EventID);
Date.Write(_worldPacket);
_worldPacket.WriteUInt32((uint)Flags);
_worldPacket.WriteUInt16((ushort)Flags);
_worldPacket.WriteUInt8((byte)Status);
ResponseTime.Write(_worldPacket);
@@ -324,7 +324,7 @@ namespace Game.Networking.Packets
{
_worldPacket.WritePackedGuid(InviteGuid);
_worldPacket.WriteUInt64(EventID);
_worldPacket.WriteUInt32(Flags);
_worldPacket.WriteUInt16(Flags);
_worldPacket.WriteBit(ClearPending);
_worldPacket.FlushBits();
@@ -332,7 +332,7 @@ namespace Game.Networking.Packets
public ObjectGuid InviteGuid;
public ulong EventID;
public uint Flags;
public ushort Flags;
public bool ClearPending;
}
@@ -364,7 +364,7 @@ namespace Game.Networking.Packets
{
_worldPacket.WriteUInt64(EventID);
Date.Write(_worldPacket);
_worldPacket.WriteUInt32((uint)Flags);
_worldPacket.WriteUInt16((ushort)Flags);
_worldPacket.WriteUInt8((byte)Status);
}
@@ -653,12 +653,12 @@ namespace Game.Networking.Packets
{
_worldPacket.WriteUInt64(EventID);
_worldPacket.WritePackedTime(Date);
_worldPacket.WriteUInt32(Flags);
_worldPacket.WriteUInt16(Flags);
_worldPacket.WriteUInt8(Status);
}
public ulong EventID;
public uint Flags;
public ushort Flags;
public long Date;
public byte Status;
}
@@ -124,7 +124,7 @@ namespace Game.Networking.Packets
if (fields.Read<uint>(18) != 0)
Flags |= CharacterFlags.LockedByBilling;
if (WorldConfig.GetBoolValue(WorldCfg.DeclinedNamesUsed) && !string.IsNullOrEmpty(fields.Read<string>(28)))
if (WorldConfig.GetBoolValue(WorldCfg.DeclinedNamesUsed) && !string.IsNullOrEmpty(fields.Read<string>(29)))
Flags |= CharacterFlags.Declined;
if (atLoginFlags.HasAnyFlag(AtLoginFlags.Customize))
@@ -168,19 +168,20 @@ namespace Game.Networking.Packets
StringArray equipment = new(fields.Read<string>(17), ' ');
ListPosition = fields.Read<byte>(19);
LastActiveTime = fields.Read<long>(20);
CreateTime = fields.Read<long>(20);
LastActiveTime = fields.Read<long>(21);
var spec = Global.DB2Mgr.GetChrSpecializationByIndex(ClassId, fields.Read<byte>(21));
var spec = Global.DB2Mgr.GetChrSpecializationByIndex(ClassId, fields.Read<byte>(22));
if (spec != null)
SpecID = (short)spec.Id;
LastLoginVersion = fields.Read<int>(22);
LastLoginVersion = fields.Read<int>(23);
PersonalTabard.EmblemStyle = fields.Read<int>(23);
PersonalTabard.EmblemColor = fields.Read<int>(24);
PersonalTabard.BorderStyle = fields.Read<int>(25);
PersonalTabard.BorderColor = fields.Read<int>(26);
PersonalTabard.BackgroundColor = fields.Read<int>(27);
PersonalTabard.EmblemStyle = fields.Read<int>(24);
PersonalTabard.EmblemColor = fields.Read<int>(25);
PersonalTabard.BorderStyle = fields.Read<int>(26);
PersonalTabard.BorderColor = fields.Read<int>(27);
PersonalTabard.BackgroundColor = fields.Read<int>(28);
int equipmentFieldsPerSlot = 5;
@@ -226,6 +227,7 @@ namespace Game.Networking.Packets
visualItem.Write(data);
data.WriteInt32(SaveVersion);
data.WriteInt64(CreateTime);
data.WriteInt64(LastActiveTime);
data.WriteInt32(LastLoginVersion);
PersonalTabard.Write(data);
@@ -272,6 +274,7 @@ namespace Game.Networking.Packets
public CharacterFlags4 Flags4; // Character flag4 @see enum CharacterFlags4
public bool FirstLogin;
public byte CantLoginReason;
public long CreateTime;
public long LastActiveTime;
public short SpecID;
public int SaveVersion;
@@ -520,7 +523,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt8((byte)Code);
_worldPacket.WriteUInt32((uint)Code);
_worldPacket.WritePackedGuid(Guid);
}
@@ -546,7 +549,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt8((byte)Code);
_worldPacket.WriteUInt32((uint)Code);
}
public ResponseCodes Code;
@@ -572,7 +575,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt8((byte)Result);
_worldPacket.WriteUInt32((uint)Result);
_worldPacket.WriteBit(Guid.HasValue);
_worldPacket.WriteBits(Name.GetByteCount(), 6);
_worldPacket.FlushBits();
@@ -658,7 +661,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt8((byte)Result);
_worldPacket.WriteUInt32((uint)Result);
_worldPacket.WritePackedGuid(Guid);
_worldPacket.WriteBit(Display != null);
_worldPacket.FlushBits();
@@ -1173,11 +1176,11 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt8(Result);
_worldPacket.WriteUInt32(Result);
_worldPacket.WritePackedGuid(CharGUID);
}
public byte Result;
public uint Result;
public ObjectGuid CharGUID;
}
@@ -62,6 +62,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteInt32(Absorbed);
_worldPacket.WriteInt32(Resisted);
_worldPacket.WriteInt32(ShieldBlock);
_worldPacket.WriteInt32(Flags);
_worldPacket.WriteInt32(WorldTextViewers.Count);
_worldPacket.WriteInt32(Supporters.Count);
@@ -69,7 +70,6 @@ namespace Game.Networking.Packets
supportInfo.Write(_worldPacket);
_worldPacket.WriteBit(Periodic);
_worldPacket.WriteBits(Flags, 7);
_worldPacket.WriteBit(false); // Debug info
WriteLogDataBit();
_worldPacket.WriteBit(ContentTuning != null);
@@ -657,7 +657,7 @@ namespace Game.Networking.Packets
public int OriginalHeal;
public ContentTuningParams ContentTuning;
}
//Structs
public struct SpellLogEffectPowerDrainParams
{
@@ -1619,12 +1619,12 @@ namespace Game.Networking.Packets
data.WriteUInt8(Gender);
data.WriteUInt64(GuildClubMemberID);
data.WriteUInt8(RaceID);
data.WriteInt32(TimerunningSeasonID);
data.WriteBits(Name.GetByteCount(), 6);
data.WriteBits(Note.GetByteCount(), 8);
data.WriteBits(OfficerNote.GetByteCount(), 8);
data.WriteBit(Authenticated);
data.WriteBit(SorEligible);
data.FlushBits();
DungeonScore.Write(data);
@@ -1653,8 +1653,8 @@ namespace Game.Networking.Packets
public byte Gender;
public ulong GuildClubMemberID;
public byte RaceID;
public int TimerunningSeasonID;
public bool Authenticated;
public bool SorEligible;
public GuildRosterProfessionData[] Profession = new GuildRosterProfessionData[2];
public DungeonScoreSummary DungeonScore = new();
}
@@ -1758,7 +1758,7 @@ namespace Game.Networking.Packets
{
data.WriteInt32(Id);
CompletedDate.Write(data);
data.WriteInt32(Type);
data.WriteInt8(Type);
data.WriteInt32(Flags);
for (byte i = 0; i < 2; i++)
@@ -1779,7 +1779,7 @@ namespace Game.Networking.Packets
public int Id;
public WowTime CompletedDate;
public int Type;
public sbyte Type;
public int Flags;
public int[] Data = new int[2];
public ObjectGuid MemberGuid;
@@ -133,14 +133,14 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WritePackedGuid(ItemGUID);
_worldPacket.WriteUInt8(Result);
_worldPacket.WriteUInt32(Result);
_worldPacket.WriteBit(Contents != null);
_worldPacket.FlushBits();
if (Contents != null)
Contents.Write(_worldPacket);
}
public byte Result;
public uint Result;
public ObjectGuid ItemGUID;
public ItemPurchaseContents Contents;
}
+2 -2
View File
@@ -167,7 +167,7 @@ namespace Game.Networking.Packets
Ticket.Write(_worldPacket);
_worldPacket.WriteUInt8(SubType);
_worldPacket.WriteUInt8(Reason);
_worldPacket.WriteUInt32(Reason);
_worldPacket.WriteInt32(Slots.Count);
_worldPacket.WriteUInt8(RequestedRoles);
_worldPacket.WriteInt32(SuspendedPlayers.Count);
@@ -190,7 +190,7 @@ namespace Game.Networking.Packets
public RideTicket Ticket = new();
public byte SubType;
public byte Reason;
public uint Reason;
public List<uint> Slots = new();
public byte RequestedRoles;
public List<ObjectGuid> SuspendedPlayers = new();
+5 -10
View File
@@ -212,12 +212,10 @@ namespace Game.Networking.Packets
public override void Read() { }
}
public class MailQueryNextTimeResult : ServerPacket
public class MailQueryNextTimeResult() : ServerPacket(ServerOpcodes.MailQueryNextTimeResult)
{
public MailQueryNextTimeResult() : base(ServerOpcodes.MailQueryNextTimeResult)
{
Next = new List<MailNextTimeEntry>();
}
public float NextMailTime;
public List<MailNextTimeEntry> Next = new();
public override void Write()
{
@@ -229,14 +227,11 @@ namespace Game.Networking.Packets
_worldPacket.WritePackedGuid(entry.SenderGuid);
_worldPacket.WriteFloat(entry.TimeLeft);
_worldPacket.WriteInt32(entry.AltSenderID);
_worldPacket.WriteInt8(entry.AltSenderType);
_worldPacket.WriteInt32(entry.AltSenderType);
_worldPacket.WriteInt32(entry.StationeryID);
}
}
public float NextMailTime;
public List<MailNextTimeEntry> Next;
public class MailNextTimeEntry
{
public MailNextTimeEntry(Mail mail)
@@ -266,7 +261,7 @@ namespace Game.Networking.Packets
public ObjectGuid SenderGuid;
public float TimeLeft;
public int AltSenderID;
public sbyte AltSenderType;
public int AltSenderType;
public int StationeryID;
}
}
@@ -189,10 +189,8 @@ namespace Game.Networking.Packets
public ObjectGuid Selection; // Target
}
public class SetupCurrency : ServerPacket
public class SetupCurrency() : ServerPacket(ServerOpcodes.SetupCurrency, ConnectionType.Instance)
{
public SetupCurrency() : base(ServerOpcodes.SetupCurrency, ConnectionType.Instance) { }
public override void Write()
{
_worldPacket.WriteInt32(Data.Count);
@@ -201,6 +199,7 @@ namespace Game.Networking.Packets
{
_worldPacket.WriteUInt32(data.Type);
_worldPacket.WriteUInt32(data.Quantity);
_worldPacket.WriteUInt8(data.Flags);
_worldPacket.WriteBit(data.WeeklyQuantity.HasValue);
_worldPacket.WriteBit(data.MaxWeeklyQuantity.HasValue);
@@ -209,7 +208,6 @@ namespace Game.Networking.Packets
_worldPacket.WriteBit(data.TotalEarned.HasValue);
_worldPacket.WriteBit(data.NextRechargeTime.HasValue);
_worldPacket.WriteBit(data.RechargeCycleStartTime.HasValue);
_worldPacket.WriteBits(data.Flags, 5);
_worldPacket.FlushBits();
if (data.WeeklyQuantity.HasValue)
@@ -1520,27 +1520,13 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data)
{
data.WriteUInt32(Flags);
data.WriteUInt8((byte)Face);
data.WriteInt32(Elapsed);
data.WriteUInt32(MoveTime);
data.WriteUInt32(FadeObjectTime);
data.WriteUInt8(Mode);
data.WritePackedGuid(TransportGUID);
data.WriteInt8(VehicleSeat);
data.WriteBits((byte)Face, 2);
data.WriteBits(Points.Count, 16);
data.WriteBit(VehicleExitVoluntary);
data.WriteBit(TaxiSmoothing);
data.WriteBits(PackedDeltas.Count, 16);
data.WriteBit(SplineFilter != null);
data.WriteBit(SpellEffectExtraData.HasValue);
data.WriteBit(JumpExtraData.HasValue);
data.WriteBit(TurnData != null);
data.WriteBit(AnimTierTransition.HasValue);
data.WriteBit(Unknown901 != null);
data.FlushBits();
if (SplineFilter != null)
SplineFilter.Write(data);
switch (Face)
{
@@ -1556,6 +1542,21 @@ namespace Game.Networking.Packets
break;
}
data.WriteBits(Points.Count, 16);
data.WriteBit(VehicleExitVoluntary);
data.WriteBit(TaxiSmoothing);
data.WriteBits(PackedDeltas.Count, 16);
data.WriteBit(SplineFilter != null);
data.WriteBit(SpellEffectExtraData.HasValue);
data.WriteBit(JumpExtraData.HasValue);
data.WriteBit(TurnData != null);
data.WriteBit(AnimTierTransition.HasValue);
data.WriteBit(Unknown901 != null);
data.FlushBits();
if (SplineFilter != null)
SplineFilter.Write(data);
foreach (Vector3 pos in Points)
data.WriteVector3(pos);
+4 -4
View File
@@ -164,7 +164,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WritePackedGuid(TrainerGUID);
_worldPacket.WriteInt32(TrainerType);
_worldPacket.WriteInt8(TrainerType);
_worldPacket.WriteInt32(TrainerID);
_worldPacket.WriteInt32(Spells.Count);
@@ -188,7 +188,7 @@ namespace Game.Networking.Packets
}
public ObjectGuid TrainerGUID;
public int TrainerType;
public sbyte TrainerType;
public int TrainerID = 1;
public List<TrainerListSpell> Spells = new();
public string Greeting;
@@ -339,7 +339,7 @@ namespace Game.Networking.Packets
{
public int GossipOptionID;
public GossipOptionNpc OptionNPC;
public byte OptionFlags;
public int OptionFlags;
public ulong OptionCost;
public uint OptionLanguage;
public GossipOptionFlags Flags;
@@ -355,8 +355,8 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data)
{
data.WriteInt32(GossipOptionID);
data.WriteInt32(OptionFlags);
data.WriteUInt8((byte)OptionNPC);
data.WriteInt8((sbyte)OptionFlags);
data.WriteUInt64(OptionCost);
data.WriteUInt32(OptionLanguage);
data.WriteInt32((int)Flags);
@@ -1195,7 +1195,7 @@ namespace Game.Networking.Packets
for (byte i = 0; i < 2; i++)
data.WriteUInt8(PartyType[i]);
data.WriteInt16((short)Status);
data.WriteUInt32((uint)Status);
data.WriteUInt8(PowerType);
data.WriteInt16((short)PowerDisplayID);
data.WriteInt32(CurrentHealth);
@@ -1387,6 +1387,7 @@ namespace Game.Networking.Packets
public long Unknown_1120_4;
public ObjectGuid KeystoneOwnerGUID;
public ObjectGuid LeaverGUID;
public long InstanceAbandonVoteCooldown;
public bool IsActive;
public bool HasRestrictions;
public bool CanVoteAbandon;
@@ -1399,6 +1400,7 @@ namespace Game.Networking.Packets
data.WriteInt64(Unknown_1120_4);
data.WritePackedGuid(KeystoneOwnerGUID);
data.WritePackedGuid(LeaverGUID);
data.WriteInt64(InstanceAbandonVoteCooldown);
data.WriteBit(IsActive);
data.WriteBit(HasRestrictions);
data.WriteBit(CanVoteAbandon);
+4 -4
View File
@@ -183,7 +183,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt8((byte)Result);
_worldPacket.WriteUInt32((uint)Result);
_worldPacket.WritePackedGuid(RenameData.PetGUID);
_worldPacket.WriteInt32(RenameData.PetNumber);
@@ -317,8 +317,8 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteInt32((int)Response);
_worldPacket.WriteUInt32(SpellID);
_worldPacket.WriteUInt8((byte)Response);
}
public uint SpellID;
@@ -345,10 +345,10 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt8(Result);
_worldPacket.WriteUInt32(Result);
}
public byte Result;
public uint Result;
}
class PetMode : ServerPacket
@@ -294,7 +294,7 @@ namespace Game.Networking.Packets
data.WriteInt32(AllowedMinLevel);
data.WriteInt32(AllowedMaxLevel);
data.WriteInt32(NumChoices);
data.WriteInt32(StaticType);
data.WriteInt8(StaticType);
data.WriteUInt32(Muid);
data.WriteBits(Title.GetByteCount(), 8);
@@ -327,7 +327,7 @@ namespace Game.Networking.Packets
public int AllowedMinLevel;
public int AllowedMaxLevel;
public int NumChoices;
public int StaticType;
public sbyte StaticType;
public uint Muid = 0;
public StringArray Choicetext = new(10);
}
@@ -270,7 +270,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteInt32(ObjectID);
_worldPacket.WriteUInt16(Count);
_worldPacket.WriteUInt16(Required);
_worldPacket.WriteUInt8(ObjectiveType);
_worldPacket.WriteUInt32(ObjectiveType);
}
public ObjectGuid VictimGUID;
@@ -278,7 +278,7 @@ namespace Game.Networking.Packets
public uint QuestID;
public ushort Count;
public ushort Required;
public byte ObjectiveType;
public uint ObjectiveType;
}
class QuestUpdateAddCreditSimple : ServerPacket
@@ -289,7 +289,7 @@ namespace Game.Networking.Packets
{
_worldPacket.WriteUInt32(QuestID);
_worldPacket.WriteInt32(ObjectID);
_worldPacket.WriteUInt8((byte)ObjectiveType);
_worldPacket.WriteUInt32((uint)ObjectiveType);
}
public uint QuestID;
@@ -748,7 +748,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WritePackedGuid(SenderGUID);
_worldPacket.WriteUInt8((byte)Result);
_worldPacket.WriteUInt32((uint)Result);
_worldPacket.WriteBits(QuestTitle.GetByteCount(), 9);
_worldPacket.FlushBits();
@@ -769,7 +769,7 @@ namespace Game.Networking.Packets
{
SenderGUID = _worldPacket.ReadPackedGuid();
QuestID = _worldPacket.ReadUInt32();
Result = (QuestPushReason)_worldPacket.ReadUInt8();
Result = (QuestPushReason)_worldPacket.ReadUInt32();
}
public ObjectGuid SenderGUID;
+26 -21
View File
@@ -736,9 +736,9 @@ namespace Game.Networking.Packets
_worldPacket.WriteVector3(TargetPosition);
_worldPacket.WriteUInt32(SpellVisualID);
_worldPacket.WriteFloat(TravelSpeed);
_worldPacket.WriteUInt16(HitReason);
_worldPacket.WriteUInt16(MissReason);
_worldPacket.WriteUInt16(ReflectStatus);
_worldPacket.WriteUInt8(HitReason);
_worldPacket.WriteUInt8(MissReason);
_worldPacket.WriteUInt8(ReflectStatus);
_worldPacket.WriteFloat(LaunchDelay);
_worldPacket.WriteFloat(MinDuration);
_worldPacket.WriteBit(SpeedAsTime);
@@ -751,9 +751,9 @@ namespace Game.Networking.Packets
public Vector3 TargetPosition; // Overrides missile destination for SpellVisual::SpellVisualMissileSetID
public uint SpellVisualID;
public float TravelSpeed;
public ushort HitReason;
public ushort MissReason;
public ushort ReflectStatus;
public byte HitReason;
public byte MissReason;
public byte ReflectStatus;
public float LaunchDelay;
public float MinDuration;
public bool SpeedAsTime;
@@ -1686,6 +1686,7 @@ namespace Game.Networking.Packets
data.WriteInt32(ContentTuningID);
data.WriteVector3(DstLocation);
data.WriteBit(CastUnit.HasValue);
data.WriteBit(CastItem.HasValue);
data.WriteBit(Duration.HasValue);
data.WriteBit(Remaining.HasValue);
data.WriteBit(TimeMod.HasValue);
@@ -1699,6 +1700,9 @@ namespace Game.Networking.Packets
if (CastUnit.HasValue)
data.WritePackedGuid(CastUnit.Value);
if (CastItem.HasValue)
data.WritePackedGuid(CastItem.Value);
if (Duration.HasValue)
data.WriteInt32(Duration.Value);
@@ -1725,6 +1729,7 @@ namespace Game.Networking.Packets
public int ContentTuningID;
ContentTuningParams ContentTuning;
public ObjectGuid? CastUnit;
public ObjectGuid? CastItem;
public int? Duration;
public int? Remaining;
float? TimeMod;
@@ -1776,8 +1781,10 @@ namespace Game.Networking.Packets
{
public void Read(WorldPacket data)
{
data.ResetBitPos();
Flags = (SpellCastTargetFlags)data.ReadBits<uint>(28);
Flags = (SpellCastTargetFlags)data.ReadUInt32();
Unit = data.ReadPackedGuid();
Item = data.ReadPackedGuid();
if (data.HasBit())
SrcLocation = new();
@@ -1789,9 +1796,6 @@ namespace Game.Networking.Packets
uint nameLength = data.ReadBits<uint>(7);
Unit = data.ReadPackedGuid();
Item = data.ReadPackedGuid();
if (SrcLocation != null)
SrcLocation.Read(data);
@@ -1809,7 +1813,10 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data)
{
data.WriteBits((uint)Flags, 28);
data.WriteUInt32((uint)Flags);
data.WritePackedGuid(Unit);
data.WritePackedGuid(Item);
data.WriteBit(SrcLocation != null);
data.WriteBit(DstLocation != null);
data.WriteBit(Orientation.HasValue);
@@ -1817,9 +1824,6 @@ namespace Game.Networking.Packets
data.WriteBits(Name.GetByteCount(), 7);
data.FlushBits();
data.WritePackedGuid(Unit);
data.WritePackedGuid(Item);
if (SrcLocation != null)
SrcLocation.Write(data);
@@ -1914,6 +1918,7 @@ namespace Game.Networking.Packets
public void Read(WorldPacket data)
{
CastID = data.ReadPackedGuid();
SendCastFlags = data.ReadUInt32();
Misc[0] = data.ReadUInt32();
Misc[1] = data.ReadUInt32();
SpellID = data.ReadUInt32();
@@ -1931,19 +1936,19 @@ namespace Game.Networking.Packets
for (var i = 0; i < optionalCurrenciesCount; ++i)
OptionalCurrencies[i].Read(data);
SendCastFlags = data.ReadBits<uint>(6);
Target.Read(data);
data.ResetBitPos();
bool hasMoveUpdate = data.HasBit();
var weightCount = data.ReadBits<uint>(2);
bool hasCraftingOrderID = data.HasBit();
Target.Read(data);
for (var i = 0; i < optionalReagentsCount; ++i)
OptionalReagents[i].Read(data);
if (hasCraftingOrderID)
CraftingOrderID = data.ReadUInt64();
for (var i = 0; i < optionalReagentsCount; ++i)
OptionalReagents[i].Read(data);
for (var i = 0; i < removedModificationsCount; ++i)
RemovedModifications[i].Read(data);
@@ -2046,7 +2051,7 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data)
{
data.WriteUInt32(Points);
data.WriteUInt8((byte)Type);
data.WriteUInt32((uint)Type);
data.WritePackedGuid(BeaconGUID);
}
}
@@ -46,6 +46,10 @@ namespace Game.Networking.Packets
_worldPacket.WriteInt32(AddonChatThrottle.MaxTries);
_worldPacket.WriteInt32(AddonChatThrottle.TriesRestoredPerSecond);
_worldPacket.WriteInt32(AddonChatThrottle.UsedTriesPerMessage);
_worldPacket.WriteInt32(GuildChatThrottle.UsedTriesPerMessage);
_worldPacket.WriteInt32(GuildChatThrottle.TriesRestoredPerSecond);
_worldPacket.WriteInt32(GroupChatThrottle.UsedTriesPerMessage);
_worldPacket.WriteInt32(GroupChatThrottle.TriesRestoredPerSecond);
_worldPacket.WriteFloat(AddonPerformanceMsgWarning);
_worldPacket.WriteFloat(AddonPerformanceMsgError);
@@ -202,7 +206,9 @@ namespace Game.Networking.Packets
public int ActiveTimerunningSeasonID;
public int RemainingTimerunningSeasonSeconds;
public string Unknown1027; // related to movement lua functions used by keybinds
public AddonChatThrottleParams AddonChatThrottle;
public ChatThrottleParams AddonChatThrottle;
public ChatThrottleParams GuildChatThrottle;
public ChatThrottleParams GroupChatThrottle;
public uint RealmPvpTypeOverride; ///< Use Cfg_Configs value = 0, ForceEnabled = 1, ForceDisabled = 2
public float AddonPerformanceMsgWarning;
public float AddonPerformanceMsgError;
@@ -288,7 +294,7 @@ namespace Game.Networking.Packets
public uint RewardsVersion;
}
public struct AddonChatThrottleParams
public struct ChatThrottleParams
{
public int MaxTries;
public int TriesRestoredPerSecond;
@@ -362,6 +368,8 @@ namespace Game.Networking.Packets
_worldPacket.WriteInt32(GameRules.Count);
_worldPacket.WriteInt32(ActiveTimerunningSeasonID);
_worldPacket.WriteInt32(RemainingTimerunningSeasonSeconds);
_worldPacket.WriteInt32((int)TimerunningConversionMinCharacterAge.TotalSeconds);
_worldPacket.WriteInt32(TimerunningConversionMaxSeasonID);
_worldPacket.WriteInt16(MaxPlayerGuidLookupsPerRequest);
_worldPacket.WriteInt16(NameLookupTelemetryInterval);
_worldPacket.WriteUInt32((uint)NotFoundCacheTimeSeconds.TotalSeconds);
@@ -429,6 +437,8 @@ namespace Game.Networking.Packets
public List<GameRuleValuePair> GameRules = new();
public int ActiveTimerunningSeasonID;
public int RemainingTimerunningSeasonSeconds;
public TimeSpan TimerunningConversionMinCharacterAge = TimeSpan.FromDays(1);
public int TimerunningConversionMaxSeasonID = -1;
public short MaxPlayerGuidLookupsPerRequest = 50;
public short NameLookupTelemetryInterval = 600;
public TimeSpan NotFoundCacheTimeSeconds = TimeSpan.FromSeconds(10);
@@ -439,6 +449,18 @@ namespace Game.Networking.Packets
public string RealmHiddenAlert;
}
class MirrorVars() : ServerPacket(ServerOpcodes.MirrorVars)
{
public MirrorVarSingle[] Variables;
public override void Write()
{
_worldPacket.WriteInt32(Variables.Length);
foreach (MirrorVarSingle variable in Variables)
variable.Write(_worldPacket);
}
}
public class SetTimeZoneInformation : ServerPacket
{
public SetTimeZoneInformation() : base(ServerOpcodes.SetTimeZoneInformation) { }
@@ -524,4 +546,29 @@ namespace Game.Networking.Packets
data.WriteString(Text);
}
}
public struct MirrorVarSingle
{
public string Name;
public string Value;
public int UpdateType;
public MirrorVarSingle(string name, string value, int updateType = 0)
{
Name = name;
Value = value;
UpdateType = updateType;
}
public void Write(WorldPacket data)
{
data.WriteBits(UpdateType, 1);
data.WriteBits(Name.GetByteCount(), 24);
data.WriteBits(Value.GetByteCount(), 24);
data.FlushBits();
data.WriteCString(Name);
data.WriteCString(Value);
}
}
}
@@ -224,6 +224,7 @@ namespace Game.Networking.Packets
public List<ushort> GlyphIDs = new();
public sbyte Role;
public int PrimarySpecialization;
public bool Unused1125;
public void Write(WorldPacket data)
{
@@ -241,6 +242,9 @@ namespace Game.Networking.Packets
foreach (ushort id in GlyphIDs)
data.WriteUInt16(id);
data.WriteBit(Unused1125);
data.FlushBits();
}
}
@@ -32,8 +32,8 @@ namespace Game.Networking.Packets
{
_worldPacket.WriteUInt64(auctionableTokenAuctionable.Id);
_worldPacket.WriteInt64(auctionableTokenAuctionable.LastUpdate);
_worldPacket.WriteUInt64(auctionableTokenAuctionable.Price);
_worldPacket.WriteUInt32(auctionableTokenAuctionable.Status);
_worldPacket.WriteUInt64(auctionableTokenAuctionable.Price);
_worldPacket.WriteUInt32(auctionableTokenAuctionable.DurationLeft);
}
}
@@ -70,15 +70,15 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt64(PriceGuarantee);
_worldPacket.WriteUInt32(ClientToken);
_worldPacket.WriteUInt32((uint)ServerToken);
_worldPacket.WriteUInt64(PriceGuarantee);
_worldPacket.WriteUInt32(PriceLockDurationSeconds);
}
public ulong PriceGuarantee;
public uint ClientToken;
public TokenResult ServerToken;
public ulong PriceGuarantee;
public uint PriceLockDurationSeconds;
}
}
@@ -130,6 +130,7 @@ namespace Game.Networking.Packets
TraitNodeEntryID = ufEntry.TraitNodeEntryID;
Rank = ufEntry.Rank;
GrantedRanks = ufEntry.GrantedRanks;
BonusRanks = ufEntry.BonusRanks;
}
public void Read(WorldPacket data)
@@ -205,6 +206,7 @@ namespace Game.Networking.Packets
public int LocalIdentifier; // Local to specialization
public uint SkillLineID;
public uint TraitSystemID;
public int VariationID;
public List<TraitEntryPacket> Entries = new();
public List<TraitSubTreeCachePacket> SubTrees = new();
public string Name = "";
@@ -220,6 +222,7 @@ namespace Game.Networking.Packets
LocalIdentifier = ufConfig.LocalIdentifier;
SkillLineID = (uint)(int)ufConfig.SkillLineID;
TraitSystemID = ufConfig.TraitSystemID;
VariationID = ufConfig.VariationID;
foreach (TraitEntry ufEntry in ufConfig.Entries)
Entries.Add(new TraitEntryPacket(ufEntry));
foreach (var ufSubTree in ufConfig.SubTrees)
@@ -246,6 +249,7 @@ namespace Game.Networking.Packets
break;
case TraitConfigType.Generic:
TraitSystemID = data.ReadUInt32();
VariationID = data.ReadInt32();
break;
default:
break;
@@ -289,6 +293,7 @@ namespace Game.Networking.Packets
break;
case TraitConfigType.Generic:
data.WriteUInt32(TraitSystemID);
data.WriteInt32(VariationID);
break;
default:
break;