Personalizacja
Prawie wszystko jest w config.lua. Reszta to tekst, dane i cienka warstwa, która rozmawia z twoim frameworkiem.
Który plik decyduje o czym
Dział zatytułowany „Który plik decyduje o czym”| Plik | O czym decyduje | Do edycji |
|---|---|---|
config.lua | Framework, język, kto może malować, przedmioty, nazwy komend, znaczniki lakierni | Tak |
locales/*.lua | Każde powiadomienie i podpowiedź czatu, jeden plik na język | Tak |
locales/main.lua | Funkcja wybierająca tekst dla Config.Locale | Tak |
bridge/server.lua | Wykrywanie frameworka, powiadomienia, sprawdzanie admina, joby, używalne przedmioty, zabieranie przedmiotów | Tak |
bridge/client.lua | Wykrywanie frameworka i powiadomienia po stronie gracza | Tak |
items/ox.lua, items/qb.lua, items/sql.sql | Gotowe definicje przedmiotów do skopiowania do twojego ekwipunku | Tak |
permissions.json | Steam ID uprawnione do otwierania menu. Zapisywany przez komendy give i remove | Tak |
vehicle_original_colors.json | Kolor każdego pomalowanego auta sprzed pierwszego malowania, według modelu i tablicy | Tak |
html/ui.html, html/style.css, html/script.js | Menu: jego tytuł, próbki kolorów i wygląd | — |
data/, stream/ | Definicje lakierów i tekstury ramp dla kolorów od 223 do 242 | Zostaw bez zmian |
client/main.lua, server/main.lua | Logika | Escrow |
| Opcja | Co robi | Domyś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.Locale | Język każdego komunikatu. Zobacz Języki, niżej | "es" |
Config.PermissionFile | Nazwa pliku JSON przechowującego listę uprawnień | "permissions.json" |
Kto może otworzyć menu
Dział zatytułowany „Kto może otworzyć menu”| Opcja | Co robi | Domyślnie |
|---|---|---|
Config.Permissions | Używa listy uprawnień z permissions.json | true |
Config.UseJobs | Pozwala otwierać menu także jobom z Config.AuthorizedJobs | true |
Config.AuthorizedJobs | Nazwy jobów dozwolone, gdy UseJobs jest włączone | mechanic, police |
Dwa przełączniki łączą się tak:
Permissions | UseJobs | Kto może otworzyć menu |
|---|---|---|
| włączone | włączone | Gracze z listy oraz każdy, czyj job jest w AuthorizedJobs |
| włączone | wyłączone | Tylko gracze z listy |
| wyłączone | włączone lub wyłączone | Wszyscy |
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.
Przedmioty
Dział zatytułowany „Przedmioty”| Opcja | Co robi | Domyślnie |
|---|---|---|
Config.UseItems | Rejestruje 82 przedmioty z lakierami i przedmiot resetu jako używalne | true |
Config.ItemsRequirePermission | Sprawia, że przedmioty z lakierami podlegają tym samym zasadom co menu. Wyłączone: używać może każdy, kto jeden trzyma | false |
Przedmiot resetu nigdy nie pyta o uprawnienia. Nazwy przedmiotów i miejsce, gdzie znajdują się ich definicje, są w Instalacja.
Komendy
Dział zatytułowany „Komendy”Każda nazwa jest ustawiana w config.lua, bez ukośnika.
| Opcja | Domyślnie | Kto | Co robi |
|---|---|---|---|
Config.Chameleon | /chameleon | Każdy dozwolony przez powyższe zasady | Otwiera menu. Musisz być w pojeździe |
Config.ChameleonReset | /chameleonreset | Każdy | Przywraca auto, w którym siedzisz, do oryginalnego koloru |
Config.ChameleonGive | /chameleongive [ID] | Admini | Dodaje Steam ID tego gracza do listy uprawnień |
Config.ChameleonRemove | /chameleonremove [ID] | Admini | Zdejmuje 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.
Znaczniki lakierni
Dział zatytułowany „Znaczniki lakierni”Config.Locations to lista; dodaj tyle wpisów, ile chcesz. Każdy ma:
| Pole | Co robi | Wartość domyślna |
|---|---|---|
coords | Gdzie stoi znacznik | Dwa przykładowe miejsca w pobliżu Burton |
radius | Jak blisko, w metrach, musisz być, by pojawiła się podpowiedź | 3.0 |
markerType | Rysowany marker FiveM | 1 (pierścień na ziemi) |
markerColor | Czerwony, zielony, niebieski i alfa | Czerwony w jednym, zielony w drugim, alfa 100 |
markerScale | Jego rozmiar | 2.0 × 2.0 × 1.0 |
notification | Tekst pomocy wyświetlany wewnątrz promienia | Press ~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:
- Skopiuj
locales/en.luado nowego pliku, na przykładlocales/nl.lua. - Zmień kod języka na górze nowego pliku na
nli przetłumacz tekst. - Dodaj
locales/nl.luado obu list,client_scriptsiserver_scripts, wfxmanifest.lua, obok pozostałych plików lokalizacji. - Ustaw
Config.Locale = "nl", następnie wykonajrefreshi 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.
| Plik | Co robi |
|---|---|
bridge/server.lua | Znajduje 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.lua | Znajduje 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.