Содержание

Функции игрового движка

get_response

Краткое описание:
Возвращает готовую строку из пакета отправленного сервером клиенту. Получить ответ от сервера в специальном формате строки.
Использование:

get_response( flag )

Обязательные аргументы:

createFileRecovery

Краткое описание:
Создает служебный файл игрового движка
Использование:

-- Восстановление настроек запуска движка
function goRecovery()
  ...

  -- Создание файла после некорректного выхода
  cl_exec( "createFileRecovery", "../cache.dat" )
end

Создает файл в данном случае cache.dat с текстом внутри:

recoveryMode=1

Обязательные аргументы:

declareRecovery

Краткое описание:
Сообщает игровому движку о файле

cl_exec( "declareRecovery", "../cache.dat" )

Обязательные аргументы:

getRecoveryFile

Краткое описание:
Получает назначенный файл от игрового движка

cl_exec( "getRecoveryFile" )

wait

Краткое описание:
Создает временную задержку в миллисекундах
Пример использования:

cl_exec( "wait", 100 )

Обязательные аргументы:

yield

Краткое описание:
Создает в потоке временную задержку (используется для снижения нагрузки на процессор)
Пример использования:

cl_exec( "yield" )

quitApp

Краткое описание:
Игровой движок завершает работу. Выход из приложения
Пример использования:

cl_exec( "quitApp" )

existsFile

Краткое описание:
Возвращает true или false при проверке на существование файла
Пример использования:

cl_exec( "existsFile", filename )

Обязательные аргументы:

msg

Краткое описание:
Создает диалоговое окно с вопросом и отработкой кнопок
Пример использования:

cl_exec( "msg", "Предыдущий запуск: MotionEngine завершился некорректно.\nЗапустить в безопасном режиме?\n\nЭто рекомендуется сделать большинству пользователей.", 
    "Запустить в безопасном режиме?", "MB_YESNOCANCEL", "MB_ICONWARNING" )

Полный пример использования:

-- Создание MessageBox
messagebox = cl_exec( "msg", "Предыдущий запуск: MotionEngine завершился некорректно.\nЗапустить в безопасном режиме?\n\nЭто рекомендуется сделать большинству пользователей.", 
"Запустить в безопасном режиме?", "MB_YESNOCANCEL", "MB_ICONWARNING" )

-- 6, 7, 2
if(cl_exec( "getMsgID", messagebox ) == "IDYES") then
  cl_exec( "deleteFile", cl_exec( "getRecoveryFile" ) )
end
if(cl_exec( "getMsgID", messagebox ) == "IDNO") then
  cl_exec( "deleteFile", cl_exec( "getRecoveryFile" ) )
end
if(cl_exec( "getMsgID", messagebox ) == "IDCANCEL") then 
  
end

кусок кода из C++ (согласно: https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox)

// Кнопки
#define MB_ABORTRETRYIGNORE   0x00000002L
#define MB_CANCELTRYCONTINUE  0x00000006L
#define MB_HELP               0x00004000L
#define MB_OK                 0x00000000L
#define MB_OKCANCEL           0x00000001L
#define MB_RETRYCANCEL        0x00000005L
#define MB_YESNO              0x00000004L
#define MB_YESNOCANCEL        0x00000003L
    
// Иконки
#define MB_ICONEXCLAMATION    0x00000030L
#define MB_ICONWARNING        0x00000030L
#define MB_ICONINFORMATION    0x00000040L
#define MB_ICONASTERISK       0x00000040L
#define MB_ICONQUESTION       0x00000020L
#define MB_ICONSTOP           0x00000010L
#define MB_ICONERROR          0x00000010L
#define MB_ICONHAND           0x00000010L

Обязательные аргументы:

getMsgID

Краткое описание:
Возвращает строку. Преобразует число в ID события
Пример использования:

cl_exec( "getMsgID", messagebox )

Может возвращать

Обязательные аргументы:

readTable

Краткое описание:\ Аналог стандартной функции require (require). Для подключения модулей в отдельных потоках.
Пример создания таблицы:

local ServerType = {
    name = "ExampleServer",
    version = "1.0"
}

function ServerType:greet()
    print( "Hello from " .. self.name )
end

function ServerType:greet2()
    print( "Test from " .. self.name )
end
return ServerType

Пример использования таблицы:

local ServerType = cl_exec( "readTable" , "mp._servertype" )
for k, v in pairs( ServerType ) do
    print( "Key:", k, "Value:", v )
end

Обязательные аргументы:

joinServer

Краткое описание:
Подключение к серверу, указывается IP-адрес и порт.
Возвращает integer:

Пример использования:

cl_exec( "joinServer", "192.168.138.128", 28600 )

Обязательные аргументы:

disconnect

Краткое описание:
Производит отключение от сервера.
Пример использования:

cl_exec( "disconnect" )

Примечание
Рекомендуем использовать внутри условия isActiveServer, что активно подключение к серверу

if cl_exec( "isActiveServer" ) then
  -- тут
end

createPacket

Краткое описание:
Создает и отправляет пакет серверу
Пример использования:

cl_exec( "createPacket", flag, int_table( _serverType, "LOW" ), "getPosition()" )

Обязательные аргументы:

Примечание
Рекомендуем использовать внутри условия isActiveServer

if cl_exec( "isActiveServer" ) then
  -- тут
end

getActivePlayer

Краткое описание:
Возвращает текущего игрока (за которого мы играем!) а именно его ID в модуле сервера
Пример использования:

cl_exec( "getActivePlayer" )

Примечание
Рекомендуем использовать внутри условия isActiveServer. Возвращать функция может ID строку либо пустая строка.

if cl_exec( "isActiveServer" ) then
  -- тут
end

isActiveServer

Краткое описание:
Возвращает:

Пример использования:

if cl_exec( "isActiveServer" ) then
  ...
end

PropsLoading

Краткое описание:
Задает режим игровому движку. Используется для создания новых объектов моделей на сцене. Функция устаревшая (не понятно работает или нет)
Пример использования:

cl_exec( "PropsLoading", <integer> )

Обязательные аргументы:

PropRemove

Краткое описание:
Добавляет в список для дальнейшего удаления объекта. После добавления необходимо произвести удаление с помощью функции PropProcessRemove Пример использования:

cl_exec( "PropRemove", "db07dc8054b761be7db7e22227cc2787" )

Обязательные аргументы:

PropProcessRemove

Краткое описание:
Удаляет объекты со сцены. Смотрите функцию PropProcessRemove
Пример использования:

cl_exec( "PropProcessRemove" )

propCreate

Краткое описание:
Добавляет в список для дальнейшего создания объекта. После добавления необходимо произвести создание моделей с помощью функции propProcessCreate. Функция возвращает ID нового объекта.
Пример использования:
Создается одна модель:

modelpic = cl_exec( "propCreate", 
    0,                -- слой
    foundFile[i],     -- файл mep-модели
    "",               -- скин
    "0.0;0.0;0.0",    -- позиция XYZ
    "-90.0;0.0;90.0", -- поворот XYZ
    0.1               -- масштаб
)
cl_exec( "propProcessCreate" )

Обязательные аргументы:

propCreateId

Краткое описание:
Добавляет в список для дальнейшего создания объекта. После добавления необходимо произвести создание моделей с помощью функции propProcessCreate. Существует другой аналог функции propCreateId, propCreate которая возвращает случайный ID новой 3д-модели
Пример использования:
Создается одна модель:

cl_exec( "propCreateId", 
    0,                                    -- слой
    "db07dc8054b761be7db7e22227cc2787",   -- id-объекта
    "bed_05.mep",                         -- файл mep-модели
    "bed_03_blanket.ME2.s0.mtx",          -- скин
    "0.0;0.0;0.0",                        -- позиция XYZ
    "-90.0;0.0;90.0",                     -- поворот XYZ
    0.1                                   -- масштаб
)
cl_exec( "propProcessCreate" )

Обязательные аргументы:

propProcessCreate

Краткое описание:
Создает объекты на сцене. Смотрите функцию propCreate и propCreateId
Пример использования:

cl_exec( "propProcessCreate" )

propTransform

Краткое описание:
Изменяет трансформацию объекта на сцене
Пример использования:

cl_exec( "propTransform", "db07dc8054b761be7db7e22227cc2787", 
    string.format("%.2f;%.2f;%.2f", self.x, (self.y-230), self.z),
    string.format("%.2f;%.2f;%.2f", -90.0, 0.0, ((-self.yaw)+180)), 
    "0.1;0.1;0.1"
)

Обязательные аргументы:

goScreenshot

Краткое описание:
Создает скриншот игрового движка
Пример использования:

cl_exec( "goScreenshot", 0 )

Обязательные аргументы:

getScreenshotData

Краткое описание: Возвращает строку с данными base64 созданного скриншота (ранее создан с помощью goScreenshot)
Пример использования:

scrnData = cl_exec( "getScreenshotData" )

camera_origin

Краткое описание: Задает местоположение камеры
Пример использования:

cl_exec( "camera_origin", 0.0, 0.0, 0.0 )

Обязательные аргументы:

camera_angles

Краткое описание: Задает углы камеры
Пример использования:

cl_exec( "camera_angles", 90.0, 60.0 )

Обязательные аргументы:

camera_freeze

Краткое описание: Задает заморозку камеры
Пример использования:

cl_exec( "camera_freeze", 1 )

Обязательные аргументы:

camera_zoom

Краткое описание: Задает заморозку камеры
Пример использования:

cl_exec( "camera_zoom", 45.0 )

Обязательные аргументы:

camera_speed

Краткое описание: Задает заморозку камеры
Пример использования:

cl_exec( "camera_speed", 5.0 )

Обязательные аргументы:

camera_sensitivity

Краткое описание: Задает заморозку камеры
Пример использования:

cl_exec( "camera_sensitivity", 0.1 )

Обязательные аргументы:

camera_getX

Краткое описание: Возвращает позицию X камеры в формате числа с плавающей точкой (float)
Пример использования:

cl_exec( "camera_getX" )
если произошла ошибка, возвращается -1.0 значение

camera_getY

Краткое описание: Возвращает позицию Y камеры в формате числа с плавающей точкой (float)
Пример использования:

cl_exec( "camera_getY" )
если произошла ошибка, возвращается -1.0 значение

camera_getZ

Краткое описание: Возвращает позицию Z камеры в формате числа с плавающей точкой (float)
Пример использования:

cl_exec( "camera_getZ" )
если произошла ошибка, возвращается -1.0 значение

camera_getYaw

Краткое описание: Возвращает Yaw (поворот) камеры в формате числа с плавающей точкой (float)
Пример использования:

cl_exec( "camera_getYaw" )
если произошла ошибка, возвращается -1.0 значение

camera_getPitch

Краткое описание: Возвращает Pitch (наклон) камеры в формате числа с плавающей точкой (float)
Пример использования:

cl_exec( "camera_getPitch" )
если произошла ошибка, возвращается -1.0 значение

camera_getFreeze

Краткое описание: Возвращает состояние заморозки камеры в формате числа (integer)
Пример использования:

cl_exec( "camera_getFreeze" )
если произошла ошибка, возвращается -1 значение

camera_getZoom

Краткое описание: Возвращает значение приближения камеры в формате числа с плавающей точкой (float)
Пример использования:

cl_exec( "camera_getZoom" )
если произошла ошибка, возвращается -1.0 значение

camera_getSpeed

Краткое описание: Возвращает скорость полета камеры в формате числа с плавающей точкой (float)
Пример использования:

cl_exec( "camera_getSpeed" )
если произошла ошибка, возвращается -1.0 значение

camera_getSensitivity

Краткое описание: Возвращает чувствительность камеры в формате числа с плавающей точкой (float)
Пример использования:

cl_exec( "camera_getSensitivity" )
если произошла ошибка, возвращается -1.0 значение

player_forward

Краткое описание: Выполняет перемещение камеры вперед игрока
Пример использования:

cl_exec( "player_forward" )

player_backward

Краткое описание: Выполняет перемещение камеры назад игрока
Пример использования:

cl_exec( "player_backward" )

Пример использования в скриптах:

    if keyboard:getKey("GLFW_KEY_UP", "GLFW_PRESS") then cl_exec( "player_forward" ) end
    if keyboard:getKey("GLFW_KEY_DOWN", "GLFW_PRESS") then cl_exec( "player_backward" ) end
    if keyboard:getKey("GLFW_KEY_LEFT", "GLFW_PRESS") then cl_exec( "player_left" ) end
    if keyboard:getKey("GLFW_KEY_RIGHT", "GLFW_PRESS") then cl_exec( "player_right" ) end

player_left

Краткое описание: Выполняет перемещение камеры влево игрока
Пример использования:

cl_exec( "player_left" )

player_right

Краткое описание: Выполняет перемещение камеры вправо игрока
Пример использования:

cl_exec( "player_right" )

player_jump

Краткое описание: Выполняет перемещение камеры прыжок игрока
Пример использования:

cl_exec( "player_jump" )

physics_is

Краткое описание: Возвращает работает ли в данный момент сцена PhysX
Пример использования:

local physics = cl_exec( "physics_is" )

physics_start

Краткое описание: Запуск сцены в PhysX
Пример использования:

cl_exec( "physics_start" )

physics_stop

Краткое описание: Остановить сцену в PhysX
Пример использования:

cl_exec( "physics_stop" )

physics_debug

Краткое описание: Включить/Выключить отладчик в PhysX
Пример использования:

cl_exec( "physics_debug", 1 )

Обязательные аргументы:

Транспорт

vehicle_create

Краткое описание:
Создает автомобиль на координатах позиции и вращения, возвращает айди созданного автомобиля

пример настроек в файле тут

Использование:

local carId = cl_exec( "vehicle_create", "../Contents/cfg/vehicle_kubel.json", 
    0.0, (2.0+0.5+1.0)*2, 0.0, 0, 0, 0)

Обязательные аргументы:

vehicle_camera

Краткое описание:
Задает настройки камеры слежения за автомобилем. Рекомендуем применять функцию перед командой vehicle_enter, для предварительной подготовки камеры к работе

пример настроек в файле тут

Использование:

cl_exec( "vehicle_camera", "../Contents/cfg/vehicle_kubel_cam.json")

Обязательные аргументы:

vehicle_destroy

Краткое описание:
Удаляет автомобиль по айди
Использование:

cl_exec( "vehicle_destroy", 2)

Обязательные аргументы:

vehicle_is

Краткое описание:
Проверяет существует ли автомобиль по айди
Использование:

cl_exec( "vehicle_is", 2)

Обязательные аргументы:

vehicle_originX

Краткое описание:
Получить позицию автомобиля по X
Использование:

local x = cl_exec( "vehicle_originX", 2)

Обязательные аргументы:

vehicle_originY

Краткое описание:
Получить позицию автомобиля по Y
Использование:

local y = cl_exec( "vehicle_originY", 2)

Обязательные аргументы:

vehicle_originZ

Краткое описание:
Получить позицию автомобиля по Z
Использование:

local z = cl_exec( "vehicle_originZ", 2)

Обязательные аргументы:

vehicle_rotationX

Краткое описание:
Получить поворот автомобиля по X
Использование:

local rx = cl_exec( "vehicle_rotationX", 2)

Обязательные аргументы:

vehicle_rotationY

Краткое описание:
Получить поворот автомобиля по Y
Использование:

local ry = cl_exec( "vehicle_rotationY", 2)

Обязательные аргументы:

vehicle_rotationZ

Краткое описание:
Получить поворот автомобиля по Z
Использование:

local rz = cl_exec( "vehicle_rotationZ", 2)

Обязательные аргументы:

vehicle_teleport

Краткое описание:
Телепортировать на конкретную координату автомобиль
Использование:

cl_exec( "vehicle_teleport", 2, 150, 10, 10)

Обязательные аргументы:

vehicle_rotate

Краткое описание:
Вращать автомобиль по X,Y,Z
Использование:

cl_exec( "vehicle_rotate", 2, 0, 0, 90)

Обязательные аргументы:

vehicle_enter

Краткое описание:
Игрок садится в указанный автомобиль
Использование:

cl_exec( "vehicle_enter", 2)

Обязательные аргументы:

vehicle_driveType

Краткое описание:
Задать динамически привод колес, значения: 0 - задний, 1 - передний, 2 - 4×4
Использование:

cl_exec( "vehicle_driveType", 2, 0)

Обязательные аргументы:

vehicle_getDriveType

Краткое описание:
Возвращает значение привода: 0 - задний, 1 - передний, 2 - 4×4
Использование:

cl_exec( "vehicle_getDriveType ", 2)

Обязательные аргументы:

vehicle_wheelOrigin

Краткое описание:
Задать позицию колеса
Использование:

cl_exec( "vehicle_wheelOrigin", 2, 0, -100.0, 0.0, -100.5)
cl_exec( "vehicle_wheelOrigin", 2, 1, 100.0, 0.0, -100.5)
cl_exec( "vehicle_wheelOrigin", 2, 2, -100.0, 0.0, 100.5)
cl_exec( "vehicle_wheelOrigin", 2, 3, 100.0, 0.0, 100.5)

Обязательные аргументы:

vehicle_chassis

Краткое описание:
Создать или изменить созданное шасси
Использование:

cl_exec( "vehicle_chassis", 2, -100.0, 0.0, -100.5, 50)

Если необходимо изменить только высоту от земли до шасси:

cl_exec( "vehicle_chassis", 2, -1, -1, -1, 50)

Обязательные аргументы:

vehicle_modelOffset

Краткое описание:
Задать локальную позицию в машине (для создания кузова 3д-моделью)
Использование:

cl_exec( "vehicle_modelOffset", 2, 0.5, 0.2, 0.0)

Обязательные аргументы:

vehicle_ModelX

Краткое описание:
Получить позицию модель-автомобиля по X
Использование:

local x = cl_exec( "vehicle_ModelX", 2)

Обязательные аргументы:

vehicle_ModelY

Краткое описание:
Получить позицию модель-автомобиля по Y
Использование:

local y = cl_exec( "vehicle_ModelY", 2)

Обязательные аргументы:

vehicle_ModelZ

Краткое описание:
Получить позицию модель-автомобиля по Z
Использование:

local z = cl_exec( "vehicle_ModelZ", 2)

Обязательные аргументы:

vehicle_ModelRX

Краткое описание:
Получить поворот модель-автомобиля по X
Использование:

local rx = cl_exec( "vehicle_ModelRX", 2)

Обязательные аргументы:

vehicle_ModelRY

Краткое описание:
Получить поворот модель-автомобиля по Y
Использование:

local ry = cl_exec( "vehicle_ModelRY", 2)

Обязательные аргументы:

vehicle_ModelRZ

Краткое описание:
Получить поворот модель-автомобиля по Z
Использование:

local rz = cl_exec( "vehicle_ModelRZ", 2)

Обязательные аргументы:

vehicle_getOriginCenterOfMassX

Краткое описание:
Возвращает координату X центра масс автомобиля
Использование:

cl_exec( "vehicle_getOriginCenterOfMassX", 2)

Обязательные аргументы:

vehicle_getOriginCenterOfMassY

Краткое описание:
Возвращает координату Y центра масс автомобиля
Использование:

cl_exec( "vehicle_getOriginCenterOfMassY", 2)

Обязательные аргументы:

vehicle_getOriginCenterOfMassZ

Краткое описание:
Возвращает координату Z центра масс автомобиля
Использование:

cl_exec( "vehicle_getOriginCenterOfMassZ", 2)

Обязательные аргументы:

Основные функции скриптов

print

Краткое описание: Выводит сообщение одной строкой, либо выводит строки с расстоянием между собой (похоже на табуляцию \t) но одной строкой
Пример использования:
обычный подход

print("[Lua] Test complete.")
-- вывод:
-- [Lua] Test complete.

вывод с помощью пробелов напоминающую табуляцию

print("test1", "test2", "test3")
-- вывод:
-- test1   test2   test3

function

Краткое описание:
Стандартная функция в языке программирования Lua. Можно использовать функцию как отдельный поток (thread)
Пример использования:
обычное объявление функции

function fn1( var1 )
    ...
end

объявление одной строкой

fn1 = function(x) print(x) end

Использование:

fn1( 11122 )

for как бесконечный цикл

Краткое описание:
В Lua для i = 1 math.huge do создает цикл, который повторяется бесконечно, поскольку math.huge представляет собой наибольшее положительное число, которое может представить Lua, фактически действуя как бесконечность.
Пример использования:

for i = 1, math.huge do
  print("Бесконечный цикл работает...")
end

coroutine

Краткое описание:
Механизм, позволяющий выполнять функции асинхронно и приостанавливать их выполнение на определённых этапах. В отличие от потоков, корутины не поддерживают параллелизм, но предоставляют удобный способ управлять асинхронным или частичным выполнением кода.

Пример использования:

co1 = coroutine.create(function ()
    tes = 1
    while true do
        print("co1 " .. tes)
        tes = tes + 1
        coroutine.yield() -- Приостанавливаем выполнение корутины
        tes = tes + 1
    end
end)

coroutine.resume(co1) -- запуск/возобновление
coroutine.resume(co1)
coroutine.resume(co1)

вывод:

Разбор примера:

-- Создаем корутину
co1 = coroutine.create(function ()
    tes = 1                    -- начальное значение
    while true do              -- бесконечный цикл
        print("co1 " .. tes)   -- вывод: 1, 3, 5...
        tes = tes + 1          -- увеличиваем на 1
        coroutine.yield()      -- стоп, ждём resume
        tes = tes + 1          -- продолжаем, увеличиваем ещё на 1
    end
end)

-- Запускаем/возобновляем корутину 3 раза
coroutine.resume(co1)  
-- Вывод: co1 1

coroutine.resume(co1)  
-- Вывод: co1 3

coroutine.resume(co1)  
-- Вывод: co1 5

1. Выполнение coroutine.resume(co1)

2. Выполнение coroutine.resume(co1)

3. Выполнение coroutine.resume(co1)

thread

Краткое описание:
Создаёт отдельные последовательности выполнения кода, которые могут выполняться параллельно. Выполнение нескольких задач одновременно, существенно повышает производительность и реакцию программы.
Пример использования:
отдельный поток

function test1()
...
end
-- вызов:
thread( test1 )

отдельный поток с несколькими аргументами

function test1( var1, var2 )
...
end
-- вызов:
thread( function() test1(11, 22) end )

отдельный поток с использованием бесконечного цикла

function test1()
while( true )
    do
      ...
      yield() -- необходимо использовать задержку для избежания нагрузки на CPU
    end
end
-- вызов:
thread( test1 )

Примечание
Отдельный поток не может работать со стандартным require (require), альтернатива позволяет использовать таблицы (readTable). Также не умеет работать с глобальными metatable (решение: локальные metatable можно создавать)
Ошибка: при использовании require в отдельном потоке

local ServerType = require( "mp/_servertype" )
-- attempt to call a nil value (method '...')

require

Краткое описание:
Стандартная Lua функция, которая загружает модули (файлы со скриптами). Она делает следующее:

Пример использования:
Пример создания модуля для require с последующим созданием переменной:

local TestModule = {
    KEY1 = 1,
    KEY2 = 10,
    KEY3 = 256
}

return TestModule

Создание переменной в основном скрипте

local TestModule = require("mp/testmodule.lua")

Подключение скрипта

require("_utility")

Базовые функции (на основе _<скриптов>.lua)

int_table

Краткое описание:
Возвращает значение строки из таблицы в виде числа
Пример использования:

int_table( <таблица>, <ключ> )
...
local flag = int_table( _packetType, "PLAYER" )
...

Обязательные аргументы:

str_table

Краткое описание:
Возвращает значение строки из таблицы
Пример использования:

str_table( <таблица>, <ключ> )
...
local name = str_table( _tableTest, "PLAYER" )
...

Обязательные аргументы:

debug_str_table

Краткое описание:
Выводит сообщение со строкой из таблицы
Пример использования:

debug_str_table( <таблица>, <ключ> )

Обязательные аргументы:

debug_table

Краткое описание:
Выводит сообщение со всеми ключами и значениями
Пример использования:

debug_table( <таблица> )
-- вывод
-- Key: Firstname Value: Mark

Обязательные аргументы:

add_table

Краткое описание:
Добавление нового значения в таблицу
Пример использования:

add_table( <таблица>, <ключ> )
...
add_table( players, _local )
...

Обязательные аргументы:

player_get_pos

Краткое описание:
Возвращает строку позиции игрока в специальном формате (используется при передаче в пакет)
Пример использования:

player_get_pos( <x>, <y>, <z>, <yaw>, <pitch> )
...
-- присваиваем координаты нашего персонажа
playerCurrent = player_get_pos(
        camera:getPosX(), -- x
        camera:getPosY(), -- y
        camera:getPosZ(), -- z
        camera:getYaw(),  -- поворот
        camera:getPitch() -- наклон
)
...

Обязательные аргументы:

wait

Краткое описание:
Создает временную задержку в миллисекундах
Пример использования:

wait( <мс> )

Обязательные аргументы:

yield

Краткое описание:
Создает в потоке временную задержку (используется для снижения нагрузки на процессор) Пример использования:

yield()

shuffle

Краткое описание:
Случайное перемешивание значений таблицы
Пример использования:

shuffle( <таблица> )

Обязательные аргументы:

DIR

Краткое описание:
Возвращает путь к нужной директории
Пример использования:

DIR( "textures" )

Обязательные аргументы:

(к примеру: objects, shaders, sounds, levels, interface, textures, MEBOX, configs)