सर्वर समय
यांडेक्स गेम्स SDK आपको सर्वर के साथ सिंक्रोनाइज़ किया गया समय प्राप्त करने की अनुमति देता है। यह विधि उपयोगी है:
- नकली गतिविधियों से बचाव के लिए: उपयोगकर्ता अपने डिवाइस पर समय बदलकर गेमिंग प्रक्रियाओं को प्रभावित नहीं कर पाएंगे।
- गेमिंग इवेंट्स के लिए: इसके आधार पर आप गतिविधियों और पुरस्कारों को जोड़ सकते हैं, जिनके लिए विश्वसनीय समय स्रोत महत्वपूर्ण है, जैसे: दैनिक या साप्ताहिक बोनस, मौसमी इवेंट्स और क्वेस्ट्स।
ysdk.serverTime()
यह विधि timestamp
वापस देती है, सर्वर समय मिलिसेकंड में, जो सभी डिवाइसों पर समान होता है। यह Date.now()
परिणाम प्रारूप के समान है, हालांकि, बाद वाला उपयोगकर्ता के डिवाइस का समय लौटाता है, जो सर्वर समय से भिन्न हो सकता है और खिलाड़ियों की ओर से नकली गतिविधियों से सुरक्षित नहीं है। ysdk.serverTime()
विधि को कोड के माध्यम से पुनः परिभाषित या बदला नहीं जा सकता, जो इसे अधिक विश्वसनीय बनाता है।
जब भी आपको वर्तमान समय प्राप्त करने की आवश्यकता हो, इसे कॉल करें।
const ysdk = await YaGames.init();
// सर्वर के साथ सिंक्रोनाइज़ किया गया मिलीसेकंड में समय वापस करता है।
ysdk.serverTime(); // उदाहरण के लिए, 1720613073778।
// कुछ समय बाद इसे फिर से कॉल करें।
ysdk.serverTime(); // उदाहरण के लिए, 1720613132635।
YaGames.init().then(ysdk => {
// सर्वर के साथ सिंक्रोनाइज्ड समय को मिलीसेकंड्स में लौटाता है।
ysdk.serverTime(); // उदाहरण के लिए, 1720613073778।
// कुछ समय बाद फिर से कॉल करें।
ysdk.serverTime(); // उदाहरण के लिए, 1720613132635।
});
दैनिक पुरस्कारों के उदाहरण
- विश्वसनीय सर्वर समय प्राप्त करने के लिए
ysdk.serverTime()
का उपयोग किया जाता है। - डेटा को player.setData() के माध्यम से सहेजा जाता है।
- पुरस्कार को दोबारा प्राप्त करने से सुरक्षा लागू की गई है।
- समय की तुलना सुरक्षित तरीके से की जाती है।
चेतावनी
इन उदाहरणों में giveReward()
फ़ंक्शन — यह आपकी अपनी पुरस्कार देने की कार्यान्वयन है।
आखिरी बार खेल लॉगिन करने के 24 घंटे बाद इनाम दिया जाता है
YaGames.init().then(async ysdk => {
// खिलाड़ी का इनिशियलाइज़ेशन।
const player = await ysdk.getPlayer();
// सेव किए गए डेटा प्राप्त करें।
const data = await player.getData();
// वर्तमान सर्वर समय।
const currentTime = ysdk.serverTime();
// आखिरी बार इनाम प्राप्त करने का समय (अगर नहीं है तो 0 उपयोग करें)।
const lastRewardTime = data.lastRewardTime || 0;
// 24 घंटे मिलीसेकंड में।
const DAY_IN_MS = 24 * 60 * 60 * 1000;
if (currentTime - lastRewardTime >= DAY_IN_MS) {
// 24 घंटे से ज्यादा समय बीत गया है — इनाम दिया जा सकता है।
await giveReward(); // आपकी इनाम देने की फ़ंक्शन।
// इनाम प्राप्त करने का नया समय सेव करें।
await player.setData({
lastRewardTime: currentTime
});
}
});
इनाम प्रत्येक कैलेंडर दिन में केवल एक बार (UTC के अनुसार मध्यरात्रि को रीसेट होता है)
YaGames.init().then(async ysdk => {
// खिलाड़ी का इनिशियलाइज़ेशन।
const player = await ysdk.getPlayer();
// सेव किए गए डेटा प्राप्त करें।
const data = await player.getData();
// वर्तमान सर्वर समय।
const currentTime = ysdk.serverTime();
// आखिरी इनाम पाने की तारीख "YYYY-MM-DD" फॉर्मेट में प्राप्त करें।
const lastRewardDate = data.lastRewardDate || '';
// मौजूदा तारीख "YYYY-MM-DD" फॉर्मेट में प्राप्त करें।
const currentDate = new Date(currentTime).toISOString().split('T')[0];
if (currentDate !== lastRewardDate) {
// आज पुरस्कार अभी तक नहीं मिला है।
await giveReward(); // आपकी इनाम देने की फ़ंक्शन।
// पुरस्कार पाने की तारीख सेव करें।
await player.setData({
lastRewardDate: currentDate
});
}
});
नोट
टीम सपोर्ट के कर्मचारी यंडेक्स गेम्स प्लेटफॉर्म पर तैयार खेल को डालने में मदद करते हैं। डेवलपमेंट और परीक्षण के संबंध में आवेदनिक प्रश्नों का उत्तर अन्य डेवलपर्स देंगे Discord चैनल।
यदि आप किसी समस्या का सामना कर रहे हैं या Yandex Games SDK के इस्तेमाल के बारे में आपका कोई प्रश्न है, तो कृपया समर्थन से संपर्क करें: