что то не так с LUA
Не работает сборщик мусора
"collect", "stop", "restart", "count", "step", "setpause", "setstepmul" !!!
print(collectgarbage("count"))
не работает, не показывает данные, как будто неверно, но редактор сохраняет нормально, в игре просто все что после любой функции связанной со сборщиком перестает воспроизводиться.
function()
print("1")
print(collectgarbage("count"))
print("2")
etc.....
end
По идее 1 выводит, а все что дальше зависает....

Лучший ответ:
В патче 1.32 ликвидировали ручной сборщик мусора

Чтобы увидеть ошибку можно использовать обертку
function savetyRun(func,...)
        local success, result = pcall(func, ...)
        if success then
            return result
        else
            print(result)
        end
end


Views: 346

XGM Bot #1 - 9 months ago 0
Голосов: +0 / -0
Похожие вопросы:

» ответ
Но как переписать код на луа как можно быстрее?
Можно достать из карты war3map.j и сконвертировать в lua. После доработки напильником вполне работоспособно))
» ответ
например как быть с ситуацией когда this или объект используется как число?
this часто используется как число, например для сохранения на хэндл таймера.

ИМХО, структуры вообще лучше переписать изначально на lua.
» ответ
Туториалов по lua в сети много, и Nazar регулярно добавляет наглядные примеры в наработки.

Nelloy #2 - 9 months ago (изм. ) 0
Голосов: +0 / -0

В патче 1.32 ликвидировали ручной сборщик мусора

Чтобы увидеть ошибку можно использовать обертку
function savetyRun(func,...)
        local success, result = pcall(func, ...)
        if success then
            return result
        else
            print(result)
        end
end
Pashka5 #3 - 9 months ago (изм. ) 0
Голосов: +0 / -0
Nelloy:
В патче 1.32 ликвидировали ручной сборщик мусора
Жаль, теперь не проверить свои собственные ошибки.....где и что засоряется....
ничего не поял и как мне этой функцией пользоваться?
Nelloy #4 - 9 months ago (изм. ) 0
Голосов: +0 / -0
Pashka5, немного упростил. Для того чтобы протестировать функцию, нужно вызвать savetyRun(функция, ее аргументы), тогда при получении ошибки она будет напечатана в чат. Если в последних патчах попробовать вызвать функцию collectgarbage, то получишь однозначный ответ, что ее не существует.
P.S. внутри pcall удобно использовать функцию error, про нее можно почитать в мануалах к луа

Например, savetyRun(collectgarbage, "collect")
Hate #5 - 9 months ago 0
Голосов: +0 / -0
Жаль, теперь не проверить свои собственные ошибки.....где и что засоряется....
это и не нужно