प्लेयर विवरण

आप गेम स्थिति डेटा (पूरे किए गए लेवल, अनुभव, और इन-गेम खरीदारियों सहित) को Yandex सर्वर पर सेव कर सकते हैं या उसे आपके सर्वर पर स्थानांतरित कर सकते हैं। आप उपयोगकर्ता की Yandex प्रोफ़ाइल के डेटा, जैसे उनके नाम का उपयोग करके गेम को वैयक्तीकृत भी कर सकते हैं।

खिलाड़ी की जानकारी

ysdk.player.get_info(
    callback: function,
    options: {
        scopes: boolean|nil,
        signed: boolean|nil
    }
)

callback: function — कॉलबैक बुलाए गए मेथड का। इसका रूप है:

function(self, player: table|nil, signature: string|nil): nil
  • player: table — खिलाड़ी के बारे में जानकारी। इसमें निम्नलिखित गुण होते हैं:
player = {
    logged_in: boolean,
    unique_id: string,
    name: string,
    photo: {
        small: string,
        medium: string,
        large: string
    }
}

उदाहरण

function init_player()
  ysdk.player.get_info(function(self, player)
      if player then
        display_player(self, player)
      else
        ysdk.player.open_auth_dialog(function(self, authorized)
          ysdk.player.get_info(display_player, {})
        end)
      end
    end,
    {})
end

function display_player(player)
  if player then
    print(player.name, signature)
  end
end

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

अगर खिलाड़ी प्रमाणीकृत (ऑथराइज़्ड) नहीं है, तो आप ysdk.player.open_auth_dialog() मेथड का उपयोग करके प्रमाणीकरण विंडो (डायलॉग) खोल सकते हैं।

ysdk.player.open_auth_dialog(callback: function)

callback: function — callback बुलाए गए मेथड का। इसका रूप है:

function(self, authorized: boolean): nil
  • authorized: boolean — खिलाड़ी ने लॉगइन किया है या नहीं।

इन-गेम डेटा

उपयोगकर्ता के इन-गेम डेटा के साथ काम करने के लिए Player ऑब्जेक्ट की मेथड्स का प्रयोग करें:

  • ysdk.player.set_data(data, flush) — उपयोगकर्ता का डेटा सेव करता है। डेटा का अधिकतम आकार 200 KB से अधिक नहीं होना चाहिए।

    • data: table — इसमें कुंजी-मूल्य जोड़ियों का संग्रह होता है।
    • flush: boolean — डेटा भेजने की प्राथमिकता निर्धारित करता है। अगर यह true है, तो डेटा तुरंत सर्वर पर भेजा जाएगा; false (डिफ़ॉल्ट मान) पर भेजने का अनुरोध कतार में डाल दिया जाएगा।

यह मेथड एक Promise लौटाता है, जो यह दर्शाता है कि डेटा सहेजा गया या नहीं।

अगर flush: false हो, तो लौटाया गया परिणाम केवल डेटा की वैधता दिखाता है (व्यवस्थित डेटा भेजने की प्रक्रिया बाद में की जाएगी)। ऐसे में, ysdk.player.get_data() मेथड वही डेटा लौटाएगा, जो आखिरी बार ysdk.player.set_data() द्वारा सेट किया गया था, भले ही वह अभी सर्वर पर भेजा न गया हो।

  • ysdk.player.get_data(callback, keys) — यांडेक्स के डाटाबेस में सेव किए गए यूज़र के इन-गेम डेटा को रिक्वेस्ट करता है।

    • callback: fun(self, data: table<string, any>) — यूज़र के प्राप्त इन-गेम डेटा के साथ काम करने के लिए हैंडलर फंक्शन।
    • keys: table<number, string> — उन कीज़ की सूची जिन्हें रिटर्न करना है। अगर keys पैरामीटर अनुपस्थित है, तो यह मेथड यूज़र के सभी इन-गेम डेटा रिटर्न करेगी।
  • ysdk.player.set_stats(stats) — यूज़र का संख्यात्मक डेटा सेव करता है। डेटा का मैक्सिमम आकार 10 KB से ज़्यादा नहीं होना चाहिए।

    • stats: table<string, number> — इसमें की–वैल्यू पेयर होते हैं, जहां हर वैल्यू एक नंबर होनी चाहिए।

नोट

इस विधि का उपयोग अक्सर बदलने वाले संख्यात्मक मानों (स्कोर, अनुभव अंक, इन-गेम मुद्रा) के लिए करें, ysdk.player.set_data() के बजाय।

  • ysdk.player.increment_stats(increments) — उपयोगकर्ता के इन-गेम डेटा को बदलता है। डेटा का अधिकतम आकार 10 KB से अधिक नहीं होना चाहिए।
    • increments: table<string, number> — ऑब्जेक्ट, जिसमें कुंजी-मूल्य जोड़े होते हैं, जहाँ प्रत्येक मूल्य एक संख्या होनी चाहिए।
  • ysdk.player.get_stats(callback, keys) — यांडेक्स के डेटाबेस में सुरक्षित उपयोगकर्ता के संख्यात्मक डेटा प्राप्त करें।
  • callback: fun(self, data: table<string, number>|nil) — प्राप्त किए गए संख्यात्मक उपयोगकर्ता डेटा के साथ काम करने के लिए हैंडलर फ़ंक्शन।
  • keys: string[] — उन कुंजियों की सूची जिन्हें वापस करना है। यदि keys पैरामीटर निर्दिष्ट नहीं है, तो यह विधि उपयोगकर्ता के सभी इन-गेम डेटा लौटाती है।

उपयोगकर्ता की पहचानकर्ता

ysdk.player.get_ids_per_game(callback: function)

callback: function — कॉलबैक बुलाए गए मेथड का। इसका रूप है:

function(self, ids: {appID: number, userID: string}[]): nil
  • ids — उन सभी खेलों में उपयोगकर्ता की पहचानकर्ता, जहां डेवलपर की ओर से उपयोगकर्ता ने व्यक्तिगत डेटा साझा करने के लिए स्पष्ट सहमति दी है। इसमें निम्नलिखित गुण होते हैं:
    • app_id: string — एप्लिकेशन का पहचानकर्ता।
    • user_id: string — उपयोगकर्ता का पहचानकर्ता।

उदाहरण

function log_ids()
  ysdk.player.get_ids_per_game(function(self, ids)
    for _, value in ipairs(ids) do
      print(value.app_id, value.user_id)
    end
  end)
end

रिपोजिटरी