feat: add stigmata to inventory & giveall command

This commit is contained in:
Naruse
2025-06-15 08:42:26 +08:00
parent 5da6892d76
commit 1751dc6cbb
7 changed files with 79 additions and 61 deletions

View File

@@ -16,7 +16,19 @@ public class CommandGiveall : ICommands
{
var item = await arg.Target!.Player!.InventoryManager!.AddItem(conf.ID, 1, ItemMainTypeEnum.Weapon, conf.MaxLv, sync:false);
}
await arg.Target!.Player!.SyncWeapon();
await arg.Target!.Player!.SyncInventory();
await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", I18NManager.Translate("Word.Weapon")));
}
[CommandMethod("stigmata")]
public async ValueTask GiveStigmata(CommandArg arg)
{
if (!await arg.CheckOnlineTarget()) return;
foreach (var conf in GameData.StigmataData.Values.Where(stigmata => stigmata.Rarity == stigmata.MaxRarity))
{
var item = await arg.Target!.Player!.InventoryManager!.AddItem(conf.ID, 1, ItemMainTypeEnum.Stigmata, conf.MaxLv, sync: false);
}
await arg.Target!.Player!.SyncInventory();
await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", I18NManager.Translate("Word.Stigmata")));
}
}

View File

@@ -30,6 +30,10 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player)
if (weaponConfig == null) return null;
itemData = await PutItem(itemId, 1, type, level, equipAvatar: equipAvatar, uniqueId: ++Data.NextUniqueId);
break;
case ItemMainTypeEnum.Stigmata:
GameData.StigmataData.TryGetValue(itemId, out var stigmataConfig);
itemData = await PutItem(itemId, 1, type, level, uniqueId: ++Data.NextUniqueId);
break;
default:
break;
}
@@ -63,7 +67,6 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player)
item = oldItem;
break;
}
Data.MaterialItems.Add(item);
break;
case ItemMainTypeEnum.Weapon:
@@ -71,7 +74,6 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player)
{
return item;
}
Data.WeaponItems.Add(item);
break;
case ItemMainTypeEnum.Stigmata:

View File

@@ -111,7 +111,7 @@ public class PlayerInstance(PlayerData data)
return Data.ToProto();
}
public async ValueTask SyncWeapon()
public async ValueTask SyncInventory()
{
await SendPacket(new PacketGetEquipmentDataRsp(this));
}

View File

@@ -2,7 +2,6 @@ using Google.Protobuf.Collections;
using KianaBH.Data;
using KianaBH.KcpSharp;
using KianaBH.Proto;
using KianaBH.Util.Extensions;
namespace KianaBH.GameServer.Server.Packet.Send.Activity;
@@ -31,8 +30,6 @@ public class PacketGeneralActivityGetMainInfoRsp : BasePacket
ExchangeTimes = 1,
};
return activity;
});

View File

@@ -10,7 +10,9 @@ public class PacketGetEquipmentDataRsp : BasePacket
{
var proto = new GetEquipmentDataRsp
{
WeaponList = { player.InventoryManager!.Data.WeaponItems.Select(weapon => weapon.ToWeaponProto()) }
WeaponList = { player.InventoryManager!.Data.WeaponItems.Select(weapon => weapon.ToWeaponProto()) },
StigmataList = { player.InventoryManager!.Data.StigmataItems.Select(stigmata => stigmata.ToStigmataProto()) },
MaterialList = { player.InventoryManager!.Data.MaterialItems.Select(material => material.ToMaterialProto()) }
};
SetData(proto);