Перейти к содержимому

Настройка

Почти всё находится в config.lua. Остальное — тексты, данные и тонкий слой, который общается с вашим фреймворком.


ФайлЗа что отвечаетМожно править
config.luaФреймворк, язык, кто может красить, предметы, названия команд, маркеры мастерскихДа
locales/*.luaКаждое уведомление и подсказка в чате, по файлу на языкДа
locales/main.luaФункция, выбирающая текст для Config.LocaleДа
bridge/server.luaОпределение фреймворка, уведомления, проверка администратора, работы, используемые предметы, удаление предметовДа
bridge/client.luaОпределение фреймворка и уведомления на стороне игрокаДа
items/ox.lua, items/qb.lua, items/sql.sqlГотовые определения предметов, которые нужно скопировать в ваш инвентарьДа
permissions.jsonSteam ID, которым разрешено открывать меню. Записывается командами give и removeДа
vehicle_original_colors.jsonЦвет каждой окрашенной машины до первой покраски, по модели и номерному знакуДа
html/ui.html, html/style.css, html/script.jsМеню: заголовок, образцы и внешний вид—
data/, stream/Определения красок и текстуры рамп для цветов с 223 по 242Не трогайте
client/main.lua, server/main.luaЛогикаПод escrow

ПараметрЧто делаетПо умолчанию
Config.Framework"auto", "esx" или "qbcore". Auto использует тот из es_extended и qb-core, который запущен; QBox считается qb-core через слой совместимости с QBCore. При принудительной настройке для QBox используйте "qbcore""auto"
Config.LocaleЯзык всех сообщений. См. раздел «Языки» ниже"es"
Config.PermissionFileНазвание JSON-файла, в котором хранится список прав"permissions.json"

ПараметрЧто делаетПо умолчанию
Config.PermissionsИспользовать список прав из permissions.jsontrue
Config.UseJobsРазрешить открывать меню также работам из Config.AuthorizedJobstrue
Config.AuthorizedJobsНазвания работ, которым разрешено, когда включён UseJobsmechanic, police

Два переключателя сочетаются так:

PermissionsUseJobsКто может открыть меню
вкл.вкл.Игроки из списка и все, чья работа указана в AuthorizedJobs
вкл.выкл.Только игроки из списка
выкл.вкл. или выкл.Все

Список привязан к идентификатору Steam. Игрока без Steam добавить нельзя; команда give ответит, что не смогла получить его идентификатор Steam.


ПараметрЧто делаетПо умолчанию
Config.UseItemsЗарегистрировать 82 предмета-краски и предмет сброса как используемыеtrue
Config.ItemsRequirePermissionПрименять к предметам-краскам те же правила, что и к меню. Если выключено, воспользоваться может любой, у кого предмет в рукахfalse

Предмет сброса никогда не запрашивает права. Названия предметов и расположение их определений указаны в разделе Установка.


Каждое название задаётся в config.lua без слэша.

ПараметрПо умолчаниюКтоЧто делает
Config.Chameleon/chameleonЛюбой, кому разрешено правилами вышеОткрывает меню. Нужно находиться в транспорте
Config.ChameleonReset/chameleonresetЛюбойВозвращает машине, в которой вы сидите, исходный цвет
Config.ChameleonGive/chameleongive [ID]АдминистраторыДобавляет Steam ID этого игрока в список прав
Config.ChameleonRemove/chameleonremove [ID]АдминистраторыУбирает его из списка

«Администратор» — это группа admin или superadmin на ESX и право admin или god на QBCore. Обе проверки находятся в bridge/server.lua, если у вас они называются иначе.


Config.Locations — это список; добавляйте сколько угодно записей. В каждой есть:

ПолеЧто делаетЗначение в поставке
coordsГде находится маркерДве примерные точки рядом с Burton
radiusНа каком расстоянии (в метрах) нужно быть, чтобы появилась подсказка3.0
markerTypeРисуемый маркер FiveM1 (кольцо на земле)
markerColorКрасный, зелёный, синий и альфа-каналКрасный у одного, зелёный у другого, альфа 100
markerScaleЕго размер2.0 × 2.0 × 1.0
notificationТекст подсказки внутри радиусаPress ~INPUT_CONTEXT~ to open the Chameleon menu

Маркер рисуется с расстояния 10 метров. Подсказка появляется только внутри radius и в транспорте; затем E открывает меню с той же проверкой прав, что и у команды.

Текст notification находится в config.lua, а не в локалях, поэтому переводите его там.


html/ui.html содержит образцы — по одному на каждый ID цвета от 161 до 242 — и заголовок меню «Chameleon Paintings», который прописан прямо на странице и не берётся из локалей. html/style.css задаёт каждому образцу цвет предпросмотра.


В locales/ поставляются девять: en, es, fr, de, it, pt, pl, ru и tr. Установите в Config.Locale один из этих кодов.

Чтобы добавить новый:

  1. Скопируйте locales/en.lua в новый файл, например locales/nl.lua.
  2. Измените код языка в начале нового файла на nl и переведите текст.
  3. Добавьте locales/nl.lua и в client_scripts, и в server_scripts в fxmanifest.lua, рядом с другими файлами локалей.
  4. Установите Config.Locale = "nl", затем выполните refresh и перезапустите ресурс.

Отсутствующий ключ отображается как Translation [key] does not exist и ничего не ломает, поэтому недоделанный файл легко заметить.


Два файла в bridge/ — единственные места, где ресурс обращается к вашему фреймворку.

ФайлЧто делает
bridge/server.luaНаходит фреймворк, отправляет уведомления (esx:showNotification или QBCore:Notify), решает, кто администратор, читает работу игрока, регистрирует используемые предметы и удаляет предмет после использования
bridge/client.luaНаходит фреймворк на стороне игрока и показывает уведомления (ESX.ShowNotification или QBCore.Functions.Notify)

Если фреймворк не найден, уведомления откатываются на сообщения в чате.

Адаптация. Чтобы использовать собственный скрипт уведомлений, замените тело Bridge.Notify в обоих файлах. Для собственной системы администраторов измените Bridge.IsAdmin. Для фреймворка, который не является ESX, QBCore или QBox, заполните каждую функцию Bridge. в bridge/server.lua — определение фреймворка, Notify, IsAdmin, GetPlayerJob, RegisterUsableItem и RemoveItem — и больше ресурсу ничего не потребуется.