コード例 #1
0
    public void StoreItemsFromJson(GetUserDataResult res)
    {
        Items.Clear();
        if (res == null || res.Data["fm_user_achievements"] == null)
        {
            Debug.Log("no user achievements yet");
            return;
        }

        UAjson = JSON.Parse(res.Data["fm_user_achievements"].Value); //storing raw values to update later and send
        var userAchievements = JSON.Parse(res.Data["fm_user_achievements"].Value);

        for (int i = 0; i < userAchievements.Count; i++)
        {
            string name = GetUserAchievementName(userAchievements[i]);
            FMAchievementState[] values = new FMAchievementState[userAchievements[i][name].AsArray.Count];

            for (int j = 0; j < userAchievements[i][name].AsArray.Count; j++)
            {
                values[j] = (FMAchievementState)userAchievements[i][name][j].AsInt;
            }

            FMUserAchievement item = new FMUserAchievement(name, values);
            Items.Add(item);
        }
    }
コード例 #2
0
    public FMPlayfabUserAchievementResult(ExecuteCloudScriptResult res)
    {
        //Debug.Log("user achv res: "+JSON.Parse(res.ToString()));
        if (res.FunctionResult == null)
        {
            return;
        }
        var json = JSON.Parse(res.FunctionResult.ToString());

        if ((json.Value.Equals("null") || res.Error != null))
        {
            status       = FMAchievementStatus.error;
            ErrorMessage = res.Error.Message;
            return;
        }

        userAchievements = json["userAchievements"].AsArray;
        ////////////////////////////////////////////////////

        //we will check the state of the achievement (locked, unlocked, claimed, etc) depeding on the json
        for (int i = 0; i < FMPlayfabAchievements.Items.Count; i++)
        {
            var item = FMPlayfabAchievements.Items[i];

            JSONNode nodeGetReward = ContainsAchievement(item.Key);
            //if (nodeGetReward != null)
            //{
            //    switch (nodeGetReward[item.Key].AsInt)
            //    {
            //        case 0:
            //            item.State = IVAchievementState.Locked;
            //            break;
            //        case 1:
            //            item.State = IVAchievementState.Unclaimed;
            //            break;
            //        case 2:
            //            item.State = IVAchievementState.Claimed;
            //            break;
            //        default:
            //            break;
            //    }
            //    item.State = nodeGetReward[item.Key].AsInt != 1 ? IVAchievementState.Unclaimed : IVAchievementState.Claimed;
        }

        //User IV achievements
        if (userAchievements == null)
        {
            return;
        }
        foreach (JSONNode kvp in userAchievements)
        {
            string name = FMPlayfabUserAchievement.Instance.GetUserAchievementName(kvp);
            FMAchievementState[] values = new FMAchievementState[kvp.Value.Length];
            for (int j = 0; j < kvp.Value.Length; j++)
            {
                values[j] = (FMAchievementState)(kvp[name].AsInt);
            }
            var userItem = new FMUserAchievement(name, values);
            UserItems.Add(userItem);
        }
    }