void addSortPlayerRanking() { m_dicRankingInfo = DataManager.instance.loadRankingInfo(); // 랭킹 정보를 로드함 // 플레이어의 랭크 정보를 로드함 string userName = CharacterInfoManager.instance.m_playerInfo.m_strUserName; RankingInfo playerInfo = new RankingInfo(userName, (int)CharacterInfoManager.instance.m_playerInfo.m_eCharacterType, GameManager.instance.m_iScore, GameManager.instance.m_iClearTime); if (m_dicRankingInfo.ContainsKey(userName) == true) // 이미 유저네임이 있으면 { if (m_dicRankingInfo[userName].m_iScore <= playerInfo.m_iScore) // 스코어가 지금것이 더 높으면 추가하고 그렇지 않으면 추가하지않음 { m_dicRankingInfo.Remove(userName); // 해당 유저 삭제 후 m_dicRankingInfo.Add(userName, playerInfo); // 딕셔너리에 추가 } } else // 중복된 유저네임이 없으면 { m_dicRankingInfo.Add(userName, playerInfo); // 딕셔너리에 추가 } m_dicRankingInfo = m_dicRankingInfo.OrderByDescending(node => node.Value.m_iScore).ToDictionary(pair => pair.Key, pair => pair.Value); // 스코어 기준으로 정렬 m_arrLstRankingInfo.Capacity = m_dicRankingInfo.Count; // 배열리스트 딕셔너리 저장소만큼 용량확보 foreach (KeyValuePair <string, RankingInfo> iterator in m_dicRankingInfo) // 정렬된 딕셔너리를 순회하면서 { m_arrLstRankingInfo.Add(iterator.Value); // 배열리스트에 순서대로 삽입 } setPlayerRankInfo(playerInfo); // UI에 플레이어 정보 표시 }
// Use this for initialization void Start() { _board = RankingLoader.Instance.CurrentRanking; StartCoroutine(TweetWithScreenShot.TweetManager.TweetWithScreenShot ("ネホネホ" + "%0a" + "記録は [" + dokuro_weight.ToString() + "]!!! %0a" + "https://unityroom.com/games/nehoneho %0a")); }
public static List <SnookerPlayer> ImportPlayersInEvent() { Log.Information(""); Log.Information("------------- Loading Snooker Players -------------"); List <SnookerPlayer> players = new List <SnookerPlayer>(); if (!XMLHelper.XMLExist(Program.PlayersInEventXml)) { players = HttpHelper.GetPlayersInEvent(); List <RankingInfo> playerRanks = HttpHelper.GetPlayerRank(); foreach (SnookerPlayer pl in players) { RankingInfo r = playerRanks.Find(p => p.PlayerID == pl.IdPlayer); if (r != null) { pl.RankPosition = r.Position; } } XMLHelper.SaveListToXML(players, Program.PlayersInEventXml); } else { players = XMLHelper.LoadXMLToList <SnookerPlayer>(Program.PlayersInEventXml); } return(players); }
//public IEnumerator GetWholeRecord() //{ // //비동기 형식으로 진행한다 // if (isGettingRanking) // { // Debug.LogError("is on Getting Ranking?"); // yield return null; // } // else // { // isGettingRanking = true; // if (rankingList == null) // { // Backend.Rank.RankList((callback) => { // SetWholeRankings(callback); // }); // } // yield return new WaitUntil(() => rankingList != null); // if (TRecord == null) // { // TRecord = new Dictionary<string, List<PlayerRankData>>(); // } // foreach (var info in rankingList) // { // GetRanking(info.Value); // } // //isGettingRanking = false; // } //} public void GetWholeRecord() { BackendReturnObject bro = Backend.Rank.RankList(); Dictionary <string, RankingInfo> rankingList = new Dictionary <string, RankingInfo>(); var j = bro.GetReturnValuetoJSON()["rows"]; LitJson.JsonData[] rows = new LitJson.JsonData[j.Count]; for (int i = 0; i < rows.Length; i++) { rows[i] = j[i]; } foreach (var row in rows) { RankingInfo rInfo = new RankingInfo(); foreach (var k in row.Keys) { switch (k) { case "date": rInfo.dateType = (RankingInfo.Date)Enum.Parse(typeof(RankingInfo.Date), row[k][0].ToString()); break; case "range": rInfo.range = row[k][0].ToString(); break; case "inDate": rInfo.inDate = row[k][0].ToString(); break; case "uuid": rInfo.UUID = row[k][0].ToString(); break; case "title": rInfo.rankingName = row[k][0].ToString(); break; } //Debug.LogError(string.Format("{0} {1} {2}",e[0], e[1], e[2])); } rankingList.Add(rInfo.rankingName, rInfo); } if (TRecord == null) { TRecord = new Dictionary <string, List <PlayerRankData> >(); } foreach (var info in rankingList) { GetRanking(info.Value); } }
internal static void PrintRankingInfo(RankingInfo ranking, MainWindowViewModel viewModel) { string history = viewModel.History; history += String.Format("Point:{0} Ranking:{1}", ranking.point, ranking.ranking) + Environment.NewLine; viewModel.History = history; }
public async void SaveRankingInfo(String userName, int stage, int score, String time, int Qnum, String date) { RankingInfo info = new RankingInfo(); if (Qnum >= 10) { info.Usr = userName; info.Stage = stage.ToString(); info.Score = score; info.Time = time; info.Date = date; switch (stage) { case 1: case 2: case 3: case 4: case 5: await App.RkInfoDatabase.SaveRankingResultAsync(info); break; default: break; } } }
private void UpdateDisplay() { foreach (RankingChild rank in ranks) { rank.Text = ""; rank.Rank = -1; } yourRankText.Text = ""; int iter = 0; var infos = currentRanking.GetInfo(currentDifficulty); if (infos == null) { ranks[0].Text = Utility.Language["InvalidRankingDifficulty"]; return; } RankingInfo myRank = null; foreach (RankingInfo info in infos) { if (info.ID.ToLower() == WebManager.Instance.CurrentAccountId.ToLower()) { myRank = info; } if (iter < ranks.Length) { ranks[iter].Text = String.Format("{0} {1}", info.Score, info.Nickname); ranks[iter].Rank = info.Rank; } iter++; } yourRankText.Text = myRank == null ? Utility.Language["NotRankin"] : myRank.Rank + Utility.Language["Rank"]; }
public static RankingInfo RankOrg(this IFBADataContext context, int orgId, string nace5, int adminLevel, int?beforeCount = 10, int?afterCount = 5) { IEnumerable <IRanking> topRankings; OrgInfo orgInfo; var result = context.GetRankingForOrg(orgId, nace5, adminLevel, beforeCount, afterCount, out orgInfo, out topRankings); var obj = new RankingInfo { Info = orgInfo, OrgRankings = result.Select(forOrgResult => new OrgRankingInfo(orgId, (long)forOrgResult.OtherOrgNr, forOrgResult.Subset) { CompanyName = forOrgResult.companyName, OverallRanking = forOrgResult.OtherOrgRank, MetricValue = Convert.ToDecimal(forOrgResult.OtherOrgValue) }).ToList().AsReadOnly(), TopTankings = topRankings.Select(ranking => new OrgRankingInfo(orgId, (long)ranking.CurrentOrgNr, ranking.Subset) { CompanyName = ranking.companyName, OverallRanking = ranking.CurrentOrgRank, MetricValue = Convert.ToDecimal(ranking.Value) }).ToList().AsReadOnly() }; return(obj); }
public void Set(int ranking, RankingInfo info) { address = info.Address; rankingText.text = ranking.ToString(); addressText.text = info.Address.ToHex().Substring(0, 4).ToString(); countText.text = info.Count.ToString(); }
public void SetRankingInfo(RankingInfo info, int top, bool self = false) { mInfo = info; if (top < 3) { UIAtlasHelper.SetSpriteImage(mIcon, "common:top" + (top + 1).ToString()); mIcon.gameObject.SetActive(true); mIconLabel.gameObject.SetActive(false); mName.color = NGUIMath.HexToColor(0xfcff00ff); } else { mIconLabel.text = (top + 1).ToString(); mIcon.gameObject.SetActive(false); mIconLabel.gameObject.SetActive(true); mName.color = NGUIMath.HexToColor(0xffffffff); } mName.text = "Lv." + mInfo.level.ToString() + " " + mInfo.name; mGrade.text = info.grade.ToString(); mArenaPoint.text = info.score.ToString(); if (self) { mSelectBK.gameObject.SetActive(true); mSelfSprite.gameObject.SetActive(true); } else { mSelectBK.gameObject.SetActive(false); mSelfSprite.gameObject.SetActive(false); } }
/// <summary> /// 从排行榜获取随机视频 /// </summary> /// <returns></returns> public RankingInfo GetRandomVideoOfRanking() { var apiResponse = _videoWithoutCookieApi.GetRegionRankingVideosV2().GetAwaiter().GetResult(); _logger.LogDebug("获取排行榜成功"); RankingInfo data = apiResponse.Data.List[new Random().Next(apiResponse.Data.List.Count)]; return(data); }
public async Task Query(RankingInfo rankingInfo, object expected) { const string query = @" { avatarAddress agentAddress }"; var queryResult = await ExecuteQueryAsync <RankingInfoType>(query, source : rankingInfo); Assert.Equal(expected, queryResult.Data); }
/// <summary> /// 获取随机视频 /// </summary> /// <returns></returns> public Tuple <string, string> GetRandomVideoOfRegion() { int[] arr = { 1, 3, 4, 5, 160, 22, 119 }; int rid = arr[new Random().Next(arr.Length - 1)]; BiliApiResponse <List <RankingInfo> > apiResponse = _dailyTaskApi.GetRegionRankingVideos(rid, 3).GetAwaiter().GetResult(); _logger.LogDebug("获取分区:{rid}的{day}日top10榜单成功", rid, 3); RankingInfo data = apiResponse.Data[new Random().Next(apiResponse.Data.Count)]; return(Tuple.Create(data.Aid, data.Title)); }
public void Update(string title, Address playerAddress, long score) { if (!_map.ContainsKey(title)) { _map[title] = new Dictionary <Address, RankingInfo>(); } if (!_map[title].ContainsKey(playerAddress)) { _map[title][playerAddress] = new RankingInfo(address, 0); } _map[title][playerAddress] = RankingInfo.Max(_map[title][playerAddress], new RankingInfo(playerAddress, score)); }
void setPlayerRankInfo(RankingInfo playerInfo) { for (int i = 0; i < m_arrLstRankingInfo.Count; i++) { if (m_arrLstRankingInfo[i].m_strUserName == playerInfo.m_strUserName) { m_rankNumberText.text = (i + 1).ToString() + "위"; break; } } m_userNameText.text = playerInfo.m_strUserName; m_scoreText.text = playerInfo.m_iScore.ToString() + "점"; m_clearTimeText.text = playerInfo.m_fClearTime.ToString("N2") + "초"; }
private static void WriteNewScore(int score, string nickname, string timestamp) { // 엔트리 하나 추가 var key = ScoresReference.Push().Key; // 추가한 엔트리의 데이터를 수정할 것을 조립 var entry = new RankingInfo(score, nickname, timestamp); var entryValues = entry.ToDictionary(); var childUpdates = new Dictionary <string, object>(); childUpdates["/Scores/" + key] = entryValues; // 실제 디비에 데이터 업데이트 요청 ScoresReference.UpdateChildrenAsync(childUpdates); }
public void UpdateData(int index, RankingInfo info) { if (info == null) { _rankNum.UpdateData(0); var tempLevel = Mathf.FloorToInt(Save.Player.Level / 5f); if (tempLevel < 1) { tempLevel = 1; } _icon.sprite = Config.PlayerSettings.Get(tempLevel).Icon; _nameTxt.text = Save.Player.NickName; _skillTxt.text = "0"; _deadTxt.text = "0"; if (info == null || info.DisplayName == Save.Player.NickName) { GetComponent <Image>().sprite = MyBg; } else { GetComponent <Image>().sprite = NormalBg; } } else { _rankNum.UpdateData(index); var tempLevel = Mathf.FloorToInt(info.Level / 5f); if (tempLevel < 1) { tempLevel = 1; } _icon.sprite = Config.PlayerSettings.Get(tempLevel).Icon; _nameTxt.text = info.DisplayName; _skillTxt.text = info.Kill.ToString(); _deadTxt.text = info.Dead.ToString(); if (info.DisplayName == Save.Player.NickName) { GetComponent <Image>().sprite = MyBg; } else { GetComponent <Image>().sprite = NormalBg; } } }
/// <summary> /// ハイスコア取得コルーチン /// </summary> /// <param name="rankingBoard"></param> /// <returns></returns> private IEnumerator DoGetHighScore(RankingInfo rankingBoard, string userObjectId, UnityAction <NCMBObject> onCompleted) { var highScoreCheck = new YieldableNcmbQuery <NCMBObject>(rankingBoard.ClassName); highScoreCheck.WhereEqualTo(ObjectId, userObjectId); yield return(highScoreCheck.FindAsync()); var ncmbRecord = highScoreCheck.Result.FirstOrDefault(); // キャッシュ更新 if (ncmbRecord != null) { (var name, var highScore) = GetInformation(ncmbRecord); _highScore = highScore; } onCompleted?.Invoke(ncmbRecord); }
private void UpdateSelfInfo() { Dictionary <int, RankingInfo> dic = null; RankingInfo rankInfo = null; if (mSelect == RankSelect.Rank_Grade) { rankInfo = mRankingModule.GetSelfGrade(); } if (mSelect == RankSelect.Rank_Level) { rankInfo = mRankingModule.GetSelfLevel(); } if (mSelect == RankSelect.Rank_Rank) { rankInfo = mRankingModule.GetSelfRank(); } if (mSelect == RankSelect.Rank_Arena) { rankInfo = mRankingModule.GetSelfArena(); } if (rankInfo == null) { //NGUITools.SetActive(mSelfLabel.gameObject, false); NGUITools.SetActive(mSelfZhanli.gameObject, false); NGUITools.SetActive(mSelfPt.gameObject, false); NGUITools.SetActive(mSelfSprite1.gameObject, false); NGUITools.SetActive(mSelfSprite2.gameObject, false); mSelfLabel.text = "您未上榜"; } else {// NGUITools.SetActive(mSelfLabel.gameObject, true); NGUITools.SetActive(mSelfZhanli.gameObject, true); NGUITools.SetActive(mSelfPt.gameObject, true); NGUITools.SetActive(mSelfSprite1.gameObject, true); NGUITools.SetActive(mSelfSprite2.gameObject, true); mSelfLabel.text = "您的排名:" + (rankInfo.rank + 1).ToString() + " Lv." + rankInfo.level.ToString() + " " + rankInfo.name; mSelfZhanli.text = rankInfo.grade.ToString(); mSelfPt.text = rankInfo.score.ToString(); } }
public void FuryRaidEvent() { _client.Access("furyraid"); var eventId = _client.ViewModel.FuryRaidEventId; FuryRaidEventInfo eventInfo = FuryRaidEventInfo(eventId); _client.ViewModel.EventName = eventInfo.name; _client.ViewModel.FeverProgress = eventInfo.fever.progress; _client.ViewModel.EventKills = eventInfo.totalRewards.user.total; InfoPrinter.PrintFuryRaidInfo(eventInfo, _client.ViewModel); RankingInfo ranking = _client.Ranking(eventId); _client.ViewModel.Ranking = ranking.ranking; _client.ViewModel.Point = ranking.point; InfoPrinter.PrintRankingInfo(ranking, _client.ViewModel); _client.DelayShort(); }
private void UpdateItemGrid(int idx, RankingInfo item, bool self = false) { if (idx >= mItemList.Count) { GameObject obj = WindowManager.Instance.CloneGameObject(mViewItem); RankingItemUI itemui = new RankingItemUI(obj); itemui.gameObject.transform.parent = mGrid.transform; itemui.gameObject.transform.localScale = Vector3.one; itemui.gameObject.SetActive(false); mItemList.Add(itemui); } RankingItemUI grid = mItemList[idx] as RankingItemUI; grid.SetRankingInfo(item, idx, self); grid.ArenaPointSp.gameObject.SetActive((mSelect == RankSelect.Rank_Arena)); grid.mArenaPoint.gameObject.SetActive((mSelect == RankSelect.Rank_Arena)); grid.functionCall = OnItemClick; grid.gameObject.SetActive(true); }
public ActionResult Index(OrgSearchModel model) { if (ModelState.IsValid) { var rankings = new RankingInfo(); if (model.OrgId != null) { var nace5 = model.Nace5 != null?model.Nace5.Value.ToString(CultureInfo.InvariantCulture) : null; var adminLevel = model.AdministrativeLevel == null ? 2 : model.AdministrativeLevel.Value; rankings = ctx.RankOrg(model.OrgId.Value, nace5, adminLevel); } model.Nace5 = model.Nace5 == null && rankings.Info != null ? rankings.Info.Nace5 : (int?)null; model.Rankings = rankings; model.Naces = GetNaceCriteriaModel(); return(View(model)); } return(new HttpStatusCodeResult(500)); }
/// <summary> /// ランキング取得コルーチン /// </summary> private IEnumerator DoLoadRankingBoard(RankingInfo rankingBoard, string userObjectId, UnityAction <YieldableNcmbQuery <NCMBObject> > onCompleted = null) { Debug.Log("ランキング情報取得中..."); var ncmbQuery = new YieldableNcmbQuery <NCMBObject>(rankingBoard.ClassName); ncmbQuery.Limit = _rankingLimit; if (rankingBoard.Order == ScoreOrder.OrderByAscending) { ncmbQuery.OrderByAscending(ColumnScore); } else { ncmbQuery.OrderByDescending(ColumnScore); } yield return(ncmbQuery.FindAsync()); onCompleted?.Invoke(ncmbQuery); Debug.Log(string.Format("データ取得: {0}件", ncmbQuery.Count)); }
private static void AcumulaCorretoras(double valorInicial, string corretora, double valor, SortedDictionary <RankingInfo, string> dict, SortedDictionary <string, RankingInfo> dictPorCorretora) { try { RankingInfo rankingNovo = new RankingInfo(valorInicial, corretora); if (dictPorCorretora.ContainsKey(corretora)) { RankingInfo rankingAtual = dictPorCorretora[corretora]; dict.Remove(rankingAtual); rankingNovo.Valor = rankingAtual.Valor + valor; dictPorCorretora[corretora] = rankingNovo; } else { dictPorCorretora.Add(corretora, rankingNovo); } dict.Add(rankingNovo, corretora); } catch (Exception ex) { logger.Fatal("AcumulaCorretoras(): " + ex.Message, ex); } }
/// <summary> /// 获取一个视频用来观看并分享 /// </summary> /// <returns></returns> private VideoInfoDto GetRandomVideoForWatchAndShare() { //先从配置的或关注的up中取 VideoInfoDto video = GetRandomVideoOfFollowingUps(); if (video != null) { return(video); } //然后从排行榜中取 RankingInfo t = GetRandomVideoOfRanking(); return(new VideoInfoDto { Aid = t.Aid.ToString(), Bvid = t.Bvid, Cid = t.Cid, Copyright = t.Copyright, Duration = t.Duration, Title = t.Title, }); }
/// <summary> /// スコア送信コルーチン /// </summary> /// <param name="rankingBoard"></param> /// <param name="ncmbObject"></param> /// <param name="onCompleted"></param> /// <returns></returns> private IEnumerator DoSendScore(RankingInfo rankingBoard, NCMBObject ncmbObject, UnityAction <NCMBObject> onCompleted) { Debug.Log("スコア送信中..."); NCMBException errorResult = null; yield return(ncmbObject.YieldableSaveAsync(error => errorResult = error)); if (errorResult != null) { // NCMBのコンソールから直接削除した場合に、該当のobjectIdが無いので発生する(らしい) // 新規として送信 ncmbObject.ObjectId = null; yield return(ncmbObject.YieldableSaveAsync(error => errorResult = error)); } // ObjectIDを保存して次に備える NcmbObjectId = ncmbObject.ObjectId; onCompleted?.Invoke(ncmbObject); Debug.Log("スコア送信完了"); }
private void AddScoreToLeaders(int score, string nickname, string timestamp) { ScoresReference.RunTransaction(mutableData => { // 서버에 있는 점수 리스트 var leaders = mutableData.Value as List <object>; // 점수 리스트가 없으면, 생성 if (leaders == null) { leaders = new List <object>(); } // 점수 리스트가 최대 개수를 넘었으면, 가장 작은 점수를 제거 else if (mutableData.ChildrenCount >= rankingList.Count) { var minScore = long.MaxValue; object minVal = null; foreach (var child in leaders) { var childDic = child as Dictionary <string, object>; if (childDic == null) { continue; } var rankingEntry = new RankingInfo(childDic); if (rankingEntry == null) { continue; } if (rankingEntry.score < minScore) { minScore = rankingEntry.score; minVal = child; } } // 새 점수가 순위에 들지못했으면, 실패했다고 처리 if (minScore > score) { return(TransactionResult.Abort()); } leaders.Remove(minVal); } // 리스트에 새 점수를 추가 var newEntry = new RankingInfo(score, nickname, timestamp); leaders.Add(newEntry.ToDictionary()); // 내림차순으로 정렬 leaders.Sort((a, b) => { var rankingA = new RankingInfo(a as Dictionary <string, object>); var rankingB = new RankingInfo(b as Dictionary <string, object>); return(rankingB.score.CompareTo(rankingA.score)); }); mutableData.Value = leaders; // Ranking UI에 반영 rankingInfoList.Clear(); foreach (var v in leaders) { rankingInfoList.Add(new RankingInfo(v as Dictionary <string, object>)); } // 성공했다고 처리 return(TransactionResult.Success(mutableData)); }); }
public void SyncRankingList(respond_ranking_list msg) { if (mVersion == msg.version) { return; } mVersion = msg.version; PlayerDataModule dataModule = ModuleManager.Instance.FindModule <PlayerDataModule>(); mSelfGrade = mSelfArena = mSelfLevel = mSelfRank = -1; mGrades = null; mLevels = null; mRanks = null; mArenas = null; if (msg.grade_ranking != null && msg.grade_ranking.Count > 0) { mGrades = new RankingInfo[msg.grade_ranking.Count]; //mGrades. = msg.grade_ranking.Count; for (int i = 0; i < msg.grade_ranking.Count; ++i) { RankingInfo info = new RankingInfo(); info.rank = msg.grade_ranking[i].rank; info.name = msg.grade_ranking[i].name; info.guid = (GUID)(msg.grade_ranking[i].guid); info.level = msg.grade_ranking[i].level; info.grade = (uint)msg.grade_ranking[i].grade; mGrades[info.rank] = info; //mGrades.Add(rank, info); if (info.name == dataModule.GetName()) { mSelfGrade = info.rank; } } } if (msg.level_ranking != null && msg.level_ranking.Count > 0) { mLevels = new RankingInfo[msg.level_ranking.Count]; for (int i = 0; i < msg.level_ranking.Count; ++i) { RankingInfo info = new RankingInfo(); info.rank = msg.level_ranking[i].rank; info.guid = (GUID)(msg.level_ranking[i].guid); info.name = msg.level_ranking[i].name; info.level = msg.level_ranking[i].level; info.grade = (uint)msg.level_ranking[i].grade; mLevels[info.rank] = info; if (info.name == dataModule.GetName()) { mSelfLevel = info.rank; } } } if (msg.arena_ranking != null && msg.arena_ranking.Count > 0) { mArenas = new RankingInfo[msg.arena_ranking.Count]; for (int i = 0; i < msg.arena_ranking.Count; ++i) { RankingInfo info = new RankingInfo(); info.rank = msg.arena_ranking[i].rank; info.name = msg.arena_ranking[i].name; info.guid = (GUID)(msg.arena_ranking[i].guid); info.level = msg.arena_ranking[i].level; info.grade = (uint)msg.arena_ranking[i].grade; info.score = msg.arena_ranking[i].arena_score; mArenas[info.rank] = info; if (info.name == dataModule.GetName()) { mSelfArena = info.rank; } } } if (msg.qualifying_ranking != null && msg.qualifying_ranking.Count > 0) { mRanks = new RankingInfo[msg.qualifying_ranking.Count]; for (int i = 0; i < msg.qualifying_ranking.Count; ++i) { RankingInfo info = new RankingInfo(); info.rank = msg.qualifying_ranking[i].rank; info.name = msg.qualifying_ranking[i].name; info.guid = (GUID)(msg.qualifying_ranking[i].guid); info.level = msg.qualifying_ranking[i].level; info.grade = (uint)msg.qualifying_ranking[i].grade; mRanks[info.rank] = info; if (info.name == dataModule.GetName()) { mSelfRank = info.rank; } } } RankingEvent evt = new RankingEvent(RankingEvent.RANKING_UPDATE); EventSystem.Instance.PushEvent(evt); }
private void GetRanking(RankingInfo info) { BackendReturnObject bro = Backend.Rank.GetRankByUuid(info.UUID, DesignConstStorage.defaultRankAmount); var rankData = bro.GetReturnValuetoJSON()["rows"]; List <PlayerRankData> rData = new List <PlayerRankData>(); LitJson.JsonData[] rows = new LitJson.JsonData[rankData.Count]; for (int i = 0; i < rows.Length; i++) { rows[i] = rankData[i]; } foreach (var pData in rows) { PlayerRankData prd = new PlayerRankData(); foreach (var k in pData.Keys) { switch (k) { case "nickname": prd.nickName = pData[k][0].ToString(); break; case "score": prd.score = (float)Convert.ToDouble(pData[k][0].ToString()); break; case "rank": prd.rank = Convert.ToInt32(pData[k][0].ToString()); break; case "index": prd.index = Convert.ToInt32(pData[k][0].ToString()); break; case "gamerIndate": prd.playerinDate = pData[k][0].ToString(); break; default: Debug.LogError(pData[k][0].ToString()); break; } //Debug.LogError(string.Format("{0} {1} {2}",e[0], e[1], e[2])); } rData.Add(prd); } if (TRecord.ContainsKey(info.range)) { TRecord.Remove(info.range); } TRecord.Add(info.range, rData); //ProcessRankData(bro, info); }
private void ProcessRankData(BackendReturnObject bro, RankingInfo info) { JObject rankData = JObject.Parse(bro.GetReturnValue()); List <PlayerRankData> rData = new List <PlayerRankData>(); //다른 프로퍼티 조회해서 개수 구할 수도 있을듯 var data = rankData["rows"]; JArray playerDatas = JArray.Parse(data.ToString()); foreach (var pData in playerDatas) { PlayerRankData prd = new PlayerRankData(); foreach (var element in pData) { string[] splitedelement = element.ToString().Split('"'); //string[] e = { splitedelement[1], splitedelement[3], splitedelement[5] }; string t; string[] temp; switch (splitedelement[1]) { case "nickname": prd.nickName = splitedelement[5]; break; case "score": t = splitedelement[4].Replace("\r", ":"); temp = t.Split(':'); prd.score = (float)Convert.ToDouble(temp[1]); break; case "rank": t = splitedelement[4].Replace("\r", ":"); temp = t.Split(':'); prd.rank = Convert.ToInt32(temp[1]); break; case "index": t = splitedelement[4].Replace("\r", ":"); temp = t.Split(':'); prd.index = Convert.ToInt32(temp[1]); break; case "gamerIndate": prd.playerinDate = splitedelement[5]; break; default: Debug.LogError(splitedelement[1]); break; } //Debug.LogError(string.Format("{0} {1} {2}",e[0], e[1], e[2])); } rData.Add(prd); } if (TRecord.ContainsKey(info.range)) { TRecord.Remove(info.range); } TRecord.Add(info.range, rData); //Debug.LogError(TRecord[info.range].Count); //isGettingRanking = false; }