0 в игре
Скачать
Перестрелка в тёмном подъезде в Mafia II

Документация

Справочник функций

Все функции API. Слева поиск и фильтр по стороне: сервер, клиент или страница.

События

Игроки

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
Стиль управления игрока ("" — всё разрешено).

Деньги

Мир

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, если попал в них.

Объекты

Машины

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 (владельца сервера).

Ресурсы

Таймеры

Отладка

Свой персонаж

Камера

Интерфейс (HTML)

Интерфейс (ImGui)

Страница (JavaScript)

Здоровье

Оружие

События клиента

Чат

Персонаж

Худ

Безопасность

NPC

Блипы

Метки

Баны

Анимации

Нативные функции

Клавиши