37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
namespace ET.Server
|
|
{
|
|
[MessageSessionHandler(SceneType.Gate)]
|
|
public class C2G_HeroWearEquipHandler : RpcMessageHandler<C2G_HeroWearEquip, R2C_HeroWearEquip>
|
|
{
|
|
protected override async ETTask OnRun(Session session, C2G_HeroWearEquip request, R2C_HeroWearEquip response)
|
|
{
|
|
Player player = session.GetComponent<SessionPlayerComponent>()?.Player;
|
|
if (player == null)
|
|
{
|
|
response.Error = ErrorCode.ERR_RpcFail;
|
|
response.Message = "player_not_found";
|
|
return;
|
|
}
|
|
|
|
if (!HeroEquipService.TryWearEquip(player, request.heroId, request.itemIndex, request.slotIndex, out string reason))
|
|
{
|
|
response.Error = ErrorCode.ERR_EQUIP_NOT_ALLOWED;
|
|
response.Message = reason;
|
|
return;
|
|
}
|
|
|
|
response.heroId = request.heroId;
|
|
response.itemIndex = request.itemIndex;
|
|
response.slotIndex = request.slotIndex;
|
|
|
|
Hero hero = player.GetComponent<HeroComponent>()?.GetHero(request.heroId);
|
|
if (hero != null)
|
|
{
|
|
HeroNoticeHelper.NotifyHeroUpdate(session, hero);
|
|
}
|
|
|
|
await ETTask.CompletedTask;
|
|
}
|
|
}
|
|
}
|