//处理登录 public void MsgLogin(Conn conn, ProtocolBase protoBase) { //获取数值 int start = 0; ProtocolBytes protocol = (ProtocolBytes)protoBase; string protoName = protocol.GetString(start, ref start); string username = protocol.GetString(start, ref start); string password = protocol.GetString(start, ref start); string strFormat = "[收到登录协议 ]" + conn.GetAddress(); Console.WriteLine(strFormat + " 用户名: " + username + " 密码: " + password); //构建返回协议 ProtocolBytes protocolRet = new ProtocolBytes(); protocolRet.AddString("Login"); //验证 if (!ServerSQL.instance.CheckPassWord(username, password)) { protocolRet.AddInt(-1); conn.Send(protocolRet); return; } //是否已经登录 ProtocolBytes protocolLogout = new ProtocolBytes(); protocolLogout.AddString("Logout"); if (!Player.KickOff(username, protocolLogout)) { protocolRet.AddInt(-1); conn.Send(protocolRet); return; } //获取玩家数据 PlayerData playerData = ServerSQL.instance.GetPlayerData(username); if (playerData == null) { protocolRet.AddInt(-1); conn.Send(protocolRet); return; } conn.player = new Player(username, conn); conn.player.data = playerData; //事件触发 ServerTCP.instance.handlePlayerEvent.OnLogin(conn.player); //返回 protocolRet.AddInt(0); conn.Send(protocolRet); ServerTCP.instance.ShowOnlineSQL(conn.player); return; }
//登录 public void MsgLogin(Conn conn, ProtocolBase protocolBase) { int start = 0; ProtocolBytes protocol = (ProtocolBytes)protocolBase; string protoName = protocol.GetString(start, ref start); string id = protocol.GetString(start, ref start); string pw = protocol.GetString(start, ref start); string strFormat = "[收到登录协议] " + conn.GetAddr(); Console.WriteLine(strFormat + " 用户名: " + id + " 密码: " + pw); //构建返回协议 protocol = new ProtocolBytes(); protocol.AddString("Login"); //验证 if (!DataMgr.instance.CheckPassWord(id, pw)) { protocol.AddInt(-1); conn.Send(protocol); return; } //是否已经登录 ProtocolBytes protocolLogout = new ProtocolBytes(); protocolLogout.AddString("Logout"); if (!Player.KickOff(id, protocolLogout)) { protocol.AddInt(-2); conn.Send(protocol); return; } //获取玩家数据 PlayerData playerData = DataMgr.instance.GetPlayerData(id); conn.player = new Player(id, conn); conn.player.data = playerData; if (playerData == null) { protocol.AddInt(-3); conn.Send(protocol); } else { //事件触发 Serv.instance.handlePlayerEvent.OnLogin(conn.player); protocol.AddInt(0); conn.Send(protocol); } //返回 return; }
// Protocol: Login // Rec Args: string[id] string[pw] // Return: int[0-success] int[-1-fail] public void MsgLogin(Conn conn, ProtocolBase protoBase) { ProtocolBytes protocol = (ProtocolBytes)protoBase; int start = 0; string protoName = protocol.GetString(start, ref start); string id = protocol.GetString(start, ref start); string pw = protocol.GetString(start, ref start); Console.WriteLine("[HandleConnMsg.MsgLogin] Receive Login protocol: id[" + id + "] pw[" + pw + "]"); ProtocolBytes protocolRet = new ProtocolBytes(); protocolRet.AddString("Login"); if (!DataMgr.instance.CheckPassword(id, pw)) { protocolRet.AddInt32(-1); conn.Send(protocolRet); return; } ProtocolBytes protocolLogout = new ProtocolBytes(); protocolLogout.AddString("Logout"); if (!Player.KickOff(id, protocolLogout)) { protocolRet.AddInt32(-1); conn.Send(protocolRet); return; } PlayerData playerData = DataMgr.instance.GetPlayerData(id); if (playerData == null) { protocolRet.AddInt32(-1); conn.Send(protocolRet); return; } conn.player = new Player(id, conn); conn.player.data = playerData; ServNet.instance.handlePlayerEvent.OnLogin(conn.player); protocolRet.AddInt32(0); conn.Send(protocolRet); }
public void MsgLogin(Conn conn, ProtocolBase protocolBase) { int start = 0; ProtocolBytes protocolBytes = (ProtocolBytes)protocolBase; string name = protocolBytes.GetString(start, ref start); string id = protocolBytes.GetString(start, ref start); string pw = protocolBytes.GetString(start, ref start); Console.WriteLine("[登入协议]" + "用户名:" + id + "密码:" + pw); protocolBytes = new ProtocolBytes(); protocolBytes.AddString("Login"); //验证 if (!DataMgr.instance.CheckPassWord(id, pw)) { protocolBytes.AddInt(-1); conn.Send(protocolBytes); return; } //是否已经登入,如果已登入,强制退出,并且此次登入失效 ProtocolBytes protocolLogout = new ProtocolBytes(); protocolLogout.AddString("Logout"); if (!Player.KickOff(id, protocolLogout)) { protocolBytes.AddInt(-1); conn.Send(protocolBytes); return; } //获取玩家数据 PlayerData playerData = DataMgr.instance.GetPlayerData(id); if (playerData == null) { protocolBytes.AddInt(-1); conn.Send(protocolBytes); return; } conn.player = new Player(id, conn); conn.player.data = playerData; //事件触发 ServNet.getInstance().HandlePlayerEvent.OnLogin(conn.player); protocolBytes.AddInt(0); conn.Send(protocolBytes); return; }