bool CratePlayer(string playerName, int accountId, out int playerId) { playerId = CommonDefine.InvalidPlayerId; if (!OpenSql()) { return(false); } mCommondStringBuilder.Clear(); mCommondStringBuilder.Append("INSERT INTO[dbo].[Player] ([PlayerName],[accountId]) VALUES('"); mCommondStringBuilder.Append(playerName); mCommondStringBuilder.Append("',"); mCommondStringBuilder.Append(accountId); mCommondStringBuilder.Append(")"); string sqlStr = mCommondStringBuilder.ToString(); try { SqlCommand checkCommond = new SqlCommand(sqlStr, mConnection); SqlDataReader sqlReader = checkCommond.ExecuteReader(); if (sqlReader.Read()) { playerId = sqlReader.GetInt32(0); } sqlReader.Close(); LBLogger.Info(LogTag, "创建玩家执行 " + playerId + " " + sqlStr); } catch (Exception ex) { LBLogger.Error(LogTag, "创建玩家异常:" + accountId + " " + sqlStr + " Ex:" + ex.Message); } return(playerId != CommonDefine.InvalidPlayerId); }
int GetAccountId(string accountName, string password) { mCommondStringBuilder.Clear(); mCommondStringBuilder.Append("SELECT AccountId FROM dbo.Account Where AccountName = '"); mCommondStringBuilder.Append(accountName); mCommondStringBuilder.Append("' AND Password = '******'"); string sqlStr = mCommondStringBuilder.ToString(); int accountId = -1; try { SqlCommand checkCommond = new SqlCommand(sqlStr, mConnection); SqlDataReader sqlReader = checkCommond.ExecuteReader(); if (sqlReader.Read()) { accountId = sqlReader.GetInt32(0); } sqlReader.Close(); LBLogger.Info(LogTag, "账号登录验证成功 " + accountId + " " + sqlStr); } catch (Exception ex) { LBLogger.Error(LogTag, "账号登录验证异常:" + accountName + " " + password + " " + sqlStr + " Ex:" + ex.Message); } finally { } return(accountId); }
public static void OnOperateRequest(MyPeer peer, OperationRequest operationRequest) { RqEnterRoom rqEnterRoom = Deserialization(operationRequest.Parameters); if (null == rqEnterRoom) { LBLogger.Info(LogTag, "解析请求进入房间消息失败"); } else { LBPlayer curPlayer = LBPlayerManager.Instance.GetPlayerByConnectionId(peer.ConnectionId); LBLogger.Info(LogTag, "临时日志 " + curPlayer.PlayerId + " " + curPlayer.ConnectionId); if (null == curPlayer) { LBLogger.Info(LogTag, "不存在的账号请求进入房间,连接id:" + peer.ConnectionId); } else { if (LBRoomManager.Instance.IsPlayerInRoom(curPlayer.PlayerId)) { LBLogger.Info(LogTag, "请求进入房间,但是已经在房间中"); } else { if (!LBRoomManager.Instance.PlayerEnterRoom(rqEnterRoom.RoomId, curPlayer.PlayerId)) { LBLogger.Info(LogTag, "请求进入房间失败"); } } } } }
public int CreateRoom(string roomName) { LBRoom newRoom = mCachedRoom.GetObject(); LBLogger.Info(LogTag, "创建完房间 " + newRoom.RoomId); mRoomDic[newRoom.RoomId] = newRoom; newRoom.SetRoomName(roomName); return(newRoom.RoomId); }
LBScene GetSceneByRoomId(int roomId) { int sceneId; if (!mRoomIdSceneIdDic.TryGetValue(roomId, out sceneId)) { LBLogger.Info(LogTag, "通过房间号没有找到对应的场景 " + roomId); return(null); } return(GetSceneBySceneId(sceneId)); }
public static void OnOperateRequest(MyPeer peer, OperationRequest operationRequest) { LBPlayer curPlayer = LBPlayerManager.Instance.GetPlayerByConnectionId(peer.ConnectionId); if (null == curPlayer) { LBLogger.Info("RqLoadFinish", "账号不存在 " + peer.ConnectionId); return; } LBSceneManager.Instance.PlayerLoadFinish(curPlayer.PlayerId); }
public LBScene GetSceneByPlayerId(int playerId) { int sceneId = 0; if (!mPlayerIdSceneIdDic.TryGetValue(playerId, out sceneId)) { LBLogger.Info(LogTag, "通過玩家id沒有找到對應的場景 " + playerId); return(null); } return(GetSceneBySceneId(sceneId)); }
public static void OnOperateRequest(MyPeer peer, OperationRequest operationRequest) { LBPlayer curPlayer = LBPlayerManager.Instance.GetPlayerByConnectionId(peer.ConnectionId); if (curPlayer == null) { return; } if (LBRoomManager.Instance.PlayerRoomReady(curPlayer.PlayerId)) { } else { LBLogger.Info("RqRoomReadyPlayHandler", "发起准备,失败 " + peer.ConnectionId); } }
public void AccountCreate(string accountName, string password, int peerConnectionId) { LBLogger.Info(LogTag, "请求创建账号"); LBAccount curAccount = GetAccountByName(accountName); if (null != curAccount) { MyPeer peer = LBPeerManager.Instance.GetPeer(peerConnectionId); if (null != peer) { peer.SendCustomEvent(RpId.CreateAccountResult, RpCreateAccountResult.Serialization(false, RpCreateAccountResult.CreateAccountErrorCode.AccountExist)); } } else { LBSqlManager.Instance.CreateAccount(accountName, password, peerConnectionId); } }
public void CreateAccount(string accountName, string password, int peerConnectionId) { if (!OpenSql()) { return; } int accountId = GetAccountId(accountName, password); if (-1 != accountId) { LBAccountManager.Instance.CreateAccountResult(false, accountId, accountName, password, peerConnectionId); return; } mCommondStringBuilder.Clear(); mCommondStringBuilder.Append("INSERT INTO[dbo].[Account] ([AccountName],[Password]) VALUES('"); mCommondStringBuilder.Append(accountName); mCommondStringBuilder.Append("','"); mCommondStringBuilder.Append(password); mCommondStringBuilder.Append("')"); string sqlStr = mCommondStringBuilder.ToString(); bool insertRet = false; try { SqlCommand sqlCommand = new SqlCommand(sqlStr, mConnection); int ret = sqlCommand.ExecuteNonQuery(); insertRet = ret != 0; LBLogger.Info(LogTag, "账号创建成功 " + ret + " " + sqlStr); } catch (Exception ex) { LBLogger.Error(LogTag, "账号创建异常:" + accountName + " " + password + " " + sqlStr + " " + ex.Message); } if (insertRet) { accountId = GetAccountId(accountName, password); insertRet = accountId != -1; } LBAccountManager.Instance.CreateAccountResult(insertRet, accountId, accountName, password, peerConnectionId); }
public static void OnOperateRequest(MyPeer peer, OperationRequest operationRequest) { LBLogger.Info(LogTag, "请求创建账号"); RqCreateAccount rqCreateAccount = Deserialization(operationRequest.Parameters); if (null != rqCreateAccount) { LBAccountManager.Instance.AccountCreate(rqCreateAccount.AccountName, rqCreateAccount.Password, peer.ConnectionId); } else { if (ParseErrorCode == RqLoginErrorCode.Null) { LBLogger.Error(LogTag, "登录游戏解析失败,但是没有错误码"); return; } peer.SendCustomEvent(RpId.CreateAccountResult, RpCreateAccountResult.Serialization(false, RpCreateAccountResult.CreateAccountErrorCode.ParseError)); } }
public static void OnOperateRequest(MyPeer peer, OperationRequest operationRequest) { RqLeaveRoom rqEnterRoom = Deserialization(operationRequest.Parameters); if (null == rqEnterRoom) { LBLogger.Info(LogTag, "请求离开Room,解析失败"); peer.SendCustomEvent(RpId.LeaveRoom, RpLeaveRoom.Serialization(false)); } else { LBPlayer curPlayer = LBPlayerManager.Instance.GetPlayerByConnectionId(peer.ConnectionId); if (null == curPlayer) { LBLogger.Info(LogTag, "请求离开Room,当前玩家不存在"); peer.SendCustomEvent(RpId.LeaveRoom, RpLeaveRoom.Serialization(false)); } else { if (!LBRoomManager.Instance.IsPlayerInRoom(curPlayer.PlayerId)) { LBLogger.Info(LogTag, "请求离开房间,但是当前不在房间中 "); peer.SendCustomEvent(RpId.LeaveRoom, RpLeaveRoom.Serialization(false)); } else { bool leaveResult = LBRoomManager.Instance.PlayerLeaveRoom(curPlayer.PlayerId); if (leaveResult) { LBLogger.Info(LogTag, "请求离开房间成功"); peer.SendCustomEvent(RpId.LeaveRoom, RpLeaveRoom.Serialization(true)); } else { LBLogger.Info(LogTag, "请求离开失败"); peer.SendCustomEvent(RpId.LeaveRoom, RpLeaveRoom.Serialization(false)); } } } } }
public static void OnOperateRequest(MyPeer peer, OperationRequest operationRequest) { RqCreateRoom rqCreateRoom = Deserialization(operationRequest.Parameters); if (null == rqCreateRoom) { LBLogger.Info(LogTag, "请求创建房间,消息解析失败"); peer.SendCustomEvent(RpId.CreateRoom, RpCreateRoom.Serialization(false, CommonDefine.InvalidRoomId, string.Empty)); } else { LBPlayer curPlayer = LBPlayerManager.Instance.GetPlayerByConnectionId(peer.ConnectionId); if (null == curPlayer) { LBLogger.Info(LogTag, "请求创建房间,账号未登陆,连接ID:" + peer.ConnectionId); peer.SendCustomEvent(RpId.CreateRoom, RpCreateRoom.Serialization(false, CommonDefine.InvalidRoomId, string.Empty)); } else { if (LBRoomManager.Instance.IsPlayerInRoom(curPlayer.PlayerId)) { LBLogger.Info(LogTag, "无法创建,因为当前已经处于房间"); peer.SendCustomEvent(RpId.CreateRoom, RpCreateRoom.Serialization(false, CommonDefine.InvalidRoomId, string.Empty)); } else { int roomId = LBRoomManager.Instance.CreateRoom(rqCreateRoom.RoomName); if (CommonDefine.InvalidRoomId == roomId) { LBLogger.Info(LogTag, "创建房间失败"); peer.SendCustomEvent(RpId.CreateRoom, RpCreateRoom.Serialization(false, CommonDefine.InvalidRoomId, string.Empty)); } else { LBLogger.Info(LogTag, "创建房间成功 " + roomId); peer.SendCustomEvent(RpId.CreateRoom, RpCreateRoom.Serialization(true, roomId, rqCreateRoom.RoomName)); } } } } }
bool GetPlayerInfo(int accountId, out int playerId, out string playerName) { playerId = CommonDefine.InvalidPlayerId; playerName = string.Empty; if (!OpenSql()) { return(false); } mCommondStringBuilder.Clear(); mCommondStringBuilder.Append("SELECT PlayerId, PlayerName FROM dbo.Player Where AccountId = "); mCommondStringBuilder.Append(accountId.ToString()); string sqlStr = mCommondStringBuilder.ToString(); try { SqlCommand checkCommond = new SqlCommand(sqlStr, mConnection); SqlDataReader sqlReader = checkCommond.ExecuteReader(); if (sqlReader.Read()) { playerId = sqlReader.GetInt32(0); LBLogger.Info(LogTag, "玩家登录执行 Read success " + playerId); playerName = sqlReader.GetString(1); } sqlReader.Close(); LBLogger.Info(LogTag, "玩家登录执行 " + playerId + " " + sqlStr); } catch (Exception ex) { LBLogger.Error(LogTag, "玩家登录验证异常:" + accountId + " " + sqlStr + " Ex:" + ex.Message); } return(playerId != CommonDefine.InvalidPlayerId); }
public void AccountLoginResult(bool success, int accountId, string accountName, string password, int peerConnectionId) { LBLogger.Info(LogTag, "数据服务器返回结果 " + success + " " + accountId + " " + peerConnectionId); LBAccount curAccount = GetAccountByName(accountName); if (null != curAccount) { //客户端发送了多条登录消息? LBLogger.Error(LogTag, "收到账号登录结果时,当前账号已经存,账号名 " + accountName); return; } curAccount = GetAccountById(accountId); if (null != curAccount) { //客户端发送了多条登录消息? LBLogger.Error(LogTag, "收到账号登录结果时,当前账号已经存。账号ID " + accountName + " 为什么mAccountNameDic中没有账号?"); return; } MyPeer peer = LBPeerManager.Instance.GetPeer(peerConnectionId); if (null == peer) { //客户端主动断开连接了? LBLogger.Info(LogTag, "没有找到网络连接 " + peerConnectionId); return; } if (success) { LBAccount account = mAccountCacheMgr.GetObject(); account.SetAccountInfo(accountName, password, accountId, peerConnectionId); mAccountIdDic[accountId] = account; mAccountNameDic[accountName] = account; mPeerIdDic[peerConnectionId] = account; } peer.SendCustomEvent(RpId.LoginResult, RpLoginResult.Serialization(success, RpLoginResult.LoginErrorCode.PasswordError)); }
/// <summary> /// 刷新房间号 /// </summary> void RefreshRoomId() { RoomId = ++RoomCount; LBLogger.Info(LogTag, "刷新房间ID " + RoomId); }
/// <summary> /// 踢出当前玩家 /// </summary> public void KickAccount() { LBLogger.Info(LogTag, "踢出账号 " + PeerConnectionId); PeerConnectionId = -1; LBPeerManager.Instance.KickoutPeer(PeerConnectionId); }
/// <summary> /// 账号登录 /// </summary> /// <param name="password"></param> /// <param name="peerId"></param> public void Login(int peerId) { LBLogger.Info(LogTag, "账号登录 " + " " + peerId); PeerConnectionId = peerId; }