События
events.on
Подписывает функцию на событие сервера: встроенное или от другого ресурса.
events.emit
Вызывает событие у всех ресурсов сервера (events.on).
events.onClient
Принимает событие, которое клиентский скрипт игрока отправил через events.emitServer.
events.emitClient
Отправляет событие клиентским скриптам одного игрока или всех.
player:emit
Событие клиентским скриптам этого игрока. То же, что events.emitClient(player, ...).
events.onServer
Принимает событие от скрипта сервера (events.emitClient / player:emit).
events.emitServer
Отправляет событие скриптам сервера (events.onClient).
Игроки
players.all
Все игроки на сервере (массив Player).
players.get
Игрок по номеру.
players.count
Сколько игроков на сервере.
player.id
Номер игрока на сервере (свойство). Освобождается, когда игрок уходит.
player.name
Ник игрока из лаунчера (свойство).
player:isValid
Игрок ещё на сервере? Объект Player остаётся после ухода игрока, но методы перестают действовать.
player:setSkin
Меняет модель персонажа. Видно всем игрокам.
player:getSkin
Текущая модель игрока ("" — модель по умолчанию).
player:setAppearance
Одевает игрока в персонажа MafiaM с ползунками формы. Видно всем.
player:getAppearance
Модель игрока и её ползунки (у обычной модели — пустая таблица).
characters.models
Персонажи MafiaM: { {name, gender, body, about}, ... }. gender: "male" или "female" — только они.
characters.sliders
Ползунки формы по группам: { face = {...}, body = {...}, legs = {...} }, у каждого { id, name, gender }.
characters.skin
Внешность строкой-скином: characters.skin("MP_H007", { nw = 40 }) → "MP_H007+nw=40". characters.parse(skin) возвращает модель и ползунки.
characters.preview
Примеряет внешность только в игре этого игрока (окно редактора); endPreview возвращает скин, который дал сервер.
player:setPosition
Телепортирует игрока.
player:getPosition
Где сейчас игрок (обновляется 20 раз в секунду). nil, пока он не в мире.
player:kick
Отключает игрока с сообщением.
player:hasPermission
Есть ли право у группы игрока. Группы и права — в m2o_server.ini ([groups] moderator = kick, players; admin = *), игроки получают их по нику из [admins] или из режима: player:setGroup("admin") (например после входа в аккаунт), player:getGroup().
player:setDimension
Переносит игрока в измерение (routing buckets в FiveM): игроки и машины видят только тех, кто в том же. 0 — общий мир.
player:getDimension
Измерение игрока.
player:setDiscordPresence
Свой статус Discord у одного игрока (те же поля); nil — снова общий.
players.getByName
Игрок по нику (регистр не важен) или nil. В клиентских скриптах ещё players.all() (id), players.getName(id), players.isStreamed(id), players.getPosition(id).
player:getPing
Пинг игрока, в миллисекундах.
player:getMoveMode
Как игрок движется: "stand", "walk", "run", "sprint" или "vehicle", если он в машине.
player:isInVehicle
Сидит ли игрок в машине (в какой — player:getVehicle()).
player:setFightStyle
Стиль кулачного боя игрока, видят все: "KugnfuStyle", "HeavyStyle", "LightStyle" ("" — обычный).
player:getAddress
IP-адрес игрока.
player:getLicense
Кто этот игрок, под каким бы ником он ни играл: 40 шестнадцатеричных цифр, одинаковые на всех серверах и при каждом возвращении.
player:getSteamId
SteamID64 аккаунта Steam, в который вошли на компьютере игрока; "", если Steam не был запущен.
player:setControlStyle
Что разрешает управление игрока: без стрельбы, только шагом, только кулаки... Только для этого игрока; сохраняется после возрождения. "" — всё можно.
player:getControlStyle
Стиль управления игрока ("" — всё разрешено).
Деньги
player:setMoney
Устанавливает деньги игрока (в игре — наличные персонажа).
player:giveMoney
Добавляет (или отнимает, если отрицательное) деньги.
player:getMoney
Деньги игрока в долларах.
Мир
world.setTraffic
Включает или выключает машины и прохожих у всех игроков.
world.setPolice
Полиция и розыск. Выключено: полицейских нет, за преступления розыск не дают.
world.getSeason
"summer" (50-е) или "winter" (40-е). Задаётся в m2o_server.ini.
world.setWeather
Погода и время суток для всех: один из шаблонов погоды игры.
world.getWeather
Шаблон погоды, заданный через setWeather.
world.setTime
Время суток для всех: освещение города, небо, фонари. Дальше часы идут со скоростью setTimeScale.
world.getTime
Время суток сейчас; nil, если setTime не вызывали (у игр своё время).
world.setTimeScale
Как быстро идёт день: игровых минут за реальную минуту. 1 — как в жизни (по умолчанию), 30 — сутки за 48 минут, 0 — часы стоят.
world.getTimeScale
Игровых минут за реальную минуту (см. setTimeScale).
world.getTime
Время суток, которое видит этот игрок (серверное или его собственное setLocalTime); nil, если никто не задавал.
world.setLocalTime
Время суток только для этого игрока, например внутри здания или во сне; setLocalTime(nil) возвращает серверное.
world.setNameTags
Ники над головами игроков (по умолчанию включены).
world.setHealthBars
Полоски здоровья под никами.
world.setInteriors
Помещения города: магазины, бары, закусочные, квартиры, гаражи. "free" (по умолчанию) — двери открыты для всех, и никто ими не управляет: нет продавцов, меню магазинов и касс, которые можно ограбить; используйте их в своём моде как хотите. "closed" — закрыты. "game" — как в одиночной игре (продавцы, покупки, ограбления). world.getInteriors() возвращает режим.
world.addPassage
Переход: у входа (from, в радиусе radius — по умолчанию 1,2 м) игрок нажимает клавишу key (по умолчанию "E") — или, при key = false, просто входит в зону, — экран темнеет, и игрок оказывается в `to`, лицом в сторону heading (радианы). Над входом видна подсказка «[E] text». Переносит игрока его собственная игра, сразу; сервер узнаёт об этом из события "playerPassage". world.removePassage(id) — убрать.
world.setDoorLocked
Запирает (true) или отпирает (false) дверь города, ближайшую к точке (в пределах 1,5 м), для всех игроков: запертую никто не откроет и не выбьет, отпертая открывается даже при помещениях "closed". world.resetDoor(x, y, z) отдаёт её снова режиму помещений, world.isDoorLocked(x, y, z) → true / false / nil.
world.getNearestDoor
Дверь города, ближайшая к точке (в радиусе, по умолчанию 3 м): где она и заперта ли; nil, если рядом нет. Двери магазинов, баров, квартир — тех помещений, что игра загрузила вокруг вас.
world.setWalkByDefault
Пешком игроки идут шагом; короткое нажатие Shift — лёгкий бег и обратно, Shift зажат — спринт. Включено по умолчанию; false — как в самой игре (всегда лёгкий бег).
world.setDiscordPresence
Что показывает Discord игроков, пока они играют здесь (Rich Presence): details, state, largeImage, largeText, smallImage, smallText, buttons (до 2 {label, url}), appId (своё приложение Discord; по умолчанию приложение MafiaM). {server}, {players}, {maxPlayers}, {name} подставляются.
physics.raycast
Что первым встречает луч от одной точки до другой (физика игры: стены, земля, машины, люди). entity — "player" или "vehicle" с id, если попал в них.
Объекты
objects.create
Ставит предмет игры (бочку, ящик, знак...), который видят все игроки рядом.
objects.get
Объект по номеру.
objects.all
Все объекты сервера.
object:setPosition
Переносит объект у всех.
object:getPosition
Где объект (как его поставили скрипты: если игрок его сбил, это не меняется).
object:setRotation
Поворачивает объект: вокруг вертикали, затем наклон и крен; в радианах.
object:getRotation
Поворот, который объекту задали.
object:setDimension
Показывает объект только игрокам в этом измерении (0 — обычный мир для всех).
object:destroy
Убирает объект у всех. После этого object:isValid() — false.
Машины
vehicles.create
Создаёт машину, которую видят все игроки. Водитель управляет ею, остальные видят её движение.
vehicles.all
Все машины сервера.
vehicles.get
Машина по номеру.
vehicle:getDriver
Кто за рулём (место 0).
vehicle:getOccupants
Все, кто в машине: таблица место → игрок (0 — водитель).
vehicle:getPassengers
Пассажиры (все, кроме водителя).
vehicle:getPosition
Где машина (по данным её водителя).
vehicle:setPosition
Переносит машину (у всех, и у водителя).
vehicle:destroy
Убирает машину у всех.
player:getVehicle
В какой машине сервера сидит игрок.
player:getVehicleSeat
Место игрока в машине: 0 — водитель, 1 и дальше — пассажиры.
player:isDriver
Игрок за рулём машины сервера?
vehicle:setDimension
Переносит машину в измерение: её видят только игроки в том же.
vehicle:getDimension
Измерение машины.
player:warpIntoVehicle
Сажает игрока сразу, без подхода и анимации (место 0 — водитель). player:putInVehicle(vehicle, seat, atOnce) подходит к двери, если atOnce не задан.
vehicle:getFreeSeats
Свободные места (0 — водитель). Ещё vehicle:getSeatCount() и vehicle:isSeatFree(seat). nil, пока ни у одного игрока не появлялась такая модель.
vehicle:setHandling
Меняет хендлинг этой машины (масса, двигатель, передачи, подвеска, тормоза...) сразу, даже на ходу. Меняются только переданные поля.
vehicle:getHandling
Все поля хендлинга машины: штатные модели (cars.json) и заданные поверх через setHandling.
vehicle:resetHandling
Хендлинг машины снова как у её модели.
vehicles.getModelHandling
Штатный хендлинг модели машины (из cars.json рядом с сервером).
vehicles.getModelInfo
Название модели и её окрасы: { model, name, colors = { {code, primary, secondary}, ... }, ... }.
vehicle:setPlate
Номерной знак машины, для всех (6 символов, например "M2O-77").
vehicle:getPlate
Номер, заданный через setPlate (nil — номер самой игры).
vehicle:setColor
Красит машину, для всех: цвет из палитры игры (номера с 0); второй цвет — двухцветная покраска.
vehicle:setEngine
Заводит или глушит двигатель, для всех.
vehicle:setBeacon
Мигалки (полиция, скорая...), для всех.
vehicle:setSiren
Сирена, для всех.
vehicle:setHorn
Зажимает гудок, для всех.
vehicle:setDirt
Грязь, от 0 (чистая) до 1, для всех.
vehicle:setFuel
Топливо в баке, для всех.
vehicle:setLocked
Закрывает двери (никто не сядет), для всех.
vehicle:setHoodOpen
Открывает / закрывает капот, для всех.
vehicle:setTrunkOpen
Открывает / закрывает багажник, для всех.
vehicle:setSpeedLimit
Ограничитель скорости, для всех; nil — снять.
vehicle:repair
Чинит и моет машину, для всех.
vehicle:explode
Взрывает машину, для всех.
vehicle:getSpeed
Скорость машины (по данным её водителя).
vehicle:getVelocity
Скорость по осям, метры в секунду.
vehicle:setPaint
Двухцветная покраска: два цвета палитры игры (то же, что setColor с двумя). Для всех.
vehicle:setTuning
Тюнинг двигателя, как в гараже игры (таблица тюнинга модели). Для всех.
vehicle:setWheel
Колёса оси (0 — передняя пара, 1 — задняя) на другую модель — уже загруженную игрой, то есть стоящую на какой-то машине поблизости (wheel_civ02, wheel_civ04..09, wheel_univers_d / _n / _s, wheel_truckciv01 / 02). Для всех.
vehicle:setTyre
Одна шина (0..3). Для всех.
vehicle:setWindowOpen
Опускает / поднимает окно у места (0 — водитель). Для всех.
vehicle:setDoorUnlatched
Защёлка двери отпускает: дверь приоткрывается и болтается на ходу (0 — дверь водителя). Для всех.
vehicle:setBusDoorsOpen
Двери автобуса. Для всех.
vehicle:setTrunkLocked
Запирает багажник. Для всех.
vehicle:setPartRemoved
Снимает деталь (двери, капот, бамперы... по номеру детали модели) или возвращает. Для всех.
vehicle:setHeadlightsOff
Держит фары выключенными. Для всех.
vehicle:setBodyDamage
Повреждения кузова, в единицах игры. Для всех.
vehicle:setEngineDamage
Повреждения двигателя, в единицах игры (дым, глохнет). Для всех.
vehicle:setExplosionProof
Машина не взрывается. Для всех.
vehicle:setTyresProof
Пуленепробиваемые шины. Для всех.
vehicle:setDamageResistance
Сколько урона получает (сопротивление в игре). Для всех.
vehicle:setFrozen
Держит машину на месте (выставка...). Для всех.
vehicle:setRadio
Радио: станция игры (имена пока не найдены), вкл / выкл. Для всех.
vehicle:attachTo
Прицепляет машину к другой (LinkToEntity игры: буксир...). detach() — отцепить. Для всех.
vehicle:detach
Отцепляет машину. Для всех.
vehicle:revEngine
Прогазовка (звук, двигатель качается); false — остановить. Для всех.
vehicle:playAnimation
Своя анимация машины (крыша кабриолета...). Для всех.
vehicle:stopAnimation
Останавливает её. Для всех.
vehicle:getNative
Что сервер задал под ключом ("plate", "color", "window0"...) или nil.
vehicle:callNative
Вызывает собственную функцию игры (см. «Нативные функции», C_WrapperCar) у этой машины в игре всех, кто её видит, один раз.
vehicle:setNative
Как callNative, но запоминается под ключом: получат и те, кто подойдёт позже, и применится снова, если игра пересоздаст машину. clearNative(key) — забыть.
vehicle:clearNative
Забывает вызов, сохранённый через setNative (сделанное остаётся, пока его что-то не поменяет).
Данные
storage.get
Читает значение из хранилища ресурса (data/<ресурс>.json).
storage.set
Сохраняет значение (таблицы — целиком). nil удаляет ключ. Пишется на диск сразу.
storage.keys
Все ключи хранилища ресурса.
db.query
SQL-запрос к базе ресурса: SQLite (data/<ресурс>.db) по умолчанию или MySQL / MariaDB с [database] mysql=mysql://user:password@host:3306/db в m2o_server.ini (тот же API). Выполняется не в потоке сервера: ответ приходит в функцию. Значения подставляются вместо ? — никогда не склеивайте SQL из текста игроков.
http.request
HTTP(S)-запрос к хосту, который разрешил владелец сервера ([http] allow в m2o_server.ini; по умолчанию ни к какому). Таблица в body уходит как JSON. Ещё http.get(url, cb, headers) и http.post(url, body, cb, headers); http.await.get / post / request внутри async.
json.encode
Таблицы в JSON-текст и обратно.
security.hash
SHA-256 строки (hex). Для паролей добавляйте соль.
security.randomString
Случайная строка из букв и цифр (криптографически стойкая).
settings.get
Настройка из раздела [settings] файла m2o_server.ini (владельца сервера).
Ресурсы
exports
Функции, которые ресурс отдаёт другим: банк экспортирует getMoney, любой другой ресурс вызывает exports.bank:getMoney(player). Значения копируются (числа, текст, таблицы, игроки, машины, NPC; функции — нет). Нет ресурса или функции — ошибка (ловится pcall).
resources.restart
Запустить, остановить или перезапустить ресурс на следующем тике (можно и самого себя). Остановка убирает всё, что он создал: машины, NPC, блипы, метки, таймеры, команды, соединение с базой; у игроков перезагружается его клиентская часть. Ещё resources.isRunning(name), resources.all(). В консоли — start / stop / restart.
Таймеры
timer.after
Вызывает функцию один раз через ms миллисекунд.
timer.every
Вызывает функцию каждые ms миллисекунд.
timer.cancel
Останавливает таймер.
Отладка
Свой персонаж
player.getPosition
Позиция своего персонажа (nil, пока он не в мире).
player.name
Свой ник.
player.id
Свой номер на сервере.
player.isInWorld
Персонаж в мире (не загрузка, не меню)?
player.getVehicle
Машина, в которой мы сидим, и наше место (0 — за рулём); nil, если пешком.
player.getVehicleInfo
Всё для спидометра о машине, в которой мы сидим (nil, если пешком): id, seat, speed (км/ч), fuel и fuelCapacity (литры), rpm, engineOn, damage и engineDamage (0..100), dirt (0..1).
player.getHealth
Своё здоровье, 0..100.
player.isDead
Мёртв ли наш персонаж.
Камера
camera.focusPlayer
Плавно ставит камеру перед персонажем — например, на лицо при создании персонажа.
camera.attachToPlayer
Камера в точке from, смотрит на to; координаты в осях персонажа (x вправо, y вперёд, z вверх). Следует за персонажем.
camera.lookFrom
То же в мировых координатах (для сцен, где персонаж стоит на месте). time — как в focusPlayer: 0 — мгновенно; если вызывать раз в полсекунды с 0.6, камера плавно летит по точкам.
camera.reset
Возвращает обычную камеру игрока.
camera.worldToScreen
Где точка мира находится на экране, в пикселях (как ui.screenSize), и как далеко она от камеры. nil, если точка позади камеры.
camera.screenToWorld
Обратно: точка мира на расстоянии distance метров от камеры (по умолчанию 1), которая видна в пикселе sx, sy.
camera.getPosition
Где находится камера, которая рисует кадр (nil, если неизвестно).
camera.getDirection
Куда смотрит камера: единичный вектор (nil, если неизвестно).
Интерфейс (HTML)
web.open
Открывает HTML-страницу ресурса поверх игры (прозрачный фон). Одна страница на ресурс.
web.focus
Отдаёт странице мышь и клавиатуру (появляется курсор, игра ввод не получает).
web.show
Показывает или прячет страницу, не закрывая её.
web.close
Закрывает страницу ресурса.
web.emit
Отправляет данные в страницу: там их получает m2o.on(name, fn).
web.on
Принимает данные от страницы (m2o.emit).
Интерфейс (ImGui)
ui.window
Простое окно (Dear ImGui) — для отладки и служебных окон. Вызывать внутри ui.onDraw.
ui.onDraw
Функция, которая рисует окна каждый кадр.
ui.setInputEnabled
Отдаёт окнам ImGui мышь и клавиатуру.
ui.input
Поле ввода. Подпись — до ##, после ## — скрытый id.
ui.button
Кнопка; true в кадре нажатия. width = -1 — во всю ширину.
Страница (JavaScript)
m2o.emit
Из страницы в клиентский Lua ресурса (web.on). data — любое JSON-значение.
m2o.on
Получает данные из Lua (web.emit).
Здоровье
player:getHealth
Здоровье игрока, 0..100 (0 — мёртв).
player:setHealth
Ставит здоровье, 0..100. 0 — убить.
player:getMaxHealth
Всегда 100: здоровье считается в процентах.
player:isDead
Мёртв и ещё не возрождён.
player:kill
Убивает игрока (персонаж падает и лежит; срабатывает playerDeath).
player:respawn
Возвращает игрока к жизни в указанном месте.
player:setInvincible
Пока включено, игрок не получает урона (безопасные зоны, админы).
player:setHealthRegen
Восстанавливается ли здоровье само (регенерация игры). nil — как в мире.
world.setHealthRegen
Регенерация здоровья для всех (по умолчанию включена).
playerDamage
Игрок получил урон.
playerDeath
Игрок умер.
playerRespawn
Игрока вернули к жизни через respawn.
playerFightStart
Игрок начал драку с другим (толкнул его персонажа); удары приходят как playerDamage.
Оружие
playerWeaponChange
Игрок взял в руки другое оружие (1 — кулаки; см. страницу оружия).
playerWeaponFire
Игрок выстрелил: оружие, откуда (дуло) и куда. Выстрел видят все, кто видит игрока; попадания считает игра стрелка (playerDamage).
player:isAiming
Целится ли игрок (правая кнопка мыши). Прицеливание видят все, кто видит игрока.
player:getAimPoint
Куда целится игрок (куда смотрит его камера, на 50 м вперёд), или nil, если не целится.
player:getWeaponInHand
Оружие в руках игрока (1 — кулаки).
player:giveWeapon
Выдаёт оружие с патронами (если уже есть — добавляет патроны).
player:giveAmmo
Добавляет патроны к оружию.
player:removeWeapon
Забирает оружие.
player:removeAllWeapons
Забирает всё оружие.
player:selectWeapon
Берёт оружие в руки (0 — убрать).
player:getWeapons
Выданное сервером оружие: ID -> выданные патроны (расход не учитывается).
weapons
ID оружия по названию.
player:setUnlimitedAmmo
Патроны не кончаются.
События клиента
weaponChange
Мы взяли в руки другое оружие (1 — кулаки).
enterVehicle
Мы сели в машину (место 0 — водитель).
exitVehicle
Мы вышли из машины.
playerStreamIn
Другой игрок оказался рядом: его персонаж теперь показан у нас.
playerStreamOut
Персонаж другого игрока больше не показан (ушёл далеко, вышел).
vehicleStreamIn
Машина сервера оказалась рядом.
vehicleStreamOut
Машина больше не показана.
hit
Наш удар попал по другому игроку (сервер снимет ему здоровье).
fightStart
Началась драка с другим игроком: её начали мы (weStarted) или он.
Чат
chat.send
Строка в чат одному игроку.
chat.broadcast
Строка в чат всем игрокам.
player:sendMessage
То же, что chat.send(player, ...).
chat.registerCommand
Команда чата: /name ... С { permission = "kick" } — только для игроков, у чьей группы есть это право.
playerChat
Игрок что-то написал (не команду).
chat.send (client)
Отправляет текст, как будто игрок написал его сам (и команды).
Персонаж
player:freeze
Блокирует управление игрока (true) или возвращает (false).
player:showHud
Показывает или прячет HUD игры.
player:fadeScreen
Затемняет экран игрока (true) или проявляет обратно (false).
Худ
player:setHudVisible
Одна часть худа игры у этого игрока: radar, money, speedometer, buttons, messages, info, subtitles, timer, score, respect, lowHealthEffect, all (весь худ; вики: «Худ»). Остаётся скрытой, пока не показать снова.
player:isHudVisible
Скрывает ли сервер эту часть у игрока.
hud.setVisible
Скрывает / показывает часть худа из клиентского скрипта (вдобавок к тому, что скрыл сервер). Части — на странице вики «Худ».
hud.isVisible
Скрывают ли эту часть скрипты этого клиента.
Безопасность
security.hashPassword
Пароль, готовый к хранению: PBKDF2-SHA256 со случайной солью (медленный нарочно — утёкший файл не подобрать быстро). Храните строку, которую она вернула.
security.verifyPassword
Проверяет пароль по строке из hashPassword.
NPC
npcs.create
Персонаж сервера: продавец, охранник, прохожий. Все рядом видят одного и того же, он стоит, где поставили. Каждому игроку показываются ближайшие 64 по отдельному лимиту, а слоты скинов сначала отдаются игрокам — NPC не вытесняют ни игроков, ни трафик.
npcs.getNear
NPC сервера в радиусе radius м, ближние первыми. Ещё npcs.all() и npcs.get(id).
npc:walkTo
Идёт (или бежит) прямо к точке, по приходу — событие npcArrived. npc:stop() останавливает на месте.
npcs.getNearest
Ближайший к нам NPC сервера в радиусе radius м (nil, если нет). Ещё npcs.all(), npcs.getName(id), npcs.getPosition(id).
Блипы
blips.create
Значок на карте и радаре. Создан на сервере — видят все игроки; в клиентском скрипте — только этот игрок.
blips.attach
Значок, который следует за персонажем игрока или машиной. На сервере — игрок или машина, видят все. В клиентском скрипте — id игрока (для машины blips.attachVehicle(id, options)), видит только этот игрок.
Метки
labels.create
Текстовая метка в мире. Созданную на сервере видят все рядом; созданную в клиентском скрипте — только этот игрок.
labels.attach
Метка над головой игрока, двигается вместе с ним. На сервере — игрок, видят все. В клиентском скрипте — id игрока, видит только этот игрок.
Баны
player:ban
Банит игрока по нику и IP и выгоняет. Без минут — навсегда.
bans.add
Добавляет бан (data/bans.json).
bans.remove
Снимает бан.
bans.list
Все баны: { who, reason, until }.
Анимации
player:playAnimation
Проигрывает анимацию на игроке; её видят все рядом, а зацикленную — и подошедшие позже.
player:stopAnimation
Останавливает анимацию игрока.
player:setWalkStyle
Как игрок ходит и стоит (пьяным, руки в карманах, с зонтом...); видят все рядом. "" — обычная походка.
player:getWalkStyle
Стиль ходьбы игрока ("" — обычный).
player:setItemsInHands
Предметы в руках игрока (чемодан, газета, зонт...): номера со страницы вики «Предметы в руках»; -1 или nil — рука пустая. Видят все.
player:getItemsInHands
Что сервер дал игроку в руки: левая, правая (-1 — пусто).
Нативные функции
player:callNative
Вызывает собственную функцию игры (см. «Нативные функции», C_WrapperHuman) у персонажа этого игрока — в его игре и у всех, кто его видит, — один раз.
player:setNative
Как callNative, но запоминается под ключом: получат и подошедшие позже, и применится снова, когда персонаж пересоздаётся (смена одежды, возрождение).
player:clearNative
Забывает вызов, сохранённый через setNative.
natives.call
Вызывает собственную функцию скриптов игры (нативную): у своего персонажа, у персонажа другого игрока, у нашей машины или модуля игры. Ответ приходит в callback(ok, результаты...).
natives.ped
Цель для natives.call — персонаж другого игрока (пока он показан у нас).
natives.vehicle
Цель для natives.call — машина сервера (пока она показана у нас).
natives.entity
Цель для natives.call — один из собственных именованных объектов города: дверь магазина, ворота, фонарь...