Попытка вызвать ошибку значения таблицы в студии Roblox

У меня проблема с игрой, которую я кодирую на Roblox. По сути, игра прерывается, когда персонаж возрождается.

У меня есть серверный скрипт, в котором определенные платформы «оцениваются», а затем сохраняются в таблице. В этом серверном скрипте у меня есть функция, которая, когда игрок набирает очки, запускает событие для всех клиентов, обновляющих эту таблицу. В моем локальном скрипте я сохраняю полученную таблицу в локальную таблицу, по которой локальный скрипт проверяет, доступна ли платформа. Все работает до возрождения. При возрождении локальная таблица пуста. Я пытаюсь исправить это с помощью удаленной функции, которая проверяет возрождение, если в таблице в сценарии на стороне сервера что-то есть.

У меня проблема в том, что теперь, когда игра запускается и никто еще не набрал очков, локальный скрипт проверяет, есть ли что-то в таблице, и, поскольку таблица пуста, я получаю сообщение об ошибке. Моя очередь:

local platsScored = FetchTableOfPlatsScored:InvokeServer()

ошибка:

attempt to call a table value

Вместо этого я попытался сделать что-то вроде этого:

if FetchTableOfPlatsScored:InvokeServer() then 
    platsScored = FetchTableOfPlatsScored:InvokeServer() 
else platsScored = {} 
end

Что, по моей логике, проверяет, есть ли что-то в таблице, и, если есть, загружает это в локальную таблицу, а если нет, устанавливает таблицу. Это дает мне ту же ошибку. Итак, мой вопрос: во что мне обернуть удаленную функцию сервера вызова, чтобы не получить сообщение об ошибке, если таблица пуста.

Другое решение, которое я пробовал, - это сценарий на стороне сервера для изменения функции:

local function passTable()
    return platsScored

end

FetchTableOfPlatsScored.OnServerInvoke = passTable()

к чему-то вроде

local function passTable()
    if platsScored ~= nil then
       return platsScored
    else
    ** what do I write here that won't break the code*
end

person Paul    schedule 25.01.2020    source источник
comment
Ошибка "попытка вызвать значение таблицы" исходит от FetchTableOfPlatsScored? Указывает ли FetchTableOfPlatsScored на объект RemoteFunction? Кроме того, как platsScored объявляется в скрипте вашего сервера? Вы для начала создаете его как пустую таблицу?   -  person Kylaaa    schedule 25.01.2020
comment
Привет, спасибо за проявленный интерес. Да, это так. Полагаю, мой вопрос в том, когда вы используете удаленную функцию, например: local platsScored = FetchTableOfPlatsScored: InvokeServer (). Есть ли способ заставить Studio принимать nil, если ничего не возвращается? Кроме того, вот ссылка на другой вопрос со ссылкой на игру, если вам интересно: stackoverflow.com/questions/59911595/. огромное спасибо   -  person Paul    schedule 25.01.2020