Как устанавливать скрипты lua

Lua – Установка Lua

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты luaУстановка lua это вопрос, который возникает достаточно часто. Что, вообще-то, достаточно удивительно, потому как установка lua на самом деле, крайне проста и понятна. Можно даже сказать, что там вообще нечего делать. Но, раз уж такие вопросы возникают, давайте немного поговорим об установке Lua.

Установка Луа. Скачиваем

Установка Луа. Компиляция.

Есть два варианта компиляции луа, которые, в принципе, ничем не отличаются ))) Первый – это компиляция из Visual Studio Command Prompt:

Второй способ без запуска Visual Studio:

Установка Луа. Доступ

Установка Луа. Статическая линковка.

Установка Луа. Проверка.

Проверим, всё ли работает. Создаём новый проект (я сделал консольный проект win32). Дописываем инклюды луа:

и доделываем сам main():

В настройки линковщика (Project/Properties/Linker/Input/Addition Dependencies) не забываем добавить нашу библиотеку (lua.lib для релиза и lua-debug.lib для дебага). Компилируем. Создаём тестовый файлик с луа-скриптом:

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты luaЗапускаем и видим то, что и хотели. Теперь мы можем использовать Луа в наших программах и не таскать с собой этот ненавистный lua.dll – мне кажется, что это намного удобнее и приятнее )

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

В следующих уроках мы более подробно поговорим про использование луа-скриптов в программах и, в частности, в играх.

Источник

Вопрос Как установить луа скрипты

Если да, то проверь наличие файла SAMPFUNCS.asi.

Если есть, то пришли moonloader.log из папки moonloader.

[19:17:26.580264] (system) Session started.

[19:17:26.580264] (debug) Module handle: 64B10000

MoonLoader v.026.5-beta loaded.

Developers: FYP, hnnssy, EvgeN 1137

Copyright (c) 2016, BlastHack Team

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

[19:17:26.580264] () Working directory: C:GamesARIZONA GAMESbinArizonamoonloader

[19:17:26.580264] (debug) FP Control: 0009001F

[19:17:26.580264] (debug) Game: GTA SA 1.0.0.0 US

[19:17:26.580264] (system) Installing pre-game hooks…

[19:17:26.621266] (system) Hooks installed.

[19:17:27.422312] (debug) Initializing opcode handler table

[19:17:27.422312] (debug) package.path = C:GamesARIZONA GAMESbinArizonamoonloaderlib?.lua;C:GamesARIZONA GAMESbinArizonamoonloaderlib?init.lua;C:GamesARIZONA GAMESbinArizonamoonloader?.lua;C:GamesARIZONA GAMESbinArizonamoonloader?init.lua;. lua;C:GamesARIZONA GAMESbinArizonamoonloaderlib?.luac;C:GamesARIZONA GAMESbinArizonamoonloaderlib?init.luac;C:GamesARIZONA GAMESbinArizonamoonloader?.luac;C:GamesARIZONA GAMESbinArizonamoonloader?init.luac;. luac

[19:17:27.422312] (debug) package.cpath = C:GamesARIZONA GAMESbinArizonamoonloaderlib?.dll;

[19:17:27.424312] (system) Loading script ‘C:GamesARIZONA GAMESbinArizonamoonloaderCAROeb by Kalashnikov.lua’…

[19:17:27.424312] (debug) New script: 04D48934

[19:17:27.426312] (error) CAROeb by Kalashnikov.lua: …A GAMESbinArizonamoonloaderCAROeb by Kalashnikov.lua:1: module ‘samp.events’ not found:

no field package.preload[‘samp.events’]

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampeventsinit.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloadersampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloadersampeventsinit.lua’

no file ‘.sampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampeventsinit.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloadersampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloadersampeventsinit.luac’

no file ‘.sampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.dll’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsamp.dll’

…A GAMESbinArizonamoonloaderCAROeb by Kalashnikov.lua:1: in main chunk

[19:17:27.426312] (error) CAROeb by Kalashnikov.lua: Script died due to an error. (04D48934)

[19:17:27.427312] (system) Loading script ‘C:GamesARIZONA GAMESbinArizonamoonloaderFomikusOrigArz (1).lua’…

[19:17:27.427312] (debug) New script: 04D4F424

[19:17:27.431312] (error) FomikusOrigArz (1).lua: …ZONA GAMESbinArizonamoonloaderFomikusOrigArz (1).lua:2: module ‘lib.samp.events’ not found:

no field package.preload[‘lib.samp.events’]

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampeventsinit.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampeventsinit.lua’

no file ‘.libsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampeventsinit.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampeventsinit.luac’

no file ‘.libsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.dll’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblib.dll’

…ZONA GAMESbinArizonamoonloaderFomikusOrigArz (1).lua:2: in main chunk

[19:17:27.432312] (error) FomikusOrigArz (1).lua: Script died due to an error. (04D4F424)

[19:17:27.432312] (system) Loading script ‘C:GamesARIZONA GAMESbinArizonamoonloaderpoehali_arz_no_ads.luac’…

[19:17:27.432312] (debug) New script: 04D4F424

[19:17:27.437313] (error) poehali_arz_no_ads.luac: [string «…»]:0: module ‘lib.samp.events’ not found:

no field package.preload[‘lib.samp.events’]

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampeventsinit.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampeventsinit.lua’

no file ‘.libsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampeventsinit.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampeventsinit.luac’

no file ‘.libsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.dll’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblib.dll’

…ONA GAMESbinArizonamoonloaderpoehali_arz_no_ads.luac: in

[19:17:27.437313] (error) poehali_arz_no_ads.luac: Script died due to an error. (04D4F424)

[19:17:27.438313] (system) Loading script ‘C:GamesARIZONA GAMESbinArizonamoonloaderПолучение капчи (1).lua’…

[19:17:27.438313] (debug) New script: 04D4F424

[19:17:27.440313] (error) Получение капчи (1).lua: …ONA GAMESbinArizonamoonloaderПолучение капчи (1).lua:2: module ‘lib.samp.events’ not found:

no field package.preload[‘lib.samp.events’]

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampeventsinit.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampeventsinit.lua’

no file ‘.libsampevents.lua’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampeventsinit.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderlibsampeventsinit.luac’

no file ‘.libsampevents.luac’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblibsampevents.dll’

no file ‘C:GamesARIZONA GAMESbinArizonamoonloaderliblib.dll’

…ONA GAMESbinArizonamoonloaderПолучение капчи (1).lua:2: in main chunk

[19:17:27.440313] (error) Получение капчи (1).lua: Script died due to an error. (04D4F424)

[19:17:39.043977] (system) Installing post-load hooks…

[19:17:39.043977] (system) Hooks installed.

[19:18:17.432172] (system) Unloading…

[19:18:17.470174] (system) Session terminated.

Гайд #3 | Работа с библиотекой SAMP.lua

Работа с библиотекой SAMP.lua​

Всем привет, сегодня покажу как установить эту библиотеку и её пользоватся в своих скриптах

— Идем в официальную тему: SAMP.Lua(https://blast.hk/threads/14624/)

— переходим по этой ссылке

— Нажимаем на файл samp.zip

— Дальше заходим в папку с moonloader, переходим в папку lib, и переносим папку samp из архива

Все, библиотеку мы установили, переходим к написанию скриптов.

Я создал файл Hooks.lua, кодировка windows 1251.

Поместил туда шаблон:

Подключим нашу библиотеку:

local hook = require «lib.samp.events»

Попробуем отловить входящий пакет о присоеденении игрока к серверу на котором вы находитесь, пишем следующий код:

Мы написали код который будет отлавливать пакеты с информацией о том что игрок присоеденился к серверу, но никак мы не обработали, давайте выведем в чат кто присоеденился и с каким ID.

Теперь каждый раз когда кто-то присоединяется к серверу мы видим сообщение в чате:

nickname[id] присоединился к серверу.

Теперь перехватим входящее сообщение от сервера

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

Вы спросите, «где ты взял onServerMessage, onPlayerJoin, и параметры?»

Все очень просто, идем в

Там есть список входящих пакетов (Incoming rpcs)

И исходящих (Outgoing rpcs)

Думаю на этом все, спасибо за внимание

нился», хз зачем гайд, в основной теме все то же самое написано + там показана работа с перезаписью исходящих пакетов.

Ну хз, я бы юзал wait(-1) вместо пустого бесконечного цикла с wait(0)

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

hook.onServerMessage(color, text) return <0xFF0000, text>end

Последнее редактирование: 14 Янв 2018

даже не объяснил как ты заблокировал пакет. мды.

даже не объяснил как ты заблокировал пакет. мды.

Ам, комментарий для кого?

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

как подменить пакет, что даст трай вместо фолс.

Взял, скопировал примеры с основной темы SAMP.lua, изменил ивенты и назвал это гайдом.

Это фейл-фейлище, бро

Так ведь красивее, имхо) Да и юзабельнее

hook.onServerMessage(color, message) return < 0x00FF00, message >end

Взял, скопировал примеры с основной темы SAMP.lua, изменил ивенты и назвал это гайдом.

Если твой уровень знаний выше этого гайда — проходим дальше

Если твой уровень знаний выше этого гайда — проходим дальше

Дело-то не в знаниях, а в том что ты просто скопипастил примеры с темы самплуа в свой псевдогайд с минимальными изменениями.

Да ещё и наговнокодил, один вот этот пример многого стоит

Дело-то не в знаниях, а в том что ты просто скопипастил примеры с темы самплуа в свой псевдогайд с минимальными изменениями.

Да ещё и наговнокодил, один вот этот пример многого стоит

Не нравится не смотри

Типичная отмазка новичка.

Можешь подробнее о этой функции рассказать?

local hook = require «lib.samp.events»

Какие скрипты посоветуешь поразбирать, чтобы учиться?

Ранее до этого никогда не программировал в сфере сампа

Можешь подробнее о этой функции рассказать?

local hook = require «lib.samp.events»

Какие скрипты посоветуешь поразбирать, чтобы учиться?

Ранее до этого никогда не программировал в сфере сампа

значит мы сможем чепез переменную хук обращатся к библиотеке лежащей в папке «lib/samp/events»

Lua – Установка Lua

Установка lua это вопрос, который возникает достаточно часто. Что, вообще-то, достаточно удивительно, потому как установка lua на самом деле, крайне проста и понятна. Можно даже сказать, что там вообще нечего делать. Но, раз уж такие вопросы возникают, давайте немного поговорим об установке Lua.

Установка Луа. Скачиваем

Первое, что нам нужно будет сделать перед установкой, это скачать исходники луа с её официального сайта: https://www.lua.org/download.html. Для установки, естественно, нам понадобится самая последняя версия, на данный момент это lua 5.1.4. После скачивания, естественно, надо разархивировать исходники lua в отдельную папку.

Установка Луа. Компиляция.

Есть два варианта компиляции луа, которые, в принципе, ничем не отличаются ))) Первый — это компиляция из Visual Studio Command Prompt:

Второй способ без запуска Visual Studio:

Установка Луа. Доступ

Установка Луа. Статическая линковка.

Установка Луа. Проверка.

Проверим, всё ли работает. Создаём новый проект (я сделал консольный проект win32). Дописываем инклюды луа:

и доделываем сам main():

Пара слов о развертывании

Скрипт можно запустить при помощи команды:

В данном случае библиотеки будут подключаться из поддиректории clibs/, которая находится в директории, куда был установлен Lua for Windows. Чтобы максимально компактно упаковать скрипт и библиотеки для переноса на другую машину, достаточно скопировать в одну папку следущие файлы(указаны с относительными путями от директории установки Lua):

lua.exe lib/lua5.1.dll clibs/cd.dll clibs/cdlua51.dll clibs/iup.dll clibs/iup_pplot.dll clibs/iupcd.dll clibs/iupcontrols.dll clibs/iupgl.dll clibs/iuplua51.dll clibs/iuplua_pplot51.dll clibs/iupluacd51.dll clibs/iupluacontrols51.dll clibs/freetype6.dll

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

К сожалению файлы cd.dll, cdluad51.dll и iupcd.dll в данной версии Lua for Windows могут работать некорректно, поэтому рекомендую взять их из архива по ссылке ниже.

Итоги

Архив с рабочей версией тут, для удобства добавлена пускалка app.bat.

В результате получили, пусть и неказистую, утилиту, имеющую такой же функционал, как и если бы она была написана на «серьезном» языке программирования. При этом простую в развертывании и суммарным весом менее 2 мб. Потребление памяти — около 7 мб. Исходный код доступен для редактирования, сам Lua интерактивно понятен, что упрощает доработку подобного софта на местах.

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

Источник

RCDetails Blog

О коптерах и не только

Как установить LUA скрипты в Jumper T16

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

Можно менять настройки Betaflight и видеопередатчика прямо с пульта Jumper T16. В этом руководстве я покажу как настроить эту возможность.

Что за Betaflight LUA скрипты?

С помощью LUA скриптов можно менять очень много параметров Betaflight прямо с пульта T16, включая: ПИД (PID), рейты (rates), время цикла (looptime), протокол регуляторов скорости и т.д. Можно даже менять настройки видеопередатчика: канал и выходную мощность.

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

Что потребуется?

Убедитесь, что в пульт установлена прошивка OpenTX 2.3.1 или более новая. Чтобы узнать установленную версию нажмите и держите кнопку SYS, после этого нажимая PAGE перейдите на страницу Version. Вот моё руководство по обновлению прошивки OpenTX в T16.

Совет: чтобы прошивка поддерживала LUA скрипты, нужно выбрать «lua» и «luac» в параметрах прошивки.

Обязательно нужно настроить телеметрию, без неё, или если она работает некорректно, LUA скрипты работать не будут.

Как настроить LUA скрипты в T16?

Распаковываем файл, должна получиться папка «obj» и в ней три папки: «BF«, «SCRIPTS» и «SOUNDS«.

Нужно скопировать все три папки в корень SD карточки вставленной в T16.

Для этого просто переводим аппу в режим загрузчика (bootloader mode), и подключаем USB кабель (можно конечно вытащить флешку из аппы и воткнуть в кард-ридер).

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

Если файлы/папки с такими именами уже есть, то вас спросят перезаписать ли их, нужно перезаписывать.

Как использовать LUA скрипты?

Чтобы запустить LUA скрипт, нажимаем и держим кнопку «SYS«, открывается меню Radio Setup (настройки радио).

Нажимаем «PAGE«, чтобы перейти на страницу SD, выбираем папку «BF«.

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

Находим «bf.lua» и запускаем его («Execute«).

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

Если телеметрия работает, то вы увидите значения разных параметров. Если их нет, то у вас проблемы с телеметрией.

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

Нажимаем «Page» для перехода на след. страницу или нажимаем и удерживаем её же для перехода на предыдущую страницу.

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

Находим строку «local currentPage = 1» и меняем число на необходимое нам. Страница с настройками видеопередатчика имеет номер 8.

Сохраняем файл и закрываем его.

Если у вас появляется сообщение о недостатке памяти («Script syntax error: not enough memory«), то скорее всего вы просто забыли поставить галку «luac» при прошивке OpenTX в аппу.

Источник

Добавление скриптинга в программу с помощью Lua

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua
Lua это мощный, быстрый, легкий, встраиваемый язык сценариев. С его помощью можно легко и быстро добавить поддержку скриптинга в вашу программу.
Это может понадобиться в тех случаях, когда вы хотите дать возможность пользователям производить самостоятельную донастройку (кастомизацию) вашей программы, когда вы не хотите перекомпилировать весь проект, при внесении каких-либо изменений в логику работы программы, либо хотите разделить работу над движком и работу над логикой между разработчиками (например, при написании игр).

В этой статье, с помощью простой программы, я хочу показать пример встраивания Lua в ваш проект.

Примеров программ, которые используют Lua достаточно много. Далеко не полный список программ, использующих Lua, можно посмотреть здесь Lua Wiki и здесь Wikipedia

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

Пример я создавал в Visual Studio под Windows. Несмотря на это, приведенный код, за исключением нескольких функций (перечисление файлов, переименование файла), специфичных для Windows, после небольшой адаптации будет работать и на других платформах, т.к. Lua является кроссплатформенным языком сценариев.

Начнем с того, что посетим официальный сайт и скачаем Lua для своей платформы. Для Windows подойдет вот этот архив, включающий в себя библиотеки линковщика, динамические библиотеки и заголовочные файлы Lua.

Почему extern «C»? Lua написан на ANSI C, если попытаться включить файлы без extern «C» то мы получим множество ошибок, таких как:

Это вызвано тем, что соглашения о вызовах в C отличаются от соглашений в C++.

Не забудем подключить библиотеку линковщика:

Теперь необходимо объявить и инициализировать экземпляр Lua интерпретатора.

int _tmain( int argc, _TCHAR* argv[])
<
// Инициализируем экземпляр
g_LuaVM = lua_open();
.
// Закрываем
lua_close(g_LuaVM);
>

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

Вторая — переименовывает файл:

Остановимся подробнее на реализации второй:

// В качестве параметров принимает текущий путь к файлу и новое имя файла
// В случае успеха возвращает 1, иначе 0
int LuaRenameFile(lua_State *luaVM)
<
// Получаем число переданных из Lua скрипта аргументов
int argc = lua_gettop(luaVM);

// Количество возвращаемых значений
return 1;
>

strDestination = strSource.substr(0, strSource.rfind(‘\\’) + 1) + strDestination;

int nResult = ( int )::MoveFileEx(strSource.c_str(), strDestination.c_str(), MOVEFILE_REPLACE_EXISTING|MOVEFILE_WRITE_THROUGH);

// Возвращаем в Lua скрипт результат выполнения MoveFileEx
lua_pushnumber(luaVM, nResult);

// Количество возвращаемых значений
return 1;
>

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

Теперь нам необходимо дать Lua знать, о экспортируемых функциях, делается это просто:

lua_register(g_LuaVM, «RenameFile», LuaRenameFile);
lua_register(g_LuaVM, «MatchString», LuaMatchString);

RenameFile и MatchString это имена функций, которые будут «видны» в скрипте.

Создадим скрипт, выполняющий всю работу:

Чтобы совсем стало понятно, привожу кусок кода, который вызывает эту функцию

// Переместить на начало стека функцию onFileFound
lua_getglobal(g_LuaVM, «onFileFound»);
// Поместить следующим элементом в стек путь к найденному файлу (fileName в скрипте)
lua_pushstring(g_LuaVM, strFilePath.c_str());

Осталось только загрузить скрипт из нашей программы:

// Загружаем скрипт
int s = luaL_loadfile(g_LuaVM, szScriptPath);

// Выполняем крипт
s = lua_pcall(g_LuaVM, 0, LUA_MULTRET, 0);

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

Ниже приведен список ресурсов, на которых можно почитать о Lua более подробно.

Источник

LUA Plugin для Script Hook V

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

LUA Plugin для Script Hook V для GTA 5

LUA Plugin – требуется для некоторых модов, которые написаны на Script Hook V для GTA 5.

Lua — скриптовый язык программирования, разработанный в подразделении Tecgraf (Computer Graphics Technology Group) Католического университета Рио-де-Жанейро (Бразилия). Интерпретатор языка является свободно распространяемым, с открытыми исходными текстами на языке Си.

По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями. Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы объектно-ориентированного программирования, включая множественное наследование, легко реализуются с использованием метатаблиц, которые также отвечают за перегрузку операций и т. п. Реализуемая модель объектно-ориентированного программирования — прототипная (как и в JavaScript).

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

LUA Plugin для Script Hook V

Язык широко используется для создания тиражируемого программного обеспечения (например, на нём написан графический интерфейс пакета Adobe Lightroom). Также получил известность как язык программирования уровней и расширений во многих играх (в том числе World of Warcraft) из-за удобства встраивания, скорости исполнения кода и лёгкости обучения.

Как установить

Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты luaКак устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты luaКак устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты luaКак устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua Как устанавливать скрипты lua. Смотреть фото Как устанавливать скрипты lua. Смотреть картинку Как устанавливать скрипты lua. Картинка про Как устанавливать скрипты lua. Фото Как устанавливать скрипты lua

10 оценок, среднее: 4,30 из 5

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *