상속: PlayFabRequestCommon
예제 #1
0
        public void GetHighScoreLeaderboard(Action <List <LeadboardPlayerData> > Callback)
        {
            PlayFab.ClientModels.GetLeaderboardRequest request = new PlayFab.ClientModels.GetLeaderboardRequest()
            {
                StatisticName   = "HighScore",
                MaxResultsCount = 5,
                StartPosition   = 0
                                  //PlayFabId = playFabId,
                                  //IncludeFacebookFriends = true
            };

            PlayFabClientAPI.GetLeaderboard(request, (result) =>
            {
                List <LeadboardPlayerData> list = new List <LeadboardPlayerData> ();
                foreach (var item in result.Leaderboard)
                {
                    LeadboardPlayerData pl = new LeadboardPlayerData();
                    pl.Name     = item.DisplayName;
                    pl.userID   = item.PlayFabId;
                    pl.position = item.Position;
                    pl.score    = item.StatValue;

                    list.Add(pl);
                    Debug.Log(item.DisplayName + " " + item.PlayFabId + " " + item.Position + " " + item.StatValue);
                }
                Callback(list);
            }, (error) => {
                Debug.Log(error.ErrorDetails);
            });
        }
예제 #2
0
	public void InitLeaderboard(string authKey = null) 
	{
		PlayFab.ClientModels.GetLeaderboardRequest lbRequest = new PlayFab.ClientModels.GetLeaderboardRequest();
		lbRequest.MaxResultsCount = 10;
		lbRequest.StatisticName = "WonRaces";
		PlayFabClientAPI.GetLeaderboard(lbRequest, LoadLeaderboard, OnPlayFabError);
	}
예제 #3
0
    public void Awake()
    {
        //Verifica se o usuário está logado pois só é possível carregar os dados do Leadeboard caso ele esteja logado.
        if (FacebookAndPlayFabInfo.isLoggedOnPlayFab)
        {
            //Configura a chamada para carregar os dados do Leaderboard. Informa qual é a o nome do Leaderboard e quantos
            //resultados deve trazer no máximo.
            PlayFab.ClientModels.GetLeaderboardRequest request = new PlayFab.ClientModels.GetLeaderboardRequest();
            request.MaxResultsCount = 5;
            request.StatisticName   = "Score";

            //Atualiza a váriavel para falso indicando que os dados ainda não foram carregados.
            FacebookAndPlayFabInfo.leaderboardLoaded = false;
            //Atualiza a váriavel para verdadeiro indicando que os dados estão sendo carregados.
            FacebookAndPlayFabInfo.leaderboardIsLoading = true;

            //As variáveis acima podem ser usadas em outros scripts que precisem esperar até os dados serem carregados ou
            //identificar quando começou a carregar para realizar alguma ação dentro do seu jogo.

            //Utiliza o SDK do PlayFab para coletar os dados. Informando a chamada e a função de callback de sucesso e erro.
            PlayFabClientAPI.GetLeaderboard(request, GetLeaderboardSucessCallback, null);
        }
        else
        {
            Debug.Log("Não é possível carregar os Dados do Leadeboard sem está logado.");
        }
    }
		public void refreshLeaderboard() {
			PlayFab.ClientModels.GetLeaderboardRequest request = new PlayFab.ClientModels.GetLeaderboardRequest ();
			request.MaxResultsCount = 50;
			request.StatisticName = "Score";
			if (PlayFabData.AuthKey != null)
				PlayFabClientAPI.GetLeaderboard (request, ConstructLeaderboard, OnPlayFabError);
		}
예제 #5
0
 public void InitLeaderboard(string authKey = null)
 {
     PlayFab.ClientModels.GetLeaderboardRequest lbRequest = new PlayFab.ClientModels.GetLeaderboardRequest();
     lbRequest.MaxResultsCount = 10;
     lbRequest.StatisticName   = "WonRaces";
     PlayFabClientAPI.GetLeaderboard(lbRequest, LoadLeaderboard, OnPlayFabError);
 }
예제 #6
0
        public void refreshLeaderboard(string authKey = null)
        {
            PlayFab.ClientModels.GetLeaderboardRequest request = new PlayFab.ClientModels.GetLeaderboardRequest();
            request.MaxResultsCount = 50;
            request.StatisticName   = "Score";

            PlayFabClientAPI.GetLeaderboard(request, ConstructLeaderboard, OnPlayFabError);
        }
예제 #7
0
 public void ClientLeaderBoard(UUnitTestContext testContext)
 {
     var clientRequest = new GetLeaderboardRequest();
     clientRequest.MaxResultsCount = 3;
     clientRequest.StatisticName = TEST_STAT_NAME;
     PlayFabClientAPI.GetLeaderboard(clientRequest, PlayFabUUnitUtils.ApiCallbackWrapper<GetLeaderboardResult>(testContext, GetClientLbCallback), SharedErrorCallback, testContext);
 }
예제 #8
0
		/// <summary>
		/// Retrieves a list of ranked users for the given statistic, starting from the indicated point in the leaderboard
		/// </summary>
		public static void GetLeaderboard(GetLeaderboardRequest request, GetLeaderboardCallback resultCallback, ErrorCallback errorCallback)
		{
			if (AuthKey == null) throw new Exception ("Must be logged in to call this method");

			string serializedJSON = JsonConvert.SerializeObject(request, Util.JsonFormatting, Util.JsonSettings);
			Action<string,string> callback = delegate(string responseStr, string errorStr)
			{
				GetLeaderboardResult result = null;
				PlayFabError error = null;
				ResultContainer<GetLeaderboardResult>.HandleResults(responseStr, errorStr, out result, out error);
				if(error != null && errorCallback != null)
				{
					errorCallback(error);
				}
				if(result != null)
				{
					
					if(resultCallback != null)
					{
						resultCallback(result);
					}
				}
			};
			PlayFabHTTP.Post(PlayFabSettings.GetURL()+"/Client/GetLeaderboard", serializedJSON, "X-Authorization", AuthKey, callback);
		}
예제 #9
0
        public void LeaderBoard()
        {
            var clientRequest = new ClientModels.GetLeaderboardRequest();
            clientRequest.MaxResultsCount = 3;
            clientRequest.StatisticName = TEST_STAT_NAME;
            var clientTask = PlayFabClientAPI.GetLeaderboardAsync(clientRequest);
            clientTask.Wait();
            UUnitAssert.Null(clientTask.Result.Error, "Failed to get client leaderboard");
            UUnitAssert.NotNull(clientTask.Result.Result, "Failed to get client leaderboard");
            UUnitAssert.NotNull(clientTask.Result.Result.Leaderboard, "Failed to get client leaderboard");
            UUnitAssert.True(clientTask.Result.Result.Leaderboard.Count > 0, "Leaderboard does not contain enough entries.");

            var serverRequest = new ServerModels.GetLeaderboardRequest();
            serverRequest.MaxResultsCount = 3;
            serverRequest.StatisticName = TEST_STAT_NAME;
            var serverTask = PlayFabServerAPI.GetLeaderboardAsync(serverRequest);
            clientTask.Wait();
            UUnitAssert.Null(serverTask.Result.Error, "Failed to get server leaderboard");
            UUnitAssert.NotNull(serverTask.Result.Result, "Failed to get server leaderboard");
            UUnitAssert.NotNull(serverTask.Result.Result.Leaderboard, "Failed to get server leaderboard");
            UUnitAssert.True(serverTask.Result.Result.Leaderboard.Count > 0, "Leaderboard does not contain enough entries.");
        }
        /// <summary>
        /// Retrieves a list of ranked users for the given statistic, starting from the indicated point in the leaderboard
        /// </summary>
        public static void GetLeaderboard(GetLeaderboardRequest request, ProcessApiCallback<GetLeaderboardResult> resultCallback, ErrorCallback errorCallback, object customData = null)
        {
            if (_authKey == null) throw new Exception("Must be logged in to call this method");

            string serializedJson = SimpleJson.SerializeObject(request, Util.ApiSerializerStrategy);
            Action<CallRequestContainer> callback = delegate(CallRequestContainer requestContainer)
            {
                ResultContainer<GetLeaderboardResult>.HandleResults(requestContainer, resultCallback, errorCallback, null);
            };
            PlayFabHTTP.Post("/Client/GetLeaderboard", serializedJson, "X-Authorization", _authKey, callback, request, customData);
        }
예제 #11
0
        public void LeaderBoard()
        {
            var clientRequest = new GetLeaderboardRequest();
            clientRequest.MaxResultsCount = 3;
            clientRequest.StatisticName = TEST_STAT_NAME;
            PlayFabClientAPI.GetLeaderboard(clientRequest, GetClientLbCallback, SharedErrorCallback);
            WaitForApiCalls();

            UUnitAssert.Equals("Get Client Leaderboard Successful", lastReceivedMessage);
            // Testing anything more would be testing actual functionality of the Leaderboard, which is outside the scope of this test.
        }
예제 #12
0
		/// <summary>
		/// Retrieves a list of ranked users for the given statistic, starting from the indicated point in the leaderboard
		/// </summary>
        public static async Task<PlayFabResult<GetLeaderboardResult>> GetLeaderboardAsync(GetLeaderboardRequest request)
        {
            if (AuthKey == null) throw new Exception ("Must be logged in to call this method");

            object httpResult = await PlayFabHTTP.DoPost(PlayFabSettings.GetURL() + "/Client/GetLeaderboard", request, "X-Authorization", AuthKey);
            if(httpResult is PlayFabError)
            {
                PlayFabError error = (PlayFabError)httpResult;
                if (PlayFabSettings.GlobalErrorHandler != null)
                    PlayFabSettings.GlobalErrorHandler(error);
                return new PlayFabResult<GetLeaderboardResult>
                {
                    Error = error,
                };
            }
            string resultRawJson = (string)httpResult;

            var serializer = JsonSerializer.Create(PlayFabSettings.JsonSettings);
            var resultData = serializer.Deserialize<PlayFabJsonSuccess<GetLeaderboardResult>>(new JsonTextReader(new StringReader(resultRawJson)));
			
			GetLeaderboardResult result = resultData.data;
			
			
            return new PlayFabResult<GetLeaderboardResult>
                {
                    Result = result
                };
        }
    /// <summary>
    /// Method used to get a defined number of users starting from a defined position, based on a defined stat.
    /// </summary>
    /// /// <param name="property">Property to define the leaderboard.</param>
    /// <param name="maxResults">Maximum number of players to return.</param>
    /// /// <param name="startPosition">Position to start getting the leaderboard.</param>
    /// <param name="OnLeaberboardLoaded">Callback when the leaderboard is loaded.</param>
    public void GetLeaderboardFromPosition(string property, int maxResults, int startPosition, ProjectDelegates.PlayFabLeaderboardCallback OnLeaberboardLoaded)
    {
        OnLeaderboardLoadedCallback = OnLeaberboardLoaded;

        GetLeaderboardRequest request = new GetLeaderboardRequest();
        request.StatisticName = property;
        request.MaxResultsCount = maxResults;
        request.StartPosition = startPosition;

        PlayFabClientAPI.GetLeaderboard(request, OnGetLeaderboardFromPositionResult, OnGetLeaderboardError);
    }
	public void GetLeaderBoardData(int startPos, int count){
		GetLeaderboardRequest request = new GetLeaderboardRequest () {
			StatisticName = Setting_Manager.HIGH_SCORE_KEY,
			StartPosition = 0
		};
		PlayFabClientAPI.GetLeaderboard (request, (result) => {
			Debug.Log ("Got leaderboard data:");
			if ((result.Leaderboard == null) || (result.Leaderboard.Count == 0)) {
				Debug.Log ("No leaderboard data available");
			} else {
				for (int i=startPos;i<startPos + count;i++){
					if (i < result.Leaderboard.Count){
						Debug.Log(result.Leaderboard[i].DisplayName);
						Setting_Manager.sInstance.Leaderboard[i] = new LeaderboardUser(
							result.Leaderboard[i].DisplayName,
							result.Leaderboard[i].StatValue,
							result.Leaderboard[i].Position
						);
					}
					else {
						Setting_Manager.sInstance.Leaderboard[i].Score = -1;
					}
				}
			}
		}, (error) => {
			Debug.Log ("Got error retrieving user data:");
			Debug.Log (error.ErrorMessage);
		});
	}