コード例 #1
0
ファイル: ScoreManager.cs プロジェクト: phansorg/DDChain
    // サーバーからハイスコアを取得  -----------------
    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"]);
                    }
                }
            }
        });
    }
コード例 #2
0
ファイル: TestScript.cs プロジェクト: fafara/Bushi
    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);
                }
            }
        });
    }
コード例 #3
0
ファイル: RankController.cs プロジェクト: sgtkraft/Oju
    /// <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;
                }
            }
        });
    }
コード例 #4
0
ファイル: DataFetch.cs プロジェクト: magekal/MyProject
    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"]
                        );
                }
            }
        });
    }
コード例 #5
0
    /*
     * 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);
                }
            }
        });
    }
コード例 #6
0
ファイル: ScoreManager.cs プロジェクト: phansorg/DDChain
    // サーバーにハイスコアを保存 -------------------------
    // スコア送信処理は非同期でまとめて処理するため、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();
                }
            }
        });
    }
コード例 #7
0
	// 現プレイヤーのハイスコアを受けとってランクを取得 ---------------
	
	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位
			}
		});
	}
コード例 #8
0
    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位
            }
        });
    }
コード例 #9
0
    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位
            }
        });
    }
コード例 #10
0
ファイル: LeaderBoard.cs プロジェクト: sbleru/kiritore
    // 現プレイヤーのハイスコアを受けとってランクを取得 ---------------
    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位
            }
        });
    }
コード例 #11
0
    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());
            }
        });
    }
コード例 #12
0
    /// <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;
            });
        });
    }
コード例 #13
0
    //	自分の順位
    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();
            }
        });
    }
コード例 #14
0
ファイル: DataPvP.cs プロジェクト: pratikxman/Sengoku2d
    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);
    }
コード例 #15
0
        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();
            });
        }
コード例 #16
0
    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"]

                        );
                }
            }
        });
    }
コード例 #17
0
ファイル: ScoreManager.cs プロジェクト: phansorg/DDChain
    // ============================================================
    // 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;
            }
        });
    }