UoKit.com Форумы > Кликер > UO Pilot > Плагины и доп. ПО
Страницы: 1, 2
Cockney
Код элементарен. Хорошие примеры работы с API LUA можно найти в сорцах модуля math и др. , который поставляются с исходниками Lua. Особо не разобрался, т.к. протестировать нормально не могу, но вроде можно таким делом биндить классы из длл и другие фичи.

Сам собирал под VS 2017 CE. Кто сможет собрать и завести всю эту кухню - отпишите результат.



For GCC - Нажмите для просмотра прикрепленного файла
For MSVC - Нажмите для просмотра прикрепленного файла
Вверх
Cockney
И да, в приоритете, если возможно - делайте сборку через gcc компилятор, т.к. он в отличие от студии не привязывает код к версии винды + не надо ставить редисты и т.д.
Вверх
Cockney
Обновил сорцы. Теперь собирается нормально. Добавил пару примеров функций.
Вверх
Cockney
Год медитаций позволил мне наконец-то собрать плагин под gcc.

Сорцы плагина в шапке.


1)Ставим MSYS2 (именно MSYS2, не MSYS) по инструкции

2)Выполняем:
Код

pacman -S mingw-w64-i686-gcc
pacman -S make

Закрываем msys.

Дальнейшая работа идем относительно корня установки msys.

3)Качаем исходники Lua.

4)Кидаем в папочку /home/<User>/lua-src

5)Запускаем mingw32 из папки msys.

6)Выполняем:
Код

cd /home/<User>/lua-src
make mingw
make install INSTALL_TOP=/home/<User>/lua


Lua установлен локально, чтобы не засорять окружение. Окошко не закрываем.

7)Качаем сорцы плагина.

8)Копируем все в папочку /home/<User>/plugin

9)Открываем Makefile и правим под себя пути в "Lua settings"

10)Выполняем:
Код
    
cd /home/<User>/plugin
make


или

Код

make build


для автоочистки от мусора.


11) Enjoy !
Вверх
DarkMaster
Первый раз вижу нормальный ман по сброке в MSYS/Mingw.

Тем не менее хочу обратить внимание, что если идет разработка/сборка под пилот/luajit, то luajit.org рекомендует не использовать стандартный api lua для работы с плагинами. Они рекомендуют использовать ffi. Из плюсов:
1) Нет необходимости в модификации dll. Может быть подключена уже существующая dll.
2) Скорость работы.
Из минусов... хз минус ли, по мне скорее плюс, но тем не менее необходимо будет создать и описать в lua типы данных которые необходимо передать/принять. Т.е. это полуавтоматическое создание биндингов.

MSYS2 нельзя ставить в песочницу - будьте внимательны. Будут сыпать ошибки named pipe поддержки, так же pacman не будет видеть уже установленные пакеты, а при попытке их установить будут происходить ошибки.
Вверх
Cockney
Цитата
1) Нет необходимости в модификации dll. Может быть подключена уже существующая dll.


Какая dll и к чему подключается ? Если dll вообще любая хоть из winapi подключается к luajit - то да. Если dll изначально написана под api lua то она подключится как к обычному lua, так и к jit. Проверенно на 2.41.
Вверх
DarkMaster
Цитата
Какая dll и к чему подключается ? Если dll вообще любая хоть из winapi подключается к luajit - то да.

winapi биндинги через ffi уже созданы.
https://luapower.com/winapi
Вверх
Cockney
Цитата
2) Скорость работы.



Спорное утверждение. dll уже работает на максимальной скорости, а оптимизацию "ввода/вывода" через api никто не отменял.

В целом - мне не особо интересна кухня всех ffi и прочего. Я дал платформу. Вкручивайте что хотите. Что лучше/хуже смотрите сами.
Вверх
DarkMaster
Цитата
Я дал платформу.

За что тебе безусловно спасибо.
Я просто сообщил о вариантах, которые имхо имеют право жить и опять же имхо уместно об этом здесь было написать. Если хочешь - почищу.
Вверх
Cockney
Ни в коем случае.
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.