/// <summary> /// 玩家上线的处理 /// </summary> /// <param name="response"></param> public override void OnOperationResponse(OperationResponse response) { // 获取角色数据 DtoPlayer dtoPlayer = JsonMapper.ToObject <DtoPlayer> (response.Parameters.ExTryGet((byte)ParameterCode.DtoPlayer) as string); GameData.Player = dtoPlayer; m_MainPanel.OnOnline(dtoPlayer); }
/// <summary> /// 获取玩家数据 处理玩家上线 主要是主界面的初始化工作 /// </summary> /// <param name="dtoPlayer"></param> public void OnOnline(DtoPlayer dtoPlayer) { TextName.text = dtoPlayer.Name; TextLv.text = dtoPlayer.Lv.ToString(); TextPower.text = dtoPlayer.Power.ToString(); // 加载子界面 m_FriendListPanel = UIManager.Instance.LoadPanel(UIPanelType.FriendList) as FriendListPanel; m_AddRequestPanel = UIManager.Instance.LoadPanel(UIPanelType.AddRequest) as AddRequestPanel; m_AddToClientPanel = UIManager.Instance.LoadPanel(UIPanelType.AddToClient) as AddToClientPanel; m_MatchPanel = UIManager.Instance.LoadPanel(UIPanelType.Match) as MatchPanel; // 关闭遮罩面板 UIManager.Instance.PopPanel(); }
public override void OnOperationRequest(OperationRequest request, SendParameters sendParameters, MobaPeer peer) { MobaServer.LogInfo("处理是否添加好友的反馈"); // 是否同意 bool isAccept = (bool)request.Parameters.ExTryGet((byte)ParameterCode.AcceptAddFriend); // 请求添加的玩家数据 int fromId = (int)request.Parameters.ExTryGet((byte)ParameterCode.PlayerId); string fromName = (string)request.Parameters.ExTryGet((byte)ParameterCode.PlayerName); // 请求的客户端 MobaPeer fromPeer = Caches.Player.GetPeer(fromId); OperationResponse response = new OperationResponse((byte)OperationCode.PlayerAddResult); if (isAccept) { response.ReturnCode = (short)ReturnCode.Suceess; // 自身的数据 DataBase.Model.Player player = UserManager.GetPlayer(peer.Username); // 好友的数据 DataBase.Model.Player friend = PlayerManager.GetById(fromId); // 添加好友 PlayerManager.AddFriend(player.Identification, fromId); // 发送更新后的数据 DtoPlayer dtoPlayer = player.ConvertToDot(); response.Parameters = new Dictionary <byte, object>(); response[(byte)ParameterCode.DtoFriend] = JsonMapper.ToJson(dtoPlayer.Friends.Last()); peer.SendOperationResponse(response, sendParameters); dtoPlayer = friend.ConvertToDot(); response.Parameters = new Dictionary <byte, object>(); response[(byte)ParameterCode.DtoFriend] = JsonMapper.ToJson(dtoPlayer.Friends.Last()); fromPeer.SendOperationResponse(response, sendParameters); return; } else { response.ReturnCode = (short)ReturnCode.Falied; response.DebugMessage = fromName + " 拒绝添加你为好友"; } fromPeer.SendOperationResponse(response, sendParameters); }
// 获得数据传输对象 public virtual DtoPlayer ConvertToDot() { DtoPlayer dtoPlayer = new DtoPlayer() { Id = this.Identification, Name = this.Name, Lv = this.Lv, Exp = this.Exp, Power = this.Power, RunCount = this.RunCount, WinCount = this.WinCount, LostCount = this.LostCount, }; // 复制英雄列表 string[] heros = this.HeroIdList.Split(','); foreach (string hero in heros) { dtoPlayer.HeroIds.Add(int.Parse(hero)); } // 复制好友列表 string[] friends = this.FriendIdList.Split(','); foreach (string friend in friends) { if (string.IsNullOrEmpty(friend)) { continue; } int id = int.Parse(friend); string name = PlayerManager.GetById(id).Name; bool isOnline = Caches.Player.IsOnline(id); dtoPlayer.Friends.Add(new DtoFriend(id, name, isOnline)); } return(dtoPlayer); }