如何使用gameNetwork.request("loadScores")获取自己的最高分数?
2014-2-10 6:39:1
收藏:0
阅读:193
评论:2
有人使用 Google Play 提供的 gameNetwork 吗?我在使用它时遇到了一点问题,我正在尝试获取个人最高分,但它没有正常工作。
这是我使用的代码
function loadScoreCallback(event)
oldScore = event.data[5].formattedValue
end
gameNetwork.request( "loadScores",
{
leaderboard =
{
category = "thecategory id",
playerScope = "Global", -- Global, FriendsOnly
timeScope = "AllTime", -- AllTime, Week, Today
range = {1,5},
playerCentered = true,
},
listener = loadScoreCallback
})
我还尝试了这样的代码
function loadScoreCallback(event)
oldScore = event.data
end
gameNetwork.request ( "loadScores",
{
leaderboard =
{
playerID = playerName,
category = "CgkIptXi1qgCEAIQAw",
playerScope = "Global", -- Global, FriendsOnly
timeScope = "AllTime", -- AllTime, Week, Today
playerCentered = true,
},
listener = loadScoreCallback
})
也不起作用 :/
点赞
用户3038364
我一开始有些困惑,但是我找到了适合我的解决方案。以下是当用户提交分数时调用的监听器:
local function onGameNetworkRequestResult( event )
if event.type == "setHighScore" then
local function tempScoresFct(event)
if event.data then
local playerRank = event.data[1].rank
local currentValue = event.data[1].value
if lb.tempScore <= event.data[1].value then
native.showAlert("分数已提交", "您的分数低于或等于排行榜中的当前分数("..currentValue.."),未发生任何变化。您的全球所有时间排名为:\n" .. playerRank .. "\n点击“显示排行榜”按钮,查看您在朋友和其他时间尺度中的表现。", {"好"})
else
native.showAlert("分数已提交", "您的分数已成功上传到排行榜中。您的全球所有时间排名为:\n" .. playerRank .. "\n点击“显示排行榜”按钮,查看您在朋友和其他时间尺度中的表现。", {"好"})
end
end
end
gameNetwork.request( "loadScores",
{
leaderboard =
{
category = event.data.category,
playerScope = "Global", -- Global, FriendsOnly
timeScope = "AllTime", -- AllTime, Week, Today
range = {1,1}, --Just get one player
playerCentered = true, -- and this player is the player that is logged in
},
listener = tempScoresFct
})
end
end
以下是提交分数的函数:
function lb.submitScoreFct(event)
if event.phase == "ended" then
if gameNetwork.request("isConnected") then
--显示排行榜
print("提交分数")
local myCategory
local categoryName
if event.target.category == 1 then
myCategory = "ategoryID" --palo alto
categoryName = "Palo Alto"
elseif event.target.category == 2 then
myCategory = "ategoryID" --groningen
categoryName = "Groningen"
elseif event.target.category == 3 then
myCategory = "ategoryID" --sp2
categoryName = "SP2"
end
--local score = mRand(100,1000)
local score = event.target.score
lb.tempScore = score -- 我使用此选项来验证上传的分数是否高于或低于已有的值
print("将 " .. score .. " 添加到 " .. categoryName)
gameNetwork.request( "setHighScore",
{
localPlayerScore = { category=myCategory, value=tonumber(score) },
listener = lb.onGameNetworkRequestResult
})
end
else
print("用户需要登录")
-- 如果出现问题,则尝试登录用户,例如显示登录屏幕。
gameNetwork.request("login",
{
listener = loginListener,
userInitiated = true -- 如果为 false,则此过程是无声的,即如果用户未登录,则不会弹出登录。
})
end
return true
end
还有一件事情我发现,这些监听器函数是脆弱的。如果出现一个错误,它们就会退出,有时不会给出任何错误提示。例如,如果您尝试打印(event.data.rank) (而不是打印(event.data[1].rank)),就不会出现任何错误,但该函数在此处结束,而函数的其余部分则不执行...
2014-03-01 20:43:33
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

好吧,我想到了更好的方案,因为并不是每个人都时刻在线,所以我自己开发了一套保存系统,并从中获取了高分。但我仍然不知道为什么它不起作用,恩至少我通过这个解决了这个问题。