hondacrx
2023-08-21 07:22:33 -04:00
parent 794ff2bb99
commit f6807e152c
76 changed files with 3149 additions and 2233 deletions
@@ -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
+10 -9
View File
@@ -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;
+32 -13
View File
@@ -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);
+1 -1
View File
@@ -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;
+3 -2
View File
@@ -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;