Важно Информация Moonloader и lua скрипты - знакомство, установка и решение проблем

  • Гость, поучаствуй в создании лаунчера! Напиши те скрипты, которые считаешь базой для удобной игры. Принять участие!

Используешь Moonloader?

  • Да.

    Голосов: 302 75.7%
  • Нет, потому что не интересуюсь подобным.

    Голосов: 39 9.8%
  • Нет, потому что не смог установить.

    Голосов: 58 14.5%

  • Всего проголосовало
    399

Nishikinov

Младшая сестра
Автор темы
934
14,885
Разработчики:
FYP, hnnssy, EvgeN 1137

Официальная тема на бластхаке: https://blast.hk/threads/13305/

MoonLoader - это мод для игры GTA San Andreas, стремящийся стать полной современной заменой CLEO. Он вносит возможность загрузки Lua-скриптов в игру, имеет всю функциональность опкодов игры, библиотеки CLEO, плагина SAMPFUNCS и добавляет свой набор новых функций для разработки.
MoonLoader будет полезен как разработчикам, так и пользователям, не занимающимся разработкой. Поскольку Lua скрипты не требуют обязательной компиляции, каждый может изменить исходный код скрипта любым текстовым редактором. Например, можно поменять кнопку или команду для активации скрипта, совсем не умея программировать и не обращаясь за помощью. Кроме этого, MoonLoader можно загружать в уже запущенную игру с помощью любого инжектора, эта возможность может быть полезна тем, кто не хочет держать скрипты и сам плагин в директории игры. Нельзя не упомянуть, что стабильность Lua-скриптов на порядок выше, благодаря встроенным средствам скриптового движка и плагина, а также повышенному качеству разработки, что тоже играет важную роль для любого пользователя.
MoonLoader не зависит от наличия установленного CLEO, не зависит от мультиплеерной модификации SA:MP и плагина SAMPFUNCS (зависят только скрипты, использующие те или иные возможности), а также он совместим с любой версией CLEO, SA:MP и SAMPFUNCS.

Данная тема для тех, кто всегда хотел попробовать, но по каким-то причинам не делал этого. Или же для тех, кто один раз попробовал, но почему-то не получиось. Рекомендую перед знакомством с данной модификацией прочитать основную информацию, изложенную выше, а также ознакомиться с официальной темой на бластхаке.

Установка

Процесс установки муна довольно прост и не отличается совершенно ничем от установки любой другой программы или игры, вы указываете папку с гта, нажимаете далее, далее, далее. Есть лишь один нюанс, на который многие не обращают внимание, а зря.


При открытии установщика вас встретит данное окно с предложением установить некоторые штуки, сейчас расскажу почему это чрезвычайно важно и не только упростит дальнейшее использование муна, но и избавит от головных болей, связанных с ошибками в скриптах. Если вам лень читать о каждом компоненте, просто установите все, лишним точно не будет.

Скрипты



Хотя информация о каждом и так представлена в установщике, я помещу их описание тут.

Reload All - Нажмите Ctrl + R и все скрипты в папке moonloader перезагрузятся, применив все изменения.
Update Checker - Оповещает о выходе новой версии муна и предлагает ее загрузку.
Auto Reboot - Самый мощный скрипт по-моему мнению, автоматически перезагружает измененные вами скрипты в игре. Вы сворачиваетесь, пишете код, сохраняете и при разворачивании игры скрипт с вашим кодом активируется. Однако важно добавить, что он не загружает новые скрипты из папки, если вы добавили еще один файл, используйте Reload All чтобы загрузить его вначале.
SF Integration - Выводит содержимое файла moonloader.log в консоль SAMPFUNCS (если у вас он есть, а я крайне рекомендую его поставить). Таким образом намного упрощается отладка и вам не нужно постоянно проверять текстовик на наличие ошибок или вывода информации для дебага.

Модули и инструменты для разработчиков



MoonAdditions - тот же newOpcodes.cleo, только для луа. Добавляет огромное количество новых фишек и может использоваться в некоторых скриптах, обязательно стоит поставить.

SAMP.Lua - Без этой библиотеки многие скриптеры просто не представляют свою жизнь, в том числе и я, используется во многих скриптах. Если говорить понятным языком, она позволяет очень просто взаимодействовать с сетевой частью игры. Но при этом требует SAMPFUNCS.

Во вкладке инструменты для разработчиков присутствует расширение для Notepad++, которое упрощает работу с луа. Если вы планируете заниматься скриптингом, подробнее о нем и о других средах можно почитать на бластхаке.

Решение проблем
Все поставили, но почему-то не работает?
Мунлодер работает таким образом, что скрипты выполняются у всех одинаково и в более чем 90% случаев если вы скачиваете какой-то скрипт, то он функционирует должным образом по умолчанию, а проблема только на вашей стороне. Конечно, есть еще 10%, когда скриптер не учел какие-то моменты, но это бывает крайне редко. Есть два варианта:
1) У вас есть SAMPFUNCS и SF Integration, после входа в игру вы открываете консоль SF (~) и смотрите красный текст с ошибкой.
2) У вас нет SAMPFUNCS, после входа в игру вы сворачиваете ее, открываете moonloader/moonloader.log (расширение может не отображаться) и ищете там слово error (красного цвета в блокнот не завезли)

В муне не так много видов ошибок, их можно запомнить все и даже наверное пересчитать по пальцам, но большинство из них видят только скриптеры при разработке, а вот с готовым продуктом могут быть несколько видов проблем:

[13:41:36.394886] (system) Loading script 'D:\GTA San Andreas\moonloader\PameViewerV2.lua'...
[13:41:36.394886] (debug) New script: 01D0311C
[13:41:36.395883] (error) PameViewerV2: D:\GTA San Andreas\moonloader\PameViewerV2.lua:2: module 'lib.samp.events' not found:
no field package.preload['lib.samp.events']
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events.lua'
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events\init.lua'
no file 'D:\GTA San Andreas\moonloader\lib\samp\events.lua'
no file 'D:\GTA San Andreas\moonloader\lib\samp\events\init.lua'
no file '.\lib\samp\events.lua'
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events.luac'
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events\init.luac'
no file 'D:\GTA San Andreas\moonloader\lib\samp\events.luac'
no file 'D:\GTA San Andreas\moonloader\lib\samp\events\init.luac'
no file '.\lib\samp\events.luac'
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events.dll'
no file 'D:\GTA San Andreas\moonloader\lib\lib.dll'
stack traceback:
[C]: in function 'require'
D:\GTA San Andreas\moonloader\PameViewerV2.lua:2: in main chunk
[13:41:36.395883] (error) PameViewerV2: Script died due to an error. (01D0311C)

Примерно с таким текстом скрипт падает, юзер в панике пишет мне и говорит, что скрипт ну ведь не работает мой и с этим нужно что-то сделать.
Глазами находим главную мысль в ошибке module 'lib.samp.events' not found: и из этого мы можем понять, что скрипт не смог найти библиотеку SAMP.Lua, потому что 1) юзер не установил ее при установке муна 2) юзер неправильно установил ее из моего архива 3) да я все поставил, че не так то сука

Решением является установка библиотеки в правильную директорию, а именно в moonloader/lib. Причем в папке lib не должно быть еще одной папки lib, а ее содержимое должно быть помещено непосредственно в вашу папку с таким названием, то есть не moonloader/lib/lib/samp, а moonloader/lib/samp. (хотя судя по логу он ищет даже там..) Надеюсь, разницу поняли.
[/C]
[C]
(error) RPColor: D:\GTA San Andreas\moonloader\lib\samp\events\core.lua:23: samp.events requires SAMPFUNCS
(error) RPColor: Script died due to an error. (0F89383C)

Тут я думаю даже объяснять не особо и нужно, что данная либа требует SAMPFUNCS. И если его у вас нет, скрипт с использованием этой либы вы никак не запустите.

Мне лень искать скрины ошибки, но так бывает, что при запуске игры с сампфунксом или другими модами, вам говорят, что ваша версия игры не соответствует требуемой и люди задаются вопросом, а че делать то, неужели игру переустанавливать и перекачивать.

Да нет, всего-то нужно поставить другой файл gta_sa.exe по ссылке

Сейчас навскидку даже и не скажу какие еще могут быть проблемы, потому что мун это самая стабильная модификация для гта на моей памяти. Дополню данную тему позже, если вспомню про что-то еще или мне напомнят. Комментируйте, отвечу на все вопросы, касаемо луа и муна.[/c]
 
И

имел опыт с героином

достаточно инновационное решение, в своё время перевернуло скриптинг в этой игре
но вытеснить клео и сампфункс не получилось
 
  • Нравится
Реакции: evil0n0nxthing0else

Cocaine Blues

Новичок
2
21,033
Норм штука мунлоадер, начал им пользыватся благодаря Нишикову
 
Х

Холоп Божий

Дядь, подскажи, это своеобразная замена модлоадера, либо это чисто для луа и клео и надо его с модлоадером держать? А то я пожилой человек мне лень разбираться
 

Nishikinov

Младшая сестра
Автор темы
934
14,885
Дядь, подскажи, это своеобразная замена модлоадера, либо это чисто для луа и клео и надо его с модлоадером держать? А то я пожилой человек мне лень разбираться
Лень разбираться, не разбирайся. Я привел достаточно информации в теме.
 
Х

Холоп Божий

Я надеюсь что когда ты попросишь своего друга сделать тебе тяночку для игры цивила в сампике - он тебе начнет ебать мозги за велды хуелды маппинги риггинги и прочую хуйню
 

Nishikinov

Младшая сестра
Автор темы
934
14,885
минус уважение топикстартеру, максимально непорядочный человек и фейковый анимешник, не уважает ветеранов отрасли
Я потратил время и собрал воедино всю информацию, чтобы даже отбитый самповские овощь прочитав, смог установить и пользоваться передовыми разработками (моими) в сфере самп скриптинга. Почему 95% прочитали текст, а ты посчитал, что тебе это не нужно делать. Я оставил ссылку на официальную тему с муном на бх, открыв её, ты узнаешь ответ на абсолютно любой свой вопрос про мунлодер. Или можешь забить хуй и спросить саппортов в вопрос-ответ, они нанимались отвечать на глупые вопросы.
 

Nishikinov

Младшая сестра
Автор темы
934
14,885
Я надеюсь что когда ты попросишь своего друга сделать тебе тяночку для игры цивила в сампике - он тебе начнет ебать мозги за велды хуелды маппинги риггинги и прочую хуйню
Кого ты напугать собрался. Будь у меня в сутках 48 часов вместо 24, я бы и модели делал и ебался со всякими риггингами и маппингами, но увы, тут что-то одно приходится выбирать.
 

Sorrentino

Новичок
44
8,425
Я могу показаться максимально бестактным, но я нихуя не могу установить мунлоадер совместно с РП никами и быстрым просмотром описания персонажей.
  • Устанавливаю мунлоадер; ставлю галочки в пунктах скрипты и модули;
  • Перекидываю .lua файлы скриптов в папку мунлоадера (не в папку moonloader/lib, а просто moonloader);
  • Захожу в игру, но у меня зависает окно СА-МПа на этапе загрузки; дальше выхожу через диспетчер задач. В логах ошибку пишет ту, которую ты вывил в самом первом случае (ниже цитата).
[13:41:36.394886] (system) Loading script 'D:\GTA San Andreas\moonloader\PameViewerV2.lua'...
[13:41:36.394886] (debug) New script: 01D0311C
[13:41:36.395883] (error) PameViewerV2: D:\GTA San Andreas\moonloader\PameViewerV2.lua:2: module 'lib.samp.events' not found:
no field package.preload['lib.samp.events']
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events.lua'
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events\init.lua'
no file 'D:\GTA San Andreas\moonloader\lib\samp\events.lua'
no file 'D:\GTA San Andreas\moonloader\lib\samp\events\init.lua'
no file '.\lib\samp\events.lua'
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events.luac'
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events\init.luac'
no file 'D:\GTA San Andreas\moonloader\lib\samp\events.luac'
no file 'D:\GTA San Andreas\moonloader\lib\samp\events\init.luac'
no file '.\lib\samp\events.luac'
no file 'D:\GTA San Andreas\moonloader\lib\lib\samp\events.dll'
no file 'D:\GTA San Andreas\moonloader\lib\lib.dll'
stack traceback:
: in function 'require'
D:\GTA San Andreas\moonloader\PameViewerV2.lua:2: in main chunk
[13:41:36.395883] (error) PameViewerV2: Script died due to an error. (01D0311C)

Примерно с таким текстом скрипт падает, юзер в панике пишет мне и говорит, что скрипт ну ведь не работает мой и с этим нужно что-то сделать.
Глазами находим главную мысль в ошибке module 'lib.samp.events' not found: и из этого мы можем понять, что скрипт не смог найти библиотеку SAMP.Lua, потому что 1) юзер не установил ее при установке муна 2) юзер неправильно установил ее из моего архива 3) да я все поставил, че не так то сука

Решением является установка библиотеки в правильную директорию, а именно в moonloader/lib. Причем в папке lib не должно быть еще одной папки lib, а ее содержимое должно быть помещено непосредственно в вашу папку с таким названием, то есть не moonloader/lib/lib/samp, а moonloader/lib/samp. (хотя судя по логу он ищет даже там..) Надеюсь, разницу поняли.


Не подскажете? Сампфанкс установлен.
 

Nishikinov

Младшая сестра
Автор темы
934
14,885
Личности выше отправляются в школу учиться читать. Потому что писать гневные сообщения они каким-то чудом научились, а вот раскрыть глаза и получить информацию из текста, видимо ещё нет.
 

Sorrentino

Новичок
44
8,425
Я так понимаю ты меня тоже посылаешь нахуй вместо того, чтобы разобраться?
 

Sorrentino

Новичок
44
8,425
Решением является установка библиотеки в правильную директорию, а именно в moonloader/lib. Причем в папке lib не должно быть еще одной папки lib, а ее содержимое должно быть помещено непосредственно в вашу папку с таким названием, то есть не moonloader/lib/lib/samp, а moonloader/lib/samp. (хотя судя по логу он ищет даже там..) Надеюсь, разницу поняли.
Я так понял ты здесь имеешь ввиду:
Переустановить мунлоадер в папку *путь к папке с GTA*/moonloader/lib;
Если в папке lib появится ещё одна такая же - содержимое перекинуть в lib №1;
Типа так?
 

Nishikinov

Младшая сестра
Автор темы
934
14,885
Я так понял ты здесь имеешь ввиду:
Переустановить мунлоадер в папку *путь к папке с GTA*/moonloader/lib;
Если в папке lib появится ещё одна такая же - содержимое перекинуть в lib №1;
Типа так?
Где ты увидел фразу "переустановить мунлодер"? Библиотеку в папку lib нужно скинуть.