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(); });
    }
    // 购买成功后重新获取玩家的仓库信息
    void OnPurchaseItem(PurchaseItemResult result)
    {
        confirmButton.GetComponentInChildren <Text>().text = "已拥有";
        GetUserInventoryRequest req = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(req, OnGetUserInventory, OnPlayfabError);
    }
Example #3
0
    public void UpdateInventory()
    {
        //if (PV.IsMine)
        //{
        GetUserInventoryRequest request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, result =>
        {
            List <ItemInstance> itemInstance = result.Inventory;
            foreach (GameObject gameObj in ItemList)
            {
                Destroy(gameObj);
            }

            foreach (ItemInstance item in itemInstance)
            {
                foreach (Weapon weaponItem in IL.weapons)
                {
                    if (weaponItem.Name == item.ItemId)
                    {
                        GameObject o = Instantiate(ButtonObj, invArea.transform.position, Quaternion.identity);
                        o.GetComponent <Image>().sprite = weaponItem.GetComponent <SpriteRenderer>().sprite;
                        o.transform.SetParent(invArea.transform);
                        ItemList.Add(o);
                        //o.GetComponent<Button>().onClick.AddListener(delegate { MakePurchase(w.Name, w.Price); });
                    }
                }
            }
        }, error =>
        {
        });

        //}
    }
Example #4
0
        private void GetInventory(LoginResult result = null)
        {
            LockUI();
            var request = new GetUserInventoryRequest();

            PlayFabClientAPI.GetUserInventory(request, GetInventoryCallback, OnApiCallError);
        }
    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(); });
    }
Example #6
0
    //商城面板激活时调用,获取商城道具信息,显示在商城面板中
    void OnEnable()
    {
        currentPanel.text = "商 城";
        shopLoadingWindow.SetActive(true);
        shopItemDetails.SetActive(false);
        foreach (GameObject go in shopItemsPanel)
        {
            go.SetActive(false);
        }

        //获取玩家仓库信息
        GetUserInventoryRequest request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, OnGetUserInventory, OnPlayFabError);

        backButton.onClick.RemoveAllListeners();
        backButton.onClick.AddListener(delegate {
            if (PhotonNetwork.inRoom)
            {
                roomPanel.SetActive(true);
            }
            else
            {
                lobbyPanel.SetActive(true);
            }
            shopPanel.SetActive(false);
        });
    }
    void GetInventory()
    {
        Debug.Log("Getting the player inventory...");
        GetUserInventoryRequest request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, OnGetInventoryCallback, OnApiCallError);
    }
Example #8
0
        public async Task <bool> getCurrencies()
        {
            var request        = new GetUserInventoryRequest();
            var currenciesTask = await PlayFabClientAPI.GetUserInventoryAsync(request);

            if (currenciesTask.Error != null)
            {
                logError(currenciesTask.Error.Error.ToString(), currenciesTask.Error.ErrorMessage);
                await Task.Delay(1500);

                return(false);
            }
            else if (currenciesTask.Result != null)
            {
                freeChestRecharge  = currenciesTask.Result.VirtualCurrencyRechargeTimes["BK"].SecondsToRecharge;
                normalChests       = int.Parse(currenciesTask.Result.VirtualCurrency["PK"].ToString());
                pranaGems          = int.Parse(currenciesTask.Result.VirtualCurrency["PG"].ToString());
                cosmicCoins        = int.Parse(currenciesTask.Result.VirtualCurrency["CC"].ToString());
                ascensionSpheres   = int.Parse(currenciesTask.Result.VirtualCurrency["AS"].ToString());
                heroChests         = int.Parse(currenciesTask.Result.VirtualCurrency["KU"].ToString()) / 10;
                freeChestAvailable = currenciesTask.Result.VirtualCurrency["BK"].ToString() == "1" ? true : false;
                return(true);
            }
            await Task.Delay(1500);

            return(false);
        }
Example #9
0
    public void RequestGetPlayerInventory()
    {
        request = new GetUserInventoryRequest();


        PlayFabClientAPI.GetUserInventory(request, InventoryResult, OnError);
    }
    private int maxPageNumber;                  //总页数

    //玩家仓库界面启用后,初始化仓库界面信息
    void OnEnable()
    {
        currentPanel.text = "仓 库";
        isEquiped         = false;
        inventoryLoadingWindow.SetActive(true);                 //提示仓库数据正在加载
        inventoryItemDetails.SetActive(false);
        foreach (GameObject go in inventoryItems)
        {
            go.SetActive(false);
        }

        //获取玩家仓库信息
        GetUserInventoryRequest request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, OnGetUserInventory, OnPlayFabError);

        //为返回按钮绑定响应函数
        backButton.onClick.RemoveAllListeners();
        backButton.onClick.AddListener(delegate {
            if (PhotonNetwork.inRoom)           //如果玩家在游戏房间中,点击返回按钮后,游戏界面显示游戏房间。
            {
                roomPanel.SetActive(true);
            }
            else                                //如果玩家在游戏大厅中,点击返回按钮后,游戏界面显示游戏大厅。
            {
                lobbyPanel.SetActive(true);
            }
            inventoryPanel.SetActive(false);
        });
    }
Example #11
0
    public void GetPlayFabInventory()
    {
        var request = new GetUserInventoryRequest {
        };

        PlayFabClientAPI.GetUserInventory(request, OnGetInventorySuccess, OnGetInventoryFailure);
    }
Example #12
0
 public async Task <GetUserInventoryResponse> GetUserInventory(
     GetUserInventoryRequest request)
 {
     return(await PostAsync <GetUserInventoryRequest, GetUserInventoryResponse>(
                request,
                CreateUri(HydraServices.UserService4, HydraMethods.GetUserInventory),
                compress : true));
 }
Example #13
0
        /**
         * Initialises user inventory.
         */
        private void InitialiseInventory()
        {
            Debug.Log("Initialising inventory");

            GetUserInventoryRequest request = new GetUserInventoryRequest();

            PlayFabClientAPI.GetUserInventory(request, OnInventorySuccess, OnInventoryFailure);
        }
        /// <summary>
        /// Retrieves the specified user's current inventory of virtual goods
        /// </summary>
        public static void GetUserInventory(GetUserInventoryRequest request, Action <GetUserInventoryResult> resultCallback, Action <PlayFabError> errorCallback, object customData = null)
        {
            if (PlayFabSettings.DeveloperSecretKey == null)
            {
                throw new Exception("Must have PlayFabSettings.DeveloperSecretKey set to call this method");
            }

            PlayFabHttp.MakeApiCall("/Admin/GetUserInventory", request, AuthType.DevSecretKey, resultCallback, errorCallback, customData);
        }
Example #15
0
    private void OnPurchaseItemSuccess(PurchaseItemResult result)
    {
        Debug.Log("Items Purchased");
        result.Items.ForEach(Print);

        var request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, OnGetUserInventorySuccess, OnGetUserInventoryFailure);
    }
    public override void Execute()
    {
        if (_args is GetInventoryCommandArgs getInventoryArgs)
        {
            var request = new GetUserInventoryRequest();

            PlayFabClientAPI.GetUserInventory(request, OnGotUserInventory, OnHttpError);
        }
    }
Example #17
0
    public void GetInventory(System.Action <GetUserInventoryResult> successCallback, System.Action <PlayFabError> failureCallback)
    {
        if (failureCallback == null)
        {
            failureCallback = Callback_Generic_Error;
        }
        var request = new GetUserInventoryRequest {
        };

        PlayFabClientAPI.GetUserInventory(request, successCallback, failureCallback);
    }
        protected override void getPlayerInventory(Action <List <RawPlayerItem>, RawCurrencySet> successHandler, Action failureHandler)
        {
            GetUserInventoryRequest request = new GetUserInventoryRequest();

            PlayFabClientAPI.GetUserInventory(
                request,
                result => { parseItems(result, successHandler); },
                error => {
                Debug.LogError("Couldn't parse player inventory.");
                failureHandler();
            }
                );
        }
Example #19
0
    void UpdateCurrentGold()
    {
        GetUserInventoryRequest requestInventory = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(requestInventory, result =>
        {
            result.VirtualCurrency.TryGetValue("GO", out curGold);
            GoldAmtText.text = curGold.ToString();
        }, error =>
        {
            Debug.Log(error.ErrorMessage);
        });
    }
        public virtual void Request()
        {
            if (IsOnline)
            {
                var request = new GetUserInventoryRequest
                {
                };

                PlayFabClientAPI.GetUserInventory(request, RetrieveCallback, ErrorCallback);
            }
            else
            {
                Load <GetUserInventoryResult>(FileName, RetrieveCallback, ErrorCallback);
            }
        }
Example #21
0
    public static Promise <Inventory> GetInventory()
    {
        var promise = new Promise <Inventory>();
        var request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, (result) => {
            try {
                Inventory inventory = InventoryFromItemInstanceList(result.Inventory);
                SuccessCallback(result);
                promise.Resolve(inventory);
            } catch (Exception ex) {
                promise.Reject(ex);
            }
        }, ErrorCallback);
        return(promise);
    }
Example #22
0
    public static Promise <Currency> GetCurrency(CurrencyCode currencyCode)
    {
        var promise = new Promise <Currency>();
        var request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, (result) => {
            try {
                Currency currency = new Currency(currencyCode, result.VirtualCurrency[currencyCode.ToString()]);
                promise.Resolve(currency);
                GetCurrencySuccessCallback(result);
            } catch (Exception ex) {
                promise.Reject(ex);
            }
        }, ErrorCallback);
        return(promise);
    }
    /// <summary>
    /// 仮想通貨の情報を取得
    /// </summary>
    public void GetUserVirtualCurrency()
    {
        // 通信待ちでなかったら通信開始
        if (!waitConnect.GetWait(gameObject.name))
        {
            // 通信待ちに設定する
            waitConnect.AddWait(gameObject.name);

            //GetUserInventoryRequestのインスタンスを生成
            var userInventoryRequest = new GetUserInventoryRequest();

            //インベントリの情報の取得
            Debug.Log($"仮想通貨の情報の取得開始");
            PlayFabClientAPI.GetUserInventory(userInventoryRequest, OnSuccessGet, OnErrorGet);
        }
    }
Example #24
0
    /// <summary>
    /// Gets the currency value for the current user or sets it from cache
    /// </summary>
    public void GetCurrencyValue(bool showLoadScreen)
    {
        if (showLoadScreen)
        {
            loadingAnimation.SetActive(true);

            if (Application.internetReachability != NetworkReachability.NotReachable && PlayerPrefs.GetInt(PlayerPrefsStrings.currencyNeedsSync) == 1)
            {
                debugReporter.text = debugReporter.text + "\n" + "SyncCurrencyWhenOnline() called and needs to add: " + PlayerPrefs.GetInt(PlayerPrefsStrings.currencyValueToAddForSync).ToString();
                debugReporter.text = debugReporter.text + "\n" + "SyncCurrencyWhenOnline() called and needs to substract: " + PlayerPrefs.GetInt(PlayerPrefsStrings.currencyValueToSubstractForSync).ToString();
                SyncCurrencyWhenOnline();
            }
        }

        debugReporter.text = debugReporter.text + "\n" + "GetCurrencyValue() called";

        GetUserInventoryRequest requestInventory = new GetUserInventoryRequest();
        int gold = 0;

        PlayFabClientAPI.GetUserInventory(requestInventory,
                                          result =>
        {
            loadingAnimation.SetActive(false);
            result.VirtualCurrency.TryGetValue("DM", out gold);
            diamondCurrencyValue.Value   = gold;
            diamonCurrencyValueText.text = gold.ToString();
            PlayerPrefs.SetInt(PlayerPrefsStrings.diamondCurrencyValue, diamondCurrencyValue.Value);
            debugReporter.text = debugReporter.text + "\n" + "GetCurrencyValue() : refreshed diamond currency";
        },
                                          error =>
        {
            if (Application.internetReachability != NetworkReachability.NotReachable)
            {
                loadingAnimation.SetActive(false);
                diamondCurrencyValue.Value   = PlayerPrefs.GetInt(PlayerPrefsStrings.diamondCurrencyValue);
                diamonCurrencyValueText.text = diamondCurrencyValue.Value.ToString();
                debugReporter.text           = debugReporter.text + "\n" + "GetCurrencyValue() : error getting currency value" + error.GenerateErrorReport();
                FindObjectOfType <ShowErrorMessageController>().SetErrorMessage("Retrieving the currency value failed: " + error.GenerateErrorReport());
            }
            else
            {
                //Sets the currency value from player prefs if no internet connection is available
                diamondCurrencyValue.Value   = PlayerPrefs.GetInt(PlayerPrefsStrings.diamondCurrencyValue);
                diamonCurrencyValueText.text = diamondCurrencyValue.Value.ToString();
            }
        });
    }
Example #25
0
    /// <summary>
    /// インベントリの取得
    /// </summary>
    public IEnumerator PlayFabGetInventory()
    {
        if (!isLogin)
        {
            Debug.LogWarning("Error:PlayFab not Login");
            yield break;
        }

        var getInventoryFunction = new CustomPlayFabFunction <GetUserInventoryRequest, GetUserInventoryResult>();
        var request = new GetUserInventoryRequest();

        getInventoryFunction.SetRequest = request;
        yield return(StartCoroutine(getInventoryFunction.ExecuteCoroutine(PlayFabClientAPI.GetUserInventory)));

        Debug.Log("Result:" + JsonUtility.ToJson(getInventoryFunction.GetResult));
        inventory = getInventoryFunction.GetResult;
    }
Example #26
0
    private int itemsPerPage = 4;                   //每页显示道具个数

    //玩家仓库界面启用后,初始化仓库界面信息
    void OnEnable()
    {
        currentPageNumber = 1;                                  //初始化当前房间页
        maxPageNumber     = 1;                                  //初始化最大房间页
        isEquiped         = false;
        inventoryLoadingInfo.gameObject.SetActive(true);
        inventoryItemDetails.SetActive(false);
        itemsPerPage = itemMessages.Length;
        foreach (GameObject go in itemMessages)
        {
            go.SetActive(false);
        }

        //获取玩家仓库信息
        GetUserInventoryRequest request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, OnGetUserInventory, OnPlayFabError);
    }
Example #27
0
        public void GetInventory(Callback <List <IMyItemInstance> > successCallback)
        {
            StartRequest("Getting inventory");
            GetUserInventoryRequest request = new GetUserInventoryRequest();

            PlayFabClientAPI.GetUserInventory(request, (result) => {
                RequestComplete("GetInventory() complete", LogTypes.Info);
                List <IMyItemInstance> items = new List <IMyItemInstance>();
                foreach (ItemInstance item in result.Inventory)
                {
                    items.Add(new MyItemInstance()
                    {
                        Id = item.ItemId, Count = (int)item.RemainingUses
                    });
                }
                successCallback(items);
            },
                                              (error) => { HandleError(error, BackendMessages.GET_INVENTORY_FAIL); });
        }
Example #28
0
        public async Task <List <ItemInstance> > GetUserInventoryUsingAdminAPI(string playFabId)
        {
            PlayFabResult <GetUserInventoryResult> result;
            var reqGetInventory = new GetUserInventoryRequest
            {
                PlayFabId = playFabId,
            };

            try
            {
                result = await PlayFabAdminAPI.GetUserInventoryAsync(reqGetInventory);
            }
            catch
            {
                // This is a retry, since we've seen a random issue that fails to return the user inventory
                // and succeeds on the following request
                result = await PlayFabAdminAPI.GetUserInventoryAsync(reqGetInventory);
            }

            return(result?.Result?.Inventory ?? new List <ItemInstance>());
        }
Example #29
0
    private int itemsPerPage = 4;                       //每页显示道具个数

    //商城面板激活时调用,获取商城道具信息,显示在商城面板中
    void OnEnable()
    {
        currentPageNumber = 1;                                  //初始化当前房间页
        maxPageNumber     = 1;                                  //初始化最大房间页
        shopLoadingInfo.gameObject.SetActive(true);
        shopItemDetails.SetActive(false);
        //lobbyLoadingLabel.SetActive (true);	//启用游戏大厅加载提示信息
        //roomLoadingLabel.SetActive (false);	//禁用游戏房间加载提示信息
        //获取房间信息面板
//		RectTransform rectTransform = shopItemsPanel.GetComponent<RectTransform> ();
//		itemsPerPage = rectTransform.childCount;		//获取房间信息面板的条目数
//
//		//初始化每条房间信息条目
//		itemMessage = new GameObject[itemsPerPage];
//		for (int i = 0; i < itemsPerPage; i++) {
//			itemMessage [i] = rectTransform.GetChild (i).gameObject;
//			itemMessage [i].SetActive (false);			//禁用房间信息条目
//		}
        itemsPerPage = itemMessages.Length;
        foreach (GameObject go in itemMessages)
        {
            go.SetActive(false);
        }

        //获取玩家仓库信息
        GetUserInventoryRequest request = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(request, OnGetUserInventory, OnPlayFabError);


//		backButton.onClick.RemoveAllListeners ();		//移除返回按钮绑定的所有监听事件
//		backButton.onClick.AddListener (delegate() {	//为返回按钮绑定新的监听事件
//			PhotonNetwork.Disconnect();					//断开客户端与Photon服务器的连接
//			loginPanel.SetActive(true);					//启用游戏登录面板
//			lobbyPanel.SetActive(false);				//禁用游戏大厅面板
//			userMessage.SetActive (false);				//禁用玩家昵称信息
//			backButton.gameObject.SetActive (false);	//禁用返回按钮
//		});
    }
Example #30
0
    void CheckUserInventory()
    {
        GetUserInventoryRequest requestInventory = new GetUserInventoryRequest();

        PlayFabClientAPI.GetUserInventory(requestInventory, result =>
        {
            foreach (ItemInstance item in result.Inventory)
            {
                if (item.ItemId == "AKM")
                {
                    PlayerOwnsAKM = true;
                }

                if (item.ItemId == "M4")
                {
                    PlayerOwnsM4 = true;
                }

                if (item.ItemId == "L96")
                {
                    PlayerOwnsL96 = true;
                }

                if (item.ItemId == "Glock")
                {
                    PlayerOwnsGlock = true;
                }

                if (item.ItemId == "Shotgun")
                {
                    PlayerOwnsShotgun = true;
                }
            }
        }, error =>
        {
            Alerts a = new Alerts();
            StartCoroutine(a.CreateNewAlert(error.ErrorMessage));
        });
    }