Информация [RakSamp Lite] Подобие перезагрузки скрипта.

tfornik

Известный
Автор темы
309
222
Всех приветствую. Недавно мы с @kyrtion задались вопросом , как можно перезагружать скрипты RakSamp Lite, ведь runCommand('!reloadlua') просто крашит программу.
Прошерстив весь интернет, облазив много сайтов , и в итоге потратив на это два дня упорной работы - мы не нашли практически ничего, кроме этого способа( мы его сделали сами. ). То есть, программа полностью не перезагружается, а с помощью сборщика мусора( 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. Но, всё не неудачно.


MpchDNZBBN0.jpg
UPD. Забыл подключить addon в файл.
 

Вложения

  • thisScriptRakSamp.lua
    506 байт · Просмотры: 49

why ega

РП игрок
Модератор
2,548
2,239
Всех приветствую. Недавно мы с @kyrtion задались вопросом , как можно перезагружать скрипты RakSamp Lite, ведь runCommand('!reloadlua') просто крашит программу.
Прошерстив весь интернет, облазив много сайтов , и в итоге потратив на это два дня упорной работы - мы не нашли практически ничего, кроме этого способа( мы его сделали сами. ). То есть, программа полностью не перезагружается, а с помощью сборщика мусора( 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. Но, всё не неудачно.


MpchDNZBBN0.jpg
UPD. Забыл подключить addon в файл.
используя строку local table = {} ты автоматом очищаешь все методы стандартной библиотеки table. Поэтому не стоит создавать ничего с неймами string, table, math, utf8 и прочих библиотек, которые идут по стандарту в луащке
 

tfornik

Известный
Автор темы
309
222
используя строку local table = {} ты автоматом очищаешь все методы стандартной библиотеки table. Поэтому не стоит создавать ничего с неймами string, table, math, utf8 и прочих библиотек, которые идут по стандарту в луащке
хд
Только щас понял

upd. исправил проблему
 
Последнее редактирование:
  • Вау
Реакции: why ega