mirror of
https://github.com/MikuLeaks/MikuSB.git
synced 2026-06-04 11:03:59 +00:00
Added character fragments
To address the issue where RspLogin was becoming too large to allow logins, I changed the system to send a portion of the information via NtfSyncPlayer.
This commit is contained in:
@@ -3,6 +3,7 @@ using MikuSB.Database;
|
||||
using MikuSB.Database.Account;
|
||||
using MikuSB.Database.Player;
|
||||
using MikuSB.GameServer.Game.Player;
|
||||
using MikuSB.GameServer.Server.CallGS;
|
||||
using MikuSB.GameServer.Server.Packet.Send.Friend;
|
||||
using MikuSB.GameServer.Server.Packet.Send.Login;
|
||||
using MikuSB.Proto;
|
||||
@@ -47,6 +48,13 @@ public class HandlerReqLogin : Handler
|
||||
await connection.Player.OnEnterGame();
|
||||
connection.Player.Connection = connection;
|
||||
await connection.SendPacket(new PacketRspLogin(connection.Player!));
|
||||
|
||||
var supplySync = new MikuSB.Proto.NtfSyncPlayer();
|
||||
foreach (var item in connection.Player.GetSupplyItems())
|
||||
supplySync.Items.Add(item.ToProto());
|
||||
if (supplySync.Items.Count > 0)
|
||||
await CallGSRouter.SendScript(connection, "", "{}", supplySync);
|
||||
|
||||
await connection.Player.OnHeartBeat();
|
||||
await connection.SendPacket(new PacketNtfUpdateFriend(connection.Player!));
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
using MikuSB.GameServer.Game.Player;
|
||||
using MikuSB.TcpSharp;
|
||||
using MikuSB.Proto;
|
||||
using MikuSB.Util;
|
||||
using MikuSB.Util.Extensions;
|
||||
|
||||
namespace MikuSB.GameServer.Server.Packet.Send.Login;
|
||||
|
||||
public class PacketRspLogin : BasePacket
|
||||
{
|
||||
private static readonly Logger Logger = new("RspLogin");
|
||||
|
||||
public PacketRspLogin(PlayerInstance player) : base(CmdIds.RspLogin)
|
||||
{
|
||||
var proto = new RspLogin
|
||||
@@ -18,6 +21,9 @@ public class PacketRspLogin : BasePacket
|
||||
NeedRename = false
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
var bytes = Google.Protobuf.MessageExtensions.ToByteArray(proto);
|
||||
Logger.Info($"RspLogin proto size: {bytes.Length} bytes (limit: 65535)");
|
||||
|
||||
SetData(bytes);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user