Lua
Написание сценариев в Lua
FiveM поддерживает язык программирования общего назначения Lua в качестве одного из своих скриптовых языков. Lua - это очень просто язык для изучения, прост в использовании и быстро пишет. Чтобы использовать Lua, просто используйте в своих скриптах расширения файлов..lua
Модифицированная версия Lua 5.3 используется в FiveM, называемая CfxLua. Эта версия включает в себя некоторые из внесены модификации игрового движка Grit:
- Поддержка относительных литералов пути
- Поддержка векторов и кватернионов
Чтобы узнать больше о Lua, прочитайте их официальную документацию.
Использование Lua
Чтобы использовать Lua в скриптах, просто используйте расширение файла. Дополнительная настройка не требуется..lua
Хэши времени компиляции
Поскольку вам, возможно, часто приходится иметь дело с хэшами «Jenkins один за раз» в GTA / RAGE, время выполнения Lua было расширено. поддержка генерации хэш-ключей во время компиляции, аналогичная GET_HASH_KEY, но с нулем накладные расходы во время выполнения.
Например:
-- getting
RequestModel(`adder`)
-- comparing
if GetEntityModel(vehicle) == `buzzard` then
print("Indeed, it's a Buzzard.")
end
-- printing
print(`a_m_y_skater_01`)
Векторы и кватернионы
FiveM поддерживает первоклассные векторы и кватернионы в Lua. Векторы и кватернионы невероятно полезны для представления такие вещи, как позиции, вращения или даже цвета. По соображениям производительности векторы и кватернионы являются реальными типами данных в CfxLua, как и логические значения, числа и строки.
Многие собственные функции также возвращают и принимают векторы. Они обычно используются для мировых позиций и стандартные вращения Эйлера, поэтому используйте их всякий раз, когда сможете. Подробнее о нем здесь.
Для использования и примеров см. соответствующие документы:
- кват
- вектор2
- вектор3
- вектор4
Использование экспорта
Экспорт можно определить, вызвав глобальный объект:exports
Здравствуйте.lua:
exports('SayHello', function(str)
print('Hello, ' .. tostring(str) .. '!')
end)
Можно также определить запись или запись в манифесте ресурса. Необходимые функции быть глобальным, чтобы быть «явно» экспортируемым. Обратите внимание, что эти экспорты будут доступны только после первого тика планировщика.exportserver_export
Например:
Внутри hello_explicit.lua:
function SayHello(str)
print('Hello, ' .. tostring(str) .. '!')
end
Внутри fxmanifest.lua:
-- Client:
client_script 'hello.lua'
export 'SayHello'
-- Or server:
server_script 'hello.lua'
server_export 'SayHello'
В другом ресурсе:
-- Prints 'Hello, world!'
exports.myresource:SayHello('world')
Внешние библиотеки
Среда выполнения Lua предоставляет некоторые библиотеки в глобальной области, которые можно использовать.
json
: dkjson 2.5promise
: lua-обещанияmsgpack
: lua-MessagePack 0.3.3
Специфические функции Lua
- Клиентские функции
- Функции сервера