Przejdź do głównej zawartości

Personalizacja

Prawie wszystko jest w config.lua. Reszta to tekst, dane i cienka warstwa, która rozmawia z twoim frameworkiem.


PlikO czym decydujeDo edycji
config.luaFramework, język, kto może malować, przedmioty, nazwy komend, znaczniki lakierniTak
locales/*.luaKażde powiadomienie i podpowiedź czatu, jeden plik na językTak
locales/main.luaFunkcja wybierająca tekst dla Config.LocaleTak
bridge/server.luaWykrywanie frameworka, powiadomienia, sprawdzanie admina, joby, używalne przedmioty, zabieranie przedmiotówTak
bridge/client.luaWykrywanie frameworka i powiadomienia po stronie graczaTak
items/ox.lua, items/qb.lua, items/sql.sqlGotowe definicje przedmiotów do skopiowania do twojego ekwipunkuTak
permissions.jsonSteam ID uprawnione do otwierania menu. Zapisywany przez komendy give i removeTak
vehicle_original_colors.jsonKolor każdego pomalowanego auta sprzed pierwszego malowania, według modelu i tablicyTak
html/ui.html, html/style.css, html/script.jsMenu: jego tytuł, próbki kolorów i wygląd—
data/, stream/Definicje lakierów i tekstury ramp dla kolorów od 223 do 242Zostaw bez zmian
client/main.lua, server/main.luaLogikaEscrow

OpcjaCo robiDomyślnie
Config.Framework"auto", "esx" lub "qbcore". Auto używa tego z es_extended i qb-core, który działa; QBox liczy się jako qb-core dzięki kompatybilności z QBCore. Przy ustawieniu na stałe QBox używa "qbcore""auto"
Config.LocaleJęzyk każdego komunikatu. Zobacz Języki, niżej"es"
Config.PermissionFileNazwa pliku JSON przechowującego listę uprawnień"permissions.json"

OpcjaCo robiDomyślnie
Config.PermissionsUżywa listy uprawnień z permissions.jsontrue
Config.UseJobsPozwala otwierać menu także jobom z Config.AuthorizedJobstrue
Config.AuthorizedJobsNazwy jobów dozwolone, gdy UseJobs jest włączonemechanic, police

Dwa przełączniki łączą się tak:

PermissionsUseJobsKto może otworzyć menu
włączonewłączoneGracze z listy oraz każdy, czyj job jest w AuthorizedJobs
włączonewyłączoneTylko gracze z listy
wyłączonewłączone lub wyłączoneWszyscy

Lista jest indeksowana identyfikatorem Steam. Gracza, który nie używa Steama, nie da się dodać; komenda give odpowie, że nie udało się pobrać jego identyfikatora Steam.


OpcjaCo robiDomyślnie
Config.UseItemsRejestruje 82 przedmioty z lakierami i przedmiot resetu jako używalnetrue
Config.ItemsRequirePermissionSprawia, że przedmioty z lakierami podlegają tym samym zasadom co menu. Wyłączone: używać może każdy, kto jeden trzymafalse

Przedmiot resetu nigdy nie pyta o uprawnienia. Nazwy przedmiotów i miejsce, gdzie znajdują się ich definicje, są w Instalacja.


Każda nazwa jest ustawiana w config.lua, bez ukośnika.

OpcjaDomyślnieKtoCo robi
Config.Chameleon/chameleonKażdy dozwolony przez powyższe zasadyOtwiera menu. Musisz być w pojeździe
Config.ChameleonReset/chameleonresetKażdyPrzywraca auto, w którym siedzisz, do oryginalnego koloru
Config.ChameleonGive/chameleongive [ID]AdminiDodaje Steam ID tego gracza do listy uprawnień
Config.ChameleonRemove/chameleonremove [ID]AdminiZdejmuje go z niej z powrotem

“Admin” oznacza grupę admin lub superadmin na ESX oraz uprawnienie admin lub god na QBCore. Oba sprawdzenia są w bridge/server.lua, jeśli u ciebie nazywają się inaczej.


Config.Locations to lista; dodaj tyle wpisów, ile chcesz. Każdy ma:

PoleCo robiWartość domyślna
coordsGdzie stoi znacznikDwa przykładowe miejsca w pobliżu Burton
radiusJak blisko, w metrach, musisz być, by pojawiła się podpowiedź3.0
markerTypeRysowany marker FiveM1 (pierścień na ziemi)
markerColorCzerwony, zielony, niebieski i alfaCzerwony w jednym, zielony w drugim, alfa 100
markerScaleJego rozmiar2.0 × 2.0 × 1.0
notificationTekst pomocy wyświetlany wewnątrz promieniaPress ~INPUT_CONTEXT~ to open the Chameleon menu

Znacznik jest rysowany z odległości 10 metrów. Podpowiedź pojawia się tylko wewnątrz radius i w pojeździe; E otwiera wtedy menu, z takim samym sprawdzeniem uprawnień jak komenda.

Tekst notification jest w config.lua, a nie w plikach lokalizacji, więc tłumacz go tam.


html/ui.html zawiera próbki kolorów — po jednej na każde ID koloru od 161 do 242 — oraz tytuł menu, “Chameleon Paintings”, który jest zapisany na stałe w stronie, a nie pobierany z lokalizacji. html/style.css nadaje każdej próbce jej kolor podglądu.


W locales/ jest dziewięć: en, es, fr, de, it, pt, pl, ru i tr. Ustaw Config.Locale na jeden z tych kodów.

Aby dodać nowy:

  1. Skopiuj locales/en.lua do nowego pliku, na przykład locales/nl.lua.
  2. Zmień kod języka na górze nowego pliku na nl i przetłumacz tekst.
  3. Dodaj locales/nl.lua do obu list, client_scripts i server_scripts, w fxmanifest.lua, obok pozostałych plików lokalizacji.
  4. Ustaw Config.Locale = "nl", następnie wykonaj refresh i zrestartuj zasób.

Brakujący klucz wyświetla się jako Translation [key] does not exist zamiast cokolwiek psuć, dzięki czemu niedokończony plik łatwo zauważyć.


Dwa pliki w bridge/ to jedyne miejsca, w których zasób dotyka twojego frameworka.

PlikCo robi
bridge/server.luaZnajduje framework, wysyła powiadomienia (esx:showNotification lub QBCore:Notify), decyduje, kto jest adminem, odczytuje job gracza, rejestruje używalne przedmioty i zabiera przedmiot po użyciu
bridge/client.luaZnajduje framework po stronie gracza i wyświetla powiadomienia (ESX.ShowNotification lub QBCore.Functions.Notify)

Gdy nie znaleziono żadnego frameworka, powiadomienia wracają do wiadomości na czacie.

Dostosowanie. Aby użyć własnego skryptu powiadomień, zastąp ciało Bridge.Notify w obu plikach. Dla własnego systemu adminów zmień Bridge.IsAdmin. Dla frameworka, który nie jest ESX, QBCore ani QBox, uzupełnij każdą funkcję Bridge. w bridge/server.lua — wykrywanie frameworka, Notify, IsAdmin, GetPlayerJob, RegisterUsableItem i RemoveItem — a zasób nie potrzebuje niczego więcej.