mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
sync: main repo
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Item;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
using EggLink.DanhengServer.Util;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Item;
|
||||
|
||||
@@ -11,10 +12,15 @@ public class HandlerComposeSelectedRelicCsReq : Handler
|
||||
{
|
||||
var req = ComposeSelectedRelicCsReq.Parser.ParseFrom(data);
|
||||
var player = connection.Player!;
|
||||
var item = await player.InventoryManager!.ComposeRelic(req);
|
||||
if (player.InventoryManager!.Data.RelicItems.Count >= GameConstants.INVENTORY_MAX_RELIC)
|
||||
{
|
||||
await connection.SendPacket(new PacketComposeSelectedRelicScRsp(req.ComposeId, Retcode.RetRelicExceedLimit));
|
||||
return;
|
||||
}
|
||||
var item = await player.InventoryManager.ComposeRelic(req);
|
||||
if (item == null)
|
||||
{
|
||||
await connection.SendPacket(new PacketComposeSelectedRelicScRsp());
|
||||
await connection.SendPacket(new PacketComposeSelectedRelicScRsp(req.ComposeId));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ public class HandlerDestroyItemCsReq : Handler
|
||||
{
|
||||
var req = DestroyItemCsReq.Parser.ParseFrom(data);
|
||||
|
||||
await connection.Player!.InventoryManager!.RemoveItem((int)req.ItemCount, (int)req.ItemCount);
|
||||
await connection.Player!.InventoryManager!.RemoveItem((int)req.ItemId, (int)req.ItemCount);
|
||||
await connection.SendPacket(CmdIds.DestroyItemScRsp);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using EggLink.DanhengServer.Enums.Item;
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Item;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Item;
|
||||
|
||||
[Opcode(CmdIds.DiscardRelicCsReq)]
|
||||
public class HandlerDiscardRelicCsReq : Handler
|
||||
{
|
||||
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
var req = DiscardRelicCsReq.Parser.ParseFrom(data);
|
||||
var result =
|
||||
await connection.Player!.InventoryManager!.DiscardItems(req.RelicUniqueIdList, req.IsDiscard,
|
||||
ItemMainTypeEnum.Relic);
|
||||
await connection.SendPacket(new PacketDiscardRelicScRsp(result, req.IsDiscard));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using EggLink.DanhengServer.Enums.Item;
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Item;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Item;
|
||||
|
||||
[Opcode(CmdIds.LockEquipmentCsReq)]
|
||||
public class HandlerLockEquipmentCsReq : Handler
|
||||
{
|
||||
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
var req = LockEquipmentCsReq.Parser.ParseFrom(data);
|
||||
var result =
|
||||
await connection.Player!.InventoryManager!.LockItems(req.EquipmentIdList, req.IsProtected,
|
||||
ItemMainTypeEnum.Equipment);
|
||||
await connection.SendPacket(new PacketLockEquipmentScRsp(result));
|
||||
}
|
||||
}
|
||||
19
GameServer/Server/Packet/Recv/Item/HandlerLockRelicCsReq.cs
Normal file
19
GameServer/Server/Packet/Recv/Item/HandlerLockRelicCsReq.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using EggLink.DanhengServer.Enums.Item;
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Item;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Item;
|
||||
|
||||
[Opcode(CmdIds.LockRelicCsReq)]
|
||||
public class HandlerLockRelicCsReq : Handler
|
||||
{
|
||||
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
var req = LockRelicCsReq.Parser.ParseFrom(data);
|
||||
var result =
|
||||
await connection.Player!.InventoryManager!.LockItems(req.RelicUniqueIdList, req.IsProtected,
|
||||
ItemMainTypeEnum.Relic);
|
||||
await connection.SendPacket(new PacketLockRelicScRsp(result));
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ public class HandlerSellItemCsReq : Handler
|
||||
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
var req = SellItemCsReq.Parser.ParseFrom(data);
|
||||
var items = await connection.Player!.InventoryManager!.SellItem(req.CostData);
|
||||
var items = await connection.Player!.InventoryManager!.SellItem(req.CostData, req.ToMaterial);
|
||||
await connection.SendPacket(new PacketSellItemScRsp(items));
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.MatchThreeModule;
|
||||
using EggLink.DanhengServer.Enums.Mission;
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.MatchThreeModule;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
@@ -11,6 +12,8 @@ public class HandlerMatchThreeLevelEndCsReq : Handler
|
||||
{
|
||||
var req = MatchThreeLevelEndCsReq.Parser.ParseFrom(data);
|
||||
|
||||
await connection.Player!.MissionManager!.HandleFinishType(MissionFinishTypeEnum.MatchThreeFinishLevel, req);
|
||||
|
||||
await connection.SendPacket(new PacketMatchThreeLevelEndScRsp(req.LevelId, req.ModeId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Player;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Player;
|
||||
|
||||
[Opcode(CmdIds.ReserveStaminaExchangeCsReq)]
|
||||
public class HandlerReserveStaminaExchangeCsReq : Handler
|
||||
{
|
||||
public async override Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
var req = ReserveStaminaExchangeCsReq.Parser.ParseFrom(data);
|
||||
var player = connection.Player;
|
||||
if (player == null) return;
|
||||
var amount = req.Num;
|
||||
if (amount <= 0 || player.Data.StaminaReserve < amount)
|
||||
{
|
||||
await connection.SendPacket(new PacketReserveStaminaExchangeScRsp(0));
|
||||
}
|
||||
else
|
||||
{
|
||||
player.Data.StaminaReserve -= amount;
|
||||
player.Data.Stamina += (int)amount;
|
||||
|
||||
await connection.SendPacket(new PacketStaminaInfoScNotify(player));
|
||||
await connection.SendPacket(new PacketReserveStaminaExchangeScRsp(amount));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,16 +6,28 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Item;
|
||||
|
||||
public class PacketComposeSelectedRelicScRsp : BasePacket
|
||||
{
|
||||
public PacketComposeSelectedRelicScRsp() : base(CmdIds.ComposeSelectedRelicScRsp)
|
||||
public PacketComposeSelectedRelicScRsp(uint composeId) : base(CmdIds.ComposeSelectedRelicScRsp)
|
||||
{
|
||||
var proto = new ComposeSelectedRelicScRsp
|
||||
{
|
||||
ComposeId = composeId,
|
||||
Retcode = 1
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
|
||||
public PacketComposeSelectedRelicScRsp(uint composeId, Retcode retcode) : base(CmdIds.ComposeSelectedRelicScRsp)
|
||||
{
|
||||
var proto = new ComposeSelectedRelicScRsp
|
||||
{
|
||||
ComposeId = composeId,
|
||||
Retcode = (uint)retcode
|
||||
};
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
|
||||
public PacketComposeSelectedRelicScRsp(uint composeId, ItemData item)
|
||||
: base(CmdIds.ComposeSelectedRelicScRsp)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Item;
|
||||
|
||||
public class PacketDiscardRelicScRsp : BasePacket
|
||||
{
|
||||
public PacketDiscardRelicScRsp(bool success, bool isDiscard) : base(CmdIds.DiscardRelicScRsp)
|
||||
{
|
||||
DiscardRelicScRsp proto = new();
|
||||
|
||||
if (success) proto.IsDiscard = isDiscard;
|
||||
else proto.Retcode = (uint)Retcode.RetFail;
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Item;
|
||||
|
||||
public class PacketLockEquipmentScRsp : BasePacket
|
||||
{
|
||||
public PacketLockEquipmentScRsp(bool success) : base(CmdIds.LockEquipmentScRsp)
|
||||
{
|
||||
LockEquipmentScRsp proto = new();
|
||||
|
||||
if (!success) proto.Retcode = (uint)Retcode.RetFail;
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
}
|
||||
16
GameServer/Server/Packet/Send/Item/PacketLockRecliScRsp.cs
Normal file
16
GameServer/Server/Packet/Send/Item/PacketLockRecliScRsp.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Item;
|
||||
|
||||
public class PacketLockRelicScRsp : BasePacket
|
||||
{
|
||||
public PacketLockRelicScRsp(bool success) : base(CmdIds.LockRelicScRsp)
|
||||
{
|
||||
LockRelicScRsp proto = new();
|
||||
|
||||
if (!success) proto.Retcode = (uint)Retcode.RetFail;
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Player;
|
||||
|
||||
public class PacketReserveStaminaExchangeScRsp : BasePacket
|
||||
{
|
||||
public PacketReserveStaminaExchangeScRsp(uint amount) : base(CmdIds.ReserveStaminaExchangeScRsp)
|
||||
{
|
||||
var proto = new ReserveStaminaExchangeScRsp();
|
||||
|
||||
if (amount > 0) proto.Num = amount;
|
||||
else proto.Retcode = (uint)Retcode.RetFail;
|
||||
|
||||
SetData(proto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user