Что делать если не работает моонлоадер

Вылет после установки 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.
Искал решение подобных ошибок в САМПе у других людей. Но ни у кого подобного не нашел. Чаще всего у всех других игроков вылеты/краши происходят сразу после попытки подключиться к серверу. Там им помогает смена системного пользователя. Не до конца понимаю, как именно это им помогает, но факт остается фактом.

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

Источник

Избранное Lua ASI MoonLoader

Известный

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

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

Язык программирования Lua является одним из самых популярных скриптовых языков в сфере разработки игр, и в связи с этим для него существует огромное количество готовых решений тех или иных задач, множество готовых модулей на самом Lua, с использованием FFI и в виде динамических библиотек помогут сэкономить время на поиске решения.
Lua значительно упростит разработку и повысит её качество и эффективность, а сами скрипты будут работать стабильнее и быстрее. Благодаря тому, что MoonLoader использует не обычный Lua, а LuaJIT, который широко известен своей колоссальной производительностью и невероятно мощной библиотекой FFI, можно добиться наилучших результатов в реализации задачи наиболее эффективным путём.

О том с чего начать и как правильно писать Lua скрипты можно прочитать в теме Все о Lua скриптинге для MoonLoader

Скачать
Установка: запустить setup-moonloader.exe и следовать шагам программы установки. Для работы MoonLoader требуется GTA: SA версии US1.0.
Скачать моды
Скачать читы
Скачать архивом для установки вручную

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

Источник

MoonLoader

Обновлено до .023-beta

Все знают CLEO. Почти каждый знает о многочисленных проблемах со скриптами, использующими CLEO: нестабильность работы, проблемы совместимости на разных версиях, низкая скорость работы и вследствие большая нагрузка от масштабных модификаций, а разработчикам известно о сложности и неудобстве разработки на встроенном скриптовом языке игры.
Безусловно, CLEO — легендарная модификация, внёсшая громадный вклад в моддинг GTA San Andreas, благодаря чему эта игра и является одной из самых популярных игр в сфере моддинга. Но библиотека CLEO устарела, хоть и поддерживается разработчиками по сей день. Скриптовый движок игры тоже стар и имеет множество изъянов, а достойной альтернативы до сих пор не существовало. До пор, пока не появился Moonloader.

Moonloader — это мод для игры GTA San Andres, стремящийся стать полной современной заменой CLEO. Он вносит возможность загрузки Lua-скриптов в игру, имеет всю функциональность опкодов игры, библиотеки CLEO, плагина SAMPFUNCS и добавляет свой набор новых функций для разработки.

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

Язык программирования Lua является одним из самых популярных скриптовых языков в сфере разработки игр, и в связи с этим для него существует огромное количество готовых решений тех или иных задач, множество готовых модулей на самом Lua, с использованием FFI и в виде динамических библиотек помогут сэкономить время на поиске решения.
Lua значительно упростит разработку и повысит её качество и эффективность, а сами скрипты будут работать стабильнее и быстрее. Благодаря тому, что Moonloader использует не обычный Lua, а LuaJIT, который широко известен своей колоссальной производительностью и невероятно мощной библиотекой FFI, можно добиться наилучших результатов в реализации задачи наиболее эффективным путём.

Разработчики:
FYP, hnnssy, EvgeN 1137

Отдельная благодарность:
DK22Pac, MISTER_GONWIK, 4el0ve4ik, EXPORT, Garrus

Установка:
Переместить все файлы в корневую папку с игрой.

Источник

Информация 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 не нужно никак настраивать, для того чтобы начать разработку под него. Нет необходимости в компиляции и скрипты очень просто загружать, выгружать, перезагружать, что значительно ускоряет разработку. Тем, кто не знаком с программированием или языками Delphi\C\C++ (и проч.), начать разрабатывать модификации на 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-скриптам.
  • ‘moonloader\lib’ — эта директория предназначена для библиотек и модулей.
  • ‘moonloader\config’ — для конфигов любого вида, в т.ч. и конфигов в виде скриптов.
  • ‘moonloader\resource’ — здесь располагаются все ресурсы, используемые скриптами. В настоящий момент из подпапки ‘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, выводит сообщение об ошибке, если версия не соответствует (не прекращает работу скрипта)

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

Источник

Оцените статью