2011-09-02 37 views
7

当我查看GKScore和GKLeaderboard的文档时,无法将玩家报告的分数重置为GameCenter中特定的排行榜。我对吗?以任何方式编程重置排行榜?

这似乎颇不一致,因为它是可以重置成就:

[GKAchievement resetAchievementsWithCompletionHandler:^(NSError *error) { ... }]; 

有什么想法?

+0

我在找同样的东西,但迄今为止没有。在他们的GameKit编程指南中,它展示了如何重置成就,但不是排行榜。所以我想目前这是不可能的... – Structurer

回答

5

你是对的。无法重置Game Center排行榜类别,或者在实时应用中启动后删除类别。

苹果确实允许重置成就的方法。

我所知道的唯一工作就是让旧的类别死掉,将它们拖到最下面,将与该类别相关联的标签更改为“高分(已存档)”,然后创建一个新的一个并将其标记为“高分”并将其排序到顶部。这会给你一个新的。但是当然,仍然有25个排行榜类别的限制 - 所以在某些时候你会被击沉,除非你知道如何重用旧的。 (例如,让你的所有分数x10,让每个人都快速上升到旧分数以上)

编辑...在最近的版本中,我确实在最近的应用更新中重用了排行榜类别。该类别的最初用途是在低于1000年的相当低的分数。该类别的新用途将从10倍到1000倍之间。所以我知道这个类别的任何旧分数都会在游戏的第一对情节中被删除。当然,类别ID不能更改(com.company.app.category),但描述(英文或其他)可以更改。它可能会让你感到困惑,因为你在为完全不同的东西储存分数时使用了一个具有唯一标识的分类。但是使用#define kBlahBlahBlah to @“com.company.app.blah”,您可以使用任何名称的代码来轻松地保持直线。希望有所帮助。

+0

感谢您的答案,但即使这种解决方法也不能解决我只想为单个玩家重设分数的情况(不重置整个排行榜类别本身)。 – manicaesar

+0

技术上我的答案是正确的,但我可以使用复选标记。你问是否有办法,没办法..正确的答案。 – badweasel

+0

我刚刚花了很长时间创建了我自己的基于服务器的高分系统,这样我就可以用我的排行榜来做我想要的,包括禁止作弊和删除假分数。我现在可以动态地动态创建它们。我最终可能会将我的系统开放给其他开发人员。 – badweasel