UI_Objective_Completion_Status --------------------------------------------------------------------------------------------------------------------------- -- Save Reward Data to Serverprint local dataNew local completionList = {} local public game_room_id = 899898 --Find gameObjects in map representing goggles and add event listener function Start() luaEvent:AddEventListener("AllQuestObjectivesCreated", this, SaveCurrentData) luaEvent:AddEventListener("ObjectiveComplete", this, FinishObjectiveAndSaveStatus) end function SaveCurrentData() --Saves current data values from scene local dataTable = {} dataTable['cmd'] = 'WcWebgl.savePlayerRoomData' dataTable['game_id'] = game_room_id -- same as mission-id defined on "skill book config" page on HL-admin LuaHandler.Send(dataTable) --Gets current data values from scene local dataTable = {} dataTable['cmd'] = 'WcWebgl.getPlayerRoomData' dataTable['game_id'] = game_room_id -- same as mission-id defined on "skill book config" page on HL-admin LuaHandler.Send(dataTable, call) end --Sets data values for resultTable = dataTable function call(jsondata) local resultTable = jsonDecode(jsondata) completionList = resultTable['data']["isComplete"] CleanCompletionList() if completionList ~= nil then for i, completionListItem in ipairs(completionList) do for i = 1, 6, 1 do if (completionListItem == (i.." is true")) then luaEvent:DispatchEvent("ObjectiveAlreadyCompleted", i) break end end end else completionList = {} end end --Mark designated objective at complete function FinishObjectiveAndSaveStatus(infoItemID) local itemID = infoItemID.Data for i = 1, 6 do if i == itemID then dataNew = "true" table.insert(completionList, tostring(itemID).." is "..dataNew) break end end SaveCompletionData() end --Removes duplicate values in completion list local results = {} local testCloneTable = {} function CleanCompletionList() if completionList ~= nil then for i, value in ipairs(completionList) do if (not testCloneTable[value]) then testCloneTable[value] = true table.insert(results, value) end end completionList = results end end --Stores value of completion list data and saves to server function SaveCompletionData() local data = {} -- an object to be saved data["isComplete"] = completionList local dataTable={} dataTable['cmd'] = 'WcWebgl.savePlayerRoomData' dataTable['game_id'] = game_room_id -- same as mission-id defined on "skill book config" page on HL-admin dataTable['data'] = data -- an object is required LuaHandler.Send(dataTable) end --Destroys gameObject if player did not retrieve reward - called by interaction with undamaged slingshot function DestroySelf() GameObject.Destroy(gameObject) end