Core/PacketIO: Updated packets to 8.3.0

Port From (https://github.com/TrinityCore/TrinityCore/commit/462a10de17003631957b69e578e7e4c55ed1ef61)
This commit is contained in:
hondacrx
2020-02-21 18:21:19 -05:00
parent 96fd9b7a57
commit bcf199dba5
17 changed files with 1276 additions and 936 deletions
@@ -354,7 +354,7 @@ namespace Game.Network.Packets
class AuctionListPendingSalesResult : ServerPacket
{
public AuctionListPendingSalesResult() : base(ServerOpcodes.AuctionListPendingSalesResult) { }
public AuctionListPendingSalesResult() : base(ServerOpcodes.Unknown) { }
public override void Write()
{
@@ -132,10 +132,17 @@ namespace Game.Network.Packets
_worldPacket.WriteUInt32(SuccessInfo.Value.CurrencyID);
_worldPacket.WriteUInt32(SuccessInfo.Value.Time);
foreach (var klass in SuccessInfo.Value.AvailableClasses)
foreach (var raceClassAvailability in SuccessInfo.Value.AvailableClasses)
{
_worldPacket.WriteUInt8(klass.Key); // the current class
_worldPacket.WriteUInt8(klass.Value); // the required Expansion
_worldPacket.WriteUInt8(raceClassAvailability.RaceID);
_worldPacket.WriteInt32(raceClassAvailability.Classes.Count);
foreach (var classAvailability in raceClassAvailability.Classes)
{
_worldPacket.WriteUInt8(classAvailability.ClassID);
_worldPacket.WriteUInt8(classAvailability.ActiveExpansionLevel);
_worldPacket.WriteUInt8(classAvailability.AccountExpansionLevel);
}
}
_worldPacket.WriteBit(SuccessInfo.Value.IsExpansionTrial);
@@ -197,8 +204,8 @@ namespace Game.Network.Packets
public class AuthSuccessInfo
{
public byte AccountExpansionLevel; // the current expansion of this account, the possible values are in @ref Expansions
public byte ActiveExpansionLevel; // the current server expansion, the possible values are in @ref Expansions
public byte AccountExpansionLevel; // the current expansion of this account, the possible values are in @ref Expansions
public uint TimeRested; // affects the return value of the GetBillingTimeRested() client API call, it is the number of seconds you have left until the experience points and loot you receive from creatures and quests is reduced. It is only used in the Asia region in retail, it's not implemented in TC and will probably never be.
public uint VirtualRealmAddress; // a special identifier made from the Index, BattleGroup and Region. @todo implement
@@ -211,7 +218,7 @@ namespace Game.Network.Packets
public List<VirtualRealmInfo> VirtualRealms = new List<VirtualRealmInfo>(); // list of realms connected to this one (inclusive) @todo implement
public List<CharacterTemplate> Templates = new List<CharacterTemplate>(); // list of pre-made character templates. @todo implement
public Dictionary<byte, byte> AvailableClasses; // the minimum AccountExpansion required to select the classes
public List<RaceClassAvailability> AvailableClasses; // the minimum AccountExpansion required to select the classes
public bool IsExpansionTrial;
public bool ForceCharacterTemplate; // forces the client to always use a character template when creating a new character. @see Templates. @todo implement
@@ -219,12 +219,21 @@ namespace Game.Network.Packets
data.WriteUInt32(Unknown703);
data.WriteUInt32(LastLoginVersion);
data.WriteUInt32(Flags4);
data.WriteInt32(Unknown830.Count);
data.WriteBits(Name.GetByteCount(), 6);
data.WriteBit(FirstLogin);
data.WriteBit(BoostInProgress);
data.WriteBits(unkWod61x, 5);
foreach (string str in Unknown830)
data.WriteBits(str.GetByteCount() + 1, 6);
data.FlushBits();
foreach (string str in Unknown830)
if (!str.IsEmpty())
data.WriteCString(str);
data.WriteString(Name);
}
@@ -262,6 +271,8 @@ namespace Game.Network.Packets
public bool BoostInProgress; // @todo
public uint[] ProfessionIds = new uint[2]; // @todo
public VisualItemInfo[] VisualItems = new VisualItemInfo[InventorySlots.BagEnd];
public List<string> Unknown830 = new List<string>(); // Something with character names, same length limit as name,
// client accepts unlimited number of these in packet but only uses first 3
public struct VisualItemInfo
{
@@ -460,11 +460,13 @@ namespace Game.Network.Packets
public void Write(WorldPacket data)
{
data.WriteInt32(GarrTalentID);
data.WriteInt32(Rank);
data.WriteUInt32((uint)ResearchStartTime);
data.WriteInt32(Flags);
}
public int GarrTalentID;
public int Rank;
public long ResearchStartTime;
public int Flags;
}
@@ -496,18 +498,18 @@ namespace Game.Network.Packets
mission.Write(data);
foreach (List<GarrisonMissionReward> missionReward in MissionRewards)
{
data.WriteInt32(missionReward.Count);
foreach (List<GarrisonMissionReward> missionReward in MissionRewards)
foreach (GarrisonMissionReward missionRewardItem in missionReward)
missionRewardItem.Write(data);
}
foreach (List<GarrisonMissionReward> missionReward in MissionOvermaxRewards)
{
data.WriteInt32(missionReward.Count);
foreach (List<GarrisonMissionReward> missionReward in MissionOvermaxRewards)
foreach (GarrisonMissionReward missionRewardItem in missionReward)
missionRewardItem.Write(data);
}
foreach (GarrisonMissionBonusAbility areaBonus in MissionAreaBonuses)
areaBonus.Write(data);
@@ -274,6 +274,7 @@ namespace Game.Network.Packets
public override void Write()
{
_worldPacket.WriteUInt32(GameObjectID);
_worldPacket.WritePackedGuid(Guid);
_worldPacket.WriteBit(Allow);
_worldPacket.FlushBits();
@@ -307,6 +308,7 @@ namespace Game.Network.Packets
}
public uint GameObjectID;
public ObjectGuid Guid;
public bool Allow;
public GameObjectStats Stats;
}
@@ -32,6 +32,8 @@ namespace Game.Network.Packets
_worldPacket.WriteUInt32(SceneScriptPackageID);
_worldPacket.WritePackedGuid(TransportGUID);
_worldPacket.WriteXYZO(Location);
_worldPacket.WriteBit(PerformTactCallbacks);
_worldPacket.FlushBits();
}
public uint SceneID;
@@ -40,6 +42,7 @@ namespace Game.Network.Packets
public uint SceneScriptPackageID;
public ObjectGuid TransportGUID;
public Position Location;
public bool PerformTactCallbacks;
}
class CancelScene : ServerPacket
@@ -77,7 +77,6 @@ namespace Game.Network.Packets
_worldPacket.WriteBit(WillKickFromWorld);
_worldPacket.WriteBit(KioskModeEnabled);
_worldPacket.WriteBit(CompetitiveModeEnabled);
_worldPacket.WriteBit(RaceClassExpansionLevels.HasValue);
_worldPacket.WriteBit(TokenBalanceEnabled);
_worldPacket.WriteBit(WarModeFeatureEnabled);
_worldPacket.WriteBit(ClubsEnabled);
@@ -124,13 +123,6 @@ namespace Game.Network.Packets
_worldPacket.WriteInt32(SessionAlert.Value.DisplayTime);
}
if (RaceClassExpansionLevels.HasValue)
{
_worldPacket.WriteInt32(RaceClassExpansionLevels.Value.Count);
foreach (var level in RaceClassExpansionLevels.Value)
_worldPacket.WriteUInt8(level);
}
_worldPacket.WriteBit(VoiceChatManagerSettings.IsSquelched);
_worldPacket.WritePackedGuid(VoiceChatManagerSettings.BnetAccountGuid);
_worldPacket.WritePackedGuid(VoiceChatManagerSettings.GuildGuid);
@@ -192,7 +184,6 @@ namespace Game.Network.Packets
public bool IsMuted;
public bool ClubFinderEnabled;
public Optional<List<byte>> RaceClassExpansionLevels;
public SocialQueueConfig QuickJoinConfig;
public VoiceChatProxySettings VoiceChatManagerSettings;
public RafSystemFeatureInfo RAFSystem;