Konfiguracja
Ustawienia opisane na tej stronie znajdują się w config.lua. Zmieniaj pola w istniejących tabelach i uruchom zasób ponownie, aby zastosować zmiany.
Wartości początkowe i zapisane ustawienia
Sklepy i reguły progresji w pliku służą jako konfiguracja początkowa. Po zapisaniu ich z panelu administracyjnego obowiązujące wartości są zachowywane między uruchomieniami. Zmiana w pliku nie zastępuje automatycznie zapisanych ustawień: użyj panelu, aby zaktualizować już zainicjowane sklepy, reguły i opcje systemu.
Język, providery, bridge'e, kamera i strój podglądu są konfigurowane w pliku. Źródła i tatuaże opisano w sekcji katalog i pakiety.
Język globalny
Config.Locale = 'es'
Config.LocaleFallback = 'en'
Locale ustawia język interfejsu i komunikatów dla wszystkich graczy. Po zmianie uruchom zasób ponownie; gracz nie zmieni tego ustawienia w NUI. LocaleFallback określa język zapasowy.
Dostępne języki: en, es, pt-BR, fr, de, it, pl, ru, tr, th i ar. Interfejs arabski używa kierunku pisma od prawej do lewej.
System tożsamości
Config.Identity konfiguruje integrację z systemem tożsamości serwera. Określa sposób pobierania identyfikatora postaci lub konta, którego zasób używa do zapisu i odczytu tatuaży, XP oraz blueprintów.
Config.Identity.mode = 'auto'
Config.Identity.qbxResource = 'qbx_core'
| Tryb | Zastosowanie |
|---|---|
auto | W Qbox używa identyfikatora aktywnej postaci (citizenid). Na innych serwerach używa stałego identyfikatora FiveM. |
qbx_character | Jawnie używa identyfikatora postaci Qbox (citizenid). |
license | Używa licencji FiveM jako identyfikatora konta. Postacie na tym koncie współdzielą tatuaże, XP i blueprinty. |
Wybierz tryb, zanim udostępnisz zasób graczom. Późniejsza zmiana zmieni tożsamość używaną do wyszukiwania danych; dane nie zostaną automatycznie przeniesione między trybami. Nie wybieraj license, jeśli tatuaże mają być oddzielne dla postaci na jednym koncie.
Powiadomienie o interakcji
Config.HelpText.enabled = true
Config.HelpText.provider = 'auto'
Config.HelpText.position = 'left-center'
| Pole | Wartości lub działanie |
|---|---|
enabled | Pokazuje lub ukrywa powiadomienie o interakcji ze sklepami wyposażonymi w marker. |
provider | auto, ox_lib lub native. auto używa TextUI, jeśli jest dostępne, a w przeciwnym razie powiadomienia natywnego. |
position | left-center, right-center, top-center lub bottom-center dla TextUI. |
style | Kolory, obramowanie, cień, krój pisma i odstępy TextUI. |
Przykład stylu:
Config.HelpText.style.backgroundColor = '#172328'
Config.HelpText.style.color = '#eef3f3'
Config.HelpText.style.fontSize = '15px'
Sklepy początkowe
Config.Shops zawiera sześć lokalizacji. Aby zmienić początkowy wpis, zachowaj jego strukturę:
{
label = 'Tattoo Studio',
coords = vector3(322.62, 180.34, 103.59),
heading = 156.2,
drawDistance = 10.0,
interactDistance = 1.5,
shopRadius = 4.0,
marker = {
type = 1,
scale = vector3(1.0, 1.0, 1.0),
color = { r = 255, g = 100, b = 0, a = 100 },
},
},
| Pole | Zastosowanie |
|---|---|
label | Nazwa sklepu. |
coords, heading | Pozycja i kierunek. |
drawDistance | Odległość wyświetlania markera. |
interactDistance | Odległość interakcji. |
shopRadius | Promień, w którym dozwolone jest korzystanie ze sklepu. |
marker.type, scale, color | Wygląd markera. |
Ustaw interactDistance w granicach shopRadius. W przypadku istniejących sklepów użyj sekcji sklepów w panelu administracyjnym; edycja pliku nie tworzy ponownie ani nie zastępuje tych sklepów.
Poziomy i XP
Ustawienie Config.Levels | Wartość początkowa | Zastosowanie |
|---|---|---|
enabled | true | Włącza progresję, wymagania i zniżki. |
maxLevel | 10 | Limit poziomu. |
defaultXpPerTattoo | 10 | XP za tatuaż bez pola Xp. |
thresholds | Poziomy od 1 do 10 | Łączna ilość XP wymagana dla każdego poziomu. |
formula.base, formula.exponent | 100, 1.5 | Parametry alternatywnego wzoru progów. |
zoneRequirements | 1 dla każdej strefy | Wymagany poziom dla strefy, gdy nie ustawiono wymagania dla konkretnego tatuażu. |
discounts | Włączone, 3 na poziom, maks. 25 | Zniżka procentowa. |
blueprintSlots | Podstawa 5, przyrost 3 | Liczba slotów blueprintów zależna od poziomu. |
Progi muszą zaczynać się od poziomu 1 z 0 XP, następować bez przerw i zwiększać wymagane XP:
Config.Levels.thresholds = {
{ level = 1, xpRequired = 0 },
{ level = 2, xpRequired = 100 },
{ level = 3, xpRequired = 250 },
}
Config.Levels.maxLevel = 3
Zniżka jest obliczana jako poziom × perLevel, z ograniczeniem maxDiscount. Przy wartościach początkowych poziom 5 daje zniżkę 15%, a maksymalna zniżka wynosi 25%.
Liczbę slotów oblicza się jako base + (poziom - 1) × perLevel. Przy początkowej konfiguracji poziom 1 ma 5 slotów, a poziom 5 — 17.
Indywidualne RequiredLevel z katalogu ma pierwszeństwo przed wymaganiem strefy. Zobacz pola katalogu.
Po wyłączeniu poziomów nie obowiązują blokady poziomów, XP ani zniżki; limit blueprintów korzysta z Config.Blueprints.maxPerPlayer. Wyłączenie systemu zachowuje zapisane XP. W już zainicjowanych instalacjach zaktualizuj także stan obowiązujący w panelu.
Blueprinty
Blueprinty zapisują grupy tatuaży i pozwalają udostępniać je za pomocą kodów. Początkowe limity znajdują się w Config.Blueprints:
| Pole | Wartość początkowa | Zastosowanie |
|---|---|---|
enabled | true | Włącza system. |
codePrefix | INK | Prefiks kodów, np. INK-A3X9. |
codeLength | 4 | Liczba znaków po prefiksie. |
maxPerPlayer | 20 | Liczba slotów używana, gdy progresja jest wyłączona. |
maxTattoosPerBlueprint | 50 | Maksymalna liczba tatuaży w grupie. |
nameMaxLength | 60 | Maksymalna długość nazwy. |
Wykorzystanie kodu przygotowuje tatuaże do procesu zakupu; nie daje darmowego zakupu. Ekonomię opisano w integracjach.
Kamera
| Tabela | Co kontroluje |
|---|---|
CameraOffsets | Docelową kość, odległość, przesunięcia i pole widzenia dla każdej strefy. |
CameraFraming | Ogólną kompozycję i przesunięcie punktu ostrości. |
CameraFramingBySide | Dodatkowe ustawienia widoku z przodu i z tyłu. |
CameraManualControls | Sterowanie ręczne, kroki ruchu, obrót, zoom i limity. |
Skonfigurowane strefy to ZONE_HEAD, ZONE_TORSO, ZONE_LEFT_ARM, ZONE_RIGHT_ARM, ZONE_LEFT_LEG i ZONE_RIGHT_LEG.
Przykłady pojedynczych zmian:
Config.CameraOffsets['ZONE_TORSO'].fov = 50.0
Config.CameraFraming.screenOffset = 0.35
Config.CameraManualControls.enabled = true
Config.CameraManualControls.step = 0.035
Config.CameraManualControls.zoomStep = 0.08
Dodatnie screenOffset przesuwa postać w lewo, pozostawiając miejsce na menu po prawej. lookAtOffsetX/Y/Z zmienia punkt ostrości; camOffsetX/Y/Z w ustawieniach dla stron zmienia pozycję kamery.
W sterowaniu ręcznym horizontalDegrees i rotationStepDegrees ustawiają obrót. ranges.y/z, radialClamp i maxDistance ograniczają przesunięcia. zoomCompositionMinBias reguluje centrowanie przy zbliżaniu. Zmieniaj jedną wartość naraz i testuj wszystkie sześć stref na postaciach męskich i żeńskich.
Strój podglądu
Config.PreviewOutfit pozwala odsłonić tatuowane obszary, gdy interfejs jest otwarty:
Config.PreviewOutfit.enabled = true
Config.PreviewOutfit.useDefaultVariation = false
Config.PreviewOutfit.presets['mp_m_freemode_01'].components[11] = {
drawable = 15,
texture = 0,
}
Dołączone presety rozróżniają mp_m_freemode_01 i mp_f_freemode_01. Każdy komponent określa drawable i texture; clearProps usuwa akcesoria na czas podglądu. Dostosuj indeksy do ubrań zainstalowanych na serwerze. Pozostaw useDefaultVariation = false, jeśli chcesz zastosować tylko komponenty presetu, bez globalnego resetowania wyglądu.
Uprawnienia, ekonomia i Qbox
Opis Config.Permissions, Config.AdminCommand, Config.Purchases i Config.QbxMulticharacterPreview znajduje się w sekcji integracje. Jeśli nazwy zasobów różnią się od domyślnych, ustaw ich rzeczywiste nazwy.
Diagnostyka
Config.Debug włącza ogólną diagnostykę. Config.Permissions.debug umożliwia sprawdzanie decyzji o dostępie. Po zakończeniu pozostaw obie opcje wyłączone.
Config.DebugCommands.clientTattooCommand jest domyślnie wyłączone. Włącz tę komendę wizualną wyłącznie do testów: nie zapisuje tatuaży ani nie zastępuje zakupu.