2011-09-02 19 views
7

जैसा कि मैं जीकेएसकोर और जीकेएलडरबोर्ड के दस्तावेज में देखता हूं, गेमकेंटर में विशेष लीडरबोर्ड पर प्लेयर द्वारा रिपोर्ट किए गए स्कोर को रीसेट करने का कोई तरीका नहीं है। क्या मैं सही हू?प्रोग्रामरेटिक रूप से लीडरबोर्ड को रीसेट करने का कोई तरीका?

यह काफी असंगत लगता है के बाद से यह उपलब्धियों रीसेट करने के लिए संभव है:

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

किसी भी विचार?

+0

मैं एक ही चीज़ की तलाश में हूं, लेकिन अभी तक कुछ भी नहीं। उनकी गेमकिट प्रोग्रामिंग गाइड में यह दिखाता है कि उपलब्धियां कैसे रीसेट करें, लेकिन लीडर बोर्ड नहीं। तो मुझे लगता है कि वर्तमान में यह संभव नहीं है ... – Structurer

उत्तर

5

आप सही हैं। गेम सेंटर लीडरबोर्ड श्रेणी को रीसेट करने या किसी लाइव ऐप में लॉन्च होने के बाद श्रेणी को निकालने का कोई तरीका नहीं है।

ऐप्पल ने एक उपलब्धि को रीसेट करने का तरीका दिया।

कि चारों ओर केवल काम मुझे पता है की सिर्फ पुराने श्रेणियों, मरने के लिए उन्हें नीचे का सहारा, की तरह कुछ होने के लिए श्रेणी के साथ जुड़े लेबल बदल "उच्च स्कोर (संग्रहीत)" और फिर एक नया बनाने की अनुमति देना है एक और इसे "हाई स्कोर" लेबल करें और इसे शीर्ष पर सॉर्ट करें। यह आपको एक नया देगा। लेकिन निश्चित रूप से अभी भी 25 लीडरबोर्ड श्रेणियों की एक सीमा है - इसलिए किसी बिंदु पर आप डूब जाते हैं जब तक कि आप पुराने लोगों का पुन: उपयोग कैसे न करें। (उदाहरण के लिए, अपने सभी स्कोर x10 बनाएं ताकि प्रत्येक व्यक्ति पुराने स्कोर से ऊपर उठता है)

संपादित करें ... हाल के संस्करण में मैंने वास्तव में हाल ही में ऐप अपडेट में लीडरबोर्ड श्रेणी का पुन: उपयोग किया था। श्रेणी का मूल उपयोग उन स्कोरों के लिए था जो कम 1000 के दशक में काफी कम थे ...। श्रेणी का नया उपयोग 10x से 1000x तक कहीं भी होने वाला था। तो मुझे पता था कि उस श्रेणी में किसी भी पुराने स्कोर को खेल के पहले जोड़े के नाटकों में मिटा दिया जाएगा। बेशक श्रेणी आईडी (com.company.app.category) नहीं बदल सकती है, लेकिन विवरण (अंग्रेजी या अन्यथा) बदल सकता है। यह भ्रमित हो सकता है क्योंकि आप ऐसी श्रेणी का उपयोग कर रहे हैं जिसमें एक चीज़ की एक आईडी है जब कुछ अलग-अलग चीज़ों के लिए स्कोर सहेजते हैं। लेकिन #define kBlahBlahBlah से @ "com.company.app.blah" के साथ आप कोड का उपयोग कर सकते हैं जो भी नाम सीधे चीजों को रखना आसान बनाता है। उम्मीद है की वो मदद करदे।

+0

उत्तर के लिए धन्यवाद, लेकिन यहां तक ​​कि यह कामकाज उस स्थिति को हल नहीं करता है जिसमें मैं केवल एक खिलाड़ी के लिए स्कोर रीसेट करना चाहता हूं (पूरे लीडरबोर्ड श्रेणी को रीसेट नहीं करता)। – manicaesar

+0

तकनीकी रूप से मेरा जवाब सही है हालांकि मैं चेकमार्क का उपयोग कर सकता हूं। आपने पूछा कि क्या कोई रास्ता है और कोई रास्ता नहीं है .. सही जवाब। – badweasel

+0

मैंने अपने स्वयं के सर्वर आधारित उच्च स्कोर सिस्टम बनाने में काफी समय लगाया ताकि मैं अपने लीडरबोर्ड के साथ जो चाहूं वह कर सकूं, जिसमें धोखेबाज़ों को प्रतिबंधित करना और नकली स्कोर निकालना शामिल है। अब मैं उन्हें फ्लाई पर गतिशील रूप से बना सकता हूं। मैं अंततः अपने सिस्टम को अन्य डेवलपर्स तक खोल सकता हूं। – badweasel

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^