Не работает luac файл

Обновлено: 04.07.2024

Привет, я хочу разделить файл Lua на два файла. Тот, который содержит мои функции и тот, который может их назвать. Я провел много исследований по этому поводу, и все ресурсы, которые я нахожу, не объясняют этот процесс очень далеко. Обычно они говорят:

Я помещаю это в начало нового файла Lua, который сохраняется в том же каталоге и не имеет доступа к чему-либо.

Есть ли файл конфигурации, который мне нужно изменить? Где это?

спросил(а) 2016-01-07T02:38:00+03:00 5 лет, 10 месяцев назад

Функция require просматривает ряд мест для поиска модуля. Точный список мест можно настраивать, настраивая поля в глобальной таблице package .

После просмотра внутри, первое "реальное" место, которое он ищет xyzzy , находится в файле с именем .\xyzzy.lua . Затем он пытается найти несколько папок и имен в папке, где был найден lua.exe . Наконец, он ищет DLL, которая может предложить его. Список папок, которые он ищет для файла .lua , контролируется строковым значением в package.path . (Сопоставимый список для DLL в файле package.cpath .) В этом значении require заменит каждый ? на имя модуля, а затем попытается прочитать файл. Используется первая для успеха.

(История здесь немного сложнее: вы можете создавать "поисковики", которые require будет использовать для поиска в разных местах и ​​даже изменить порядок встроенных поисковиков, но это расширенная тема.)

Таким образом, просто размещение модулей в файлах Lua в текущем каталоге должно работать нормально, а настройка package.path перед вызовом require для ваших собственных модулей может охватывать большинство причуд, с которыми вы столкнетесь.

Создайте модуль, требующий

В самом простом, модуль - это просто то, что можно сохранить в package.loaded . Это то, что require будет делать с ним, как только оно будет найдено, так что несколько вызовов require будут искать только один раз и всегда возвращать одинаковое значение.

Традиционный ответ заключается в том, что это "что-то" должно быть таблицей, обычно большей частью населенной функциями, которые можно назвать, а иногда и имеющими значения. Хорошим примером является модуль math : он предоставляет множество функций, таких как sin и cos , а также полезное значение math.pi и math.huge .

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

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

который, если он хранится как example.lua , можно использовать следующим образом:

Лучший скелет модуля

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

Почему нет вызова функции module()?

В Lua 5.1 включена стандартная функция с именем module() , предназначенная для использования в верхней части реализации модуля. Его использование никогда не требовалось, и консенсус сформировался довольно быстро, и это было не так полезно, как хотелось бы надеяться. С тех пор он устарел.

В результате простой скелет, показанный выше, не использует его и переносится для всех версий Lua с 5.1.

Арсений Виноградов

Хотим представить вам лоадер, с помощью которого можно подгружать файлы таких форматов: .LUA/LUAC, .DLL(.ASI/.SF) и .EXE .

Сам лоадер имеет 3 формата: .LUAC, .DLL(.ASI/.SF), .EXE . Файлы .LUAC и .DLL не зависят от SAMP-a. Например, файл формата .LUAC можно запустить c помощью транслятора LuaJIT 2.1.
Показать полностью.

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

В: Актуален ли лоадер сейчас?
О: Лоадер актуален всегда. Для сампа, возможно, не особо. Тем не менее всегда можно найти ему применение.

В: Есть ли подобные проекты?
О: Да, есть. Один из них это DarkLoader. Но цена у них почти в 2 раза выше чем у нас. К тому же, они используют панели своих пользователей для личной выгоды. То есть подгружают свои таски через панели пользователей.

В: Как им пользоваться?
О: Все достаточно просто. Основной процесс использования можно разделить на 4 этапа:
1. Имея на руках логин и пароль авторизуемся на сайте.
2. На панели слева нажимаем на кнопку "Создать таск".
3. В появившейся форме нажимаем "Выберите файл". На этом этапе мы выбираем файл, который будем подгружать нашим жертвам.
4. После того, как выбрали файл, нажимаем кнопку "Добавить таск".

Далее, все что нам остается, это распространять лоадеры и при необходимости добавлять новые таски.

Дополнительно:
- Подгружаемые файлы(таски) можно посмотреть нажав на панели слева по кнопке "Мои таски".
- Названия тасков можно изменять прямо на сайте.
- Максимальное количество тасков - 10.
- Максимальный вес таска - 10 МБ, при необходимости увеличим.
- Подгружаемым файлам выставляется атрибут: "Скрытый".
- .EXE файлы после подгрузки запускаются в скрытом режиме.
- .EXE лоадер после запуска добавляется в автозагрузку/автозапуск + таски смогут подгружаться даже в НЕ зараженную сборку.
- Названия лоадеров можно изменять.

В: Что делает склейщик?
О: С помощью склейщика мы можем объединить несколько файлов в один. На выходе мы получаем какой-нибудь работающий скрипт/плагин, в котором находится наш лоадер.

Читайте также: