/// <summary> /// 得到一个对象实体 /// </summary> public void GetModel(string account) { StringBuilder strSql = new StringBuilder(); strSql.Append("select Id,Account,Password "); strSql.Append(" FROM [AccountModel] "); strSql.Append(" where Account=@account "); SqlParameter[] parameters = { new SqlParameter("@account", SqlDbType.VarChar, 32) }; parameters[0].Value = account; MobaApplication.LogInfo(strSql.ToString()); DataSet ds = DbHelper.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["Id"] != null && ds.Tables[0].Rows[0]["Id"].ToString() != "") { this.Id = int.Parse(ds.Tables[0].Rows[0]["Id"].ToString()); } if (ds.Tables[0].Rows[0]["Account"] != null) { this.Account = ds.Tables[0].Rows[0]["Account"].ToString(); } if (ds.Tables[0].Rows[0]["Password"] != null) { this.Password = ds.Tables[0].Rows[0]["Password"].ToString(); } } }
/// <summary> /// 玩家移动 /// </summary> /// <param name="client"></param> /// <param name="x"></param> /// <param name="y"></param> /// <param name="z"></param> private void onWalk(MobaClient client, float x, float y, float z) { int playerId = playerCache.GetId(client); FightRoom room = fightCache.GetRoom(playerId); if (room == null) { return; } //给每一个客户端发送信息:谁 移动到 哪 MobaApplication.LogInfo("123"); room.Brocast(OpCode.FightCode, OpFight.Walk, 0, "有玩家移动", null, playerId, x, y, z); }
/// <summary> /// 创建角色 /// </summary> /// <param name="name"></param> /// <param name="accId"></param> public void Create(string name, int accId) { PlayerModel model = new PlayerModel(); model.Name = name; model.AccountId = accId; MobaApplication.LogInfo("创建玩家 name = " + name + "accId = " + accId); //返回值是自增 键值 model.Id = model.Add(); accPlayerDict.TryAdd(accId, model.Id); idModelDict.TryAdd(model.Id, model); }
/// <summary> /// 根据连接对象获取账号ID /// </summary> /// <param name="client"></param> /// <returns>有就返回,没有返回-1</returns> public int GetId(MobaClient client) { if (!clientAccDict.ContainsKey(client)) { return(-1); } string account = clientAccDict[client]; MobaApplication.LogInfo(account + "555555" + accModelDict[account].Id); if (!accModelDict.ContainsKey(account)) { return(-1); } return(accModelDict[account].Id); }
/// <summary> /// 进入选人 /// </summary> /// <param name="client"></param> private void onEnter(MobaClient client) { SelectRoom room = selectCache.Enter(playerCache.GetId(client), client); if (room == null) { return; } //先给此客户端发一个房间模型 MobaApplication.LogInfo(JsonMapper.ToJson(room.team1Dict.Values.ToArray())); MobaApplication.LogInfo(JsonMapper.ToJson(room.team2Dict.Values.ToArray())); Send(client, OpCode.SelectCode, OpSelect.GetInfo, 0, "获取房间模型", JsonMapper.ToJson(room.team1Dict.Values.ToArray()), JsonMapper.ToJson(room.team2Dict.Values.ToArray())); //再给房间内的客户端发一条消息:有人进入了 room.Brocast(OpCode.SelectCode, OpSelect.Enter, 0, "有玩家进入", client, playerCache.GetId(client)); }
/// <summary> /// 注册处理 /// </summary> /// <param name="acc"></param> /// <param name="pwd"></param> private void OnRegister(MobaClient client, string acc, string pwd) { MobaApplication.LogInfo("aa"); //无效检测 if (acc == null || pwd == null) { return; } //重复检测 if (cache.Has(acc)) { this.Send(client, OpCode.AccountCode, OpAccount.Register, -1, "账号重复"); return; } //添加账号 cache.Add(acc, pwd); this.Send(client, OpCode.AccountCode, OpAccount.Register, 0, "注册成功"); }
/// <summary> /// 进入房间 /// </summary> /// <param name="playerId"></param> /// <param name="client"></param> public SelectRoom Enter(int playerId, MobaClient client) { MobaApplication.LogInfo(playerId + "33333"); int roomId = -1; if (!playerRoomDict.TryGetValue(playerId, out roomId)) { return(null); } SelectRoom room = null; if (!idRoomDict.TryGetValue(roomId, out room)) { return(null); } room.Enter(playerId, client); return(room); }