Совет Универсальный гайд для чайников «Как починить неработоспособность lua скриптов»

Fott

Простреленный
Автор темы
3,461
2,377
Поскольку люди создают миллион тем с заголовком "Не работает мунлоадер" было решено создать эту тему.
Тут я разберу основные проблемы и как их убрать.

Что надо для работы мунлоадера?​

Для работы мунлоадера нужен лишь аси лоадер, не более. А вот у большинства скриптов есть зависимость от библиотек которые требуют наличия SAMPFUNCS. Либо же содержат функции которые требуют наличия SAMPFUNCS. SAMPFUNCS это дополнение к библиотеке CLEO 4, соответственно нам еще и клео надо.
Где же все его взять?
Cleo
- https://cleo.li/ru
SAMPFUNCS(R1) - https://www.blast.hk/threads/17/
SAMPFUNCS(R3) - https://www.blast.hk/threads/65247/
Moonloader - https://www.blast.hk/threads/13305/

1.Отсутствие какой-либо библиотеки.​

Ошибка выглядит следующим образом.
moonloader.log:
(error)    *НАЗВАНИЕ ФАЙЛА*.lua: ...*НАЗВАНИЕ СБОРКИ*\moonloader\*НАЗВАНИЕ ФАЙЛА*.lua:*НОМЕР СТРОКИ С ОШИБКОЙ*: module '*НАЗВАНИЕ БИБЛИОТЕКИ*' not found:    no field package.preload['*НАЗВАНИЕ БИБЛИОТЕКИ*']
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\lib\*НАЗВАНИЕ БИБЛИОТЕКИ*.lua'
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\lib\*НАЗВАНИЕ БИБЛИОТЕКИ*\init.lua'
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\*НАЗВАНИЕ БИБЛИОТЕКИ*.lua'
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\*НАЗВАНИЕ БИБЛИОТЕКИ*\init.lua'
    no file '.\*НАЗВАНИЕ БИБЛИОТЕКИ*.lua'
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\lib\*НАЗВАНИЕ БИБЛИОТЕКИ*.luac'
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\lib\*НАЗВАНИЕ БИБЛИОТЕКИ*\init.luac'
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\*НАЗВАНИЕ БИБЛИОТЕКИ*.luac'
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\*НАЗВАНИЕ БИБЛИОТЕКИ*\init.luac'
    no file '.\*НАЗВАНИЕ БИБЛИОТЕКИ*.luac'
    no file '*ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\lib\*НАЗВАНИЕ БИБЛИОТЕКИ*.dll'
stack traceback:
    [C]: in function 'require'
    ...HACK\moonloader\*НАЗВАНИЕ СКРИПТА*:*НОМЕР СТРОКИ С ОШИБКОЙ*: in main chunk
(error)    *НАЗВАНИЕ СКРИПТА*.lua: Script died due to an error. (*код который не надо*)
Если вы видите строку
Lua:
module '*НАЗВАНИЕ БИБЛИОТЕКИ*' not found:
то это однозначно говорит вам что у вас нету определенной библиотеки. Рассмотрим реальный пример который я взял из темы чела ниже.
moonloader.log:
(error)    bypasser_2.lua: ...s\Emil\Desktop\GTA BY SAMPHACK\moonloader\bypasser_2.lua:2: module 'neatjson' not found:    no field package.preload['neatjson']
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\lib\neatjson.lua'
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\lib\neatjson\init.lua'
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\neatjson.lua'
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\neatjson\init.lua'
    no file '.\neatjson.lua'
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\lib\neatjson.luac'
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\lib\neatjson\init.luac'
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\neatjson.luac'
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\neatjson\init.luac'
    no file '.\neatjson.luac'
    no file 'C:\Users\Emil\Desktop\GTA BY SAMPHACK\moonloader\lib\neatjson.dll'
stack traceback:
    [C]: in function 'require'
    ...s\Emil\Desktop\GTA BY SAMPHACK\moonloader\bypasser_2.lua:2: in main chunk
(error)    bypasser_2.lua: Script died due to an error. (0F5F60BC)
Тут нам мунлоадер даёт понять что он не может найти библиотеку neatjson.lua, а это значит что её нету.
Как решить? Скачать и установить её в папку lib.

2. Несовместимый байт-код​

Рассмотрим следующую проблему. Вы посмотрели свой лог по первом пункте и ничего такого там не обнаружили. Это может быть не состыковка версий. Посмотрим как это выглядит.
Lua:
(error) *НАЗВАНИЕ ФАЙЛА*.lua: *ПУТЬ К СБОРКЕ*\*НАЗВАНИЕ СБОРКИ*\moonloader\*НАЗВАНИЕ ФАЙЛА*.lua: cannot load incompatible bytecode
(error) *НАЗВАНИЕ ФАЙЛА*.lua: Script died due to an error. (*код который не над*)
Если у вас есть мозг либо вы не спали на уроках английского в школе, то вы уже поймете в чем проблема. Но я все же объясню. Мы видим строку
Lua:
cannot load incompatible bytecode
Что же это значит? А то, что мунлоадер не может загрузить несовместимый байт-код. Что это я такое сморозил? Все просто. Ваш скрипт скомпилирован под другую версию мунлоадера. Пример: автор скомпилировал скрипт под 025 мунлоадер, на то время актуальный, но вот вышел 026 и все его используют, но скрипт уже на нем работать не будет, так как не та версия.
Как решить? У вас есть 2 варианта.
  1. Написать автору скрипта, чтобы он скомпилировал скрипт под новую версию муна.
  2. Конвертировать самому. https://www.blast.hk/threads/35380/ вам в помощь.

3. Отсутствие SAMPFUNCS

Такое тоже бывает, это может быть из-за отсутствия SAMPFUNCS. То есть библиотека просит сф, а его нету.
Ошибка выглядит следующим образом:
Lua:
(error)    *НАЗВАНИЕ СКРИПТА*: ... *ПУТЬ К БИБЛИОТЕКЕ*: *БИБЛИОТЕКА* requires SAMPFUNCS
stack traceback:
    [C]: in function 'assert'
    ... *ПУТЬ К БИБЛИОТЕКЕ*: in main chunk
    [C]: in function 'require'
    ...*ПУТЬ К БИБЛИОТЕКЕ* : in main chunk
    [C]: in function 'require'
   *ПУТЬ К СБОРКЕ**НАЗВАНИЕ СКРИПТА*.lua: in function  *ПУТЬ К СБОРКЕ**НАЗВАНИЕ СКРИПТА*.lua:>
Рассмотрим на примере. Попытаемся загрузить samp.events без SAMPFUNCS.
Lua:
(error)    Admin Tools: ... Andreas MultiPlayer\moonloader\lib\samp\events\core.lua:23: samp.events requires SAMPFUNCS
stack traceback:
    [C]: in function 'assert'
    ... Andreas MultiPlayer\moonloader\lib\samp\events\core.lua:23: in main chunk
    [C]: in function 'require'
    ...A San Andreas MultiPlayer\moonloader\lib\samp\events.lua:8: in main chunk
    [C]: in function 'require'
    E:\GTA San Andreas MultiPlayer\moonloader\Admin Tools.luac: in function <E:\GTA San Andreas MultiPlayer\moonloader\Admin Tools.luac:0>
Если вставить в переводчик строку samp.events requires SAMPFUNCS будет все понятно.
Как решить? Установить SAMPFUNCS и Cleo из ссылок в начале темы

4. Ошибка Moon ImGui​

Может возникнуть ошибка и с Moon ImGui. Возникает она когда версия мунлоадера ниже 026. Рассмотрим её вид:
Lua:
(error)    *ПУТЬ К БИБЛИОТЕКЕ*:*СРОКА С ОШИБКОЙ*: Moon ImGui requires MoonLoader v.026 or greater.
stack traceback:
    [C]: in function 'assert'
    *ПУТЬ К БИБЛИОТЕКЕ*:*СБОРКА С ОШИБКОЙ* : in main chunk
    [C]: in function 'require'
    ...*ПУТЬ К СБОРКЕ*\moonloader\*НАЗВАНИЕ СКРИПТА*.lua: in function <...*ПУТЬ К СБОРКЕ*\moonloader\*НАЗВАНИЕ СКРИПТА*.lua:0>
Посмотрим на пример:
Lua:
(error)    X:\Games\ARIZONA GAMES\bin\Arizona\moonloader\lib\imgui.lua:4: Moon ImGui requires MoonLoader v.026 or greater.
stack traceback:
    [C]: in function 'assert'
    X:\Games\ARIZONA GAMES\bin\Arizona\moonloader\lib\imgui.lua:4: in main chunk
    [C]: in function 'require'
    ...ames\ARIZONA GAMES\bin\Arizona\moonloader\MHManager.luac: in function <...ames\ARIZONA GAMES\bin\Arizona\moonloader\MHManager.luac:0>
Тут moonloader говорит нам что Moon ImGui требует MoonLoader v.026 или выше.
Как решить? Установить moonloader 026/027 из ссылки в начале теме.

5. Отсутствие шрифта​

Может возникнуть ошибка с загрузкой шрифта, например для имгуи. Она возникает если у вас в системе нету данного шрифта. Рассмотрим ошибку
Lua:
*НАЗВАНИЕ СКРИПТА*: *ПУТЬ К ФАЙЛУ**ФАЙЛ*.lua:*НОМЕР СТРОКИ*: WTF: Font "*ПУТЬ К ШРИФТУ*\*НАЗВАНИЕ ШРИФТА*.ttf" doesn't exist
stack traceback:
    [C]: in function 'assert'
  *НАЗВАНИЕ СКРИПТА*: *ПУТЬ К ФАЙЛУ**ФАЙЛ*.lua:*НОМЕР СТРОКИ*: in function '*ФУНКЦИЯ*'
    *НАЗВАНИЕ СКРИПТА*: *ПУТЬ К ФАЙЛУ**ФАЙЛ*.lua:*НОМЕР СТРОКИ*: in function *НАЗВАНИЕ СКРИПТА*: *ПУТЬ К ФАЙЛУ**ФАЙЛ*.lua:*НОМЕР СТРОКИ*
Посмотрим на пример:
Lua:
Moon ImGui Example: D:\Гусиная Сборка\moonloader\lib\imgui.lua:1344: WTF: Font "C:\Windows\Fonts\trebucbd.ttf" doesn't exist
stack traceback:
    [C]: in function 'assert'
    D:\Гусиная Сборка\moonloader\lib\imgui.lua:1344: in function 'load_default_font'
    D:\Гусиная Сборка\moonloader\lib\imgui.lua:1370: in function <D:\Гусиная Сборка\moonloader\lib\imgui.lua:1367>
Как решить? Установить недостающий шрифт в C:\Windows\Fonts

p.s: Если я что-то забыл - напишите добавлю
 
Последнее редактирование модератором:

Yondime

кавайчик
Проверенный
308
523
Спс за помощь, теперь не буду создавать темы и спрашивать почему не работает!
 

Fott

Простреленный
Автор темы
3,461
2,377
куча непонятной фигни,
Что именно не понятно.
берешь качаешь все библиотеки и плагины и все
Какие плагины? Как ты при помощи библиотек собрался фиксить ошибку где имгуи требует мунлоадер 026 и выше?
 

Dark.

Известный
1,745
778
Я бы сюда добавил готовый 0.26 мл, со всеми либами (как минимум популярными) в виде архива, который надо разархивировать с заменой.
 

Nelit

Потрачен
252
39
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Брат, я не чайник, я кипятильник. Для меня гайд непригоден?(((
 
  • Bug
  • Нравится
Реакции: Fott и mishanyasesshomaru

Nelit

Потрачен
252
39
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

papapepegemabodi

Потрачен
91
7
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а че делать если не работают команды скрептов moonloader типо /baran а на клавиатуре все норм типо rapid вбил на клаве и он включился
 
  • Клоун
Реакции: minxty и GRACHOVE