लीडरबोर्ड
आप किसी गेम पेज पर वैयक्तीकृत लीडरबोर्ड प्रदर्शित कर सकते हैं जिसमें शीर्ष प्लेयर के परिणामों और रैंकिंग में किसी लॉग-इन किए हुए उपयोगकर्ता का स्थान दिखाया गया हो।
नीचे दिए गए अनुरोधों के काम करने के लिए, सुनिश्चित करें कि:
- आपने SDK को चालू और कॉन्फ़िगर कर दिया है, और उसका ऑब्जेक्ट
ysdk
वैरिएबल के माध्यम से उपलब्ध है। - आपने डेवलपर डैशबोर्ड में एक लीडरबोर्ड बना दिया है।
चेतावनी
यदि डेवलपर डैशबोर्ड में Technical leaderboard name फ़ील्ड में कोई भी लीडरबोर्ड उसके नाम के साथ नहीं है, तो अनुरोध पर एक 404 त्रुटि आती है।
आरंभ करना
लीडरबोर्ड के मेथड्स को सीधे ysdk.leaderboards
से एक्सेस करें।
प्रतिबंध
ysdk.getLeaderboards()
मेथड का उपयोग करके lb
ऑब्जेक्ट को इनिशियलाइज़ करना अब डिप्रिकेटेड हो चुका है।
पुराने मेथड्स
var lb;
ysdk.getLeaderboards()
.then(_lb => lb = _lb);
// लीडरबोर्ड मेथड्स जब पुराने तरीके से कॉल किए जाते थे:
// lb.getLeaderboardDescription() → ysdk.leaderboards.getDescription()
// lb.setLeaderboardScore() → ysdk.leaderboards.setScore()
// lb.getLeaderboardPlayerEntry() → ysdk.leaderboards.getPlayerEntry()
// lb.getLeaderboardEntries() → ysdk.leaderboards.getEntries()
लीडरबोर्ड का वर्णन
नाम द्वारा किसी लीडरबोर्ड का वर्णन पाने के लिए, ysdk.leaderboards.getDescription()
का उपयोग करें:
getDescription(
leaderboardName: string
)
पैरामीटर |
वर्णन |
|
लीडरबोर्ड का नाम। |
ysdk.leaderboards.getDescription('leaderboard2021')
.then(res => console.log(res));
const work = async () => {
const res = await ysdk.leaderboards.getDescription('leaderboard2021');
console.log(res);
}
work();
अनुरोध फ़ॉर्मेट
{
appID: string,
dеfault: boolean,
description: {
invert_sort_order: boolean,
score_format: {
options: {
decimal_offset: integer
},
type: string
}
},
name: string,
title: {
en: string,
ru: string
}
}
पैरामीटर |
वर्णन |
|
ऐप ID। |
|
यदि |
|
क्रमबद्धता क्रम:
|
|
स्कोर ऑफ़सेट। उदाहरण के लिए, जब |
|
लीडरबोर्ड परिणाम प्रकार। उपलब्ध पैरामीटर: |
|
लीडरबोर्ड का नाम। |
|
स्थानीयकृत नाम। कानूनी सरणी पैरामीटर: |
नया स्कोर
चेतावनी
केवल पंजीकृत उपयोगकर्ताओं के लिए अनुरोध उपलब्ध है। आवश्यकता होने पर प्रमाणीकरण का उपयोग करें।
उपयोगकर्ता के लिए विधि की उपलब्धता की जांच के लिए, आप ysdk.isAvailableMethod('leaderboards.setScore')
विधि का उपयोग कर सकते हैं, जो Promise<Boolean>
लौटाता है, जहाँ बूलियन मान विधि की उपलब्धता को सूचित करता है।
उपयोगकर्ताओं के लिए परिणाम सहेजने के लिए, प्रेरित करने के लिए, एप्लिकेशन कोड में स्वयं एक कस्टम लीडरबोर्ड सेट करने की सिफारिश की जाती है। प्रौद्योगिकी का चयन किया जा सकता है।
किसी प्लेयर के लिए नया स्कोर सेट करने के लिए, ysdk.leaderboards.setScore()
का उपयोग करें:
setScore(
leaderboardName: string,
score: number,
extraData?: string
)
पैरामीटर |
वर्णन |
|
लीडरबोर्ड का नाम। |
|
स्कोर। केवल |
|
उपयोगकर्ता का वर्णन। वैकल्पिक। |
नोट
अनुरोध प्रति सेकंड एक बार से ज़्यादा नहीं भेजे जा सकते। अन्यथा, वे एक त्रुटि के साथ अस्वीकृत कर दिए जाएँगे।
// extraData के बिना
ysdk.leaderboards.setScore('leaderboard2021', 120);
// extraData के साथ
ysdk.leaderboards.setScore('leaderboard2021', 120, 'My favourite player!');
const work = async () => {
// extraData के बिना
await ysdk.leaderboards.setScore('leaderboard2021', 120);
// extraData के साथ
await ysdk.leaderboards.setScore('leaderboard2021', 120, 'My favourite player!');
}
work();
कोई रैंकिंग प्राप्त करना
चेतावनी
केवल पंजीकृत उपयोगकर्ताओं के लिए अनुरोध उपलब्ध है। यदि आवश्यक हो, तो प्रमाणीकरण का उपयोग करें।
उपयोगकर्ता के लिए विधि की उपलब्धता की जांच करने के लिए आप ysdk.isAvailableMethod('leaderboards.getPlayerEntry')
विधि का उपयोग कर सकते हैं, जो Promise<Boolean>
लौटाता है, जहाँ बूलियन मान विधि की उपलब्धता को सूचित करता है।
सभी उपयोगकर्ताओं के लिए परिणाम सहेजने के लिए प्रेरित करने के लिए प्रेरित होते हैं, चाहे वे प्रमाणीकरण हो या न हो, हम सुझाव देते हैं कि आप एप्लिकेशन के कोड में कस्टम लीडरबोर्ड को स्वयं लिखें। प्रौद्योगिकी का चयन कोई सीमित नहीं है।
किसी उपयोगकर्ता की रैंकिंग प्राप्त करने के लिए, ysdk.leaderboards.getPlayerEntry()
का उपयोग करें:
getPlayerEntry(
leaderboardName: string
)
पैरामीटर |
वर्णन |
|
लीडरबोर्ड का नाम। |
नोट
प्रति 5 मिनट में 60 बार से अधिक अनुरोध नहीं किया जा सकता। अन्यथा यह एक त्रुटि के साथ अस्वीकृत होगा।
ysdk.leaderboards.getPlayerEntry('leaderboard2021')
.then(res => console.log(res))
.catch(err => {
if (err.code === 'LEADERBOARD_PLAYER_NOT_PRESENT') {
// यदि लीडरबोर्ड में प्लेयर के लिए प्रविष्टि नहीं है तो चालू होता है
}
});
const work = async () => {
try {
const res = await ysdk.leaderboards.getPlayerEntry('leaderboard2021');
console.log(res);
} catch (err) {
if (err.code === 'LEADERBOARD_PLAYER_NOT_PRESENT') {
// यदि लीडरबोर्ड में प्लेयर के लिए प्रविष्टि नहीं है तो चालू होता है
}
}
}
work();
अनुरोध फ़ॉर्मेट
{
score: integer,
extraData: string,
rank: integer,
player: {
getAvatarSrc: (size: string) => string,
getAvatarSrcSet: (size: string) => string,
lang: string,
publicName: string,
scopePermissions: {
avatar: string,
public_name: string
},
uniqueID: string,
},
formattedScore: string
}
पैरामीटर |
वर्णन |
|
स्कोर। केवल |
|
उपयोगकर्ता का वर्णन। वैकल्पिक। |
|
उपयोगकर्ता के फ़ोटो का URL लौटाता है। |
|
उपयोगकर्ता के फ़ोटो का एक srcset लौटाता है जो रेटिना डिस्प्ले के लिए उपयुक्त हो। |
लीडरबोर्ड प्रविष्टियाँ
उपयोगकर्ता रैंकिंग प्रदर्शित करने के लिए, ysdk.leaderboards.getEntries()
का उपयोग करें:
getEntries(
leaderboardName: string,
{
includeUser: boolean,
quantityAround: integer,
quantityTop: integer
}
)
पैरामीटर |
वर्णन |
|
लीडरबोर्ड का नाम। |
|
निर्दिष्ट करता है कि जवाब में लॉग-इन किए हुए उपयोगकर्ता को शामिल करना है या नहीं:
|
|
लीडरबोर्ड में उपयोगकर्ता के नीचे और ऊपर लौटाई जाने वाली प्रविष्टियों की संख्या। न्यूनतम मान 1 है, अधिकतम मान 10 है। डिफ़ॉल्ट 5 है। |
|
लीडरबोर्ड के शीर्ष की प्रविष्टियों की संख्या। न्यूनतम मान 1 है, अधिकतम मान 20 है। डिफ़ॉल्ट 5 है। |
नोट
प्रति 5 मिनट में 60 बार से अधिक अनुरोध नहीं किया जा सकता। अन्यथा यह एक त्रुटि के साथ अस्वीकृत होगा।
// सभी डिफ़ॉल्ट का उपयोग करना
ysdk.leaderboards.getEntries('leaderboard2021')
.then(res => console.log(res));
// शीर्ष 10 में वापसी
ysdk.leaderboards.getEntries('leaderboard2021', { quantityTop: 10 })
.then(res => console.log(res));
// उपयोगकर्ता के दोनों ओर शीर्ष 10 और 3 प्रविष्टियों को लौटाना
ysdk.leaderboards.getEntries('leaderboard2021', { quantityTop: 10, includeUser: true, quantityAround: 3 })
.then(res => console.log(res));
const work = async () => {
let res;
// सभी डिफ़ॉल्ट का उपयोग करना
res = await ysdk.leaderboards.getEntries('leaderboard2021');
console.log(res);
// शीर्ष 10 प्राप्त करना
res = await ysdk.leaderboards.getEntries('leaderboard2021', { quantityTop: 10 });
console.log(res);
// उपयोगकर्ता के दोनों ओर शीर्ष 10 और 3 प्रविष्टियों को लौटाना
res = await ysdk.leaderboards.getEntries('leaderboard2021', { quantityTop: 10, includeUser: true, quantityAround: 3 });
console.log(res);
}
work();
अनुरोध फ़ॉर्मेट
{
leaderboard: {
...
},
ranges: [
{
start: integer,
size: integer
}
],
userRank: integer,
entries: [
{
score: integer,
extraData: string,
rank: integer,
player: {
getAvatarSrc: (size: string) => string,
getAvatarSrcSet: (size: string) => string,
lang: string,
publicName: string,
scopePermissions: {
avatar: string,
public_name: string
},
uniqueID: string,
},
formattedScore: string
},
...
]
}
पैरामीटर |
वर्णन |
|
|
|
जवाब में रैंकिंग श्रेणियाँ। |
|
रैंकिंग में प्लेसमेंट। गणना 0 पर शुरू होती है, इसलिए पहले स्थान को 0वाँ तत्व माना जाता है। |
|
अनुरोधित प्रविष्टियों की संख्या। यदि पर्याप्त डेटा नहीं है, तो हो सकता है कि दिखाए जाने वाली संख्या वह नहीं हो जिसका अनुरोध किया गया था। |
|
उपयोगकर्ता का रैंक। यदि कुछ नहीं हो या यदि अनुरोध उपयोगकर्ता को शामिल किए बिना तालिका के शीर्ष के लिए है तो 0 दिखाता है। |
|
अनुरोधित प्रविष्टियाँ। |
|
स्कोर। केवल |
|
उपयोगकर्ता का वर्णन। वैकल्पिक। |
|
उपयोगकर्ता के फ़ोटो का URL लौटाता है। |
|
उपयोगकर्ता के फ़ोटो का एक srcset लौटाता है जो रेटिना डिस्प्ले के लिए उपयुक्त हो। |
विधियों की पाबंदियाँ
विधि |
विवरण |
प्रतिबंध |
उपयोगकर्ता प्रमाणीकरण |
|
1 सेकंड में 1 अनुरोध |
अनिवार्य |
|
|
5 मिनट में 60 अनुरोध |
अनिवार्य |
|
|
5 मिनट में 20 अनुरोध |
वैकल्पिक |
अन्य अनुरोधों पर पाबंदी: 5 मिनट में 20 अनुरोध।
लीडरबोर्ड संबंधित समस्याएँ
सुझाव
ysdk.isAvailableMethod()
और ysdk.leaderboards.setScore()
विधियों को संयोजित करने पर अप्रमाणित उपयोगकर्ताओं को लीडरबोर्ड में नहीं दिखाया जाता और वे अपनी प्रगति को नहीं देख सकते। हम सुझाव देते हैं कि आप एक अलग लीडरबोर्ड तालिका बनाएं, जहाँ किसी भी उपयोगकर्ता के परिणाम सहेजें और उन्हें सभी के लिए प्रदर्शित करें। आप ऐप्लिकेशन कोड में कस्टम लीडरबोर्ड b बना सकते हैं, प्रौद्योगिकी का चयन किया जा सकता है।
ऑब्जेक्ट पहले से मौजूद है
नए नाम के साथ एक नया लीडरबोर्ड बनाने का प्रयास करने पर यह त्रुटि उत्पन्न होती है। उस नाम का उपयोग करें जो पहले से उपयोग नहीं हुआ है।
उपयोगकर्ता छिपा हुआ
"छुपा हुआ उपयोगकर्ता" लेख तब दिखाई देता है जब खिलाड़ी ने अपनी प्रोफ़ाइल तस्वीर और नाम का उपयोग करने की अनुमति नहीं दी है। उपयोगकर्ता डेटा तक पहुंच उसके प्रोफ़ाइल में सेटिंग्स पर निर्भर करती है। अधिक जानकारी के लिए खिलाड़ी डेटा सेक्शन देखें।
त्रुटि 404
अगर लीडरबोर्ड के लिए SDK के तरीकों को बुलाने का प्रयास करते समय त्रुटि 404 आती है, तो सुनिश्चित करें कि डेवलपर कंसोल में Technical leaderboard name क्षेत्र में संबंधित नाम के लीडरबोर्ड बनाया गया है।
नोट
टीम सपोर्ट के कर्मचारी यंडेक्स गेम्स प्लेटफॉर्म पर तैयार खेल को डालने में मदद करते हैं। डेवलपमेंट और परीक्षण के संबंध में आवेदनिक प्रश्नों का उत्तर अन्य डेवलपर्स देंगे Discord चैनल।
यदि आप किसी समस्या का सामना कर रहे हैं या Yandex Games SDK के इस्तेमाल के बारे में आपका कोई प्रश्न है, तो कृपया समर्थन से संपर्क करें:
लीडरबोर्ड का नाम।
ऐप्लिकेशन ID।
यदि true
है, तो फिर यह प्राथमिक लीडरबोर्ड है।
क्रमबद्धता क्रम:
false
: रैंकिंग घटते क्रम में क्रमबद्ध की जाती हैं।true
: रैंकिंग बढ़ते क्रम में क्रमबद्ध की जाती हैं।
स्कोर ऑफ़सेट।
उदाहरण के लिए, जब decimal_offset: 2
1234 को 12.34 के रूप में प्रदर्शित किया जाएगा।
लीडरबोर्ड परिणाम प्रकार। उपलब्ध पैरामीटर: numeric
(अंक), time
(सेकंड)।
स्थानीयकृत नाम। कानूनी सरणी पैरामीटर: ru
, en
, be
, uk
, kk
, uz
, tr
।
स्कोर। केवल integer
प्रकार ही स्वीकार किया जाता है। 0 से अधिक होना चाहिए। यदि लीडरबोर्ड का प्रकार time
है, तो समय मान को मिलीसेकंड में पास किया जाना चाहिए।
उपयोगकर्ता का वर्णन। वैकल्पिक।
लीडरबोर्ड परिणाम प्रकार। उपलब्ध पैरामीटर: numeric
(अंक), time
(सेकंड)।
उपयोगकर्ता के फ़ोटो का URL दिखाता है। size
के लिए उपलब्ध मान: small
, medium
, और large
।
उपयोगकर्ता के फ़ोटो का एक srcset दिखाता है जो रेटिना डिस्प्ले के लिए उपयुक्त हो। size
के लिए उपलब्ध मान: small
, medium
, और large
।
निर्दिष्ट करता है कि जवाब में लॉग-इन किए हुए उपयोगकर्ता को शामिल करना है या नहीं:
true
: जवाब को शामिल करता है।false
(डिफ़ॉल्ट): शामिल न करें।
लीडरबोर्ड में उपयोगकर्ता के नीचे और ऊपर दिखाई जाने वाली प्रविष्टियों की संख्या। न्यूनतम मान 1 है। अधिकतम मान 10 है। डिफ़ॉल्ट 5 है।
लीडरबोर्ड के शीर्ष की प्रविष्टियों की संख्या। न्यूनतम मान 1 है, अधिकतम मान 20 है। डिफ़ॉल्ट 5 है।
जवाब में रैंकिंग श्रेणियाँ।
रैंकिंग में प्लेसमेंट। गणना 0 पर शुरू होती है, इसलिए पहले स्थान को 0वाँ तत्व माना जाता है।
अनुरोधित प्रविष्टियों की संख्या। यदि पर्याप्त डेटा नहीं है, तो हो सकता है कि दिखाए जाने वाली संख्या वह नहीं हो जिसका अनुरोध किया गया था।
उपयोगकर्ता का रैंक। यदि कुछ नहीं हो या यदि अनुरोध उपयोगकर्ता को शामिल किए बिना तालिका के शीर्ष के लिए है तो 0 दिखाता है।
अनुरोधित प्रविष्टियाँ।