Настройка
У mic_boosting два слоя. Короткий config.lua содержит то немногое, что решается один раз: фреймворк, способ открытия планшета, кто является администратором, язык. Всё, что касается геймплея, хранится в базе данных и редактируется «вживую» из админ-панели (/boostingconfig) без перезапуска.
Какой файл за что отвечает
Заголовок раздела «Какой файл за что отвечает»| Где | За что отвечает | Можно править |
|---|---|---|
config.lua | Фреймворк, предмет и команда планшета, доступ администраторов, язык, система взаимодействия, полицейские работы, тестовые закрепления | Да |
shared/prices.lua | Начальные значения шести экономических настроек — читается только при самом первом запуске (см. ниже) | Да |
locales/*.lua | Каждое уведомление и каждая строка планшета, по файлу на язык; locales/locale.lua — загрузчик | Да |
bridge/server_bridge.lua | Фреймворк, деньги, предметы, используемый предмет, число полицейских, проверка администратора, выдача машины в гараж | Да |
bridge/client_bridge.lua | Уведомления, текстовая подсказка, взаимодействия через таргет, оповещение полиции диспетчером | Да |
items/ | Определения предметов для ox_inventory, QBCore и ESX, а также семь изображений предметов | Да |
ui/ | Сам планшет (HTML, CSS, JS) | Под escrow |
client/, server/ | Игровая логика и серверная часть админ-панели | Под escrow |
Админ-панель (/boostingconfig) | Точки, точки сдачи, классы, машины, охрана, мини-игры, магазин инструментов, прокачка, экономика | В игре |
Открытые файлы — те, что перечислены в escrow_ignore в fxmanifest.lua: config.lua, locales/, shared/ и bridge/.
config.lua
Заголовок раздела «config.lua»Фреймворк и язык
Заголовок раздела «Фреймворк и язык»| Параметр | Что делает | По умолчанию |
|---|---|---|
Config.Framework | 'auto' ищет qb-core, затем es_extended, иначе standalone. QBox определяется как qb-core через слой совместимости с QBCore. Либо задайте принудительно 'qbcore' (в том числе для QBox), 'esx', 'standalone' | 'auto' |
Config.CoreResource | Есть в файле, но в этой версии не читается: определение всегда ищет ресурсы с именами qb-core и es_extended | '' |
Config.Locale | Язык уведомлений и планшета. При отсутствии строк используется английский | 'en' |
Открытие планшета
Заголовок раздела «Открытие планшета»| Параметр | Что делает | По умолчанию |
|---|---|---|
Config.TabletOpenMode | 'item', 'command' или 'both' | 'item' |
Config.TabletItem | Используемый предмет, который его открывает | mic_boosting_tablet |
Config.TabletCommand | Команда, которая его открывает, в режиме command или both | boosting |
Доступ администраторов
Заголовок раздела «Доступ администраторов»| Параметр | Что делает | По умолчанию |
|---|---|---|
Config.AdminCommand | Команда, открывающая админ-панель | boostingconfig |
Config.AdminGroups | Ранги, которые считаются администраторскими. ESX сравнивает группу игрока; QBCore для каждого названия вызывает HasPermission | admin, superadmin, god |
Config.AdminAce | ACE, который также делает вас администратором. Единственный путь на standalone. false отключает его | command |
Та же проверка определяет, кто видит вкладку Admin внутри планшета. Подробнее — в разделе ⌨️ Команды и права.
Взаимодействие и полиция
Заголовок раздела «Взаимодействие и полиция»| Параметр | Что делает | По умолчанию |
|---|---|---|
Config.InteractionSystem | Как появляется подсказка вскрытия на машине: 'ox_target', 'qb_target' или 'drawtext' (нажмите E) | 'ox_target' |
Config.PoliceJobs | Работы, учитываемые для минимума полиции онлайн каждого класса | police, sheriff, lspd, bcso |
С ox_target на машине также отображается отдельный пункт EMP Jammer для любого, у кого он есть. В других режимах глушитель всё равно используется — автоматически, когда начинается вскрытие.
Тестирование
Заголовок раздела «Тестирование»| Параметр | Что делает | По умолчанию |
|---|---|---|
Config.ForceDropoffId | Отправляет каждый контракт в эту точку сдачи | nil (случайно) |
Config.ForceLocationId | Создаёт каждый контракт в этой точке подбора | nil (случайно) |
Locations.BlipRadius | Радиус в метрах круга поиска вокруг целевой машины | 150.0 |
shared/prices.lua — только первый запуск
Заголовок раздела «shared/prices.lua — только первый запуск»Этот файл при первом запуске ресурса (когда таблица настроек пуста) записывает в базу данных шесть экономических значений. После этого его редактирование ничего не даёт — меняйте их на вкладке Settings админ-панели.
Prices.Tools в том же файле — это не то, что продаёт магазин инструментов: магазин берёт каталог со вкладки Market админ-панели.
Админ-панель
Заголовок раздела «Админ-панель»/boostingconfig открывает её на вкладке Locations. Добавьте название вкладки, чтобы открыть её в другом месте: locations, dropoffs, classes, vehicles, setups, progression, minigames, market или settings — например, /boostingconfig classes.
| Вкладка | Что вы там настраиваете |
|---|---|
| Locations | Точки подбора: позиция машины и четыре позиции охранников для каждой, допустимые классы и набор охраны для каждого класса. Телепорт, смена порядка, правка, удаление или установка новой точки в мире |
| Drop-Offs | Куда доставляются машины. Установка новых точек в мире, телепорт, удаление |
| Classes | Всё по каждому классу (таблица ниже) |
| Vehicles | Пул машин, из которого каждый класс выбирает цели |
| NPC Setups | Именованная экипировка охраны и её оружие |
| Progression | Задания, вехи, достижения и перки |
| Minigames | Каждая мини-игра, её настройки сложности, вкл/выкл и классы, которые её используют |
| Market | Магазин инструментов: предметы и баффы, цена, валюта (MB или наличные), значение, минимальный класс, вкл/выкл |
| Settings | Экономика, heat, вкладка Tools и маркер точки сдачи |
Установка в мире. Новые точки и точки сдачи устанавливаются с помощью «призрака»: E подтверждает, колёсико мыши вращает, Backspace отменяет. Точка подбора — это сначала машина, затем четыре охранника, затем название.
В поставке шесть: D, C, B, A, S и S+.
| Настройка | Что делает |
|---|---|
| Название, минимальный уровень | Отображаемое название и уровень, нужный для доступа (D 0, C 3, B 6, A 10, S 15, S+ 20) |
| Диапазон опыта, диапазон выплаты | Что даёт доставленная машина; значение выбирается случайно между двумя границами |
| Лимит времени | Минут на доставку |
| Перезарядка | Секунд до того, как тот же игрок сможет взять следующий |
| Мин. / макс. очереди | Сколько очередь ищет контракт |
| Дневные лимиты | Контрактов на игрока и на банду в день (0 = без ограничений) |
| Макс. попыток вскрытия | Количество попыток, после которых замок сдаётся |
| Оповещение полиции | Получает ли полиция оповещение диспетчера для этого класса |
| Прирост heat | Heat, добавляемый за работу |
| Мин. полиции онлайн | Сколько полицейских должно быть онлайн, чтобы встать в очередь или принять контракт. По умолчанию 2 для каждого класса |
| Звёзды розыска | Уровень розыска, выдаваемый вору после вскрытия машины (D 1 … S+ 5) |
Настройки (Settings)
Заголовок раздела «Настройки (Settings)»| Настройка | Что делает | Значение по умолчанию |
|---|---|---|
| VIN Scratch Multiplier | Плата за соскабливание VIN — 35% выплаты × это значение, оплачивается в MB | 4.0 |
| XP per Level | Опыт до следующего уровня = уровень × это значение | 500 |
| Heat Decay per Minute | Heat, снимаемый каждую минуту у игроков, находящихся онлайн | 2 |
| Max Heat | При таком heat контракты отклоняются, пока он не остынет | 100 |
| Hide Locked Items | Скрывает предметы магазина инструментов, недоступные по классу игрока | Выкл. |
| Dropoff marker | Вкл/выкл, тип маркера, цвет (RGBA) и размер | Вкл., тип 2, красный |
| Queue Fee, Crypto Rate | Показаны в панели. В этой версии вход в очередь бесплатный, а за доставку начисляется вся выплата в MB | 0, 0.10 |
Начать заново
Заголовок раздела «Начать заново»boostingseed, введённая в консоли сервера, очищает таблицы конфигурации и возвращает значения по умолчанию из поставки. Данные игроков — профили, уровни, MB, банды, контракты, лоты рынка — не затрагиваются.
В locales/ поставляются одиннадцать: en, es, fr, pt (бразильский), de, tr, it, nl, pl, cs, ru. Укажите в Config.Locale один из них. Если в языке отсутствует ключ, используется английский.
Чтобы добавить новый:
- Скопируйте
locales/en.luaвlocales/<code>.luaи измените код языка в начале таблицы. - Переведите значения в обеих половинах:
script(уведомления — сохраняйте%sи%d) иui(планшет — сохраняйте плейсхолдеры{name}).date.intl_localeзадаёт формат даты на экране блокировки. - Добавьте файл в
shared_scriptsвfxmanifest.luaпослеlocales/en.lua, затем выполнитеrefresh. - Установите
Config.Localeв новый код.
Оба файла бриджа открыты, и именно сюда подключаются собственный фреймворк, инвентарь, система уведомлений или диспетчер.
bridge/server_bridge.lua
| Функция | Для чего |
|---|---|
| Определение фреймворка | Выбирает qbcore, esx или standalone и выводит результат |
GetPlayerIdentifier | citizenid на QBCore, identifier на ESX, license: на standalone |
GetPlayerJob, GetPoliceCount | Названия работ и количество игроков с работой из Config.PoliceJobs |
AddMoney, RemoveMoney | Денежные награды и покупки за наличные используют счёт money |
AddItem, RemoveItem, HasItem | Сначала ox_inventory, если он запущен, иначе фреймворк |
RegisterUsableItem | Делает предмет планшета используемым (ESX и QBCore; на standalone ничего) |
GiveVehicle | Помещает машину с соскобленным VIN в гараж: owned_vehicles на ESX, player_vehicles в pillboxgarage на QBCore |
IsAdmin | Сначала ACE, затем Config.AdminGroups |
Notify | Уведомление фреймворка с сервера |
bridge/client_bridge.lua
| Функция | Для чего |
|---|---|
Notify | Уведомление QBCore или ESX, встроенная лента игры на standalone |
ShowTextUI, HideTextUI | Подсказка в режиме drawtext. Закомментированные примеры для okokTextUI и cd_drawtextui |
ClientHasItem | Клиентская проверка предмета, используется для пункта EMP на машине |
AddEntityInteraction, RemoveEntityInteraction | ox_target / qb-target / drawtext на машине |
PoliceDispatch | Выполняется на каждом полицейском клиенте при срабатывании оповещения. По умолчанию: уведомление и мигающая метка на 60 секунд. Закомментированные примеры для cd_dispatch и ps-dispatch |
Большинство уведомлений, которые видит игрок, приходят изнутри планшета в виде его собственных всплывающих сообщений, а не через фреймворк.