- 325
- 260
Всех приветствую. Недавно мы с @kyrtion задались вопросом , как можно перезагружать скрипты RakSamp Lite, ведь runCommand('!reloadlua') просто крашит программу.
Прошерстив весь интернет, облазив много сайтов , и в итоге потратив на это два дня упорной работы - мы не нашли практически ничего, кроме этого способа( мы его сделали сами. ). То есть, программа полностью не перезагружается, а с помощью сборщика мусора( collectgarbage ) останавливается( но не останавливает потоки ) , после чего мы очищаем все потоки( clearTasks(), нужен 'addon' ), и подгружаем наш скрипт заново.
По сути , это рабочий метод в нынешней ситуации.
Также я решил дополнить нашу "библиотеку" функцией thisScript() ( как из moonloader ).
Ниже прикрепил "библиотеку".
Хватит спать, давайте хейт.
Мы пробовали различные способы, даже подключали ffi. Но, всё не неудачно.
UPD. Забыл подключить addon в файл.
Прошерстив весь интернет, облазив много сайтов , и в итоге потратив на это два дня упорной работы - мы не нашли практически ничего, кроме этого способа( мы его сделали сами. ). То есть, программа полностью не перезагружается, а с помощью сборщика мусора( collectgarbage ) останавливается( но не останавливает потоки ) , после чего мы очищаем все потоки( clearTasks(), нужен 'addon' ), и подгружаем наш скрипт заново.
По сути , это рабочий метод в нынешней ситуации.
Также я решил дополнить нашу "библиотеку" функцией thisScript() ( как из moonloader ).
Ниже прикрепил "библиотеку".
Lua:
require('thisScriptRakSamp')
script_name('MyNewScriptName')
script_version('1.0')
print(thisScript().name, thisScript().version)
function onRunCommand(cmd)
if cmd:find('^!newreloadlua') then
reload()
end
end
Мы пробовали различные способы, даже подключали ffi. Но, всё не неудачно.