Ru/Embedding Lua in the Source Engine: Difference between revisions
No edit summary |
No edit summary |
||
Line 26: | Line 26: | ||
В [[Half-Life 2: Sandbox]] используется чистый Lua, отличающийся от реализации языка в моде Гарри, который имеет ограничения на многие библиотеки и модифицированный синтаксис для комментариев в стиле C++. Цель Sandbox - обеспечить нейтральную, чистую, стандартизированную и хорошо документированную базу кода для взаимодействия с Lua, в отличие от статей, увиденных в сообществе разработчиков Valve, таких как учебник [http://www.rasterbar.com/products/luabind.html LuaBind] по языку Lua или просто [[Adding_Lua:ru|статья о добавлении Lua]]. | В [[Half-Life 2: Sandbox]] используется чистый Lua, отличающийся от реализации языка в моде Гарри, который имеет ограничения на многие библиотеки и модифицированный синтаксис для комментариев в стиле C++. Цель Sandbox - обеспечить нейтральную, чистую, стандартизированную и хорошо документированную базу кода для взаимодействия с Lua, в отличие от статей, увиденных в сообществе разработчиков Valve, таких как учебник [http://www.rasterbar.com/products/luabind.html LuaBind] по языку Lua или просто [[Adding_Lua:ru|статья о добавлении Lua]]. | ||
== | == Внедрение == | ||
=== | === Файлы === | ||
* [https://github.com/Noiwex/hl2sb-src/blob/master/src/game/shared/luamanager.cpp luamanager.cpp] | * [https://github.com/Noiwex/hl2sb-src/blob/master/src/game/shared/luamanager.cpp luamanager.cpp] | ||
* [https://github.com/Noiwex/hl2sb-src/blob/master/src/game/shared/luamanager.h luamanager.h] | * [https://github.com/Noiwex/hl2sb-src/blob/master/src/game/shared/luamanager.h luamanager.h] | ||
* [https://github.com/jaredballou/hl2sb/blob/master/bin/lua51.dll lua51.dll] | * [https://github.com/jaredballou/hl2sb/blob/master/bin/lua51.dll lua51.dll] | ||
=== | === Установка === | ||
Сценарии менеджера Lua, найденные в исходном коде Half-Life 2: Sandbox, были написаны обобщённо, чтобы их можно было добавить в любой мод. | |||
* | * Если вы работаете с исходным кодом мода, а не с плагином, указанные выше файлы должны быть помещены в '''src/game/shared''' | ||
* In your project files, place both the '''luamanager.cpp''' and '''luamanager.h''' in the '''Source Files''' filter | * In your project files, place both the '''luamanager.cpp''' and '''luamanager.h''' in the '''Source Files''' filter | ||
* Compile your binaries | * Compile your binaries |
Revision as of 13:57, 24 May 2019

Вы можете помочь,


РУССКАЯ ВЕРСИЯ СТАТЬИ В РАЗРАБОТКЕ!
Что такое Lua?
Lua это мощный, быстрый, легкий, встраиваемый скриптовый язык.
Lua сочетает в себе простой процедурный синтаксис с мощными конструкциями описания данных на основе ассоциативных массивов и расширяемой семантики. Lua динамически типизируется, выполняется путем интерпретации байт-кода для виртуальной машины на основе регистра и имеет автоматическое управление памятью с инкрементной сборкой мусора, что делает его идеальным для конфигурации, сценариев и быстрого прототипирования.
Вы можете узнать больше о Lua на официальном сайте.
Обзор
Lua в настоящее время является ведущим скриптовым языком в играх, а у пользователей Steam ассоциируется с Garry's Mod. К сожалению, исходный код игры Garry's Mod не распространяется, и, как результат, мы не можем использовать реализацию языка Lua из этой игры для своего мода. Тем не менее, мой проект Half-Life 2: Sandbox в настоящее время является ведущим проектом с открытым исходным кодом, предназначенным для обеспечения сообщества разработчиков методом внедрения Lua в их мод практически без проблем, и в этой статье я объясню, как это сделать.
В Half-Life 2: Sandbox используется чистый Lua, отличающийся от реализации языка в моде Гарри, который имеет ограничения на многие библиотеки и модифицированный синтаксис для комментариев в стиле C++. Цель Sandbox - обеспечить нейтральную, чистую, стандартизированную и хорошо документированную базу кода для взаимодействия с Lua, в отличие от статей, увиденных в сообществе разработчиков Valve, таких как учебник LuaBind по языку Lua или просто статья о добавлении Lua.
Внедрение
Файлы
Установка
Сценарии менеджера Lua, найденные в исходном коде Half-Life 2: Sandbox, были написаны обобщённо, чтобы их можно было добавить в любой мод.
- Если вы работаете с исходным кодом мода, а не с плагином, указанные выше файлы должны быть помещены в src/game/shared
- In your project files, place both the luamanager.cpp and luamanager.h in the Source Files filter
- Compile your binaries
- Simply add the precompiled lua51.dll to your mod's bin folder, and now your mod has integrated Lua!
Update: Half-Life 2: Sandbox has went through several revisions extending its Lua API greatly including many classes and libraries for real-world usage with Source. As a result of these expansions, you'll now find that to be able to use these classes, you'll need to add the individual class .cpp and .h files, which are all listed in luamanager.cpp by headers that correspond to .cpp files.