и ещё, если не сложно можете сказать почему мой код не работал?Нет. Можешь разделить эти настройки. На отдельные
и ещё, если не сложно можете сказать почему мой код не работал?Нет. Можешь разделить эти настройки. На отдельные
Я точно не знаю но предположение выше описал. Скорее всего так и есть)и ещё, если не сложно можете сказать почему мой код не работал?
не работает(Я точно не знаю но предположение выше описал. Скорее всего так и есть)
Я же говорил что написал систему но не проверял) Пришлось залить на проект и затестировать. И действительно допустил ошибки. Сейчас поправил и все работает. В прошлом посте тоже исправил. И сейчас должно заработать.нажатие клавиш, назначение
Можешь, просто сериализуй в в JSON строкут.е. я не могу в настройки накидать {binds:{voice:90,engine:80}} ?
mp.storage сбрасывается, если игрок сносит систему или просто чистит папку с рейджом (именно там и хранится твой mp.storage), или пересядет на другой компьютер, или еще сотня причин.Дружище, зачем ты сохраняешь настройки игрока (особенно, такие, как бинд) на сервер, когда есть mp.storage?
Ну хз, для этого достаточно на форуме гайд сделать, мол файл storage.json стоит сохранить, если хотите что либо удалить/сбросить.mp.storage сбрасывается, если игрок сносит систему или просто чистит папку с рейджом (именно там и хранится твой mp.storage), или пересядет на другой компьютер, или еще сотня причин.
Это плохой способ хранения данных, которые желательно для игрока было бы сохранять. Я, как игрок, не хотел бы свои настройки потерять, если я даже не знал, что они там хранятся.
В mp.storage можно хранить что-то, что не страшно потерять, но не более.
Бывает что этот файл затирается при какой-либо ошибке на клиенте. И не угадаешь когда сохранить.Ну хз, для этого достаточно на форуме гайд сделать, мол файл storage.json стоит сохранить, если хотите что либо удалить/сбросить.
Но если хочется иметь облачные настройки игрока, тогда да, mp.storage не нужен.
Я спросил его об этом потому, что мало ли он не знал, так то вещь полезная для хранения исключительно локальной информации.
Судя по твоему коду:Всем привет, решил вернуться к этому вопросу т.к. ничего не работает, код остался такой же, у кого есть еще предположения отпишите
mp.events.add('setSettingsBindsS',(player,bind,key) => {
console.log(`bind ${bind} to key ${key}`);
settings = player.getVariable('settings');
settings.binds[bind] = key;
player.call('loadUnBinds',[JSON.stringify(settings)]);
player.setVariable('settings',settings);
setTimeout(() => {player.call('loadBinds');},200);
player.call('menu:updateSettings');
mp.db.query("UPDATE `accounts` SET `settings` = ? WHERE username = ?",[JSON.stringify(player.getVariable('settings')),player.name]);
});
settings.binds[bind] = key;
player.call('loadUnBinds',[JSON.stringify(settings)]);
действительно помогло, спасибо, я не заметилСудя по твоему коду:
Ты сначала присваиваешь новую клавишу, а потом её анбиндишьJavaScript:mp.events.add('setSettingsBindsS',(player,bind,key) => { console.log(`bind ${bind} to key ${key}`); settings = player.getVariable('settings'); settings.binds[bind] = key; player.call('loadUnBinds',[JSON.stringify(settings)]); player.setVariable('settings',settings); setTimeout(() => {player.call('loadBinds');},200); player.call('menu:updateSettings'); mp.db.query("UPDATE `accounts` SET `settings` = ? WHERE username = ?",[JSON.stringify(player.getVariable('settings')),player.name]); });
Нужно анбиндить старый key, а потом присваивать новыйJavaScript:settings.binds[bind] = key; player.call('loadUnBinds',[JSON.stringify(settings)]);