コード例 #1
0
    /**
     * 排行
     * @param start 开始位置(包括)
     * @param end 结束位置(包括)
     * @param rankListData 排行数据
     */
    public void GC_RANK_LIST(InputMessage data)
    {
        int       i, size;
        int       start        = data.GetInt();
        int       end          = data.GetInt();
        ArrayList rankListData = new ArrayList();

        size = data.GetShort();
        for (i = 0; i < size; i++)
        {
            RankListData rankListData_Datas = new RankListData();
            rankListData_Datas.countries = data.GetString();    //国籍
            rankListData_Datas.userId    = data.GetLong();
            rankListData_Datas.name      = data.GetString();    //名字
            rankListData_Datas.img       = data.GetString();    //头像
            rankListData_Datas.level     = data.GetInt();       //玩家等级
            rankListData_Datas.win       = data.GetLong();
            rankListData_Datas.rank      = data.GetInt();       //排名
            rankListData_Datas.vipLevel  = data.GetInt();       //VIP等级
            rankListData.Add(rankListData_Datas);
        }
        RanknewHandler.Instance().GC_RANK_LIST(start, end, rankListData);
    }
コード例 #2
0
        // GET: OnLinePlay
        public object GetOnLineUser([FromUri] string pageSize, [FromUri] string pageIndex)
        {
            ILog log = LogManager.GetLogger("OnLinePlay");

            //默认分页配置
            if (string.IsNullOrEmpty(pageSize))
            {
                pageSize = "10";
            }
            if (string.IsNullOrEmpty(pageIndex))
            {
                pageIndex = "1";
            }


            Cache            ca      = HttpContext.Current.Cache;
            List <RankModel> rankAll = new List <RankModel>();

            try
            {
                rankAll = ca["onlineList"] as List <RankModel>;
            }
            catch (Exception ex) {
                log.Error("OnLinePlay(读取在线玩家):" + ex.Message);
                rankAll = new List <RankModel>();
            }

            if (rankAll == null)
            {
                log.Error("OnLinePlay(读取在线玩家):读取的缓存转换为null");
                string rJson = OnLineInfoBLL.GetNewJson();
                rankAll = (List <RankModel>)JsonConvert.DeserializeObject <List <RankModel> >(rJson);
            }
            int onlineUserTotal = rankAll.Count();

            if (onlineUserTotal == 0)
            {
                log.Error("OnLinePlay(读取在线玩家):读取的缓存转换为长度为0");
                string rJson = OnLineInfoBLL.GetNewJson();
                rankAll = (List <RankModel>)JsonConvert.DeserializeObject <List <RankModel> >(rJson);
            }



            int pageSizeInt  = Convert.ToInt32(pageSize);                                                            //取多少行数据
            int pageIndexInt = Convert.ToInt32(pageIndex);                                                           //取第几页
            int pageTotal    = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(onlineUserTotal * 1.0 / pageSizeInt))); //总页数

            int skip = (pageIndexInt - 1) * pageSizeInt;                                                             //跳过多少行
                                                                                                                     //取需要的数据
            IEnumerable <RankModel> onlineUser = (
                from a in rankAll
                select a
                ).OrderByDescending(m => m.VipGrade).Skip(skip).Take(pageSizeInt);

            List <RankListData> ModelList = new List <RankListData>();

            foreach (RankModel item in onlineUser)
            {
                string[]     rs   = item.Value.ToString().Split('_');
                RankListData data = new RankListData();
                data.dwFaceID    = Convert.ToInt32(rs[2]);
                data.strFaceUrl  = rs[1];
                data.dwUserID    = Convert.ToInt32(item.Name);
                data.gameID      = GameId(rs[5]);
                data.isOnline    = IsOnline(rs[5]);
                data.llValue     = Convert.ToDouble(rs[3]);
                data.strRoleName = rs[0];
                data.vipGrade    = Convert.ToInt32(rs[4]);
                ModelList.Add(data);
            }

            return(Json(new
            {
                dwType = 0,
                list = ModelList,
                showNum = pageSizeInt,
                totalPage = pageTotal,
                curPage = pageIndex
            }));
        }
コード例 #3
0
ファイル: RankListHandle.cs プロジェクト: moto2002/moba
    /// <summary>
    /// 获取排行榜信息
    /// </summary>
    /// <param name="packet"></param>
    /// <returns></returns>
    public bool RankListHandle(CReadPacket packet)
    {
        Debug.Log("ranklist返回");
        Dictionary <string, object> data = packet.data;

        int resolt = int.Parse(data["ret"].ToString());

        if (resolt == 0)
        {
            int currentValue  = 0;
            int currentRank   = 0;
            int yesterdayRank = 0;
            currentRank = int.Parse(data["myRank"].ToString());//自己的当前排名
            playerData.GetInstance().playerRankData.rankListType = (RankListType)data["typeid"];
            if (data["rInfo"] != null)
            {
                object[][] rankInfoList = data["rInfo"] as object[][];
                switch ((RankListType)data["typeid"])
                {
                //case RankListType.Fight:
                //    playerData.GetInstance().playerRankData.fightList.Clear();
                //    break;
                //case RankListType.StarSum:
                //    playerData.GetInstance().playerRankData.starSumList.Clear();
                //    break;
                //case RankListType.DiamondUser:
                //    playerData.GetInstance().playerRankData.diamondUserList.Clear();
                //    break;
                //case RankListType.BestFourPersons:
                //    playerData.GetInstance().playerRankData.bestFourPersonsList.Clear();
                //    break;
                //case RankListType.Fortune:
                //    playerData.GetInstance().playerRankData.fortuneList.Clear();
                //    break;
                //case RankListType.YesterdayRank:
                //    playerData.GetInstance().playerRankData.yesterdayList.Clear();
                //    break;
                case RankListType.Level:
                    if (playerData.GetInstance().playerRankData.levelList.Count >= 20)
                    {
                        playerData.GetInstance().playerRankData.levelList.Clear();
                    }
                    break;

                case RankListType.RealTimeRank:
                    if (playerData.GetInstance().playerRankData.realTimeRankList.Count >= 20)
                    {
                        playerData.GetInstance().playerRankData.realTimeRankList.Clear();
                    }
                    break;

                default:
                    break;
                }
                for (int i = 0; i < rankInfoList.Length; i++)
                {
                    RankListData rankListData = new RankListData();
                    if (int.Parse(rankInfoList[i][1].ToString()) != 0)
                    {
                        rankListData.currentRank = int.Parse(rankInfoList[i][0].ToString());//当前排名
                        rankListData.playerId    = int.Parse(rankInfoList[i][1].ToString());
                        rankListData.name        = rankInfoList[i][2].ToString();
                        rankListData.iconId      = long.Parse(rankInfoList[i][3].ToString());
                        rankListData.iconBoxId   = long.Parse(rankInfoList[i][4].ToString());
                        rankListData.rankValue   = int.Parse(rankInfoList[i][5].ToString()); //战斗力
                        rankListData.playerLv    = int.Parse(rankInfoList[i][6].ToString()); //角色等级
                    }

                    if (!string.IsNullOrEmpty(rankInfoList[i][7].ToString()))
                    {
                        string     arenas = rankInfoList[i][7].ToString();
                        object  [] aa     = Jsontext.ReadeData(arenas) as object[];
                        for (int j = 0; j < aa.Length; j++)
                        {
                            string[]     str      = aa[j] as string[];
                            RankHeroList heroList = new RankHeroList();
                            heroList.iconId1     = long.Parse(str[0]);
                            heroList.lv          = int.Parse(str[1]);
                            heroList.star        = int.Parse(str[2]);
                            heroList.iconIdFrame = int.Parse(str[3]);
                            rankListData.arenaHeroList.Add(heroList);
                        }
                    }
                    switch ((RankListType)data["typeid"])
                    {
                    //case RankListType.Fight:
                    //    playerData.GetInstance().playerRankData.fightList.Add(rankListData);
                    //    playerData.GetInstance().playerRankData.fight = currentValue;
                    //    playerData.GetInstance().playerRankData.fightCurrentRank = currentRank;
                    //    playerData.GetInstance().playerRankData.fightYesterdayRank = yesterdayRank;
                    //    break;
                    //case RankListType.StarSum:
                    //    playerData.GetInstance().playerRankData.starSumList.Add(rankListData);
                    //    playerData.GetInstance().playerRankData.startSum = currentValue;
                    //    playerData.GetInstance().playerRankData.starttSumCurrentRank = currentRank;
                    //    playerData.GetInstance().playerRankData.starttSumYesterday = yesterdayRank;
                    //    break;
                    //case RankListType.DiamondUser:
                    //    playerData.GetInstance().playerRankData.diamondUserList.Add(rankListData);
                    //    break;
                    //case RankListType.BestFourPersons:
                    //    playerData.GetInstance().playerRankData.bestFourPersonsList.Add(rankListData);
                    //    playerData.GetInstance().playerRankData.bestfourCurrentRank = currentRank;
                    //    playerData.GetInstance().playerRankData.bestfourYesterday = yesterdayRank;
                    //    break;
                    //case RankListType.Fortune:
                    //    playerData.GetInstance().playerRankData.fortuneList.Add(rankListData);
                    //    break;
                    //case RankListType.YesterdayRank:
                    //    playerData.GetInstance().playerRankData.yesterdayList.Add(rankListData);
                    //    playerData.GetInstance().playerRankData.yestterday = currentValue;
                    //    playerData.GetInstance().playerRankData.yestterdayCurrentRank = currentRank;
                    //    playerData.GetInstance().playerRankData.yestterday_yes = yesterdayRank;
                    //    break;
                    case RankListType.Level:
                        playerData.GetInstance().playerRankData.levelList.Add(rankListData);
                        playerData.GetInstance().playerRankData.lv = currentValue;
                        playerData.GetInstance().playerRankData.lvCurrentRank = currentRank;
                        playerData.GetInstance().playerRankData.lvYesterday = yesterdayRank;
                        break;

                    case RankListType.RealTimeRank:
                        playerData.GetInstance().playerRankData.realTimeRankList.Add(rankListData);
                        playerData.GetInstance().playerRankData.realTime = currentValue;
                        playerData.GetInstance().playerRankData.realTimeCurrentRank = currentRank;
                        playerData.GetInstance().playerRankData.realTimeYesterday = yesterdayRank;
                        break;

                    default:
                        break;
                    }
                }
                int intCount = 20 / 4;
                int page     = 20 % 4;
                if (page != 0)
                {
                    intCount++;
                }
                playerData.GetInstance().playerRankData.page = intCount;
                //  RankListManage.GetInstace().GetRankListData((int)playerData.GetInstance().playerRankData.rankListType);
            }
            return(true);
        }
        else
        {
            //   Debug.Log(string.Format("返回信息失败:{0}", data["desc"].ToString()));
            Debug.Log("获取排行榜列表失败");
            return(false);
        }
    }