Fixed world login

This commit is contained in:
Hondacrx
2025-08-26 22:37:42 -04:00
parent 7bb4769eee
commit ec4f2a49d4
20 changed files with 80 additions and 74 deletions
@@ -133,7 +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.WriteBit(SuccessInfo.CurrentBuild != null);
_worldPacket.FlushBits();
{
@@ -155,12 +155,12 @@ namespace Game.Networking.Packets
if (SuccessInfo.ExpansionTrialExpiration.HasValue)
_worldPacket.WriteInt64(SuccessInfo.ExpansionTrialExpiration.Value);
if (SuccessInfo.NewBuildKeys != null)
if (SuccessInfo.CurrentBuild != null)
{
for (int i = 0; i < 16; ++i)
{
_worldPacket.WriteUInt8(SuccessInfo.NewBuildKeys.NewBuildKey[i]);
_worldPacket.WriteUInt8(SuccessInfo.NewBuildKeys.SomeKey[i]);
_worldPacket.WriteUInt8(SuccessInfo.CurrentBuild.BuildKey[i]);
_worldPacket.WriteUInt8(SuccessInfo.CurrentBuild.ConfigKey[i]);
}
}
@@ -217,7 +217,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 BaseBuildKey CurrentBuild;
public struct GameTime
{
@@ -229,10 +229,10 @@ namespace Game.Networking.Packets
public bool IsCAISEnabled;
}
public class NewBuild
public class BaseBuildKey
{
public Array<byte> NewBuildKey = new Array<byte>(16);
public Array<byte> SomeKey = new Array<byte>(16);
public Array<byte> BuildKey = new Array<byte>(16);
public Array<byte> ConfigKey = new Array<byte>(16);
}
}
}
@@ -337,7 +337,7 @@ namespace Game.Networking.Packets
{
DosResponse = _worldPacket.ReadUInt64();
Key = _worldPacket.ReadUInt64();
LocalChallenge = _worldPacket.ReadBytes(16);
LocalChallenge = _worldPacket.ReadBytes(32);
Digest = _worldPacket.ReadBytes(24);
}
@@ -402,7 +402,7 @@ namespace Game.Networking.Packets
{
HmacSha512 toSign = new(EncryptionKey);
toSign.Process(BitConverter.GetBytes(Enabled), 1);
toSign.Finish(EnableEncryptionSeed, 16);
toSign.Finish(EnableEncryptionSeed, 32);
_worldPacket.WriteInt32(RegionGroup);
_worldPacket.WriteBytes(Ed25519.Sign(toSign.Digest, expandedPrivateKey, 0, EnableEncryptionContext));
@@ -84,7 +84,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteCString(Stats.NameAlt[i]);
}
for (var i = 0; i < 2; ++i)
for (var i = 0; i < Stats.Flags.Length; ++i)
_worldPacket.WriteUInt32(Stats.Flags[i]);
_worldPacket.WriteInt8(Stats.CreatureType);
@@ -347,13 +347,13 @@ namespace Game.Networking.Packets
Visual.Write(_worldPacket);
_worldPacket.WriteUInt16(Reason);
_worldPacket.WriteUInt8(Reason);
}
public ObjectGuid CasterUnit;
public uint SpellID;
public SpellCastVisual Visual;
public ushort Reason;
public byte Reason;
public ObjectGuid CastID;
}
@@ -332,6 +332,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteBit(PlayerIdentityOptionsEnabled);
_worldPacket.WriteBit(AccountExportEnabled);
_worldPacket.WriteBit(AccountLockedPostExport);
_worldPacket.WriteBits(RealmHiddenAlert.GetByteCount() + 1, 11);
_worldPacket.WriteBit(BNSendWhisperUseV2Services);
@@ -372,7 +373,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteInt32(LaunchDurationETA.Value);
if (!RealmHiddenAlert.IsEmpty())
_worldPacket.WriteString(RealmHiddenAlert);
_worldPacket.WriteCString(RealmHiddenAlert);
foreach (var sourceRegion in LiveRegionCharacterCopySourceRegions)
_worldPacket.WriteInt32(sourceRegion);