Есть ли способ программно сбросить списки лидеров?

Когда я изучаю документацию GKScore и GKLeaderboard, нет способа сбросить результаты, сообщаемые игроком, в конкретную таблицу лидеров в GameCenter. Я прав?

Это кажется довольно непоследовательным, так как можно сбросить достижения:

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

Есть предположения?


person manicaesar    schedule 02.09.2011    source источник
comment
Я ищу то же самое, но пока ничего. В их Руководстве по программированию GameKit показано, как сбросить достижения, но не таблицы лидеров. Так что я думаю, что в настоящее время это невозможно ...   -  person Structurer    schedule 29.09.2011


Ответы (1)


Ты прав. Невозможно сбросить категорию таблицы лидеров Game Center или удалить категорию после ее запуска в реальном приложении.

Apple разрешила сбросить достижение.

Единственный обходной путь, который я знаю, - это просто позволить старым категориям умереть, переместить их в конец, изменить ярлык, связанный с категорией, на что-то вроде «Высокий балл (в архиве)», а затем создать новый и пометить его. «High Score» и отсортируйте его наверх. Это даст вам свежий. Но, конечно, все еще существует ограничение в 25 категорий лидеров, так что в какой-то момент вы утонете, если только не придумаете, как повторно использовать старые. (Например, умножьте все свои баллы на 10, чтобы все очень быстро поднялись выше старых баллов)

РЕДАКТИРОВАТЬ... В последней версии я действительно повторно использовал категорию таблицы лидеров в недавнем обновлении приложения. Первоначально эта категория использовалась для оценок, которые были довольно низкими... в пределах 1000. Новое использование категории должно было быть в 10-1000 раз больше. Так что я знал, что любые старые результаты в этой категории будут стерты в течение первых двух игр. Конечно, идентификатор категории не может измениться (com.company.app.category), но может измениться описание (на английском или другом языке). Это может сбивать с толку, потому что вы используете категорию с идентификатором одной вещи, когда сохраняете оценки для чего-то совершенно другого. Но с #define kBlahBlahBlah to @"com.company.app.blah" ваш код может использовать любое имя, что упрощает поддержание порядка. Надеюсь, это поможет.

person badweasel    schedule 21.06.2012
comment
Спасибо за ответ, но даже этот обходной путь не решает ситуацию, в которой я хочу сбросить счет только для одного игрока (а не сбросить всю категорию таблицы лидеров). - person manicaesar; 22.06.2012
comment
Технически мой ответ правильный, и я мог бы использовать галочку. Вы спросили есть ли способ и нет ли... правильный ответ. - person badweasel; 24.06.2012
comment
Я просто потратил много времени на создание своей собственной серверной системы рекордов, чтобы я мог делать со своими таблицами лидеров все, что хотел, включая запрет читеров и удаление фальшивых результатов. Теперь я могу создавать их динамически на лету. Я мог бы в конечном итоге открыть свою систему для других разработчиков. - person badweasel; 24.06.2012