---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.4
alternate:
  - https://yandex.com/dev/games/doc/en/sdk/defold/player-data.md
  - https://yandex.com/dev/games/doc/hi/sdk/defold/player-data.md
  - https://yandex.com/dev/games/doc/ko/sdk/defold/player-data.md
  - https://yandex.com/dev/games/doc/ru/sdk/defold/player-data.md
  - https://yandex.com/dev/games/doc/tr/sdk/defold/player-data.md
  - https://yandex.com/dev/games/doc/vi/sdk/defold/player-data.md
  - https://yandex.com/dev/games/doc/zh/sdk/defold/player-data.md
  - href: hi/sdk/defold/player-data.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/games/doc/hi/llms.txt

# प्लेयर विवरण

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

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

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

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

```lua
function(self, player: table|nil, signature: string|nil): nil
```

- `player: table` — खिलाड़ी के बारे में जानकारी। इसमें निम्नलिखित गुण होते हैं:

```lua
player = {
    logged_in: boolean,
    unique_id: string,
    name: string,
    photo: {
        small: string,
        medium: string,
        large: string
    }
}
```

**उदाहरण**

```lua
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
```

## उपयोगकर्ता प्रमाणीकरण {#auth}

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

```lua
ysdk.player.open_auth_dialog(callback: function)
```

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

```lua
function(self, authorized: boolean): nil
```

- `authorized: boolean` — खिलाड़ी ने लॉगइन किया है या नहीं।

## इन-गेम डेटा

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

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

    - `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>` — इसमें की–वैल्यू पेयर होते हैं, जहां हर वैल्यू एक नंबर होनी चाहिए।

{% note info "नोट" %}

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

{% endnote %}

- `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 पैरामीटर निर्दिष्ट नहीं है, तो यह विधि उपयोगकर्ता के सभी इन-गेम डेटा लौटाती है।

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

```lua
ysdk.player.get_ids_per_game(callback: function)
```

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

```lua
function(self, ids: {appID: number, userID: string}[]): nil
```

- `ids` — उन सभी खेलों में उपयोगकर्ता की पहचानकर्ता, जहां डेवलपर की ओर से उपयोगकर्ता ने व्यक्तिगत डेटा साझा करने के लिए स्पष्ट सहमति दी है। इसमें निम्नलिखित गुण होते हैं:
    - `app_id: string` — एप्लिकेशन का पहचानकर्ता।
    - `user_id: string` — उपयोगकर्ता का पहचानकर्ता।

**उदाहरण**

```lua
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
```

---


<!-- source: hi/_includes/button-git-defold.md -->
<a href="https://github.com/yandex-games-plugins/defold">
  <span class="button">रिपोजिटरी</span>
</a>
<!-- endsource: hi/_includes/button-git-defold.md -->
