Порядок действий в коде:
1) Открыли страницу
2) Инициализируем Яндекс SDK
3) Запрашиваем данные игрока
4) Запрашиваем сохранение игрока
Полный код чуть ниже. Unity тут вообще никак не участвует. Почему с понедельника по сегодня на этапе загрузки данных игрока потерялось 32% игроков?
let ysdk = null;
let player = null;
let data = null;
let retryCount = 0;
const maxRetries = 10;
const retryDelay = 1000;
function init() {
if (typeof YaGames === 'undefined') {
console.error('[YSDK] NO Yandex SDK');
return;
}
console.log('[YSDK] Will load Yandex SDK');
YaGames.init().then(_ysdk => {
ysdk = _ysdk;
console.log('[YSDK] initialized');
reachGoal('yandex_sdk_initialized');
yandexLoadPlayerAndData();
});
}
init();
function yandexLoadPlayerAndData() {
return ysdk.getPlayer()
.then(_player => {
console.log("[YSDK] Player loaded:", _player);
reachGoal('yandex_player_loaded');
player = _player;
return _player.getData();
})
.then(_data => {
console.log("[YSDK] Data loaded:", _data);
reachGoal('yandex_data_loaded');
data = _data;
})
.catch(err => {
if (retryCount < maxRetries) {
retryCount++;
console.error("[YSDK] Failed to load, retrying...", err);
return new Promise(resolve => setTimeout(resolve, retryDelay)).then(yandexLoadPlayerAndData);
} else {
console.error("[YSDK] Failed to load after retries:", err);
}
});
}
