Core: Update to 10.1.5
Port From (https://github.com/TrinityCore/TrinityCore/commit/0cea730fa23473a85c47451c3bd13df816f2b6e4)
This commit is contained in:
@@ -58,6 +58,7 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteUInt32(CriteriaID);
|
||||
_worldPacket.WriteUInt64(Quantity);
|
||||
_worldPacket.WritePackedGuid(PlayerGUID);
|
||||
_worldPacket.WriteUInt32(Unused_10_1_5);
|
||||
_worldPacket.WriteUInt32(Flags);
|
||||
_worldPacket.WritePackedTime(CurrentTime);
|
||||
_worldPacket.WriteInt64(ElapsedTime);
|
||||
@@ -72,6 +73,7 @@ namespace Game.Networking.Packets
|
||||
public uint CriteriaID;
|
||||
public ulong Quantity;
|
||||
public ObjectGuid PlayerGUID;
|
||||
public uint Unused_10_1_5;
|
||||
public uint Flags;
|
||||
public long CurrentTime;
|
||||
public long ElapsedTime;
|
||||
@@ -178,6 +180,7 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteUInt32(0); // this is a hack. this is a packed time written as int64 (progress.DateUpdated)
|
||||
_worldPacket.WriteUInt64(progress.Quantity);
|
||||
_worldPacket.WritePackedGuid(progress.PlayerGUID);
|
||||
_worldPacket.WriteInt32(progress.Unused_10_1_5);
|
||||
_worldPacket.WriteInt32(progress.Flags);
|
||||
}
|
||||
}
|
||||
@@ -318,10 +321,11 @@ namespace Game.Networking.Packets
|
||||
data.WriteUInt32(Id);
|
||||
data.WriteUInt64(Quantity);
|
||||
data.WritePackedGuid(Player);
|
||||
data.WriteUInt32(Unused_10_1_5);
|
||||
data.WriteUInt32(Flags);
|
||||
data.WritePackedTime(Date);
|
||||
data.WriteInt64(TimeFromStart);
|
||||
data.WriteInt64(TimeFromCreate);
|
||||
data.WriteBits(Flags, 4);
|
||||
data.WriteBit(RafAcceptanceID.HasValue);
|
||||
data.FlushBits();
|
||||
|
||||
@@ -332,6 +336,7 @@ namespace Game.Networking.Packets
|
||||
public uint Id;
|
||||
public ulong Quantity;
|
||||
public ObjectGuid Player;
|
||||
public uint Unused_10_1_5;
|
||||
public uint Flags;
|
||||
public long Date;
|
||||
public long TimeFromStart;
|
||||
@@ -347,6 +352,7 @@ namespace Game.Networking.Packets
|
||||
public long DateUpdated;
|
||||
public ulong Quantity;
|
||||
public ObjectGuid PlayerGUID;
|
||||
public int Unused_10_1_5;
|
||||
public int Flags;
|
||||
}
|
||||
|
||||
|
||||
@@ -517,7 +517,8 @@ namespace Game.Networking.Packets
|
||||
class AuctionHelloResponse : ServerPacket
|
||||
{
|
||||
public ObjectGuid Guid;
|
||||
public uint DeliveryDelay;
|
||||
public uint PurchasedItemDeliveryDelay;
|
||||
public uint CancelledItemDeliveryDelay;
|
||||
public bool OpenForBusiness = true;
|
||||
|
||||
public AuctionHelloResponse() : base(ServerOpcodes.AuctionHelloResponse) { }
|
||||
@@ -525,7 +526,8 @@ namespace Game.Networking.Packets
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WritePackedGuid(Guid);
|
||||
_worldPacket.WriteUInt32(DeliveryDelay);
|
||||
_worldPacket.WriteUInt32(PurchasedItemDeliveryDelay);
|
||||
_worldPacket.WriteUInt32(CancelledItemDeliveryDelay);
|
||||
_worldPacket.WriteBit(OpenForBusiness);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
@@ -133,6 +133,7 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteBit(SuccessInfo.NumPlayersHorde.HasValue);
|
||||
_worldPacket.WriteBit(SuccessInfo.NumPlayersAlliance.HasValue);
|
||||
_worldPacket.WriteBit(SuccessInfo.ExpansionTrialExpiration.HasValue);
|
||||
_worldPacket.WriteBit(SuccessInfo.NewBuildKeys != null);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
{
|
||||
@@ -155,6 +156,15 @@ namespace Game.Networking.Packets
|
||||
if(SuccessInfo.ExpansionTrialExpiration.HasValue)
|
||||
_worldPacket.WriteInt64(SuccessInfo.ExpansionTrialExpiration.Value);
|
||||
|
||||
if (SuccessInfo.NewBuildKeys != null)
|
||||
{
|
||||
for (int i = 0; i < 16; ++i)
|
||||
{
|
||||
_worldPacket.WriteUInt8(SuccessInfo.NewBuildKeys.NewBuildKey[i]);
|
||||
_worldPacket.WriteUInt8(SuccessInfo.NewBuildKeys.SomeKey[i]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (VirtualRealmInfo virtualRealm in SuccessInfo.VirtualRealms)
|
||||
virtualRealm.Write(_worldPacket);
|
||||
|
||||
@@ -208,6 +218,7 @@ namespace Game.Networking.Packets
|
||||
public ushort? NumPlayersHorde; // number of horde players in this realm. @todo implement
|
||||
public ushort? NumPlayersAlliance; // number of alliance players in this realm. @todo implement
|
||||
public long? ExpansionTrialExpiration; // expansion trial expiration unix timestamp
|
||||
public NewBuild NewBuildKeys;
|
||||
|
||||
public struct GameTime
|
||||
{
|
||||
@@ -216,6 +227,12 @@ namespace Game.Networking.Packets
|
||||
public uint Unknown735;
|
||||
public bool InGameRoom;
|
||||
}
|
||||
|
||||
public class NewBuild
|
||||
{
|
||||
public Array<byte> NewBuildKey = new Array<byte>(16);
|
||||
public Array<byte> SomeKey = new Array<byte>(16);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -485,15 +485,8 @@ namespace Game.Networking.Packets
|
||||
DeserterPenalty.Write(_worldPacket);
|
||||
}
|
||||
|
||||
public enum MatchState
|
||||
{
|
||||
InProgress = 1,
|
||||
Complete = 3,
|
||||
Inactive = 4
|
||||
}
|
||||
|
||||
public uint MapID;
|
||||
public MatchState State = MatchState.Inactive;
|
||||
public PVPMatchState State = PVPMatchState.Inactive;
|
||||
public long StartTime;
|
||||
public int Duration;
|
||||
public RatedMatchDeserterPenalty DeserterPenalty;
|
||||
@@ -503,6 +496,21 @@ namespace Game.Networking.Packets
|
||||
public bool AffectsRating;
|
||||
}
|
||||
|
||||
class PVPMatchSetState : ServerPacket
|
||||
{
|
||||
public PVPMatchSetState(PVPMatchState state) : base(ServerOpcodes.PvpMatchSetState)
|
||||
{
|
||||
State = state;
|
||||
}
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WriteUInt8((byte)State);
|
||||
}
|
||||
|
||||
PVPMatchState State;
|
||||
}
|
||||
|
||||
class PVPMatchComplete : ServerPacket
|
||||
{
|
||||
public PVPMatchComplete() : base(ServerOpcodes.PvpMatchComplete, ConnectionType.Instance) { }
|
||||
@@ -685,7 +693,7 @@ namespace Game.Networking.Packets
|
||||
data.WriteUInt32(HealingDone);
|
||||
data.WriteInt32(Stats.Count);
|
||||
data.WriteInt32(PrimaryTalentTree);
|
||||
data.WriteInt32(Sex);
|
||||
data.WriteInt8(Sex);
|
||||
data.WriteUInt32((uint)PlayerRace);
|
||||
data.WriteInt32(PlayerClass);
|
||||
data.WriteInt32(CreatureID);
|
||||
@@ -738,7 +746,7 @@ namespace Game.Networking.Packets
|
||||
public uint? PostMatchMMR;
|
||||
public List<PVPMatchPlayerPVPStat> Stats = new();
|
||||
public int PrimaryTalentTree;
|
||||
public int Sex;
|
||||
public sbyte Sex;
|
||||
public Race PlayerRace;
|
||||
public int PlayerClass;
|
||||
public int CreatureID;
|
||||
|
||||
@@ -868,6 +868,7 @@ namespace Game.Networking.Packets
|
||||
var customizationCount = _worldPacket.ReadUInt32();
|
||||
NewSex = _worldPacket.ReadUInt8();
|
||||
CustomizedRace = _worldPacket.ReadInt32();
|
||||
CustomizedChrModelID = _worldPacket.ReadInt32();
|
||||
|
||||
for (var i = 0; i < customizationCount; ++i)
|
||||
{
|
||||
@@ -884,6 +885,7 @@ namespace Game.Networking.Packets
|
||||
public byte NewSex;
|
||||
public Array<ChrCustomizationChoice> Customizations = new(125);
|
||||
public int CustomizedRace;
|
||||
public int CustomizedChrModelID;
|
||||
}
|
||||
|
||||
public class BarberShopResult : ServerPacket
|
||||
|
||||
@@ -62,6 +62,11 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteInt32(Absorbed);
|
||||
_worldPacket.WriteInt32(Resisted);
|
||||
_worldPacket.WriteInt32(ShieldBlock);
|
||||
_worldPacket.WriteInt32(WorldTextViewers.Count);
|
||||
_worldPacket.WriteInt32(Supporters.Count);
|
||||
|
||||
foreach (SpellSupportInfo supportInfo in Supporters)
|
||||
supportInfo.Write(_worldPacket);
|
||||
|
||||
_worldPacket.WriteBit(Periodic);
|
||||
_worldPacket.WriteBits(Flags, 7);
|
||||
@@ -69,6 +74,10 @@ namespace Game.Networking.Packets
|
||||
WriteLogDataBit();
|
||||
_worldPacket.WriteBit(ContentTuning != null);
|
||||
FlushBits();
|
||||
|
||||
foreach (CombatWorldTextViewerInfo worldTextViewer in WorldTextViewers)
|
||||
worldTextViewer.Write(_worldPacket);
|
||||
|
||||
WriteLogData();
|
||||
if (ContentTuning != null)
|
||||
ContentTuning.Write(_worldPacket);
|
||||
@@ -90,6 +99,8 @@ namespace Game.Networking.Packets
|
||||
public int Flags;
|
||||
// Optional<SpellNonMeleeDamageLogDebugInfo> DebugInfo;
|
||||
public ContentTuningParams ContentTuning;
|
||||
public List<CombatWorldTextViewerInfo> WorldTextViewers = new();
|
||||
public List<SpellSupportInfo> Supporters = new();
|
||||
}
|
||||
|
||||
class EnvironmentalDamageLog : CombatLogServerPacket
|
||||
@@ -193,6 +204,10 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteInt32(OriginalHeal);
|
||||
_worldPacket.WriteUInt32(OverHeal);
|
||||
_worldPacket.WriteUInt32(Absorbed);
|
||||
_worldPacket.WriteInt32(Supporters.Count);
|
||||
|
||||
foreach (SpellSupportInfo supportInfo in Supporters)
|
||||
supportInfo.Write(_worldPacket);
|
||||
|
||||
_worldPacket.WriteBit(Crit);
|
||||
|
||||
@@ -225,6 +240,7 @@ namespace Game.Networking.Packets
|
||||
public float? CritRollMade;
|
||||
public float? CritRollNeeded;
|
||||
public ContentTuningParams ContentTuning;
|
||||
public List<SpellSupportInfo> Supporters = new();
|
||||
}
|
||||
|
||||
class SpellPeriodicAuraLog : CombatLogServerPacket
|
||||
@@ -267,6 +283,10 @@ namespace Game.Networking.Packets
|
||||
data.WriteUInt32(SchoolMaskOrPower);
|
||||
data.WriteUInt32(AbsorbedOrAmplitude);
|
||||
data.WriteUInt32(Resisted);
|
||||
data.WriteInt32(Supporters.Count);
|
||||
|
||||
foreach (SpellSupportInfo supportInfo in Supporters)
|
||||
supportInfo.Write(data);
|
||||
|
||||
data.WriteBit(Crit);
|
||||
data.WriteBit(DebugInfo.HasValue);
|
||||
@@ -293,6 +313,7 @@ namespace Game.Networking.Packets
|
||||
public bool Crit;
|
||||
public PeriodicalAuraLogEffectDebugInfo? DebugInfo;
|
||||
public ContentTuningParams ContentTuning;
|
||||
public List<SpellSupportInfo> Supporters = new();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -594,6 +615,10 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WritePackedGuid(Caster);
|
||||
_worldPacket.WriteInt32(Absorbed);
|
||||
_worldPacket.WriteUInt32(OriginalDamage);
|
||||
_worldPacket.WriteInt32(Supporters.Count);
|
||||
|
||||
foreach (SpellSupportInfo supportInfo in Supporters)
|
||||
supportInfo.Write(_worldPacket);
|
||||
|
||||
_worldPacket.WriteBit(Unk);
|
||||
WriteLogDataBit();
|
||||
@@ -610,6 +635,7 @@ namespace Game.Networking.Packets
|
||||
public int Absorbed;
|
||||
public uint OriginalDamage;
|
||||
public bool Unk;
|
||||
public List<SpellSupportInfo> Supporters = new();
|
||||
}
|
||||
|
||||
class SpellHealAbsorbLog : ServerPacket
|
||||
|
||||
@@ -14,9 +14,11 @@ namespace Game.Networking.Packets
|
||||
public override void Read()
|
||||
{
|
||||
TargetGUID = _worldPacket.ReadPackedGuid();
|
||||
ToTheDeath = _worldPacket.HasBit();
|
||||
}
|
||||
|
||||
public ObjectGuid TargetGUID;
|
||||
public bool ToTheDeath;
|
||||
}
|
||||
|
||||
public class CanDuelResult : ServerPacket
|
||||
@@ -85,11 +87,14 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WritePackedGuid(ArbiterGUID);
|
||||
_worldPacket.WritePackedGuid(RequestedByGUID);
|
||||
_worldPacket.WritePackedGuid(RequestedByWowAccount);
|
||||
_worldPacket.WriteBit(ToTheDeath);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
public ObjectGuid ArbiterGUID;
|
||||
public ObjectGuid RequestedByGUID;
|
||||
public ObjectGuid RequestedByWowAccount;
|
||||
public bool ToTheDeath;
|
||||
}
|
||||
|
||||
public class DuelResponse : ClientPacket
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
using Framework.Constants;
|
||||
using Framework.Dynamic;
|
||||
using Game.Entities;
|
||||
using Game.Miscellaneous;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@@ -1705,12 +1706,20 @@ namespace Game.Networking.Packets
|
||||
|
||||
public class GuildRewardItem
|
||||
{
|
||||
public uint ItemID;
|
||||
public uint Unk4;
|
||||
public List<uint> AchievementsRequired = new();
|
||||
public RaceMask<ulong> RaceMask;
|
||||
public int MinGuildLevel;
|
||||
public int MinGuildRep;
|
||||
public ulong Cost;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteUInt32(ItemID);
|
||||
data.WriteUInt32(Unk4);
|
||||
data.WriteInt32(AchievementsRequired.Count);
|
||||
data.WriteUInt64(RaceMask);
|
||||
data.WriteUInt64(RaceMask.RawValue);
|
||||
data.WriteInt32(MinGuildLevel);
|
||||
data.WriteInt32(MinGuildRep);
|
||||
data.WriteUInt64(Cost);
|
||||
@@ -1718,14 +1727,6 @@ namespace Game.Networking.Packets
|
||||
foreach (var achievementId in AchievementsRequired)
|
||||
data.WriteUInt32(achievementId);
|
||||
}
|
||||
|
||||
public uint ItemID;
|
||||
public uint Unk4;
|
||||
public List<uint> AchievementsRequired = new();
|
||||
public ulong RaceMask;
|
||||
public int MinGuildLevel;
|
||||
public int MinGuildRep;
|
||||
public ulong Cost;
|
||||
}
|
||||
|
||||
public class GuildBankItemInfo
|
||||
|
||||
@@ -38,8 +38,8 @@ namespace Game.Networking.Packets
|
||||
Quantity = _worldPacket.ReadInt32();
|
||||
Muid = _worldPacket.ReadUInt32();
|
||||
Slot = _worldPacket.ReadUInt32();
|
||||
ItemType = (ItemVendorType)_worldPacket.ReadInt32();
|
||||
Item.Read(_worldPacket);
|
||||
ItemType = (ItemVendorType)_worldPacket.ReadBits<int>(3);
|
||||
}
|
||||
|
||||
public ObjectGuid VendorGUID;
|
||||
|
||||
@@ -250,6 +250,10 @@ namespace Game.Networking.Packets
|
||||
case MailMessageType.Creature:
|
||||
case MailMessageType.Gameobject:
|
||||
case MailMessageType.Calendar:
|
||||
case MailMessageType.Blackmarket:
|
||||
case MailMessageType.CommerceAuction:
|
||||
case MailMessageType.Auction2:
|
||||
case MailMessageType.ArtisansConsortium:
|
||||
AltSenderID = (int)mail.sender;
|
||||
break;
|
||||
}
|
||||
@@ -353,7 +357,7 @@ namespace Game.Networking.Packets
|
||||
public MailListEntry(Mail mail, Player player)
|
||||
{
|
||||
MailID = mail.messageID;
|
||||
SenderType = (byte)mail.messageType;
|
||||
SenderType = mail.messageType;
|
||||
|
||||
switch (mail.messageType)
|
||||
{
|
||||
@@ -364,6 +368,10 @@ namespace Game.Networking.Packets
|
||||
case MailMessageType.Gameobject:
|
||||
case MailMessageType.Auction:
|
||||
case MailMessageType.Calendar:
|
||||
case MailMessageType.Blackmarket:
|
||||
case MailMessageType.CommerceAuction:
|
||||
case MailMessageType.Auction2:
|
||||
case MailMessageType.ArtisansConsortium:
|
||||
AltSenderID = (uint)mail.sender;
|
||||
break;
|
||||
}
|
||||
@@ -388,7 +396,7 @@ namespace Game.Networking.Packets
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteUInt64(MailID);
|
||||
data.WriteUInt8(SenderType);
|
||||
data.WriteUInt32((uint)SenderType);
|
||||
data.WriteUInt64(Cod);
|
||||
data.WriteInt32(StationeryID);
|
||||
data.WriteUInt64(SentMoney);
|
||||
@@ -397,28 +405,39 @@ namespace Game.Networking.Packets
|
||||
data.WriteInt32(MailTemplateID);
|
||||
data.WriteInt32(Attachments.Count);
|
||||
|
||||
data.WriteBit(SenderCharacter.HasValue);
|
||||
data.WriteBit(AltSenderID.HasValue);
|
||||
switch (SenderType)
|
||||
{
|
||||
case MailMessageType.Normal:
|
||||
data.WritePackedGuid(SenderCharacter);
|
||||
break;
|
||||
case MailMessageType.Auction:
|
||||
case MailMessageType.Creature:
|
||||
case MailMessageType.Gameobject:
|
||||
case MailMessageType.Calendar:
|
||||
case MailMessageType.Blackmarket:
|
||||
case MailMessageType.CommerceAuction:
|
||||
case MailMessageType.Auction2:
|
||||
case MailMessageType.ArtisansConsortium:
|
||||
data.WriteUInt32(AltSenderID);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
data.WriteBits(Subject.GetByteCount(), 8);
|
||||
data.WriteBits(Body.GetByteCount(), 13);
|
||||
data.FlushBits();
|
||||
|
||||
Attachments.ForEach(p => p.Write(data));
|
||||
|
||||
if (SenderCharacter.HasValue)
|
||||
data.WritePackedGuid(SenderCharacter.Value);
|
||||
|
||||
if (AltSenderID.HasValue)
|
||||
data.WriteUInt32(AltSenderID.Value);
|
||||
|
||||
data.WriteString(Subject);
|
||||
data.WriteString(Body);
|
||||
}
|
||||
|
||||
public ulong MailID;
|
||||
public byte SenderType;
|
||||
public ObjectGuid? SenderCharacter;
|
||||
public uint? AltSenderID;
|
||||
public MailMessageType SenderType;
|
||||
public ObjectGuid SenderCharacter;
|
||||
public uint AltSenderID;
|
||||
public ulong Cod;
|
||||
public int StationeryID;
|
||||
public ulong SentMoney;
|
||||
|
||||
@@ -1338,7 +1338,7 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteBit(BonusRoll);
|
||||
Item.Write(_worldPacket);
|
||||
_worldPacket.WriteInt32(LootSpec);
|
||||
_worldPacket.WriteInt32((int)Gender);
|
||||
_worldPacket.WriteInt8((sbyte)Gender);
|
||||
break;
|
||||
case DisplayToastType.NewCurrency:
|
||||
_worldPacket.WriteUInt32(CurrencyID);
|
||||
|
||||
@@ -394,12 +394,12 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
data.WriteUInt64(Price);
|
||||
data.WriteInt32(MuID);
|
||||
data.WriteInt32(Type);
|
||||
data.WriteInt32(Durability);
|
||||
data.WriteInt32(StackCount);
|
||||
data.WriteInt32(Quantity);
|
||||
data.WriteInt32(ExtendedCostID);
|
||||
data.WriteInt32(PlayerConditionFailed);
|
||||
data.WriteBits(Type, 3);
|
||||
data.WriteBit(Locked);
|
||||
data.WriteBit(DoNotFilterOnVendor);
|
||||
data.WriteBit(Refundable);
|
||||
|
||||
@@ -124,32 +124,6 @@ namespace Game.Networking.Packets
|
||||
public List<PetSpellHistory> SpellHistory = new();
|
||||
}
|
||||
|
||||
class PetStableList : ServerPacket
|
||||
{
|
||||
public PetStableList() : base(ServerOpcodes.PetStableList, ConnectionType.Instance) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WritePackedGuid(StableMaster);
|
||||
|
||||
_worldPacket.WriteInt32(Pets.Count);
|
||||
foreach (PetStableInfo pet in Pets)
|
||||
{
|
||||
_worldPacket.WriteUInt32(pet.PetSlot);
|
||||
_worldPacket.WriteUInt32(pet.PetNumber);
|
||||
_worldPacket.WriteUInt32(pet.CreatureID);
|
||||
_worldPacket.WriteUInt32(pet.DisplayID);
|
||||
_worldPacket.WriteUInt32(pet.ExperienceLevel);
|
||||
_worldPacket.WriteUInt8((byte)pet.PetFlags);
|
||||
_worldPacket.WriteBits(pet.PetName.GetByteCount(), 8);
|
||||
_worldPacket.WriteString(pet.PetName);
|
||||
}
|
||||
}
|
||||
|
||||
public ObjectGuid StableMaster;
|
||||
public List<PetStableInfo> Pets = new();
|
||||
}
|
||||
|
||||
class PetStableResult : ServerPacket
|
||||
{
|
||||
public PetStableResult() : base(ServerOpcodes.PetStableResult, ConnectionType.Instance) { }
|
||||
@@ -382,17 +356,6 @@ namespace Game.Networking.Packets
|
||||
public sbyte ConsumedCharges;
|
||||
}
|
||||
|
||||
struct PetStableInfo
|
||||
{
|
||||
public uint PetSlot;
|
||||
public uint PetNumber;
|
||||
public uint CreatureID;
|
||||
public uint DisplayID;
|
||||
public uint ExperienceLevel;
|
||||
public PetStableinfo PetFlags;
|
||||
public string PetName;
|
||||
}
|
||||
|
||||
struct PetRenameData
|
||||
{
|
||||
public ObjectGuid PetGUID;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
using Framework.Constants;
|
||||
using Framework.Dynamic;
|
||||
using Game.Entities;
|
||||
using Game.Miscellaneous;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@@ -53,7 +54,7 @@ namespace Game.Networking.Packets
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WritePackedGuid(QuestGiver.Guid);
|
||||
_worldPacket.WriteUInt32((uint)QuestGiver.Status);
|
||||
_worldPacket.WriteUInt64((ulong)QuestGiver.Status);
|
||||
}
|
||||
|
||||
public QuestGiverInfo QuestGiver;
|
||||
@@ -69,7 +70,7 @@ namespace Game.Networking.Packets
|
||||
foreach (QuestGiverInfo questGiver in QuestGiver)
|
||||
{
|
||||
_worldPacket.WritePackedGuid(questGiver.Guid);
|
||||
_worldPacket.WriteUInt32((uint)questGiver.Status);
|
||||
_worldPacket.WriteUInt64((ulong)questGiver.Status);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,10 +191,10 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteUInt32(Info.CompleteSoundKitID);
|
||||
|
||||
_worldPacket.WriteUInt32(Info.AreaGroupID);
|
||||
_worldPacket.WriteUInt32(Info.TimeAllowed);
|
||||
_worldPacket.WriteInt64(Info.TimeAllowed);
|
||||
|
||||
_worldPacket.WriteInt32(Info.Objectives.Count);
|
||||
_worldPacket.WriteInt64(Info.AllowableRaces);
|
||||
_worldPacket.WriteUInt64(Info.AllowableRaces.RawValue);
|
||||
_worldPacket.WriteInt32(Info.TreasurePickerID);
|
||||
_worldPacket.WriteInt32(Info.Expansion);
|
||||
_worldPacket.WriteInt32(Info.ManagedWorldStateID);
|
||||
@@ -1037,7 +1038,7 @@ namespace Game.Networking.Packets
|
||||
public float POIx;
|
||||
public float POIy;
|
||||
public uint POIPriority;
|
||||
public long AllowableRaces = -1;
|
||||
public RaceMask<ulong> AllowableRaces = new (0xFFFFFFFFFFFFFFFF);
|
||||
public string LogTitle;
|
||||
public string LogDescription;
|
||||
public string QuestDescription;
|
||||
@@ -1059,7 +1060,7 @@ namespace Game.Networking.Packets
|
||||
public uint AcceptedSoundKitID;
|
||||
public uint CompleteSoundKitID;
|
||||
public uint AreaGroupID;
|
||||
public uint TimeAllowed;
|
||||
public long TimeAllowed;
|
||||
public int TreasurePickerID;
|
||||
public int Expansion;
|
||||
public int ManagedWorldStateID;
|
||||
|
||||
@@ -10,10 +10,25 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
class ScenarioState : ServerPacket
|
||||
{
|
||||
public ObjectGuid ScenarioGUID;
|
||||
public int ScenarioID;
|
||||
public int CurrentStep = -1;
|
||||
public uint DifficultyID;
|
||||
public uint WaveCurrent;
|
||||
public uint WaveMax;
|
||||
public uint TimerDuration;
|
||||
public List<CriteriaProgressPkt> CriteriaProgress = new();
|
||||
public List<BonusObjectiveData> BonusObjectives = new();
|
||||
public List<uint> PickedSteps = new();
|
||||
public List<ScenarioSpellUpdate> Spells = new();
|
||||
public ObjectGuid PlayerGUID;
|
||||
public bool ScenarioComplete;
|
||||
|
||||
public ScenarioState() : base(ServerOpcodes.ScenarioState, ConnectionType.Instance) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WritePackedGuid(ScenarioGUID);
|
||||
_worldPacket.WriteInt32(ScenarioID);
|
||||
_worldPacket.WriteInt32(CurrentStep);
|
||||
_worldPacket.WriteUInt32(DifficultyID);
|
||||
@@ -41,35 +56,24 @@ namespace Game.Networking.Packets
|
||||
foreach (ScenarioSpellUpdate spell in Spells)
|
||||
spell.Write(_worldPacket);
|
||||
}
|
||||
|
||||
public int ScenarioID;
|
||||
public int CurrentStep = -1;
|
||||
public uint DifficultyID;
|
||||
public uint WaveCurrent;
|
||||
public uint WaveMax;
|
||||
public uint TimerDuration;
|
||||
public List<CriteriaProgressPkt> CriteriaProgress = new();
|
||||
public List<BonusObjectiveData> BonusObjectives = new();
|
||||
public List<uint> PickedSteps = new();
|
||||
public List<ScenarioSpellUpdate> Spells = new();
|
||||
public ObjectGuid PlayerGUID;
|
||||
public bool ScenarioComplete = false;
|
||||
}
|
||||
|
||||
class ScenarioProgressUpdate : ServerPacket
|
||||
{
|
||||
public CriteriaProgressPkt CriteriaProgress;
|
||||
|
||||
public ScenarioProgressUpdate() : base(ServerOpcodes.ScenarioProgressUpdate, ConnectionType.Instance) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
CriteriaProgress.Write(_worldPacket);
|
||||
}
|
||||
|
||||
public CriteriaProgressPkt CriteriaProgress;
|
||||
}
|
||||
|
||||
class ScenarioCompleted : ServerPacket
|
||||
{
|
||||
public uint ScenarioID;
|
||||
|
||||
public ScenarioCompleted(uint scenarioId) : base(ServerOpcodes.ScenarioCompleted, ConnectionType.Instance)
|
||||
{
|
||||
ScenarioID = scenarioId;
|
||||
@@ -79,29 +83,31 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
_worldPacket.WriteUInt32(ScenarioID);
|
||||
}
|
||||
|
||||
public uint ScenarioID;
|
||||
}
|
||||
|
||||
class ScenarioVacate : ServerPacket
|
||||
{
|
||||
public ObjectGuid ScenarioGUID;
|
||||
public int ScenarioID;
|
||||
public int Unk1;
|
||||
public byte Unk2;
|
||||
|
||||
public ScenarioVacate() : base(ServerOpcodes.ScenarioVacate, ConnectionType.Instance) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WritePackedGuid(ScenarioGUID);
|
||||
_worldPacket.WriteInt32(ScenarioID);
|
||||
_worldPacket.WriteInt32(Unk1);
|
||||
_worldPacket.WriteBits(Unk2, 2);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
public int ScenarioID;
|
||||
public int Unk1;
|
||||
public byte Unk2;
|
||||
}
|
||||
|
||||
class QueryScenarioPOI : ClientPacket
|
||||
{
|
||||
public Array<int> MissingScenarioPOIs = new(50);
|
||||
|
||||
public QueryScenarioPOI(WorldPacket packet) : base(packet) { }
|
||||
|
||||
public override void Read()
|
||||
@@ -110,12 +116,12 @@ namespace Game.Networking.Packets
|
||||
for (var i = 0; i < count; ++i)
|
||||
MissingScenarioPOIs[i] = _worldPacket.ReadInt32();
|
||||
}
|
||||
|
||||
public Array<int> MissingScenarioPOIs = new(50);
|
||||
}
|
||||
|
||||
class ScenarioPOIs : ServerPacket
|
||||
{
|
||||
public List<ScenarioPOIData> ScenarioPOIDataStats = new();
|
||||
|
||||
public ScenarioPOIs() : base(ServerOpcodes.ScenarioPois) { }
|
||||
|
||||
public override void Write()
|
||||
@@ -148,34 +154,32 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<ScenarioPOIData> ScenarioPOIDataStats = new();
|
||||
}
|
||||
|
||||
struct BonusObjectiveData
|
||||
{
|
||||
public int BonusObjectiveID;
|
||||
public bool ObjectiveComplete;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteInt32(BonusObjectiveID);
|
||||
data.WriteBit(ObjectiveComplete);
|
||||
data.FlushBits();
|
||||
}
|
||||
|
||||
public int BonusObjectiveID;
|
||||
public bool ObjectiveComplete;
|
||||
}
|
||||
|
||||
class ScenarioSpellUpdate
|
||||
{
|
||||
public uint SpellID;
|
||||
public bool Usable = true;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteUInt32(SpellID);
|
||||
data.WriteBit(Usable);
|
||||
data.FlushBits();
|
||||
}
|
||||
|
||||
public uint SpellID;
|
||||
public bool Usable = true;
|
||||
}
|
||||
|
||||
struct ScenarioPOIData
|
||||
|
||||
@@ -1371,6 +1371,43 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
}
|
||||
|
||||
struct CombatWorldTextViewerInfo
|
||||
{
|
||||
public ObjectGuid ViewerGUID;
|
||||
public byte? ColorType;
|
||||
public byte? ScaleType;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WritePackedGuid(ViewerGUID);
|
||||
data.WriteBit(ColorType.HasValue);
|
||||
data.WriteBit(ScaleType.HasValue);
|
||||
data.FlushBits();
|
||||
|
||||
if (ColorType.HasValue)
|
||||
data.WriteUInt8(ColorType.Value);
|
||||
|
||||
if (ScaleType.HasValue)
|
||||
data.WriteUInt8(ScaleType.Value);
|
||||
}
|
||||
}
|
||||
|
||||
public struct SpellSupportInfo
|
||||
{
|
||||
public ObjectGuid CasterGUID;
|
||||
public int SpellID;
|
||||
public int Amount;
|
||||
public float Percentage;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WritePackedGuid(CasterGUID);
|
||||
data.WriteInt32(SpellID);
|
||||
data.WriteInt32(Amount);
|
||||
data.WriteFloat(Percentage);
|
||||
}
|
||||
}
|
||||
|
||||
public struct SpellCastVisual
|
||||
{
|
||||
public uint SpellXSpellVisualID;
|
||||
|
||||
@@ -84,6 +84,7 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteBit(LFGListCustomRequiresAuthenticator);
|
||||
_worldPacket.WriteBit(AddonsDisabled);
|
||||
_worldPacket.WriteBit(Unused1000);
|
||||
_worldPacket.WriteBit(ContentTrackingEnabled);
|
||||
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
@@ -176,6 +177,7 @@ namespace Game.Networking.Packets
|
||||
public bool LFGListCustomRequiresAuthenticator;
|
||||
public bool AddonsDisabled;
|
||||
public bool Unused1000;
|
||||
public bool ContentTrackingEnabled;
|
||||
|
||||
public SocialQueueConfig QuickJoinConfig;
|
||||
public SquelchInfo Squelch;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
using Framework.Constants;
|
||||
using Framework.Dynamic;
|
||||
using Game.Entities;
|
||||
using Game.Miscellaneous;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@@ -91,7 +92,7 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
MinLevel = data.ReadInt32();
|
||||
MaxLevel = data.ReadInt32();
|
||||
RaceFilter = data.ReadInt64();
|
||||
RaceFilter = new RaceMask<long>(data.ReadInt64());
|
||||
ClassFilter = data.ReadInt32();
|
||||
|
||||
uint nameLength = data.ReadBits<uint>(6);
|
||||
@@ -129,7 +130,7 @@ namespace Game.Networking.Packets
|
||||
public string VirtualRealmName;
|
||||
public string Guild;
|
||||
public string GuildVirtualRealmName;
|
||||
public long RaceFilter;
|
||||
public RaceMask<long> RaceFilter;
|
||||
public int ClassFilter = -1;
|
||||
public List<string> Words = new();
|
||||
public bool ShowEnemies;
|
||||
|
||||
Reference in New Issue
Block a user