@Rob
I have built with 2018.3407
The login functionality is working,but now the achievements, leaderboards and snapshots are not working. even after log in. The default windows are not showing up for them.
Code for achievements and leaderboards funcitonality:
local function handleButton(event) if (event.target.id == "inGameLeaderboards" and event.phase == "ended") then if (gpgs.isConnected()) then gpgs.leaderboards.show() else gpgs.login( { userInitiated = true, listener = gpgsLoginListener } ) gpgs.leaderboards.show() end -- gpgs is connected check outer END elseif (event.target.id == "inGameAchievements" and event.phase == "ended") then if (gpgs.isConnected()) then gpgs.achievements.show() else gpgs.login( { userInitiated = true, listener = gpgsLoginListener } ) gpgs.achievements.show() end -- gpgs is connected check outer END end -- button conditional END end
Code for snapshots upload and download funcitonality:
local function handleButton (event) if (event.target.id == "cloudUpload" and event.phase == "ended") then -- save snapshots local function gpgsSnapshotOpenForSaveListener( event ) if not event.isError then local snapContent = gpgs.snapshots.getSnapshot(event.snapshotId).contents snapContent.write( json.encode(gameData) ) -- Write new gameData as a JSON string into the snapshot gpgs.snapshots.save({ snapshotId = event.snapshotId, description = "Game scores", image = { filename = "EmojiCrushShare.png", baseDir = system.ResourceDirectory }, }) end end -- gpgsSnapshotOpenForSaveListener func END if (gpgs.isConnected()) then gpgs.snapshots.open({ -- Open the save slot filename = snapshotFileName, create = true, -- Create the snapshot if it's not found conflictPolicy = "most recently modified", listener = gpgsSnapshotOpenForSaveListener }) gpgs.snapshots.load( {reload = true, }) gpgs.snapshots.show( {title = "Emoji Crush", disableAdd = false, disableDelete = false}) else gpgs.login( { userInitiated = true, listener = gpgsLoginListener } ) gpgs.snapshots.open({ -- Open the save slot filename = snapshotFileName, create = true, -- Create the snapshot if it's not found conflictPolicy = "most recently modified", listener = gpgsSnapshotOpenForSaveListener }) gpgs.snapshots.load( {reload = true, }) gpgs.snapshots.show( {title = "Emoji Crush", disableAdd = false, disableDelete = false}) end -- gpgs is connected check outer END elseif (event.target.id == "cloudDownload" and event.phase == "ended") then -- download snapshot local function gpgsSnapshotOpenForReadListener( event ) if not event.isError then local retrievedData = gpgs.snapshots.getSnapshot (event.snapshotId) local gameData, pos, msg = json.decode( retrievedData ) if not gameData then toast.show('Decoding failed.' ..tostring(pos)..": "..tostring(msg)) else loadsave.saveTable( gameData, "gameData.json" ) end else -- DO NOTHING end -- event.iserror conditional END end --gpgsSnapshotOpenForReadListener func END if (gpgs.isConnected()) then gpgs.snapshots.open({ filename = snapshotFileName, conflictPolicy = "most recently modified", listener = gpgsSnapshotOpenForReadListener }) gpgs.snapshots.load( {reload = true, }) gpgs.snapshots.show( {title = "Emoji Crush", disableAdd = false, disableDelete = false}) else gpgs.login( { userInitiated = true, listener = gpgsLoginListener } ) gpgs.snapshots.open({ filename = snapshotFileName, conflictPolicy = "most recently modified", listener = gpgsSnapshotOpenForReadListener }) gpgs.snapshots.load( {reload = true, }) gpgs.snapshots.show( {title = "Emoji Crush", disableAdd = false, disableDelete = false}) end -- gpgs.isconnected END end-- conditional END