Personalizacja
Wszystko, co możesz zmienić, znajduje się w config.lua i locales/. Reszta zasobu jest objęta escrow, poza ekranami aplikacji.
Który plik za co odpowiada
Dział zatytułowany „Który plik za co odpowiada”| Plik | Za co odpowiada | Otwarty do edycji |
|---|---|---|
config.lua | Framework, pieniądze, szansa porażki, policja, wpis w App Store, narkotyki, poziomy, strefy | Tak |
locales/*.lua | Powiadomienia w telefonie, jeden plik na język | Tak |
locales/locales.lua | Tabela tłumaczeń, którą wypełniają pliki językowe | Tak |
ui/img/ | Obrazki aplikacji: po jednym na narkotyk, logo ekranu głównego i ikona aplikacji (icon.png) | Tak |
ui/index.html, ui/styles.css, ui/script.js | Ekrany aplikacji, układ i etykiety przycisków | — |
player_data.json | Sprzedaże, poziom i premia każdego dilera. Zapisywany przez zasób | Tak |
client/, server/ | Logika | Escrow |
Nie ma osobnego folderu bridge: framework wybiera się opcją Config.Framework opisaną niżej.
Framework i pieniądze
Dział zatytułowany „Framework i pieniądze”| Opcja | Co robi | Domyślnie |
|---|---|---|
Config.Framework | "ESX" lub "QB", wielkimi literami. Na QBox użyj "QB" — QBox uruchamia zasoby QBCore przez swoją warstwę kompatybilności | "ESX" |
Config.esxResourceName | Nazwa zasobu ESX, jeśli twoja różni się od standardowej | "es_extended" |
Config.qbResourceName | Nazwa zasobu QBCore, jeśli twoja różni się od standardowej. Na QBox zostaw "qb-core" | "qb-core" |
Config.BlackMoney | Płać czarną gotówką zamiast czystej | true |
Config.MoneyAsItem | Płać jako przedmiot w ekwipunku zamiast na konto | true |
Config.MoneyItem | Przedmiot wypłacany, gdy MoneyAsItem jest włączone, a BlackMoney wyłączone | "money" |
Co gracz faktycznie otrzymuje:
| ESX | QBCore / QBox | |
|---|---|---|
| Czarna gotówka, jako przedmiot | Przedmiot black_money | Przedmiot blackmoney |
| Czarna gotówka, jako konto | Konto black_money | Przedmiot blackmoney |
| Czysta gotówka, jako przedmiot | Przedmiot z Config.MoneyItem | Przedmiot z Config.MoneyItem |
| Czysta gotówka, jako konto | Gotówka | Gotówka |
Transakcja
Dział zatytułowany „Transakcja”| Opcja | Co robi | Domyślnie |
|---|---|---|
Config.Failure | Szansa, od 0 do 100, że kupiec odeśle gracza po zapukaniu. Narkotyki zostają przy graczu | 55 |
Config.DealTimeout | Liczba sekund na dotarcie do drzwi, zanim oferta wygaśnie | 300 |
Config.MinimumPolice | Liczba funkcjonariuszy online, zanim ktokolwiek kupi. 0 wyłącza sprawdzanie | 1 |
Sprzedawana ilość jest losowana między minAmount a maxAmount danego narkotyku w chwili, gdy gracz stuknie SELL; drzwi są losowane spośród stref danego narkotyku.
Policja
Dział zatytułowany „Policja”| Opcja | Co robi | Domyślnie |
|---|---|---|
Config.PoliceJobs | Prace liczone jako policja, a zarazem te, które otrzymują alerty | police, sheriff |
Config.PoliceAlertChance | Szansa, od 0 do 100, że udana sprzedaż zostanie zgłoszona | 20 |
Config.PoliceNotifyAppName | Tytuł alertu na lb-phone funkcjonariusza | "Police Dispatch" |
Config.PoliceBlipSprite | Znacznik umieszczany w miejscu sprzedaży | 161 |
Config.PoliceBlipColor | Jego kolor | 38 |
Config.PoliceBlipScale | Jego rozmiar | 1.0 |
Config.PoliceBlipDuration | Liczba sekund, zanim znacznik zniknie | 120 |
Config.PriceMultipliers | Progi cen według liczby funkcjonariuszy online, każdy z minPolice, maxPolice i multiplier | Zobacz niżej |
Dostarczone progi: 1–2 funkcjonariuszy ×1.0, 3–4 ×1.2, 5–6 ×1.4, 7–9 ×1.6, 10 lub więcej ×2.0. Przy liczbie funkcjonariuszy, której nie obejmuje żaden próg, ceny zostają na ×1.0.
Jak liczona jest cena. Premia za poziom i premia policyjna są dodawane, a nie mnożone: diler poziomu 5 (×1.5) sprzedający przy sześciu funkcjonariuszach online (×1.4) dostaje 1 + 0.5 + 0.4 = ×1.9 ceny bazowej.
Alert dostaje każdy funkcjonariusz z pracą z PoliceJobs; nie ma sprawdzania, czy jest na służbie.
Kto widzi aplikację
Dział zatytułowany „Kto widzi aplikację”| Opcja | Co robi | Domyślnie |
|---|---|---|
Config.BlockedAppJobs | Prace, które nie mogą zobaczyć ani zainstalować aplikacji. Sprawdzane przy wczytaniu gracza i przy każdej zmianie jego pracy | police, sheriff, ambulance, mechanic |
Wpis w App Store
Dział zatytułowany „Wpis w App Store”| Opcja | Co robi | Domyślnie |
|---|---|---|
Config.name | Nazwa aplikacji w telefonie | "Drug Dealer" |
Config.description | Linijka pod nią w App Store | "Deal dope, dodge the cops" |
Config.defaultApp | true instaluje ją od razu na każdym telefonie; false oznacza, że pobiera się ją z App Store | false |
Config.size | Rozmiar pokazywany w sklepie, w KB | 25400 |
Config.price | Ile kosztuje instalacja | 0 |
Ikoną aplikacji jest ui/img/icon.png. Aby ją zmienić, podmień ten plik.
Narkotyki
Dział zatytułowany „Narkotyki”Config.drugs to lista; każdy wpis to jeden przycisk w aplikacji.
| Pole | Co robi |
|---|---|
item | Przedmiot z ekwipunku, który jest sprzedawany |
label | Nazwa pokazywana w aplikacji i w powiadomieniach |
price | Cena za sztukę, przed premiami |
minAmount, maxAmount | Zakres, z którego losowana jest ilość w każdej transakcji |
zones | W których strefach z Config.NPCLocations może znajdować się kupiec |
image | Nazwa pliku w ui/img/ |
minLevel | Poziom dilera potrzebny do sprzedaży |
Aby dodać narkotyk, dodaj wpis, wrzuć jego obrazek do ui/img/ i upewnij się, że przedmiot istnieje w twoim ekwipunku. Obrazki, które już tam są i których używa dostarczona lista: 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.
Poziomy
Dział zatytułowany „Poziomy”Config.levels wylicza rangi po kolei. Każda ma numer level, name, salesRequired (łączna liczba transakcji, a nie sztuk) i bonusMultiplier.
| Poziom | Nazwa | Sprzedaże | Premia |
|---|---|---|---|
| 1 | Newbie | 0 | ×1.0 |
| 2 | Rookie | 25 | ×1.1 |
| 3 | Hustler | 75 | ×1.2 |
| 4 | Dealer | 150 | ×1.35 |
| 5 | Trader | 300 | ×1.5 |
| 6 | Boss | 600 | ×1.75 |
| 7 | Kingpin | 1200 | ×2.0 |
| 8 | Overlord | 2000 | ×2.25 |
| 9 | Tycoon | 3500 | ×2.5 |
| 10 | Legend | 5000 | ×3.0 |
Zachowaj rosnącą kolejność salesRequired; poziom jest wyliczany przez przejście listy w dół.
| Opcja | Co robi | Domyślnie |
|---|---|---|
Config.dataFile | Plik w folderze zasobu, w którym zapisywane są postępy każdego dilera | "player_data.json" |
Postępy są przechowywane dla każdej postaci osobno: według identyfikatora ESX lub citizen ID z QBCore.
Config.NPCLocations jest ponumerowane; te numery są tym, do czego odwołuje się pole zones narkotyku. Każda strefa ma:
| Pole | Co robi |
|---|---|
peds | Modele pedów, losowo wybierany jeden z nich otwiera drzwi |
locations | Pozycje drzwi (x, y, z i heading) |
| Strefa | Obszar | Dostarczone drzwi |
|---|---|---|
| 1 | Grove | 1 |
| 2 | Molo i plaża | 10 |
| 3 | Domy Vinewood | 10 |
| 4 | Sandy Shores | 8 |
| 5 | Paleto Bay | 9 |
Strefy i drzwi możesz dodawać swobodnie. Jedna rzecz, o której warto wiedzieć: nazwa strefy w alercie policyjnym pochodzi z samego zasobu i zna tylko strefy od 1 do 5; każda dodana przez ciebie strefa jest zgłaszana jako “Unknown Zone”.
W locales/ dostarczonych jest dziewięć: en, es, fr, de, it, pt, pl, ru i tr. Ustaw Config.Locale na jeden z nich.
Aby dodać nowy:
- Skopiuj
locales/en.luado nowego pliku, na przykładlocales/nl.lua. - Zmień kod na początku na
nli przetłumacz tekst. - Dodaj
locales/nl.luado listyshared_scriptswfxmanifest.lua, obok pozostałych i powyżejconfig.lua. - Ustaw
Config.Locale = "nl", a następnie wykonajrefreshi zrestartuj zasób.
Tłumaczenia w locales obejmują powiadomienia w telefonie. Własne przyciski aplikacji — DRUGS, PROFILE, SELL, CANCEL oraz ekran profilu — są zapisane w ui/script.js i ui/index.html.