예제 #1
0
        /// <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();
                }
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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));
        }
예제 #6
0
 /// <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, "注册成功");
 }
예제 #7
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);
        }