// サーバーからハイスコアを取得 ----------------- public void getHighScore(ScoreDataV1 param, bool myScore) { // データストアの「ScoreDataV1」クラスから、Nameをキーにして検索 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreDataV1"); query.WhereEqualTo("ScoreKindValue", param.ScoreKindValue); if (myScore) { query.WhereEqualTo("Id", param.Id); myHighScore[param.ScoreKindValue] = 0; } else { allHighScore[param.ScoreKindValue] = 0; } query.WhereEqualTo("Row", param.Row); query.WhereEqualTo("Col", param.Col); query.WhereEqualTo("Color", param.Color); query.WhereEqualTo("Link", param.Link); query.WhereEqualTo("Direction", param.Direction); query.WhereEqualTo("Time", param.Time); query.WhereEqualTo("Stop", param.Stop); query.WhereEqualTo("CountDisp", param.CountDisp); query.WhereEqualTo("Garbage", param.Garbage); query.WhereGreaterThan("Version", 1); query.WhereEqualTo("ScoreCategoryValue", param.ScoreCategoryValue); query.OrderByDescending("Score"); query.FindAsync((List <NCMBObject> objList, NCMBException e) => { //検索成功したら if (e == null) { // ハイスコアが未登録だったら if (objList.Count == 0) { if (myScore) { myHighScore[param.ScoreKindValue] = 0; } else { allHighScore[param.ScoreKindValue] = 0; } } // ハイスコアが登録済みだったら else { if (myScore) { myHighScore[param.ScoreKindValue] = System.Convert.ToInt32(objList[0]["Score"]); } else { allHighScore[param.ScoreKindValue] = System.Convert.ToInt32(objList[0]["Score"]); } } } }); }
void Fetch() { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject> ("HighScore"); //ここでqueryに色々条件を与える query.WhereGreaterThan("score", 5000); query.OrderByDescending("score"); query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 } else { //検索成功時の処理 // 取得したレコードをHighScoreクラスとして保存 foreach (var obj in objList) { int s = System.Convert.ToInt32(obj ["score"]); string n = System.Convert.ToString(obj ["name"]); Debug.Log(n + ":" + s); } } }); }
/// <summary> /// NCMBからランク情報を取得 /// </summary> private void FetchRank4Ncmb(int score) { // データスコアの「HighScore」から検索 NCMBQuery <NCMBObject> rankQuery = new NCMBQuery <NCMBObject>("HighScore"); rankQuery.WhereGreaterThan("score", score); rankQuery.CountAsync((int count, NCMBException e) => { if (e != null) { // 順位取得失敗 ToastManager.Show("データの取得に失敗しました"); myRankText.SetText("---"); gc.canRegister = false; } else { // 順位取得成功 // ランクが閾値を下回っていなければ登録可能 int rank = count + 1; if (rank <= gc.rankBorder) { myRankText.SetText(rank.ToString()); gc.canRegister = true; } else { myRankText.SetText(string.Format("{0}+", gc.rankBorder)); gc.canRegister = false; } } }); }
private void FetchScoreList(int higherThan) { //여러 개의 NCMBObject를 취득하는 쿼리를 작성 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("PlayerData"); //조건 설정 query.WhereGreaterThan("Score", higherThan); query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //오류 시 처리 } else { //성공 시 처리 foreach (NCMBObject obj in objList) { Debug.Log( "PlayerName:" + obj["PlayerName"] + ", Score:" + obj["Score"] + ", Coin:" + obj["Coin"] ); } } }); }
/* * public void GetWinRankWeekly(int totalWinNo, bool enemyFlg) { * NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>("pvpWeekly"); * query.WhereGreaterThan("totalWinNo", totalWinNo); * query.CountAsync((int count, NCMBException e) => { * if (e != null) { * //件数取得失敗 * }else { * //件数取得成功 * if (!enemyFlg) { * winRankWeekly = count + 1;// 自分よりスコアが上の人がn人いたら自分はn+1位 * }else { * pvpWinRankList.Add(count + 1); * } * } * }); * } */ public void GetPtRankWeekly(int totalPt, bool enemyFlg, int todayNCMB) { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvpTmp"); query.WhereGreaterThan("totalPt", totalPt); //date query.WhereGreaterThanOrEqualTo("endDate", todayNCMB); query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 } else { //件数取得成功 if (!enemyFlg) { ptRankWeekly = count + 1;// 自分よりスコアが上の人がn人いたら自分はn+1位 } else { pvpPtRankList.Add(count + 1); } } }); }
// サーバーにハイスコアを保存 ------------------------- // スコア送信処理は非同期でまとめて処理するため、categoryが途中で変わってしまう。 public void save(ScoreDataV1 param, int category) { // データストアの「ScoreDataV1」クラスから、Nameをキーにして検索 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreDataV1"); query.WhereEqualTo("ScoreKindValue", param.ScoreKindValue); query.WhereEqualTo("Id", param.Id); query.WhereEqualTo("Row", param.Row); query.WhereEqualTo("Col", param.Col); query.WhereEqualTo("Color", param.Color); query.WhereEqualTo("Link", param.Link); query.WhereEqualTo("Direction", param.Direction); query.WhereEqualTo("Time", param.Time); query.WhereEqualTo("Stop", param.Stop); query.WhereEqualTo("CountDisp", param.CountDisp); query.WhereEqualTo("Garbage", param.Garbage); query.WhereGreaterThan("Version", 1); query.WhereEqualTo("ScoreCategoryValue", category); query.FindAsync((List <NCMBObject> objList, NCMBException e) => { //検索成功したら if (e == null) { // ハイスコアが未登録だったら if (objList.Count == 0) { NCMBObject obj = new NCMBObject("ScoreDataV1"); obj["ScoreKindValue"] = param.ScoreKindValue; obj["Id"] = param.Id; obj["Row"] = param.Row; obj["Col"] = param.Col; obj["Color"] = param.Color; obj["Link"] = param.Link; obj["Direction"] = param.Direction; obj["Time"] = param.Time; obj["Stop"] = param.Stop; obj["CountDisp"] = param.CountDisp; obj["Garbage"] = param.Garbage; obj["Name"] = param.Name; obj["PlayDateTime"] = param.PlayDateTime; obj["Score"] = param.Score; obj["Version"] = param.Version; obj["ScoreCategoryValue"] = category; obj.SaveAsync(); } // ハイスコアが登録済みだったら else { objList[0]["Name"] = param.Name; objList[0]["PlayDateTime"] = param.PlayDateTime; objList[0]["Score"] = param.Score; objList[0]["Version"] = param.Version; objList[0].SaveAsync(); } } }); }
// 現プレイヤーのハイスコアを受けとってランクを取得 --------------- public void fetchRank( int currentScore ) { // データスコアの「HighScore」から検索 NCMBQuery<NCMBObject> rankQuery = new NCMBQuery<NCMBObject> ("HighScore"); rankQuery.WhereGreaterThan("Score", currentScore); rankQuery.CountAsync((int count , NCMBException e )=>{ if(e != null){ //件数取得失敗 }else{ //件数取得成功 currentRank = count+1; // 自分よりスコアが上の人がn人いたら自分はn+1位 } }); }
public void GetWinRank(int totalWinNo) { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvp"); query.WhereGreaterThan("totalWinNo", totalWinNo); query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 } else { //件数取得成功 winRank = count + 1;// 自分よりスコアが上の人がn人いたら自分はn+1位 } }); }
public void GetHpRank() { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvp"); myJinkeiHeiryoku = PlayerPrefs.GetInt("jinkeiHeiryoku"); query.WhereGreaterThan("jinkeiHeiryoku", myJinkeiHeiryoku); query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 } else { //件数取得成功 hpRank = count + 1;// 自分よりスコアが上の人がn人いたら自分はn+1位 } }); }
// 現プレイヤーのハイスコアを受けとってランクを取得 --------------- public void fetchRank(int currentScore) { // データスコアの「HighScore」から検索 NCMBQuery <NCMBObject> rankQuery = new NCMBQuery <NCMBObject> ("HighScore"); rankQuery.WhereGreaterThan("Score", currentScore); rankQuery.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 } else { //件数取得成功 currentRank = count + 1; // 自分よりスコアが上の人がn人いたら自分はn+1位 } }); }
public void FetchMyRank(System.Action onSuccess) { // データスコアの「HighScore」から検索 NCMBQuery <NCMBObject> rankQuery = new NCMBQuery <NCMBObject> ("OnlineRanking"); rankQuery.WhereGreaterThan("HighScore", PlayerPrefs.GetInt("score")); rankQuery.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 } else { //件数取得成功 myRank = count + 1; // 自分よりスコアが上の人がn人いたら自分はn+1位 FetchMyRankingData(() => onSuccess()); } }); }
/// <summary> /// 現在の自分の順位を取得する。 /// ※ ログインが必須 /// </summary> /// <param name="callback">コールバック関数</param> public void GetCurrentRank(IntCallback callback) { // ログイン状態の確認を行う if (!GetIsLogIn) { callback(0, new NCMBException(NCMBUTErrorMessage.NOT_LOGIN_ERROR)); return; } // 自分のスコアデータを取得する NCMBQuery <NCMBObject> findQuery = GetPlaneQuery(NCMBUTRankingsDefaultSettings.RANKING_CLASS); findQuery.WhereEqualTo(NCMBUTRankingsDefaultSettings.RankingsDefaultFields.player.ToString(), NCMBUser.CurrentUser); findQuery.WhereEqualTo(NCMBUTRankingsDefaultSettings.RankingsDefaultFields.stage.ToString(), Stage); findQuery.FindAsync((List <NCMBObject> objList, NCMBException findError) => { // 検索結果がなければ0を返す if (objList.Count == 0) { callback(0, findError); return; } // スコアデータを元に順位を取得 NCMBQuery <NCMBObject> countQuery = GetQuery(NCMBUTRankingsDefaultSettings.RANKING_CLASS); switch (Sort) { case NCMBUTSortType.Ascending: countQuery.WhereLessThan(SortField, objList[0][SortField]); break; case NCMBUTSortType.Descending: countQuery.WhereGreaterThan(SortField, objList[0][SortField]); break; } countQuery.WhereEqualTo(NCMBUTRankingsDefaultSettings.RankingsDefaultFields.stage.ToString(), Stage); countQuery.CountAsync((int count, NCMBException countError) => { callback(count + 1, countError); return; }); }); }
// 自分の順位 public void FetchMyRank() { // データスコアの「HighScore」から検索 NCMBQuery <NCMBObject> rankQuery = new NCMBQuery <NCMBObject> ("OnlineRanking"); rankQuery.WhereGreaterThan("HighScore", PlayerPrefs.GetInt("score")); rankQuery.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗s } else { //件数取得成功 myRank = count + 1; // 自分よりスコアが上の人がn人いたら自分はn+1位 rankText.GetComponentInChildren <Text>().text = myRank.ToString(); FetchMyRankingData(); } }); }
public int getHPRank(int myJinkeiHeiryoku) { int myRank = 0; NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvp"); query.WhereGreaterThan("jinkeiHeiryoku", myJinkeiHeiryoku); query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 } else { //件数取得成功 myRank = count + 1;// 自分よりスコアが上の人がn人いたら自分はn+1位 } }); return(myRank); }
private void fetchRank(RankingType type, int score) { var className = getClassName(type); var query = new NCMBQuery <NCMBObject>(className); query.WhereGreaterThan(@"score", score); query.CountAsync((count, e) => { if (e != null) { Debug.LogError(e); currentRank.Exception = e; return; } currentRank.Value = count + 1; builder.AppendLine($"あなたの順位: { currentRank.Value } 位"); builder.AppendLine(@"============================"); textField.text = builder.ToString(); }); }
private void FetchScoreList(int higherThan) { // 複数のNCMBObjectを取得するクエリを作成 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject> ("PlayerData"); //条件設定 query.WhereGreaterThan("Score", higherThan); query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { } else { foreach (NCMBObject obj in objList) { Debug.Log( "PlayerName:" + obj ["PlayerName"] + ",Score:" + obj ["Score"] ); } } }); }
// ============================================================ // Score // ============================================================ // サーバーからトップ10を取得 --------------- public void fetchTopRankers(int scoreKind, ScoreDataV1 param, int queryLimit) { fetchData[scoreKind].flag = false; version = param.Version; // データストアの「ScoreDataV1」クラスから検索 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreDataV1"); query.WhereEqualTo("ScoreKindValue", param.ScoreKindValue); //query.WhereEqualTo("Id", param.Id); query.WhereEqualTo("Row", param.Row); query.WhereEqualTo("Col", param.Col); query.WhereEqualTo("Color", param.Color); query.WhereEqualTo("Link", param.Link); query.WhereEqualTo("Direction", param.Direction); query.WhereEqualTo("Time", param.Time); query.WhereEqualTo("Stop", param.Stop); query.WhereEqualTo("CountDisp", param.CountDisp); query.WhereEqualTo("Garbage", param.Garbage); if (param.Version != 0) { // query.WhereEqualTo("Version", param.Version); query.WhereGreaterThan("Version", 1); } query.WhereEqualTo("ScoreCategoryValue", param.ScoreCategoryValue); query.OrderByDescending("Score"); query.Limit = queryLimit; query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 } else { //検索成功時の処理 fetchData[scoreKind].scoreDataList.Clear(); // 取得したレコードをScoreDataV1クラスとして保存 foreach (NCMBObject obj in objList) { ScoreDataV1 data = new ScoreDataV1(); data.Score = System.Convert.ToInt32(obj["Score"]); data.Name = System.Convert.ToString(obj["Name"]); if (version != 0) { data.Version = System.Convert.ToInt32(obj["Version"]); data.Id = System.Convert.ToString(obj["Id"]); data.PlayDateTime = System.Convert.ToInt64(obj["PlayDateTime"]); data.ScoreKindValue = System.Convert.ToInt32(obj["ScoreKindValue"]); data.Row = System.Convert.ToInt32(obj["Row"]); data.Col = System.Convert.ToInt32(obj["Col"]); data.Color = System.Convert.ToInt32(obj["Color"]); data.Link = System.Convert.ToInt32(obj["Link"]); data.Direction = System.Convert.ToInt32(obj["Direction"]); data.Time = System.Convert.ToInt32(obj["Time"]); data.Stop = System.Convert.ToInt32(obj["Stop"]); data.CountDisp = System.Convert.ToInt32(obj["CountDisp"]); data.Garbage = System.Convert.ToInt32(obj["Garbage"]); data.ScoreCategoryValue = System.Convert.ToInt32(obj["ScoreCategoryValue"]); } fetchData[scoreKind].scoreDataList.Add(data); } for (int idx = objList.Count; idx < queryLimit; idx++) { ScoreDataV1 data = new ScoreDataV1(); data.Score = 0; data.Name = "----------"; fetchData[scoreKind].scoreDataList.Add(data); } fetchData[scoreKind].flag = true; } }); }