public void GetEnemyBusyoStatus(string userId, int PvPId) { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvpJinkei"); query.WhereNotEqualTo("userId", userId); query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { Debug.Log("Ther is no user : exception"); } else { for (int i = 0; i < 25; i++) { int id = i + 1; string mapId = "map" + id.ToString(); int busyoId = System.Convert.ToInt32(objList[i][mapId]); if (PvPId == 1) { PvP1BusyoList.Add(busyoId); } else if (PvPId == 2) { PvP2BusyoList.Add(busyoId); } else if (PvPId == 3) { PvP3BusyoList.Add(busyoId); } } } }); }
void request_List_create() { //①サーバーが更新されたかどうかを確認する //QueryTestを検索するクラスを作成 NCMBQuery <NCMBObject> my_account = new NCMBQuery <NCMBObject>("_" + myID);//自分のクラスを探す //基準の時間よりも後に新しくデータが作られていたら //IDの値が正しいオブジェクト検索 //データベースを検索する変数(クエリ) //NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>("_604"); my_account.WhereNotEqualTo("SendID", "-1"); my_account.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 Debug.Log("検索に失敗しました"); } else { //IDがありえる数値のオブジェクトを出力 foreach (NCMBObject obj in objList) { Debug.Log("message:" + obj["message"] + "\nSendID:" + obj["SendID"] + "\nCreateDate" + obj.CreateDate); request_List.name = "依頼リスト" + request_num; request_List.gameObject.transform.GetChild(0).GetComponent <Text>().text = obj["message"].ToString(); Instantiate(request_List, new Vector3(0, 0, 0), Quaternion.identity, Containers.transform); request_num++;//依頼されたリストの数を数える //createdate_tmp = obj.CreateDate.ToString(); ////削除する文字を1文字ずつ削除する //foreach (char c in del) //{ // createdate_tmp = createdate_tmp.Replace(c.ToString(), ""); //} //createdate = long.Parse(createdate_tmp); //Debug.Log(createdate); //if (createdate >= now_datetime) //{ // Debug.Log("新しいリストが来た"); // notification_text = obj["SendID"].ToString(); // Debug.Log(notification_text); // Instantiate(notification_obj, new Vector3(0, 0, 0), Quaternion.identity); //} } } }); }
//ID発行 void CreateUserID() { //検索条件を0でない値にセット NCQ_server.WhereNotEqualTo("LastUserId", 0); //検索し、リスト化して処理実行 NCQ_server.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 } else { //検索成功時、見つかったObjを変数として保持 foreach (NCMBObject obj in objList) { NCMB_server = obj; NCMB_server.ObjectId = obj.ObjectId; NCMB_server.FetchAsync((NCMBException f) => { if (f == null) { //成功時の処理 //自身をユーザーとして登録 num_id = System.Convert.ToInt32(NCMB_server["LastUserId"]); num_id += 1; NCMB_["UserId"] = num_id; NCMB_server["LastUserId"] = num_id; NCMB_["ClickCount"] = 0; NCMB_.SaveAsync(); NCMB_server.SaveAsync(); //ローカルにユーザーIdを保存 PlayerPrefs.SetInt("UserId", num_id); PlayerPrefs.Save(); flg_accept = true; } }); } } }); }
/// <summary> /// IDを発行する /// </summary> private void CreateUserID() { //検索条件を0でない値にセット m_NCQ_server.WhereNotEqualTo("LastUserId", 0); //検索し、リスト化して処理実行 m_NCQ_server.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //再接続用モーダルを表示 UIManager.Instance.PopupNetworkErrorModal(() => { this.Start(); }); //検索失敗時の処理 } else { //検索成功時、見つかったObjを変数として保持 m_NCMB_server = objList[0]; m_NCMB_server.ObjectId = objList[0].ObjectId; m_NCMB_server.FetchAsync((NCMBException f) => { if (f == null) { //成功時の処理 //自身をユーザーとして登録 CreateDataToServer(); //ローカルにユーザーIdを保存 CreateDataToLocal(); m_flg_accept = true; Debug.Log("アカウントを作成しました : UserID = " + AppManager.Instance.user.m_id); //取得したデータはDictionary型で保持 AppManager.Instance.user.m_temp.m_dic_.Add(m_NCMB_["data_Stage1"] as Dictionary <string, object>); AppManager.Instance.user.m_temp.m_dic_.Add(m_NCMB_["data_Stage2"] as Dictionary <string, object>); } else if (f != null) { //再接続用モーダルを表示 UIManager.Instance.PopupNetworkErrorModal(() => { this.Start(); }); } }); } }); }
// Update is called once per frame void Update() { //自分に依頼している内容を検索するクラスを作成 NCMBQuery <NCMBObject> my_account = new NCMBQuery <NCMBObject>("_" + myID);//自分のクラスを探す //自分に依頼している内容のものを全て取得 my_account.WhereNotEqualTo("SendID", "-1"); my_account.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 Debug.Log("検索に失敗しました"); } else { //IDがありえる数値のオブジェクトを出力 foreach (NCMBObject obj in objList) { //確認 Debug.Log("message:" + obj["message"] + "\nSendID:" + obj["SendID"] + "\nCreateDate" + obj.CreateDate + "\nOrderDate:" + obj["OrderDate"]); //依頼した時間を取得 createdate = long.Parse(obj["OrderDate"].ToString()); Debug.Log("createdate" + createdate); //最近依頼されたかどうかを確認 if (createdate >= now_datetime) { //もう通知したものであれば、二度と通知しないようにする if (verification != null) { foreach (string Existing_text in verification) { if (Existing_text == obj["SendID"].ToString()) { //二度と通知しない text_once = false; } } } //まだ通知してないので、通知するために必要なデータを記録する if (text_once == true) { Debug.Log("新しいリストが来た"); //依頼主のIDを記録する verification.Add(obj["SendID"].ToString()); //今記録したオブジェクトIDを記録し、もう一度通知させないようにする completed_id.Add(obj.ObjectId); Debug.Log(completed_id); //通知用のオブジェクトを画面に出力するようにする Display_once = true; //確認用 foreach (string d in completed_id) { Debug.Log("保存されているリスト" + d); } } //リセット text_once = true; } } //通知できる状態だったら、通知するようにする if (Display_once == true) { Display(); } } }); }
//通知用オブジェクトに通知内容を記録させ、画面に出力するようにする void Display() { if (verification != null) { foreach (string Existing_text in verification) { //依頼者のアカウントの名前を取得するため、UserIDsを検索するクラスを作成 NCMBQuery <NCMBObject> ID = new NCMBQuery <NCMBObject>("UserIDs"); //IDの欄からExisting_text(探すIDの値)と一致するオブジェクト検索 ID.WhereEqualTo("ID", Existing_text); ID.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 Debug.Log("ユーザーネーム取得に失敗"); } else { //検索したいユーザーネームを取得 foreach (NCMBObject name in objList) { requestername = name["Name"].ToString(); Debug.Log("nameから取得:" + name["Name"].ToString()); //取得した依頼主の名前をnotification_textに渡す notification_text = requestername; //通知用のオブジェクトのテキストに表示する文字の内容を与える notification_obj.gameObject.transform.GetChild(0).GetComponent <Text>().text = notification_text + "さんから依頼が届きました"; ////通知用のオブジェクトを表示させる //Instantiate(notification_obj, new Vector3(540, 80.55005f, 0), Quaternion.identity, this.transform); //Debug.Log("通知オブジェクトを生成した"); //もし、連続で通知オブジェクトを生成するなら、2秒ごとに生成されるようになる interval_time = 2.0f * loop_count; Debug.Log("通知を出す"); Invoke("notifi_Instance", interval_time);//notifi_Instance関数で通知オブジェクトを生成 loop_count++; } } }); } //連続する通知オブジェクト生成の間隔をリセット loop_count = 0; interval_time = 0; //Notification_completedクラスの内容を取得 NCMBObject obj = new NCMBObject("Notification_completed"); //通知用オブジェクトのために使ったオブジェクトIDを全て取得 foreach (string id in completed_id) { //すでに通知を記録したものかどうかを調べる //Notification_completedを検索するクラスを作成 NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("Notification_completed"); //クラスの中のcompleted_idを全て取得する query.WhereNotEqualTo("completed_id", "0"); query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { //検索失敗時の処理 Debug.Log("エラー"); } else { //確認用 foreach (NCMBObject quaryobj in objList) { Debug.Log("quaryobj[completed_id]" + quaryobj["completed_id"].ToString()); } foreach (NCMBObject quaryobj in objList) { //もし、Notification_completedクラスのcompleted_idの中に //まだ通知用オブジェクトに使ったオブジェクトidが書き込まれていなかったら、書き込みを始める if (quaryobj["completed_id"].ToString() == id) { Debug.Log("書き込みを開始"); writing = false; } else { Debug.Log("違う"); } } //通知用オブジェクトに使ったオブジェクトidをcompleted_idに記録する if (writing == true) { obj["completed_id"] = id; obj.SaveAsync((NCMBException e2) => { if (e2 != null) { //エラー処理 Debug.Log("失敗"); } else { //成功時の処理 Debug.Log("保存した"); } }); } //リセット writing = true; } }); //二回以上表示されることを防止 Display_once = false; } } }
/* int a; * int b; * int c; * int[] aa; * int[] bb; * * int[] cc; */ // Use this for initialization void Start() { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("Cheer"); query.WhereNotEqualTo("Obj1", ""); query.OrderByAscending("Suc1"); query.FindAsync((List <NCMBObject> objectlist, NCMBException e) => { foreach (NCMBObject obj in objectlist) { var item = GameObject.Instantiate(prefab) as RectTransform; item.SetParent(transform, false); var t = item.transform.Find("Title"); var title = t.GetComponent <Text>(); title.text = (string)obj["Obj1"]; var n = item.transform.Find("Name"); var name = n.GetComponent <Text>(); name.text = (string)obj["Name"]; var button = item.transform.Find("Button").gameObject; var info = button.GetComponent <Info>(); info.sendname = (string)obj["Name"]; // button.GetComponent<Info>().sendname =(string)obj["Name"]; info.obj = (string)obj["Obj1"]; info.objnum = 1; info.forfor = (long)obj["For1"]; info.suc = (long)obj["Suc1"]; info.fall = (long)obj["Fall1"]; print(obj["Water1"].GetType()); info.water = (long)obj["Water1"]; } } ); /* * NCMBQuery<NCMBObject> obj1 = query.WhereNotEqualTo("Suc1", ""); * NCMBQuery<NCMBObject> obj2 = query.WhereNotEqualTo("Suc2", ""); * NCMBQuery<NCMBObject> obj3 = query.WhereNotEqualTo("Suc3", ""); * obj1.OrderByAscending("Suc1"); * obj2.OrderByAscending("Suc2"); * obj3.OrderByAscending("Suc3"); * * * obj1.FindAsync((List<NCMBObject> objectlist, NCMBException e) => * { * a = objectlist.Count; * aa = new int[a]; * int aaa = 0; * foreach(NCMBObject obj in objectlist) * { * aa[aaa] =(int)obj["Suc1"]; * aaa++; * } * * * }); * obj2.FindAsync((List<NCMBObject> objectlist, NCMBException e) => * { * b = objectlist.Count; * bb = new int[b]; * int bbb = 0; * foreach (NCMBObject obj in objectlist) * { * aa[aaa] = (int)obj["Suc1"]; * aaa++; * } * * * }); */ }
/* Weekly End */ /* Matching Start */ public void GetRandomEnemy(string myUserId, int HpBase, int startDateNCMB, int endDateNCMB, int todayNCMB, int myTotalPt) { //Test //myTotalPt = 1000000; NCMBQuery <NCMBObject> queryPvPTmp = new NCMBQuery <NCMBObject>("pvpTmp"); queryPvPTmp.WhereNotEqualTo("userId", myUserId); queryPvPTmp.WhereGreaterThanOrEqualTo("endDate", todayNCMB); queryPvPTmp.WhereLessThanOrEqualTo("totalPt", myTotalPt * 2); queryPvPTmp.WhereGreaterThanOrEqualTo("totalPt", myTotalPt); //queryPvPTmp.WhereLessThanOrEqualTo("jinkeiHeiryoku", HpBase * 2); //queryPvPTmp.WhereGreaterThanOrEqualTo("jinkeiHeiryoku", HpBase / 2); queryPvPTmp.CountAsync((int count, NCMBException eCount) => { if (eCount == null) { matchCount = count; int rdmSkip = UnityEngine.Random.Range(0, matchCount) - 3; if (rdmSkip < 0) { rdmSkip = 0; } /*From PvP*/ if (matchCount == 0) { NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("pvp"); query.WhereNotEqualTo("userId", myUserId); query.WhereLessThanOrEqualTo("jinkeiHeiryoku", Mathf.CeilToInt((float)HpBase * 1.5f)); query.WhereGreaterThanOrEqualTo("jinkeiHeiryoku", Mathf.CeilToInt((float)HpBase / 1.5f)); query.WhereNotEqualTo("atkNo", 0); query.CountAsync((int pvpCount, NCMBException PvPexpection) => { if (PvPexpection == null) { matchCount = pvpCount; if (matchCount == 0) { matchedFlg = true; } else { //Random Id query.Skip = rdmSkip; query.Limit = 3; query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { Debug.Log("Ther is no user : exception"); } else { int jinkeiJudgeCount = 0; for (int i = 0; i < objList.Count; i++) { int index = i; string userId = System.Convert.ToString(objList[index]["userId"]); // userIdに対応するpvpjinkeiが存在するか NCMBQuery <NCMBObject> jinkeiQuery = new NCMBQuery <NCMBObject>("pvpJinkei"); jinkeiQuery.WhereEqualTo("userId", userId); jinkeiQuery.CountAsync((int jinkeiCount, NCMBException exception) => { if (exception == null) { // pvpjinkeiが存在するもののみ追加 if (jinkeiCount > 0) { string userName = System.Convert.ToString(objList[index]["userName"]); int soudaisyo = System.Convert.ToInt32(objList[index]["soudaisyo"]); int kuniLv = System.Convert.ToInt32(objList[index]["kuniLv"]); int hp = System.Convert.ToInt32(objList[index]["jinkeiHeiryoku"]); if (soudaisyo != 0) { pvpUserIdList.Add(userId); pvpUserNameList.Add(userName); pvpSoudaisyoList.Add(soudaisyo); pvpKuniLvList.Add(kuniLv); pvpHpList.Add(hp); //Enemy Pt & Rank //InsertPvPWeekly(userId, startDateNCMB, endDateNCMB, userName, kuniLv, soudaisyo, hp); pvpPtList.Add(1000); } } } jinkeiJudgeCount++; if (jinkeiJudgeCount == objList.Count) { matchedFlg = true; } }); } } }); } } }); /*From PvP Tmp(Weekly)*/ } else { queryPvPTmp.Skip = rdmSkip; queryPvPTmp.Limit = 3; queryPvPTmp.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { Debug.Log("Ther is no user : exception"); } else { int jinkeiJudgeCount = 0; for (int i = 0; i < objList.Count; i++) { int index = i; string userId = System.Convert.ToString(objList[index]["userId"]); // userIdに対応するpvpjinkeiが存在するか NCMBQuery <NCMBObject> jinkeiQuery = new NCMBQuery <NCMBObject>("pvpJinkei"); jinkeiQuery.WhereEqualTo("userId", userId); jinkeiQuery.CountAsync((int jinkeiCount, NCMBException exception) => { if (exception == null) { // pvpjinkeiが存在するもののみ追加 if (jinkeiCount > 0) { string userName = System.Convert.ToString(objList[index]["userName"]); int soudaisyo = System.Convert.ToInt32(objList[index]["soudaisyo"]); int kuniLv = System.Convert.ToInt32(objList[index]["kuniLv"]); int hp = System.Convert.ToInt32(objList[index]["jinkeiHeiryoku"]); int pt = System.Convert.ToInt32(objList[index]["totalPt"]); if (soudaisyo != 0) { pvpUserIdList.Add(userId); pvpUserNameList.Add(userName); pvpSoudaisyoList.Add(soudaisyo); pvpKuniLvList.Add(kuniLv); pvpHpList.Add(hp); pvpPtList.Add(pt); } } } jinkeiJudgeCount++; if (jinkeiJudgeCount == objList.Count) { matchedFlg = true; } }); } } }); } } }); /* * NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>("pvp"); * query.WhereNotEqualTo("userId", myUserId); * query.WhereLessThanOrEqualTo("jinkeiHeiryoku", Mathf.CeilToInt((float)HpBase * 1.5f)); * query.WhereGreaterThanOrEqualTo("jinkeiHeiryoku", Mathf.CeilToInt((float)HpBase/1.5f)); * query.WhereNotEqualTo("atkNo",0); * * int rdmSkip = 0; * query.CountAsync((int count, NCMBException eCount) => { * if (eCount == null) { * matchCount = count; * rdmSkip = UnityEngine.Random.Range(0, matchCount) - 3; * if (rdmSkip < 0) rdmSkip = 0; * * if (matchCount == 0) { * matchedFlg = true; * }else { * //Random Id * query.Skip = rdmSkip; * query.Limit = 3; * * query.FindAsync((List<NCMBObject> objList, NCMBException e) => { * if (e != null) { * Debug.Log("Ther is no user : exception"); * } * else { * int jinkeiJudgeCount = 0; * for (int i = 0; i < objList.Count; i++) { * * if (pvpUserIdList.Count == 3) { * matchedFlg = true; * break; * } * * int index = UnityEngine.Random.Range(0, objList.Count); * string userId = System.Convert.ToString(objList[index]["userId"]); * * // userIdに対応するpvpjinkeiが存在するか * NCMBQuery<NCMBObject> jinkeiQuery = new NCMBQuery<NCMBObject>("pvpJinkei"); * jinkeiQuery.WhereEqualTo("userId", userId); * jinkeiQuery.CountAsync((int jinkeiCount, NCMBException exception) => { * if (exception == null) { * // pvpjinkeiが存在するもののみ追加 * if (jinkeiCount > 0) { * string userName = System.Convert.ToString(objList[index]["userName"]); * int soudaisyo = System.Convert.ToInt32(objList[index]["soudaisyo"]); * int kuniLv = System.Convert.ToInt32(objList[index]["kuniLv"]); * int hp = System.Convert.ToInt32(objList[index]["jinkeiHeiryoku"]); * * pvpUserIdList.Add(userId); * pvpUserNameList.Add(userName); * pvpSoudaisyoList.Add(soudaisyo); * pvpKuniLvList.Add(kuniLv); * pvpHpList.Add(hp); * * //Enemy Pt & Rank * NCMBQuery<NCMBObject> queryPvPTmp = new NCMBQuery<NCMBObject>("pvpTmp"); * queryPvPTmp.WhereEqualTo("userId", userId); * queryPvPTmp.WhereGreaterThanOrEqualTo("endDate", todayNCMB); * queryPvPTmp.FindAsync((List<NCMBObject> objPvPList, NCMBException ePvP) => { * if (ePvP == null) { * if (objPvPList.Count == 0) { //never registered * InsertPvPWeekly(userId, startDateNCMB, endDateNCMB, userName, kuniLv, soudaisyo, hp); * pvpPtList.Add(1000); * } * else { //Get Data * foreach (NCMBObject objPvP in objPvPList) { * int pt = System.Convert.ToInt32(objPvP["totalPt"]); * pvpPtList.Add(pt); * } * } * } * }); * } * } * * jinkeiJudgeCount++; * if (jinkeiJudgeCount == 3) { * matchedFlg = true; * } * }); * * } * } * }); * } * } * }); */ }