// 指定したモンスターのカスタムデータを更新 public static async Task UpdateUserMonsterCustomDataAsync(FunctionExecutionContext <dynamic> context, string itemInstanceId, UserMonsterCustomData customData) { var serverApi = new PlayFabServerInstanceAPI(context.ApiSettings, context.AuthenticationContext); var customDataDict = UserDataUtil.GetCustomDataDict(customData); var result = await serverApi.UpdateUserInventoryItemCustomDataAsync(new UpdateUserInventoryItemDataRequest() { PlayFabId = context.CallerEntityProfile.Lineage.MasterPlayerAccountId, ItemInstanceId = itemInstanceId, Data = customDataDict, }); }
// ユーザーインベントリ情報を取得する public static async Task <UserInventoryInfo> GetUserInventoryAsync(FunctionExecutionContext <dynamic> context) { var serverApi = new PlayFabServerInstanceAPI(context.ApiSettings, context.AuthenticationContext); var result = await serverApi.GetUserInventoryAsync(new GetUserInventoryRequest() { PlayFabId = context.CallerEntityProfile.Lineage.MasterPlayerAccountId, }); var userInventory = UserDataUtil.GetUserInventory(result.Result); return(userInventory); }
// ユーザーデータを取得する public static async Task <UserDataInfo> GetUserDataAsync(FunctionExecutionContext <dynamic> context) { var serverApi = new PlayFabServerInstanceAPI(context.ApiSettings, context.AuthenticationContext); var result = await serverApi.GetUserDataAsync(new GetUserDataRequest() { PlayFabId = context.CallerEntityProfile.Lineage.MasterPlayerAccountId, }); // ユーザーデータのパラム名とそのデータのJsonの辞書にしてユーザーデータを取得 var userData = UserDataUtil.GetUserData(result.Result.Data); return(userData); }
public static async Task <dynamic> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { try{ string body = await req.ReadAsStringAsync(); var context = JsonConvert.DeserializeObject <FunctionExecutionContext <dynamic> >(body); var request = JsonConvert.DeserializeObject <FunctionExecutionContext <UpdateUserMonsterFormationApiRequest> >(body).FunctionArgument; var userData = await DataProcessor.GetUserDataAsync(context); var userMonsterPartyList = userData.userMonsterPartyList ?? new List <UserMonsterPartyInfo>(); var index = userMonsterPartyList.FindIndex(u => u.partyId == request.partyId); if (index < 0) { // 存在しない場合は新規作成して追加 var userMonsterParty = new UserMonsterPartyInfo() { id = UserDataUtil.CreateUserDataId(), partyId = request.partyId, userMonsterIdList = request.userMonsterIdList, }; userMonsterPartyList.Add(userMonsterParty); } else { // すでに存在する場合は更新 userMonsterPartyList[index].userMonsterIdList = request.userMonsterIdList; } await DataProcessor.UpdateUserDataAsync(context, new Dictionary <UserDataKey, object>() { { UserDataKey.userMonsterPartyList, userMonsterPartyList } }); var response = new UpdateUserMonsterFormationApiResponse() { }; return(PlayFabSimpleJson.SerializeObject(response)); }catch (PMApiException e) { // レスポンスの作成 var response = new PMApiResponseBase() { errorCode = e.errorCode, message = e.message }; return(PlayFabSimpleJson.SerializeObject(response)); } }