перезагрузка луа скриптов самп
Информация Гайд Всё о Lua скриптинге для MoonLoader
Для лёгкой и удобной работы с кодом Lua скриптов вам понадобится настроить для себя среду разработки. Для работы с Lua достаточно любого текстового редактора, но какой-нибудь блокнот Windows для этого подходит совсем плохо, поэтому лучше использовать специализированные программы. На текущий момент полная поддержка MoonLoader есть в Atom и Notepad++, помимо этого есть пользовательские дополнения для Visual Studio Code и Sublime Text.
Проект по-умолчанию.
В меню File выбираем пункт Open Folder. и указываем путь до папки moonloader, после этого она откроется как проект.
Проект по-умолчанию.
Как и в Atom, здесь есть возможность показа меню проекта, а точнее «Папка как Проект». В меню «Файл» выбираем пункт «Открыть Папку как Проект» и указываем путь к папке «moonloader».
Кодировка по-умолчанию.
Над лентой выбираем пункт Опции и переходим в Настройки. В меню слева выбираем пункт Новый документ и в разделе кодировки ставим флажок на список, в котором выбираем кодировку Windows-1251
После установки среды разработки, изучения основ Lua и ознакомления с документацией MoonLoader, можно приступать от теории к практике. Давайте сначала рассмотрим самое основное, на всякий случай.
В этом примере показаны не все директивы, за полным списком обращайтесь к соответствующей странице на вики.
События и колбэки
Событиями, а точнее их обработчиками, в MoonLoader называются функции, вызывающиеся в скриптах автоматически при каком-либо действии в игре, требующим обработки. Обработчики событий могут иметь входящие и возвращаемые параметры: входящие передают какую-то информацию скрипту, а возвращаемые позволяют повлиять на дальнейшую обработку после совершения события.
Зарегистрировать обработчик события можно двумя способами: просто добавить в скрипт функцию с соответствующим именем, либо воспользоваться функцией addEventHandler. Учтите, что первым способом обработчик может быть зарегистрирован только один раз.
Скрипты с зарегистрированными событиями не завершаются самостоятельно.
Пример: onScriptTerminate вызывается при завершении какого-либо скрипта
С основными принципами разработки вы теперь знакомы и при этих знаниях сможете выполнить большинство задач, однако некоторые задачи требуют применения специальных техник. Давайте рассмотрим некоторые из них.
Создание модулей
Модули делятся на два типа: Lua и DLL. Lua-модули пишутся, как вы уже могли догадаться, на языке Lua и в результате представляют из себя привычные Lua-скрипты, только с некоторыми особенностями.
Давайте рассмотрим пример простого модуля, назовём его example:
Русские Блоги
Механизм перезапуска скрипта Lua
1. Для каждого файла, поддерживающего перезагрузку
2. Загрузка файлов должна осуществляться в определенном порядке, чтобы не создавать путаницу с ресурсами.
Из текущего использования интерфейса love2D на самом деле существует только один «стартовый» файл: main.lua, и в него требуется загрузка различных сценариев подфункций. Если он будет перезагружен, он автоматически будет следовать за файлом, предоставленным main.lua
Порядок require (. ) для автоматической загрузки прекрасен, и нет необходимости писать для каждого файла, как показано выше:
Есть несколько общих целей:
1. Нет необходимости статически поддерживать перезагружаемый файл или функцию, чтобы писать require () для каждого файла сценария для перезагрузки;
2. Он может быть загружен в порядке каждого файла в текущем файле, то есть, если
Напишите main.lua (или другие файлы) в этом порядке, постарайтесь сохранить порядок config> function> globals> gameplayer> scene to reload;
3. Это может предотвратить повторную загрузку «перезаписанных файлов»;
4. Возможность избежать вложенной рекурсивной загрузки;
5. Возможность идентифицировать внешние библиотеки, т. Е.
Он загружает библиотеку «битовых манипуляций» bit.dll, а не bit.lua, поэтому вложенная загрузка не должна выполняться;
6. Уметь определять определенные файлы, которые запрещены к перезагрузке, например:
Сам файл global.lua нельзя запрашивать () несколько раз, иначе глобальные переменные g_object_list будут сброшены, но это не повлияет на перезагрузку skill_cfg и effect_cfg;
7. Он должен поддерживать метод загрузки «post-order». Записано, что в процессе загрузки main.lua файл с индексами теперь должен загружаться рекурсивно:
Затем перейдите к загрузке следующего содержимого main.lua:
8. Возможность распознавать строку require (. ) в файле.
Вероятно, это 8 пунктов целей и требований, но для пункта 7 есть проблема:
Предположим, что рекурсивная функция перезагрузки
А содержимое main.lua очень просто:
В записи, запускающей перезагрузку:
Процесс вызова main_reloader () для перезагрузки будет следующим:
Будут ли эти 5 файлов требоваться () несколько раз? Хотя полная функция recursive_reload () может предотвратить «отображение» от повторения require (), но «неявный» require () не может быть запрещен. Фактически, даже во второй раз » неявный «requre () действительно будет вызван, но фактический физический файл не будет перезагружен, см. руководство по разработке Lua:
Другими словами, пока файл загружен и есть запись в package.loaded, последующий requre () вернется напрямую.
Будут ли эти 5 файлов требоваться () несколько раз? Хотя полная функция recursive_reload () может предотвратить «отображение» от повторения require (), но «неявный» require () не может быть запрещен. Фактически, даже во второй раз » неявный «requre () действительно будет вызван, но фактический физический файл не будет перезагружен, см. руководство по разработке Lua:
require (modname) Loads the given module. The function starts by looking into the package.loaded table to determine whether modname is already loaded. If it is, then require returns the value stored at package.loaded[modname]. Otherwise, it tries to find a loader for the module.
Другими словами, пока файл загружен и есть запись в package.loaded, последующий requre () вернется напрямую.
Особые рабочие эффекты:
Только конкретный код реализации:
Примечание: этот механизм поддерживает только простые файловые каталоги.
Информация Гайд Всё о Lua скриптинге для MoonLoader
Для лёгкой и удобной работы с кодом Lua скриптов вам понадобится настроить для себя среду разработки. Для работы с Lua достаточно любого текстового редактора, но какой-нибудь блокнот Windows для этого подходит совсем плохо, поэтому лучше использовать специализированные программы. На текущий момент полная поддержка MoonLoader есть в Atom и Notepad++, помимо этого есть пользовательские дополнения для Visual Studio Code и Sublime Text.
Проект по-умолчанию.
В меню File выбираем пункт Open Folder. и указываем путь до папки moonloader, после этого она откроется как проект.
Проект по-умолчанию.
Как и в Atom, здесь есть возможность показа меню проекта, а точнее «Папка как Проект». В меню «Файл» выбираем пункт «Открыть Папку как Проект» и указываем путь к папке «moonloader».
Кодировка по-умолчанию.
Над лентой выбираем пункт Опции и переходим в Настройки. В меню слева выбираем пункт Новый документ и в разделе кодировки ставим флажок на список, в котором выбираем кодировку Windows-1251
После установки среды разработки, изучения основ Lua и ознакомления с документацией MoonLoader, можно приступать от теории к практике. Давайте сначала рассмотрим самое основное, на всякий случай.
В этом примере показаны не все директивы, за полным списком обращайтесь к соответствующей странице на вики.
События и колбэки
Событиями, а точнее их обработчиками, в MoonLoader называются функции, вызывающиеся в скриптах автоматически при каком-либо действии в игре, требующим обработки. Обработчики событий могут иметь входящие и возвращаемые параметры: входящие передают какую-то информацию скрипту, а возвращаемые позволяют повлиять на дальнейшую обработку после совершения события.
Зарегистрировать обработчик события можно двумя способами: просто добавить в скрипт функцию с соответствующим именем, либо воспользоваться функцией addEventHandler. Учтите, что первым способом обработчик может быть зарегистрирован только один раз.
Скрипты с зарегистрированными событиями не завершаются самостоятельно.
Пример: onScriptTerminate вызывается при завершении какого-либо скрипта
С основными принципами разработки вы теперь знакомы и при этих знаниях сможете выполнить большинство задач, однако некоторые задачи требуют применения специальных техник. Давайте рассмотрим некоторые из них.
Создание модулей
Модули делятся на два типа: Lua и DLL. Lua-модули пишутся, как вы уже могли догадаться, на языке Lua и в результате представляют из себя привычные Lua-скрипты, только с некоторыми особенностями.
Давайте рассмотрим пример простого модуля, назовём его example:
Lua Sweet Connect | Reconnect | Autologin
Double Tap Inside
Известный
Функции
— Менеджер серверов, аккаунтов и диалогов.
— Автоматическое переподключение при отключении от сервера, можно настроить время для каждого сервера отдельно.
— Переподключение со сменой никнейма или сервера.
— Сохранение и автоматический ввод любых данных в любой диалог.
— Возможность отложенного подключения, например: после рестарта сервера.
— Автоматический ввод кода от Google Authenticator.
— Фаст коннект.
— Анти AFK
— Настройка горячих клавиш для основных функций.
— Уведомление о новых версиях.
— Можно отключить надписи в чат и прочие вещи, которые могут быть видны на скриншотах.
— Языки интерфейса: английский, русский, болгарский, украинский.
Пропинговка сервера, чтобы не получать вечное «The server didn’t respond»
https://www.blast.hk/threads/13380/post-401150
Фикс краша текстур в зеркальном интерьере с Анти-AFK
TLodbrock
Фикс улетания диалога при его появлении, если игра свёрнута с Анти-AFK
Фикс выхода курсора из окна или на второй монитор.
Курсор можно вывести только тогда, когда его видно.
Время на компьютере должно быть синхронизированно по интернету!
1. Для работы необходимы:
GTA:SA 1.0 US,
SAMP 0.3.7 R1,
CLEO,
SAMPFUNCS,
MOONLOADER 0.26
Ссылка на скачивание есть в начале установки.
2. Расскажите как повторить краш игры, остановку или баг скрипта.
Lua VehicleTools
Bredd Lane
Известный
Перекинуть файл «VehicleTools.lua» в папку «moonloader».
[30.09.2020 / V1.5.1]:
— Мини-фикс.
[29.09.2020 / V1.5]:
— Код стал открытым.
— Куча фиксов.
— Теперь нужные модули будут записываться в отдельную папку в папке «moonloader\lib».
— Теперь ImGui уведомления находятся в самом скрипте. Также они были немного изменены.
— Убрана функция «Логотип» из функции «Виджет» из раздела «Настройки > Основные».
— Убрана функция «Починка колес» из раздела «Читы».
— Убрана функция «Удалить» из вкладки «Функции».
— Убрана функция «Проверить обновление» из вкладки «Функции».
— В раздел «Информация» была добавлена кнопка «Информация о важных функциях», при нажатии на нее, откроется окошко, в котором будут описаны важные функции, такие как, автообновление, описание к каждой функции, HotKeys.
— Немного изменен интерфейс скрипта.
— Обновлена функция автообновления, теперь вы сами решаете, устанавливать ли вам обновление или нет. Если оно выйдет, то после того как скрипт, при входе в игру найдет обновления, появится окошко, в котором можно будет выбрать, устанавливать новую версию или нет. Также в раздел «Настройки > Дополнительно» была добавлена функция отключение этого окна при входе.
— Добавлена функция «Отключение при выключенном двигателе» к функции «Антипадение с мото/вело» в разделе «Читы».
— Добавлена функция «Езда под водой» в раздел «Читы».
— Добавлена функция «Водонепроницаемый двигатель» в раздел «Читы».
— Добавлена функция «Отключение эффектов (FPS UP)» в раздел «Настройки > Основные».
— Добавлена функция «Показатель здоровья т/с (HPBAR)» в раздел «Настройки > Основные». К этой функции прилагаются еще настройки.
— Добавлены функции изменение команды, прорисовка, изменение цвета 3D текста (Постоянный цвет и Rainbow), отключение обводки у 3D текста (функция «Изменение текста»), «Не показывать за объектами», изменение шрифта и его размера (функция «Кастомный /dl») к функции «Настройки /dl» в раздел «Настройки > Основные».
— Добавлена функция изменения шрифта и его размера к функции «3D текст с состоянием дверей т/с» в раздел «Настройки > Основные».
— Улучшена функция «NoRadio» из функции «Настройки > Основные». Теперь радио полностью блокируется, а не постоянно переключается.
[7.09.2020 / V1.4.1]:
— Мини-фикс.
[23.08.2020 / V1.3.5]:
— Фикс виджета.
[23.08.2020 / V1.3.4]:
— Фикс проверок на название сервера.
[22.08.2020 / V1.3.3]:
— Теперь в виджете показывается нормальное название вашего т/с.
[17.08.2020 / V1.3.2]:
— Очередной фикс.
[17.08.2020 / V1.3.1]:
— Фикс.
[17.08.2020 / V1.3]:
— Добавлена функция «Изменение цвета отражения фар» в раздел «Настройки >> Основные». Можно настроить, имеет 2 функции: постоянный цвет и переливание цветов (RGB подсветка), скорость переливания можно настроить.
— Добавлена функция «Удаление всех т/с в радиусе» в разделе «Читы». Активация/Деактивация командой (по стандарту /delveh, можно изменить). При активации все т/с в радиусе прорисовки удалятся.
— Теперь скорость переливания некоторых элементов интерфейса (RGB подсветки) можно изменить.
— Добавлена функция отключения скрипта во вкладке «Функции».
— Добавлена функция удаления скрипта во вкладке «Функции».
[13.08.2020 / V1.2.5]:
— Все тот же фикс.
[11.08.2020 / V1.2.4]:
— Очередной фикс.
[10.08.2020 / V1.2.3]:
— Из-за некоторых проблем была убрана функция «Турбогуделка».
[10.08.2020 / V1.2.2]:
— Еще один фикс.
[10.08.2020 / V1.2.1]:
— Фикс.