public void getTournamentReward() { string lastTournament = PlayerPrefs.GetString("last_saved_leaderboard"); if (!string.IsNullOrEmpty(lastTournament)) { GameObject _tournamentRewardPopup = GameObject.Find("CanvasGlobal").transform.Find("TournamentReward").gameObject; GetSharedGroupDataRequest request = new GetSharedGroupDataRequest() { SharedGroupId = lastTournament, GetMembers = true }; PlayFabClientAPI.GetSharedGroupData(request, (result) => { List <KeyValuePair <string, SharedGroupDataRecord> > myList = result.Data.ToList(); myList.Sort( delegate(KeyValuePair <string, SharedGroupDataRecord> pair1, KeyValuePair <string, SharedGroupDataRecord> pair2) { return(pair2.Value.Value.CompareTo(pair1.Value.Value)); } ); result.Data = myList.ToDictionary(x => x.Key, x => x.Value); int counter = 0; var enumerator = result.Data.GetEnumerator(); while (enumerator.MoveNext()) { counter++; string currentId = enumerator.Current.Key; if (currentId == PlayFabManager.instanse.PlayFabId) { if (counter == 1 || counter == 2 || counter == 3) { Debug.Log("you win at " + counter.ToString() + " place"); _tournamentRewardPopup.GetComponent <TournamentRewardController>()._currentPlace = counter; PopupManager.instanse.showPopup(_tournamentRewardPopup); } break; } } }, (error) => { Debug.Log("Error logging in player with custom ID:"); Debug.Log(error.ErrorMessage); Debug.Log(error.ErrorDetails); }); } }
public static async Task <TicTacToeSharedGroupData> GetAsync(PlayFabAuthenticationContext context, string groupId) { var request = new GetSharedGroupDataRequest { AuthenticationContext = context, SharedGroupId = groupId }; var response = await GetPlayFabServerInstanceAPI().GetSharedGroupDataAsync(request); var resultData = response?.Result?.Data ?? null; if (resultData == null) { return(null); } return(ParseFromSharedGroupData <TicTacToeSharedGroupData>(resultData, Constants.SHARED_GROUP_DATA_DICTIONARY_ENTRY_NAME)); }
public void openTournamentLeaderboard() { GameObject _leaderboard = GameObject.Find("CanvasGlobal").transform.Find("ChallengeTournamentLeaderboard").gameObject; _leaderboard.SetActive(true); GetSharedGroupDataRequest request = new GetSharedGroupDataRequest() { SharedGroupId = PlayerPrefs.GetString("last_saved_leaderboard"), GetMembers = true }; PlayFabClientAPI.GetSharedGroupData(request, (result) => { _leaderboard.GetComponent <TournamentLeaderboard>().displayLeaderboard(result); }, (error) => { Debug.Log("Error logging in player with custom ID:"); Debug.Log(error.ErrorMessage); Debug.Log(error.ErrorDetails); }); }
IEnumerator onFindOrCreateTournamentLeaderbord() { string title_tournament_id = ChallengeController.instanse.getTournamentLevelDef(); string titleValue = ""; GetTitleDataRequest request = new GetTitleDataRequest() { }; PlayFabClientAPI.GetTitleData(request, (result) => { foreach (var entry in result.Data) { if (entry.Key == title_tournament_id) { titleValue = entry.Value; break; } } }, (error) => { Debug.Log("Error logging in player with custom ID:"); Debug.Log(error.ErrorMessage); Debug.Log(error.ErrorDetails); }); while (string.IsNullOrEmpty(titleValue)) { yield return(new WaitForSeconds(0.1f)); } Debug.Log("get tittle data succes"); int currentMembersCount = -1; int _weekNumber = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(UnbiasedTime.Instance.Now(), System.Globalization.CalendarWeekRule.FirstDay, System.DayOfWeek.Monday); string currentGroupId = ""; GetSharedGroupDataRequest _groupRequest = new GetSharedGroupDataRequest() { SharedGroupId = "star_tournament_" + title_tournament_id + "_" + UnbiasedTime.Instance.Now().Year.ToString() + "_" + _weekNumber + "_" + titleValue, GetMembers = true }; PlayFabClientAPI.GetSharedGroupData(_groupRequest, (result) => { Debug.Log("find group data of members " + result.Members.Count); currentGroupId = _groupRequest.SharedGroupId; currentMembersCount = result.Members.Count; foreach (var entry in result.Data) { } }, (error) => { Debug.Log("error by getting group data"); Debug.Log(error.ErrorMessage); Debug.Log(error.ErrorDetails); }); while (currentMembersCount < 0) { yield return(new WaitForSeconds(0.1f)); } List <string> _membersToAdd = new List <string> (); _membersToAdd.Add(PlayFabId); bool leaderbordIsReady = false; leaderbordIsReady = currentMembersCount > 0 && currentMembersCount < ChallengeController.limitToJoinTournamentLeaderboard; if (!leaderbordIsReady) { if (currentMembersCount >= ChallengeController.limitToJoinTournamentLeaderboard) { int tValue = int.Parse(titleValue); tValue++; titleValue = tValue.ToString(); inscTittleValue(titleValue); currentGroupId = "star_tournament_" + title_tournament_id + "_" + UnbiasedTime.Instance.Now().Year.ToString() + "_" + _weekNumber + "_" + titleValue; } CreateSharedGroupRequest _sharedGroupInvite = new CreateSharedGroupRequest() { SharedGroupId = currentGroupId }; PlayFabClientAPI.CreateSharedGroup(_sharedGroupInvite, (result) => { Debug.Log("creating new group succes!"); PlayerPrefs.SetString("last_saved_leaderboard", result.SharedGroupId); PlayerPrefs.Save(); updateLeaderboardValue("0"); leaderbordIsReady = true; }, (error) => { Debug.Log("error by enter to group"); Debug.Log(error.ErrorMessage); Debug.Log(error.ErrorDetails); }); } while (!leaderbordIsReady) { yield return(new WaitForSeconds(0.1f)); } PlayFab.ServerModels.AddSharedGroupMembersRequest _addMembersReqvest = new PlayFab.ServerModels.AddSharedGroupMembersRequest() { SharedGroupId = currentGroupId, PlayFabIds = _membersToAdd }; PlayFab.PlayFabServerAPI.AddSharedGroupMembers(_addMembersReqvest, (result) => { Debug.Log("adding to group succes!"); PlayerPrefs.SetString("last_saved_leaderboard", _addMembersReqvest.SharedGroupId); PlayerPrefs.Save(); updateLeaderboardValue("0"); }, (error) => { Debug.Log("error by enter to group"); Debug.Log(error.ErrorMessage); Debug.Log(error.ErrorDetails); }); }