mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-15 06:14:35 +01:00
feat: add equip weapon & stigmata
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
using KianaBH.GameServer.Game.Player;
|
||||
using KianaBH.KcpSharp;
|
||||
using KianaBH.Proto;
|
||||
|
||||
@@ -5,12 +6,12 @@ namespace KianaBH.GameServer.Server.Packet.Send.Avatar;
|
||||
|
||||
public class PacketDressEquipmentRsp : BasePacket
|
||||
{
|
||||
public PacketDressEquipmentRsp() : base(CmdIds.DressEquipmentRsp)
|
||||
public PacketDressEquipmentRsp(EquipmentSlot slot, uint uniqueId) : base(CmdIds.DressEquipmentRsp)
|
||||
{
|
||||
// TODO: Implement
|
||||
var proto = new DressEquipmentRsp
|
||||
{
|
||||
|
||||
UniqueId = uniqueId,
|
||||
Slot = slot
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
using KianaBH.GameServer.Game.Player;
|
||||
using KianaBH.KcpSharp;
|
||||
using KianaBH.Proto;
|
||||
|
||||
namespace KianaBH.GameServer.Server.Packet.Send.Avatar;
|
||||
|
||||
public class PacketExchangeAvatarStigmataRsp : BasePacket
|
||||
{
|
||||
public PacketExchangeAvatarStigmataRsp(uint avatarId1, uint avatarId2, EquipmentSlot slot) : base(CmdIds.ExchangeAvatarStigmataRsp)
|
||||
{
|
||||
var proto = new ExchangeAvatarStigmataRsp
|
||||
{
|
||||
AvatarId1 = avatarId1,
|
||||
AvatarId2 = avatarId2,
|
||||
Slot = slot
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user