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

FooOoott

Потрачен
Автор темы
3,344
1,987
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Поскольку люди создают миллион тем с заголовком "Не работает мунлоадер" было решено создать эту тему.
Тут я разберу основные проблемы и как их убрать.

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

Для работы мунлоадера нужен лишь аси лоадер, не более. А вот у большинства скриптов есть зависимость от библиотек которые требуют наличия 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

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

Oreshka23

Известный
346
157
да не поможет этим людям даже в переводчик запихнуть это всё впадлу
 
  • Нравится
Реакции: Letovv

FooOoott

Потрачен
Автор темы
3,344
1,987
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
куча непонятной фигни,
Что именно не понятно.
берешь качаешь все библиотеки и плагины и все
Какие плагины? Как ты при помощи библиотек собрался фиксить ошибку где имгуи требует мунлоадер 026 и выше?
 

Dark.

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

FooOoott

Потрачен
Автор темы
3,344
1,987
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

FooOoott

Потрачен
Автор темы
3,344
1,987
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Nelit

Потрачен
257
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Брат, я не чайник, я кипятильник. Для меня гайд непригоден?(((
 

Nelit

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