-
#1
кароч открыл .lua с помощью блоконота и забыл убрать галочку чтобы не всегда открывалась и все не могу вернуть в прежнюю версию чтобы было в виде листка белого помогите пж маюсь 4 часа в инете нету ничего
chapo
vk.com/chaposcripts
-
#3
Как альтернатива…скачай File Association Fixer
-
#5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это знак что надо писать через блокнот. Тру программисты вообще пишут в тетрадке, а компилируют в уме
-
#6
Чапо отпишите в вк пожалуйста @imst1llsad @chapo
Содержание
- Что делать, если в Windows вместо ярлыков отображаются значки блокнота (нарушена файловая ассоциация)
- QUIK 8.0
- Внимание
Что делать, если в Windows вместо ярлыков отображаются значки блокнота (нарушена файловая ассоциация)
Сегодня мой сосед попросил посмотреть его компьютер с установленной Windows 7. Его дочурка игралась на нем и случайно сделала запуск всех exe с помощью блокнота.
Конечно, все это забавно выглядит со стороны, мне даже пришла в голову реализация данного сбоя в виде очередной шутки на Делфи (скоро я напишу, как это сделать). Однако для человека далекого от компьютеров и способных, разве что, переустановить винду, данная ситуация была сродни катастрофе. Нужно было срочно предпринимать меры по устранению данного сбоя.
Почему я называю это сбоем? Все просто – Windows должна сама при следующем запуске вернуть все на свои места. Если это не произошло, то имеет место очередной сбой. Что ж, будем исправлять запуск Блокнота вместо исполняемой программы.
Я всегда говорил своим студентам, чтобы они изучали реестр Windows. Ведь от целостности реестра зачастую зависит «здоровье» винды. А уж о различных тонких настройках я и вовсе молчу.
Данная ситуация является ярким примером того, как неправильно измененный реестр может испортить нервы пользователю. А ведь то, через что пользователь решает запустить тот или иной файл, как раз хранится в реестре. К сожалению, посетители моего блога часто являются просто новичками, для которых многие технические подробности просто неинтересны и я их прекрасно понимаю. Человек хочет решения конкретной проблемы, а не занудные слова о чем-то ему непонятном. По этой причине я просто покажу, что нужно сделать в данной ситуации. Для тех, кто хочет узнать больше, приглашаю прочитать мои статьи по программированию.
Итак, как вы поняли, реестр запомнил, что вы хотите запускать все файлы через блокнот. Кроме того, Windows проявила инициативу и теперь все ярлыки на рабочем столе приняли вид блокнота. Не нужно думать, что это может случиться только с блокнотом — кто-то может поставить запуск и через paint и т.д. В любом случае, способ устранения будет одним.
Для устранения данной напасти вам нужно будем импортировать дефолтные ветки реестра, отвечающие за эти параметры. Скачать вы их можете здесь — первый отвечает за файловую ассоциацию, второй – за ярлыковую ассоциацию.
Просто щелкните дважды по каждому из этих файлов и перезагрузите компьютер. Сейчас должно все работать.Как видите, все очень просто.
QUIK 8.0
Внимание
После обновления на версию 8.0 все индикаторы и скрипты, сделанные на Lua перестали работать, по скриптам пишет ошибку «bad header in precompiled chunk».
никаких dll или сторонних библиотек не используется в скриптах. Скрипты скомпилированы через стандартную команду:
luac -s -o «$(FileName).luac» «$(FileNameExt)»
Что надо сделать для работы?
Цитата |
---|
Nikolay Pavlov написал: Добрый день. Для корректной работы с *.luac файлами в терминале 8.0 необходимо исходные *.lua файлы скомпилировать x64 версией Luac.exe |
Т.е. для всех версий вплоть до 7.27 мне надо компилировать по старому. а для 8.0 отдельно компилировать x64 luac.exe
Очень удобно сделали и заранее предупредили главное всех о таком событии.
Скачал с сайта только что, в файле «Использование Lua на рабочем месте», ни слова нету про компиляцию.
Цитата |
---|
Nikolay Pavlov написал: К сожалению, повторной компиляции скриптов под x64 не избежать, это последствия смены архитектуры терминала, т.к. в нем используется уже x64 интерпретатор Lua. В документацию обязательно добавим информацию. |
Конкретно вот этот компилятор годится для вашей новой архитектуры?:
Насколько я понял удобный пакет LuaForWindows не имеет в составе x64 компилятора (если имеет, то не могли бы дать ссылку).
Цитата |
---|
Александр М написал: Конкретно вот этот компилятор годится для вашей новой архитектуры?: https://sourceforge.net/projects/luabinaries/files/5.1.5/Tools%20Executables/lua-5.1.5_Win64_bin.zip. . |
Цитата |
---|
Александр М написал: Конкретно вот этот компилятор годится для вашей новой архитектуры?: https://sourceforge.net/projects/luabinaries/files/5.1.5/Tools%20Executables/lua-5.1.5_Win64_bin.zip. . |
Да, этот компилятор можно использовать (я использовал именно его). Что касается LuaForWindows, я не видел x64 сборку данного пакета, по данному вопросу могу посоветовать только обратиться к его разработчикам.
А если мне нужно использовать собственную dll как сделать x64 ?
В Visual Studio Платформу x64 выбрал, но не собирается, ругается:
Ошибка 2 error LNK2001: неразрешенный внешний символ «lua_tolstring»
Я так понимаю нужны другие файлы для x64
lauxlib.h
lua.h
lua5.1.lib
luaconf.h
Но где их взять? Подскажите.
Цитата |
---|
Павел написал: А если мне нужно использовать собственную dll как сделать x64 ? |
У меня Visual Studio 2013
На сайте выбрал Lua 5.1.4 — Release 2 (sources and Visual C++ 8/9 binaries only)
Далее Windows Libraries
И скачал lua-5.1.4_Win64_vc12_lib.zip
в Visual Studio изменил Release Win32 на Release x64 Собрал, ошибок не было.
Попробовал подключить dll библиотеку к скрипту через require(«myNew»);
Запустил скрипт и получил ошибку:
error loading module ‘myNew’ from file ‘C:QUIK_8.0.1myNew.dll’:
%1 не является приложением Win32.
Что я не так делаю?
Благодарю за помощь. Все получилось. Скорее всего это я уже где то что то напутал.
Удалил все и начал с самого начала, все получилось.
Пишу что делал, возможно кому то пригодится:
У меня Visual Studio 2013, на других версиях думаю так же, но не пробовал.
1. Создал проект и настроил его по инструкции (только файлы брал другие см.п.2, а так же см п.3) Сайт https://quikluacsharp.ru/qlua-c-cpp-csharp/konnektor-dll-quik-qlua-lua-c/ надеюсь ссылки на сторонние сайты можно размещать.
2. На сайте http://luabinaries.sourceforge.net/ выбрал «Lua 5.1.4 — Release 2 (sources and Visual C++ 8/9 binaries only)» Далее «Windows Libraries» и скачал «lua-5.1.4_Win64_vc12_lib.zip». Скаченные файлы разместил как сказано на сайте из п.1
3. В Visual Studio 2013, при настройке проекта, я изменил: Конфигурация Активная (Release) Платформа x64 (Создал через диспетчер конфигураций)
4. Код СИ скопировал для примера с того же сайта п.1
5. Проект успешно собрал, dll библиотека появилась.
6. Создал скрипт Lua, подключил через require. Запустил в QUIK 8.0.1.1 и все заработало.
Цитата |
---|
Павел написал: Благодарю за помощь. Все получилось. |
Установил 5.1.5 на Visual Studio 2013 — Все работает, библиотека собралась, в QUIK 8.0.1.1 скрипт запустился.
Цитата |
---|
Еще хотел бы поправить написанное мной выше, версия 5.1.4 это не последняя версия, есть еще патч 5.1.5 ( https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Static/ ), правильнее будет использовать его. |
Цитата |
---|
Игорь Б написал: Там несколько вариантов. Какой надо? |
Цитата |
---|
никаких dll или сторонних библиотек не используется в скриптах. Скрипты скомпилированы через стандартную команду: |
luac -s -o «$(FileName).luac» «$(FileNameExt)»
Что надо сделать для работы?
Цитата |
---|
Игорь Б написал: Visual Studio для этого не использую.Использую LuaForWindows_v5.1.4-46 |
Цитата |
---|
Еще хотел бы поправить написанное мной выше, версия 5.1.4 это не последняя версия, есть еще патч 5.1.5 ( https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Static/ ), правильнее будет использовать его. |
Там несколько вариантов. Какой надо?
Цитата |
---|
Для получения компилированного lua скрипта (*.luac) нужно скачать x64 luaс.exe, соответственно Вам нужно пройти по ссылке https://sourceforge.net/projects/luabinaries/files/5.1.5/Tools%20Executables/ и скачать lua-5.1.5_Win64_bin.zip. |
Цитата |
---|
Павел написал: А если мне нужно использовать собственную dll как сделать x64 ? |
кросс-сборка на линупсе
собираем некую либу my_lib :
— рядом с -L. точка, те текущий каталог
Цитата |
---|
Иван Сидоров написал: Замечательно. А что делать тем у кого 32 разрядная система? Всё что отстроено годами, теперь всё это ломать по вашей милости? |
Цитата |
---|
Иван Сидоров написал: Замечательно. А что делать тем у кого 32 разрядная система? Всё что отстроено годами, теперь всё это ломать по вашей милости? |
вас не более 10% — это демократия 🙂
Да ну, это откуда такие данные? А я думаю что 50 на 50.
Цитата |
---|
Иван Сидоров написал: Да ну, это откуда такие данные? |
Цитата |
---|
Иван Сидоров написал: А что делать тем у кого 32 разрядная система? |
Цитата |
---|
sergei написал: Более не поддерживается Win XP?»Не поддерживается» = «работать вообще не будет» |
Цитата |
---|
Imersio Arrigo написал: а WinXP — х32. |
Цитата |
---|
Imersio Arrigo написал: Никогда такого не видел. |
абсолютно обычная тема была для предприятий
у мну сохранилась и офф iso, и ключ ..
само собой есть и в сети на торрентах
людей не хотящих из ХР валить можно понять, тк валить можно только на линукс
а им скилл не позволяет.
ткчт моя их понимает, но не жалеет .. (имею право)
Цитата |
---|
Imersio Arrigo написал: Никогда такого не видел. |
абсолютно обычная тема была для предприятий
у мну сохранилась и офф iso, и ключ ..
само собой есть и в сети на торрентах
людей не хотящих из ХР валить можно понять, тк валить можно только на линукс
а им скилл не позволяет.
ткчт моя их понимает, но не жалеет .. (имею право)
Я Win XP ставлю через VirtualBox на Ubuntu. Кроме QUIK там нет ничего из соображений безопасности.Через WINE кривовато почему-то получалось, когда несколько лет назад я решение проблемы искал.
Насколько знаю, сам QUIK до недавнего времени работал только на Windows + существовал сильно урезанный по функциональности WebQUIK.
Недавно один из брокеров (ПСБ) стал бросать в сообщения Квика, что у них также есть версии для MacOS и Android. Наверно, это новьё.
А под сам Линукс, походу, Квик еще не портировали, иначе нафиг мне была бы нужна поддержка XP.
Короче, соблюдаю первый программерский принцип — «не трогай то, что работает» 🙂 Как нашел несколько лет назад решение Ubuntu — Virtual Box — WinXP, так до сих пор заморачиваться с обновлением своих познаний не приходилось.
Цитата |
---|
sergei написал: А под сам Линукс, походу, Квик еще не портировали, |
Цитата |
---|
sergei написал: первый программерский принцип — «не трогай то, что работает» |
«не нужно чинить то, что не сломано . » (с)
только не понятно к чему сии чистосердечные признания.
Цитата |
---|
Imersio Arrigo написал: Ибо кроме ядра нужен 64битный юзерспейс. |
«дрова» даже нужнее оказались 🙂
мфц/винАпи был — квик бы мог работать видимо — может запробую в виртуалке как-нить.
Цитата |
---|
новичок написал: «дрова» даже нужнее оказались 🙂 |
Ну, во-1-х поставить дров и юзерспейс не противоречит никак.
во-2-х, я в линухе долго жил на 64х ядре, с 32х юзерспейсом. Сначала было РАЕ-шное ядро, потом заменил на 64.
А на 64-либы переехал только тогда когда обнаружил что виртуалбокс 32хбитный не работает с 64хбитными модулями ядра.
Цитата |
---|
sergei написал: Через WINE кривовато почему-то получалось |
Цитата |
---|
Павел написал: Благодарю за помощь. Все получилось. |
Рад был помочь.
Еще хотел бы поправить написанное мной выше, версия 5.1.4 это не последняя версия, есть еще патч 5.1.5 ( https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Static/ ), правильнее будет использовать его.
Проверял на Visual Studio 2015 пакет lua-5.1.5_Win64_dll15_lib.zip, все работает, библиотеки собираются.
У меня не получается собрать почему-то
Собираю VC Enterprise 2015
библиотеку беру lua-5.1.5_Win64_vc15_lib.zip
собираю проект release x64 : dll с многобайтовой кодировкой
при сборке виду кучу неразрешенных внешних символов типа feof в функции getF или freopen в функции luaL_loadfile.
как понимаю, это имена из lua5.1.lib и дело в разрядности сборки.
тыкните пальцем, куда смотреть, пжлста.
Отвечу сам себе, раз все молчат.
Надо не полагаться ни на кого, надо брать исходники и медленно спускаться с горы и не торопясь собирать все с нуля — сначала библиотеку, потом длл.
Цитата |
---|
» target=»_blank» rel=»nofollow»>s_mike@rambler.ru написал: У меня не получается собрать почему-тоСобираю VC Enterprise 2015библиотеку беру lua-5.1.5_Win64_vc15_lib.zipсобираю проект release x64 : dll с многобайтовой кодировкойпри сборке виду кучу неразрешенных внешних символов типа feof в функции getF или freopen в функции luaL_loadfile.как понимаю, это имена из lua5.1.lib и дело в разрядности сборки. |
Цитата |
---|
s_mike@rambler.ru написал: У меня не получается собрать почему-тоСобираю VC Enterprise 2015библиотеку беру lua-5.1.5_Win64_vc15_lib.zipсобираю проект release x64 : dll с многобайтовой кодировкойпри сборке виду кучу неразрешенных внешних символов типа feof в функции getF или freopen в функции luaL_loadfile.как понимаю, это имена из lua5.1.lib и дело в разрядности сборки. |
Добрый день.
В итоге у Вас получилось собрать? Какую библиотеку собираете, собственную или общедоступную?
Зачастую просто поменять Lua-шные исходники в проекте не достаточно, нужно проверить все линки в настройках проекта.
взял исходники Lua 5.1.5, собрал их в модели 64, проверил. Вроде нормально, работу работают.
после чего на основе получившейся .lib скомпоновал свою dll. Тоже на первый взгляд удачно. Время покажет насколько.
все остальные библиотеки и способы, в том числе те, на которые здесь были ссылки, не собрались нормально.
Цитата |
---|
» target=»_blank» rel=»nofollow»>s_mike@rambler.ru написал: все остальные библиотеки и способы, в том числе те, на которые здесь были ссылки, не собрались нормально. |
Цитата |
---|
Юрий написал: Очень грустно что разработчики поставили людей перед фактом. Или работай в старой но у тебя не будет ни УДС ни части другой информации или переходи в новую но вместо торговли бегай в поисках тех у кого покупал модули, которые облегчали тебе работу. Такое отношение к клиенту у Вас проходит только потому что Вы монополисты, если бы была возможность то плюнул бы на все удобства quik и ушел бы в другую систему. Вы похоже зазвездились. Жалко. |
Это вопрос расстановки приоритетов в условиях ограниченного ресурса: можно тратить время и силы на производство, тестирование, документирование и сопровождение двух параллельных платформ, но в таком случае ресурса на дальнейшее развитие терминала (в том числе и реализацию многочисленных пожеланий пользователей) не останется. В таких условиях выбор приоритетов был очевиден. В то же время мы, конечно, понимаем те затруднения, с которыми столкнулись пользователи нашего продукта, и со своей стороны прикладываем все усилия для того, чтобы помочь их разрешить.
Добавил в архив тестовый пример DLL на C++ для QUIK 8 (x64)
Там же можно взять .lib-файл для сборки своих проектов
Цитата |
---|
Аркадий написал: С квиком 7семеркой брокер обнуляет безопасность |
Это не так от слова совсем. По всей видимости Вы поняли своего брокера не верно.
Цитата |
---|
s_mike@rambler.ru написал: взял исходники Lua 5.1.5, собрал их в модели 64, проверил. Вроде нормально, работу работают. |
после чего на основе получившейся .lib скомпоновал свою dll. Тоже на первый взгляд удачно. Время покажет насколько.
все остальные библиотеки и способы, в том числе те, на которые здесь были ссылки, не собрались нормально.
алгоритм другой должен быть, либина вообще-то по уму должна быть от квиковской lua, а не от общедоступной. они немного отличаются.
алгоритм:
1. получаем список функций экспорта библиотеки, где lua5.1.dll — библиотека из поставки quik 8.0
dumpbin.exe /EXPORTS lua5.1.dll > lua5.1.exports
2. форматируем файлик .exports, оставляя только имена функций и добавляя сверху одно слово EXPORTS, пример
EXPORTS
is_proxy_dll
luaA_pushobject
luaC_barrierback
.
3. меняем расширение .exports на .def
4. создаём lib:
lib.exe /def:lua5.1.def /machine:x64 /out:lua5.1.lib
я использовал утилиты из состава MSVC:
MSVC2017CommunityVCToolsMSVC14.14.26428binHostx64x64
Всем привет, ребята помогите откомпилировать в 64 бит, я в 64х битном компилировании и в MSVC Studio почти ноль, немного компилировал на Mingw 32х битном, делал руководствуясь примерами выше https://quikluacsharp.ru/qlua-c-cpp-csharp/konnektor-dll-quik-qlua-lua-c/ , неполучается, скачал MSVC Community 2019, но не думаю что проблема в отличии версии 2019 от 2013, сделал все один в один, в точности как в странице по ссылке, а компилировать пробовал библиотечку Lua file system — https://github.com/keplerproject/luafilesystem
скачал https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Static/lua-5.1.5_Win64_.
закинул хедеры от исходников и из луабинов 5.1.5 в созданную папку с проектом, повторил все шаги, на этапе сборки система ругается, см.скриншот, я так понимаю потому что исходник lfs.c — это С а не С++, но в msvc я не вижу нигде возможности задать чтобы исходники были С, только С++ или C#,
Причем на mingw (32-ух битном я компилил эту библиотечку вообще без проблем, так что ошибок никаких там в коде быть не может) решил поэтому попробовать на Mingw-w64, скачал установил, скачал под мингв64 и луабинарии — https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Static/lua-5.1.5_Win64_.
распаковал, раскидал всё по нужным папкам в мингв64, путь к исполняемым файлам мингв64 в винде в системных переменных установил в path — c:mingw64bin
захожу в папку с распакованными исходниками lfs, где lfs.c лежит и выполняю —
Lua,чем открыть? |
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
|
|
Рекомендуемые сообщения
- Жалоба
Поменял я значит luac файл, что бы он открывался с помощью блокнота, теперь не работает в игре такой luac файл как DamagInformer.luac, можно ли вернуть по умолчанию? Что бы было как раньше?
Поделиться сообщением
Ссылка на сообщение
- Жалоба
Короче говоря открыл .luac файл, блокнотом
Поделиться сообщением
Ссылка на сообщение
- Жалоба
короче говоря ты после открытия сохранил файл в виде знаков вопроса, теперь ничего не сделаешь, качай заново файл
Поделиться сообщением
Ссылка на сообщение
- Жалоба
Ты никак не откроешь чистый код .luac файла
Поделиться сообщением
Ссылка на сообщение
- Жалоба
10 часов назад, SportFrom сказал:
Ты никак не откроешь чистый код .luac файла
Причём здесь чистый код?
Выдайте оффтоп этому человеку.
Поделиться сообщением
Ссылка на сообщение
- Жалоба
7 часов назад, TopskoyMaxim сказал:
Причём здесь чистый код?
Выдайте оффтоп этому человеку.
а че ты пытался увидеть, если не сам код?, открыть через блокнот можно только .lua файлы, .luac являются заскриптоваными, если хочешь увидеть содержимое, то качай декомпилятор. Ответ я тебе дал — ты изменил кодировку на символы, качай файл по новой
Изменено 11 августа, 2018 пользователем AR4i | Liqvidus.
Поделиться сообщением
Ссылка на сообщение
- Жалоба
10 часов назад, AR4i | Liqvidus. сказал:
а че ты пытался увидеть, если не сам код?, открыть через блокнот можно только .lua файлы, .luac являются заскриптоваными, если хочешь увидеть содержимое, то качай декомпилятор. Ответ я тебе дал — ты изменил кодировку на символы, качай файл по новой
Открыть можно и .cs файлы, через блокнот.
У меня по умолчанию стоит, читать умеешь?
Изменено 12 августа, 2018 пользователем TopskoyMaxim
Поделиться сообщением
Ссылка на сообщение
- Жалоба
13 часов назад, TopskoyMaxim сказал:
Открыть можно и .cs файлы, через блокнот.
У меня по умолчанию стоит, читать умеешь?
ты для начала темы нормально создавай, а не лей воду, у тебя написано что не работает lua файл, клоун
Win+R ->
regedit -> HKEY_CURRENT_USER -> SOFTWARE -> Microsoft -> Windows -> CurrentVersion -> Explorer -> FileExts -> .cs
1) OpenWithList -> (значение)NOTEPAD.EXE — удаляешь параметр
2)UserChoise -> (значение) */NOTEPAD.EXE — удаляешь параметр
перезагружаешь ведро и радуешься
p.s. что не получиться пиши в ответ
p.s.s. бэкап реестра сделай, а то удалишь еще че то
Изменено 12 августа, 2018 пользователем AR4i | Liqvidus.
Поделиться сообщением
Ссылка на сообщение
- Жалоба
17 минут назад, AR4i | Liqvidus. сказал:
ты для начала темы нормально создавай, а не лей воду, у тебя написано что не работает lua файл, клоун
Win+R ->
regedit -> HKEY_CURRENT_USER -> SOFTWARE -> Microsoft -> Windows -> CurrentVersion -> Explorer -> FileExts -> .cs
1) OpenWithList -> (значение)NOTEPAD.EXE — удаляешь параметр
2)UserChoise -> (значение) */NOTEPAD.EXE — удаляешь параметрперезагружаешь ведро и радуешься
p.s. что не получиться пиши в ответ
p.s.s. бэкап реестра сделай, а то удалишь еще че то
клоун? в название поменял.
Поделиться сообщением
Ссылка на сообщение
- Жалоба
15 минут назад, TopskoyMaxim сказал:
клоун? в название поменял.
Господи, ребёнок ты можешь писать понятно или не? и да, будешь много пиз***, будешь исправлять проблему сам, мне оно и на**й не нужно, е**бать себе мозг, я тебе написал что делать, делай
Поделиться сообщением
Ссылка на сообщение
- Жалоба
В 11.08.2018 в 09:02, TopskoyMaxim сказал:
Причём здесь чистый код?
Выдайте оффтоп этому человеку.
ты ебанутый ***** через блокнот открываются только lua файлы у которых код открыт а luac это с закрытым кодом скрипты их не посмотришь как сказал чел выше нужно качать декомпилятор чтоб код открыть
Поделиться сообщением
Ссылка на сообщение
- Жалоба
В 10.08.2018 в 21:59, TopskoyMaxim сказал:
Поменял я значит luac файл, что бы он открывался с помощью блокнота, теперь не работает в игре такой luac файл как DamagInformer.luac, можно ли вернуть по умолчанию? Что бы было как раньше?
сбросить настройки ассоциации файлов
-
1
Поделиться сообщением
Ссылка на сообщение
- Жалоба
Сейчас бы закомпилированные файлы пытаться открыть блокнотом. xD
Поделиться сообщением
Ссылка на сообщение
Эта тема закрыта для публикации ответов.
Почему все ярлыки открываются одной программой и как это исправить?
Часто пользователи сталкиваются с проблемой, когда все ярлыки открываются одной программой. Это может быть браузер, блокнот, Total Commander или другое приложение. Обычно такое случается, если пользователь задаёт по умолчанию программу для открытия файлов с расширением .lnk. В результате запуск любого приложения заканчивается ошибкой, так как все ярлыки открываются одной программой.
Жмём «Win+R» и вводим «regedit». Нажимаем «ОК».
Откроется «Редактор реестра». Переходим по ветке «HKEY_CURRENT_USER», «Software», «Microsoft», «Windows», «CurrentVersion», «Explorer», «FileExts», «.lnk».
Здесь нужно удалить подраздел «UserChoice» и перезагрузить ПК.
Необходимо скачать утилиту Fixlnk. Загрузится архив. Открываем его и жмём на файле реестра. Соглашаемся внести изменения.
Стоит отметить, что подобная ситуация может возникнуть и с приложениями расширения .ехе. В данном случае запустить редактор реестра не удастся. Поэтому нужно загрузиться с установочного диска или с флешки с Windows PE. Здесь нужно запустить утилиту Registry Workshop перейти по ветке реестра «HKEY_CURRENT_USER», «Software», «Microsoft», «Windows», «CurrentVersion», «Explorer», «FileExts», «.exe» и удалить подраздел UserChoice. После выполнения операции нужно перезагрузить ПК.
После загрузки Windows открываются текстовые файлы.
Приветствую всех. Сегодня кратенько об одной «не совсем ошибке», с которой обратился пользователь. С некоторых пор у него после загрузки Windows открываются текстовые файлы с содержимым [.ShellClassInfo] LocalizedResourceName=@%SystemRoot%system32shell32.dll,-21787 . По его же сообщениям, проверка содержимого автозагрузки ничего не дала. Речь могла только идти о «вирусном заражении». Однако первый же взгляд на Рабочий стол пользователя всё прояснил. Да и сама строчка продвинутым пользователям, наверное, уже всё рассказала.
В общем, проблема стара как мир, и содержимое «ошибки» не меняется уже лет десять. Такая проблема происходит по причине, когда каким-то макаром с файла desktop.ini снимается атрибут Скрытый. На Рабочем столе их, файлов, может быть два. И, в зависимости от их количества и по этой же причине, после загрузки Windows открываются текстовые файлы Блокнота не в единственном экземпляре.
Так что для вас, если вы столкнулись с таким в своей Windows, после решения конкретной проблемы было бы полезнее выяснить именно причину её появления. А так…
Что за desktop.ini, и почему их два?
Файл desktop.ini отвечает за отображение папки. Причём любой; так, этот файл вы можете найти в любой из директорий Windows. Отображаемый внутри файла (который по умолчанию может быть отредактирован именно Блокнотом) код содержит в себе настройки информацию по настройкам, значку, названию. Как только в папке вы что-то поменяли, в файле desktop.ini автоматически наступают изменения. Мы с вами как пользователи с этим файлом никак не «общаемся». Файл системный и должен быть по умолчанию сокрыт вот этой настройкой:
Сюда, если что, можно добраться любой из команд из строки Выполнить (WIN + R)
Почему их два? Рабочий стол как папка уникален для каждой учётки. И к каждой из папок есть доступ только у двоих: «хозяина» учётной записи и Администратора (если его учётка активирована). Путь к ней вам знаком:
Однако есть и ещё одна вот по этому адресу:
Там лежат файлы и ярлыки, к которым есть доступ у любого из юзеров. Так вот, Рабочий стол, который вы видите после запуска Windows не что иное, как КОМБИНАЦИЯ обоих столов. Сняв атрибут Скрытый, система автоматически подбирает наиболее подходящее для файла приложение, и уже после загрузки Windows открываются текстовые файлы запускаются оба файла, вскрывая содержимое этих документов. Оно одинаково для всех пользователей Windows 10. По умолчанию содержимое файла desktop.ini для Рабочего стола такое (можете вставить в рукотворный файл desktop.ini, если есть подозрения на проблемы с ним связанные):
где последняя строчка выказывает принадлежность файла именно к Рабочему столу залогинившегося в данную учётку юзера . В отличие от, например,
который принадлежит папке Изображения. И так далее. Редко, но бывает, что файлы (не знаю по чьей инициативе) гуляют из директории в директорию, вызывая некоторые странности и системные аномалии.
Все программы открываются одной программой. Решение проблемы
Проблема выглядит следующим образом: ярлыки всех программ и папок выглядят как как ярлык одной программы. Они могут выглядят как ярлык Блокнота, PowerPoint, WordPad и т. д. При попытке запустить любые программы (исполняемый файл с расширением. EXE), все программы открываются, к примеру, Блокнотом. Проще говоря, компьютер пытается открывать разные программы какой-то одной программой.
Конкретный случай
В наши руки попал ноутбук (SAMSUNG NP300E5A — чисто для информации, так как это не имеет отношения к возникшей проблеме), у которого все значки программ на рабочем столе выглядели как значки PowerPoint.
Все пиктограммы выглядят одинаково. В конкретном случае как PowerPoint, но могут быть значки и любой другой программы
При попытке загрузить, к примеру, браузер Google Chrom. появилось следующее сообщение «PowerPoint не может открывать файлы типа С:…» .
Ошибка при попытке запустить браузер Google Chrom
Чем открыть файл ехе случайно открыл с помощью блокнота терь все файлы с блокнотом что делать вот скайп denisarsntev21r
Александр Иванов Просветленный (32475) 3 года назад
Нарушена ассоциация исполняемых файлов. exe
Там же есть ссылка на рег-файлы для исправления. [ссылка заблокирована по решению администрации проекта] звездочку убрать
Рег файл качать для своей винды!
Скачать рег-файл для восстановления исполняемых EXE, разархивировать и запустить, согласиться с изменениями реестра и перегрузить комп.
Программы открываются Блокнотом или WordPad. Решение проблемы
Программы открываются Блокнотом или WordPad. Решение проблемы
В один прекрасный момент, может случиться так, что все программы, которые вы пытаетесь запустить на своем компьютере, открываются при помощи приложения Блокнот или WordPad. В конкретно взятом случает, на ноутбуке ASUS, работающем под управлением операционной системы Windows 7 домашняя базовая, все программы открывались в WordPad.
При попытке запустить восстановление системы запускается WordPad
Чтобы решить проблему, необходимо внести изменения в системный реестр Windows 7. Для этого необходимо загрузить и запустить на выполнение два файла реестра:
После запуска файлов согласитесь на внесение изменений в системный реестр. Перезагрузите компьютер. После проделанных операций, все должно вернуться на круги своя.
Данное решение подойдет и в тех случаях, когда программы запускаются при помощи приложений отличных от Блокнота и WordPad.
0 / 0 / 0 Регистрация: 05.06.2011 Сообщений: 16 |
|
1 |
|
04.07.2011, 00:40. Показов 11077. Ответов 12
Возник такой вопрос: лазя по просторам своего компа, откопал файл с расширением lua. Конечно попытался открыть, но ни одна среда его правильно открывать не хочет…пробовал lua editorom-не получилось…Потом вспомнил, что луа-формат каким-то образом связан с с++…Попробовал открыть Visual C++, выдало ошибочку с инфой: «Убедитесь, что установлено приложение для форматов lua»…Подскажите, что это за приложение?Или если у кого получится открыть файл из вложений какой-то средой, пожалуйста, скажите какой…Очень надо интересно аж немогу)))
__________________
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
04.07.2011, 00:40 |
12 |
237 / 210 / 29 Регистрация: 08.06.2011 Сообщений: 467 |
|
04.07.2011, 00:55 |
2 |
0 |
541 / 446 / 162 Регистрация: 10.12.2009 Сообщений: 1,857 |
|
04.07.2011, 00:57 |
3 |
А по просторам такой штуки, как Internet, не пробовали лазить?!
0 |
0 / 0 / 0 Регистрация: 05.06.2011 Сообщений: 16 |
|
04.07.2011, 01:09 [ТС] |
4 |
Mиxaил, такого рода ответа я и ждал…Дело в том, что все советы ссылаются на notepad, luaeditor, ну или стандартный блокнот…Но при открытии этого скрипта вышеперечисленными программами, код выглядит, мягко говоря, не совсем понятнто…. Микс «абракадебрических» символов с иногда проскаивающими нормальными обозначениями… Мой вопрос-то вот в чем заключался: я просил, чтобы вы не поленились, а попробовали этот файл открыть…И посоветовали чем файл откроется со 100% правильностью в синтаксисе…без искажений…А не давать советы, которые сгожи будут, пожалуй, только обезьяне….)))
0 |
237 / 210 / 29 Регистрация: 08.06.2011 Сообщений: 467 |
|
04.07.2011, 01:51 |
5 |
CEO, теперь открывается блокнотом
0 |
0 / 0 / 0 Регистрация: 05.06.2011 Сообщений: 16 |
|
04.07.2011, 02:01 [ТС] |
6 |
Net_Wanderer, ммм, здорово…Интересно, как вы сделали так, что он открылся без иероглифов)???
0 |
В астрале 8048 / 4805 / 655 Регистрация: 24.06.2010 Сообщений: 10,562 |
|
04.07.2011, 13:07 |
7 |
CEO, Мб кодировка?
0 |
0 / 0 / 0 Регистрация: 18.05.2012 Сообщений: 4 |
|
18.05.2012, 15:08 |
8 |
CEO, теперь открывается блокнотом Расскажи, если не секрет как правильно открывать файлы lua, а то я хотел тут 1 игрушку переделать, а там все файлы в lua.
0 |
0 / 0 / 0 Регистрация: 08.07.2014 Сообщений: 4 |
|
08.07.2014, 22:35 |
9 |
Народ помогите плиз. Таже тема. Как в читабельный вид то его перевести?
0 |
Псевдослучайный 1946 / 1145 / 98 Регистрация: 13.09.2011 Сообщений: 3,215 |
|
09.07.2014, 14:55 |
10 |
Buagaga, выбрать здесь декомпилятор по вкусу.
1 |
0 / 0 / 0 Регистрация: 08.07.2014 Сообщений: 4 |
|
12.07.2014, 19:35 |
11 |
А поподробнее можно описать порядок работы с этими декомпиляторами?
0 |
0 / 0 / 0 Регистрация: 08.07.2014 Сообщений: 4 |
|
13.07.2014, 15:36 |
13 |
startGame.rar
0 |
Содержание
- LUA – Файл с кодом на языке Lua (Lua Source File)
- Расширение LUA
- Чем открыть файл LUA
- Описание расширения LUA
- Расширение файла LUA
- Оглавление
- ✅ World of Warcraft Interface Configuration
- ✅ LUA Source Code
- Это возможно, что расширение имени файла указано неправильно?
- 🔴 Можно ли изменить расширение файлов?
- Как открыть lua скрипт
- Расширение LUA
- Чем открыть файл LUA
- Описание расширения LUA
- Расширение LUA
- Как открыть элементы в формате LUA
- Открыть документ с подсветкой кода
- Проблемы с открытием файла
- DonHomka
LUA – Файл с кодом на языке Lua (Lua Source File)
Расширение LUA
Чем открыть файл LUA
В Windows: Dawn of War Mod Tools, Addon Studio for World of Warcraft, Blizzard World of Warcraft Interface AddOn Kit, Блокнот, Notepad++, Sublime Text, Adobe ExtendScript, Lua Player for PSP, Любой другой текстовый редактор
В Mac OS: GNU project C and C++ compiler (GCC), Blizzard World of Warcraft Interface AddOn Kit, Rovio Mobile Angry Birds, MacroMates TextMate, Любой другой текстовый редактор
В Linux: gedit, GNU project C and C++ compiler (GCC), GNU Emacs, Vim, Любой другой текстовый редактор
Описание расширения LUA
Популярность:
Расширение LUA обычно ассоциируется с так называемыми скриптами, написанными на языке Lua. Lua является мощным, быстрым, легким, встраиваемым скриптовым языком. По идеологии и реализации похож на JavaScript. Lua объединяет простой процедурный синтаксис с мощным описанием данных конструкций на основе ассоциативных массивов и расширяемой семантики. Lua представляет собой язык с динамическим определением типов данных, работает, интерпретируя байт-код для основе регистров виртуальной машины, и имеет автоматическое управление памятью с дополнительным сбором мусора, что делает его идеальным для конфигурации, разработки сценариев и быстрого прототипирования.
В Lua восемь основных типов:
- nil (неопределенный) обозначает отсутствие пригодного значения
- boolean (логический) состоит из false (ложь) и true (истина)
- number (числовой) – это вещественные числа (double)
- string (строковый)
- function (функция)
- userdata (пользовательские данные)
- thread (поток)
- table (таблица)
Язык Lua вляется свободно распространяемым, с открытыми исходными текстами на языке Си. Может компилироваться в программу при помощи компилятора ANSI C. Lua разработан подразделением Tecgraf Католического университета Рио-де-Жанейро в Бразилии (Computer Graphics Technology Group of Pontifical Catholic University of Rio de Janeiro in Brazil) в 1993 году. Авторы языка — Роберту Иерузалимски (Roberto Ierusalimschy), Луиш Энрике ди Фигейреду (Luiz Henrique de Figueiredo) и Валдемар Селиш (Waldemar Celes).
Источник
Расширение файла LUA
Оглавление
Мы надеемся, что вы найдете на этой странице полезный и ценный ресурс!
2 расширений и 0 псевдонимы, найденных в базе данных
✅ World of Warcraft Interface Configuration
✅ LUA Source Code
Другие типы файлов могут также использовать расширение файла .lua.
По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:
Это возможно, что расширение имени файла указано неправильно?
Мы нашли следующие аналогичные расширений файлов в нашей базе данных:
Если дважды щелкнуть файл, чтобы открыть его, Windows проверяет расширение имени файла. Если Windows распознает расширение имени файла, файл открывается в программе, которая связана с этим расширением имени файла. Когда Windows не распознает расширение имени файла, появляется следующее сообщение:
Windows не удается открыть этот файл:
Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать для его открытия.
Если вы не знаете как настроить сопоставления файлов .lua, проверьте FAQ.
🔴 Можно ли изменить расширение файлов?
Изменение имени файла расширение файла не является хорошей идеей. Когда вы меняете расширение файла, вы изменить способ программы на вашем компьютере чтения файла. Проблема заключается в том, что изменение расширения файла не изменяет формат файла.
Если у вас есть полезная информация о расширение файла .lua, напишите нам!
Источник
Как открыть lua скрипт
Расширение LUA
Чем открыть файл LUA
В Windows: Dawn of War Mod Tools, Addon Studio for World of Warcraft, Blizzard World of Warcraft Interface AddOn Kit, Блокнот, Notepad++, Sublime Text, Adobe ExtendScript, Lua Player for PSP, Любой другой текстовый редактор
В Mac OS: GNU project C and C++ compiler (GCC), Blizzard World of Warcraft Interface AddOn Kit, Rovio Mobile Angry Birds, MacroMates TextMate, Любой другой текстовый редактор
В Linux: gedit, GNU project C and C++ compiler (GCC), GNU Emacs, Vim, Любой другой текстовый редактор
Описание расширения LUA
Популярность:
Расширение LUA обычно ассоциируется с так называемыми скриптами, написанными на языке Lua. Lua является мощным, быстрым, легким, встраиваемым скриптовым языком. По идеологии и реализации похож на JavaScript. Lua объединяет простой процедурный синтаксис с мощным описанием данных конструкций на основе ассоциативных массивов и расширяемой семантики. Lua представляет собой язык с динамическим определением типов данных, работает, интерпретируя байт-код для основе регистров виртуальной машины, и имеет автоматическое управление памятью с дополнительным сбором мусора, что делает его идеальным для конфигурации, разработки сценариев и быстрого прототипирования.
В Lua восемь основных типов:
- nil (неопределенный) обозначает отсутствие пригодного значения
- boolean (логический) состоит из false (ложь) и true (истина)
- number (числовой) – это вещественные числа (double)
- string (строковый)
- function (функция)
- userdata (пользовательские данные)
- thread (поток)
- table (таблица)
Язык Lua вляется свободно распространяемым, с открытыми исходными текстами на языке Си. Может компилироваться в программу при помощи компилятора ANSI C. Lua разработан подразделением Tecgraf Католического университета Рио-де-Жанейро в Бразилии (Computer Graphics Technology Group of Pontifical Catholic University of Rio de Janeiro in Brazil) в 1993 году. Авторы языка — Роберту Иерузалимски (Roberto Ierusalimschy), Луиш Энрике ди Фигейреду (Luiz Henrique de Figueiredo) и Валдемар Селиш (Waldemar Celes).
Каждому пользователю полезно узнать, как открыть файл 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 есть возможность открывать документы, используя любую программу для редактирования текста, совместимую с Mac, например TextMate или Apple TextEdit. Также можно использовать компилятор C или C ++, который предоставляется проектом GNU и доступен для бесплатной загрузки на веб-сайте GNU.org.
Если файл содержит исходный код и сценарии для игр, совместимых с Mac OS X, допускается использование Rovio Mobile Angry Birds, который доступен на веб-сайте Rovio или в комплекте дополнений World of Warcraft Interface от Blizzard Entertainment.
Для операционной системы Linux можно использовать Emacs или C и C ++ Compiler. Обе программы имеют открытый исходный код и доступны для бесплатной загрузки на веб-сайте GNU.org. Кроме того имеется возможность использовать любую программу для редактирования текста для Linux, такую как gEdit, Vim или Nano Editor.
Открыть документ с подсветкой кода
Конечно, можно использовать любой текстовый редактор для просмотра элементов с таким типом. Но лучше использовать редактор с подсветкой кода. Один из них – это инструмент Sublime Text. Но можно использовать и Notepad ++.
На изображении ниже есть возможность увидеть разницу между программой с подсветкой кода и классическим блокнотом.
Таким образом, можно заметить, что некоторые ключевые слова показаны в определенных цветах. Так код стает более читабельным и можно наглядно просмотреть его структуру.
Кроме того, в программе видно количество строк. Это особенно полезно, когда в журнале ошибок появляется оповещение: «строка 23 в example.lua». Отыскать проблему можно намного быстрее.
Еще одна полезная функция: если дважды щелкнуть слово, оно выделяется во всем документе.
Опция используется для проверки написания и при просмотре игрового кода, когда есть смысл отыскать, где используется функция (например, SILVER_BIRDCAGE).
Во время поиска нужно учитывать, что код чувствителен к регистру, то есть: Silver_birdcage, silver_birdcage и SILVER_BIRDCAGE – это не одно и то же.
Другой вариант поиска, но в большем масштабе, это «Найти в файлах» (комбинация клавиш Ctrl + Shift + F). Этот вариант позволяет искать что-то во всех документах указанной папки. Почему это полезно?
Допустим, необходимо добавить функцию «onattackother» к своему персонажу или монстру и надлежит получить лучший пример того, как и что можно сделать.
Для этого подобает ввести «onattackother» и выбрать путь к папке: «C:SteamsteamappscommonDon’t Starve Togetherdatascriptsprefabs». Результат поиска изображен ниже.
Далее просто нужно дважды щелкнуть на строку, чтобы открыть соответствующий файл и просмотреть функцию.
Следовательно, для программистов намного лучше использовать программу с подсветкой синтаксиса.
Проблемы с открытием файла
Если не получается открыть документ LUA, нелишне просмотреть перечисленные возможные причины и выяснить точную причину этой ошибки:
Если принято решение устранить проблему самостоятельно, лучше иметь базовые знания о том, как работает компьютер. Стоит быть очень осторожным и терпеливым, особенно при внесении изменений в системный реестр. В противном случае можно столкнуться с другой проблемой при попытке исправить эту.
Слишком много пользователей испытывают трудности с открытием файлов с расширением LUA. Поэтому важно внимательно искать причину возникшей ошибки.
Заключение
Элементы с расширением LUA очень популярны и существует много способов их открыть: используя любой текстовый редактор (WordPad, Блокнот, TextEdit) или с помощью редакторов подсветкой синтаксиса (Sublime Text, Notepad ++).
DonHomka
Это руководство призвано исполнить две цели: обучить разработке скриптов с нуля и восполнить все пробелы в знаниях о Lua скриптинге под MoonLoader. В нём освещены все аспекты разработки — от самого простого до продвинутых возможностей и приемов, то есть оно подходит как и для начинающих скриптеров, так и для программистов с опытом. Предварительное прочтение старого руководства не требуется, здесь есть вся необходимая и более актуальная информация.
А если вы всё ещё не знакомы с MoonLoader, то сейчас самое время ознакомиться.
Ну что, приступим?
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, после этого она откроется как проект.
Notepad++
Notepad++ — еще один бесплатный и удобный редактор. Он является функциональной заменой стандартного блокнота и отлично подходит для написания Lua скриптов.
Скачать Notepad++
Проект по-умолчанию.
Как и в Atom, здесь есть возможность показа меню проекта, а точнее «Папка как Проект». В меню «Файл» выбираем пункт «Открыть Папку как Проект» и указываем путь к папке «moonloader».
Кодировка по-умолчанию.
Над лентой выбираем пункт Опции и переходим в Настройки. В меню слева выбираем пункт Новый документ и в разделе кодировки ставим флажок на список, в котором выбираем кодировку Windows-1251
MoonLoader основан на языке программирования Lua, знание хотя бы основ которого обязательно для дальнейшей работы. Поскольку Lua очень популярен в среде разработки игр и других сферах, по нему полно учебных материалов. Ниже приведено несколько ресурсов, позволяющих изучить Lua от корки до корки. Не стоит пренебрегать этими уроками даже более опытным разработчикам, зачастую можно найти для себя много нового. Имейте в виду, что в MoonLoader используется LuaJIT — Lua 5.1 с некоторыми фичами Lua 5.2 и своими дополнениями, поэтому некоторые мелочи из этих материалов будет неприменимы в MoonLoader.
После установки среды разработки, изучения основ Lua и ознакомления с документацией MoonLoader, можно приступать от теории к практике. Давайте сначала рассмотрим самое основное, на всякий случай.
Lua скрипты и логи
Для начала нужно создать сам скрипт — он из себя представляет обычный текстовый файл с расширением .lua. Поместить его необходимо в папку moonloader, находящуюся в папке игры. Из корня этой папки MoonLoader загружает все скрипты с расширениями .lua и .luac (скомпилированные).
В этой же папке создаётся файл moonloader.log, в который ведётся журналирование всех важных событий, происходящих со скриптами: загрузка, завершение, сообщения скриптов и самое главное — ошибки. Да, ошибки, происходящие в скриптах, будут выводиться в этот файл, и в первую очередь нужно обращаться в него, если ваш скрипт не работает и вы не знаете почему. Для удобства вы можете установить скрипт SF Integration, тогда логи будут выводиться ещё и в консоль SAMPFUNCS.
Итак, откройте созданный вами скрипт и продолжайте читать.
Глобальная область
Глобальная область — это основное тело скрипта, т.е. всё, что находится вне функций. В основном глобальная область используется для указания директив, подключения модулей, объявления каких-либо глобальных переменных и функций. Она выступает первым этапом загрузки скрипта, код из неё выполняется один раз после загрузки скрипта (а скрипты загружаются почти сразу же после запуска игры) и не может быть приостановлен. Основная работа со скриптом производится в потоке main.
Пример: Загружаем библиотеку VKEYS, записываем моё имя в переменную myName, объявляем функцию main.
После запуска этого кода будет видно, что сообщения вывелись не в последовательности вызова функций, а в порядке завершения задержек.
Как и с main, поток будет завершен и уничтожен, если его не удерживать активным.
Практическое применение потоков довольно широко, но в небольших скриптах они чаще всего не нужны, о потоках нужно знать, но не применяйте их без необходимости. Реальными случаями использования потоков может быть разделение логики скрипта и отображения графики или использование задержек в консольных и чат командах.
Подробнее о потоках можно почитать на вики: lua — luathread | BlastHack — DEV_WIKI (https://blast.hk/wiki/lua:luathread)
Директивы
Скрипты для MoonLoader могут содержать о себе некоторую информацию и иметь определённые свойства исполнения — и то, и другое задаётся с помощью директив. Директивы — это обычные функции, предназначенные для указания информации о скрипте и изменения его поведения. Их принято обозначать в самом начале скрипта.
Все параметры, задающиеся директивами, можно получить из любого скрипта, обратившись к соответствующим полям класса LuaScript.
Пример:
В этом примере показаны не все директивы, за полным списком обращайтесь к соответствующей странице на вики.
События и колбэки
Событиями, а точнее их обработчиками, в MoonLoader называются функции, вызывающиеся в скриптах автоматически при каком-либо действии в игре, требующим обработки. Обработчики событий могут иметь входящие и возвращаемые параметры: входящие передают какую-то информацию скрипту, а возвращаемые позволяют повлиять на дальнейшую обработку после совершения события.
Зарегистрировать обработчик события можно двумя способами: просто добавить в скрипт функцию с соответствующим именем, либо воспользоваться функцией addEventHandler. Учтите, что первым способом обработчик может быть зарегистрирован только один раз.
Скрипты с зарегистрированными событиями не завершаются самостоятельно.
Пример: onScriptTerminate вызывается при завершении какого-либо скрипта
Внутри обработчиков событий нельзя использовать задержки, поскольку вызов события требует немедленного возврата из функции-обработчика. Для обхода этого ограничения можно использовать потоки.
Со списком всех событий и их назначениями можно ознакомиться на вики: moonloader — events | BlastHack — DEV_WIKI (https://blast.hk/wiki/moonloader:events)
Колбэки (функции обратного вызова) выступают реакцией на действие и по концепции очень похожи на события, но у них есть два отличия: первое — колбэк всегда регистрируется явно, чаще путём вызова функции с передачей функции-колбэка в качестве аргумента, второе — он всегда связан с какой-либо сущностью (командой, идентификатором и т.п.), т.е. будет вызван только если возникшее событие касается связанной сущности (например, колбэк команды будет вызван при вводе только одной команды, а не каждой, как это было бы с событием). Примером функции с колбэком является downloadUrlToFile, принимающая последним аргументом callback-функцию.
В колбэках, как и в событиях, нельзя использовать задержки.
Пример:
Работа с модулями не ограничивается стандартным набором, часто приходится иметь дело со сторонними модулями — такие модули не поставляются вместе с MoonLoader и требуют ручную установку. Примерами таких модулей являются Dear ImGui и SAMP.Lua.
Вы можете создать собственный модуль и использовать его в своих скриптах. Благодаря этому вам будет легче оказывать им поддержку, скрипты станут чище и компактнее, а повторяющегося кода будет намного меньше.
Помимо этой возможности в MoonLoader присутствует система импорта, позволяющая использовать работающий скрипт как модуль с общим доступом — об этом и о создании модулей будет сказано позже.
Настоятельная рекомендация: никогда не публикуйте свои работы вместе со стандартными библиотеками или с изменениями в сторонних библиотеках — это может привести к проблемам у пользователей.
Несмотря на обилие информации в теме, знать всё невозможно, поэтому чаще заглядывайте на Wiki, а также не забывайте о теме Вопросы на Lua скриптингу, где вам смогут помочь при возникновении сложностей.
Больше информации именно по Lua лучше искать в поисковиках, язык довольно простой и если эта тема вам никак не помогла — стоит поискать более углубленные уроки.
Базовые указания по повышению качества кода
Чтобы ваш код был чист и понятен, необходимо придерживаться некоторых правил, вот основные из них:
Следование этим простым правилам уже значительно повлияет на качество вашего кода, но если вам этого не хватает, вот отличный гайд по стилю кода (на английском): luarocks/lua-style-guide (https://github.com/luarocks/lua-style-guide)
Современные решения
С момента релиза 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:
Источник