Программа для редактирования lua файлов

Обновлено: 05.07.2024

Файл с расширением .LUA содержит исходный код расширения программы или приложения , обычно игры, написанный на языке сценариев Lua. Исходный код представляет собой набор команд, инструкций и определений переменных, написанных с использованием определенного синтаксиса. LUA - это текстовый файл, который можно открывать и редактировать любым текстовым редактором; однако рекомендуется открывать такие файлы в инструментах редактирования, которые поддерживают подсветку синтаксиса. Файл LUA может содержать ряд коротких команд , а также полный программный код расширения или приложения. Язык Lua использует синтаксис, аналогичный синтаксису языка программирования Pascal, и использует ассоциативные массивы и расширяемую семантику. Язык Lua описывается его разработчиками как:

  • Надежный и проверенный - язык используется многими известными разработчиками программного обеспечения, например, он использует инструмент Photoshop Lightroom или веб-сайт Википедии, используется в системах видеонаблюдения, для программирования компьютерных игр (WoW или Angry Birds),
  • Быстрый - считается самым быстрым интерпретируемым языком сценариев,
  • Кроссплатформенный - код Lua распространяется в виде независимых от платформы пакетов C, которые могут работать на Linux, Windows Android, iOS, встроенных системах или компьютерах мэйнфреймов,
  • Встраиваемый - хорошо документированный, легко интегрируемый с кодом, написанным на других языках, классических или скриптовых,
  • Простой и мощный - предлагает поддержку мета-функций, которые могут быть расширены при необходимости,
  • Легкий и бесплатный - добавление кода Lua в приложение без ущерба для его производительности и языка с открытым исходным кодом.

Lua была создана в 1993 году компьютерными инженерами Роберто Иерусалимши, Вальдемара Селес и Луизой Энрике де Фигейредо в Папском университете Рио-де-Жанейро. Он поддерживается исследовательской лабораторией LabLua , которая является частью факультета компьютерных наук в указанном университете . Lua означает «луна» на португальском языке. С момента его создания было разработано несколько версий языка - последняя стабильная версия, Lua 5, была выпущена в 2018 году.

Программы, которые поддерживают LUA расширение файла

Ниже вы найдете указатель программ, которые можно использовать для открытия файлов LUA, разделенных на категории 3 в соответствии с поддерживаемой системной платформой. Файлы с расширением LUA, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.


Это руководство призвано исполнить две цели: обучить разработке скриптов с нуля и восполнить все пробелы в знаниях о Lua скриптинге под MoonLoader. В нём освещены все аспекты разработки - от самого простого до продвинутых возможностей и приемов, то есть оно подходит как и для начинающих скриптеров, так и для программистов с опытом. Предварительное прочтение старого руководства не требуется, здесь есть вся необходимая и более актуальная информация.
А если вы всё ещё не знакомы с MoonLoader, то сейчас самое время ознакомиться.
Ну что, приступим?

Перед продолжением необходимо установить сам MoonLoader, желательно через программу установки и с дополнительными инструментами:
1. Скачайте установщик MoonLoader последней версии и запустите, следуйте шагам программы установки
2. На странице выбора компонентов отметьте нужные скрипты (рекомендуется выбрать все)

3. Если вы намерены делать скрипты для SA:MP, выберите SAMP.Lua и отдельно установите SAMPFUNCS
4. Это не обязательно, но не помешает установить и MoonAdditions - эту библиотеку используют некоторые скрипты и она неплохо расширяет стандартные возможности скриптинга
5. Выберите установку расширения для Notepad++, если вы будете использовать программу Notepad++ для редактирования Lua скриптов

Для лёгкой и удобной работы с кодом Lua скриптов вам понадобится настроить для себя среду разработки. Для работы с Lua достаточно любого текстового редактора, но какой-нибудь блокнот Windows для этого подходит совсем плохо, поэтому лучше использовать специализированные программы. На текущий момент полная поддержка MoonLoader есть в Atom и Notepad++, помимо этого есть пользовательские дополнения для Visual Studio Code и Sublime Text.

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

Проект по-умолчанию.
В меню File выбираем пункт Open Folder. и указываем путь до папки moonloader, после этого она откроется как проект.

Кодировка по-умолчанию.
Для установки кодировки по-умолчанию при создании нового скрипта переходим в настройки всё тем же сочетанием Ctrl + , и выбираем пункт Core. В поле File Encoding выбираем Cyrillic (Windows-1251).

Проект по-умолчанию.
Как и в Atom, здесь есть возможность показа меню проекта, а точнее "Папка как Проект". В меню "Файл" выбираем пункт "Открыть Папку как Проект" и указываем путь к папке "moonloader".

Кодировка по-умолчанию.
Над лентой выбираем пункт Опции и переходим в Настройки. В меню слева выбираем пункт Новый документ и в разделе кодировки ставим флажок на список, в котором выбираем кодировку Windows-1251

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

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


Глобальная область
Глобальная область - это основное тело скрипта, т.е. всё, что находится вне функций. В основном глобальная область используется для указания директив, подключения модулей, объявления каких-либо глобальных переменных и функций. Она выступает первым этапом загрузки скрипта, код из неё выполняется один раз после загрузки скрипта (а скрипты загружаются почти сразу же после запуска игры) и не может быть приостановлен. Основная работа со скриптом производится в потоке main.
Пример: Загружаем библиотеку VKEYS, записываем моё имя в переменную myName, объявляем функцию main.



Задержки и потоки
Задержка в скрипте позволяет приостанавливать исполнение кода на указанное количество миллисекунд или на один кадр. В ML для осуществления задержек используется функция wait(int time), её аргумент time принимает следующие значения:
-1 - устанавливает непрерывное ожидание, использование допустимо только в main
0 - задержка на один кадр
остальные значения указывают задержку в миллисекундах
Пример: Запущенный скрипт будет в вечном ожидании
Использование задержек недопустимо в callback-функциях. Для создания задержки в такой функции используйте создание потока:

Потоки - это сопрограммы, которые могут быть созданы в процессе работы скрипта для параллельного выполнения задач. Потоки в MoonLoader служат для выноса определенных действий за рамки основного потока, а так же для создания задержек выполняемого кода там, где это невозможно реализовать стандартными методами.
Для запуска потока используются функции lua_thread.create и lua_thread.create_suspended.
Пример: создаётся два потока для параллельного вывода текста в лог


Директивы
Скрипты для MoonLoader могут содержать о себе некоторую информацию и иметь определённые свойства исполнения - и то, и другое задаётся с помощью директив. Директивы - это обычные функции, предназначенные для указания информации о скрипте и изменения его поведения. Их принято обозначать в самом начале скрипта.
Все параметры, задающиеся директивами, можно получить из любого скрипта, обратившись к соответствующим полям класса LuaScript.
Пример:

В этом примере показаны не все директивы, за полным списком обращайтесь к соответствующей странице на вики.

Колбэки (функции обратного вызова) выступают реакцией на действие и по концепции очень похожи на события, но у них есть два отличия: первое - колбэк всегда регистрируется явно, чаще путём вызова функции с передачей функции-колбэка в качестве аргумента, второе - он всегда связан с какой-либо сущностью (командой, идентификатором и т.п.), т.е. будет вызван только если возникшее событие касается связанной сущности (например, колбэк команды будет вызван при вводе только одной команды, а не каждой, как это было бы с событием). Примером функции с колбэком является downloadUrlToFile, принимающая последним аргументом callback-функцию.
В колбэках, как и в событиях, нельзя использовать задержки.
Пример:



Использование библиотек
Библиотеки, либо модули всячески дополняют стандартный набор возможностей новыми и позволяют использовать в скриптах готовые инструменты для разработчиков. Модули делятся на стандартные и сторонние. Стандартные включены в дистрибутив MoonLoader и не требуют отдельной установки.
Все модули располагаются в директории moonloader/lib/ и устанавливаются туда же. Подключение библиотек осуществляется при помощи функции require, которая в качестве аргумента принимает название файла. Чаще всего подключение модулей производится в начале скрипта, но может быть выполнено в любом месте. Каждый модуль загружается отдельно для каждого скрипта.
Пример: Подключим модуль "vkeys", позволяющий работать с виртуальными клавишами.

Работа с модулями не ограничивается стандартным набором, часто приходится иметь дело со сторонними модулями - такие модули не поставляются вместе с MoonLoader и требуют ручную установку. Примерами таких модулей являются Dear ImGui и SAMP.Lua.
Вы можете создать собственный модуль и использовать его в своих скриптах. Благодаря этому вам будет легче оказывать им поддержку, скрипты станут чище и компактнее, а повторяющегося кода будет намного меньше.
Помимо этой возможности в MoonLoader присутствует система импорта, позволяющая использовать работающий скрипт как модуль с общим доступом - об этом и о создании модулей будет сказано позже.
Настоятельная рекомендация: никогда не публикуйте свои работы вместе со стандартными библиотеками или с изменениями в сторонних библиотеках - это может привести к проблемам у пользователей.

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

  • Добавляйте информацию о скрипте при помощи директив
  • Соблюдайте единый стиль кода
  • Соблюдайте табуляцию (отступы)
  • Отделяйте блоки кода логически: пустые строки между функциями и блоками переменных, пробелы между блоками кода, осуществляющими логически завершённое действие и т.д.
  • Называйте переменные и функции внятными именами
  • Комментируйте неочевидные участки кода


Современные решения
С момента релиза ML прошло уже довольно много времени и, конечно, многое поменялось, так, например, вместо предопределенных переменных playerPed и playerHandle стоит использовать PLAYER_PED и PLAYER_HANDLE соответственно.
Помимо стандартного рендеринга, для создания сложных меню можно использовать фреймворк Dear ImGui. Для удобной обработки сетевого трафика SA:MP есть библиотека SAMP.Lua. Библиотека SA Memory для прямого взаимодействия со структурами игры. И MoonAdditions, добавляющая множество интересных функций.
vkeys - стандартный модуль, хранящий все ID и имена виртуальных клавиш. Так уж вышло, что этот модуль изначально не входил в состав MoonLoader и вместо него все константы загружались из модуля moonloader глобально, но со временем выяснилось, что это было плохим решением и поэтому коды клавиш были перенесены в отдельный модуль с немного другой реализацией. Но константы в старом модуле пришлось оставить для совместимости со старыми скриптами и теперь их использование оттуда считается устаревшим. Библиотека vkeys тут приведена в качестве примера, кроме неё были и другие нововведения, приведшие к устареванию старых решений.
Поэтому, если вы занимаетесь активной разработкой, всегда обращайте внимание на список изменений в обновлениях и пользуйтесь новейшими инструментами.


Упрощение процесса установки скриптов
"Да закинь вот эти файлы в папку CORE в папке SOURCE та что в папке с либами где под папкой IT хранится SCORE" - Бррр, чтобы подобное не случалось и ваш собеседник не впадал в ступор, старайтесь упростить установку до максимума - чтобы можно было просто скопировать все составляющие мода в одну папку. То есть соберите один архив так, чтобы неопытный пользователь мог свободно его установить или приложите инструкцию, если процесс установки сложнее стандартного. Чем установка проще, тем лучше и для вас, и для пользователя.

Компиляция скриптов
Во многих других языках программирования выполнение компиляции необходимо для запуска приложения на целевой машине, но в Lua компиляция не требуется - скрипты загружаются из исходного кода без дополнительных манипуляций. Однако, компиляция Lua скриптов возможна и чаще всего применяется для сокрытия исходного кода от любопытных глаз. Чаще всего это применяют для продаваемых скриптов, где защита этого самого скрипта - дело первостепенной важности. Не стоит злоупотреблять этой возможностью и прятать каждый свой скрипт под замок.
Для компиляции Lua скриптов под MoonLoader v.026 и выше скачайте интерпретатор LuaJIT v2.1.0-beta3, распакуйте архив в любое место и перетаскивайте lua-файл на compile.bat, рядом создастся luac-файл - это и есть скомпилированный скрипт. Для компиляции скриптов под более старые версии MoonLoader, вам понадобится LuaJIT 2.0.4.

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


Создание модулей
Модули делятся на два типа: Lua и DLL. Lua-модули пишутся, как вы уже могли догадаться, на языке Lua и в результате представляют из себя привычные Lua-скрипты, только с некоторыми особенностями.
Давайте рассмотрим пример простого модуля, назовём его example:


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

Расширение LUA

Расширение файла LUA связано с языком сценариев Lua, который используется для увеличения возможностей многих различных приложений и компьютерных игр. Язык сценариев Lua также используется в различных промышленных программах, таких как Photoshop Lightroom от Adobe Systems.

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

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

Файлы исходного кода компактны, чтобы избежать ненужного увеличения размера приложения. Документы LUA скомпилированы в виде архива, созданного утилитой TAR. TAR – это UNIX-утилита, которая используется для упаковки нескольких элементов в одну папку.

Хотя TAR на самом деле является инструментом архивации, он также известен как архиватор с нулевым сжатием. Несколько документов могут быть заархивированы с использованием формата TAR, но они не сжимаются, как в ZIP.

Как открыть элементы в формате LUA

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

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

На ПК под управлением Windows можно открывать такие документы с помощью любого текстового редактора, такого как Блокнот или WordPad. Следует просто щелкнуть правой кнопкой мыши на иконку и выбрать «Открыть с помощью» в раскрывающемся меню.

В подменю целесообразно нажать на текстовый редактор, который можно использовать, или нажать «Обзор», если программа отсутствует в списке.

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

Если элемент LUA содержит исходный код и сценарии для игровых приложений, используемых с Windows, его можно открыть с помощью набора дополнений World of Warcraft от Blizzard Entertainment или World of Warcraft AddOn Studio.

Если файл содержит исходный код и сценарии для игр, совместимых с Mac OS X, допускается использование Rovio Mobile Angry Birds, который доступен на веб-сайте Rovio или в комплекте дополнений World of Warcraft Interface от Blizzard Entertainment.

Открыть документ с подсветкой кода

Конечно, можно использовать любой текстовый редактор для просмотра элементов с таким типом. Но лучше использовать редактор с подсветкой кода. Один из них – это инструмент Sublime Text. Но можно использовать и Notepad ++.

На изображении ниже есть возможность увидеть разницу между программой с подсветкой кода и классическим блокнотом.

Notepad ++

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

Кроме того, в программе видно количество строк. Это особенно полезно, когда в журнале ошибок появляется оповещение: «строка 23 в example.lua». Отыскать проблему можно намного быстрее.

Еще одна полезная функция: если дважды щелкнуть слово, оно выделяется во всем документе.

Подсветка кода

Опция используется для проверки написания и при просмотре игрового кода, когда есть смысл отыскать, где используется функция (например, SILVER_BIRDCAGE).

Во время поиска нужно учитывать, что код чувствителен к регистру, то есть: Silver_birdcage, silver_birdcage и SILVER_BIRDCAGE – это не одно и то же.

Другой вариант поиска, но в большем масштабе, это «Найти в файлах» (комбинация клавиш Ctrl + Shift + F). Этот вариант позволяет искать что-то во всех документах указанной папки. Почему это полезно?

Допустим, необходимо добавить функцию «onattackother» к своему персонажу или монстру и надлежит получить лучший пример того, как и что можно сделать.


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

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

Проблемы с открытием файла

Если не получается открыть документ LUA, нелишне просмотреть перечисленные возможные причины и выяснить точную причину этой ошибки:

  • элемент заражен или поврежден;
  • соответствующее приложение не установлено;
  • версия приложения, необходимая для открытия файла, устарела или не подходит (документ был создан в другой версии и возникает конфликт при попытке открыть);
  • ключи реестра ассоциации файлов недействительны.

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

Заключение

Элементы с расширением LUA очень популярны и существует много способов их открыть: используя любой текстовый редактор (WordPad, Блокнот, TextEdit) или с помощью редакторов подсветкой синтаксиса (Sublime Text, Notepad ++).

Курсы Lua, создание торговых роботов для торговли в QUIK.

Доступ к полному Курсу на 1 день, после регистрации на сайте. Зарегистрироваться

LuaForWindows_v5.1.4-46.rar

Пакет Lua­­ for Windows содержит всё, что необходимо для написания, выполнения и отладки скриптов на языке Lua под операционную систему Windows. Размер файла: 25.06 мб

Quik_lua.zip

Документация по языку Lua в QUIK. Размер файла: 2.54 мб

Doc714.zip

Документация к торговому терминалу QUIK. Руководство пользователя QUIK. Размер файла: 17.30 мб

8 Язык QPILE.pdf

6 Работа с другими приложениям

Таблица параметров транзакции страницы с 32 по 38. Размер файла: 1.83 мб.

Ошибка при установки LuaForWindows_v5.1.4-46

Если у Вас, при установке LuaForWindows_v5.1.4-46 появляется следующая ошибка:


Запустите установку файла vcredist_x86.4053.exe из архива LuaForWindows_v5.1.4-46.rar , а после снова попробуйте запустить LuaForWindows_v5.1.4-46.exe.

1. Lua for Windows.

Установим пакет на свой компьютер. Процесс установки прост и не требует никаких специальных настроек. Необходимо только принять лицензионное соглашение. Более никаких изменений в процессе установки вносить не требуется. После установки пакета в меню Пуск найдем директорию Lua. Из всех установленных приложений пользоваться мы будем только редактором кода SciTE. Редактор кода SciTE это специальный текстовый редактор, который настроен на язык программирования Lua и знает синтаксис данного языка.
Запустим SciTE через меню Пуск > Все программы > Lua > SciTE или Пуск > Приложения > Lua > SciTE. Если по какой-то причине в меню Пуск отсутствует папка Lua, то запускаем по следующему пути. C:\\Program Files\Lua\5.1\SciTE\SciTE.exe.

Окно редактора SciTE.


Немного о редакторе SciTE.

После запуска идем в меню Language и выбираем язык Lua. Этим действием мы настраиваем редактор на нужный язык программирования. Редактор знает синтаксис языка Lua и поэтому, будет выделять цветом тот или иной текст кода. Например слова входящие в состав языка Lua выделяются синим жирным шрифтом, обычным черным шрифтом печатаются имена переменных, названия таблиц или названия каких-то функций, которые уже были созданы с помощью языка Lua. Значения переменных выделяются голубым тонким шрифтом. Красным тонким шрифтом выделятся комментарий к коду.


Сейчас возможно Вам не понятны некоторые термины, но мы их обязательно разберем ниже.

2. Документация по языку Lua в QUIK.

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

Список данных, к которым предоставляет доступ интерпретатор QLua:

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

Одной из ключевых возможностей интерпретатора QLua является возможность работы с торговыми заявками. Интерпретатор QLua может отправлять в торговую систему все виды заявок, а именно:

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