Beispiel #1
0
        public ErrorCode OnCs2DbQueryRanking(NetSessionBase session, Google.Protobuf.IMessage message)
        {
            Protos.CS2DB_QueryRanking request = (Protos.CS2DB_QueryRanking)message;
            int @from = request.From;
            int count = request.Count;

            Protos.DB2CS_QueryRankingRet resp = ProtoCreator.R_CS2DB_QueryRanking(request.Opts.Pid);
            string    str       = $"SELECT id,uname,nickname,avatar,gender,last_login_time,ranking,exp FROM account_user ORDER BY ranking DESC LIMIT {@from}, {count}";
            ErrorCode errorCode = DB.instance.accountDB.SqlExecQuery(str, dataReader =>
            {
                while (dataReader.Read())
                {
                    Protos.DB2CS_RankingInfo rankingInfo = new Protos.DB2CS_RankingInfo();
                    rankingInfo.Ukey          = dataReader.GetUInt32("id");
                    rankingInfo.Name          = dataReader.GetString("nickname");
                    rankingInfo.Avatar        = dataReader.GetString("avatar");
                    rankingInfo.Gender        = dataReader.GetByte("gender");
                    rankingInfo.LastLoginTime = dataReader.GetInt64("last_login_time");
                    rankingInfo.Rank          = dataReader.GetInt32("ranking");
                    rankingInfo.Exp           = dataReader.GetInt32("exp");
                    resp.RankingInfos.Add(rankingInfo);
                }
                return(ErrorCode.Success);
            });

            session.Send(resp);
            return(ErrorCode.Success);
        }
Beispiel #2
0
        /// <summary>
        /// 玩家请求查询排行榜
        /// </summary>
        public ErrorCode OnGc2CsQueryRanking(NetSessionBase session, IMessage message)
        {
            Protos.GC2CS_QueryRanking request = (Protos.GC2CS_QueryRanking)message;
            ulong  gcNID = request.Opts.Transid;
            CSUser user  = CS.instance.userMgr.GetUser(gcNID);

            if (user != null)
            {
                Protos.CS2GC_QueryRankingRet resp         = ProtoCreator.R_GC2CS_QueryRanking(request.Opts.Pid);
                Protos.CS2DB_QueryRanking    queryRanking = ProtoCreator.Q_CS2DB_QueryRanking();
                queryRanking.SortType = (Protos.CS2DB_QueryRanking.Types.SortType)request.SortType;
                queryRanking.From     = request.From;
                queryRanking.Count    = request.Count;

                CS.instance.netSessionMgr.Send(SessionType.ServerC2DB, queryRanking, RPCEntry.Pop(OnQueryRankingRet, user, resp));
            }

            return(ErrorCode.Success);
        }