Core: Updated to 11.1.0

Port From (https://github.com/TrinityCore/TrinityCore/commit/23624ed75abc8cbb77bb2e24a08e0836e4c41db5)
This commit is contained in:
Hondacrx
2025-06-16 14:47:31 -04:00
parent b6bccbad44
commit 7fd54e6175
65 changed files with 4240 additions and 3968 deletions
@@ -34,7 +34,7 @@ namespace Game.Networking.Packets
MinLevel = _worldPacket.ReadUInt8();
MaxLevel = _worldPacket.ReadUInt8();
Unused1007_1 = _worldPacket.ReadUInt8();
Unused1007_2= _worldPacket.ReadUInt8();
Unused1007_2 = _worldPacket.ReadUInt8();
Filters = (AuctionHouseFilterMask)_worldPacket.ReadUInt32();
uint knownPetSize = _worldPacket.ReadUInt32();
MaxPetLevel = _worldPacket.ReadInt8();
@@ -133,8 +133,8 @@ namespace Game.Networking.Packets
public override void Read()
{
Auctioneer = _worldPacket.ReadPackedGuid();
Offset = _worldPacket.ReadUInt32();
Auctioneer = _worldPacket.ReadPackedGuid();
Offset = _worldPacket.ReadUInt32();
if (_worldPacket.HasBit())
TaintedBy = new();
@@ -270,7 +270,7 @@ namespace Game.Networking.Packets
}
class AuctionPlaceBid : ClientPacket
{
{
public ObjectGuid Auctioneer;
public ulong BidAmount;
public uint AuctionID;
@@ -341,7 +341,7 @@ namespace Game.Networking.Packets
}
}
}
class AuctionSellCommodity : ClientPacket
{
public ObjectGuid Auctioneer;
@@ -402,7 +402,7 @@ namespace Game.Networking.Packets
}
class AuctionSetFavoriteItem : ClientPacket
{
{
public AuctionFavoriteInfo Item;
public bool IsNotFavorite = true;
@@ -439,7 +439,7 @@ namespace Game.Networking.Packets
}
class AuctionClosedNotification : ServerPacket
{
{
public AuctionOwnerNotification Info;
public float ProceedsMailDelay;
public bool Sold = true;
@@ -456,7 +456,7 @@ namespace Game.Networking.Packets
}
class AuctionCommandResult : ServerPacket
{
{
public uint AuctionID; ///< the id of the auction that triggered this notification
public int Command; ///< the type of action that triggered this notification. Possible values are @ref AuctionAction
public int ErrorCode; ///< the error code that was generated when trying to perform the action. Possible values are @ref AuctionError
@@ -515,6 +515,7 @@ namespace Game.Networking.Packets
public ObjectGuid Auctioneer;
public uint PurchaseDeliveryDelay;
public uint CancelDeliveryDelay;
public uint AuctionHouseID;
public bool OpenForBusiness = true;
public AuctionHelloResponse() : base(ServerOpcodes.AuctionHelloResponse) { }
@@ -524,13 +525,14 @@ namespace Game.Networking.Packets
_worldPacket.WritePackedGuid(Auctioneer);
_worldPacket.WriteUInt32(PurchaseDeliveryDelay);
_worldPacket.WriteUInt32(CancelDeliveryDelay);
_worldPacket.WriteUInt32(AuctionHouseID);
_worldPacket.WriteBit(OpenForBusiness);
_worldPacket.FlushBits();
}
}
public class AuctionListBiddedItemsResult : ServerPacket
{
{
public List<AuctionItem> Items = new();
public uint DesiredDelay;
public bool HasMoreResults;
@@ -550,7 +552,7 @@ namespace Game.Networking.Packets
}
public class AuctionListBucketsResult : ServerPacket
{
{
public List<BucketInfo> Buckets = new();
public uint DesiredDelay;
public int Unknown830_0;
@@ -576,7 +578,7 @@ namespace Game.Networking.Packets
}
class AuctionFavoriteList : ServerPacket
{
{
public uint DesiredDelay;
public List<AuctionFavoriteInfo> Items = new();
@@ -623,7 +625,7 @@ namespace Game.Networking.Packets
}
public class AuctionListOwnedItemsResult : ServerPacket
{
{
public List<AuctionItem> Items = new();
public List<AuctionItem> SoldItems = new();
public uint DesiredDelay;
@@ -648,7 +650,7 @@ namespace Game.Networking.Packets
}
class AuctionOutbidNotification : ServerPacket
{
{
public AuctionBidderNotification Info;
public ulong BidAmount;
public ulong MinIncrement;
@@ -664,7 +666,7 @@ namespace Game.Networking.Packets
}
class AuctionOwnerBidNotification : ServerPacket
{
{
public AuctionOwnerNotification Info;
public ObjectGuid Bidder;
public ulong MinIncrement;
@@ -680,7 +682,7 @@ namespace Game.Networking.Packets
}
public class AuctionReplicateResponse : ServerPacket
{
{
public uint ChangeNumberCursor;
public uint ChangeNumberGlobal;
public uint DesiredDelay;
@@ -705,7 +707,7 @@ namespace Game.Networking.Packets
}
class AuctionWonNotification : ServerPacket
{
{
public AuctionBidderNotification Info;
public AuctionWonNotification() : base(ServerOpcodes.AuctionWonNotification) { }
@@ -791,7 +793,7 @@ namespace Game.Networking.Packets
ItemClass = data.ReadInt32();
uint subClassFilterCount = data.ReadBits<uint>(5);
for (var i = 0; i < subClassFilterCount; ++i)
for (var i = 0; i < subClassFilterCount; ++i)
SubClassFilters[i] = new AuctionListFilterSubClass(data);
}
}
@@ -944,6 +946,7 @@ namespace Game.Networking.Packets
public ObjectGuid ItemGuid;
public ObjectGuid OwnerAccountID;
public uint EndTime;
public uint Unused1110;
public ObjectGuid? Bidder;
public ulong? BidAmount;
public List<ItemGemData> Gems = new();
@@ -981,6 +984,7 @@ namespace Game.Networking.Packets
data.WritePackedGuid(Owner);
data.WriteInt32(DurationLeft);
data.WriteUInt8(DeleteReason);
data.WriteUInt32(Unused1110);
foreach (ItemEnchantData enchant in Enchantments)
enchant.Write(data);
@@ -1026,12 +1030,14 @@ namespace Game.Networking.Packets
struct AuctionBidderNotification
{
public uint AuctionHouseID;
public uint AuctionID;
public ObjectGuid Bidder;
public ItemInstance Item;
public void Initialize(AuctionPosting auction, Item item)
public void Initialize(uint auctionHouseId, AuctionPosting auction, Item item)
{
AuctionHouseID = auctionHouseId;
AuctionID = auction.Id;
Item = new ItemInstance(item);
Bidder = auction.Bidder;
@@ -1039,6 +1045,7 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data)
{
data.WriteUInt32(AuctionHouseID);
data.WriteUInt32(AuctionID);
data.WritePackedGuid(Bidder);
Item.Write(data);
@@ -371,6 +371,7 @@ namespace Game.Networking.Packets
class EnterEncryptedMode : ServerPacket
{
byte[] EncryptionKey;
int RegionGroup;
bool Enabled;
static byte[] expandedPrivateKey;
@@ -404,6 +405,7 @@ namespace Game.Networking.Packets
toSign.Finish(EnableEncryptionSeed, 16);
_worldPacket.WriteBytes(Ed25519.Sign(toSign.Digest, expandedPrivateKey, 0, EnableEncryptionContext));
_worldPacket.WriteInt32(RegionGroup);
_worldPacket.WriteBit(Enabled);
_worldPacket.FlushBits();
}
@@ -416,7 +418,7 @@ namespace Game.Networking.Packets
{
data.WriteUInt32(WaitCount);
data.WriteUInt32(WaitTime);
data.WriteUInt32(AllowedFactionGroupForCharacterCreate);
data.WriteUInt8(AllowedFactionGroupForCharacterCreate);
data.WriteBit(HasFCM);
data.WriteBit(CanCreateOnlyIfExisting);
data.FlushBits();
@@ -424,7 +426,7 @@ namespace Game.Networking.Packets
public uint WaitCount; // position of the account in the login queue
public uint WaitTime; // Wait time in login queue in minutes, if sent queued and this value is 0 client displays "unknown time"
public uint AllowedFactionGroupForCharacterCreate;
public byte AllowedFactionGroupForCharacterCreate;
public bool HasFCM; // true if the account has a forced character migration pending. @todo implement
public bool CanCreateOnlyIfExisting; ///< Can create characters on realm only if player has other existing characters there
}
@@ -144,7 +144,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteUInt32(Mapid);
_worldPacket.WriteUInt32(ShutdownTimer);
_worldPacket.WriteUInt32(StartTimer);
_worldPacket.WriteBit(ArenaFaction != 0);
_worldPacket.WriteInt8(ArenaFaction);
_worldPacket.WriteBit(LeftEarly);
_worldPacket.WriteBit(Brawl);
_worldPacket.FlushBits();
@@ -152,7 +152,7 @@ namespace Game.Networking.Packets
public BattlefieldStatusHeader Hdr = new();
public uint ShutdownTimer;
public byte ArenaFaction;
public sbyte ArenaFaction;
public bool LeftEarly;
public bool Brawl;
public uint StartTimer;
@@ -704,13 +704,14 @@ namespace Game.Networking.Packets
{
data.WritePackedGuid(PlayerGUID);
data.WriteUInt32(Kills);
data.WriteInt32(Faction);
data.WriteUInt32(DamageDone);
data.WriteUInt32(HealingDone);
data.WriteInt32(Stats.Count);
data.WriteInt32(PrimaryTalentTree);
data.WriteInt8(Sex);
data.WriteUInt32((uint)PlayerRace);
data.WriteInt32(PlayerClass);
data.WriteInt8(PlayerRace);
data.WriteInt8(PlayerClass);
data.WriteInt32(CreatureID);
data.WriteInt32(HonorLevel);
data.WriteInt32(Role);
@@ -718,7 +719,6 @@ namespace Game.Networking.Packets
foreach (var pvpStat in Stats)
pvpStat.Write(data);
data.WriteBit(Faction != 0);
data.WriteBit(IsInWorld);
data.WriteBit(Honor.HasValue);
data.WriteBit(PreMatchRating.HasValue);
@@ -749,7 +749,7 @@ namespace Game.Networking.Packets
public ObjectGuid PlayerGUID;
public uint Kills;
public byte Faction;
public int Faction;
public bool IsInWorld;
public HonorData? Honor;
public uint DamageDone;
@@ -762,8 +762,8 @@ namespace Game.Networking.Packets
public List<PVPMatchPlayerPVPStat> Stats = new();
public int PrimaryTalentTree;
public sbyte Sex;
public Race PlayerRace;
public int PlayerClass;
public sbyte PlayerRace;
public sbyte PlayerClass;
public int CreatureID;
public int HonorLevel;
public int Role;
@@ -52,9 +52,6 @@ namespace Game.Networking.Packets
foreach (RaceLimitDisableInfo raceLimitDisableInfo in RaceLimitDisables)
raceLimitDisableInfo.Write(_worldPacket);
foreach (WarbandGroup warbandGroup in WarbandGroups)
warbandGroup.Write(_worldPacket);
foreach (CharacterInfo charInfo in Characters)
charInfo.Write(_worldPacket);
@@ -63,6 +60,9 @@ namespace Game.Networking.Packets
foreach (RaceUnlock raceUnlock in RaceUnlockData)
raceUnlock.Write(_worldPacket);
foreach (WarbandGroup warbandGroup in WarbandGroups)
warbandGroup.Write(_worldPacket);
}
public bool Success;
@@ -197,6 +197,7 @@ namespace Game.Networking.Packets
data.WriteUInt32((uint)Flags);
data.WriteUInt32((uint)Flags2);
data.WriteUInt32(Flags3);
data.WriteUInt32(Flags4);
data.WriteUInt8(CantLoginReason);
data.WriteUInt32(PetCreatureDisplayId);
@@ -216,6 +217,7 @@ namespace Game.Networking.Packets
data.WriteInt32(TimerunningSeasonID);
data.WriteUInt32(OverrideSelectScreenFileDataID);
data.WriteUInt32(Unused1110_1);
foreach (ChrCustomizationChoice customization in Customizations)
{
@@ -225,6 +227,8 @@ namespace Game.Networking.Packets
data.WriteBits(Name.GetByteCount(), 6);
data.WriteBit(FirstLogin);
data.WriteBit(Unused1110_2);
data.WriteBit(Unused1110_3);
data.FlushBits();
data.WriteString(Name);
@@ -247,6 +251,7 @@ namespace Game.Networking.Packets
public CharacterFlags Flags; // Character flag @see enum CharacterFlags
public CharacterCustomizeFlags Flags2; // Character customization flags @see enum CharacterCustomizeFlags
public uint Flags3; // Character flags 3 @todo research
public uint Flags4; ///< Character flags 4 @todo research
public bool FirstLogin;
public byte CantLoginReason;
public long LastActiveTime;
@@ -261,6 +266,9 @@ namespace Game.Networking.Packets
public uint[] ProfessionIds = new uint[2]; // @todo
public VisualItemInfo[] VisualItems = new VisualItemInfo[19];
public CustomTabardInfo PersonalTabard = new();
public uint Unused1110_1;
public bool Unused1110_2;
public bool Unused1110_3;
public struct VisualItemInfo
{
@@ -350,6 +358,7 @@ namespace Game.Networking.Packets
{
public CharacterInfoBasic Basic;
public ulong Money;
public float AvgEquippedItemLevel;
public float CurrentSeasonMythicPlusOverallScore;
public uint CurrentSeasonBestPvpRating;
public sbyte PvpRatingBracket;
@@ -364,6 +373,7 @@ namespace Game.Networking.Packets
{
Basic.Write(data);
data.WriteUInt64(Money);
data.WriteFloat(AvgEquippedItemLevel);
data.WriteFloat(CurrentSeasonMythicPlusOverallScore);
data.WriteUInt32(CurrentSeasonBestPvpRating);
data.WriteInt8(PvpRatingBracket);
@@ -373,7 +383,7 @@ namespace Game.Networking.Packets
public struct RaceUnlock
{
public int RaceID;
public sbyte RaceID;
public bool HasUnlockedLicense;
public bool HasUnlockedAchievement;
public bool HasHeritageArmorUnlockAchievement;
@@ -382,7 +392,7 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data)
{
data.WriteInt32(RaceID);
data.WriteInt8(RaceID);
data.WriteBit(HasUnlockedLicense);
data.WriteBit(HasUnlockedAchievement);
data.WriteBit(HasHeritageArmorUnlockAchievement);
@@ -406,12 +416,12 @@ namespace Game.Networking.Packets
public struct RaceLimitDisableInfo
{
public int RaceID;
public sbyte RaceID;
public int Reason;
public void Write(WorldPacket data)
{
data.WriteInt32(RaceID);
data.WriteInt8(RaceID);
data.WriteInt32(Reason);
}
}
@@ -966,9 +976,9 @@ namespace Game.Networking.Packets
{
var customizationCount = _worldPacket.ReadUInt32();
NewSex = _worldPacket.ReadUInt8();
CustomizedRace = _worldPacket.ReadInt32();
CustomizedRace = _worldPacket.ReadInt8();
CustomizedChrModelID = _worldPacket.ReadInt32();
UnalteredVisualRaceID = _worldPacket.ReadInt32();
UnalteredVisualRaceID = _worldPacket.ReadInt8();
for (var i = 0; i < customizationCount; ++i)
{
@@ -984,9 +994,9 @@ namespace Game.Networking.Packets
public byte NewSex;
public Array<ChrCustomizationChoice> Customizations = new(250);
public int CustomizedRace;
public sbyte CustomizedRace;
public int CustomizedChrModelID;
public int UnalteredVisualRaceID;
public sbyte UnalteredVisualRaceID;
}
public class BarberShopResult : ServerPacket
@@ -1301,13 +1311,13 @@ namespace Game.Networking.Packets
public struct WarbandGroupMember
{
public int WarbandScenePlacementID;
public uint WarbandScenePlacementID;
public int Type;
public ObjectGuid Guid;
public void Write(WorldPacket data)
{
data.WriteInt32(WarbandScenePlacementID);
data.WriteUInt32(WarbandScenePlacementID);
data.WriteInt32(Type);
if (Type == 0)
data.WritePackedGuid(Guid);
@@ -1317,19 +1327,27 @@ namespace Game.Networking.Packets
public class WarbandGroup
{
public ulong GroupID;
public byte Unknown_1100;
public int Flags; ///< enum WarbandGroupFlags { Collapsed = 1 }
public byte OrderIndex;
public uint WarbandSceneID;
public uint Flags; ///< enum WarbandGroupFlags { Collapsed = 1 }
public List<WarbandGroupMember> Members = new();
public string Name = "";
public void Write(WorldPacket data)
{
data.WriteUInt64(GroupID);
data.WriteUInt8(Unknown_1100);
data.WriteInt32(Flags);
data.WriteUInt8(OrderIndex);
data.WriteUInt32(WarbandSceneID);
data.WriteUInt32(Flags);
data.WriteInt32(Members.Count);
foreach (WarbandGroupMember member in Members)
member.Write(data);
data.WriteBits(Name.GetByteCount(), 9);
data.FlushBits();
data.WriteString(Name);
}
}
@@ -11,7 +11,7 @@ namespace Game.Networking.Packets
public override void Read()
{
Type = (ItemCollectionType)_worldPacket.ReadUInt32();
Type = (ItemCollectionType)_worldPacket.ReadUInt8();
Id = _worldPacket.ReadUInt32();
IsFavorite = _worldPacket.HasBit();
}
@@ -254,13 +254,13 @@ namespace Game.Networking.Packets
_worldPacket.WriteInt32(OriginalHonor);
_worldPacket.WriteInt32(Honor);
_worldPacket.WritePackedGuid(Target);
_worldPacket.WriteUInt32(Rank);
_worldPacket.WriteInt8(Rank);
}
public int OriginalHonor;
public int Honor;
public ObjectGuid Target;
public uint Rank;
public sbyte Rank;
}
class BreakTarget : ServerPacket
@@ -51,7 +51,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt32(FactionIndex);
_worldPacket.WriteInt8(FactionIndex);
_worldPacket.WriteInt32(Garrisons.Count);
_worldPacket.WriteInt32(FollowerSoftCaps.Count);
@@ -62,7 +62,7 @@ namespace Game.Networking.Packets
garrison.Write(_worldPacket);
}
public uint FactionIndex;
public sbyte FactionIndex;
public List<GarrisonInfo> Garrisons = new();
public List<FollowerSoftCapInfo> FollowerSoftCaps = new();
}
@@ -152,8 +152,8 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt32((uint)Result);
_worldPacket.WriteUInt32((uint)Command);
_worldPacket.WriteUInt8((byte)Result);
_worldPacket.WriteUInt8((byte)Command);
_worldPacket.WriteBits(Name.GetByteCount(), 8);
_worldPacket.WriteString(Name);
@@ -793,13 +793,13 @@ namespace Game.Networking.Packets
public class EnableBarberShop : ServerPacket
{
public byte CustomizationScope;
public uint CustomizationFeatureMask;
public EnableBarberShop() : base(ServerOpcodes.EnableBarberShop) { }
public override void Write()
{
_worldPacket.WriteUInt8(CustomizationScope);
_worldPacket.WriteUInt32(CustomizationFeatureMask);
}
}
@@ -92,6 +92,7 @@ namespace Game.Networking.Packets
data.ReadBit(); // RemoteTimeValid
bool hasInertia = data.HasBit();
bool hasAdvFlying = data.HasBit();
bool hasDriveStatus = data.HasBit();
if (hasTransport)
ReadTransportInfo(data, ref movementInfo.transport);
@@ -112,9 +113,9 @@ namespace Game.Networking.Packets
if (hasAdvFlying)
{
MovementInfo.AdvFlying advFlying = new();
advFlying.forwardVelocity = data.ReadFloat();
advFlying.upVelocity = data.ReadFloat();
movementInfo.advFlying = advFlying;
}
@@ -134,6 +135,19 @@ namespace Game.Networking.Packets
}
}
if (hasDriveStatus)
{
data.ResetBitPos();
MovementInfo.Drive driveStatus = new();
driveStatus.accelerating = data.HasBit();
driveStatus.drifting = data.HasBit();
driveStatus.speed = data.ReadFloat();
driveStatus.movementAngle = data.ReadFloat();
movementInfo.driveStatus = driveStatus;
}
return movementInfo;
}
@@ -145,6 +159,7 @@ namespace Game.Networking.Packets
bool hasSpline = false; // todo 6.x send this infos
bool hasInertia = movementInfo.inertia.HasValue;
bool hasAdvFlying = movementInfo.advFlying.HasValue;
bool hasDriveStatus = movementInfo.driveStatus.HasValue;
bool hasStandingOnGameObjectGUID = movementInfo.standingOnGameObjectGUID.HasValue;
data.WritePackedGuid(movementInfo.Guid);
@@ -178,6 +193,7 @@ namespace Game.Networking.Packets
data.WriteBit(false); // RemoteTimeValid
data.WriteBit(hasInertia);
data.WriteBit(hasAdvFlying);
data.WriteBit(hasDriveStatus);
data.FlushBits();
if (hasTransportData)
@@ -213,6 +229,14 @@ namespace Game.Networking.Packets
data.WriteFloat(movementInfo.jump.xyspeed);
}
}
if (hasDriveStatus)
{
data.WriteBit(movementInfo.driveStatus.Value.accelerating);
data.WriteBit(movementInfo.driveStatus.Value.drifting);
data.WriteFloat(movementInfo.driveStatus.Value.speed);
data.WriteFloat(movementInfo.driveStatus.Value.movementAngle);
}
}
public static void WriteCreateObjectSplineDataBlock(MoveSpline moveSpline, WorldPacket data)
@@ -360,6 +384,9 @@ namespace Game.Networking.Packets
data.WriteUInt32(movementForce.TransportID);
data.WriteFloat(movementForce.Magnitude);
data.WriteInt32(movementForce.MovementForceID);
data.WriteInt32(movementForce.Unknown1110_1);
data.WriteInt32(movementForce.Unused1110);
data.WriteUInt32(movementForce.Flags);
data.WriteBits((byte)movementForce.Type, 2);
data.FlushBits();
}
@@ -608,6 +635,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteXYZ(OldMapPosition);
_worldPacket.WriteBit(Ship.HasValue);
_worldPacket.WriteBit(TransferSpellID.HasValue);
_worldPacket.WriteBit(TaxiPathID.HasValue);
_worldPacket.FlushBits();
if (Ship.HasValue)
@@ -618,12 +646,16 @@ namespace Game.Networking.Packets
if (TransferSpellID.HasValue)
_worldPacket.WriteInt32(TransferSpellID.Value);
if (TaxiPathID.HasValue)
_worldPacket.WriteInt32(TaxiPathID.Value);
}
public int MapID = -1;
public Position OldMapPosition;
public ShipTransferPending? Ship;
public int? TransferSpellID;
public int? TaxiPathID;
public struct ShipTransferPending
{
@@ -1252,6 +1284,7 @@ namespace Game.Networking.Packets
data.WriteBit(MovementForceGUID.HasValue);
data.WriteBit(MovementInertiaID.HasValue);
data.WriteBit(MovementInertiaLifetimeMs.HasValue);
data.WriteBit(DriveCapabilityRecID.HasValue);
data.FlushBits();
if (@MovementForce != null)
@@ -1292,6 +1325,9 @@ namespace Game.Networking.Packets
if (MovementInertiaLifetimeMs.HasValue)
data.WriteUInt32(MovementInertiaLifetimeMs.Value);
if (DriveCapabilityRecID.HasValue)
data.WriteInt32(DriveCapabilityRecID.Value);
}
public ServerOpcodes MessageID;
@@ -1305,6 +1341,7 @@ namespace Game.Networking.Packets
public ObjectGuid? MovementForceGUID;
public int? MovementInertiaID;
public uint? MovementInertiaLifetimeMs;
public int? DriveCapabilityRecID;
}
}
@@ -13,6 +13,7 @@ namespace Game.Networking.Packets
public int BestRunLevel;
public int BestRunDurationMS;
public bool FinishedSuccess;
public byte Unknown1110;
public void Write(WorldPacket data)
{
@@ -20,6 +21,7 @@ namespace Game.Networking.Packets
data.WriteFloat(MapScore);
data.WriteInt32(BestRunLevel);
data.WriteInt32(BestRunDurationMS);
data.WriteUInt8(Unknown1110);
data.WriteBit(FinishedSuccess);
data.FlushBits();
}
@@ -50,7 +52,7 @@ namespace Game.Networking.Packets
public uint NativeRealmAddress;
public uint VirtualRealmAddress;
public int ChrSpecializationID;
public short RaceID;
public sbyte RaceID;
public int ItemLevel;
public int CovenantID;
public int SoulbindID;
@@ -64,7 +66,7 @@ namespace Game.Networking.Packets
data.WriteUInt32(NativeRealmAddress);
data.WriteUInt32(VirtualRealmAddress);
data.WriteInt32(ChrSpecializationID);
data.WriteInt16(RaceID);
data.WriteInt8(RaceID);
data.WriteInt32(ItemLevel);
data.WriteInt32(CovenantID);
data.WriteInt32(SoulbindID);
+2 -2
View File
@@ -340,7 +340,7 @@ namespace Game.Networking.Packets
public int GossipOptionID;
public GossipOptionNpc OptionNPC;
public byte OptionFlags;
public int OptionCost;
public ulong OptionCost;
public uint OptionLanguage;
public GossipOptionFlags Flags;
public int OrderIndex;
@@ -357,7 +357,7 @@ namespace Game.Networking.Packets
data.WriteInt32(GossipOptionID);
data.WriteUInt8((byte)OptionNPC);
data.WriteInt8((sbyte)OptionFlags);
data.WriteInt32(OptionCost);
data.WriteUInt64(OptionCost);
data.WriteUInt32(OptionLanguage);
data.WriteInt32((int)Flags);
data.WriteInt32(OrderIndex);
@@ -195,9 +195,14 @@ namespace Game.Networking.Packets
class GroupUninvite : ServerPacket
{
public byte Reason;
public GroupUninvite() : base(ServerOpcodes.GroupUninvite) { }
public override void Write() { }
public override void Write()
{
_worldPacket.WriteUInt8(Reason);
}
}
class RequestPartyMemberStats : ClientPacket
@@ -365,7 +370,7 @@ namespace Game.Networking.Packets
}
MemberStats.ChromieTime.ConditionalFlags = player.m_playerData.CtrOptions.GetValue().ConditionalFlags;
MemberStats.ChromieTime.FactionGroup = (int)player.m_playerData.CtrOptions.GetValue().FactionGroup;
MemberStats.ChromieTime.FactionGroup = (sbyte)player.m_playerData.CtrOptions.GetValue().FactionGroup;
MemberStats.ChromieTime.ChromieTimeExpansionMask = player.m_playerData.CtrOptions.GetValue().ChromieTimeExpansionMask;
}
@@ -1167,13 +1172,13 @@ namespace Game.Networking.Packets
public struct CTROptions
{
public uint ConditionalFlags;
public int FactionGroup;
public sbyte FactionGroup;
public uint ChromieTimeExpansionMask;
public void Write(WorldPacket data)
{
data.WriteUInt32(ConditionalFlags);
data.WriteInt32(FactionGroup);
data.WriteInt8(FactionGroup);
data.WriteUInt32(ChromieTimeExpansionMask);
}
}
@@ -12,6 +12,7 @@ namespace Game.Networking.Packets
public int ItemModifiedAppearanceID;
public int TransmogIllusionID;
public int ToyID;
public int WarbandSceneID;
public int Price;
public int OriginalPrice;
public long AvailableUntil;
@@ -30,6 +31,7 @@ namespace Game.Networking.Packets
data.WriteInt32(Price);
data.WriteInt32(OriginalPrice);
data.WriteInt64(AvailableUntil);
data.WriteInt32(WarbandSceneID);
data.WriteBit(Disabled);
data.WriteBit(DoesNotExpire);
data.FlushBits();
+1 -1
View File
@@ -143,7 +143,7 @@ namespace Game.Networking.Packets
public override void Write()
{
_worldPacket.WriteUInt8((byte)Result);
_worldPacket.WriteInt32((int)Result);
}
public StableResult Result;
@@ -87,9 +87,9 @@ namespace Game.Networking.Packets
for (var i = 0; i < 2; ++i)
_worldPacket.WriteUInt32(Stats.Flags[i]);
_worldPacket.WriteInt32(Stats.CreatureType);
_worldPacket.WriteInt8(Stats.CreatureType);
_worldPacket.WriteInt32(Stats.CreatureFamily);
_worldPacket.WriteInt32(Stats.Classification);
_worldPacket.WriteInt8(Stats.Classification);
for (var i = 0; i < SharedConst.MaxCreatureKillCredit; ++i)
_worldPacket.WriteUInt32(Stats.ProxyCreatureID[i]);
@@ -750,9 +750,9 @@ namespace Game.Networking.Packets
public string Title;
public string TitleAlt;
public string CursorName;
public int CreatureType;
public sbyte CreatureType;
public int CreatureFamily;
public int Classification;
public sbyte Classification;
public CreatureDisplayStats Display = new();
public float HpMulti;
public float EnergyMulti;
@@ -67,7 +67,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteUInt8((byte)Status);
_worldPacket.WriteUInt32(AreaID);
_worldPacket.WriteUInt32(Level);
_worldPacket.WriteUInt32((uint)ClassID);
_worldPacket.WriteInt8((sbyte)ClassID);
_worldPacket.WriteBits(Notes.GetByteCount(), 10);
_worldPacket.FlushBits();
_worldPacket.WriteString(Notes);
@@ -200,7 +200,7 @@ namespace Game.Networking.Packets
data.WriteUInt8((byte)Status);
data.WriteUInt32(AreaID);
data.WriteUInt32(Level);
data.WriteUInt32((uint)ClassID);
data.WriteInt8((sbyte)ClassID);
data.WriteBits(Notes.GetByteCount(), 10);
data.FlushBits();
data.WriteString(Notes);
@@ -1620,6 +1620,7 @@ namespace Game.Networking.Packets
data.WriteUInt16(CastLevel);
data.WriteUInt8(Applications);
data.WriteInt32(ContentTuningID);
data.WriteVector3(DstLocation);
data.WriteBit(CastUnit.HasValue);
data.WriteBit(Duration.HasValue);
data.WriteBit(Remaining.HasValue);
@@ -1665,13 +1666,14 @@ namespace Game.Networking.Packets
float? TimeMod;
public List<float> Points = new();
public List<float> EstimatedPoints = new();
public Vector3 DstLocation;
}
public struct AuraInfo
{
public void Write(WorldPacket data)
{
data.WriteUInt8(Slot);
data.WriteUInt16(Slot);
data.WriteBit(AuraData != null);
data.FlushBits();
@@ -1679,7 +1681,7 @@ namespace Game.Networking.Packets
AuraData.Write(data);
}
public byte Slot;
public ushort Slot;
public AuraDataInfo AuraData;
}
@@ -42,10 +42,16 @@ namespace Game.Networking.Packets
_worldPacket.WriteInt16(NameLookupTelemetryInterval);
_worldPacket.WriteUInt32((uint)NotFoundCacheTimeSeconds.TotalSeconds);
_worldPacket.WriteUInt32(RealmPvpTypeOverride);
_worldPacket.WriteInt32(AddonChatThrottle.MaxTries);
_worldPacket.WriteInt32(AddonChatThrottle.TriesRestoredPerSecond);
_worldPacket.WriteInt32(AddonChatThrottle.UsedTriesPerMessage);
_worldPacket.WriteFloat(AddonPerformanceMsgWarning);
_worldPacket.WriteFloat(AddonPerformanceMsgError);
_worldPacket.WriteFloat(AddonPerformanceMsgOverall);
foreach (GameRuleValuePair gameRuleValue in GameRules)
gameRuleValue.Write(_worldPacket);
@@ -108,6 +114,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteBit(false); // unused 11.0.7
_worldPacket.WriteBit(LobbyMatchmakerQueueFromMainlineEnabled);
_worldPacket.WriteBit(CanSendLobbyMatchmakerPartyCustomizations);
_worldPacket.WriteBit(AddonProfilerEnabled);
_worldPacket.FlushBits();
@@ -216,6 +223,7 @@ namespace Game.Networking.Packets
public bool IsAccountCurrencyTransferEnabled;
public bool LobbyMatchmakerQueueFromMainlineEnabled;
public bool CanSendLobbyMatchmakerPartyCustomizations;
public bool AddonProfilerEnabled;
public SocialQueueConfig QuickJoinConfig;
public SquelchInfo Squelch;
@@ -225,6 +233,10 @@ namespace Game.Networking.Packets
public int RemainingTimerunningSeasonSeconds;
public string Unknown1027; // related to movement lua functions used by keybinds
public AddonChatThrottleParams AddonChatThrottle;
public uint RealmPvpTypeOverride; ///< Use Cfg_Configs value = 0, ForceEnabled = 1, ForceDisabled = 2
public float AddonPerformanceMsgWarning;
public float AddonPerformanceMsgError;
public float AddonPerformanceMsgOverall;
public struct SessionAlertConfig
{
+2 -2
View File
@@ -80,12 +80,12 @@ namespace Game.Networking.Packets
{
public void Read(WorldPacket data)
{
FactionGroup = data.ReadInt32();
FactionGroup = data.ReadUInt8();
Locale = data.ReadInt32();
RequesterVirtualRealmAddress = data.ReadUInt32();
}
public int FactionGroup;
public byte FactionGroup;
public int Locale;
public uint RequesterVirtualRealmAddress;
}