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

Настройка

Всё, что можно менять, находится в config.lua и locales/. Остальная часть ресурса зашифрована (escrow), кроме экранов приложения.


ФайлЗа что отвечаетМожно редактировать
config.luaФреймворк, деньги, шанс неудачи, полиция, карточка в App Store, наркотики, уровни, зоныДа
locales/*.luaУведомления в телефоне, по одному файлу на языкДа
locales/locales.luaТаблица локалей, которую заполняют языковые файлыДа
ui/img/Картинки приложения: по одной на каждый наркотик, логотип на домашнем экране и иконка приложения (icon.png)Да
ui/index.html, ui/styles.css, ui/script.jsЭкраны приложения, вёрстка и подписи кнопок—
player_data.jsonПродажи, уровень и бонус каждого дилера. Записывается ресурсомДа
client/, server/ЛогикаЗашифрованы

Отдельной папки bridge нет: фреймворк выбирается параметром Config.Framework ниже.


ПараметрЧто делаетПо умолчанию
Config.Framework"ESX" или "QB", заглавными буквами. На QBox используйте "QB" — QBox запускает ресурсы QBCore через слой совместимости"ESX"
Config.esxResourceNameНазвание ресурса ESX, если у вас оно нестандартное"es_extended"
Config.qbResourceNameНазвание ресурса QBCore, если у вас оно нестандартное. На QBox оставьте "qb-core""qb-core"
Config.BlackMoneyПлатить чёрными деньгами вместо чистой наличностиtrue
Config.MoneyAsItemПлатить предметом инвентаря, а не зачислением на счётtrue
Config.MoneyItemПредмет, выдаваемый при включённом MoneyAsItem и выключенном BlackMoney"money"

Что именно получает игрок:

ESXQBCore / QBox
Чёрные деньги, предметомПредмет black_moneyПредмет blackmoney
Чёрные деньги, на счётСчёт black_moneyПредмет blackmoney
Чистые деньги, предметомПредмет из Config.MoneyItemПредмет из Config.MoneyItem
Чистые деньги, на счётНаличныеНаличные

ПараметрЧто делаетПо умолчанию
Config.FailureШанс (от 0 до 100), что покупатель прогонит игрока после стука. Наркотики остаются у игрока55
Config.DealTimeoutСекунды на то, чтобы добраться до двери, прежде чем предложение истечёт300
Config.MinimumPoliceЧисло офицеров в сети, без которого никто не покупает. 0 отключает проверку1

Количество для продажи выбирается случайно между minAmount и maxAmount наркотика, когда игрок нажимает SELL; дверь выбирается случайно из зон этого наркотика.


ПараметрЧто делаетПо умолчанию
Config.PoliceJobsРаботы, которые считаются полицейскими и получают оповещенияpolice, sheriff
Config.PoliceAlertChanceШанс (от 0 до 100), что об успешной продаже сообщат20
Config.PoliceNotifyAppNameЗаголовок оповещения на lb-phone офицера"Police Dispatch"
Config.PoliceBlipSpriteБлип, ставящийся на месте продажи161
Config.PoliceBlipColorЕго цвет38
Config.PoliceBlipScaleЕго размер1.0
Config.PoliceBlipDurationСекунды до исчезновения блипа120
Config.PriceMultipliersЦеновые уровни по числу офицеров в сети, у каждого есть minPolice, maxPolice и multiplierСм. ниже

Поставляемые уровни: 1–2 офицера ×1.0, 3–4 ×1.2, 5–6 ×1.4, 7–9 ×1.6, 10 и более ×2.0. Если число офицеров не попадает ни в один уровень, цены остаются ×1.0.

Как рассчитывается цена. Бонус уровня и бонус полиции складываются, а не перемножаются: дилер 5-го уровня (×1.5), продающий при шести офицерах в сети (×1.4), получает 1 + 0.5 + 0.4 = ×1.9 от базовой цены.

Оповещение получает каждый офицер с работой из PoliceJobs; проверки нахождения на смене нет.


ПараметрЧто делаетПо умолчанию
Config.BlockedAppJobsРаботы, которые не видят приложение и не могут его установить. Проверяется при загрузке игрока и при смене работыpolice, sheriff, ambulance, mechanic

ПараметрЧто делаетПо умолчанию
Config.nameНазвание приложения на телефоне"Drug Dealer"
Config.descriptionСтрока под названием в App Store"Deal dope, dodge the cops"
Config.defaultApptrue — приложение уже установлено на каждом телефоне; false — его нужно скачать из App Storefalse
Config.sizeРазмер, показываемый в магазине, в КБ25400
Config.priceСтоимость установки0

Иконка приложения — ui/img/icon.png. Замените файл, чтобы изменить её.


Config.drugs — это список; каждая запись — одна кнопка в приложении.

ПолеЧто делает
itemПредмет инвентаря, который продаётся
labelНазвание, показываемое в приложении и уведомлениях
priceЦена за единицу до бонусов
minAmount, maxAmountДиапазон, из которого выбирается количество в каждой сделке
zonesВ каких зонах из Config.NPCLocations может находиться покупатель
imageИмя файла внутри ui/img/
minLevelУровень дилера, необходимый для продажи

Чтобы добавить наркотик, добавьте запись, положите его картинку в ui/img/ и убедитесь, что предмет существует в вашем инвентаре. Уже лежащие там картинки, которые использует поставляемый список: baggy_weed.png, baggy_cocaine.png, lsd.png, baggy_meth.png, mushroom.png, opium.png, crack.png, drug_heroin.png, xtc_baggy.png, oxy.png, drug_lean.png, drug_hash.png.


Config.levels перечисляет ранги по порядку. У каждого есть номер level, название name, salesRequired (общее число сделок, а не единиц товара) и bonusMultiplier.

УровеньНазваниеПродажБонус
1Newbie0×1.0
2Rookie25×1.1
3Hustler75×1.2
4Dealer150×1.35
5Trader300×1.5
6Boss600×1.75
7Kingpin1200×2.0
8Overlord2000×2.25
9Tycoon3500×2.5
10Legend5000×3.0

Держите их в порядке возрастания salesRequired: уровень определяется проходом по списку сверху вниз.

ПараметрЧто делаетПо умолчанию
Config.dataFileФайл в папке ресурса, в котором хранится прогресс каждого дилера"player_data.json"

Прогресс хранится по персонажам: по идентификатору ESX или citizen ID в QBCore.


Config.NPCLocations пронумерован; эти номера и указываются в zones наркотика. У каждой зоны есть:

ПолеЧто делает
pedsМодели педов, один из которых случайно открывает дверь
locationsПозиции дверей (x, y, z и направление)
ЗонаРайонПоставляемых дверей
1Грув1
2Пирс и пляж10
3Дома в Вайнвуде10
4Сэнди-Шорс8
5Палето-Бэй9

Зоны и двери можно свободно добавлять. Но учтите: название зоны в оповещении полиции берётся из самого ресурса и знает только зоны с 1 по 5; любая добавленная вами зона в оповещении указывается как «Unknown Zone».


В 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 в список shared_scripts в fxmanifest.lua, рядом с остальными и выше config.lua.
  4. Установите Config.Locale = "nl", затем выполните refresh и перезапустите ресурс.

Локали охватывают уведомления в телефоне. Собственные кнопки приложения — DRUGS, PROFILE, SELL, CANCEL и экран профиля — прописаны в ui/script.js и ui/index.html.