Core: Updated to 11.1.7
Port From (https://github.com/TrinityCore/TrinityCore/commit/ceb8d561b44579118b109a9ff71ba415df53bbdc)
This commit is contained in:
@@ -370,8 +370,8 @@ namespace Game.Networking.Packets
|
||||
|
||||
class EnterEncryptedMode : ServerPacket
|
||||
{
|
||||
byte[] EncryptionKey;
|
||||
int RegionGroup;
|
||||
byte[] EncryptionKey;
|
||||
bool Enabled;
|
||||
static byte[] expandedPrivateKey;
|
||||
|
||||
@@ -404,8 +404,8 @@ namespace Game.Networking.Packets
|
||||
toSign.Process(BitConverter.GetBytes(Enabled), 1);
|
||||
toSign.Finish(EnableEncryptionSeed, 16);
|
||||
|
||||
_worldPacket.WriteBytes(Ed25519.Sign(toSign.Digest, expandedPrivateKey, 0, EnableEncryptionContext));
|
||||
_worldPacket.WriteInt32(RegionGroup);
|
||||
_worldPacket.WriteBytes(Ed25519.Sign(toSign.Digest, expandedPrivateKey, 0, EnableEncryptionContext));
|
||||
_worldPacket.WriteBit(Enabled);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
@@ -786,18 +786,19 @@ namespace Game.Networking.Packets
|
||||
|
||||
public class UndeleteCooldownStatusResponse : ServerPacket
|
||||
{
|
||||
public uint MaxCooldown; // Max. cooldown until next free character restoration. Displayed in undelete confirm message. (in sec)
|
||||
public uint CurrentCooldown; // Current cooldown until next free character restoration. (in sec)
|
||||
public bool OnCooldown;
|
||||
|
||||
public UndeleteCooldownStatusResponse() : base(ServerOpcodes.UndeleteCooldownStatusResponse) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WriteBit(OnCooldown);
|
||||
_worldPacket.WriteUInt32(MaxCooldown);
|
||||
_worldPacket.WriteUInt32(CurrentCooldown);
|
||||
_worldPacket.WriteBit(OnCooldown);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
public bool OnCooldown; //
|
||||
public uint MaxCooldown; // Max. cooldown until next free character restoration. Displayed in undelete confirm message. (in sec)
|
||||
public uint CurrentCooldown; // Current cooldown until next free character restoration. (in sec)
|
||||
}
|
||||
|
||||
public class PlayerLogin : ClientPacket
|
||||
|
||||
@@ -103,6 +103,22 @@ namespace Game.Networking.Packets
|
||||
public ByteBuffer CompressedData;
|
||||
}
|
||||
|
||||
class UpdateAccountDataComplete : ServerPacket
|
||||
{
|
||||
public ObjectGuid Player;
|
||||
public int DataType; // @see enum AccountDataType
|
||||
public int Result;
|
||||
|
||||
public UpdateAccountDataComplete() : base(ServerOpcodes.UpdateAccountDataComplete, ConnectionType.Realm) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WritePackedGuid(Player);
|
||||
_worldPacket.WriteInt32(DataType);
|
||||
_worldPacket.WriteInt32(Result);
|
||||
}
|
||||
}
|
||||
|
||||
class SetAdvancedCombatLogging : ClientPacket
|
||||
{
|
||||
public SetAdvancedCombatLogging(WorldPacket packet) : base(packet) { }
|
||||
|
||||
@@ -320,23 +320,23 @@ namespace Game.Networking.Packets
|
||||
|
||||
public class GarrisonBuildingInfo
|
||||
{
|
||||
public long TimeBuilt;
|
||||
public uint GarrPlotInstanceID;
|
||||
public uint GarrBuildingID;
|
||||
public uint CurrentGarSpecID;
|
||||
public long TimeSpecCooldown = 2288912640; // 06/07/1906 18:35:44 - another in the series of magic blizz dates
|
||||
public bool Active;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteInt64(TimeBuilt);
|
||||
data.WriteUInt32(GarrPlotInstanceID);
|
||||
data.WriteUInt32(GarrBuildingID);
|
||||
data.WriteInt64(TimeBuilt);
|
||||
data.WriteUInt32(CurrentGarSpecID);
|
||||
data.WriteInt64(TimeSpecCooldown);
|
||||
data.WriteBit(Active);
|
||||
data.FlushBits();
|
||||
}
|
||||
|
||||
public uint GarrPlotInstanceID;
|
||||
public uint GarrBuildingID;
|
||||
public long TimeBuilt;
|
||||
public uint CurrentGarSpecID;
|
||||
public long TimeSpecCooldown = 2288912640; // 06/07/1906 18:35:44 - another in the series of magic blizz dates
|
||||
public bool Active;
|
||||
}
|
||||
|
||||
public class GarrisonFollower
|
||||
|
||||
@@ -843,12 +843,11 @@ namespace Game.Networking.Packets
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WriteBit(InGuildParty);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket.WriteInt32(NumMembers);
|
||||
_worldPacket.WriteInt32(NumRequired);
|
||||
_worldPacket.WriteFloat(GuildXPEarnedMult);
|
||||
_worldPacket.WriteBit(InGuildParty);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
public float GuildXPEarnedMult = 0.0f;
|
||||
|
||||
@@ -306,19 +306,6 @@ namespace Game.Networking.Packets
|
||||
//Structs
|
||||
public struct InstanceLockPkt
|
||||
{
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteUInt32(MapID);
|
||||
data.WriteUInt32(DifficultyID);
|
||||
data.WriteUInt64(InstanceID);
|
||||
data.WriteInt32(TimeRemaining);
|
||||
data.WriteUInt32(CompletedMask);
|
||||
|
||||
data.WriteBit(Locked);
|
||||
data.WriteBit(Extended);
|
||||
data.FlushBits();
|
||||
}
|
||||
|
||||
public ulong InstanceID;
|
||||
public uint MapID;
|
||||
public uint DifficultyID;
|
||||
@@ -327,5 +314,18 @@ namespace Game.Networking.Packets
|
||||
|
||||
public bool Locked;
|
||||
public bool Extended;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteUInt64(InstanceID);
|
||||
data.WriteUInt32(MapID);
|
||||
data.WriteUInt32(DifficultyID);
|
||||
data.WriteInt32(TimeRemaining);
|
||||
data.WriteUInt32(CompletedMask);
|
||||
|
||||
data.WriteBit(Locked);
|
||||
data.WriteBit(Extended);
|
||||
data.FlushBits();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -414,16 +414,16 @@ namespace Game.Networking.Packets
|
||||
|
||||
public class SetRaidDifficulty : ClientPacket
|
||||
{
|
||||
public int DifficultyID;
|
||||
public int Legacy;
|
||||
|
||||
public SetRaidDifficulty(WorldPacket packet) : base(packet) { }
|
||||
|
||||
public override void Read()
|
||||
{
|
||||
Legacy = _worldPacket.ReadInt32();
|
||||
DifficultyID = _worldPacket.ReadInt32();
|
||||
Legacy = _worldPacket.ReadUInt8();
|
||||
}
|
||||
|
||||
public int DifficultyID;
|
||||
public byte Legacy;
|
||||
}
|
||||
|
||||
public class DungeonDifficultySet : ServerPacket
|
||||
@@ -440,16 +440,16 @@ namespace Game.Networking.Packets
|
||||
|
||||
public class RaidDifficultySet : ServerPacket
|
||||
{
|
||||
public int DifficultyID;
|
||||
public int Legacy;
|
||||
|
||||
public RaidDifficultySet() : base(ServerOpcodes.RaidDifficultySet) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WriteInt32(Legacy);
|
||||
_worldPacket.WriteInt32(DifficultyID);
|
||||
_worldPacket.WriteUInt8((byte)(Legacy ? 1 : 0));
|
||||
}
|
||||
|
||||
public int DifficultyID;
|
||||
public bool Legacy;
|
||||
}
|
||||
|
||||
public class CorpseReclaimDelay : ServerPacket
|
||||
|
||||
@@ -140,10 +140,10 @@ namespace Game.Networking.Packets
|
||||
data.ResetBitPos();
|
||||
|
||||
MovementInfo.Drive driveStatus = new();
|
||||
driveStatus.accelerating = data.HasBit();
|
||||
driveStatus.drifting = data.HasBit();
|
||||
driveStatus.speed = data.ReadFloat();
|
||||
driveStatus.movementAngle = data.ReadFloat();
|
||||
driveStatus.accelerating = data.HasBit();
|
||||
driveStatus.drifting = data.HasBit();
|
||||
|
||||
movementInfo.driveStatus = driveStatus;
|
||||
}
|
||||
@@ -232,10 +232,11 @@ namespace Game.Networking.Packets
|
||||
|
||||
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);
|
||||
data.WriteBit(movementInfo.driveStatus.Value.accelerating);
|
||||
data.WriteBit(movementInfo.driveStatus.Value.drifting);
|
||||
data.FlushBits();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,6 +271,7 @@ namespace Game.Networking.Packets
|
||||
data.WriteBit(false); // HasSplineFilter
|
||||
data.WriteBit(moveSpline.spell_effect_extra != null); // HasSpellEffectExtraData
|
||||
bool hasJumpExtraData = data.WriteBit(moveSpline.splineflags.HasFlag(MoveSplineFlagEnum.Parabolic) && (moveSpline.spell_effect_extra == null || moveSpline.effect_start_time != 0));
|
||||
data.WriteBit(moveSpline.turn != null); // HasTurnData
|
||||
data.WriteBit(moveSpline.anim_tier != null); // HasAnimTierTransition
|
||||
data.WriteBit(false); // HasUnknown901
|
||||
data.FlushBits();
|
||||
@@ -321,6 +323,13 @@ namespace Game.Networking.Packets
|
||||
data.WriteUInt32(0); // Duration (override)
|
||||
}
|
||||
|
||||
if (moveSpline.turn != null)
|
||||
{
|
||||
data.WriteFloat(moveSpline.turn.StartFacing);
|
||||
data.WriteFloat(moveSpline.turn.TotalTurnRads);
|
||||
data.WriteFloat(moveSpline.turn.RadsPerSec);
|
||||
}
|
||||
|
||||
if (moveSpline.anim_tier != null)
|
||||
{
|
||||
data.WriteUInt32(moveSpline.anim_tier.TierTransitionId);
|
||||
@@ -447,6 +456,15 @@ namespace Game.Networking.Packets
|
||||
movementSpline.JumpExtraData = jumpExtraData;
|
||||
}
|
||||
|
||||
if (moveSpline.turn != null)
|
||||
{
|
||||
MonsterSplineTurnData turn = new();
|
||||
turn.StartFacing = moveSpline.turn.StartFacing;
|
||||
turn.TotalTurnRads = moveSpline.turn.TotalTurnRads;
|
||||
turn.RadsPerSec = moveSpline.turn.RadsPerSec;
|
||||
movementSpline.TurnData = turn;
|
||||
}
|
||||
|
||||
if (splineFlags.HasFlag(MoveSplineFlagEnum.FadeObject))
|
||||
movementSpline.FadeObjectTime = (uint)moveSpline.effect_start_time;
|
||||
|
||||
@@ -1431,6 +1449,20 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
}
|
||||
|
||||
public class MonsterSplineTurnData
|
||||
{
|
||||
public float StartFacing;
|
||||
public float TotalTurnRads;
|
||||
public float RadsPerSec;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteFloat(StartFacing);
|
||||
data.WriteFloat(TotalTurnRads);
|
||||
data.WriteFloat(RadsPerSec);
|
||||
}
|
||||
}
|
||||
|
||||
public struct MonsterSplineAnimTierTransition
|
||||
{
|
||||
public int TierTransitionID;
|
||||
@@ -1502,6 +1534,7 @@ namespace Game.Networking.Packets
|
||||
data.WriteBit(SplineFilter != null);
|
||||
data.WriteBit(SpellEffectExtraData.HasValue);
|
||||
data.WriteBit(JumpExtraData.HasValue);
|
||||
data.WriteBit(TurnData != null);
|
||||
data.WriteBit(AnimTierTransition.HasValue);
|
||||
data.WriteBit(Unknown901 != null);
|
||||
data.FlushBits();
|
||||
@@ -1535,6 +1568,9 @@ namespace Game.Networking.Packets
|
||||
if (JumpExtraData.HasValue)
|
||||
JumpExtraData.Value.Write(data);
|
||||
|
||||
if (TurnData != null)
|
||||
TurnData.Write(data);
|
||||
|
||||
if (AnimTierTransition.HasValue)
|
||||
AnimTierTransition.Value.Write(data);
|
||||
|
||||
@@ -1557,6 +1593,7 @@ namespace Game.Networking.Packets
|
||||
public MonsterSplineFilter SplineFilter;
|
||||
public MonsterSplineSpellEffectExtraData? SpellEffectExtraData;
|
||||
public MonsterSplineJumpExtraData? JumpExtraData;
|
||||
public MonsterSplineTurnData TurnData;
|
||||
public MonsterSplineAnimTierTransition? AnimTierTransition;
|
||||
public MonsterSplineUnknown901 Unknown901;
|
||||
public float FaceDirection;
|
||||
@@ -1575,6 +1612,7 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
data.WriteUInt32(Id);
|
||||
data.WriteBit(CrzTeleport);
|
||||
data.WriteBit(StopUseFaceDirection);
|
||||
data.WriteBits(StopSplineStyle, 3);
|
||||
|
||||
Move.Write(data);
|
||||
@@ -1582,6 +1620,7 @@ namespace Game.Networking.Packets
|
||||
|
||||
public uint Id;
|
||||
public bool CrzTeleport;
|
||||
public bool StopUseFaceDirection;
|
||||
public byte StopSplineStyle; // Determines how far from spline destination the mover is allowed to stop in place 0, 0, 3.0, 2.76, numeric_limits<float>::max, 1.1, float(INT_MAX); default before this field existed was distance 3.0 (index 2)
|
||||
public MovementSpline Move;
|
||||
}
|
||||
|
||||
@@ -609,22 +609,22 @@ namespace Game.Networking.Packets
|
||||
|
||||
class SetPartyAssignment : ClientPacket
|
||||
{
|
||||
public int Assignment;
|
||||
public byte? PartyIndex;
|
||||
public ObjectGuid Target;
|
||||
public bool Set;
|
||||
|
||||
public SetPartyAssignment(WorldPacket packet) : base(packet) { }
|
||||
|
||||
public override void Read()
|
||||
{
|
||||
bool hasPartyIndex = _worldPacket.HasBit();
|
||||
Set = _worldPacket.HasBit();
|
||||
Assignment = _worldPacket.ReadUInt8();
|
||||
Assignment = _worldPacket.ReadInt32();
|
||||
Target = _worldPacket.ReadPackedGuid();
|
||||
if (hasPartyIndex)
|
||||
PartyIndex = _worldPacket.ReadUInt8();
|
||||
}
|
||||
|
||||
public byte Assignment;
|
||||
public byte? PartyIndex;
|
||||
public ObjectGuid Target;
|
||||
public bool Set;
|
||||
}
|
||||
|
||||
class DoReadyCheck : ClientPacket
|
||||
@@ -1290,8 +1290,8 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteUInt8(MyFlags);
|
||||
data.WriteUInt32(Slot);
|
||||
data.WriteUInt8(MyFlags);
|
||||
data.WriteUInt32(MyRandomSlot);
|
||||
data.WriteUInt8(MyPartialClear);
|
||||
data.WriteFloat(MyGearDiff);
|
||||
@@ -1303,15 +1303,15 @@ namespace Game.Networking.Packets
|
||||
data.FlushBits();
|
||||
}
|
||||
|
||||
public byte MyFlags;
|
||||
public uint Slot;
|
||||
public byte BootCount;
|
||||
public byte MyFlags;
|
||||
public uint MyRandomSlot;
|
||||
public bool Aborted;
|
||||
public byte MyPartialClear;
|
||||
public float MyGearDiff;
|
||||
public byte MyStrangerCount;
|
||||
public byte MyKickVoteCount;
|
||||
public byte BootCount;
|
||||
public bool Aborted;
|
||||
public bool MyFirstReward;
|
||||
}
|
||||
|
||||
|
||||
@@ -1464,7 +1464,8 @@ namespace Game.Networking.Packets
|
||||
var contentTuning = CliDB.ContentTuningStorage.LookupByKey(creatureDifficulty.ContentTuningID);
|
||||
if (contentTuning != null)
|
||||
{
|
||||
ScalingHealthItemLevelCurveID = (uint)contentTuning.HealthItemLevelCurveID;
|
||||
ScalingHealthItemLevelCurveID = contentTuning.HealthItemLevelCurveID;
|
||||
ScalingHealthPrimaryStatCurveID = contentTuning.HealthPrimaryStatCurveID;
|
||||
TargetContentTuningID = contentTuning.Id;
|
||||
}
|
||||
TargetLevel = (byte)target.GetLevel();
|
||||
@@ -1484,7 +1485,8 @@ namespace Game.Networking.Packets
|
||||
var contentTuning = CliDB.ContentTuningStorage.LookupByKey(creatureDifficulty.ContentTuningID);
|
||||
if (contentTuning != null)
|
||||
{
|
||||
ScalingHealthItemLevelCurveID = (uint)contentTuning.HealthItemLevelCurveID;
|
||||
ScalingHealthItemLevelCurveID = contentTuning.HealthItemLevelCurveID;
|
||||
ScalingHealthPrimaryStatCurveID = contentTuning.HealthPrimaryStatCurveID;
|
||||
TargetContentTuningID = contentTuning.Id;
|
||||
}
|
||||
TargetLevel = (byte)target.GetLevel();
|
||||
@@ -1549,14 +1551,17 @@ namespace Game.Networking.Packets
|
||||
data.WriteFloat(PlayerItemLevel);
|
||||
data.WriteFloat(TargetItemLevel);
|
||||
data.WriteInt16(PlayerLevelDelta);
|
||||
data.WriteUInt32(ScalingHealthItemLevelCurveID);
|
||||
data.WriteInt32(ScalingHealthItemLevelCurveID);
|
||||
data.WriteInt32(Unused1117);
|
||||
data.WriteInt32(ScalingHealthPrimaryStatCurveID);
|
||||
data.WriteUInt8(TargetLevel);
|
||||
data.WriteUInt8(Expansion);
|
||||
data.WriteInt8(TargetScalingLevelDelta);
|
||||
data.WriteUInt32((uint)Flags);
|
||||
data.WriteUInt32(PlayerContentTuningID);
|
||||
data.WriteUInt32(TargetContentTuningID);
|
||||
data.WriteInt32(Unused927);
|
||||
data.WriteInt32(TargetHealingContentTuningID);
|
||||
data.WriteFloat(PlayerPrimaryStatToExpectedRatio);
|
||||
data.WriteBits(TuningType, 4);
|
||||
data.FlushBits();
|
||||
}
|
||||
@@ -1565,22 +1570,28 @@ namespace Game.Networking.Packets
|
||||
public short PlayerLevelDelta;
|
||||
public float PlayerItemLevel;
|
||||
public float TargetItemLevel;
|
||||
public uint ScalingHealthItemLevelCurveID;
|
||||
public int ScalingHealthItemLevelCurveID = 0;
|
||||
public int Unused1117 = 0;
|
||||
public int ScalingHealthPrimaryStatCurveID = 0;
|
||||
public byte TargetLevel;
|
||||
public byte Expansion;
|
||||
public sbyte TargetScalingLevelDelta;
|
||||
public ContentTuningFlags Flags = ContentTuningFlags.NoLevelScaling | ContentTuningFlags.NoItemLevelScaling;
|
||||
public uint PlayerContentTuningID;
|
||||
public uint TargetContentTuningID;
|
||||
public int Unused927;
|
||||
public int TargetHealingContentTuningID = 0; // direct heal only, not periodic
|
||||
public float PlayerPrimaryStatToExpectedRatio = 1.0f;
|
||||
|
||||
public enum ContentTuningType
|
||||
{
|
||||
CreatureToPlayerDamage = 1,
|
||||
PlayerToCreatureDamage = 2,
|
||||
CreatureToCreatureDamage = 4,
|
||||
PlayerToSandboxScaling = 7, // NYI
|
||||
PlayerToPlayerExpectedStat = 8
|
||||
CreatureToPlayerHealing = 3,
|
||||
PlayerToCreatureHealing = 4,
|
||||
CreatureToCreatureDamage = 5,
|
||||
CreatureToCreatureHealing = 6,
|
||||
PlayerToPlayerDamage = 7, // Nyi
|
||||
PlayerToPlayerHealing = 8,
|
||||
}
|
||||
|
||||
public enum ContentTuningFlags
|
||||
|
||||
@@ -114,34 +114,12 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteBit(LobbyMatchmakerQueueFromMainlineEnabled);
|
||||
_worldPacket.WriteBit(CanSendLobbyMatchmakerPartyCustomizations);
|
||||
_worldPacket.WriteBit(AddonProfilerEnabled);
|
||||
_worldPacket.WriteBit(false); // unused 11.1.7
|
||||
_worldPacket.WriteBit(false); // unused 11.1.7
|
||||
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
{
|
||||
_worldPacket.WriteBit(QuickJoinConfig.ToastsDisabled);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ToastDuration);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.DelayDuration);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.QueueMultiplier);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.PlayerMultiplier);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.PlayerFriendValue);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.PlayerGuildValue);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleInitialThreshold);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleDecayTime);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottlePrioritySpike);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleMinThreshold);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottlePvPPriorityNormal);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottlePvPPriorityLow);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottlePvPHonorThreshold);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleLfgListPriorityDefault);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleLfgListPriorityAbove);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleLfgListPriorityBelow);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleLfgListIlvlScalingAbove);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleLfgListIlvlScalingBelow);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleRfPriorityAbove);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleRfIlvlScalingAbove);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleDfMaxItemLevel);
|
||||
_worldPacket.WriteFloat(QuickJoinConfig.ThrottleDfBestPriority);
|
||||
}
|
||||
QuickJoinConfig.Write(_worldPacket);
|
||||
|
||||
if (SessionAlert.HasValue)
|
||||
{
|
||||
@@ -268,6 +246,34 @@ namespace Game.Networking.Packets
|
||||
public float ThrottleRfIlvlScalingAbove;
|
||||
public float ThrottleDfMaxItemLevel;
|
||||
public float ThrottleDfBestPriority;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteFloat(ToastDuration);
|
||||
data.WriteFloat(DelayDuration);
|
||||
data.WriteFloat(QueueMultiplier);
|
||||
data.WriteFloat(PlayerMultiplier);
|
||||
data.WriteFloat(PlayerFriendValue);
|
||||
data.WriteFloat(PlayerGuildValue);
|
||||
data.WriteFloat(ThrottleInitialThreshold);
|
||||
data.WriteFloat(ThrottleDecayTime);
|
||||
data.WriteFloat(ThrottlePrioritySpike);
|
||||
data.WriteFloat(ThrottleMinThreshold);
|
||||
data.WriteFloat(ThrottlePvPPriorityNormal);
|
||||
data.WriteFloat(ThrottlePvPPriorityLow);
|
||||
data.WriteFloat(ThrottlePvPHonorThreshold);
|
||||
data.WriteFloat(ThrottleLfgListPriorityDefault);
|
||||
data.WriteFloat(ThrottleLfgListPriorityAbove);
|
||||
data.WriteFloat(ThrottleLfgListPriorityBelow);
|
||||
data.WriteFloat(ThrottleLfgListIlvlScalingAbove);
|
||||
data.WriteFloat(ThrottleLfgListIlvlScalingBelow);
|
||||
data.WriteFloat(ThrottleRfPriorityAbove);
|
||||
data.WriteFloat(ThrottleRfIlvlScalingAbove);
|
||||
data.WriteFloat(ThrottleDfMaxItemLevel);
|
||||
data.WriteFloat(ThrottleDfBestPriority);
|
||||
data.WriteBit(ToastsDisabled);
|
||||
data.FlushBits();
|
||||
}
|
||||
}
|
||||
|
||||
public struct SquelchInfo
|
||||
@@ -339,6 +345,10 @@ namespace Game.Networking.Packets
|
||||
|
||||
_worldPacket.WriteBit(BNSendGameDataUseV2Services);
|
||||
_worldPacket.WriteBit(CharacterSelectListModeRealmless);
|
||||
_worldPacket.WriteBit(WowTokenLimitedMode);
|
||||
_worldPacket.WriteBit(false); // unused 11.1.7
|
||||
_worldPacket.WriteBit(false); // unused 11.1.7
|
||||
_worldPacket.WriteBit(PandarenLevelBoostAllowed);
|
||||
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
@@ -411,6 +421,8 @@ namespace Game.Networking.Packets
|
||||
public bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService
|
||||
public bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService
|
||||
public bool CharacterSelectListModeRealmless;
|
||||
public bool WowTokenLimitedMode; // classic only
|
||||
public bool PandarenLevelBoostAllowed; // classic only
|
||||
public EuropaTicketConfig? EuropaTicketSystemStatus;
|
||||
public List<int> LiveRegionCharacterCopySourceRegions = new();
|
||||
public uint CommercePricePollTimeSeconds; // NYI
|
||||
|
||||
Reference in New Issue
Block a user