Beispiel #1
0
        protected override void grantBundleToPlayer(string playerID, Bundle bundle, string catalogID,
                                                    Action <string> onSuccessHandler, Action <string> onFailureHandler)
        {
            // If there are no items to grant, grant currencies
            if (bundle.ItemModels == null || bundle.ItemModels.Length == 0)
            {
                grantCurrencies(playerID, bundle.CurrencySymbols, bundle.CurrencyValues, onSuccessHandler, onFailureHandler);
                return;
            }

            List <string> itemIDs = new List <string>();

            for (int i = 0; i < bundle.ItemModels.Length; i++)
            {
                itemIDs.Add(bundle.ItemModels[i].ID.ToString());
            }

            GrantItemsToUserRequest request = new GrantItemsToUserRequest()
            {
                CatalogVersion = catalogID,
                PlayFabId      = playerID,
                ItemIds        = itemIDs
            };

            PlayFabServerAPI.GrantItemsToUserAsync(request).ContinueWith(t => {
                if (t.Result.Error != null)
                {
                    Log.Error("PlayFabInventoryService error granting items to playerID: " + playerID + " : " +
                              t.Result.Error.ErrorMessage);
                    onFailureHandler(playerID);
                }
                else
                {
                    grantCurrencies(playerID, bundle.CurrencySymbols, bundle.CurrencyValues, onSuccessHandler, onFailureHandler);
                }
            });
        }
    public void GrantRandomItemToUser(string adminUsername, string password, string usernameReceivingItem, string dropTableId)
    {
        GameController.catalog.Clear();
        var loginWithPlayFabRequest = new LoginWithPlayFabRequest {
            Username = adminUsername, Password = password
        };

        PlayFabClientAPI.LoginWithPlayFab(loginWithPlayFabRequest,
                                          delegate(LoginResult loginResult)
        {
            var evaluateRandomResultTableRequest = new EvaluateRandomResultTableRequest()
            {
                TableId = dropTableId
            };

            PlayFabServerAPI.EvaluateRandomResultTable(evaluateRandomResultTableRequest,
                                                       delegate(EvaluateRandomResultTableResult evaluateRandomResultTableResult)
            {
                var getAccountInfoRequest = new GetAccountInfoRequest()
                {
                    Username = usernameReceivingItem
                };

                PlayFabClientAPI.GetAccountInfo(getAccountInfoRequest,
                                                delegate(GetAccountInfoResult getAccountInfoResult)
                {
                    var grantItemsToUserRequest = new GrantItemsToUserRequest()
                    {
                        PlayFabId = getAccountInfoResult.AccountInfo.PlayFabId,
                        ItemIds   = new List <string> {
                            evaluateRandomResultTableResult.ResultItemId
                        }
                    };

                    PlayFabServerAPI.GrantItemsToUser(grantItemsToUserRequest,
                                                      delegate(GrantItemsToUserResult grantItemsToUser)
                    {
                        PlayFabClientAPI.GetCatalogItems(new PlayFab.ClientModels.GetCatalogItemsRequest(),
                                                         delegate(PlayFab.ClientModels.GetCatalogItemsResult getCatalogItemsResult)
                        {
                            getCatalogItemsResult.Catalog.ForEach(catalogItem =>
                            {
                                GameController.catalog.Add(catalogItem.ItemId, catalogItem);
                            });

                            Debug.Log("Items granted:");
                            grantItemsToUser.ItemGrantResults.ForEach(item =>
                            {
                                Debug.Log(item.ItemId);
                                AddPowerUp(item);
                            });
                        },
                                                         SharedError.OnSharedError);
                    },
                                                      SharedError.OnSharedError);
                },
                                                SharedError.OnSharedError);
            },
                                                       SharedError.OnSharedError);
        },
                                          SharedError.OnSharedError);
    }