Не запускается самп ошибка moonloader

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

Поскольку люди создают миллион тем с заголовком «Не работает мунлоадер» было решено создать эту тему.
Тут я разберу основные проблемы и как их убрать.

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

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

Ошибка выглядит следующим образом.

(error)    *НАЗВАНИЕ ФАЙЛА*.lua: ...*НАЗВАНИЕ СБОРКИ*moonloader*НАЗВАНИЕ ФАЙЛА*.lua:*НОМЕР СТРОКИ С ОШИБКОЙ*: module '*НАЗВАНИЕ БИБЛИОТЕКИ*' not found:    no field package.preload['*НАЗВАНИЕ БИБЛИОТЕКИ*']
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloaderlib*НАЗВАНИЕ БИБЛИОТЕКИ*.lua'
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloaderlib*НАЗВАНИЕ БИБЛИОТЕКИ*init.lua'
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloader*НАЗВАНИЕ БИБЛИОТЕКИ*.lua'
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloader*НАЗВАНИЕ БИБЛИОТЕКИ*init.lua'
    no file '.*НАЗВАНИЕ БИБЛИОТЕКИ*.lua'
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloaderlib*НАЗВАНИЕ БИБЛИОТЕКИ*.luac'
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloaderlib*НАЗВАНИЕ БИБЛИОТЕКИ*init.luac'
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloader*НАЗВАНИЕ БИБЛИОТЕКИ*.luac'
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloader*НАЗВАНИЕ БИБЛИОТЕКИ*init.luac'
    no file '.*НАЗВАНИЕ БИБЛИОТЕКИ*.luac'
    no file '*ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloaderlib*НАЗВАНИЕ БИБЛИОТЕКИ*.dll'
stack traceback:
    [C]: in function 'require'
    ...HACKmoonloader*НАЗВАНИЕ СКРИПТА*:*НОМЕР СТРОКИ С ОШИБКОЙ*: in main chunk
(error)    *НАЗВАНИЕ СКРИПТА*.lua: Script died due to an error. (*код который не надо*)

Если вы видите строку

module '*НАЗВАНИЕ БИБЛИОТЕКИ*' not found:

то это однозначно говорит вам что у вас нету определенной библиотеки. Рассмотрим реальный пример который я взял из темы чела ниже.

(error)    bypasser_2.lua: ...sEmilDesktopGTA BY SAMPHACKmoonloaderbypasser_2.lua:2: module 'neatjson' not found:    no field package.preload['neatjson']
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderlibneatjson.lua'
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderlibneatjsoninit.lua'
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderneatjson.lua'
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderneatjsoninit.lua'
    no file '.neatjson.lua'
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderlibneatjson.luac'
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderlibneatjsoninit.luac'
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderneatjson.luac'
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderneatjsoninit.luac'
    no file '.neatjson.luac'
    no file 'C:UsersEmilDesktopGTA BY SAMPHACKmoonloaderlibneatjson.dll'
stack traceback:
    [C]: in function 'require'
    ...sEmilDesktopGTA BY SAMPHACKmoonloaderbypasser_2.lua:2: in main chunk
(error)    bypasser_2.lua: Script died due to an error. (0F5F60BC)

Тут нам мунлоадер даёт понять что он не может найти библиотеку neatjson.lua, а это значит что её нету.
Как решить? Скачать и установить её в папку lib.

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

Рассмотрим следующую проблему. Вы посмотрели свой лог по первом пункте и ничего такого там не обнаружили. Это может быть не состыковка версий. Посмотрим как это выглядит.

(error) *НАЗВАНИЕ ФАЙЛА*.lua: *ПУТЬ К СБОРКЕ**НАЗВАНИЕ СБОРКИ*moonloader*НАЗВАНИЕ ФАЙЛА*.lua: cannot load incompatible bytecode
(error) *НАЗВАНИЕ ФАЙЛА*.lua: Script died due to an error. (*код который не над*)

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

cannot load incompatible bytecode

Что же это значит? А то, что мунлоадер не может загрузить несовместимый байт-код. Что это я такое сморозил? Все просто. Ваш скрипт скомпилирован под другую версию мунлоадера. Пример: автор скомпилировал скрипт под 025 мунлоадер, на то время актуальный, но вот вышел 026 и все его используют, но скрипт уже на нем работать не будет, так как не та версия.
Как решить? У вас есть 2 варианта.

  1. Написать автору скрипта, чтобы он скомпилировал скрипт под новую версию муна.
  2. Конвертировать самому. https://www.blast.hk/threads/35380/ вам в помощь.

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

Такое тоже бывает, это может быть из-за отсутствия SAMPFUNCS. То есть библиотека просит сф, а его нету.
Ошибка выглядит следующим образом:

(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.

(error)    Admin Tools: ... Andreas MultiPlayermoonloaderlibsampeventscore.lua:23: samp.events requires SAMPFUNCS
stack traceback:
    [C]: in function 'assert'
    ... Andreas MultiPlayermoonloaderlibsampeventscore.lua:23: in main chunk
    [C]: in function 'require'
    ...A San Andreas MultiPlayermoonloaderlibsampevents.lua:8: in main chunk
    [C]: in function 'require'
    E:GTA San Andreas MultiPlayermoonloaderAdmin Tools.luac: in function <E:GTA San Andreas MultiPlayermoonloaderAdmin Tools.luac:0>

Если вставить в переводчик строку samp.events requires SAMPFUNCS будет все понятно.
Как решить? Установить SAMPFUNCS и Cleo из ссылок в начале темы

4. Ошибка Moon ImGui​

Может возникнуть ошибка и с Moon ImGui. Возникает она когда версия мунлоадера ниже 026. Рассмотрим её вид:

(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>

Посмотрим на пример:

(error)    X:GamesARIZONA GAMESbinArizonamoonloaderlibimgui.lua:4: Moon ImGui requires MoonLoader v.026 or greater.
stack traceback:
    [C]: in function 'assert'
    X:GamesARIZONA GAMESbinArizonamoonloaderlibimgui.lua:4: in main chunk
    [C]: in function 'require'
    ...amesARIZONA GAMESbinArizonamoonloaderMHManager.luac: in function <...amesARIZONA GAMESbinArizonamoonloaderMHManager.luac:0>

Тут moonloader говорит нам что Moon ImGui требует MoonLoader v.026 или выше.
Как решить? Установить moonloader 026/027 из ссылки в начале теме.

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

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

*НАЗВАНИЕ СКРИПТА*: *ПУТЬ К ФАЙЛУ**ФАЙЛ*.lua:*НОМЕР СТРОКИ*: WTF: Font "*ПУТЬ К ШРИФТУ**НАЗВАНИЕ ШРИФТА*.ttf" doesn't exist
stack traceback:
    [C]: in function 'assert'
  *НАЗВАНИЕ СКРИПТА*: *ПУТЬ К ФАЙЛУ**ФАЙЛ*.lua:*НОМЕР СТРОКИ*: in function '*ФУНКЦИЯ*'
    *НАЗВАНИЕ СКРИПТА*: *ПУТЬ К ФАЙЛУ**ФАЙЛ*.lua:*НОМЕР СТРОКИ*: in function *НАЗВАНИЕ СКРИПТА*: *ПУТЬ К ФАЙЛУ**ФАЙЛ*.lua:*НОМЕР СТРОКИ*

Посмотрим на пример:

Moon ImGui Example: D:Гусиная Сборкаmoonloaderlibimgui.lua:1344: WTF: Font "C:WindowsFontstrebucbd.ttf" doesn't exist
stack traceback:
    [C]: in function 'assert'
    D:Гусиная Сборкаmoonloaderlibimgui.lua:1344: in function 'load_default_font'
    D:Гусиная Сборкаmoonloaderlibimgui.lua:1370: in function <D:Гусиная Сборкаmoonloaderlibimgui.lua:1367>

Как решить? Установить недостающий шрифт в C:WindowsFonts

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

Содержание

  1. Проверьте наличие всех необходимых файлов
  2. Установите последнюю версию Moonloader
  3. Проверьте наличие конфликтных модификаций
  4. Ошибки директории: проверьте наличие и расположение файлов и папок
  5. Проверьте наличие подключенного SAMPFUNCS
  6. Вопрос-ответ
  7. Почему Moonloader не запускается в SAMP?
  8. Какая версия Moonloader подходит для моего SAMP?
  9. Как подключить библиотеки в Moonloader?
  10. Moonloader не работает на Windows 10, как исправить?
  11. Как сделать автозапуск скриптов в Moonloader?

Существует множество способов повысить удобство игры в SAMP, но использование Moonloader является одним из лучших. Этот инструмент добавляет дополнительные функции в игровой процесс, такие как модификация, графические модификации и другие улучшения, которые делают игру еще более увлекательной.

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

В этой статье мы рассмотрим 5 простых и эффективных способов, которые помогут вам запустить Moonloader и наслаждаться всеми его преимуществами в полной мере.

Наши рекомендации могут быть полезны как новичкам, так и опытным игрокам, которые сталкиваются с проблемами при использовании Moonloader. Следуйте нашим советам и вы сможете наслаждаться игрой в SAMP вместе с Moonloader безо всяких сложностей.

Проверьте наличие всех необходимых файлов

В случае, если Moonloader не запускается в SAMP, первым делом необходимо проверить наличие необходимых файлов.

Проверьте наличие файла Moonloader.dll в папке SAMP. Если этого файла нет, попробуйте скачать его с официального сайта Moonloader и поместить в папку SAMP.

Также убедитесь, что в папке Moonloader (находится в папке SAMP) находятся необходимые библиотеки: plugins, config и scripts. Если какой-то из этих папок отсутствует, создайте его вручную.

Если все необходимые файлы на месте, проверьте их целостность. Может быть, некоторые из файлов были повреждены или удалены. Для этого можно попробовать переустановить Moonloader.

Также стоит убедиться, что файлы не заблокированы антивирусным ПО или системой безопасности операционной системы.

Один из наиболее распространенных способов решения проблем с запуском Moonloader в SAMP — установка последней версии данной библиотеки. Новые версии могут содержать исправления ошибок и улучшения в работе, которые могут помочь решить текущую проблему.

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

Обратите внимание на то, что при установке новой версии Moonloader могут измениться некоторые функции или требования к системе. Поэтому перед установкой лучше прочитать описание версии и убедиться, что ваша система соответствует требованиям.

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

В целом, установка последней версии Moonloader — это простой и эффективный способ решения многих проблем с запуском данной библиотеки в SAMP. Если после установки проблемы сохраняются, рекомендуется обратиться к разработчикам или сообществу для получения дополнительной поддержки.

Проверьте наличие конфликтных модификаций

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

Проверьте список установленных модификаций и убедитесь, что они не конфликтуют с Moonloader.

Если вы не можете определить, какая модификация может вызывать проблемы, попробуйте временно удалить все модификации и запустить SAMP только с Moonloader.

Если Moonloader начнет работать правильно, то проблема действительно связана с конфликтами модификаций.

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

Ошибки директории: проверьте наличие и расположение файлов и папок

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

Для начала, убедитесь, что у вас установлена последняя версия Moonloader и она совместима с версией SAMP, которую вы используете.

Затем, проверьте наличие необходимых файлов и папок в правильных директориях. Все файлы и папки должны быть расположены в одной директории с sa-mp.exe, а именно в корневой папке игры.

Убедитесь, что у вас есть файл moonloader.asi и папка moonloader в корневой папке игры. Если какой-то из этих файлов отсутствует, попробуйте переустановить Moonloader.

Кроме того, проверьте наличие необходимых библиотек и плагинов, которые могут быть необходимы для работы Moonloader. Убедитесь, что они расположены в правильной директории и правильно подключены в конфигурационном файле

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

Проверьте наличие подключенного SAMPFUNCS

Часто Moonloader не запускается из-за отсутствия подключенного SAMPFUNCS. Эта библиотека расширяет возможности SAMP и многие скрипты для Moonloader используют ее функции.

Проверьте, установлена ли версия SAMPFUNCS, совместимая с вашей версией SAMP и Moonloader. На сайте разработчика вы можете скачать актуальную версию SAMPFUNCS для вашей игры.

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

Если вы все еще не можете запустить Moonloader, попробуйте запустить чистую версию SAMP без модов и проверьте, работает ли SAMPFUNCS без Moonloader.

Если проблема сохраняется, вы можете обратиться за помощью на официальный форум Moonloader или открыть тикет на GitHub.

Вопрос-ответ

Почему Moonloader не запускается в SAMP?

Возможно, папка с Moonloader находится не в той директории, где установлен SAMP.

Какая версия Moonloader подходит для моего SAMP?

Обычно на сайте разработчика указывается совместимость версий SAMP и Moonloader. Необходимо выбрать версию Moonloader, соответствующую версии вашего SAMP.

Как подключить библиотеки в Moonloader?

Для подключения библиотек в Moonloader нужно скачать нужную библиотеку и поместить ее в папку lib. Далее, в самом коде скрипта нужно указать имя библиотеки и функции, которые вы хотите использовать.

Moonloader не работает на Windows 10, как исправить?

В некоторых случаях проблема может быть связана с отсутствием прав администратора на вашем компьютере. Попробуйте запустить SAMP и Moonloader с правами администратора.

Как сделать автозапуск скриптов в Moonloader?

Для автозапуска скриптов в Moonloader нужно поместить их в папку scripts и переименовать в виде XX_script.lua, где XX — порядковый номер скрипта. Например, 01_script.lua, 02_script.lua и т.д. При запуске игры с Moonloader, все скрипты из этой папки будут автоматически загружены.

Содержание

  1. Вылет после установки SampFuncs и Moonloader
  2. TheRaymondPlex
  3. Информация MoonLoader — разработка
  4. Moon ImGui — Dear ImGui for MoonLoader
  5. GitHub — ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Вылет после установки SampFuncs и Moonloader

TheRaymondPlex

Как понятно из названия, меня беспокоит проблема вылета игры, которую я не знаю, как исправить.
Для начала расскажу, какой версией софта я пользуюсь. Сама ГТА изначально была скачана через Steam. Папка с игрой была переименована, чтоб Steam не обновлял игру. Потом игра подверглась даунгрейду — понижению актуальной версии до самой первой версии игры v 1.0. Это сделано для того, чтобы можно было улучшить игру в целом. Далее в игру была установлена библиотека CLEO 4.4, которая необходима для графических и скриптовых исправлений первой версии, для изменения некоторых эффектов постобработки, для исправления широкоформатного режима, и так далее. Основополагающим модом является Silent Patch. Без него никак.

После того, когда ГТА была полностью готова к игре, она прекрасно работала. Никаких вылетов. Одиночку спокойно можно проходить.
Затем был установлен САМП 0.3.7 R1. И на нем тоже все прекрасно работает.
Но затем я нашел здесь, на этом форуме, раздел, в котором прописан разрешенный софт и вспомогательные скрипты, которые не дают никакого преимущества. Я заинтересовался этим. И выяснилось, что для корректной работы подобных вспомогательных скриптов, обязательно наличие SampFuncs и Moonloader.

И вот что происходит после установки: обычная игра, в одиночном режиме, отказывается работать. Дальше экрана загрузки сохранения никуда не грузится.
В САМПе дела обстоят по-другому: сама программа работает как и обычно, но вот при присоединении к серверу загрузка происходит успешно. И можно спокойно бегать, прыгать, ездить. Какое-то время.. Для проверки работоспособности SampSuncs и Moonloader был установлен безобидный скрипт, который показывает на экране реальное время, дату, никнейм игрока, его ID в сессии, и цвет ника. И скрипт работает. Все красиво, и все показывает. Но каждый раз происходит одно и то же.

Не пройдет и 10ти минут, как игра выдаст следующую ошибку, на скрине видно.

Сразу после нажатия ОК игра закрывается.
При этом на компьютере абсолютно все необходимые библиотеки установлены. Все библиотеки Visual C++ до 2019 года, все необходимые .NET Framework.
Искал решение подобных ошибок в САМПе у других людей. Но ни у кого подобного не нашел. Чаще всего у всех других игроков вылеты/краши происходят сразу после попытки подключиться к серверу. Там им помогает смена системного пользователя. Не до конца понимаю, как именно это им помогает, но факт остается фактом.

Пишу сюда с надеждой, что кто-то, может быть, сталкивался с похожей ситуацией, и сможет мне помочь решить эту проблему?

Источник

Информация MoonLoader — разработка

Известный

Чем же так хорош MoonLoader для разработчика? Чем Lua лучше SCM (CLEO)?
Ну, во-первых, всем. Нет ничего, чем SCM может похвастаться перед Lua. Серьёзно, смотрите:

  • Никаких лимитов: строки, массивы, количество переменных — всё это может быть любого размера и количества.
  • Не нужно вручную контролировать распределение памяти.
  • Нет необходимости компилировать: это даёт возможность редактировать Lua-скрипты в любом текстовом редакторе без нужды в настройке. «Нет необходимости» — это не означает, что компилировать нельзя вовсе.
  • Скорость работы: MoonLoader использует реализацию Lua ‘LuaJIT’, который стал популярен именно благодаря своей скорости работы, и до сих пор находится в топе лидирующих по скорости языков (пруф: Programming Languages Benchmarks (https://attractivechaos.github.io/plb/))
  • Доступность к изучению: несмотря на то, что Lua прост и любой сможет выучить его за короткое время, в сети полным полно примеров, уроков, статей, учебников и разных сервисов для обучения.
  • Доступность решений: на любую универсальную задачу гарантированно найдутся уже готовые решения на Lua, а разнообразие библиотек и модулей поможет в достижении любой цели.
  • FFI: в LuaJIT есть FFI, позволяющий почти как в C и C++ обращаться к машинному коду и памяти, что является неотъемлемой составляющей моддинга. Вдобавок к этому для Lua есть ещё библиотека DynASM, дающая возможность использовать ассемблерные инструкции прямо в Lua.
  • Стабильность и отладка: если в CLEO-скрипте есть фатальная ошибка, то он просто падает, и чаще всего вместе с ним падает и сама игра, при этом иногда найти причину бывает крайне сложно. В Lua, если в скрипте ошибка, он просто завершится, сообщив об этом и о самой ошибке в лог. Кроме того в Lua есть встроенные средства для отладки скриптов.
  • Среда разработки: можно выбрать любую на ваш вкус, пользуйтесь даже обычным блокнотом, если Вам так удобнее.
  • Сам язык: Lua давно зарекомендовал себя одним из самых лучших скриптовых языков. Lua действительно простой язык, и в то же время очень мощный ввиду своей гибкости. На Lua пишут целые игры и он даже используется в веб-разработке.

Ну ладно, а есть ли у MoonLoader какие-нибудь преимущества перед ASI-плагинами?
Да. MoonLoader — это не только загрузчик Lua-скриптов, это ещё и библиотека с огромным набором функций для моддинга. MoonLoader не нужно никак настраивать, для того чтобы начать разработку под него. Нет необходимости в компиляции и скрипты очень просто загружать, выгружать, перезагружать, что значительно ускоряет разработку. Тем, кто не знаком с программированием или языками DelphiCC++ (и проч.), начать разрабатывать модификации на Lua будет гораздо проще. При этом простота разработки не означает, что Lua-скрипты не могут быть масштабными модификациями — MoonLoader включает в себя всю необходимую функциональность. Олдскульным разработчикам он тоже окажется полезным, ведь быстро написать простой скрипт на Lua куда проще, чем создавать для этого отдельный плагин.

MoonLoader использует технику эмуляции существующих опкодов, чтобы вобрать в себя все возможности CLEO. Конечно, в MoonLoader есть и свои функции, и ещё добавится много своих функций, но пока-что основную часть составляют именно опкоды, и в связи с этим документацию для большинства функций писать не придётся — она уже существует. Однако, некоторые опкоды либо не нужны, либо не подходят в чистом виде для Lua, документация по ним и остальным функциям находится на Wiki.

Списки функций и изменений

  • Все функции, включая опкоды — moonloader — functions | BlastHack — DEV_WIKI (https://www.blast.hk/wiki/moonloader:functions)
  • Функции, основанные на опкодах, но отличающиеся от оригинала — moonloader — changed_opcodes | BlastHack — DEV_WIKI (https://www.blast.hk/wiki/moonloader:changed_opcodes)
  • Удаленные и не добавленные опкоды, имеющие замену — moonloader — removed_opcodes | BlastHack — DEV_WIKI (https://www.blast.hk/wiki/moonloader:removed_opcodes)
  • Вырезанные опкоды ненужные в Lua и не имеющие назначения — moonloader — missing_opcodes | BlastHack — DEV_WIKI (https://www.blast.hk/wiki/moonloader:missing_opcodes)

Стандарт
Прежде чем начать говорить непосредственно о разработке, нужно сказать пару слов про стандарт.
Стандарт необходим в любой сфере разработки. Наличие стандарта и следование ему позволяет избежать конфликтов между разными продуктами, а также способствует качеству разработки. MoonLoader тоже старается придерживаться кое-каких стандартов.
Первое — это иерархия директорий.

  • ‘moonloader’ — основная директория MoonLoader. В ней располагаются скрипты, лог-файл ‘moonloader.log’ и остальные поддиректории, имеющие отношение к Lua-скриптам.
  • ‘moonloaderlib’ — эта директория предназначена для библиотек и модулей.
  • ‘moonloaderconfig’ — для конфигов любого вида, в т.ч. и конфигов в виде скриптов.
  • ‘moonloaderresource’ — здесь располагаются все ресурсы, используемые скриптами. В настоящий момент из подпапки ‘txd’ в этой директории загружаются .txd-файлы скриптовой функцией ‘loadTextureDictionary’.

На текущий момент в набор MoonLoader уже входят некоторые библиотеки.

  • ‘moonloader’ — инклуд, содержащий константы, относящиеся к MoonLoader
  • ‘sampfuncs’ — константы плагина SAMPFUNCS
  • ‘bitex’ — расширение стандартной библиотеки ‘bit’
  • ‘vector3d’ — класс 3D-вектора
  • ‘matrix3x3’ — класс трёхмерной матрицы вращения
  • ‘game.models’ — список идентификаторов основных моделей игры
  • ‘game.globals’ — список идентификаторов глобальных переменных игры

Второе — встроенная информация о скрипте.
Задаётся внутри скрипта с помощью функций. Использовать вовсе не обязательно, но желательно.

  • script_name(string name) — задаёт название скрипта
  • script_author(string author) — псевдоним функции ‘script_authors’, отличается только более подходящим названием для указания одного автора
  • script_description(string description) — задаёт описание скрипта
  • script_version_number(int version) — задаёт числовую версию скрипта, предназначен преимущественно для системы проверки обновлений
  • script_version(string version) — задаёт текстовую версию скрипта
  • script_authors(string author, . ) — задаёт список авторов (разработчиков) скрипта
  • script_dependencies(string name, . ) — задаёт зависимости скрипта, предназначен для вывода. в будущем получит дополнительную функциональность
  • script_moonloader(int version) — задаёт минимальную требуемую версию MoonLoader, выводит сообщение об ошибке, если версия не соответствует (не прекращает работу скрипта)

Третье — глобальные переменные.

Источник

Moon ImGui — Dear ImGui for MoonLoader

Это ImGui — самый функциональный и одновременно самый простой GUI-фреймворк из всех, что мне известны.
И теперь каждый из вас сможет использовать его в своих Lua скриптах для MoonLoader.

GitHub — ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Это работает, но что-то не впечатляет, согласитесь. Окно изначально маленькое, показывается сразу при старте и его нельзя закрыть.
Сделаем его побольше, добавим активацию и какое-нибудь действие:

В коде была использована переменная типа ImBool — это один из новых типов, добавленных в Moon ImGui. Такой подход неизбежен, поскольку в луа невозможна передача базовых типов по ссылке. Это не единственное изменение, есть и другие, вам потребуется о них знать. Вот их полный список:

Разница между C++ API и Lua API

Описание В C++ В Lua
Все функции из пространства имён ImGui, как и все типы, и все перечисления находятся в таблице, возвращаемой модулем ImGui::Text(«text»);
ImVec2(0.1f, 2.3f);
imgui.Text(«text»);
imgui.ImVec2(0.1, 2.3);
Названия перечислений (enum) и их значений лишились префиксов и символа «_» в конце ImGuiWindowFlags_NoTitleBar imgui.WindowFlags.NoTitleBar
Значения базовых типов, которые в ImGui записываются по указателю, должны быть использованы через специальные типы: ImBool для bool, ImFloat для float, ImInt для int и unsigned int, ImFloat2-4 для float4, ImInt2-4 для int4 static bool win = false; ImGui::Begin(«window», &win);
win = false;
local win = imgui.ImBool(false) imgui.Begin(«window», win)
win.v = false
Функции с переменным количеством аргументов для форматирования текста не поддерживают форматирование, используйте string.format ImGui::Text(«hey, %s», name) imgui.Text(string.format(‘hey, %s’, name))
Функции InputText и InputTextMultiline принимают ImBuffer вместо char* buf + size_t buf_size char buf[256]<>;
ImGui::InputText(‘input’, buf, sizeof(buf))
local buf = imgui.ImBuffer(256);
imgui.InputText(‘input’, buf)
Динамические массивы в виде массива указателей + количество элементов заменены таблицами const char* items[] = <«1», «2», «3»>; ImGui::ListBox(«list», &lb_cur, items, 3) imgui.ListBox(‘list’, lb_cur, <‘1’, ‘2’, ‘3’>)
Функции с аргументами const char* str_start, const char* str_end, идущими подряд, принимают обычную строку ImGui::TextUnformatted(some_str, some_str + 24) imgui.TextUnformatted(some_str)
Все функции, принимающие калбэк + user_data, принимают ImCallback void swszCb(ImGuiSizeConstraintCallbackData*) <>;
ImGui::SetNextWindowSizeConstraints(size_min, size_max, &swszCb, (void*)&my_data)
local swszCb = imgui.ImCallback(function(data) end)
imgui.SetNextWindowSizeConstraints(size_min, size_max, swszCb)
ImFont::CalcTextSizeA,
ImFontAtlas::CustomRect::CalcCustomRectUV,
ImFontAtlas::GetTexDataAsRGBA32,
ImFontAtlas::GetTexDataAsAlpha8,
ImFontAtlas::GlyphRangesBuilder::BuildRanges,
ImGui::ColorConvertRGBtoHSV и
ImGui::ColorConvertHSVtoRGB
возвращают значения вместо изменения по ссылке
float r, g, b;
ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b);
local r, g, b = imgui.ColorConvertHSVtoRGB(h, s, v)
ImGuiIO::IniFilename и ImGuiIO::LogFilename принимают ImBuffer вместо указателя на строку const char ini_path[] = «my/path.ini»;
ImGui::GetIO().IniFilename = ini_path;
local ini_path = imgui.ImBuffer(‘my/path.ini’)
imgui.GetIO().IniFilename = ini_path
Изменение ImGuiTextEditCallbackData::Buf автоматически обновляет длину и задаёт значение BufDirty s.copy(data.Buf, data.BufSize);
data.BufTextLen = s.length();
data.BufDirty = true;
data.Buf = ‘text’

Остальные изменения

  • Добавлено несколько дополнительных функций
    • ImColor::ToU32 — преобразование ImColor в целое
    • ImGui::GetStyleColorU32 вместо ImGui::GetColorU32 для цвета стиля
    • ImGui::PlotLinesEx вместо callback-варианта PlotLines
    • ImGui::PlotHistogramEx вместо callback-варианта PlotHistogram
    • ImDrawList::AddTextEx вместо AddText с дополнительными аргументами
  • Отсутствуют функции
    • Функции, принимающие и возвращающие void*-идентификаторы (например, PushID(void*) и GetID(void*))
    • Функции с va_list-форматированием текста (например, TextV)

Теперь, зная всё это, вы уже можете начать работать с Moon ImGui. За списком функций ImGui и примерами на C++ обращайтесь на официальную страницу.

Но это ещё не всё. Вся работа с текстом в ImGui основана на UTF-8, т.е. текст не ограничен лишь стандартным набором символов. Но т.к. GTA, SAMP и MoonLoader не поддерживают юникод, кодировки необходимо конвертировать.

Работа с другими языками на примере русского
В MoonLoader v.025 были добавлены библиотеки lua-iconv и encoding, они призваны помочь в работе с разными кодировками текста.
Следующий пример показывает как использовать текст на русском в ImGui:
Скрипт должен быть сохранён в кодировке Windows-1251

Не так уж и сложно, верно? Текст, передаваемый ImGui — кодируем, текст, получаемый из ImGui — декодируем. Если в вашем скрипте много текста на русском для ImGui, но мало текста, выводимого через MoonLoader (в лог или чат SA:MP, к примеру), то можно сделать наоборот — сохранить скрипт в кодировке UTF-8 и не кодировать текст, передаваемый ImGui, а вместо этого кодировать текст при работе с функциями мунлоадера.

Остальные особенности
В Moon ImGui есть несколько дополнительных возможностей. В частности, они реализуют взаимодействие с игрой и управление интерфейсом.

На этом всё. Во вложениях есть пример с демонстрацией использования всех этих фич, рекомендую посмотреть код и пощупать его в игре. Вот скриншот:

Источник

Многие игроки GTA San Andreas привыкли использовать модификации для улучшения игрового процесса. Одной из таких модификаций является MoonLoader. Однако, при использовании этого мода может возникнуть проблема — краши игры. В данной статье мы расскажем, как исправить такую проблему и продолжить играть с установленным MoonLoader.

Первым шагом для исправления крашей из-за MoonLoader является проверка совместимости мода. MoonLoader подходит только для версии игры 1.0 US/EU, поэтому, если вы используете другую версию, это может быть причиной крашей. Также необходимо проверить, что вы установили все необходимые зависимости — ASI Loader и CLEO.

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

Если все вышеперечисленные методы не помогли, то последним шагом является переустановка MoonLoader с последней версией. Некоторые проблемы могут возникать из-за устаревшей версии мода, поэтому всегда следите за обновлениями и устанавливайте последнюю версию.

Содержание

  1. Как избавиться от крашей игры GTA: SA?
  2. 1. Проверьте файлы игры
  3. 2. Отключите моды и дополнения
  4. 3. Обновите драйверы устройств
  5. 4. Снизьте настройки графики
  6. 5. Убедитесь, что ваша операционная система и DirectX обновлены до последней версии
  7. Что такое краш и почему он возникает?
  8. Какие бывают типы крашей?
  9. Как предотвратить краши?
  10. Как MoonLoader влияет на игровой процесс?
  11. Краткое описание
  12. Положительное влияние
  13. Отрицательные последствия
  14. Вывод
  15. Как исправить краш, вызванный MoonLoader?
  16. 1. Проверьте, что у вас правильно установлен MoonLoader
  17. 2. Проверьте, что у вас установлены необходимые библиотеки
  18. 3. Проверьте, что вы используете совместимые моды и плагины
  19. 4. Обновите драйвера вашей видеокарты
  20. 5. Проверьте файл настроек MoonLoader
  21. 6. Обратитесь за помощью к разработчикам MoonLoader
  22. Дополнительные рекомендации для устранения проблем с игрой
  23. Обновите драйвера видеокарты
  24. Отключите антивирусное ПО
  25. Запустите игру от имени администратора
  26. Проверьте целостность игровых файлов
  27. Отключите MoonLoader
  28. Вопрос-ответ
  29. Почему у меня крашится SA-MP из-за MoonLoader?
  30. Как узнать, какая версия MoonLoader совместима с моей версией SA-MP?
  31. Как исправить конфликт MoonLoader с другими модами?

Как избавиться от крашей игры GTA: SA?

1. Проверьте файлы игры

Переодически игра может начать вылетать из-за поврежденных файлов. Проверьте игровые файлы в Steam или Rockstar Games Launcher, чтобы убедиться, что все файлы целы. Если проблема не в этом, попробуйте переустановить игру.

2. Отключите моды и дополнения

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

3. Обновите драйверы устройств

Драйверы устройств могут повлиять на работу игры. Обновите драйверы вашей видеокарты, звуковой карты и других устройств. Это можно сделать через менеджер устройств в Windows либо на сайтах производителей устройств.

4. Снизьте настройки графики

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

5. Убедитесь, что ваша операционная система и DirectX обновлены до последней версии

Старая версия операционной системы или DirectX также может стать причиной крашей игры. Убедитесь, что ваша операционная система и DirectX обновлены до последней версии. Это можно проверить через меню «Обновления и безопасность» в Windows и на официальном сайте DirectX.

  • Если ни одно из предложенных решений не помогло, попробуйте связаться с технической поддержкой Rockstar Games или Valve (если игра была приобретена через Steam). Они могут помочь найти причину крашей и предложить решение проблемы.

Что такое краш и почему он возникает?

Краш — это ошибка работы программы, сопровождающаяся ее аварийным завершением. В игровых разработках это может произойти в результате конфликта между различными модами, расширениями, плагинами и другими изменениями, которые не всегда совместимы между собой. Кроме того, причиной крашей может быть несоответствие требованиям системы игры: программе может не хватать памяти или необходимых ресурсов.

Какие бывают типы крашей?

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

Как предотвратить краши?

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

  • Соблюдайте правила установки и настройки расширений и модов
  • Следите за новостями и обновлениями игры и используемых модов
  • Периодически очищайте кэш и временные файлы компьютера
  • Используйте сторонние программы для оптимизации работы системы и игрового клиента

Краткое описание

MoonLoader — это расширение для игры Grand Theft Auto: San Andreas, которое позволяет загружать дополнительные скрипты, моды, текстуры, а также редактировать исходный код игры.

Положительное влияние

Важным преимуществом использования MoonLoader является расширение возможностей игры. Загрузка новых модов и скриптов может значительно улучшить геймплей, добавить новые функции, предметы, транспорт и т.д. Это также создает возможность для программистов и моддеров создавать собственные модификации и работать над совершенствованием игры.

Отрицательные последствия

Однако, MoonLoader также может негативно влиять на игровой процесс. Неправильно установленные модификации могут привести к крашам и ошибкам, а исправление проблем может занять много времени и требовать знаний в программировании. Кроме того, установка модов нелицензионным способом может привести к блокировке аккаунта и другим негативным последствиям.

Вывод

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

Как исправить краш, вызванный MoonLoader?

1. Проверьте, что у вас правильно установлен MoonLoader

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

2. Проверьте, что у вас установлены необходимые библиотеки

Если у вас крашится игра из-за MoonLoader, возможно, у вас не установлены необходимые библиотеки. Убедитесь, что у вас установлены CLEO и ASI Loader и что они тоже находятся в правильной директории.

3. Проверьте, что вы используете совместимые моды и плагины

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

4. Обновите драйвера вашей видеокарты

Краши из-за MoonLoader могут быть вызваны устаревшими драйверами вашей видеокарты. Убедитесь, что у вас установлены последние драйвера и обновите их при необходимости.

5. Проверьте файл настроек MoonLoader

Некоторые пользователи сообщают, что им удалось исправить краш из-за MoonLoader, просто изменив настройки в файле настроек. Попробуйте открыть файл настроек MoonLoader и изменить некоторые настройки, например, количество используемых потоков или отключить загрузку дополнительных библиотек.

6. Обратитесь за помощью к разработчикам MoonLoader

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

Дополнительные рекомендации для устранения проблем с игрой

Обновите драйвера видеокарты

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

Отключите антивирусное ПО

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

Запустите игру от имени администратора

Для правильной работы игры может потребоваться запуск от имени администратора. Чтобы сделать это, нажмите правой кнопкой мыши на ярлыке игры и выберите пункт «Запустить от имени администратора».

Проверьте целостность игровых файлов

Иногда вылеты могут быть вызваны повреждением игровых файлов. Чтобы их проверить, откройте клиент Steam, найдите игру в библиотеке и нажмите правой кнопкой мыши. Выберите пункт «Свойства», затем перейдите на вкладку «Локальные файлы» и выберите «Проверить целостность файлов игры».

Отключите MoonLoader

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

  • Заходим в папку с SA:MP
  • Заходим в папку MOON
  • Удаляем из папки скрипты и папку файл.

Вопрос-ответ

Почему у меня крашится SA-MP из-за MoonLoader?

Это может быть связано с несовместимостью версий SA-MP и MoonLoader, неверными настройками в MoonLoader или конфликтом с другими установленными модами.

Как узнать, какая версия MoonLoader совместима с моей версией SA-MP?

Вы можете узнать совместимость на официальном сайте MoonLoader. Там вы найдете информацию о совместимости каждой версии MoonLoader и SA-MP.

Как исправить конфликт MoonLoader с другими модами?

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

  • #2

у тебя может не хватать луа библиотек которые использует эта лушка, попробуй поставь все

Letovo



Letovo

Владыка админского скрипта


  • #3

www.blast.hk

SAMP.Lua

Изначально эта библиотека задумывалась как простой апи исключительно для обработки сетевых пакетов, но в процессе было решешо, что лучше бы сделать её полноценной библиотекой для работы с сампом, в будущем это позволит избавить от необходимости использования SAMPFUNCS. Пока реализован только…


www.blast.hk

www.blast.hk

fiskal1




  • #4

у тебя может не хватать луа библиотек которые использует эта лушка, попробуй поставь все

где их взять?

fiskal1




  • #5

www.blast.hk

SAMP.Lua

Изначально эта библиотека задумывалась как простой апи исключительно для обработки сетевых пакетов, но в процессе было решешо, что лучше бы сделать её полноценной библиотекой для работы с сампом, в будущем это позволит избавить от необходимости использования SAMPFUNCS. Пока реализован только…


www.blast.hk

www.blast.hk

поставлю вечерком и отпишусь

  • #6

на бластхаке пишешь нужную тебе либу, скачиваешь

fiskal1




  • #7

на бластхаке пишешь нужную тебе либу, скачиваешь

то есть мне нужно искать содержание lib и libstd?

fiskal1




  • #8

www.blast.hk

SAMP.Lua

Изначально эта библиотека задумывалась как простой апи исключительно для обработки сетевых пакетов, но в процессе было решешо, что лучше бы сделать её полноценной библиотекой для работы с сампом, в будущем это позволит избавить от необходимости использования SAMPFUNCS. Пока реализован только…


www.blast.hk

www.blast.hk

подскажи, как с этим работать?

  • #9

подскажи, как с этим работать?

Установка: скачать samp.zip из последнего релиза и целиком скопировать папку ‘samp’ (не содержимое папки!) из архива в каталог ‘moonloader/lib/’.

fiskal1




  • #10

Установка: скачать samp.zip из последнего релиза и целиком скопировать папку ‘samp’ (не содержимое папки!) из архива в каталог ‘moonloader/lib/’.

помогло! благодарен всем!

мой дом блок




Понравилась статья? Поделить с друзьями:
  • Не запускается симс 4 ошибка инициализации 135dec40 90f690cf
  • Не запускается пжд на камазе коды ошибок
  • Не запускается симс 4 ошибка игра уже запущена
  • Не запускается пжд 14тс 10 ошибки
  • Не запускается симс 4 ошибка ts4