mirror of
https://github.com/MikuLeaks/MikuSB.git
synced 2026-06-04 08:04:01 +00:00
refactor manager & add giveall command
- giveall only weapon for now - move all item into SyncPlayer to prevent RspLogin too large
This commit is contained in:
@@ -6,6 +6,7 @@ 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.GameServer.Server.Packet.Send.Misc;
|
||||
using MikuSB.Proto;
|
||||
using MikuSB.TcpSharp;
|
||||
using MikuSB.Util;
|
||||
@@ -49,13 +50,8 @@ public class HandlerReqLogin : Handler
|
||||
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!));
|
||||
await connection.SendPacket(new PacketNtfCallScript(connection.Player!.InventoryManager.InventoryData));
|
||||
}
|
||||
}
|
||||
|
||||
19
GameServer/Server/Packet/Send/Lineup/PacketNtfSyncLineup.cs
Normal file
19
GameServer/Server/Packet/Send/Lineup/PacketNtfSyncLineup.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using MikuSB.Database.Lineup;
|
||||
using MikuSB.Proto;
|
||||
using MikuSB.TcpSharp;
|
||||
|
||||
namespace MikuSB.GameServer.Server.Packet.Send.Lineup;
|
||||
|
||||
public class PacketNtfSyncLineup : BasePacket
|
||||
{
|
||||
|
||||
public PacketNtfSyncLineup(LineupDataInfo lineup) : base(CmdIds.NtfSyncLineup)
|
||||
{
|
||||
var proto = new NtfSyncLineup
|
||||
{
|
||||
Lineup = lineup.ToProto()
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
using MikuSB.Database.Character;
|
||||
using MikuSB.Database.Inventory;
|
||||
using MikuSB.GameServer.Game.Inventory;
|
||||
using MikuSB.Proto;
|
||||
using MikuSB.TcpSharp;
|
||||
|
||||
@@ -6,7 +8,7 @@ namespace MikuSB.GameServer.Server.Packet.Send.Misc;
|
||||
|
||||
public class PacketNtfCallScript : BasePacket
|
||||
{
|
||||
public PacketNtfCallScript(List<CharacterInfo> Characters) : base(CmdIds.NtfScript)
|
||||
public PacketNtfCallScript(List<CharacterInfo> characters) : base(CmdIds.NtfScript)
|
||||
{
|
||||
var proto = new NtfCallScript
|
||||
{
|
||||
@@ -14,10 +16,55 @@ public class PacketNtfCallScript : BasePacket
|
||||
Arg = "{}",
|
||||
ExtraSync = new NtfSyncPlayer
|
||||
{
|
||||
Items = { Characters.Select(x => x.ToProto()) }
|
||||
Items = { characters.Select(x => x.ToProto()) }
|
||||
}
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
|
||||
public PacketNtfCallScript(List<GameWeaponInfo> weapons) : base(CmdIds.NtfScript)
|
||||
{
|
||||
var proto = new NtfCallScript
|
||||
{
|
||||
Api = "",
|
||||
Arg = "{}",
|
||||
ExtraSync = new NtfSyncPlayer
|
||||
{
|
||||
Items = { weapons.Select(x => x.ToProto()) }
|
||||
}
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
|
||||
public PacketNtfCallScript(List<BaseGameItemInfo> items) : base(CmdIds.NtfScript)
|
||||
{
|
||||
var proto = new NtfCallScript
|
||||
{
|
||||
Api = "",
|
||||
Arg = "{}",
|
||||
ExtraSync = new NtfSyncPlayer
|
||||
{
|
||||
Items = { items.Select(x => x.ToProto()) }
|
||||
}
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
|
||||
public PacketNtfCallScript(InventoryData inventory) : base(CmdIds.NtfScript)
|
||||
{
|
||||
var proto = new NtfCallScript
|
||||
{
|
||||
Api = "",
|
||||
Arg = "{}"
|
||||
};
|
||||
|
||||
var extraSync = new NtfSyncPlayer();
|
||||
foreach (var item in inventory.Items.Values) if ((item.TemplateId & 0xFFFF) != 5) extraSync.Items.Add(item.ToProto());
|
||||
foreach (var weapon in inventory.Weapons.Values) extraSync.Items.Add(weapon.ToProto());
|
||||
proto.ExtraSync = extraSync;
|
||||
SetData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user