diff --git a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js index a829c0bf9..164265302 100644 --- a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js +++ b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js @@ -2145,6 +2145,24 @@ function Add_MissionCompletCount(urod, group) ++missionGroup[key1][key2][1]; } +function Get_MissionReward(table, itemtable, urod, data) +{ + var group = data.n_MissionGroupId; + var id = data.n_MissionIndex; + + var lv = urod.Mission?.[group]?.[id]?.[0] ?? 0; + var count = Get_MissionCount(urod, data, group, id); + + if (lv == 0 && count >= data.l_MissionConditionCount) + { + Add_Item(table, itemtable, urod, data.n_RewardValue, id); + Add_MissionLv(urod, group, id); + Add_MissionCompletCount(urod, group); + + return true; + } + return false; +} handlers.Save_Mission = function(args) { var readonlydata = Get_UserReadOnlyData(); @@ -2153,16 +2171,38 @@ handlers.Save_Mission = function(args) var urod = Get_JsonUserData(readonlydata); var table = Get_MissionTable(); + var itemtable = Get_ItemTable(); var data = table.find(f=>f.n_MissionGroupId == args.Group && f.n_MissionIndex == args.ID); - var lv = urod.Mission?.[args.Group]?.[args.ID]?.[0] ?? 0; - var count = Get_MissionCount(urod, data, args.Group, args.ID); - - if (lv == 0 && count >= data.l_MissionConditionCount) + + if (Get_MissionReward(table, itemtable, urod, data)) { - Add_Item(table, Get_ItemTable(), urod, data.n_RewardValue, data.n_MissionIndex); - Add_MissionLv(urod, data.n_MissionGroupId, data.n_MissionIndex); - Add_MissionCompletCount(urod, data.n_MissionGroupId); + Set_JsonUserData(urod); + return Get_Return(0); + } + return Get_Return(1); +} +handlers.Save_MissionAll = function(args) +{ + var readonlydata = Get_UserReadOnlyData(); + var error = Get_Error(readonlydata, args.Token); + if (error < 0) return Get_Return(error); + var urod = Get_JsonUserData(readonlydata); + var table = Get_MissionTable(); + var itemtable = Get_ItemTable(); + + let existGet = false; + var lst = table.filter(f=>f.n_MissionGroupId == args.Group); + for (var i = 0; i < lst.length; ++i) + { + if (Get_MissionReward(table, itemtable, urod, lst[i])) + existGet = true; + } + if (Get_MissionReward(table, itemtable, urod, lst.find(f=>f.e_MissionConditionType.includes("_CLEAR_ALL"))) + existGet = true; + + if (existGet) + { Set_JsonUserData(urod); return Get_Return(0); }