Распишу какие действия приводят к крашу:
Захожу на сервер, авторизуюсь, выбираю персонажа, переподключаюсь через ф1.
Все данные персонажей у меня хранятся в виде player.setVariable/getVariable. Жалуется он на таймер который обновляет те самые данные. Выглядит это так:
Могу предположить что стоит сделать отдельный ивент с таймером который начинает работать после выбора персонажа, возможно, просто таймер начинает работу при подключении, но т.к. персонаж не выбран - данные ему взять неоткуда. На самом деле это очень сомнительные размышления. При краше ошибка указывает именно на первую строку в таймере. Решил для проверки ее убрать и она стала указывать на следующую строку. То есть по факту дело не в самих переменных
Захожу на сервер, авторизуюсь, выбираю персонажа, переподключаюсь через ф1.
Все данные персонажей у меня хранятся в виде player.setVariable/getVariable. Жалуется он на таймер который обновляет те самые данные. Выглядит это так:
JavaScript:
setInterval(() => {
let nickname = player.getVariable('nickname')
let owner = player.getVariable('owner')
let hair = player.getVariable('hair')
let masks = player.getVariable('masks')
let torsos = player.getVariable('torsos')
let legs = player.getVariable('legs')
let bags = player.getVariable('bags')
let shoes = player.getVariable('shoes')
let accessories = player.getVariable('accessories')
let undershirts = player.getVariable('undershirts')
let armors = player.getVariable('armors')
let decals = player.getVariable('decals')
let tops = player.getVariable('tops')
let hats = player.getVariable('hats')
let glasses = player.getVariable('glasses')
let ears = player.getVariable('ears')
let watches = player.getVariable('watches')
let bracelets = player.getVariable('bracelets')
let sex = player.getVariable('sex')
let NoseWidth = player.getVariable('NoseWidth')
let NoseHeight = player.getVariable('NoseWidth')
let NoseLength = player.getVariable('NoseWidth')
let NoseBridge = player.getVariable('NoseWidth')
let NoseTip = player.getVariable('NoseWidth')
let NoseBridgeShift = player.getVariable('NoseWidth')
let BrowHeight = player.getVariable('NoseWidth')
let BrowWidth = player.getVariable('NoseWidth')
let CheekboneHeight = player.getVariable('NoseWidth')
let CheekboneWidth = player.getVariable('NoseWidth')
let CheeksWidth = player.getVariable('NoseWidth')
let Eyes = player.getVariable('NoseWidth')
let Lips = player.getVariable('NoseWidth')
let JawWidth = player.getVariable('NoseWidth')
let JawHeight = player.getVariable('NoseWidth')
let ChinLength = player.getVariable('NoseWidth')
let ChinPosition = player.getVariable('NoseWidth')
let ChinWidth = player.getVariable('NoseWidth')
let ChinShape = player.getVariable('NoseWidth')
let NeckWidth = player.getVariable('NoseWidth')
let level = player.getVariable('level')
let exp = player.getVariable('exp')
let maxexp = player.getVariable('maxexp')
let money = player.getVariable('money')
let bank = player.getVariable('bank')
let lastpos = player.getVariable('lastpos')
let fraction = player.getVariable('fraction')
let family = player.getVariable('family')
let dimension = player.getVariable('dimension')
player.call('hudRender', [maxexp, exp, level, money, bank]);
}, 1000)
Могу предположить что стоит сделать отдельный ивент с таймером который начинает работать после выбора персонажа, возможно, просто таймер начинает работу при подключении, но т.к. персонаж не выбран - данные ему взять неоткуда. На самом деле это очень сомнительные размышления. При краше ошибка указывает именно на первую строку в таймере. Решил для проверки ее убрать и она стала указывать на следующую строку. То есть по факту дело не в самих переменных