# Instalacja

Ten przewodnik dotyczy pakietu dystrybucyjnego z już skompilowanym interfejsem. Do instalacji nie potrzebujesz Node.js ani ponownej kompilacji UI.

## Wymagania

| Komponent | Kiedy jest potrzebny |
| --- | --- |
| `oxmysql` i działające połączenie z bazą danych | Wymagane do zapisywania danych zasobu. |
| Qbox, QBCore lub ESX | Jeśli korzystasz z ich ekonomii i uprawnień. Możesz podłączyć inną ekonomię przez callbacki standalone. |
| Pakiety tatuaży | Opcjonalne. Możesz nie instalować żadnego, zainstalować kilka lub wszystkie. |
| `ox_lib` | Opcjonalne dla powiadomienia TextUI; dostępna jest alternatywa natywna. |
| System wyglądu | Jeśli używa go serwer, sprawdź [bridge wyglądu](https://docs.cxgstudios.com/docs/pl/01-cxg-tattoos/05-integraciones.md#wygląd-i-wczytywanie-postaci). |

Blueprinty są udostępniane za pomocą kodów. Do korzystania z dołączonej konfiguracji nie trzeba dodawać przedmiotu do ekwipunku.

## Umieść zasób

1. Rozpakuj pakiet w folderze zasobów serwera.
2. W przewodnikach używamy `cxg-tattoos` jako nazwy folderu. Jeśli Twój folder nazywa się inaczej, użyj jego rzeczywistej nazwy w poleceniach `ensure` i `restart`.
3. Zachowaj dostarczoną strukturę. Sprawdź, czy razem z plikami pakietu znajdują się `config.lua`, `shared/tattoos.json`, `bridge/` i `ui/dist/index.html`.
4. Skonfiguruj połączenie z bazą danych i upewnij się, że `oxmysql` uruchamia się poprawnie.

## Kolejność uruchamiania

Przykład dla Qbox bez zewnętrznych pakietów:

```cfg
ensure oxmysql
ensure qbx_core
ensure cxg-tattoos
```

W przypadku QBCore lub ESX zastąp `qbx_core` przez `qb-core` albo `es_extended`. Jeśli korzystasz z systemu wyglądu, uruchom go przed zasobem. W trybie standalone najpierw skonfiguruj [callbacki płatności i uprawnień](https://docs.cxgstudios.com/docs/pl/01-cxg-tattoos/05-integraciones.md).

Jeśli masz pakiety, uruchom przed zasobem tylko te zainstalowane. Przykład:

```cfg
ensure oxmysql
ensure qbx_core
ensure xgc_TattooClasic
ensure xgc_TattooGangs
ensure cxg-tattoos
```

Nie dodawaj poleceń `ensure` dla pakietów, których nie masz. Domyślne źródła mogą pozostać w `Config.TattooCatalog.sources`: nieuruchomione pakiety zostaną pominięte.

## Pierwsze uruchomienie

Zasób automatycznie przygotowuje pamięć danych. Przy nowej instalacji nie trzeba ręcznie importować schematu.

Przed testem sprawdź w `config.lua`:

- `Config.Locale`: język globalny.
- `Config.Purchases`: ekonomia i konta obciążane płatnością.
- `Config.Permissions`: dostęp administracyjny.
- `Config.Identity`: system tożsamości serwera i identyfikator używany do zapisywania oraz pobierania danych gracza. Zobacz [System tożsamości](https://docs.cxgstudios.com/docs/pl/01-cxg-tattoos/03-configuracion.md#system-tożsamości).
- `Config.Shops`: początkowe lokalizacje sklepów.

Podejdź do skonfigurowanego sklepu i skorzystaj z interakcji. Sprawdź katalog, podgląd oraz zakup postacią testową. Wczytaj postać ponownie, aby upewnić się, że tatuaż został zachowany.

Dołączone polecenie administracyjne konfiguruje się przez `Config.AdminCommand`; jego początkowa nazwa to `/tattooadmin`. Przed użyciem sprawdź [uprawnienia i płatności](https://docs.cxgstudios.com/docs/pl/01-cxg-tattoos/05-integraciones.md).

## Zastosuj zmiany

Po zmianie `config.lua` lub bridge'a zapisz plik i uruchom zasób ponownie:

```cfg
restart cxg-tattoos
```

Źródła katalogu są odczytywane przy uruchomieniu i mogą być synchronizowane z panelu administracyjnego. Ustawienia zapisane z tego panelu są zachowywane; przed oczekiwaniem, że wartość z pliku je zastąpi, sprawdź [konfigurację](https://docs.cxgstudios.com/docs/pl/01-cxg-tattoos/03-configuracion.md) i [katalog](https://docs.cxgstudios.com/docs/pl/01-cxg-tattoos/04-catalogo.md).

## Częste problemy

| Objaw | Co sprawdzić |
| --- | --- |
| Zasób się nie uruchamia | Czy `oxmysql` działa, połączenie jest sprawne, a pakiet kompletny. |
| Brakuje pakietu w sklepie | Czy jego zasób jest uruchomiony, `enabled` nie ma wartości `false` i ścieżka JSON odpowiada ścieżce w pakiecie. |
| Interfejs jest pusty | Czy `ui/dist/index.html` i wskazane pliki z `ui/dist/assets/` zostały skopiowane razem. |
| Panel odmawia dostępu | `Config.AdminCommand.permission`, powiązania uprawnień oraz skonfigurowane role lub ACE. |
| Płatność jest odrzucana | Wybrany framework, nazwy zasobów, saldo i callbacki standalone, jeśli mają zastosowanie. |
| W tym samym miejscu są dwie interakcje tatuaży | Czy inny zasób wyglądu lub sklepów nie aktywuje tej lokalizacji. Dla danego sklepu pozostaw jeden sposób dostępu. |
| Zmiana sklepu lub poziomu nie działa | Czy panel nie ma już zapisanej konfiguracji. Edytuj tam obowiązującą wartość. |

Możesz tymczasowo włączyć `Config.Debug` i `Config.Permissions.debug`, aby diagnozować problemy. Po zakończeniu wyłącz je.

[Dalej: konfiguracja](https://docs.cxgstudios.com/docs/pl/01-cxg-tattoos/03-configuracion.md).
