Core: Updated to 11.1.0
Port From (https://github.com/TrinityCore/TrinityCore/commit/23624ed75abc8cbb77bb2e24a08e0836e4c41db5)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user