예제 #1
0
    void CheckAndGrantSkin(string SkinName)
    {
        GetUserInventoryRequest items = new GetUserInventoryRequest {
        };

        PlayFabClientAPI.GetUserInventory(items, itemInfo =>
        {
            foreach (var eachStat in itemInfo.Inventory)
            {
                bool grant = true;
                if (eachStat.ItemId == SkinName)
                {
                    grant = false;
                }
                if (grant)
                {
                    var purchaseRequest             = new PurchaseItemRequest();
                    purchaseRequest.CatalogVersion  = "Skins";
                    purchaseRequest.ItemId          = SkinName + "Bundle";
                    purchaseRequest.VirtualCurrency = "ST";
                    purchaseRequest.Price           = 0;
                    PlayFabClientAPI.PurchaseItem(purchaseRequest, result => { Debug.Log(SkinName + " added"); }, error => { Debug.Log(SkinName + " was not added added"); });

                    for (int j = 0; j < skinSelection.SkinDetails.Length; j++)
                    {
                        if (skinSelection.SkinDetails[j].Name == SkinName)
                        {
                            skinSelection.Locked[j] = false;
                        }
                    }
                }
            }
        }, itemError => { itemError.GenerateErrorReport(); });
    }
예제 #2
0
 public static void PurchaseUserItem(string itemId, uint qty)
 {
     if (qty == 1)
     {
         string vcKey;
         int    cost;
         if (PfSharedModelEx.globalClientUser.GetClientItemPrice(null, itemId, out vcKey, out cost))
         {
             var purchaseRequest = new PurchaseItemRequest();
             purchaseRequest.ItemId          = itemId;
             purchaseRequest.VirtualCurrency = vcKey;
             purchaseRequest.Price           = cost;
             PlayFabClientAPI.PurchaseItem(purchaseRequest, PurchaseUserItemCallback, PfSharedControllerEx.FailCallback("PurchaseItem"));
         }
         else
         {
             Debug.LogWarning("You cannot afford this item");
         }
     }
     else
     {
         var multiRequest = new StartPurchaseRequest();
         multiRequest.Items = new List <ItemPurchaseRequest>();
         multiRequest.Items.Add(new ItemPurchaseRequest {
             ItemId = itemId, Quantity = qty
         });
         PlayFabClientAPI.StartPurchase(multiRequest, StartPurchaseCallback, PfSharedControllerEx.FailCallback("StartPurchase"));
     }
 }
예제 #3
0
    //注册成功后
    void OnRegisterResult(RegisterPlayFabUserResult result)
    {
        PlayerPrefs.SetString("Account", username.text);
        PlayFabUserData.playFabId   = result.PlayFabId;
        PlayFabUserData.username    = username.text;
        PlayFabUserData.displayName = username.text;

        //连接Photon服务器
        PhotonNetwork.ConnectUsingSettings("1.0");
        PhotonNetwork.player.name = result.Username;

        /*  玩家创建账号成功时,为玩家添加默认枪支:AK47
         *  先使用PurchaseItemRequest声明一个道具购买请求,再使用PlayFabClientAPI.PurchaseItem发起道具购买请求
         *  道具购买成功,禁用游戏登录面板,启用游戏主面板(OnPurchaseItemRequest函数)
         *  道具购买失败,在控制台输出失败原因(OnPlayFabError函数)
         */
        PurchaseItemRequest request = new PurchaseItemRequest()
        {
            CatalogVersion  = PlayFabUserData.catalogVersion,
            VirtualCurrency = "FR",
            Price           = 0,
            ItemId          = "AK47"
        };

        PlayFabClientAPI.PurchaseItem(request, OnPurchaseItemResult, OnPlayFabError);

        loginingWindow.SetActive(false);                    //禁用账号登录中提示窗口
        loginPanel.SetActive(false);                        //禁用游戏登录面板
        mainPanel.SetActive(true);                          //启用游戏主面板
    }
예제 #4
0
    private void PurchaseInitialHero(string heroId, int cash)
    {
        makingPlayFabRequest = true;
        PurchaseItemRequest purchaseItemRequest = new PurchaseItemRequest()
        {
            VirtualCurrency = "GC",
            Price           = cash,
            ItemId          = heroId
        };

        PlayFabClientAPI.PurchaseItem(purchaseItemRequest, (result) => {
            if (result.Items.Count > 0)
            {
                Debug.Log("It looks like player just purchased (" + result.Items[0].ItemId + ") from the catalog");
            }
            else
            {
                Debug.Log("Something went wrong and no items were purchased");
            }
            makingPlayFabRequest = false;
        }, (error) => {
            Debug.Log("Error purchasing " + heroId + ": " + error.ErrorMessage);
            makingPlayFabRequest = false;
        });
    }
예제 #5
0
    /// <summary>
    /// Starts the buy store item.
    /// </summary>
    /// <param name="item">Item.</param>
    /// <param name="storeID">Store I.</param>
    public static void StartBuyStoreItem(CatalogItem item, string storeID)
    {
        if (item.VirtualCurrencyPrices.ContainsKey("RM"))
        {
            PF_Bridge.IAB_CurrencyCode = "US";
            PF_Bridge.IAB_Price        = (int)item.VirtualCurrencyPrices["RM"];

            MakeRmPurchase(item.ItemId);
            return;
        }

        var vcKvp = item.VirtualCurrencyPrices.First();

        // normal purchase item flow
        var request = new PurchaseItemRequest();

        request.ItemId          = item.ItemId;
        request.VirtualCurrency = vcKvp.Key;
        request.Price           = (int)vcKvp.Value;
        request.StoreId         = storeID;
        if (PF_PlayerData.activeCharacter != null)
        {
            request.CharacterId = PF_PlayerData.activeCharacter.characterDetails.CharacterId;
        }

        DialogCanvasController.RequestLoadingPrompt(PlayFabAPIMethods.MakePurchase);
        PlayFabClientAPI.PurchaseItem(request, OnBuyStoreItemSuccess, PF_Bridge.PlayFabErrorCallback);
    }
    public void PurchaseItem(string username, string password, string itemId, string price)
    {
        var loginWithPlayFabRequest = new LoginWithPlayFabRequest {
            Username = username, Password = password
        };

        PlayFabClientAPI.LoginWithPlayFab(loginWithPlayFabRequest,
                                          delegate(LoginResult loginResult)
        {
            var purchaseItemRequest = new PurchaseItemRequest()
            {
                ItemId          = itemId,
                Price           = Convert.ToInt32(price),
                VirtualCurrency = "MC"
            };

            PlayFabClientAPI.PurchaseItem(purchaseItemRequest,
                                          delegate(PurchaseItemResult purchaseItemResult)
            {
                Debug.Log("Item Purchased: ");
                purchaseItemResult.Items.ForEach(item =>
                {
                    Debug.Log("ItemId: " + item.ItemId + ", Price: " + item.UnitPrice + ", VirtualCurrency: " + item.UnitCurrency);
                });
            },
                                          SharedError.OnSharedError);
        },
                                          SharedError.OnSharedError);
    }
예제 #7
0
    // Initiate Purchase
    internal void PurchaseItem(ICatalogItem item)
    {
        if (item.IsNativeCatalog)
        {
            // Use Unity IAP for real money purchases
            controller.InitiatePurchase(((NativeCatalogItem)item).item);
        }
        else
        {
            // PlayFab purcahse using virtual currency
            var catalogItem = ((PlayFabCatalogItem)item).item;

            var request = new PurchaseItemRequest
            {
                ItemId          = catalogItem.ItemId,
                Price           = (int)catalogItem.VirtualCurrencyPrices[cVC],
                StoreId         = cStoreId,
                VirtualCurrency = cVC
            };

            PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnError);

            spinnerScreen.SetActive(true);
        }
    }
예제 #8
0
    public void PreparePurchaseRequest(int price, string itemID)
    {
        PurchaseItemRequest request = new PurchaseItemRequest();
        request.CatalogVersion  = "RetroRun";
        request.VirtualCurrency = "GC";
        request.Price = price;
        request.ItemId = itemID;        
        PlayFabClientAPI.PurchaseItem(request, InventoryScript.Instance.OnPurchase, OnPlayFabError);

        if (price <= PlayFabGameBridge.Instance.userBalance)
        {
            updateMarketItems(request.ItemId);
			OnPurchaseProcess();
            if(itemID.StartsWith("S")){
                buySkinButton.interactable  = false;
                wearSkinButton.interactable = true;
            }
                
            else
            {
                buyMissileButton.interactable = false;
                wearMissileButton.interactable = true;
            }
            
        }
    }
예제 #9
0
    void GrantItems()
    {
        string defaultSkinID       = PlayFabGameBridge.Instance.defaultSkin.skinID;
        string defaultMissileID    = PlayFabGameBridge.Instance.defaultMissile.missileID;
        int    defaultSkinPrice    = (int)PlayFabGameBridge.Instance.defaultSkin.price;
        int    defaultMissilePrice = (int)PlayFabGameBridge.Instance.defaultMissile.price;

        PurchaseItemRequest skinRequest = new PurchaseItemRequest();

        skinRequest.CatalogVersion  = "RetroRun";
        skinRequest.VirtualCurrency = "GC";
        skinRequest.Price           = defaultSkinPrice;
        skinRequest.ItemId          = defaultSkinID;

        PlayFabClientAPI.PurchaseItem(skinRequest, InventoryScript.Instance.OnPurchase, OnPlayFabError);

        PurchaseItemRequest missileRequest = new PurchaseItemRequest();

        missileRequest.CatalogVersion  = "RetroRun";
        missileRequest.VirtualCurrency = "GC";
        missileRequest.Price           = defaultMissilePrice;
        missileRequest.ItemId          = defaultMissileID;

        PlayFabClientAPI.PurchaseItem(missileRequest, InventoryScript.Instance.OnPurchase, OnPlayFabError);
    }
예제 #10
0
 public void PurchaseItem(PurchaseItemRequest request, Action <SimpleItemInfo> callback)
 {
     Instance.StartCoroutine(ServiceGetString(callObjectCreator.CreatePurchaseItemCall(request), x =>
     {
         callback(responseCreator.CreateSimpleItemInfoResponse(x));
     }));
 }
예제 #11
0
    public void PreparePurchaseRequest(int price, string itemID)
    {
        PurchaseItemRequest request = new PurchaseItemRequest();

        request.CatalogVersion  = "RetroRun";
        request.VirtualCurrency = "GC";
        request.Price           = price;
        request.ItemId          = itemID;
        PlayFabClientAPI.PurchaseItem(request, InventoryScript.Instance.OnPurchase, OnPlayFabError);

        if (price <= PlayFabGameBridge.Instance.userBalance)
        {
            updateMarketItems(request.ItemId);
            OnPurchaseProcess();
            if (itemID.StartsWith("S"))
            {
                buySkinButton.interactable  = false;
                wearSkinButton.interactable = true;
            }

            else
            {
                buyMissileButton.interactable  = false;
                wearMissileButton.interactable = true;
            }
        }
    }
예제 #12
0
        /// <summary>
        /// Purchase overload for virtual products, as they differ in their workflow on PlayFab.
        /// Also the virtual currency funds are checked locally before forwarding the request to PlayFab.
        /// </summary>
        public void Purchase(IAPObject obj)
        {
            int curIndex = 0;

            for (int i = 0; i < obj.virtualPrice.Count; i++)
            {
                if (obj.virtualPrice[i].amount != 0)
                {
                    curIndex = i;
                    break;
                }
            }

            //local check before doing the request
            if (DBManager.GetFunds(obj.virtualPrice[curIndex].name) < obj.virtualPrice[curIndex].amount)
            {
                IAPManager.OnPurchaseFailed("Insufficient Funds.");
                return;
            }

            PurchaseItemRequest request = new PurchaseItemRequest()
            {
                ItemId          = obj.id,
                VirtualCurrency = obj.virtualPrice[curIndex].name.Substring(0, 2).ToUpper(),
                Price           = obj.virtualPrice[curIndex].amount
            };

            PlayFabClientAPI.PurchaseItem(request, OnPurchaseSucceeded, OnVirtualPurchaseFailed);
        }
예제 #13
0
    void GrantSkin(string skinName)
    {
        RewardLabel.text = skinName + " skin";
        GetUserInventoryRequest items = new GetUserInventoryRequest {
        };

        PlayFabClientAPI.GetUserInventory(items, itemInfo =>
        {
            bool grant = true;
            foreach (var eachStat in itemInfo.Inventory)
            {
                if (skinName == eachStat.ItemId)
                {
                    grant = false;
                }
            }

            if (grant)
            {
                var purchaseRequest             = new PurchaseItemRequest();
                purchaseRequest.CatalogVersion  = "Skins";
                purchaseRequest.ItemId          = skinName + "Bundle";
                purchaseRequest.VirtualCurrency = "ST";
                purchaseRequest.Price           = 0;
                PlayFabClientAPI.PurchaseItem(purchaseRequest, result => { Debug.Log(skinName + " added"); }, error => { Debug.Log(skinName + " was not added added"); });
            }
        }, itemError => { itemError.GenerateErrorReport(); });
    }
예제 #14
0
    public void PurchaseWeaponPrimary()
    {
        PurchaseItemRequest request = new PurchaseItemRequest();

        request.CatalogVersion  = "Weapons";
        request.VirtualCurrency = "GO";

        if (PrimaryWeaponImages[0].activeSelf)
        {
            request.ItemId = "AKM";
            request.Price  = 2000;

            PlayFabClientAPI.PurchaseItem(request, result =>
            {
                Alerts a = new Alerts();
                StartCoroutine(a.CreateNewAlert("You have purchased the AKM!"));
                UpdateCurrentGold();
                PlayerOwnsAKM = true;
            }, error =>
            {
                Alerts a = new Alerts();
                StartCoroutine(a.CreateNewAlert(error.ErrorMessage));
            });
        }
        else if (PrimaryWeaponImages[1].activeSelf)
        {
            request.ItemId = "M4";
            request.Price  = 2000;

            PlayFabClientAPI.PurchaseItem(request, result =>
            {
                Alerts a = new Alerts();
                StartCoroutine(a.CreateNewAlert("You have purchased the M4!"));
                UpdateCurrentGold();
                PlayerOwnsM4 = true;
            }, error =>
            {
                Alerts a = new Alerts();
                StartCoroutine(a.CreateNewAlert(error.ErrorMessage));
            });
        }
        else if (PrimaryWeaponImages[2].activeSelf)
        {
            request.ItemId = "L96";
            request.Price  = 4500;

            PlayFabClientAPI.PurchaseItem(request, result =>
            {
                Alerts a = new Alerts();
                StartCoroutine(a.CreateNewAlert("You have purchased the L96 Sniper!"));
                UpdateCurrentGold();
                PlayerOwnsL96 = true;
            }, error =>
            {
                Alerts a = new Alerts();
                StartCoroutine(a.CreateNewAlert(error.ErrorMessage));
            });
        }
    }
예제 #15
0
    public void PurchaseItemPlayFab(int itemID, string currency, int price)
    {
        var request = new PurchaseItemRequest {
            ItemId = itemID.ToString(), VirtualCurrency = currency, Price = price
        };

        PlayFabClientAPI.PurchaseItem(request, OnPurchaseItemSuccess, OnPurchaseItemFailure);
    }
예제 #16
0
    private void Kumo()
    {
        PurchaseItemRequest request = new PurchaseItemRequest();

        request.ItemId          = "Kumo";
        request.VirtualCurrency = "DM";
        request.Price           = 0;
        PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnPlayfabError);
    }
예제 #17
0
        private UnityTask <PurchaseItemResult> Do(PurchaseItemRequest request)
        {
            if (string.IsNullOrEmpty(request.CatalogVersion))
            {
                request.CatalogVersion = PF.CatalogVersion;
            }

            return(PF.Do <PurchaseItemRequest, PurchaseItemResult>(request, PlayFabClientAPI.PurchaseItem));
        }
예제 #18
0
        public void TryToSpin()
        {
            Debug.Log("Attempting to spin...");
            var request = new PurchaseItemRequest()
            {
                ItemId = "PrizeWheel1", VirtualCurrency = "ST", Price = 1
            };

            PlayFabClientAPI.PurchaseItem(request, TryToSpinCallback, OnApiCallError);
        }
예제 #19
0
    public void GrantSkin()
    {
        var purchaseRequest = new PurchaseItemRequest();

        purchaseRequest.CatalogVersion  = "Skins";
        purchaseRequest.ItemId          = SkinDetails[Chosen].Name + "Bundle";
        purchaseRequest.VirtualCurrency = "ST";
        purchaseRequest.Price           = 0;
        PlayFabClientAPI.PurchaseItem(purchaseRequest, result => { Debug.Log(SkinDetails[Chosen].Name + " added"); }, error => { Debug.Log(SkinDetails[Chosen].Name + " was not added added"); });
    }
예제 #20
0
    public void PurchaseItem()
    {
        Debug.Log(SelectCarName);
        var request = new PurchaseItemRequest()
        {
            CatalogVersion = "Main", ItemId = SelectCarName.ToString(), VirtualCurrency = "GD", Price = 20
        };

        PlayFabClientAPI.PurchaseItem(request, (result) => print("아이템 구입 성공"), (error) => print("아이템 구입 실패"));
    }
    public void TryBuyLives()
    {
        Debug.Log("Purchaseing Lives...");
        PurchaseItemRequest request = new PurchaseItemRequest()
        {
            ItemId = extraLivesBundleId, VirtualCurrency = gmCode, Price = livesBundlePrice
        };

        PlayFabClientAPI.PurchaseItem(request, TryBuyLivesCallback, OnApiCallError);
    }
예제 #22
0
    /// <summary>
    /// 상점에서 아이텝 구입
    /// </summary>
    /// <param name="storeName"></param> <=스토어 이름
    /// <param name="itemid"></param> <=아이템이 고유의 아이디 playfab 홈페이지에서 앙템 설정해줄때 생성됨 받아올수 아이템 정보를 받아올때 가져 올수 있음
    /// <param name="virtualCurrency"></param><=게임내 화폐의 종류 playfab 홈페이지에서 화폐 설정가능하다
    /// <param name="price"></param><= 100원? 200원? 얼마나 게임내 화페를 사용할지
    public void BuyItem(string storeName, string itemid, string virtualCurrency, int price)
    {
        buylastItem = itemid;
        buyItemPice = price;
        var request = new PurchaseItemRequest()
        {
            CatalogVersion = storeName, ItemId = itemid, VirtualCurrency = virtualCurrency, Price = price
        };

        PlayFabClientAPI.PurchaseItem(request, BuyOk, BuyFail);
    }
예제 #23
0
    public void BuyItem(string storeID, string itemID, string currency, int price, System.Action <PurchaseItemResult> successCallback, System.Action <PlayFabError> failureCallback)
    {
        if (failureCallback == null)
        {
            failureCallback = Callback_Generic_Error;
        }
        var request = new PurchaseItemRequest {
            ItemId = itemID, VirtualCurrency = currency, Price = price, StoreId = storeID
        };

        PlayFabClientAPI.PurchaseItem(request, successCallback, failureCallback);
    }
예제 #24
0
    /// <summary>
    /// Tries to buy item with virtual currency.
    /// </summary>
    /// <param name="item">Item to buy.</param>
    /// <param name="OnBuySuccess">Callback in case scceeds.</param>
    public void BuyItemWithVirtualCurrency(CatalogItem item, ProjectDelegates.PlayFabItemBuyCallback OnBuySuccess)
    {
        this.OnBuySuccessCallback = OnBuySuccess;

        PurchaseItemRequest request = new PurchaseItemRequest();

        request.ItemId          = item.ItemId;
        request.Price           = (int)item.VirtualCurrencyPrices["1"];
        request.VirtualCurrency = "1";

        PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnPurchaseError);
    }
예제 #25
0
 private void ConfirmBuy()
 {
     if ((ItemToBuy != null) && (MainMenuComponent != null))
     {
         Debug.Log("Request buy :" + ItemToBuy.ItemID);
         PurchaseItemRequest request = new PurchaseItemRequest();
         request.ItemId          = ItemToBuy.ItemID;
         request.Price           = (int)ItemToBuy.Price;
         request.VirtualCurrency = ItemToBuy.Currency;
         PlayFabClientAPI.PurchaseItem(request, PurchaseItemResult, PurchaseItemFailed);
         MainMenuComponent.ShowWaitIndicator();
     }
 }
예제 #26
0
    public void PurchaseRequest(string catalogVersion, string item, int price, string storeID, string virtualCurrency)
    {
        var purchaseItemRequest = new PurchaseItemRequest
        {
            CatalogVersion  = catalogVersion,
            ItemId          = item,
            Price           = price,
            StoreId         = storeID,
            VirtualCurrency = virtualCurrency
        };

        PlayFabClientAPI.PurchaseItem(purchaseItemRequest, PurchaseSuccess, PurchaseError);
    }
        /// <summary>
        /// get the machine items, and determine which country you are working in to pass to the <see cref="Machine"/> to handle the logic.
        /// </summary>
        /// <param name="request"><see cref="PurchaseItemRequest"/></param>
        /// <returns><see cref="PurchaseItemResponse"/></returns>
        public PurchaseItemResponse PurchaseItem(PurchaseItemRequest request)
        {
            List <Change> denominations = null;
            List <int>    coinsDue      = null;

            try {
                VendingMachineItems items   = GetVendingMachineItems();
                Country             country = countries.Find(x => x.Alpha2Code.ToLower() == request.Alpha2Code.ToLower());
                if (country == null)
                {
                    throw new ApplicationException($"Unable to find a config set for the country with the Alpha2Code: {request.Alpha2Code}");
                }
                Machine machine   = new Machine(items, country.Currency);
                decimal changeDue = machine.ProcessPurchase(request.Position, request.TenderAmount);
                if (changeDue != 0.0M)
                {
                    denominations = machine.GiveCoins(changeDue);
                    var ordered = denominations.OrderByDescending(x => x.Coin).ToList();
                    coinsDue = new List <int>();
                    foreach (Change change in ordered)
                    {
                        int count = 0;
                        while (count < change.Total)
                        {
                            count++;
                            coinsDue.Add(change.Coin);
                        }
                    }
                }
                return(new PurchaseItemResponse {
                    IsSuccessful = true,
                    IsClientFriendlyMessage = true,
                    Message = $"Successfully purchased: {request.Position.ToString()}.{Environment.NewLine}Change due: {country.Currency.Symbol}{changeDue.ToString()}",
                    TotalChangeDue = changeDue,
                    Denominations = denominations,
                    Coins = coinsDue
                });
            } catch (ApplicationException exception) {
                return(new PurchaseItemResponse {
                    IsSuccessful = false,
                    IsClientFriendlyMessage = true,
                    Message = exception.Message
                });
            } catch (Exception exception) {
                return(new PurchaseItemResponse {
                    IsSuccessful = false,
                    IsClientFriendlyMessage = false,
                    Message = exception.ToString()
                });
            }
        }
예제 #28
0
    void OnGUI()
    {
        // If the catalog has already been constructed, check if menu should be displayed.
        if (renderCatalog)
        {
            Rect marketIconRect = new Rect(1, 1, 1, 1);
            // Pause the game and show menu.
            if (GUI.Button(marketIconRect, marketIcon, GUIStyle.none))
            {
                showMenu       = !showMenu;
                Time.timeScale = !showMenu ? 1.0f : 0.0f;
            }
            if (showMenu)
            {
                // Area for market window.
                Rect winRect = new Rect((Screen.width - marketMenu.width) * 0.5f, (Screen.height - marketMenu.height) * 0.5f, marketMenu.width, marketMenu.height);
                GUI.DrawTexture(winRect, marketMenu);

                Rect closeRect = new Rect(winRect.x + winRect.width - 10, winRect.y, 10, 10);
                if (GUI.Button(closeRect, closeIcon, GUIStyle.none))
                {
                    showMenu       = false;
                    Time.timeScale = !showMenu ? 1.0f : 0.0f;
                }

                int btnWidth  = 50;
                int btnHeight = 50;

                // Create buttons for each item in the list.
                for (int x = 0; x < items.Count; x++)
                {
                    Texture2D texture     = itemIcons[items[x].ItemId];
                    Rect      btnIconRect = new Rect(winRect.x + 50, winRect.y + 50, 50, 50);
                    foreach (KeyValuePair <string, uint> price in items[x].VirtualCurrencyPrices)
                    {
                        // Create a button that creates a purchase request if pressed.
                        if (GUI.Button(btnIconRect, ""))
                        {
                            PurchaseItemRequest request = new PurchaseItemRequest();
                            request.CatalogVersion  = items[x].CatalogVersion;
                            request.VirtualCurrency = price.Key;
                            request.Price           = Convert.ToInt32(price.Value);
                            request.ItemId          = items[x].ItemId;
                            PlayFabClientAPI.PurchaseItem(request, ItemsController.OnPurchase, OnPlayFabError);
                        }
                    }
                }
            }
        }
    }
예제 #29
0
    public override void Execute()
    {
        if (_args is BuyItemCommandArgs buyItemArgs)
        {
            var request = new PurchaseItemRequest
            {
                ItemId          = buyItemArgs.ItemID,
                Price           = buyItemArgs.Price,
                VirtualCurrency = buyItemArgs.CurrencyType
            };

            PlayFabClientAPI.PurchaseItem(request, OnItemPurchased, OnHttpError);
        }
    }
예제 #30
0
    public void MakePurchase(string name, int price)
    {
        PurchaseItemRequest request = new PurchaseItemRequest();

        request.CatalogVersion  = "Weapons";
        request.ItemId          = name;
        request.VirtualCurrency = "GD";
        request.Price           = price;

        PlayFabClientAPI.PurchaseItem(request, result => {
        }, error => {
            Debug.Log(error.ErrorMessage);
        });
        UpdateInventory();
    }
예제 #31
0
    public void PurhaseItem(CatalogItem item, string vc, Action <PurchaseItemResult> onPurchase, Action <PlayFabError> onError)
    {
        uint price;

        item.VirtualCurrencyPrices.TryGetValue(vc, out price);
        var request = new PurchaseItemRequest()
        {
            CatalogVersion  = "Main Catalog",
            ItemId          = item.ItemId,
            Price           = (int)price,
            VirtualCurrency = vc
        };

        PlayFabClientAPI.PurchaseItem(request, onPurchase, onError);
    }
    /// <summary>
    /// Tries to buy item with virtual currency.
    /// </summary>
    /// <param name="item">Item to buy.</param>
    /// <param name="OnBuySuccess">Callback in case scceeds.</param>
    public void BuyItemWithVirtualCurrency(CatalogItem item,ProjectDelegates.PlayFabItemBuyCallback OnBuySuccess)
    {
        this.OnBuySuccessCallback = OnBuySuccess;

        PurchaseItemRequest request = new PurchaseItemRequest();
        request.ItemId = item.ItemId;
        request.Price = (int)item.VirtualCurrencyPrices["1"];
        request.VirtualCurrency = "1";

        PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnPurchaseError);
    }
    /// <summary>
    /// Starts the process of buying something from the store.
    /// </summary>
    /// <param name="item">Item to be bought.</param>
    public void BuyItemWithVirtualCurrency(CatalogItem item)
    {
        if (OnStatsUpgradesCallback == null)
        {
            Debug.LogWarning("Set all the necessary callbacks using SetUpgradesCallbacks() before starting a purchase");
            return;
        }

        PurchaseItemRequest request = new PurchaseItemRequest();
        request.ItemId = item.ItemId;
        request.Price = (int)item.VirtualCurrencyPrices[GameConstants.inGameCurrencyID];
        request.VirtualCurrency = GameConstants.inGameCurrencyID;

        PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnPurchaseError);
    }
예제 #34
0
	void TryToSpin()
	{
		Debug.Log("Attempting to spin...");
		PurchaseItemRequest request = new PurchaseItemRequest() { ItemId = "PrizeWheel1", VirtualCurrency = "ST", Price = 1 };
		PlayFabClientAPI.PurchaseItem(request, TryToSpinCallback, OnApiCallError);
	}
	public void TryBuyLives()
	{
		Debug.Log("Purchaseing Lives...");
		PurchaseItemRequest request = new PurchaseItemRequest() { ItemId = extraLivesBundleId, VirtualCurrency = gmCode, Price = livesBundlePrice };
		PlayFabClientAPI.PurchaseItem(request, TryBuyLivesCallback, OnApiCallError);
	}