Ru/Embedding Lua in the Source Engine: Difference between revisions
No edit summary |
m (obsolete language category) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|title=Внедрение Lua в Source|Embedding Lua in the Source Engine}} | ||
|title= | |||
| | |||
}} | |||
{{orphan}}{{pov}} | {{orphan}}{{pov}} | ||
<div style="margin:auto;text-align:center;"> | <div style="margin:auto;text-align:center;"> | ||
Line 11: | Line 9: | ||
[[File:Source-logo.png|200px|link=|Source]][[File:Lua-Logo_128x128.png|128px|link=|Source]]</div> | [[File:Source-logo.png|200px|link=|Source]][[File:Lua-Logo_128x128.png|128px|link=|Source]]</div> | ||
== Что такое Lua? == | == Что такое Lua? == | ||
Line 22: | Line 18: | ||
== Обзор == | == Обзор == | ||
Lua в настоящее время является [http://www.satori.org/2009/03/the-engine-survey-general-results/ ведущим скриптовым языком в играх], а у пользователей Steam ассоциируется с | Lua в настоящее время является [http://www.satori.org/2009/03/the-engine-survey-general-results/ ведущим скриптовым языком в играх], а у пользователей Steam ассоциируется с {{L|Garry's Mod}}. К сожалению, исходный код игры Garry's Mod не распространяется, и, как результат, мы не можем использовать реализацию языка Lua из этой игры для своего мода. Тем не менее, мой проект {{HL2}} [http://code.google.com/p/hl2sb/ Half-Life 2: Sandbox] в настоящее время является ведущим проектом с открытым исходным кодом, предназначенным для обеспечения сообщества разработчиков методом внедрения Lua в их мод практически без проблем, и в этой статье я объясню, как это сделать. | ||
В | В {{L|Half-Life 2: Sandbox}} используется чистый Lua, отличающийся от реализации языка в моде Гарри, который имеет ограничения на многие библиотеки и модифицированный синтаксис для комментариев в стиле C++. Цель Sandbox - обеспечить нейтральную, чистую, стандартизированную и хорошо документированную базу кода для взаимодействия с Lua, в отличие от статей, увиденных в сообществе разработчиков Valve, таких как учебник [http://www.rasterbar.com/products/luabind.html LuaBind] по языку Lua или просто {{L|Adding Lua|статья о добавлении 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''' | ||
* | * В файлах вашего проекта поместите и '''luamanager.cpp''', и '''luamanager.h''' в '''Source Files filter''' | ||
* | * Скомпилируйте ваши двоичные файлы | ||
* | * Просто добавьте заранее скомпилированный файл '''lua51.dll''' в папку '''bin''' вашего мода, и теперь ваш мод интегрирован с Lua! | ||
''' | '''Обновление:''' Half-Life 2: Sandbox прошел несколько ревизий, значительно расширив его Lua API, включая множество классов и библиотек для его возможного использования с Source. В результате этих расширений вы заметите, что для использования этих классов вам необходимо добавить отдельные файлы классов .cpp и .h, которые перечислены в luamanager.cpp заголовками, соответствующими .cpp файлам. | ||
== External links == | == External links == | ||
Line 46: | Line 42: | ||
* [http://lua-users.org/wiki/BindingCodeToLua lua-users wiki: Binding Code To Lua] | * [http://lua-users.org/wiki/BindingCodeToLua lua-users wiki: Binding Code To Lua] | ||
{{ACategory|Programming}} | |||
[[Category:Scripting]] | [[Category:Scripting]] |
Latest revision as of 03:46, 22 August 2024

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


Что такое 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
- В файлах вашего проекта поместите и luamanager.cpp, и luamanager.h в Source Files filter
- Скомпилируйте ваши двоичные файлы
- Просто добавьте заранее скомпилированный файл lua51.dll в папку bin вашего мода, и теперь ваш мод интегрирован с Lua!
Обновление: Half-Life 2: Sandbox прошел несколько ревизий, значительно расширив его Lua API, включая множество классов и библиотек для его возможного использования с Source. В результате этих расширений вы заметите, что для использования этих классов вам необходимо добавить отдельные файлы классов .cpp и .h, которые перечислены в luamanager.cpp заголовками, соответствующими .cpp файлам.