namespace ET.Server { [MessageSessionHandler(SceneType.Gate)] public class C2G_HeroWearEquipHandler : RpcMessageHandler { protected override async ETTask OnRun(Session session, C2G_HeroWearEquip request, R2C_HeroWearEquip response) { Player player = session.GetComponent()?.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()?.GetHero(request.heroId); if (hero != null) { HeroNoticeHelper.NotifyHeroUpdate(session, hero); } await ETTask.CompletedTask; } } }