Ru/Embedding Lua in the Source Engine: Difference between revisions
No edit summary |
m (obsolete language category) |
||
(5 intermediate revisions by 2 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 20: | 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}}. | ||
== Внедрение == | == Внедрение == | ||
Line 44: | 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 файлам.