//指定したユーザー名がランキング上に存在するかチェック(指定したモード) public void IsNameExistInRanking(string name, int gameModeId, Save_ranking_item save_Ranking_Item, CallbackBool callback) { isNameExist = false; NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>(rankingClassName); query.WhereEqualTo("name", name); query.WhereEqualTo("gameModeId", gameModeId); query.WhereEqualTo("type", (int)save_Ranking_Item); query.CountAsync((int count, NCMBException e) => { // 1つ上のコードで絞られたデータが何個あるかかぞえる if (e == null) { if (count == 0) { // 0個なら名前は登録されていない isNameExist = false; } else { // 0個じゃなかったらすでに名前が登録されている isNameExist = true; } } callback(isNameExist); }); return; }
public void GetDataRecoveryCount(string userId) { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("dataRecovery"); query.WhereEqualTo("userId", userId); query.CountAsync((int count, NCMBException e) => { if (e != null) { audioSources[4].Play(); Message msg = new Message(); msg.makeMessage(msg.getMessage(113)); ResetValue(); } else { //件数取得成功 dataRecoveryCount = count; if (dataRecoveryCount != 0) { audioSources[4].Play(); Message msg = new Message(); msg.makeMessage(msg.getMessage(149)); ResetValue(); } } }); }
public void FetchPlayerCount(UnityAction callback = null) { if (CheckNCMBValid() == false) { if (callback != null) { callback(); } return; } NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>(rankingClassName); query.CountAsync((int count, NCMBException e) => { if (e != null) { //接続失敗// } else { //接続成功// PlayerCount = count; } if (callback != null) { callback(); } }); }
//指定したユーザー名がランキング上に存在するかチェック(モード問わず) public void IsNameExistAll(string name, CallbackBool callback) { isBusy = true; isNameExist = false; NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>(rankingClassName); query.WhereEqualTo("name", name); query.CountAsync((int count, NCMBException e) => { if (e == null) { if (count == 0) { // 0個なら名前は登録されていない Debug.Log("false"); isNameExist = false; } else { // 0個じゃなかったらすでに名前が登録されている Debug.Log("true"); isNameExist = true; } } callback(isNameExist); isBusy = false; }); }
/* * 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); } } }); }
/// <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; } } }); }
void GetImageCount() { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject> ("DoodleRecord"); query.WhereEqualTo("date", DateTime.Now.Date); query.WhereEqualTo("type", pictureType); if (pictureType == "doodle") { query.WhereEqualTo("theme", Configuration.theme); } query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗時の処理 } else { //件数を出力 imageCount = count; if (imageCount == 0) { noText.SetActive(true); } } }); }
/// <summary> ///クエリにマッチするオブジェクト数の取得を行います。 /// </summary> /// <returns>カウント数</returns> public static IObservable <int> CountAsyncAsStream <T>(this NCMBQuery <T> query) where T : NCMBObject { return(Observable.Create <int>(observer => { var gate = new object(); var isDisposed = false; query.CountAsync((count, error) => { lock (gate) { if (isDisposed) { return; } if (error == null) { observer.OnNext(count); observer.OnCompleted(); } else { observer.OnError(error); } } }); return Disposable.Create(() => { lock (gate) { isDisposed = true; } }); })); }
//指定したレコードのランクを取得 public void fetchRank(string name, int gameModeId, Save_ranking_item save_Ranking_Item, CallbackInt callback) { currentRank = 0; RankingRecord myRecord = null; // データスコアの「HighScore」から検索 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>(rankingClassName); query.WhereEqualTo("name", name); query.WhereEqualTo("gameModeId", gameModeId); query.WhereEqualTo("type", (int)save_Ranking_Item); query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e == null && objList.Count > 0) { //検索成功したら string _name = System.Convert.ToString(objList[0]["name"]); // 名前を取得 float _distance = System.Convert.ToSingle(objList[0]["distance"]); // スコアを取得 float _timeSpan = System.Convert.ToSingle(objList[0]["timeSpan"]); myRecord = new RankingRecord(0, _name, _distance, _timeSpan, save_Ranking_Item); var query2 = new NCMBQuery <NCMBObject>(rankingClassName); query2.WhereEqualTo("gameModeId", gameModeId); query2.WhereEqualTo("type", (int)save_Ranking_Item); switch (save_Ranking_Item) { case Save_ranking_item.SAVE_RANKING_HIGH: query2.WhereGreaterThanOrEqualTo("distance", myRecord.distance); break; case Save_ranking_item.SAVE_RANKING_LOW: query2.WhereLessThanOrEqualTo("distance", myRecord.distance); break; default: break; } query2.CountAsync((int count, NCMBException e2) => { if (e2 != null) { //件数取得失敗 callback(currentRank); } else { //件数取得成功 currentRank = count + 1; // 自分よりスコアが上の人がn人いたら自分はn+1位 } callback(currentRank); }); } else { callback(currentRank); } return; }); }
public void GetBanCount(string userId) { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ban"); query.WhereEqualTo("userId", userId); query.CountAsync((int count, NCMBException e) => { ban = count; }); }
//IDを作成する関数 void CreateID() { ID_int = (int)Random.Range(0, 999); //0~999の乱数を生成し、IDにする //IDをstring型に直す if (ID_int < 100) { ID_str += "0"; if (ID_int < 10) { ID_str += "0"; } } ID_str += ID_int.ToString(); //取得テスト //UserIDsを検索するクラスを作成 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("UserIDs"); //IDの値がID_strと一致するオブジェクトを検索 query.WhereEqualTo("ID", ID_str); query.CountAsync((int count, NCMBException e) => { if (e != null) { //検索失敗時 Debug.Log("エラーです"); } else { //被っていなければ if (count == 0) { //IDを表示する //ID_text.text = "ID:" + ID_str; //クラスを作成 NCMBObject objClass = new NCMBObject("UserIDs"); // オブジェクトに値を設定 objClass["ID"] = ID_str; objClass["Name"] = "name"; // データストアへの登録 objClass.SaveAsync(); } //被っていたら else { ID_str = ""; CreateID(); } } }); Debug.Log("終了"); }
/// <summary> /// mBaaS上のランキングクラスから総プレイヤー数を取得する /// </summary> /// <param name="callback">コールバック関数</param> public void GetTotalPlayers(IntCallback callback) { NCMBQuery <NCMBObject> query = GetQuery(NCMBUTRankingsDefaultSettings.RANKING_CLASS); query.WhereEqualTo(NCMBUTRankingsDefaultSettings.RankingsDefaultFields.stage.ToString(), Stage); query.CountAsync((int count, NCMBException error) => { callback(count, error); return; }); }
// 現プレイヤーのハイスコアを受けとってランクを取得 --------------- 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 static void GetCount() { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("NCMB_RTC"); query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗時の処理 } else { //件数を出力 Debug.Log("件数 : " + count); } }); }
/// <summary> /// クエリにマッチするオブジェクト数の取得を行います。 /// </summary> public static Task <int> CountTaskAsync <T>(this NCMBQuery <T> query) where T : NCMBObject { var tcs = new TaskCompletionSource <int>(); query.CountAsync((count, error) => { if (error != null) { tcs.SetException(error); } else { tcs.SetResult(count); } }); return(tcs.Task); }
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位 } }); }
/* Total Start */ public void GetPvPCount() { //PvPCount NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvp"); query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 Debug.Log(count); } else { //件数取得成功 pvpCount = count; } }); }
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 int getPvPCount() { int allCount = 0; NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvp"); query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 } else { //件数取得成功 allCount = count; } }); return(allCount); }
/// <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; }); }); }
// プレーヤー名の存在確認/変更(使ってない) void CheckPlayerName(string playerName) { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreRanking"); query.WhereEqualTo("playername", playerName); query.CountAsync((int count, NCMBException e) => { // 1つ上のコードで絞られたデータが何個あるかかぞえる if (e == null) { if (count == 0) { // 0個なら名前は登録されていない Debug.Log("登録可能です"); } else { // 0個じゃなかったらすでに名前が登録されている Debug.Log("登録できません"); } } }); }
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()); } }); }
public void checkPlayerRename() { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreRanking"); string playerName = renamefield.text; query.WhereEqualTo("playername", playerName); query.CountAsync((int count, NCMBException e) => { // 1つ上のコードで絞られたデータが何個あるかかぞえる if (e == null) { if (count == 0 && playerName != "") { // 0個なら名前は登録されていないので登録 json = File.ReadAllText(Application.persistentDataPath + "/data.json"); json = encryption.DecryptString(json); JsonUtility.FromJsonOverwrite(json, sv); renamePlayerName(sv._name, playerName, "ScoreRanking"); //改名したデータを送信 renamePlayerName(sv._name, playerName, "LevelRanking"); //改名したデータを送信 sv._name = playerName; Debug.Log("あなたの新しい名前は" + sv._name); json = JsonUtility.ToJson(sv); json = encryption.EncryptString(json); File.WriteAllText(Application.persistentDataPath + "/data.json", json);//結局これでよかった Debug.Log("改名しました!!"); rename.SetActive(false); setting.SetActive(true); // CheckScore(); title_importaantvalue iv = scriptbox.GetComponent <title_importaantvalue>();//右上の名前を変更 iv.Start(); } else { // 0個じゃなかったらすでに名前が登録されている Debug.Log("登録できません"); duplicated_re.SetActive(true); } } }); }
// 自分の順位 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 GetJinkeCount() { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvpJinkei"); int returnValue = 0; query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 returnValue = count; } else { //件数取得成功 returnValue = count; } }); return(returnValue); }
/* Total End */ /* Weekly Start */ public void GetPvPCountWeekly(int todayNCMB) { //PvPCount NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvpTmp"); //date query.WhereGreaterThanOrEqualTo("endDate", todayNCMB); query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗 Debug.Log("pvpTmp:" + count); } else { //件数取得成功 pvpCountWeekly = count; } }); }
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(); }); }
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); }
public void checkPlayerName() { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreRanking"); string playerName = namefield.text; query.WhereEqualTo("playername", playerName); query.CountAsync((int count, NCMBException e) => { // 1つ上のコードで絞られたデータが何個あるかかぞえる if (e == null) { if (count == 0 || playerName == "") { // 0個なら名前は登録されていないので登録 json = File.ReadAllText(Application.persistentDataPath + "/data.json"); JsonUtility.FromJsonOverwrite(json, sv); // sv._name = playerName; Debug.Log("あなたの名前は" + sv._name); json = JsonUtility.ToJson(sv); File.WriteAllText(Application.persistentDataPath + "/data.json", json);//結局これでよかった saveScoreRanking(sv._name, sv._bestscore[0], sv._bestscore[1]); saveLevelRanking(sv._name, sv._sv_level[0], sv._sv_level[1]); Debug.Log("登録しました!!"); CheckScore(); // makename.SetActive(false); // Topmenu.SetActive(true); makename.SetActive(false); // scenemover sm = scriptbox.GetComponent<scenemover>();//スコアを取得 // sm.homeButtonpushed(); } else { // 0個じゃなかったらすでに名前が登録されている Debug.Log("登録できません"); duplicated.SetActive(true); } } }); }
//検索するボタンをクリックしたとき public void SerchButton() { //ネットワークの状態を確認する if (Application.internetReachability == NetworkReachability.NotReachable) { //ネットワークに接続されていない状態 Instance = Instantiate(ErrorPanelPrefab); Instance.transform.parent = parent.transform; Instance.transform.localPosition = Vector3.zero; Instance.GetComponent <RectTransform>().offsetMax = Instance.GetComponent <RectTransform>().offsetMin = Vector2.zero; } else { //ネットワークに接続されている状態 //UserIDsのクラスを検索 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("UserIDs"); //検索条件を指定 query.WhereEqualTo("ID", FamilyID.text); //入力したIDのアカウントが存在するか調べる query.CountAsync((int count, NCMBException e) => { if (e != null) { //件数取得失敗時の処理 } else { Debug.Log("count : " + count); //アカウントが存在した場合 if (count > 0) { //登録されている家族のIDを読み込む string[] FileText = File.ReadAllLines(FilePath); //IDが既に登録されているかを見るフラグ bool IDRegisterYet = false; //IDがすでに登録されているか検索 for (int i = 0; i < FileText.Length; i++) { Debug.Log("ファイル[" + i + "] = " + FileText[i]); if (FileText[i] == FamilyID.text) { IDRegisterYet = true; break; } } //自分のIDが入力されたときの処理 if (FamilyID.text == PlayerPrefs.GetString("IDCreateYet", "null")) { UncorrectPanel.SetActive(true); UncorrectText.text = "自分のIDを\n登録することはできません"; } //IDが既に登録されている場合の処理 else if (IDRegisterYet) { UncorrectPanel.SetActive(true); UncorrectText.text = "入力されたIDは\n既に登録されています"; } else { //指定されたIDのアカウントを取得 GetAccount(); } } //アカウントが存在しない場合 else { //エラーパネルを表示 UncorrectPanel.SetActive(true); UncorrectText.text = "入力されたIDは存在しません\nもう一度お試しください"; } } }); } }