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:
Naruse
2026-04-27 14:33:25 +08:00
parent ac087f240b
commit 4bf3f0d715
15 changed files with 205 additions and 72 deletions

View File

@@ -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);
}
}