public void Login() { CMLoginRequest req = new CMLoginRequest(); req.DeviceID = DeviceID.UUID; network.Send <CMLoginRequest, CMLoginReply>(req , (reply) => { //TODO:重连Or 退出 if (reply.IsInBattle) { playerData.SetData(reply.PlayerInfo); MessageBox.Show("战斗提示", "已经在战场中,是否重连!", MessageBoxStyle.OKCancelClose, (result) => { if (result.result == MessageBoxResultType.OK) { CancelReconnect(1, 1); //TODO:重连 isLogin = true; } else { CancelReconnect(1, 1); isLogin = true; } }); } else { isLogin = true; playerData.SetData(reply.PlayerInfo); } }); }
public void SendReconnectMsg() { CMLoginRequest req = new CMLoginRequest(); req.DeviceID = DeviceID.UUID; network.Send <CMLoginRequest, CMLoginReply>(req , (reply) => { playerData.SetData(reply.PlayerInfo); }); }
private void OnLogin(CMLoginRequest msg) { var db = dao.Login(msg.DeviceID); data.SetData(sessionID, db); data.Login(); Debug.Log($"{data.uid} login"); CMLoginReply reply = new CMLoginReply(); reply.PlayerInfo = new PlayerInfo(); reply.PlayerInfo.Exp = data.exp; reply.PlayerInfo.Gold = data.gold; reply.PlayerInfo.Level = data.level; reply.PlayerInfo.Name = data.name; reply.PlayerInfo.Uid = data.uid; reply.IsInBattle = false; var room = battleProxy.GetUserRoom(data.uid); if (room != null) { reply.IsInBattle = true; reply.BattleServerInfo = new BattleServerInfo(); reply.BattleServerInfo.Address = room.battleServer.address; reply.BattleServerInfo.Name = room.battleServer.name; reply.BattleServerInfo.Token = room.userTokens.First(a => a.Uid == data.uid).Token; reply.BattleServerInfo.State = room.battleServer.state.ToString(); } SendMessage(reply); if (reply.IsInBattle) { data.SetState(UserState.Game); } else { data.SetState(UserState.Hall); } }