feat: add equip weapon & stigmata

This commit is contained in:
Naruse
2025-06-15 10:45:10 +08:00
parent 1751dc6cbb
commit 7b80075e98
7 changed files with 194 additions and 12 deletions

View File

@@ -8,6 +8,20 @@ public class HandlerDressEquipmentReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
await connection.SendPacket(new PacketDressEquipmentRsp());
var req = DressEquipmentReq.Parser.ParseFrom(data);
var player = connection.Player!;
switch (req.Slot)
{
case EquipmentSlot.Weapon1:
await player.InventoryManager!.EquipAvatar((int)req.AvatarId, (int)req.UniqueId);
break;
case EquipmentSlot.Stigmata1:
case EquipmentSlot.Stigmata2:
case EquipmentSlot.Stigmata3:
await player.InventoryManager!.EquipStigmata((int)req.AvatarId, (int)req.UniqueId, ((int)req.Slot - 1));
break;
}
await connection.SendPacket(new PacketDressEquipmentRsp(req.Slot,req.UniqueId));
}
}

View File

@@ -0,0 +1,18 @@
using KianaBH.GameServer.Server.Packet.Send.Avatar;
using KianaBH.Proto;
namespace KianaBH.GameServer.Server.Packet.Recv.Avatar;
[Opcode(CmdIds.ExchangeAvatarStigmataReq)]
public class HandlerExchangeAvatarStigmataReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
var req = ExchangeAvatarStigmataReq.Parser.ParseFrom(data);
var player = connection.Player!;
await player.InventoryManager!.ExchangeStigmata((int)req.AvatarId1, (int)req.AvatarId2, ((int)req.Slot-1));
await connection.SendPacket(new PacketExchangeAvatarStigmataRsp(req.AvatarId1,req.AvatarId2,req.Slot));
}
}

View File

@@ -0,0 +1,18 @@
using KianaBH.GameServer.Server.Packet.Send.Avatar;
using KianaBH.Proto;
namespace KianaBH.GameServer.Server.Packet.Recv.Avatar;
[Opcode(CmdIds.ExchangeAvatarWeaponReq)]
public class HandlerExchangeAvatarWeaponReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
var req = ExchangeAvatarWeaponReq.Parser.ParseFrom(data);
var player = connection.Player!;
await player.InventoryManager!.ExchangeAvatar((int)req.AvatarId1, (int)req.AvatarId2);
await connection.SendPacket(CmdIds.ExchangeAvatarWeaponRsp);
}
}