लीडरबोर्ड

आप किसी गेम पेज पर वैयक्तीकृत लीडरबोर्ड प्रदर्शित कर सकते हैं जिसमें शीर्ष प्लेयर के परिणामों और रैंकिंग में किसी लॉग-इन किए हुए उपयोगकर्ता का स्थान दिखाया गया हो।

नीचे दिए गए अनुरोधों के काम करने के लिए, सुनिश्चित करें कि:

चेतावनी

यदि डेवलपर डैशबोर्ड में 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
)

पैरामीटर

वर्णन

leaderboardName

लीडरबोर्ड का नाम।

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
  }
}

पैरामीटर

वर्णन

appID

ऐप ID।

default

यदि true है, तो फिर यह प्राथमिक लीडरबोर्ड है।

invert_sort_order

क्रमबद्धता क्रम:

  • false: रैंकिंग घटते क्रम में क्रमबद्ध की जाती हैं।
  • true: रैंकिंग बढ़ते क्रम में क्रमबद्ध की जाती हैं।

decimal_offset

स्कोर ऑफ़सेट। उदाहरण के लिए, जब decimal_offset: 2 1234 को 12.34 के रूप में प्रदर्शित किया जाएगा।

type

लीडरबोर्ड परिणाम प्रकार। उपलब्ध पैरामीटर: numeric (अंक), time (सेकंड)।

name

लीडरबोर्ड का नाम।

title

स्थानीयकृत नाम। कानूनी सरणी पैरामीटर: ru, en, be, uk, kk, uz, tr

नया स्कोर

चेतावनी

केवल पंजीकृत उपयोगकर्ताओं के लिए अनुरोध उपलब्ध है। आवश्यकता होने पर प्रमाणीकरण का उपयोग करें।

उपयोगकर्ता के लिए विधि की उपलब्धता की जांच के लिए, आप ysdk.isAvailableMethod('leaderboards.setScore') विधि का उपयोग कर सकते हैं, जो Promise<Boolean> लौटाता है, जहाँ बूलियन मान विधि की उपलब्धता को सूचित करता है।

उपयोगकर्ताओं के लिए परिणाम सहेजने के लिए, प्रेरित करने के लिए, एप्लिकेशन कोड में स्वयं एक कस्टम लीडरबोर्ड सेट करने की सिफारिश की जाती है। प्रौद्योगिकी का चयन किया जा सकता है।

किसी प्लेयर के लिए नया स्कोर सेट करने के लिए, ysdk.leaderboards.setScore() का उपयोग करें:

setScore(
  leaderboardName: string,
  score: number,
  extraData?: string
)

पैरामीटर

वर्णन

leaderboardName

लीडरबोर्ड का नाम।

score

स्कोर। केवल integer प्रकार ही स्वीकार किया जाता है। 0 से अधिक होना चाहिए। यदि लीडरबोर्ड का प्रकार time है, तो समय मान को मिलीसेकंड में पास किया जाना चाहिए।

extraData

उपयोगकर्ता का वर्णन। वैकल्पिक।

नोट

अनुरोध प्रति सेकंड एक बार से ज़्यादा नहीं भेजे जा सकते। अन्यथा, वे एक त्रुटि के साथ अस्वीकृत कर दिए जाएँगे।

// 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
)

पैरामीटर

वर्णन

leaderboardName

लीडरबोर्ड का नाम।

नोट

प्रति 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
}

पैरामीटर

वर्णन

score

स्कोर। केवल integer प्रकार ही स्वीकार किया जाता है। 0 से अधिक होना चाहिए। यदि लीडरबोर्ड का प्रकार time है, तो समय मान को मिलीसेकंड में पास किया जाना चाहिए।

extraData

उपयोगकर्ता का वर्णन। वैकल्पिक।

getAvatarSrc

उपयोगकर्ता के फ़ोटो का URL लौटाता है। size के लिए उपलब्ध मान: small, medium, और large

getAvatarSrcSet

उपयोगकर्ता के फ़ोटो का एक srcset लौटाता है जो रेटिना डिस्प्ले के लिए उपयुक्त हो। size के लिए उपलब्ध मान: small, medium, और large

लीडरबोर्ड प्रविष्टियाँ

उपयोगकर्ता रैंकिंग प्रदर्शित करने के लिए, ysdk.leaderboards.getEntries() का उपयोग करें:

getEntries(
  leaderboardName: string,
  {
    includeUser: boolean,
    quantityAround: integer,
    quantityTop: integer
  }
)

पैरामीटर

वर्णन

leaderboardName

लीडरबोर्ड का नाम।

includeUser

निर्दिष्ट करता है कि जवाब में लॉग-इन किए हुए उपयोगकर्ता को शामिल करना है या नहीं:

  • true: जवाब को शामिल करता है।
  • false (डिफ़ॉल्ट): शामिल न करें।

quantityAround

लीडरबोर्ड में उपयोगकर्ता के नीचे और ऊपर लौटाई जाने वाली प्रविष्टियों की संख्या। न्यूनतम मान 1 है, अधिकतम मान 10 है। डिफ़ॉल्ट 5 है।

quantityTop

लीडरबोर्ड के शीर्ष की प्रविष्टियों की संख्या। न्यूनतम मान 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
    },
    ...
  ]
}

पैरामीटर

वर्णन

leaderboard

लीडरबोर्ड का वर्णन

ranges

जवाब में रैंकिंग श्रेणियाँ।

start

रैंकिंग में प्लेसमेंट। गणना 0 पर शुरू होती है, इसलिए पहले स्थान को 0वाँ तत्व माना जाता है।

size

अनुरोधित प्रविष्टियों की संख्या। यदि पर्याप्त डेटा नहीं है, तो हो सकता है कि दिखाए जाने वाली संख्या वह नहीं हो जिसका अनुरोध किया गया था।

userRank

उपयोगकर्ता का रैंक। यदि कुछ नहीं हो या यदि अनुरोध उपयोगकर्ता को शामिल किए बिना तालिका के शीर्ष के लिए है तो 0 दिखाता है।

entries

अनुरोधित प्रविष्टियाँ।

score

स्कोर। केवल integer प्रकार ही स्वीकार किया जाता है। 0 से अधिक होना चाहिए। यदि लीडरबोर्ड का प्रकार time है, तो समय मान को मिलीसेकंड में पास किया जाना चाहिए।

extraData

उपयोगकर्ता का वर्णन। वैकल्पिक।

getAvatarSrc

उपयोगकर्ता के फ़ोटो का URL लौटाता है। size के लिए उपलब्ध मान: small, medium, और large

getAvatarSrcSet

उपयोगकर्ता के फ़ोटो का एक srcset लौटाता है जो रेटिना डिस्प्ले के लिए उपयुक्त हो। size के लिए उपलब्ध मान: small, medium, और large

विधियों की पाबंदियाँ

विधि

विवरण

प्रतिबंध

उपयोगकर्ता प्रमाणीकरण

ysdk.leaderboards.setScore()

खिलाड़ी का नया स्कोर सेट करें

1 सेकंड में 1 अनुरोध

अनिवार्य

ysdk.leaderboards.getPlayerEntry()

एक उपयोगकर्ता का लीडरबोर्ड प्रविष्टी लाओ

5 मिनट में 60 अनुरोध

अनिवार्य

ysdk.leaderboards.getEntries()

कई उपयोगकर्ताओं का लीडरबोर्ड प्राप्त करें

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 दिखाता है।

अनुरोधित प्रविष्टियाँ।