如何从 Google Play 游戏服务排行榜中删除被黑分数?

Posted

技术标签:

【中文标题】如何从 Google Play 游戏服务排行榜中删除被黑分数?【英文标题】:How to delete a hacked score from Google Play Game Services leaderboard? 【发布时间】:2015-09-30 03:53:40 【问题描述】:

我的排行榜自创建以来就开启了防篡改功能,但一名玩家添加了数百万分的黑客得分(人类可达到的最大得分低于 1000)

我怎样才能只删除那个被黑的分数?这一定是一种方法......但在文档中找不到:https://developers.google.com/games/services/common/concepts/leaderboards

【问题讨论】:

【参考方案1】:

查看players.hide() 电话。这将从公共排行榜隐藏玩家和他/她的所有分数,以便其他人无法看到它们。

请注意,此 REST 调用未内置到移动库中;您需要创建自己的迷你网络应用程序(或直接进行 curl 调用)才能使用此调用,尽管有一个管理工具示例应用程序可供您使用 here,这可能会让您的生活更轻松。

哦,如果您知道人类可达到的最高分必须为 1000 分,请在 Play 游戏控制台中为该排行榜指定 1000 分的“最高分”。

【讨论】:

管理工具似乎不再工作了...希望有人可以更新它...【参考方案2】:

我所做的是某种混淆。

我的意思是,我确实将数字替换为类似

的字符串
0 = #$%@&*52$*@ 
1 = #$%@&*84$*$
2 = #$%@&*58$*#

分隔为另一个唯一字符串,例如:%$$90&* 等等。

所以当我发布乐谱时,首先我会进行查找和替换 每个数字的字符串,因为我在本地发布分数 数据看起来像;

122 = #$%@&*84$*$%$$90&*#$%@&*58$*#%$$90&*#$%@&*58$*#

所以发布一个被黑的分数有点困难(并非不可能)

【讨论】:

【参考方案3】:

你可以按照this article 中的说明,使用Google Developers OAuth 2.0 Playground 来执行@todd-kerpelman 提到的players.hide(),但这仍然是一个非常繁琐的过程。

我之前也使用过management-tools,但它似乎不再工作了。

【讨论】:

【参考方案4】:

因为现在可以在开发过程中重置排行榜。

您只能重置草稿排行榜的玩家进度数据。

要在 Google Play 开发者控制台中重置排行榜,请点击该活动表单底部标有重置排行榜进度的按钮。要以编程方式重置排行榜数据,请调用 Management API Scores 方法。 参考:https://developers.google.com/games/services/common/concepts/leaderboards#resetting_a_leaderboard

【讨论】:

它不是在开发中,它已发布,所以我无法重置它。我不敢相信没有办法从谷歌排行榜中清除作弊分数.... 如果它被黑客入侵,您将无能为力。我想了一个办法让它变得更难。我总是将玩家的分数保存在两个变量上,但一个是数字的总和,例如:玩家获得 10 分,我将在一个中保存 10,在另一个上保存 11,我只将分数发送到排行榜例如,如果“var1 == var2 - 1”。这只是一个想法。

以上是关于如何从 Google Play 游戏服务排行榜中删除被黑分数?的主要内容,如果未能解决你的问题,请参考以下文章

从 google play 游戏服务排行榜屏幕注销

Google Play 游戏服务退出回调

如何在 Google Play 游戏服务中获取排行榜和成就信息

如何限制到最大值。在 Google Play 游戏服务排行榜 API 中提交 1x 分数?

我们如何查看 Google Play 服务中的排行榜详情?

实施 Google Play 游戏服务 - 如何让用户登录