using System; using System.Collections.Generic; using System.Net; namespace ET { [ActorMessageHandler] public class C2M_GetPvpBoardInfoHandler : AMActorLocationRpcHandler { protected override async ETTask Run(Unit unit, C2M_GetPvpBoardInfo request, M2C_GetPvpBoardInfo response, Action reply) { try { UnitScene unitScene = unit.GetComponent(); if (MapSceneComponent.Instance.GetUnitSceneType(unitScene.MapId / 100) != UnitSceneType.PersonalPvp) { Log.Warning($"【{UserComponent.Instance.Get(unit.Id)?.NickName}({unit.Id})】获取pvpinfo 场景错误:{unitScene.MapId}"); response.Message = "场景错误"; reply(); return; } PlayerData data = unit.GetComponent(); List list = PvpMap.inatance.GetLevelType(data.personalScord) switch { PersonalPvpType.Cupper => PvpMap.inatance.matchCupperList, PersonalPvpType.Sliver => PvpMap.inatance.matchSliverList, PersonalPvpType.Gold => PvpMap.inatance.matchGoldList, _ => throw new Exception($"{PvpMap.inatance.GetLevelType(data.personalScord)} 错误"), }; response.battleCount = data.personalPvpCount; response.scord = data.personalScord; response.isMatch = list.Contains(unit); response.matchCount = list.Count; await PvpMap.inatance.GetRankList(response.rankList); } catch (Exception e) { Log.Error(e); } reply(); await ETTask.CompletedTask; } } }