# Dokumentacja Lua - Trilogy Hub

Pełna dokumentacja API Lua Trilogy Hub: przewodniki, funkcje serwera i klienta oraz zdarzenia. Ten plik powstaje z tych samych danych co strony dokumentacji.

- Wersja online: https://trilogy-hub.com/docs/
- Pozycji w tym pliku: 1947
- Stan na: 2026-11-03

Pojedynczą stronę pobierzesz, dopisując `.md` do jej adresu, np. `https://trilogy-hub.com/docs/getElementPosition.md`

---

## Przewodniki

### Pierwsze kroki

Twój pierwszy zasób w pięć minut: folder, `meta.xml`, jeden skrypt serwera i jeden klienta.

#### Czym jest zasób

Wszystko, co dzieje się na serwerze, robią **zasoby**. Zasób to folder w `resources/` z plikiem `meta.xml`, który mówi serwerowi, jakie skrypty i pliki do niego należą. Tryb gry, panel admina, licznik prędkości czy wyścig to osobne zasoby, które włączasz i wyłączasz bez restartu serwera.

Struktura folderów, `meta.xml` i nazwy funkcji są takie, jak znasz z innych serwerów San Andreas.

#### Utwórz folder

W folderze serwera otwórz `resources/` i utwórz w nim folder `witaj`. Nazwa folderu to nazwa zasobu, której użyjesz w konsoli.

```text
resources/
  witaj/
    meta.xml
    server.lua
    client.lua
```

#### Napisz meta.xml

`meta.xml` wymienia skrypty zasobu. Atrybut `type` decyduje, gdzie skrypt działa: `server` zostaje na serwerze, `client` jest wysyłany do każdego gracza.

```xml
<meta>
    <info name="Witaj" author="Ty" version="1.0" type="script" />
    <script src="server.lua" type="server" />
    <script src="client.lua" type="client" />
</meta>
```

#### Dodaj skrypty

Skrypt serwera reaguje na wejście gracza: stawia go w świecie i pisze na czacie. Skrypt klienta rysuje napis na ekranie gracza w każdej klatce.

```lua
addEventHandler("onPlayerJoin", root, function()
    -- source to gracz, który właśnie wszedł
    spawnPlayer(source, 2495.3, -1687.0, 13.5)
    outputChatBox("Witaj na Grove Street, " .. getPlayerName(source) .. "!", source, 255, 122, 34)
end)
```

```lua
local sw, sh = guiGetScreenSize()

addEventHandler("onClientRender", root, function()
    dxDrawText("Mój pierwszy zasób", 0, sh - 60, sw, sh, tocolor(255, 255, 255), 1.2, "default-bold", "center")
end)
```

#### Uruchom

Wpisz w konsoli serwera:

```text
start witaj
```

Wejdź na serwer z launchera. Po zmianie skryptu nie musisz wyłączać serwera, wystarczy `restart witaj`. Komenda przeładowuje zasób na serwerze i u wszystkich graczy.

> **Uwaga:** **Błąd w skrypcie?** Serwer wypisze w konsoli plik, numer linii i opis. Zły argument w wywołaniu funkcji nie przerywa skryptu, tylko zwraca `false` z ostrzeżeniem. Więcej w [Konwencjach](https://trilogy-hub.com/docs/konwencje/).

#### Co dalej

- [Zasoby i meta.xml](https://trilogy-hub.com/docs/meta-xml/): pliki do pobrania, eksporty, skrypty wspólne.
- [Konwencje](https://trilogy-hub.com/docs/konwencje/): `root`, `source`, elementy i obsługa błędów.
- [Funkcje serwera](https://trilogy-hub.com/docs/funkcje/serwer/) i [Funkcje klienta](https://trilogy-hub.com/docs/funkcje/klient/): spis funkcji z opisami.

### Zasoby i meta.xml

Wszystko o pliku `meta.xml`: skrypty serwera, klienta i wspólne, pliki dla graczy, eksporty i kolejność pobierania.

#### Pełny przykład

```xml
<meta>
    <info author="Ty" name="Mój tryb" version="1.0" type="gamemode" />

    <script src="server.lua" type="server" />
    <script src="client.lua" type="client" />
    <script src="wspolne.lua" type="shared" />
    <script src="tajne.lua" type="client" cache="false" />

    <file src="logo.png" />
    <file src="muzyka.mp3" download="false" />

    <download_priority_group>10</download_priority_group>
    <export function="dajNagrode" type="server" />
</meta>
```

#### info

Opis zasobu. Atrybut `type` to `script` (domyślnie) albo `gamemode`. Tryby gry startują na końcu, gdy inne zasoby są już gotowe.

#### script

| Atrybut | Znaczenie |
|---|---|
| `src` | ścieżka do pliku `.lua` w folderze zasobu |
| `type="server"` | skrypt działa tylko na serwerze i nigdy go nie opuszcza |
| `type="client"` | skrypt jest wysyłany do gracza i działa w jego grze |
| `type="shared"` | ten sam plik działa po obu stronach |
| `cache="false"` | skrypt klienta nie jest zapisywany na dysku gracza, tylko pobierany przy każdym wejściu |

> **Uwaga:** **Skrypty wspólne** przydają się na stałe dane i funkcje pomocnicze, np. tabelę cen albo listę pojazdów. Po każdej stronie działają niezależnie: zmiana zmiennej na serwerze nie zmienia jej u gracza.

#### file

Plik wysyłany do gracza: obraz, dźwięk, czcionka, dane. Gracz pobiera go przy wejściu, a przy następnym wejściu tylko wtedy, gdy plik się zmienił.

Z `download="false"` plik nie jest pobierany przy starcie. Skrypt klienta ściąga go sam, kiedy go potrzebuje, przez `downloadFile("muzyka.mp3")`, a wynik dostaje w zdarzeniu `onClientFileDownloadComplete`.

#### Wzorce w src

W `src` znaczników `script`, `file` i `map` możesz wpisać wzorzec zamiast jednej nazwy,:

| Wzorzec | Pasuje do |
|---|---|
| `*` | dowolne znaki w nazwie, bez przechodzenia do podfolderów (`*.lua`) |
| `**` | dowolne znaki razem z podfolderami (`images/**`) |
| `?` | jeden znak (`sounds/s?.mp3`) |

```xml
<meta>
    <script src="shared/**/*.lua" type="shared" />
    <script src="client/*.lua" type="client" />
    <file src="images/**" />
</meta>
```

Pliki z jednego wzorca są ładowane w kolejności alfabetycznej. Wzorzec w `file` pomija pliki zadeklarowane jako `script` (kod serwera nie trafi do graczy), `meta.xml` i ukryte foldery (`.git` itp.). Wzorzec, który nie pasuje do żadnego pliku, daje ostrzeżenie w konsoli serwera, a zasób startuje normalnie.

#### download_priority_group

Kolejność pobierania przy wejściu gracza. Większa liczba jest pobierana wcześniej, domyślnie `0`, ujemne na końcu. Przydaje się, gdy ekran logowania ma się pojawić, zanim dojdą ciężkie pliki innych zasobów.

#### export

Udostępnia funkcję innym zasobom. Wywołujesz ją przez `exports`:

```lua
-- meta.xml zasobu "nagrody": <export function="dajNagrode" type="server" />
function dajNagrode(gracz, kwota)
    givePlayerMoney(gracz, kwota)
    return true
end
```

```lua
exports.nagrody:dajNagrode(gracz, 500)
```

W funkcji eksportu `sourceResource` to zasób, który ją wywołał, a `sourceResourceRoot` jego korzeń. Dzięki temu zasób z eksportami może sprzątać po zasobach, które przestały działać (np. zamknąć ich panele w `onResourceStop` z `source == sourceResourceRoot`):

```lua
local wywolania = {}
function dajNagrode(gracz, kwota)
    wywolania[sourceResource] = (wywolania[sourceResource] or 0) + 1
    givePlayerMoney(gracz, kwota)
    return true
end
```

#### include

`<include resource="nazwa" />` = ten zasób wymaga innego. Przy starcie serwer najpierw uruchamia zasoby z `<include>` (także te z `disabled_resources`), a gdy któregoś brakuje w `resources/`, zasób nie startuje i w konsoli jest błąd. Pętla zależności (A wymaga B, B wymaga A) też zatrzymuje start.

```xml
<meta>
    <include resource="trilogy_core" />
    <script src="server.lua" type="server" />
</meta>
```

#### Które zasoby startują i w jakiej kolejności

- Każdy folder z `meta.xml` w `resources/` (także w podfolderach-grupach) startuje razem z serwerem.
- Kolejność: alfabetycznie po nazwie, a zasoby `<info type="gamemode">` na końcu. Zależności z `<include>` ruszają przed zasobem, który ich wymaga.
- Wyłączenie bez kasowania folderu: `"disabled_resources": ["nazwa"]` w `server-config.json`. Taki zasób uruchomisz komendą `start nazwa` albo jako zależność innego.
- Nowy folder dodany w trakcie działania serwera: `start nazwa` w konsoli albo ze skryptu `refreshResources()` i `startResource(getResourceFromName("nazwa"))`.

#### Limity i konsola

Jeden plik może mieć do 64 MB, cały zasób do 256 MB. Wszystko, co zasób utworzy (pojazdy, obiekty, okna, timery), znika po jego zatrzymaniu.

| Komenda | Co robi |
|---|---|
| `start <zasób>` | uruchamia zasób |
| `stop <zasób>` | zatrzymuje zasób i usuwa wszystko, co utworzył |
| `restart <zasób>` | zatrzymuje i uruchamia ponownie, także u graczy |

### Konwencje

Zasady wspólne dla całego API: strony skryptu, elementy, `root` i `source`, współrzędne i obsługa błędów.

#### Serwer, klient, obie strony

Przy każdej funkcji i zdarzeniu widzisz, gdzie działa:

| Znak | Strona | Gdzie użyjesz |
|---|---|---|
| **S** | Serwer | skrypty `type="server"` |
| **C** | Klient (client) | skrypty `type="client"` |
| **O** | Obie | każdy skrypt, także `type="shared"` |

Niektóre funkcje wspólne mają po stronie klienta krótszą składnię, bo zawsze dotyczą lokalnego gracza. Na przykład [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/) na serwerze przyjmuje gracza, a u klienta od razu pisze na jego czacie. Takie różnice są opisane na stronie funkcji.

#### Elementy

Gracze, pojazdy, obiekty, znaczniki, okna GUI i dźwięki to **elementy**. Funkcje przyjmują je jako argumenty, a zdarzenia przekazują jako `source`. `isElement(x)` sprawdza, czy element nadal istnieje.

Elementy tworzą drzewo. Na górze jest `root`, pod nim każdy zasób ma swój `resourceRoot`. Obsługa podpięta do `root` złapie zdarzenie każdego elementu, a podpięta do `resourceRoot` tylko elementów tego zasobu.

#### Zmienne wbudowane

| Zmienna | Strona | Znaczenie |
|---|---|---|
| `root` | obie | korzeń drzewa elementów |
| `resourceRoot` | obie | korzeń elementów bieżącego zasobu |
| `source` | obie | element, którego dotyczy zdarzenie |
| `localPlayer` | klient | gracz, u którego działa skrypt |
| `client` | serwer | gracz, który wysłał zdarzenie przez [`triggerServerEvent`](https://trilogy-hub.com/docs/triggerServerEvent/) |

#### Współrzędne

Pozycję podajesz jako trzy liczby `x, y, z` w metrach świata gry. Środek mapy to `0, 0`, Los Santos leży na południowym wschodzie (dodatnie `x`, ujemne `y`), a `z` to wysokość. Obroty podajesz w stopniach.

#### Błędy i złe argumenty

Zły argument nie przerywa skryptu. Funkcja zwraca `false`, a w konsoli pojawia się ostrzeżenie z nazwą funkcji i numerem argumentu:

```text
Bad argument @ 'setPlayerMoney' [oczekiwano player na pozycji 1, jest string 'Adam']
```

Wartość spoza zakresu też jest odrzucana, a nie obcinana, chyba że opis funkcji mówi inaczej. Dlatego warto sprawdzać wynik funkcji, które coś tworzą:

```lua
local auto = createVehicle(411, 0, 0, 3)
if not auto then
    outputDebugString("Nie udało się stworzyć auta")
    return
end
```

#### Własne zdarzenia

Zdarzenie rejestrujesz przez `addEvent("nazwa")`. Jeśli ma je wywoływać klient, serwer musi zarejestrować je z drugim argumentem `true`: `addEvent("nazwa", true)`. Bez tego serwer odrzuci zdarzenie od gracza. Szczegóły w [`triggerServerEvent`](https://trilogy-hub.com/docs/triggerServerEvent/) i [`triggerClientEvent`](https://trilogy-hub.com/docs/triggerClientEvent/).

#### Lua 5.4 i skrypty z MTA

Skrypty działają w Lua 5.4. Dla zgodności ze skryptami pisanymi pod Lua 5.1 (MTA) są `math.atan2(y, x)` (w 5.4 to `math.atan(y, x)`), `math.pow(x, y)` (to samo co `x ^ y`) i `math.log10(x)`. Dzielenie `/` zawsze daje liczbę zmiennoprzecinkową (`7 / 2` = 3.5); dzielenie całkowite to `//`.

#### Ograniczenia i obejścia

- **Kolizja tylko między dwoma elementami** (`setElementCollidableWith`) jeszcze nie istnieje. Obejście w trybie ducha: `setElementCollisionsEnabled(cudzeAuto, false)` u klienta i półprzezroczystość (`setElementAlpha`); takie auto u tego gracza nie koliduje z niczym, więc warto włączać to tylko na czas startu rundy.
- **Mapa gry na serwerze:** serwer nie ma kolizji budynków ani terenu, więc `processLineOfSight`, `isLineOfSightClear` i `getGroundPosition` na serwerze widzą tylko elementy skryptów. Dokładny test z mapą zrób w skrypcie klienta i wyślij wynik przez `triggerServerEvent`.
- **Obrażenia NPC u klienta:** jest `onClientPlayerDamage` (własna postać); obrażenia NPC zgłasza serwer w `onPedDamage`.

### Konfiguracja serwera

Wszystkie ustawienia z pliku `server-config.json`: nazwa i port, lista serwerów, relay, limity graczy, pobieranie plików i aktualizacje.

#### Gdzie jest plik

`server-config.json` leży w głównym folderze serwera, obok `resources/` i `admins.xml`. Serwer tworzy go sam przy pierwszym uruchomieniu w pustym folderze, razem z zasobami startowymi. Serwer utworzony w launcherze dostaje gotowy plik z kluczem listy serwerów.

Plik czyta się przy starcie. Po zmianie zapisz go i uruchom serwer ponownie. Błędna wartość (np. za krótka nazwa albo port spoza zakresu) zatrzymuje start, a konsola mówi, którą opcję poprawić.

> **Ostrzeżenie:** To jest JSON: nazwy i teksty w cudzysłowach `"..."`, przecinek po każdej opcji oprócz ostatniej, `true` / `false` bez cudzysłowów. Brakujący przecinek albo nawias sprawi, że serwer nie wystartuje.

#### Pełny przykład

```json
{
  "title": "Mój serwer",
  "subtitle": "Freeroam, wyścigi i drift",
  "port": 7777,
  "public_port": null,
  "max_slots": 32,
  "password": "",

  "server_id": 123,
  "server_key": "tu-klucz-z-launchera",

  "relay": true,
  "upnp": true,

  "max_ping": 300,
  "max_ping_seconds": 30,
  "require_verified_client": false,
  "launcher_skins": true,

  "disabled_resources": ["test"],
  "client_loadstring": true,
  "max_event_kb": 64,

  "http_download_url": "",
  "download_kbps": 0,

  "browser_domains": ["youtube.com"],
  "browser_devtools": false,

  "max_connections_per_ip": 8,
  "connections_per_minute": 30,
  "flood_ban_seconds": 60,

  "auto_update": true,
  "db_key": ""
}
```

To wszystkie opcje z wartościami domyślnymi (poza nazwą, kluczem i przykładowymi listami). `null` albo pusty tekst `""` oznacza, że opcja nie jest używana. Nie musisz wpisywać wszystkiego: każda pominięta opcja ma wartość domyślną z tabel niżej.

#### Podstawowe

| Opcja | Domyślnie | Znaczenie |
|---|---|---|
| `title` | `"Serwer Trilogy Hub"` | Nazwa na liście serwerów, 3-40 znaków. |
| `subtitle` | `""` | Krótki opis pod nazwą, do 80 znaków. |
| `port` | `7777` | Port gry, 1024-65535. Na hostingu wpisz port przydzielony przez panel. Ten sam numer działa na TCP i UDP: otwórz (przekieruj) oba protokoły. |
| `public_port` | brak | Port widziany z internetu, gdy hosting przekierowuje inny port zewnętrzny na ten z `port`. To on pojawia się na liście. |
| `max_slots` | `32` | Limit graczy. |
| `password` | `""` | Hasło serwera, do 64 znaków. Puste = serwer otwarty. |

Nazwa i opis nie mogą zawierać znaczników HTML ani wulgaryzmów.

Hasło gracze wpisują w launcherze przy dołączaniu. Po 5 błędnych próbach czekają minutę, każde kolejne 5 wydłuża blokadę (maks. godzina). Hasło działa tylko na serwerze z `server_key`.

#### Lista serwerów

| Opcja | Znaczenie |
|---|---|
| `server_id` | Numer serwera w Trilogy Hub. |
| `server_key` | Klucz, którym serwer zgłasza się na listę. |

Oba dostajesz w launcherze przy tworzeniu serwera. Bez nich serwer działa, ale nie pojawi się na liście, a gracze mogą wejść tylko po adresie IP:port.

> **Ostrzeżenie:** `server_key` jest jak hasło do wpisu Twojego serwera na liście. Nie pokazuj go nikomu i nie uruchamiaj tego samego serwera naraz w dwóch miejscach (np. lokalnie w launcherze i na hostingu).

#### Połączenie i relay

| Opcja | Domyślnie | Znaczenie |
|---|---|---|
| `relay` | `true` | `true`: gracze łączą się bezpośrednio, a gdy port serwera nie odpowiada z internetu, przez relay Trilogy Hub. `"always"`: zawsze przez relay, adres IP serwera zostaje ukryty. `false`: bez relaya. |
| `upnp` | `true` | Serwer sam próbuje otworzyć port na routerze (UPnP), TCP i UDP. Gdy się uda, gracze łączą się bezpośrednio. |
| `udp` | `true` | Ruch graczy (pozycje, animacje, pojazdy) idzie po UDP na tym samym numerze portu, bo zgubiony pakiet nie wstrzymuje wtedy reszty. Gdy UDP jest zablokowane, gracz po kilku sekundach sam przechodzi na TCP. `false` wyłącza UDP. Przez relay ruch zawsze idzie po TCP. |
| `admission` | włączone w launcherze | Ochrona przed przeciążeniem. Gdy komputer z serwerem nie nadąża (CPU, pamięć, opóźnienie serwera albo spadek FPS gry hosta), nowi gracze z zewnątrz czekają w kolejce i wchodzą sami, gdy obciążenie spadnie. Gracze, którzy już grają, i gracz z tego samego komputera wchodzą zawsze. Na hostingu włączysz ją przez `{"enabled": true}`. |

Dzięki relayowi na serwer postawiony w domu da się wejść bez przekierowania portów i bez programów typu Hamachi.

#### Gracze

| Opcja | Domyślnie | Znaczenie |
|---|---|---|
| `max_ping` | `300` | Najwyższy dozwolony ping w ms. `0` wyłącza limit. |
| `max_ping_seconds` | `30` | Przez ile sekund ping może być za wysoki, zanim serwer wyrzuci gracza. |
| `require_verified_client` | `false` | `true` wpuszcza tylko graczy z potwierdzonym urządzeniem (zalogowanych w launcherze). |
| `launcher_skins` | `true` | `false`: gracze wchodzą jako CJ, bez stroju wybranego w launcherze. |

#### Zasoby i skrypty

| Opcja | Domyślnie | Znaczenie |
|---|---|---|
| `disabled_resources` | `[]` | Zasoby, które NIE startują razem z serwerem, np. `["test", "stary_tryb"]`. Reszta z `resources/` rusza sama. Wyłączony zasób uruchomisz komendą `start <nazwa>`. |
| `client_loadstring` | `true` | `false` wyłącza `load` / `loadstring` w skryptach klienta. Na serwerze działają zawsze. Bezpieczniej, gdy zasoby nie kompilują kodu u graczy. |
| `element_data_client_changes` | `"allow"` | `"deny"`: skrypty klientów nie zmienią żadnych danych elementów (`setElementData` u klienta jest odrzucane, serwer dostaje `onPlayerChangesProtectedData`). Pojedyncze klucze: piąty argument `setElementData`. |
| `max_event_kb` | `64` | Największy rozmiar argumentów zdarzenia od gracza (`triggerServerEvent`) w kilobajtach. Większe zdarzenie serwer odrzuca. |

#### Pobieranie plików

| Opcja | Domyślnie | Znaczenie |
|---|---|---|
| `http_download_url` | brak | Adres serwera WWW z plikami zasobów. Gracz pobiera `<adres>/<zasób>/<plik>` z tego serwera zamiast z serwera gry. |
| `download_kbps` | `0` | Limit prędkości pobierania plików z serwera gry na gracza, w KB/s. `0` = bez limitu. |

Pliki z `http_download_url` są sprawdzane sumą kontrolną. Gdy plik się nie pobierze albo różni się od tego na serwerze, gracz dostaje go z serwera gry, więc źle ustawiony adres nie blokuje wejścia.

#### Przeglądarka w grze

| Opcja | Domyślnie | Znaczenie |
|---|---|---|
| `browser_domains` | `[]` | Domeny, które zasoby mogą otwierać w przeglądarce w grze, np. `["youtube.com", "moja-strona.pl"]`. Subdomeny też. Gracz i tak musi się zgodzić (`requestBrowserDomains`). |
| `browser_devtools` | `false` | `true` pozwala otwierać narzędzia deweloperskie przeglądarki (`toggleBrowserDevTools`). |

#### Ochrona przed zalewem połączeń

| Opcja | Domyślnie | Znaczenie |
|---|---|---|
| `max_connections_per_ip` | `8` | Ile połączeń naraz może mieć jeden adres IP. |
| `connections_per_minute` | `30` | Ile nowych połączeń na minutę przyjmie serwer z jednego adresu IP. |
| `flood_ban_seconds` | `60` | Na ile sekund serwer blokuje adres, który przekroczył limit. |

Wartości domyślne pasują do większości serwerów. Podnieś je, gdy wielu graczy wchodzi spod jednego adresu (np. kawiarenka albo akademik).

#### Aktualizacje i bazy danych

| Opcja | Domyślnie | Znaczenie |
|---|---|---|
| `auto_update` | `true` | Serwer co 15 minut sprawdza nowe wersje i instaluje je, gdy nikt nie gra. Zasobów i konfiguracji nie rusza. `false` wyłącza aktualizacje. |
| `db_key` | brak | Klucz do zaszyfrowanego pliku `databases.json.enc` z danymi połączeń MySQL (zamiast tego można ustawić zmienną środowiskową `TH_DB_KEY`). |

Każda aktualizacja jest podpisana przez Trilogy Hub, a serwer odrzuca plik bez poprawnego podpisu. Gdy na serwerze cały czas są gracze, nowa wersja czeka do 2 godzin, a potem wchodzi z odliczaniem na czacie. Jeśli nowa wersja nie wstanie, serwer sam wraca do poprzedniej.

### Cząsteczki

Ruchome cząsteczki liczone w grze: 14 gotowych efektów, własne ustawienia, przyczepianie do pojazdów i graczy, efekty z serwera widoczne dla wszystkich.

#### Pierwszy emiter

Emiter to element `"particle"` tworzony po stronie klienta albo serwera. Wypuszcza cząsteczki, które lecą, obracają się, zmieniają kolor i wielkość, a na koniec gasną. Całą fizykę liczy gra, więc skrypt nie robi nic w każdej klatce. Najprościej zacząć od gotowego efektu:

```lua
local x, y, z = getElementPosition(localPlayer)
local ogien = createParticleEmitter(x + 2, y, z - 1, "fire")

-- po 10 sekundach gasi
setTimer(destroyElement, 10000, 1, ogien)
```

Emiter działa jak każdy element: [`setElementPosition`](https://trilogy-hub.com/docs/setElementPosition/), [`attachElements`](https://trilogy-hub.com/docs/attachElements/) i [`destroyElement`](https://trilogy-hub.com/docs/destroyElement/) robią to, czego się spodziewasz. Zatrzymanie zasobu sprząta jego emitery.

#### Cząsteczki z serwera

Te same funkcje działają w skrypcie serwera. Emiter z serwera widzi każdy gracz, także ten, który wejdzie później, a cząsteczki liczy i rysuje gra każdego gracza u siebie. Ustawienia, gotowe efekty, [`setParticleEmitterSettings`](https://trilogy-hub.com/docs/setParticleEmitterSettings/), [`setParticleEmitterEnabled`](https://trilogy-hub.com/docs/setParticleEmitterEnabled/) i [`burstParticles`](https://trilogy-hub.com/docs/burstParticles/) działają tak samo jak u klienta i trafiają do wszystkich.

```lua
-- ognisko na środku placu, widoczne dla wszystkich
local ognisko = createParticleEmitter(2495, -1670, 12.5, "fire")

-- fajerwerk nad graczem, który wpisze /pokaz
addCommandHandler("pokaz", function(gracz)
    local x, y, z = getElementPosition(gracz)
    createParticleEffect(x, y, z + 25, "firework")
end)
```

Emiter z serwera słucha [`setElementDimension`](https://trilogy-hub.com/docs/setElementDimension/), [`setElementInterior`](https://trilogy-hub.com/docs/setElementInterior/) i [`setElementVisibleTo`](https://trilogy-hub.com/docs/setElementVisibleTo/): gracz w innym wymiarze albo wnętrzu nie widzi go i nic za niego nie liczy. [`attachElements`](https://trilogy-hub.com/docs/attachElements/) na serwerze przypina emiter do pojazdu albo gracza u wszystkich. Pole `texture` podaje się jako ścieżkę do pliku klienta tego zasobu (`<file>` w meta.xml). Skrypt klienta może zmienić emiter serwera tylko u siebie, do następnej zmiany z serwera; [`getParticleCount`](https://trilogy-hub.com/docs/getParticleCount/) działa tylko u klienta, bo każdy gracz ma własne cząsteczki.

#### Gotowe efekty

Nazwę gotowego efektu podajesz zamiast tabeli ustawień. Trzeci argument nadpisuje wybrane pola, reszta zostaje z gotowca: `createParticleEmitter(x, y, z, "fire", { rate = 60 })`. Lista z opisami: [`getParticlePresets`](https://trilogy-hub.com/docs/getParticlePresets/), pełne ustawienia jednego: [`getParticlePresetSettings`](https://trilogy-hub.com/docs/getParticlePresetSettings/).

![fire](https://trilogy-hub.com/assets/img/docs/czasteczki/fire.jpg)

*Płomienie unoszące się z ogniska.*

![smoke](https://trilogy-hub.com/assets/img/docs/czasteczki/smoke.jpg)

*Gęsty dym, który rośnie i rozwiewa się.*

![sparks](https://trilogy-hub.com/assets/img/docs/czasteczki/sparks.jpg)

*Fontanna iskier spadających pod własnym ciężarem.*

![fireflies](https://trilogy-hub.com/assets/img/docs/czasteczki/fireflies.jpg)

*Świetliki krążące leniwie w powietrzu.*

![snow](https://trilogy-hub.com/assets/img/docs/czasteczki/snow.jpg)

*Śnieg padający z 8 m nad punktem.*

![rain](https://trilogy-hub.com/assets/img/docs/czasteczki/rain.jpg)

*Deszcz smugami z 12 m nad punktem.*

![magic](https://trilogy-hub.com/assets/img/docs/czasteczki/magic.jpg)

*Gwiazdki wirujące w górę wokół punktu.*

![vortex](https://trilogy-hub.com/assets/img/docs/czasteczki/vortex.jpg)

*Portal: cząsteczki wciągane spiralnie do środka.*

![confetti](https://trilogy-hub.com/assets/img/docs/czasteczki/confetti.jpg)

*Kolorowe konfetti wystrzeliwane w górę.*

![hearts](https://trilogy-hub.com/assets/img/docs/czasteczki/hearts.jpg)

*Serduszka unoszące się powoli.*

![bubbles](https://trilogy-hub.com/assets/img/docs/czasteczki/bubbles.jpg)

*Bańki mydlane płynące w górę.*

![leaves](https://trilogy-hub.com/assets/img/docs/czasteczki/leaves.jpg)

*Liście niesione wiatrem.*

![dust](https://trilogy-hub.com/assets/img/docs/czasteczki/dust.jpg)

*Drobinki kurzu w świetle.*

![firework](https://trilogy-hub.com/assets/img/docs/czasteczki/firework.jpg)

*Jednorazowy wybuch fajerwerku, emiter sam znika.*

#### Efekt na chwilę

[`createParticleEffect`](https://trilogy-hub.com/docs/createParticleEffect/) tworzy emiter, który świeci przez podany czas i sam znika, gdy zgaśnie ostatnia cząsteczka. Nie trzeba go niszczyć. [`burstParticles`](https://trilogy-hub.com/docs/burstParticles/) wypuszcza od razu podaną liczbę cząsteczek z istniejącego emitera.

```lua
-- iskry w miejscu trafienia, przez pół sekundy
addEventHandler("onClientPlayerWeaponFire", localPlayer, function(weapon, hx, hy, hz)
    createParticleEffect(hx, hy, hz, "sparks", 0.5, { rate = 300 })
end)

-- fajerwerk nad graczem: gotowiec sam się sprząta
local x, y, z = getElementPosition(localPlayer)
createParticleEffect(x, y, z + 25, "firework")
```

#### Przyczepianie

[`attachElements`](https://trilogy-hub.com/docs/attachElements/) przypina emiter do pojazdu, gracza albo obiektu. Przesunięcie liczy się w układzie elementu (X w prawo, Y do przodu, Z w górę), więc dym z rury wydechowej zostaje przy rurze, gdy auto skręca.

```lua
local auto = getPedOccupiedVehicle(localPlayer)
local dym = createParticleEmitter(0, 0, 0, "smoke", { rate = 25, size = { 0.2, 1.4 }, life = { 1, 1.6 } })
attachElements(dym, auto, 0.45, -2.3, -0.35)
```

#### Własne ustawienia

Zamiast nazwy gotowca podajesz tabelę. Pola, których nie podasz, mają wartości domyślne. [`setParticleEmitterSettings`](https://trilogy-hub.com/docs/setParticleEmitterSettings/) zmienia wybrane pola działającego emitera, a żywe cząsteczki od razu dostają nowy kolor i wielkość.

```lua
local portal = createParticleEmitter(x, y, z, {
    sprite = "glow", shape = "ring", radius = 2,
    rate = 120, max = 300, life = { 1, 1.6 },
    velocity = { 0, 0, 0 }, orbit = 3, attract = 0.6,
    size = { 0.25, 0.05 },
    colors = { tocolor(120, 200, 255), tocolor(160, 90, 255, 0) },
})
```

| Pole | Co robi |
|---|---|
| `rate`, `max` | cząsteczek na sekundę i najwięcej naraz (do 2000) |
| `life` | czas życia w sekundach: liczba albo `{ min, max }` |
| `duration` | ile sekund emiter wypuszcza cząsteczki (0 = bez końca) |
| `shape` | skąd startują: `point`, `sphere`, `box`, `disc`, `ring`, `line` |
| `radius`, `box` | promień kształtu i połowy wymiarów pudełka `{ x, y, z }` |
| `offset` | przesunięcie emitera od podanego punktu `{ x, y, z }` |
| `velocity`, `spread` | prędkość startowa w m/s i losowy dodatek na każdej osi |
| `speed` | prędkość od środka emitera na zewnątrz `{ min, max }` (ujemna = do środka) |
| `gravity`, `wind`, `drag` | grawitacja w m/s², stały wiatr `{ x, y, z }` i opór powietrza |
| `turbulence`, `turbulenceScale` | siła i drobność zawirowań |
| `orbit`, `attract` | krążenie wokół pionowej osi (rad/s) i przyciąganie do środka |
| `size`, `sizeRandom` | wielkość w metrach (liczba albo `{ start, koniec }`) i losowy rozrzut 0 do 1 |
| `spin`, `randomRotation` | obrót w rad/s `{ min, max }` i losowy kąt startowy |
| `stretch` | rozciąganie w kierunku lotu (iskry, deszcz) |
| `colors` | kolory przez życie cząsteczki, rozłożone równo (`tocolor`) |
| `palette` | warianty koloru `0xRRGGBB`, każda cząsteczka losuje jeden |
| `fadeIn`, `fadeOut` | jaka część życia przypada na pojawianie się i gaśnięcie |
| `sprite`, `texture` | wbudowany kształt albo własna tekstura z [`dxCreateTexture`](https://trilogy-hub.com/docs/dxCreateTexture/) |
| `blend` | `"add"` świeci (domyślne), `"alpha"` zwykłe krycie: dym, liście, konfetti |
| `brightness` | jasność 0 do 1 |
| `local` | cząsteczki jadą razem z emiterem zamiast zostawać w świecie |
| `floorZ`, `bounce` | wysokość podłogi i odbicie od niej |
| `maxDistance` | dalej od kamery emiter nic nie liczy (domyślnie 200 m) |
| `burst`, `autoDestroy` | cząsteczki wypuszczone od razu po utworzeniu i samoczynne zniknięcie po ostatniej |

#### Kształty cząsteczek

Pole `sprite` wybiera jeden z wbudowanych kształtów. Pełną listę daje [`getParticleSprites`](https://trilogy-hub.com/docs/getParticleSprites/).

![Wbudowane kształty](https://trilogy-hub.com/assets/img/docs/czasteczki/sprite.jpg)

*Od lewej: `glow`, `spark`, `smoke`, `flame`, `circle`, `square`, `ring`, `bubble`, `drop`, `star`, `flake`, `heart`, `leaf`.*

> **Uwaga:** Kształty są białe, kolor nadają `colors` i `palette`. Własny obraz podasz w polu `texture` (tekstura albo ścieżka do pliku PNG z zasobu).

#### Wydajność

Cząsteczki liczy gra w jednym przebiegu dla wszystkich emiterów, a rysuje je razem z resztą świata. Emiter dalej niż `maxDistance` od kamery stoi i nic nie kosztuje. Przy wielu emiterach naraz lepiej trzymać `max` w setkach niż w tysiącach: [`getParticleCount`](https://trilogy-hub.com/docs/getParticleCount/) pokaże, ile cząsteczek żyje naprawdę.

### Kursor

Kursor rysowany przez grę: wbudowane kształty, własny obraz i jeden kursor dla `dxDraw`, GUI i przeglądarek.

#### Kursor gry, nie systemu

[`showCursor`](https://trilogy-hub.com/docs/showCursor/) pokazuje kursor rysowany w grze, w tej samej klatce co reszta obrazu. Kursor Windows jest wtedy schowany, więc nie ma dwóch strzałek, mrugania ani opóźnienia względem interfejsu. Jeden kursor obsługuje rysowanie `dxDraw`, okna GUI i przeglądarki CEF: nad polem tekstowym sam zmienia się w kreskę, nad krawędzią okna w strzałki zmiany rozmiaru, nad linkiem w przeglądarce w dłoń.

```lua
bindKey("m", "down", function()
    showCursor(not isCursorShowing())
end)
```

![Kursor nad grą](https://trilogy-hub.com/assets/img/docs/kursor/arrow.jpg)

*Strzałka po `showCursor(true)`.*

#### Kształty

Kształt zmienia się sam nad GUI i przeglądarką. [`setCursorType`](https://trilogy-hub.com/docs/setCursorType/) ustawia go na sztywno, `setCursorType()` bez argumentu oddaje sterowanie z powrotem.

![Wbudowane kształty](https://trilogy-hub.com/assets/img/docs/kursor/ksztalty.jpg)

*Od lewej: `arrow`, `hand`, `text`, `crosshair`, `wait`, `help`, `move`, `sizewe`, `sizens`, `sizenesw`, `sizenwse`, `no`.*

| Nazwa | Kiedy |
|---|---|
| `arrow` | domyślna strzałka |
| `hand` | coś do kliknięcia |
| `text` | pole tekstowe |
| `crosshair` | wybieranie punktu |
| `wait`, `progress` | coś się wczytuje (kręcące się kółko) |
| `help` | podpowiedź |
| `move` | przesuwanie |
| `sizewe`, `sizens`, `sizenesw`, `sizenwse` | zmiana rozmiaru w poziomie, pionie i po skosie |
| `no` | akcja niedostępna |
| `none` | kursor schowany, ale dalej działa (np. własny celownik rysowany przez `dxDraw`) |

![Pole tekstowe](https://trilogy-hub.com/assets/img/docs/kursor/text.jpg)

*Nad `guiCreateEdit` kursor sam staje się kreską `text`.*

![Róg okna](https://trilogy-hub.com/assets/img/docs/kursor/size.jpg)

*Krawędź okna, które można rozciągać: `sizenwse`.*

![Czekanie](https://trilogy-hub.com/assets/img/docs/kursor/wait.jpg)

*`setCursorType("wait")` na czas wczytywania.*

![Dłoń](https://trilogy-hub.com/assets/img/docs/kursor/hand.jpg)

*`setCursorType("hand")` nad własnym przyciskiem z `dxDraw`.*

![Własny obraz](https://trilogy-hub.com/assets/img/docs/kursor/image.jpg)

*Celownik narysowany w render targecie i podany do `setCursorImage`.*

#### Własny obraz

[`setCursorImage`](https://trilogy-hub.com/docs/setCursorImage/) zamienia kursor na dowolny obraz: plik PNG z zasobu albo teksturę z [`dxCreateTexture`](https://trilogy-hub.com/docs/dxCreateTexture/) lub [`dxCreateRenderTarget`](https://trilogy-hub.com/docs/dxCreateRenderTarget/). `hotX` i `hotY` to punkt kliknięcia w obrazie, liczony od lewego górnego rogu.

```lua
-- celownik 32x32, klika środek
setCursorImage("img/celownik.png", 16, 16)

-- powrót do wbudowanego kursora
setCursorImage(false)
```

> **Uwaga:** Piksele są kopiowane w chwili wywołania. Jeśli rysujesz kursor w render targecie i chcesz go animować, wywołaj [`setCursorImage`](https://trilogy-hub.com/docs/setCursorImage/) ponownie po każdej zmianie.

#### Przezroczystość i sprzątanie

[`setCursorAlpha`](https://trilogy-hub.com/docs/setCursorAlpha/) ustawia przezroczystość kursora (0 do 255). Kształt, obraz i przezroczystość są wspólne dla wszystkich zasobów: gdy zasób, który je zmienił, zostanie zatrzymany, kursor wraca do zwykłej strzałki, więc jeden zasób nie zostawi innym schowanego kursora.

### Pojazdy

Wszystkie pojazdy San Andreas z ID modelu i nazwą, podzielone na rodzaje. Render każdego pojazdu prosto z gry.

#### Jak używać ID

ID modelu pojazdu podajesz w [`createVehicle`](https://trilogy-hub.com/docs/createVehicle/) i [`setElementModel`](https://trilogy-hub.com/docs/setElementModel/). Nazwę z ID daje [`getVehicleNameFromModel`](https://trilogy-hub.com/docs/getVehicleNameFromModel/), a odwrotnie [`getVehicleModelFromName`](https://trilogy-hub.com/docs/getVehicleModelFromName/). Rodzaj pojazdu (samochód, motocykl, łódź) zwraca [`getVehicleType`](https://trilogy-hub.com/docs/getVehicleType/).

```lua
addCommandHandler("infernus", function(player)
    local x, y, z = getElementPosition(player)
    local auto = createVehicle(411, x + 3, y, z)   -- 411 = Infernus
    setVehicleColor(auto, 255, 122, 34)
end)
```

> **Uwaga:** Kolor na renderach jest losowy, tak jak przy zwykłym tworzeniu pojazdu. Własny kolor ustawisz przez [`setVehicleColor`](https://trilogy-hub.com/docs/setVehicleColor/).

#### Wszystkie pojazdy

Wpisz ID, nazwę albo rodzaj (np. `łodzie`), żeby zawęzić listę.

> Katalog z obrazkami (modele, identyfikatory) jest na stronie: https://trilogy-hub.com/docs/pojazdy/

### Skiny

Wszystkie skiny postaci (pedy) San Andreas z ID modelu. Render każdej postaci prosto z gry.

#### Jak używać ID

ID skinu podajesz w [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/), [`createPed`](https://trilogy-hub.com/docs/createPed/) i [`setElementModel`](https://trilogy-hub.com/docs/setElementModel/). Aktualny skin gracza albo peda zwraca [`getElementModel`](https://trilogy-hub.com/docs/getElementModel/), a listę wszystkich poprawnych ID daje [`getValidPedModels`](https://trilogy-hub.com/docs/getValidPedModels/). Numery, których nie ma na liście poniżej, nie są postaciami i gra ich nie przyjmie.

```lua
addEventHandler("onPlayerJoin", root, function()
    spawnPlayer(source, 2495.3, -1687.0, 13.5, 0, 105)   -- 105 = Grove Street
end)

addCommandHandler("skin", function(player, _, id)
    setElementModel(player, tonumber(id) or 0)
end)
```

> **Uwaga:** Ubrania CJ-a (fryzura, koszulka, tatuaże) działają tylko na skinie 0, opis przy [`addPedClothes`](https://trilogy-hub.com/docs/addPedClothes/).

#### Wszystkie skiny

Wpisz ID, żeby zawęzić listę.

> Katalog z obrazkami (modele, identyfikatory) jest na stronie: https://trilogy-hub.com/docs/skiny/

### Bronie

Wszystkie bronie San Andreas z ID, nazwą, modelem i slotem. Render każdej broni prosto z gry.

#### Jak używać ID

ID broni podajesz w [`giveWeapon`](https://trilogy-hub.com/docs/giveWeapon/), [`takeWeapon`](https://trilogy-hub.com/docs/takeWeapon/), [`setWeaponAmmo`](https://trilogy-hub.com/docs/setWeaponAmmo/) i wszędzie, gdzie API pyta o broń. Nazwę z ID daje [`getWeaponNameFromID`](https://trilogy-hub.com/docs/getWeaponNameFromID/), a odwrotnie [`getWeaponIDFromName`](https://trilogy-hub.com/docs/getWeaponIDFromName/). Gracz trzyma naraz jedną broń z każdego slotu: nowa broń z zajętego slotu zastępuje starą.

```lua
addCommandHandler("ak", function(player)
    giveWeapon(player, 30, 120, true)   -- AK-47, 120 naboi, od razu w ręce
end)
```

> **Uwaga:** **Model** to ID obiektu broni w świecie gry, potrzebny np. w [`createPickup`](https://trilogy-hub.com/docs/createPickup/) albo [`createObject`](https://trilogy-hub.com/docs/createObject/). Do dawania broni zawsze używaj ID broni, nie modelu.

#### Wszystkie bronie

Wpisz ID, nazwę albo slot, żeby zawęzić listę.

> Katalog z obrazkami (modele, identyfikatory) jest na stronie: https://trilogy-hub.com/docs/bronie/

### Markery

Pięć typów markerów ze zdjęciami z gry: walec do wchodzenia, punkt kontrolny, pierścień, strzałka i korona.

#### Pierwszy marker

Marker to kolorowy znak w świecie. Tworzy go [`createMarker`](https://trilogy-hub.com/docs/createMarker/): na serwerze widzą go wszyscy gracze, w skrypcie klienta tylko ten gracz. Gdy gracz wejdzie w marker, serwer wywołuje [`onMarkerHit`](https://trilogy-hub.com/docs/onMarkerHit/), a przy wyjściu [`onMarkerLeave`](https://trilogy-hub.com/docs/onMarkerLeave/).

```lua
local praca = createMarker(2495.3, -1680.0, 12.6, "cylinder", 1.5, 255, 122, 34, 170)

addEventHandler("onMarkerHit", praca, function(element, sameDimension)
    if getElementType(element) == "player" and sameDimension then
        outputChatBox("Wszedłeś do pracy kuriera.", element, 255, 122, 34)
    end
end)
```

#### Typy

Typ podajesz w czwartym argumencie [`createMarker`](https://trilogy-hub.com/docs/createMarker/), a zmieniasz przez [`setMarkerType`](https://trilogy-hub.com/docs/setMarkerType/). Rozmiar ([`setMarkerSize`](https://trilogy-hub.com/docs/setMarkerSize/)) to średnica w metrach, kolor i krycie ustawia [`setMarkerColor`](https://trilogy-hub.com/docs/setMarkerColor/).

![cylinder](https://trilogy-hub.com/assets/img/docs/markery/cylinder.jpg)

*Walec stojący na ziemi. Najczęstszy wybór na wejście do pracy, sklepu albo budynku.*

![checkpoint](https://trilogy-hub.com/assets/img/docs/markery/checkpoint.jpg)

*Punkt kontrolny: wysoka kolumna światła widoczna z daleka. Dobry na trasę wyścigu.*

![ring](https://trilogy-hub.com/assets/img/docs/markery/ring.jpg)

*Świecący pierścień na podanej wysokości, zawsze zwrócony do kamery. Np. trasa samolotem.*

![arrow](https://trilogy-hub.com/assets/img/docs/markery/arrow.jpg)

*Strzałka skierowana w dół nad punktem, wskazuje miejsce albo drzwi.*

![corona](https://trilogy-hub.com/assets/img/docs/markery/corona.jpg)

*Korona: większy świecący krąg nad punktem, zwrócony do kamery. Nie ma bryły, sama poświata.*

| Typ | Wygląd | Typowe użycie |
|---|---|---|
| `cylinder` | walec na ziemi | wejścia, prace, sklepy |
| `checkpoint` | kolumna światła | trasy wyścigów |
| `ring` | świecący pierścień | trasy lotnicze i łodzią |
| `arrow` | strzałka w dół nad punktem | drzwi, miejsca do odwiedzenia |
| `corona` | świecący krąg nad punktem | znak widoczny z daleka |

#### Kto jest w środku

[`isElementWithinMarker`](https://trilogy-hub.com/docs/isElementWithinMarker/) sprawdza jeden element, a [`getElementsWithinMarker`](https://trilogy-hub.com/docs/getElementsWithinMarker/) zwraca wszystkie elementy w markerze. Wejście sprawdza serwer, więc działa też dla pojazdów i pedów, nie tylko graczy.

```lua
setTimer(function()
    for _, gracz in ipairs(getElementsWithinMarker(praca)) do
        if getElementType(gracz) == "player" then givePlayerMoney(gracz, 10) end
    end
end, 5000, 0)
```

---

## Funkcje serwera

Funkcje dostępne w skryptach type="server". Działają na serwerze i widzą wszystkich graczy.

### addBan

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zakłada bana na adres IP, nick albo serial (Client ID) bez potrzeby, żeby gracz był na serwerze.

#### Składnia

```lua
ban addBan([string ip = nil, string nick = nil, string serial = nil, player/string responsible = nil, string reason = "", int seconds = 0])
```

#### Argumenty

- `ip` (string, opcjonalny = nil) - Adres IP do zablokowania.
- `nick` (string, opcjonalny = nil) - Nick do zablokowania.
- `serial` (string, opcjonalny = nil) - Serial, czyli Client ID gracza (`TH-XXXX-...`).
- `responsible` (player/string, opcjonalny = nil) - Kto nałożył bana: gracz albo nazwa.
- `reason` (string, opcjonalny = "") - Powód widoczny dla gracza.
- `seconds` (int, opcjonalny = 0) - Czas bana w sekundach, `0` oznacza ban na zawsze.

#### Zwraca

Uchwyt bana albo `false`, gdy nie podano ani IP, ani nicku, ani seriala.

#### Przykład

Komenda `/banserial`, która blokuje Client ID na 7 dni.

```lua
addCommandHandler("banserial", function(admin, cmd, serial, ...)
    if not serial then
        outputChatBox("Użycie: /banserial <Client ID> [powód]", admin)
        return
    end
    local reason = table.concat({...}, " ")
    local ban = addBan(nil, nil, serial, admin, reason, 7 * 24 * 60 * 60)
    if ban then
        outputChatBox("Zbanowano " .. serial .. " na 7 dni.", admin, 0, 255, 0)
    end
end)
```

#### Uwagi

> **Uwaga:** **Wystarczy jedno z trzech.** Podaj co najmniej IP, nick albo serial, pozostałe zostaw jako `nil`.

#### Zobacz też

- [`banPlayer`](https://trilogy-hub.com/docs/banPlayer/)
- [`removeBan`](https://trilogy-hub.com/docs/removeBan/)
- [`getBans`](https://trilogy-hub.com/docs/getBans/)
- [`isBanned`](https://trilogy-hub.com/docs/isBanned/)
- [`isBan`](https://trilogy-hub.com/docs/isBan/)

### banPlayer

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Zmodyfikowana względem MTA:SA*

Banuje gracza (jego Client ID i adres IP) i od razu wyrzuca go z serwera.

#### Składnia

```lua
ban banPlayer(player player [, player/string responsible = nil, string reason = "", int seconds = 0])
```

#### Argumenty

- `player` (player) - Gracz do zbanowania.
- `responsible` (player/string, opcjonalny = nil) - Kto nałożył bana: gracz albo nazwa.
- `reason` (string, opcjonalny = "") - Powód widoczny dla gracza.
- `seconds` (int, opcjonalny = 0) - Czas bana w sekundach, `0` oznacza ban na zawsze.

#### Zwraca

Uchwyt bana albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `player/string responsibleElement = "Console"`, `string reason = ""`, `int seconds = 0`
- W MTA:SA: `banPlayer(player bannedPlayer, bool IP = true, bool username = false, bool serial = false, player/string responsibleElement = "Console", string reason = "", int seconds = 0)`

#### Przykład

```lua
addCommandHandler("ban", function(admin, cmd, name, hours, ...)
    local target = name and getPlayerFromName(name)
    if not target then
        outputChatBox("Nie ma takiego gracza.", admin, 255, 0, 0)
        return
    end
    local seconds = (tonumber(hours) or 0) * 3600
    banPlayer(target, admin, table.concat({...}, " "), seconds)
end, true)
```

#### Zobacz też

- [`kickPlayer`](https://trilogy-hub.com/docs/kickPlayer/)
- [`addBan`](https://trilogy-hub.com/docs/addBan/)
- [`removeBan`](https://trilogy-hub.com/docs/removeBan/)

### getBanAdmin

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zwraca nazwę osoby, która nałożyła bana.

#### Składnia

```lua
string getBanAdmin(ban ban)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.

#### Zwraca

Nazwa admina albo `false`, gdy nie zapisano.

#### Przykład

```lua
for _, ban in ipairs(getBans()) do
    print((getBanNick(ban) or "?") .. " - zbanował: " .. (getBanAdmin(ban) or "konsola"))
end
```

#### Zobacz też

- [`setBanAdmin`](https://trilogy-hub.com/docs/setBanAdmin/)

### getBanIP

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zwraca adres IP zapisany w banie.

#### Składnia

```lua
string getBanIP(ban ban)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.

#### Zwraca

Adres IP albo `false`, gdy ban nie dotyczy IP.

#### Przykład

```lua
for _, ban in ipairs(getBans()) do
    local ip = getBanIP(ban)
    if ip then print("Zablokowane IP: " .. ip) end
end
```

### getBanNick

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zwraca nick zapisany w banie.

#### Składnia

```lua
string getBanNick(ban ban)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.

#### Zwraca

Nick albo `false`, gdy ban nie ma nicku.

#### Przykład

```lua
for _, ban in ipairs(getBans()) do
    print("Nick: " .. tostring(getBanNick(ban)))
end
```

#### Zobacz też

- [`setBanNick`](https://trilogy-hub.com/docs/setBanNick/)

### getBanReason

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zwraca powód bana.

#### Składnia

```lua
string getBanReason(ban ban)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.

#### Zwraca

Powód albo `false`, gdy go nie podano.

#### Przykład

```lua
addCommandHandler("bany", function(admin)
    for i, ban in ipairs(getBans()) do
        outputChatBox(i .. ". " .. tostring(getBanNick(ban)) .. ": " .. (getBanReason(ban) or "bez powodu"), admin)
    end
end, true)
```

#### Zobacz też

- [`setBanReason`](https://trilogy-hub.com/docs/setBanReason/)

### getBans

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Zmodyfikowana względem MTA:SA*

Zwraca listę wszystkich obowiązujących banów. Bany, które już wygasły, są pomijane.

#### Składnia

```lua
table getBans()
```

#### Zwraca

Tablica uchwytów banów (może być pusta).

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `getBans()`

#### Przykład

```lua
local bans = getBans()
print("Aktywnych banów: " .. #bans)
```

#### Zobacz też

- [`addBan`](https://trilogy-hub.com/docs/addBan/)
- [`removeBan`](https://trilogy-hub.com/docs/removeBan/)
- [`reloadBans`](https://trilogy-hub.com/docs/reloadBans/)

### getBanSerial

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zwraca serial (Client ID) zapisany w banie.

#### Składnia

```lua
string getBanSerial(ban ban)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.

#### Zwraca

Client ID albo `false`, gdy ban go nie zawiera.

#### Przykład

```lua
local function findBanBySerial(serial)
    for _, ban in ipairs(getBans()) do
        if getBanSerial(ban) == serial then return ban end
    end
    return false
end
```

### getBanTime

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zwraca czas założenia bana w sekundach od 1 stycznia 1970 (czas uniksowy).

#### Składnia

```lua
int getBanTime(ban ban)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.

#### Zwraca

Czas założenia albo `false`.

#### Przykład

```lua
for _, ban in ipairs(getBans()) do
    local t = getRealTime(getBanTime(ban))
    print(string.format("%s: %02d.%02d.%d", tostring(getBanNick(ban)), t.monthday, t.month + 1, t.year + 1900))
end
```

### getUnbanTime

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zwraca czas wygaśnięcia bana w sekundach od 1970 roku. Ban na zawsze zwraca `false`.

#### Składnia

```lua
int getUnbanTime(ban ban)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.

#### Zwraca

Czas wygaśnięcia albo `false` dla bana na zawsze.

#### Przykład

```lua
for _, ban in ipairs(getBans()) do
    local untilTime = getUnbanTime(ban)
    if untilTime then
        local left = untilTime - getRealTime().timestamp
        print(tostring(getBanNick(ban)) .. ": zostało " .. math.ceil(left / 3600) .. " h")
    else
        print(tostring(getBanNick(ban)) .. ": na zawsze")
    end
end
```

#### Zobacz też

- [`setUnbanTime`](https://trilogy-hub.com/docs/setUnbanTime/)

### isBan

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Sprawdza, czy wartość jest uchwytem bana.

#### Składnia

```lua
bool isBan(mixed value)
```

#### Argumenty

- `value` (mixed) - Dowolna wartość.

#### Zwraca

`true`, jeśli to ban.

#### Przykład

```lua
local ban = banPlayer(player, nil, "cheaty")
if isBan(ban) then
    print("Ban założony")
end
```

#### Zobacz też

- [`removeBan`](https://trilogy-hub.com/docs/removeBan/)
- [`addBan`](https://trilogy-hub.com/docs/addBan/)

### isBanned

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Tylko Trilogy Hub*

Sprawdza, czy połączenie z takim serialem albo adresem IP zostałoby odrzucone przez bany.

#### Składnia

```lua
bool isBanned(string serial [, string ip = nil])
```

#### Argumenty

- `serial` (string) - Client ID gracza (może być `nil`, jeśli podajesz IP).
- `ip` (string, opcjonalny = nil) - Adres IP.

#### Zwraca

`true`, jeśli istnieje pasujący ban.

#### Przykład

```lua
if isBanned("TH-01D0-0000-0000-0000-0001") then
    print("Ten Client ID ma bana")
end
```

### kickPlayer

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Wyrzuca gracza z serwera. Gracz widzi podany powód i może od razu wejść ponownie.

#### Składnia

```lua
bool kickPlayer(player player [, player/string responsible = nil, string reason = "Wyrzucony z serwera"])
```

#### Argumenty

- `player` (player) - Gracz do wyrzucenia.
- `responsible` (player/string, opcjonalny = nil) - Kto wyrzucił: gracz albo nazwa.
- `reason` (string, opcjonalny = "Wyrzucony z serwera") - Powód widoczny dla gracza.

#### Zwraca

`true`, jeśli gracz został wyrzucony.

#### Przykład

```lua
addEventHandler("onPlayerChat", root, function(message)
    if #message > 300 then
        cancelEvent()
        kickPlayer(source, "Antyspam", "Za długa wiadomość")
    end
end)
```

#### Zobacz też

- [`banPlayer`](https://trilogy-hub.com/docs/banPlayer/)
- [`onPlayerQuit`](https://trilogy-hub.com/docs/onPlayerQuit/)

### reloadBans

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Zmodyfikowana względem MTA:SA*

Wczytuje listę banów z dysku od nowa, na przykład po ręcznej edycji pliku banów.

#### Składnia

```lua
bool reloadBans()
```

#### Zwraca

`true`, jeśli lista została wczytana.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `reloadBans()`

#### Przykład

```lua
addCommandHandler("reloadbans", function(admin)
    if reloadBans() then
        outputChatBox("Bany wczytane: " .. #getBans(), admin)
    end
end, true)
```

### removeBan

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Zmodyfikowana względem MTA:SA*

Zdejmuje bana.

#### Składnia

```lua
bool removeBan(ban ban)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.

#### Zwraca

`true`, jeśli ban został zdjęty.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `player responsibleElement = nil`
- W MTA:SA: `removeBan(ban theBan, player responsibleElement = nil)`

#### Przykład

```lua
addCommandHandler("unban", function(admin, cmd, nick)
    for _, ban in ipairs(getBans()) do
        if getBanNick(ban) == nick then
            removeBan(ban)
            outputChatBox("Odbanowano " .. nick, admin, 0, 255, 0)
            return
        end
    end
    outputChatBox("Brak bana na nick " .. tostring(nick), admin, 255, 0, 0)
end, true)
```

#### Zobacz też

- [`addBan`](https://trilogy-hub.com/docs/addBan/)
- [`getBans`](https://trilogy-hub.com/docs/getBans/)
- [`isBan`](https://trilogy-hub.com/docs/isBan/)

### setBanAdmin

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zmienia nazwę admina zapisaną przy banie.

#### Składnia

```lua
bool setBanAdmin(ban ban, string admin)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.
- `admin` (string) - Nowa nazwa admina.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local ban = addBan("203.0.113.7")
setBanAdmin(ban, "System antycheat")
```

#### Zobacz też

- [`getBanAdmin`](https://trilogy-hub.com/docs/getBanAdmin/)

### setBanNick

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zmienia nick zapisany przy banie.

#### Składnia

```lua
bool setBanNick(ban ban, string nick)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.
- `nick` (string) - Nowy nick.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local ban = addBan(nil, nil, serial)
setBanNick(ban, "Cheater123")
```

#### Zobacz też

- [`getBanNick`](https://trilogy-hub.com/docs/getBanNick/)

### setBanReason

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zmienia powód bana.

#### Składnia

```lua
bool setBanReason(ban ban, string reason)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.
- `reason` (string) - Nowy powód.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
for _, ban in ipairs(getBans()) do
    if not getBanReason(ban) then
        setBanReason(ban, "Złamanie regulaminu")
    end
end
```

#### Zobacz też

- [`getBanReason`](https://trilogy-hub.com/docs/getBanReason/)

### setUnbanTime

*Funkcja · Strona: Serwer · Kategoria: Administracja i bany · Identyczna z MTA:SA*

Zmienia czas wygaśnięcia bana. Podajesz moment w sekundach od 1970 roku, a nie długość bana.

#### Składnia

```lua
bool setUnbanTime(ban ban, int time)
```

#### Argumenty

- `ban` (ban) - Uchwyt bana.
- `time` (int) - Czas wygaśnięcia (czas uniksowy).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local now = getRealTime().timestamp
for _, ban in ipairs(getBans()) do
    setUnbanTime(ban, now + 24 * 3600)
end
```

#### Zobacz też

- [`getUnbanTime`](https://trilogy-hub.com/docs/getUnbanTime/)

### dbConnect

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Identyczna z MTA:SA*

Otwiera połączenie z bazą SQLite (plik w folderze zasobu) albo MySQL.

#### Składnia

```lua
element dbConnect(string dbType, string target [, string username = nil, string password = nil, string/table options = nil])
```

#### Argumenty

- `dbType` (string) - `"sqlite"` albo `"mysql"`.
- `target` (string) - SQLite: ścieżka pliku w zasobie albo `":memory:"`. MySQL: nazwa połączenia z `databases.json` albo `"dbname=...;host=...;port=..."`.
- `username` (string, opcjonalny = nil) - Użytkownik MySQL. Pomiń przy połączeniu nazwanym.
- `password` (string, opcjonalny = nil) - Hasło MySQL.
- `options` (string/table, opcjonalny = nil) - Dodatkowe opcje MySQL.

#### Zwraca

Uchwyt połączenia albo `false`.

#### Przykład

```lua
local db = dbConnect("sqlite", "gracze.db")
dbExec(db, "CREATE TABLE IF NOT EXISTS gracze (serial TEXT PRIMARY KEY, kasa INTEGER)")

local mysql = dbConnect("mysql", "glowna")
```

#### Uwagi

> **Nowość:** **Bezpieczne hasła do bazy.** Połączenie nazwane (`dbConnect("mysql", "glowna")`) bierze dane z pliku `databases.json` serwera, który może być zaszyfrowany. Hasło nie pojawia się wtedy w kodzie zasobu, a serwer pozwala na to połączenie tylko zasobom z listy `resources`.

> **Uwaga:** **Ścieżka SQLite nie wyjdzie poza zasób.** Plik bazy zawsze leży w folderze zasobu, próba wyjścia wyżej jest odrzucana.

#### Zobacz też

- [`dbQuery`](https://trilogy-hub.com/docs/dbQuery/)
- [`dbExec`](https://trilogy-hub.com/docs/dbExec/)
- [`dbPoll`](https://trilogy-hub.com/docs/dbPoll/)

### dbExec

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Identyczna z MTA:SA*

Wykonuje zapytanie, które nie zwraca wyniku (INSERT, UPDATE, CREATE). Argumenty wstawiasz w miejsce znaków `?`.

#### Składnia

```lua
bool dbExec(element connection, string query, mixed ...)
```

#### Argumenty

- `connection` (element) - Uchwyt z `dbConnect`.
- `query` (string) - Zapytanie SQL z `?` w miejscu wartości.
- `...` (mixed) - Wartości wstawiane w miejsce `?`, bezpiecznie zacytowane.

#### Zwraca

`true`, jeśli zapytanie zostało przyjęte.

#### Przykład

```lua
local db = dbConnect("sqlite", "gracze.db")

addEventHandler("onPlayerQuit", root, function()
    dbExec(db, "INSERT OR REPLACE INTO gracze (serial, kasa) VALUES (?, ?)",
        getPlayerSerial(source), getPlayerMoney(source))
end)
```

#### Uwagi

> **Ostrzeżenie:** **Nie składaj SQL z tekstu gracza.** Zawsze używaj `?`, a nie `..`, inaczej gracz może wstrzyknąć własne zapytanie.

### dbFetch

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Tylko Trilogy Hub*

Wykonuje zapytanie i od razu zwraca wynik. Jedno wywołanie zamiast `dbQuery`, `dbPoll` i `dbFree`. Działa z SELECT, INSERT, UPDATE i DELETE.

#### Składnia

```lua
table dbFetch(element connection, string query, mixed ...)
```

#### Argumenty

- `connection` (element) - Uchwyt z `dbConnect`.
- `query` (string) - Zapytanie SQL z `?` w miejscu wartości.
- `...` (mixed) - Wartości wstawiane w miejsce `?`, bezpiecznie zacytowane.

#### Zwraca

Tablica wierszy (każdy wiersz to `kolumna = wartość`). Dodatkowo `rows.insertId` (ID wstawionego wiersza), `rows.affectedRows` (liczba zmienionych wierszy) i `rows.columns` (nazwy kolumn po kolei). Przy błędzie `false` i opis błędu.

#### Przykład

```lua
local db = dbConnect("mysql", "glowna")

addCommandHandler("top", function(player)
    async(function()
        local rows, err = dbFetch(db, "SELECT nick, kasa FROM gracze ORDER BY kasa DESC LIMIT 5")
        if not rows then
            outputChatBox("Błąd bazy: " .. err, player)
            return
        end
        for i, row in ipairs(rows) do
            outputChatBox(i .. ". " .. row.nick .. " - $" .. row.kasa, player)
        end
    end)
end)

addCommandHandler("rejestracja", function(player)
    async(function()
        local result = dbFetch(db, "INSERT INTO gracze (nick, kasa) VALUES (?, ?)", getPlayerName(player), 500)
        if result then
            outputChatBox("Twoje konto ma numer " .. result.insertId, player)
        end
    end)
end)
```

#### Uwagi

> **Wskazówka:** **Najprościej w `async`.** W zadaniu `async(function() ... end)` serwer nie czeka na bazę: wstrzymane jest tylko to zadanie, a gra i inne skrypty działają dalej. Poza zadaniem `dbFetch` też działa, ale serwer stoi, dopóki baza nie odpowie. Przy szybkim SQLite to bez znaczenia, przy MySQL używaj `async`.

> **Uwaga:** **Pola `insertId` i `affectedRows` nie przeszkadzają.** `ipairs`, `pairs` i `#rows` widzą tylko wiersze. Wartość `NULL` z bazy przychodzi jako `false`.

#### Zobacz też

- [`dbFetchOne`](https://trilogy-hub.com/docs/dbFetchOne/)
- [`dbFetchValue`](https://trilogy-hub.com/docs/dbFetchValue/)
- [`async`](https://trilogy-hub.com/docs/async/)
- [`dbExec`](https://trilogy-hub.com/docs/dbExec/)

### dbFetchOne

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Tylko Trilogy Hub*

Wykonuje zapytanie i zwraca tylko pierwszy wiersz. Wygodne, gdy szukasz jednego rekordu, na przykład konta gracza.

#### Składnia

```lua
table dbFetchOne(element connection, string query, mixed ...)
```

#### Argumenty

- `connection` (element) - Uchwyt z `dbConnect`.
- `query` (string) - Zapytanie SQL z `?` w miejscu wartości.
- `...` (mixed) - Wartości wstawiane w miejsce `?`.

#### Zwraca

Pierwszy wiersz (`kolumna = wartość`), `nil`, gdy zapytanie nie zwróciło żadnego wiersza, albo `false` i opis błędu.

#### Przykład

```lua
local db = dbConnect("mysql", "glowna")

addEventHandler("onPlayerJoin", root, function()
    local player = source
    async(function()
        local konto = dbFetchOne(db, "SELECT kasa, skin FROM gracze WHERE serial = ?", getPlayerSerial(player))
        if not isElement(player) then return end
        if konto then
            setPlayerMoney(player, konto.kasa)
            setElementModel(player, konto.skin)
        else
            outputChatBox("Witaj pierwszy raz na serwerze!", player)
        end
    end)
end)
```

#### Zobacz też

- [`dbFetch`](https://trilogy-hub.com/docs/dbFetch/)
- [`dbFetchValue`](https://trilogy-hub.com/docs/dbFetchValue/)
- [`async`](https://trilogy-hub.com/docs/async/)

### dbFetchValue

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Tylko Trilogy Hub*

Wykonuje zapytanie i zwraca jedną wartość: pierwszą kolumnę pierwszego wiersza. Do liczenia (`COUNT(*)`), sum i pojedynczych pól.

#### Składnia

```lua
mixed dbFetchValue(element connection, string query, mixed ...)
```

#### Argumenty

- `connection` (element) - Uchwyt z `dbConnect`.
- `query` (string) - Zapytanie SQL z `?` w miejscu wartości.
- `...` (mixed) - Wartości wstawiane w miejsce `?`.

#### Zwraca

Wartość z pierwszej kolumny pierwszego wiersza, `nil`, gdy nie ma wierszy. Przy błędzie `false` i opis błędu jako druga wartość.

#### Przykład

```lua
local db = dbConnect("sqlite", "gracze.db")

addCommandHandler("ilu", function(player)
    async(function()
        local ilu = dbFetchValue(db, "SELECT COUNT(*) FROM gracze")
        outputChatBox("Zarejestrowanych graczy: " .. tostring(ilu), player)
    end)
end)
```

#### Uwagi

> **Ostrzeżenie:** **`false` może znaczyć `NULL` albo błąd.** Wartość `NULL` z bazy też przychodzi jako `false`. Jeśli kolumna może być pusta, sprawdź drugą wartość: przy błędzie jest tam opis.

#### Zobacz też

- [`dbFetch`](https://trilogy-hub.com/docs/dbFetch/)
- [`dbFetchOne`](https://trilogy-hub.com/docs/dbFetchOne/)
- [`async`](https://trilogy-hub.com/docs/async/)

### dbFree

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Identyczna z MTA:SA*

Zwalnia wynik zapytania, którego nie zamierzasz czytać.

#### Składnia

```lua
bool dbFree(element queryHandle)
```

#### Argumenty

- `queryHandle` (element) - Uchwyt z `dbQuery`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local q = dbQuery(db, "SELECT * FROM logi")
dbFree(q)
```

### dbPoll

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Zmodyfikowana względem MTA:SA*

Odbiera wynik zapytania z `dbQuery`: wiersze, liczbę zmienionych wierszy i ID ostatnio wstawionego. Jeśli chcesz po prostu wykonać zapytanie i dostać wiersze, prościej użyć `dbFetch`.

#### Składnia

```lua
table dbPoll(element queryHandle [, int timeout = 0])
```

#### Argumenty

- `queryHandle` (element) - Uchwyt z `dbQuery`.
- `timeout` (int, opcjonalny = 0) - `0` - nie czekaj (zwraca `nil`, gdy wyniku jeszcze nie ma), `-1` - czekaj, aż baza odpowie, liczba - czekaj najwyżej tyle milisekund.

#### Zwraca

Tablica wierszy (każdy wiersz to tablica `kolumna = wartość`), liczba zmienionych wierszy i ID wstawionego. Te same dwie liczby są też w samej tablicy: `rows.affectedRows` i `rows.insertId`. `nil`, gdy wynik jeszcze nie jest gotowy, `false` z kodem i opisem błędu, gdy zapytanie się nie udało.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool multipleResults = false`
- W MTA:SA: `dbPoll(db-query queryHandle, int timeout, bool multipleResults = false)`

#### Przykład

```lua
dbQuery(function(q)
    local rows, err, msg = dbPoll(q, 0)
    if not rows then
        print("Błąd bazy: " .. tostring(msg))
        return
    end
    for _, row in ipairs(rows) do
        print(row.serial, row.kasa)
    end
end, db, "SELECT serial, kasa FROM gracze ORDER BY kasa DESC LIMIT 10")
```

#### Uwagi

> **Uwaga:** **Czekanie w `async` nie zatrzymuje serwera.** Wewnątrz `async(function() ... end)` czekanie `dbPoll(q, -1)` wstrzymuje tylko to zadanie, a gra i inne skrypty działają dalej. Poza zadaniem serwer stoi, dopóki baza nie odpowie, a przy dłuższym czekaniu dostaniesz ostrzeżenie w konsoli.

> **Uwaga:** **Wynik możesz odczytać kilka razy.** Kolejne `dbPoll` na tym samym uchwycie zwraca ten sam wynik, nie trzeba też wołać `dbFree` po odczycie. Wartość `NULL` z bazy przychodzi jako `false`.

#### Zobacz też

- [`dbFetch`](https://trilogy-hub.com/docs/dbFetch/)
- [`dbQuery`](https://trilogy-hub.com/docs/dbQuery/)
- [`async`](https://trilogy-hub.com/docs/async/)

### dbPrepareString

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Identyczna z MTA:SA*

Zwraca tekst zapytania z wartościami wstawionymi w miejsce `?` i bezpiecznie zacytowanymi. Przydaje się, gdy składasz większe zapytanie z kawałków.

#### Składnia

```lua
string dbPrepareString(element connection, string query, mixed ...)
```

#### Argumenty

- `connection` (element) - Uchwyt z `dbConnect`.
- `query` (string) - Zapytanie z `?`.
- `...` (mixed) - Wartości.

#### Zwraca

Gotowy tekst zapytania albo `false`.

#### Przykład

```lua
local parts = {}
for _, p in ipairs(getElementsByType("player")) do
    parts[#parts + 1] = dbPrepareString(db, "(?, ?)", getPlayerSerial(p), getPlayerMoney(p))
end
if #parts > 0 then
    dbExec(db, "INSERT OR REPLACE INTO gracze (serial, kasa) VALUES " .. table.concat(parts, ","))
end
```

### dbQuery

*Funkcja · Strona: Serwer · Kategoria: Baza danych · Identyczna z MTA:SA*

Wysyła zapytanie z wynikiem. Wynik odbierasz przez `dbPoll` albo w funkcji zwrotnej, która dostanie uchwyt zapytania.

#### Składnia

```lua
handle dbQuery([function callback, table callbackArgs,] element connection, string query [, mixed ...])
```

#### Argumenty

- `callback` (function, opcjonalny = nil) - Funkcja wywołana, gdy wynik jest gotowy. Pierwszy argument to uchwyt zapytania.
- `callbackArgs` (table, opcjonalny = nil) - Dodatkowe argumenty dla funkcji zwrotnej.
- `connection` (element) - Uchwyt z `dbConnect`.
- `query` (string) - Zapytanie SQL z `?`.
- `...` (mixed) - Wartości dla `?`.

#### Zwraca

Uchwyt zapytania albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function()
    local player = source
    dbQuery(function(q)
        local rows = dbPoll(q, 0)
        if rows and rows[1] and isElement(player) then
            setPlayerMoney(player, rows[1].kasa)
        end
    end, db, "SELECT kasa FROM gracze WHERE serial = ?", getPlayerSerial(player))
end)
```

#### Uwagi

> **Uwaga:** **Nie blokuje serwera.** Zapytanie wykonuje się w tle, a funkcja zwrotna przychodzi, gdy baza odpowie, zawsze dopiero po powrocie z `dbQuery`. Zapytania na jednym połączeniu wykonują się po kolei.

> **Wskazówka:** **Prościej: `dbFetch`.** Jeśli nie potrzebujesz funkcji zwrotnej, `dbFetch` w zadaniu `async` daje wiersze jednym wywołaniem.

#### Zobacz też

- [`dbPoll`](https://trilogy-hub.com/docs/dbPoll/)
- [`dbFetch`](https://trilogy-hub.com/docs/dbFetch/)
- [`dbFree`](https://trilogy-hub.com/docs/dbFree/)
- [`dbExec`](https://trilogy-hub.com/docs/dbExec/)

### addMapBlipName

*Funkcja · Strona: Serwer · Kategoria: Blipy · Tylko Trilogy Hub*

Nadaje nazwę ikonie blipa. Nazwa pojawia się w legendzie mapy (ESC) i w dymku po najechaniu na ikonę.

#### Składnia

```lua
bool addMapBlipName(int icon, string name)
```

#### Argumenty

- `icon` (int) - Numer ikony blipa.
- `name` (string) - Nazwa w legendzie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addMapBlipName(41, "Praca: zbieranie truskawek")
createBlip(-1050.6, -1620.0, 76.4, 41)
```

#### Zobacz też

- [`getMapBlipName`](https://trilogy-hub.com/docs/getMapBlipName/)
- [`getMapBlipNames`](https://trilogy-hub.com/docs/getMapBlipNames/)
- [`createBlip`](https://trilogy-hub.com/docs/createBlip/)
- [`removeMapBlipName`](https://trilogy-hub.com/docs/removeMapBlipName/)

### addMapZoneName

*Funkcja · Strona: Serwer · Kategoria: Blipy · Tylko Trilogy Hub*

Stawia własny napis miejsca na mapie (ESC), tak jak nazwy dzielnic w grze.

#### Składnia

```lua
int addMapZoneName(float x, float y, float z, string name [, string kind = "district"])
```

#### Argumenty

- `x` (float) - Pozycja X napisu.
- `y` (float) - Pozycja Y napisu.
- `z` (float) - Pozycja Z napisu.
- `name` (string) - Treść napisu (nie może być pusta).
- `kind` (string, opcjonalny = "district") - `"district"` (mały napis, jak GANTON) albo `"region"` (duży, jak LOS SANTOS).

#### Zwraca

Numer napisu do `removeMapZoneName` albo `false`.

#### Przykład

```lua
local label = addMapZoneName(2495.0, -1687.0, 13.5, "Baza Grove", "district")
```

#### Zobacz też

- [`removeMapZoneName`](https://trilogy-hub.com/docs/removeMapZoneName/)
- [`getMapZoneNames`](https://trilogy-hub.com/docs/getMapZoneNames/)

### removeMapBlipName

*Funkcja · Strona: Serwer · Kategoria: Blipy · Tylko Trilogy Hub*

Usuwa nazwę ikony z legendy mapy.

#### Składnia

```lua
bool removeMapBlipName(int icon)
```

#### Argumenty

- `icon` (int) - Numer ikony.

#### Zwraca

`true`, jeśli nazwa była ustawiona i została usunięta.

#### Przykład

```lua
removeMapBlipName(41)
```

#### Zobacz też

- [`getMapBlipName`](https://trilogy-hub.com/docs/getMapBlipName/)
- [`addMapBlipName`](https://trilogy-hub.com/docs/addMapBlipName/)

### removeMapZoneName

*Funkcja · Strona: Serwer · Kategoria: Blipy · Tylko Trilogy Hub*

Usuwa napis miejsca dodany przez `addMapZoneName`.

#### Składnia

```lua
bool removeMapZoneName(int id)
```

#### Argumenty

- `id` (int) - Numer zwrócony przez `addMapZoneName`.

#### Zwraca

`true`, jeśli napis istniał.

#### Przykład

```lua
local label = addMapZoneName(0, 0, 3, "Wydarzenie")
setTimer(removeMapZoneName, 60000, 1, label)
```

#### Zobacz też

- [`addMapZoneName`](https://trilogy-hub.com/docs/addMapZoneName/)

### createWeapon

*Funkcja · Strona: Serwer · Kategoria: Bronie · Zmodyfikowana względem MTA:SA*

Tworzy broń skryptową, która stoi w świecie i nie należy do żadnej postaci. Taką bronią sterujesz funkcjami `setWeaponTarget`, `fireWeapon` i `setWeaponState`.

#### Składnia

```lua
weapon createWeapon(string/int theType, float x, float y, float z [, bool allowInvisible = false])
```

#### Argumenty

- `theType` (string/int) - Nazwa broni (`"m4"`) albo jej ID.
- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `allowInvisible` (bool, opcjonalny = false) - Dla zgodności ze starszymi skryptami.

#### Zwraca

Nowa broń albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `createWeapon(string theType, float x, float y, float z)`

#### Przykład

```lua
local turret = createWeapon("m4", 2495.0, -1670.0, 15.0)
setWeaponClipAmmo(turret, 50)
setWeaponAmmo(turret, 500)
```

#### Zobacz też

- [`fireWeapon`](https://trilogy-hub.com/docs/fireWeapon/)
- [`setWeaponTarget`](https://trilogy-hub.com/docs/setWeaponTarget/)
- [`getWeaponState`](https://trilogy-hub.com/docs/getWeaponState/)

### fireWeapon

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Oddaje jeden strzał z broni skryptowej w jej aktualny cel. Zużywa nabój z magazynka.

#### Składnia

```lua
bool fireWeapon(weapon weapon)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.

#### Zwraca

`false`, gdy broń nie jest gotowa (`getWeaponState`) albo magazynek jest pusty.

#### Przykład

```lua
setWeaponTarget(turret, 2500.0, -1660.0, 13.5)
setTimer(function()
    if not fireWeapon(turret) then
        setWeaponClipAmmo(turret, 30)
    end
end, 200, 0)
```

### getOriginalWeaponProperty

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca fabryczną właściwość broni. Dane fabryczne są w plikach gry, dlatego zawsze zwraca `false`. Do odczytu właściwości ustawionych na serwerze użyj `getWeaponProperty`.

#### Składnia

```lua
bool getOriginalWeaponProperty(int weaponID, string weaponSkill, string property)
```

#### Argumenty

- `weaponID` (int) - ID broni.
- `weaponSkill` (string) - Poziom umiejętności.
- `property` (string) - Nazwa właściwości.

#### Zwraca

Zawsze `false`.

#### Przykład

```lua
local value = getWeaponProperty(31, "pro", "damage") or getOriginalWeaponProperty(31, "pro", "damage")
```

#### Zobacz też

- [`getWeaponProperty`](https://trilogy-hub.com/docs/getWeaponProperty/)

### getWeaponAmmo

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca zapas amunicji broni skryptowej (poza magazynkiem).

#### Składnia

```lua
int getWeaponAmmo(weapon weapon)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.

#### Zwraca

Liczba naboi albo `false`.

#### Przykład

```lua
print("Zapas: " .. getWeaponAmmo(turret))
```

#### Zobacz też

- [`setWeaponAmmo`](https://trilogy-hub.com/docs/setWeaponAmmo/)

### getWeaponClipAmmo

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca liczbę naboi w magazynku broni skryptowej.

#### Składnia

```lua
int getWeaponClipAmmo(weapon weapon)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.

#### Zwraca

Naboje w magazynku albo `false`.

#### Przykład

```lua
if getWeaponClipAmmo(turret) == 0 then
    setWeaponState(turret, "reloading")
end
```

#### Zobacz też

- [`setWeaponClipAmmo`](https://trilogy-hub.com/docs/setWeaponClipAmmo/)

### getWeaponFiringRate

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca mnożnik szybkostrzelności broni skryptowej (`1` to szybkość fabryczna).

#### Składnia

```lua
float getWeaponFiringRate(weapon weapon)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.

#### Zwraca

Mnożnik albo `false`.

#### Przykład

```lua
print(getWeaponFiringRate(turret))
```

#### Zobacz też

- [`setWeaponFiringRate`](https://trilogy-hub.com/docs/setWeaponFiringRate/)
- [`resetWeaponFiringRate`](https://trilogy-hub.com/docs/resetWeaponFiringRate/)

### getWeaponFlags

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca flagi broni skryptowej: całą tabelę albo jedną flagę, gdy podasz jej nazwę.

#### Składnia

```lua
mixed getWeaponFlags(weapon weapon [, string flag = nil])
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.
- `flag` (string, opcjonalny = nil) - Nazwa flagi.

#### Zwraca

Tabela flag, wartość jednej flagi albo `false`.

#### Przykład

```lua
if getWeaponFlags(turret, "shoot_if_out_of_range") then
    print("Strzela także poza zasięgiem")
end
```

#### Zobacz też

- [`setWeaponFlags`](https://trilogy-hub.com/docs/setWeaponFlags/)

### getWeaponProperty

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca właściwość broni (np. obrażenia, zasięg) ustawioną na tym serwerze przez `setWeaponProperty`.

#### Składnia

```lua
mixed getWeaponProperty(string/int weaponOrId, string skillOrProperty [, string property = nil])
```

#### Argumenty

- `weaponOrId` (string/int) - Nazwa albo ID broni.
- `skillOrProperty` (string) - Poziom umiejętności (`"poor"`, `"std"`, `"pro"`) albo od razu nazwa właściwości.
- `property` (string, opcjonalny = nil) - Nazwa właściwości, gdy drugim argumentem był poziom.

#### Zwraca

Wartość właściwości albo `false`, gdy nie ustawiono.

#### Przykład

```lua
local dmg = getWeaponProperty("m4", "pro", "damage")
print(dmg or "domyślne")
```

#### Zobacz też

- [`setWeaponProperty`](https://trilogy-hub.com/docs/setWeaponProperty/)

### getWeaponState

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca stan broni skryptowej.

#### Składnia

```lua
string getWeaponState(weapon weapon)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.

#### Zwraca

`"ready"`, `"firing"` albo `"reloading"`.

#### Przykład

```lua
if getWeaponState(turret) == "ready" then
    fireWeapon(turret)
end
```

#### Zobacz też

- [`setWeaponState`](https://trilogy-hub.com/docs/setWeaponState/)

### getWeaponTarget

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca cel broni skryptowej.

#### Składnia

```lua
mixed getWeaponTarget(weapon weapon)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.

#### Zwraca

Element celu albo trzy liczby `x, y, z`, a `false`, gdy broń nie ma celu.

#### Przykład

```lua
local target = getWeaponTarget(turret)
if isElement(target) then
    print("Celuje w " .. getElementType(target))
end
```

#### Zobacz też

- [`setWeaponTarget`](https://trilogy-hub.com/docs/setWeaponTarget/)

### giveWeapon

*Funkcja · Strona: Serwer · Kategoria: Bronie · Zmodyfikowana względem MTA:SA*

Daje postaci broń z amunicją. Gdy postać już ma broń z tego slotu, zostaje zastąpiona.

#### Składnia

```lua
bool giveWeapon(ped ped, int weapon [, int ammo = 0, bool setAsCurrent = true])
```

#### Argumenty

- `ped` (ped) - Gracz albo postać.
- `weapon` (int) - ID broni.
- `ammo` (int, opcjonalny = 0) - Liczba naboi.
- `setAsCurrent` (bool, opcjonalny = true) - Czy od razu dać broń do ręki.

#### Zwraca

`true`, jeśli broń została dana.

#### Różnice względem MTA:SA

- W MTA:SA: `giveWeapon(ped thePlayer, int weapon, int ammo = 30, bool setAsCurrent = false)`

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    giveWeapon(source, 24, 50)
    giveWeapon(source, 31, 300, true)
end)
```

#### Zobacz też

- [`takeWeapon`](https://trilogy-hub.com/docs/takeWeapon/)
- [`takeAllWeapons`](https://trilogy-hub.com/docs/takeAllWeapons/)
- [`setWeaponAmmo`](https://trilogy-hub.com/docs/setWeaponAmmo/)

### isWeaponRenderEnabled

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Sprawdza, czy bronie skryptowe są rysowane.

#### Składnia

```lua
bool isWeaponRenderEnabled()
```

#### Zwraca

`true`, jeśli są rysowane.

#### Przykład

```lua
print(isWeaponRenderEnabled())
```

#### Zobacz też

- [`setWeaponRenderEnabled`](https://trilogy-hub.com/docs/setWeaponRenderEnabled/)

### resetWeaponFiringRate

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Przywraca broni skryptowej fabryczną szybkostrzelność (mnożnik `1`).

#### Składnia

```lua
bool resetWeaponFiringRate(weapon weapon)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetWeaponFiringRate(turret)
```

#### Zobacz też

- [`getWeaponFiringRate`](https://trilogy-hub.com/docs/getWeaponFiringRate/)
- [`setWeaponFiringRate`](https://trilogy-hub.com/docs/setWeaponFiringRate/)

### setWeaponAmmo

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Ustawia amunicję. Dla postaci ustawia naboje danej broni, a dla broni skryptowej jej zapas.

#### Składnia

*Postać*

```lua
bool setWeaponAmmo(ped thePed, int weapon, int ammo [, int ammoInClip])
```

*Broń skryptowa*

```lua
bool setWeaponAmmo(weapon theWeapon, int ammo)
```

#### Argumenty

- `thePed` (ped/weapon) - Postać albo broń skryptowa.
- `weapon` (int) - ID broni (dla postaci).
- `ammo` (int) - Liczba naboi.
- `ammoInClip` (int, opcjonalny = nil) - Naboje w magazynku (dla postaci).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWeaponAmmo(player, 31, 500)
setWeaponAmmo(turret, 1000)
```

#### Zobacz też

- [`getWeaponAmmo`](https://trilogy-hub.com/docs/getWeaponAmmo/)

### setWeaponClipAmmo

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Ustawia liczbę naboi w magazynku broni skryptowej.

#### Składnia

```lua
bool setWeaponClipAmmo(weapon weapon, int clipAmmo)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.
- `clipAmmo` (int) - Naboje w magazynku.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWeaponClipAmmo(turret, 30)
```

#### Zobacz też

- [`getWeaponClipAmmo`](https://trilogy-hub.com/docs/getWeaponClipAmmo/)

### setWeaponFiringRate

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Ustawia mnożnik szybkostrzelności broni skryptowej.

#### Składnia

```lua
bool setWeaponFiringRate(weapon weapon, float rate)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.
- `rate` (float) - Mnożnik, `1` to szybkość fabryczna, `2` dwa razy szybciej.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWeaponFiringRate(turret, 2)
```

#### Zobacz też

- [`getWeaponFiringRate`](https://trilogy-hub.com/docs/getWeaponFiringRate/)
- [`resetWeaponFiringRate`](https://trilogy-hub.com/docs/resetWeaponFiringRate/)

### setWeaponFlags

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Ustawia flagę broni skryptowej (nazwa i wartość) albo kilka flag naraz z tabeli.

#### Składnia

```lua
bool setWeaponFlags(weapon weapon, string/table flagOrTable [, mixed value = nil])
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.
- `flagOrTable` (string/table) - Nazwa flagi albo tabela `{ flaga = wartość }`.
- `value` (mixed, opcjonalny = nil) - Wartość flagi, gdy podajesz nazwę.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWeaponFlags(turret, { disable_model = false, shoot_if_out_of_range = true })
```

#### Zobacz też

- [`getWeaponFlags`](https://trilogy-hub.com/docs/getWeaponFlags/)

### setWeaponProperty

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Ustawia właściwość broni (obrażenia, zasięg, celność itd.) dla całego serwera.

#### Składnia

*Z poziomem*

```lua
bool setWeaponProperty(string/int weapon, string skill, string property, mixed value)
```

*Bez poziomu*

```lua
bool setWeaponProperty(string/int weapon, string property, mixed value)
```

#### Argumenty

- `weaponOrId` (string/int) - Nazwa albo ID broni.
- `skillOrProperty` (string) - Poziom (`"poor"`, `"std"`, `"pro"`) albo nazwa właściwości.
- `propertyOrValue` (mixed) - Nazwa właściwości albo wartość.
- `value` (mixed, opcjonalny = nil) - Wartość, gdy podano poziom.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWeaponProperty("deagle", "pro", "damage", 60)
setWeaponProperty(31, "pro", "weapon_range", 120)
```

#### Zobacz też

- [`getWeaponProperty`](https://trilogy-hub.com/docs/getWeaponProperty/)

### setWeaponRenderEnabled

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Włącza albo wyłącza rysowanie broni skryptowych.

#### Składnia

```lua
bool setWeaponRenderEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` rysuje, `false` ukrywa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWeaponRenderEnabled(false)
```

#### Zobacz też

- [`isWeaponRenderEnabled`](https://trilogy-hub.com/docs/isWeaponRenderEnabled/)

### setWeaponState

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Ustawia stan broni skryptowej.

#### Składnia

```lua
bool setWeaponState(weapon weapon, string state)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.
- `state` (string) - `"ready"`, `"firing"` albo `"reloading"`.

#### Zwraca

`true` przy powodzeniu, `false` dla nieznanego stanu.

#### Przykład

```lua
setWeaponState(turret, "firing")
setTimer(setWeaponState, 3000, 1, turret, "ready")
```

#### Zobacz też

- [`getWeaponState`](https://trilogy-hub.com/docs/getWeaponState/)

### setWeaponTarget

*Funkcja · Strona: Serwer · Kategoria: Bronie · Zmodyfikowana względem MTA:SA*

Kieruje broń skryptową w element albo w punkt. Bez celu (`nil`) broń przestaje celować.

#### Składnia

*Element*

```lua
bool setWeaponTarget(weapon theWeapon, element target)
```

*Punkt*

```lua
bool setWeaponTarget(weapon theWeapon, float x, float y, float z)
```

#### Argumenty

- `weapon` (weapon) - Broń skryptowa.
- `targetOrX` (element/float, opcjonalny = nil) - Element celu albo pozycja X.
- `y` (float, opcjonalny = nil) - Pozycja Y (dla punktu).
- `z` (float, opcjonalny = nil) - Pozycja Z (dla punktu).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `setWeaponTarget()`

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    setWeaponTarget(turret, source)
end)
```

#### Zobacz też

- [`getWeaponTarget`](https://trilogy-hub.com/docs/getWeaponTarget/)

### takeAllWeapons

*Funkcja · Strona: Serwer · Kategoria: Bronie · Identyczna z MTA:SA*

Zabiera postaci całą broń.

#### Składnia

```lua
bool takeAllWeapons(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo postać.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerWasted", root, function()
    takeAllWeapons(source)
end)
```

### takeWeapon

*Funkcja · Strona: Serwer · Kategoria: Bronie · Zmodyfikowana względem MTA:SA*

Zabiera postaci jedną broń razem z całą jej amunicją.

#### Składnia

```lua
bool takeWeapon(ped ped, int weapon)
```

#### Argumenty

- `ped` (ped) - Gracz albo postać.
- `weapon` (int) - ID broni.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int ammo`
- W MTA:SA: `takeWeapon(player thePlayer, int weaponId, int ammo)`

#### Przykład

```lua
addEventHandler("onColShapeHit", safeZone, function(el)
    if getElementType(el) == "player" then
        takeWeapon(el, 35)
        takeWeapon(el, 36)
    end
end)
```

### outputServerLog

*Funkcja · Strona: Serwer · Kategoria: Czat i konsola · Identyczna z MTA:SA*

Dopisuje linię do logu serwera (konsola i plik), bez wysyłania do graczy.

#### Składnia

```lua
bool outputServerLog(string message)
```

#### Argumenty

- `message` (string) - Tekst.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputServerLog("[wejście] " .. getPlayerName(source) .. " " .. getPlayerIP(source))
end)
```

#### Zobacz też

- [`outputDebugString`](https://trilogy-hub.com/docs/outputDebugString/)

### createTeam

*Funkcja · Strona: Serwer · Kategoria: Drużyny · Identyczna z MTA:SA*

Tworzy drużynę. Nazwa musi być unikalna. Drużyny grupują graczy, a ich kolor widać na liście graczy i nad głowami.

#### Składnia

```lua
team createTeam(string teamName [, int r = 235, int g = 235, int b = 235])
```

#### Argumenty

- `teamName` (string) - Nazwa drużyny.
- `r` (int, opcjonalny = 235) - Czerwony 0-255.
- `g` (int, opcjonalny = 235) - Zielony 0-255.
- `b` (int, opcjonalny = 235) - Niebieski 0-255.

#### Zwraca

Drużyna albo `false`, gdy nazwa jest pusta lub zajęta.

#### Przykład

Dwie drużyny i przydział nowych graczy do mniejszej.

```lua
local police = createTeam("Policja", 40, 90, 255)
local gang = createTeam("Grove", 30, 200, 60)

addEventHandler("onPlayerJoin", root, function()
    if countPlayersInTeam(police) <= countPlayersInTeam(gang) then
        setPlayerTeam(source, police)
    else
        setPlayerTeam(source, gang)
    end
end)
```

#### Zobacz też

- [`setPlayerTeam`](https://trilogy-hub.com/docs/setPlayerTeam/)
- [`getTeamFromName`](https://trilogy-hub.com/docs/getTeamFromName/)
- [`setTeamFriendlyFire`](https://trilogy-hub.com/docs/setTeamFriendlyFire/)

### getTeamColor

*Funkcja · Strona: Serwer · Kategoria: Drużyny · Identyczna z MTA:SA*

Zwraca kolor drużyny.

#### Składnia

```lua
int getTeamColor(team team)
```

#### Argumenty

- `team` (team) - Drużyna.

#### Zwraca

Trzy liczby r, g, b albo `false`.

#### Przykład

```lua
local team = getPlayerTeam(player)
if team then
    local r, g, b = getTeamColor(team)
    outputChatBox("Witaj w drużynie " .. getTeamName(team), player, r, g, b)
end
```

#### Zobacz też

- [`setTeamColor`](https://trilogy-hub.com/docs/setTeamColor/)

### getTeamFriendlyFire

*Funkcja · Strona: Serwer · Kategoria: Drużyny · Identyczna z MTA:SA*

Sprawdza, czy członkowie drużyny mogą się ranić (domyślnie tak).

#### Składnia

```lua
bool getTeamFriendlyFire(team team)
```

#### Argumenty

- `team` (team) - Drużyna.

#### Zwraca

`true`, jeśli ranienie swoich jest włączone.

#### Przykład

```lua
local team = getTeamFromName("Policja")
outputChatBox("Ogień do swoich: " .. (getTeamFriendlyFire(team) and "tak" or "nie"))
```

#### Zobacz też

- [`setTeamFriendlyFire`](https://trilogy-hub.com/docs/setTeamFriendlyFire/)

### getTeamFromName

*Funkcja · Strona: Serwer · Kategoria: Drużyny · Identyczna z MTA:SA*

Szuka drużyny po dokładnej nazwie.

#### Składnia

```lua
team getTeamFromName(string teamName)
```

#### Argumenty

- `teamName` (string) - Nazwa.

#### Zwraca

Drużyna albo `false`.

#### Przykład

```lua
addCommandHandler("dolacz", function(player, cmd, name)
    local team = name and getTeamFromName(name)
    if not team then
        outputChatBox("Nie ma takiej drużyny.", player, 255, 0, 0)
        return
    end
    setPlayerTeam(player, team)
end)
```

### getTeamName

*Funkcja · Strona: Serwer · Kategoria: Drużyny · Identyczna z MTA:SA*

Zwraca nazwę drużyny.

#### Składnia

```lua
string getTeamName(team team)
```

#### Argumenty

- `team` (team) - Drużyna.

#### Zwraca

Nazwa albo `false`.

#### Przykład

```lua
for _, team in ipairs(getElementsByType("team")) do
    outputChatBox(getTeamName(team) .. ": " .. countPlayersInTeam(team))
end
```

#### Zobacz też

- [`setTeamName`](https://trilogy-hub.com/docs/setTeamName/)

### setTeamColor

*Funkcja · Strona: Serwer · Kategoria: Drużyny · Identyczna z MTA:SA*

Zmienia kolor drużyny. Wartości spoza 0-255 są przycinane.

#### Składnia

```lua
bool setTeamColor(team team, int r, int g, int b)
```

#### Argumenty

- `team` (team) - Drużyna.
- `r` (int) - Czerwony.
- `g` (int) - Zielony.
- `b` (int) - Niebieski.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setTeamColor(getTeamFromName("Policja"), 0, 60, 255)
```

#### Zobacz też

- [`getTeamColor`](https://trilogy-hub.com/docs/getTeamColor/)

### setTeamFriendlyFire

*Funkcja · Strona: Serwer · Kategoria: Drużyny · Identyczna z MTA:SA*

Włącza albo wyłącza ranienie się członków tej samej drużyny.

#### Składnia

```lua
bool setTeamFriendlyFire(team team, bool enabled)
```

#### Argumenty

- `team` (team) - Drużyna.
- `enabled` (bool) - `true` pozwala ranić swoich.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local police = createTeam("Policja", 40, 90, 255)
setTeamFriendlyFire(police, false)
```

#### Zobacz też

- [`getTeamFriendlyFire`](https://trilogy-hub.com/docs/getTeamFriendlyFire/)

### setTeamName

*Funkcja · Strona: Serwer · Kategoria: Drużyny · Tylko Trilogy Hub*

Zmienia nazwę drużyny. Nowa nazwa nie może być pusta ani zajęta.

#### Składnia

```lua
bool setTeamName(team team, string name)
```

#### Argumenty

- `team` (team) - Drużyna.
- `name` (string) - Nowa nazwa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setTeamName(getTeamFromName("Grove"), "Grove Street Families")
```

#### Zobacz też

- [`getTeamName`](https://trilogy-hub.com/docs/getTeamName/)

### addElementDataSubscriber

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zapisuje gracza na zmiany jednej wartości danych elementu. Działa z wartościami ustawionymi w trybie `"subscribe"`: dostają je tylko zapisani gracze, co oszczędza ruch sieciowy.

#### Składnia

```lua
bool addElementDataSubscriber(element theElement, string key, player thePlayer)
```

#### Argumenty

- `theElement` (element) - Element z danymi.
- `key` (string) - Klucz danych.
- `thePlayer` (player) - Gracz, który ma dostawać wartość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Stan konta banku widzi tylko właściciel auta.

```lua
setElementData(vehicle, "fuel", 40, "subscribe")
addElementDataSubscriber(vehicle, "fuel", owner)
```

#### Zobacz też

- [`setElementData`](https://trilogy-hub.com/docs/setElementData/)
- [`removeElementDataSubscriber`](https://trilogy-hub.com/docs/removeElementDataSubscriber/)
- [`hasElementDataSubscriber`](https://trilogy-hub.com/docs/hasElementDataSubscriber/)

### cloneElement

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Tworzy kopię elementu (pojazdu, obiektu, NPC, znacznika itd.) w podanym miejscu.

#### Składnia

```lua
element cloneElement(element theElement [, float xPos = pozycja oryginału, float yPos = pozycja oryginału, float zPos = pozycja oryginału, bool cloneChildren = false])
```

#### Argumenty

- `theElement` (element) - Element do skopiowania.
- `xPos` (float, opcjonalny = pozycja oryginału) - Pozycja X kopii.
- `yPos` (float, opcjonalny = pozycja oryginału) - Pozycja Y kopii.
- `zPos` (float, opcjonalny = pozycja oryginału) - Pozycja Z kopii.
- `cloneChildren` (bool, opcjonalny = false) - Czy kopiować też dzieci.

#### Zwraca

Kopia albo `false`.

#### Przykład

```lua
addCommandHandler("kopia", function(player)
    local veh = getPedOccupiedVehicle(player)
    if veh then
        local x, y, z = getElementPosition(veh)
        cloneElement(veh, x + 5, y, z)
    end
end)
```

### getElementAngularVelocity

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca prędkość obrotu elementu wokół osi X, Y i Z.

#### Składnia

```lua
float getElementAngularVelocity(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

rx, ry, rz albo `false`.

#### Przykład

```lua
local rx, ry, rz = getElementAngularVelocity(vehicle)
if math.abs(rz) > 0.2 then
    outputChatBox("Kręcisz bączki!", getVehicleOccupant(vehicle))
end
```

#### Zobacz też

- [`setElementAngularVelocity`](https://trilogy-hub.com/docs/setElementAngularVelocity/)

### getElementBoneAttachmentDetails

*Funkcja · Strona: Serwer · Kategoria: Elementy · Tylko Trilogy Hub*

To samo co `getElementBoneAttachment` (inna nazwa dla zgodności ze skryptami).

#### Składnia

```lua
mixed getElementBoneAttachmentDetails(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

ped, kość, x, y, z, rx, ry, rz, follow albo `false`.

#### Przykład

```lua
local ped, bone = getElementBoneAttachmentDetails(box)
```

#### Zobacz też

- [`getElementBoneAttachment`](https://trilogy-hub.com/docs/getElementBoneAttachment/)

### getElementByIndex

*Funkcja · Strona: Serwer · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zwraca n-ty element danego typu (od 0).

#### Składnia

```lua
element getElementByIndex(string theType, int index)
```

#### Argumenty

- `theType` (string) - Typ elementu.
- `index` (int) - Indeks od 0.

#### Zwraca

Element albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `getElementByIndex(string theType, int index = 0)`

#### Przykład

```lua
local first = getElementByIndex("player", 0)
```

### getElementChild

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca n-te dziecko elementu (od 0).

#### Składnia

```lua
element getElementChild(element parent, int index)
```

#### Argumenty

- `parent` (element) - Rodzic.
- `index` (int) - Indeks od 0.

#### Zwraca

Dziecko albo `false`.

#### Przykład

```lua
local first = getElementChild(resourceRoot, 0)
```

### getElementChildren

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca dzieci elementu w drzewie, opcjonalnie tylko danego typu.

#### Składnia

```lua
table getElementChildren(element parent [, string theType = nil])
```

#### Argumenty

- `parent` (element) - Rodzic.
- `theType` (string, opcjonalny = nil) - Typ dzieci.

#### Zwraca

Tablica elementów.

#### Przykład

```lua
local vehicles = getElementChildren(resourceRoot, "vehicle")
outputServerLog("Ten zasób ma " .. #vehicles .. " pojazdów")
```

#### Zobacz też

- [`getElementParent`](https://trilogy-hub.com/docs/getElementParent/)
- [`getElementsByType`](https://trilogy-hub.com/docs/getElementsByType/)

### getElementChildrenCount

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca liczbę dzieci elementu.

#### Składnia

```lua
int getElementChildrenCount(element parent)
```

#### Argumenty

- `parent` (element) - Rodzic.

#### Zwraca

Liczba dzieci.

#### Przykład

```lua
outputServerLog(getElementChildrenCount(resourceRoot))
```

### getElementColShape

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca strefę kolizji przypisaną do znacznika albo pickupa.

#### Składnia

```lua
colshape getElementColShape(element theElement)
```

#### Argumenty

- `theElement` (element) - Znacznik albo pickup.

#### Zwraca

Strefa albo `false`.

#### Przykład

```lua
local shape = getElementColShape(marker)
if shape then
    outputServerLog("W znaczniku: " .. #getElementsWithinColShape(shape, "player"))
end
```

#### Zobacz też

- [`setElementColShape`](https://trilogy-hub.com/docs/setElementColShape/)

### getElementDataSubscribers

*Funkcja · Strona: Serwer · Kategoria: Elementy · Tylko Trilogy Hub*

Zwraca graczy zapisanych na wartość danych elementu.

#### Składnia

```lua
table getElementDataSubscribers(element theElement, string key)
```

#### Argumenty

- `theElement` (element) - Element.
- `key` (string) - Klucz.

#### Zwraca

Tablica graczy.

#### Przykład

```lua
for _, p in ipairs(getElementDataSubscribers(vehicle, "fuel")) do
    outputChatBox("Widzisz paliwo tego auta.", p)
end
```

### getElementParent

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca rodzica elementu w drzewie elementów.

#### Składnia

```lua
element getElementParent(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Rodzic albo `false`.

#### Przykład

```lua
if getElementParent(vehicle) == resourceRoot then
    outputServerLog("Auto stworzył ten zasób")
end
```

#### Zobacz też

- [`setElementParent`](https://trilogy-hub.com/docs/setElementParent/)
- [`getElementChildren`](https://trilogy-hub.com/docs/getElementChildren/)

### getElementSyncer

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca gracza, który liczy fizykę elementu (pojazdu, obiektu, NPC) i wysyła jego stan do innych.

#### Składnia

```lua
player getElementSyncer(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Gracz albo `false`.

#### Przykład

```lua
local syncer = getElementSyncer(vehicle)
outputServerLog("Auto liczy: " .. (syncer and getPlayerName(syncer) or "nikt"))
```

#### Zobacz też

- [`setElementSyncer`](https://trilogy-hub.com/docs/setElementSyncer/)
- [`onElementStartSync`](https://trilogy-hub.com/docs/onElementStartSync/)
- [`isElementSyncer`](https://trilogy-hub.com/docs/isElementSyncer/)

### getElementZoneName

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca nazwę strefy mapy, w której stoi element (np. „Ganton”), albo samego miasta.

#### Składnia

```lua
string getElementZoneName(element theElement [, bool citiesOnly = false])
```

#### Argumenty

- `theElement` (element) - Element.
- `citiesOnly` (bool, opcjonalny = false) - `true` zwraca tylko miasto.

#### Zwraca

Nazwa strefy.

#### Przykład

```lua
addCommandHandler("gdzie", function(player)
    outputChatBox("Jesteś w: " .. getElementZoneName(player) .. ", " .. getElementZoneName(player, true), player)
end)
```

#### Zobacz też

- [`getZoneName`](https://trilogy-hub.com/docs/getZoneName/)

### hasElementDataSubscriber

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy gracz jest zapisany na wartość danych elementu.

#### Składnia

```lua
bool hasElementDataSubscriber(element theElement, string key, player thePlayer)
```

#### Argumenty

- `theElement` (element) - Element.
- `key` (string) - Klucz.
- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli zapisany.

#### Przykład

```lua
if not hasElementDataSubscriber(vehicle, "fuel", player) then
    addElementDataSubscriber(vehicle, "fuel", player)
end
```

### isElementCallPropagationEnabled

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy wywołania funkcji na elemencie przechodzą na jego dzieci (domyślnie tak).

#### Składnia

```lua
bool isElementCallPropagationEnabled(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli propagacja jest włączona.

#### Przykład

```lua
outputServerLog(tostring(isElementCallPropagationEnabled(resourceRoot)))
```

#### Zobacz też

- [`setElementCallPropagationEnabled`](https://trilogy-hub.com/docs/setElementCallPropagationEnabled/)

### isElementDoubleSided

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy ścianki modelu elementu są rysowane z obu stron.

#### Składnia

```lua
bool isElementDoubleSided(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli obustronne.

#### Przykład

```lua
outputServerLog(tostring(isElementDoubleSided(object)))
```

#### Zobacz też

- [`setElementDoubleSided`](https://trilogy-hub.com/docs/setElementDoubleSided/)

### isElementLowLOD

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest obiektem niskiego LOD (uproszczony model widoczny z daleka).

#### Składnia

```lua
bool isElementLowLOD(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true` dla obiektu LOD.

#### Przykład

```lua
outputServerLog(tostring(isElementLowLOD(object)))
```

#### Zobacz też

- [`setElementLowLOD`](https://trilogy-hub.com/docs/setElementLowLOD/)
- [`setLowLODElement`](https://trilogy-hub.com/docs/setLowLODElement/)

### isElementOnFire

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element się pali.

#### Składnia

```lua
bool isElementOnFire(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli się pali.

#### Przykład

```lua
if isElementOnFire(player) then
    setElementOnFire(player, false)
end
```

#### Zobacz też

- [`setElementOnFire`](https://trilogy-hub.com/docs/setElementOnFire/)

### isElementVisibleTo

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest widoczny dla gracza (zob. `setElementVisibleTo`).

#### Składnia

```lua
bool isElementVisibleTo(element theElement, element visibleTo)
```

#### Argumenty

- `theElement` (element) - Element.
- `visibleTo` (element) - Gracz albo inny element.

#### Zwraca

`true`, jeśli widoczny.

#### Przykład

```lua
if not isElementVisibleTo(blip, player) then
    setElementVisibleTo(blip, player, true)
end
```

#### Zobacz też

- [`setElementVisibleTo`](https://trilogy-hub.com/docs/setElementVisibleTo/)

### removeElementDataSubscriber

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Wypisuje gracza z odbiorców wartości danych elementu.

#### Składnia

```lua
bool removeElementDataSubscriber(element theElement, string key, player thePlayer)
```

#### Argumenty

- `theElement` (element) - Element.
- `key` (string) - Klucz.
- `thePlayer` (player) - Gracz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onVehicleExit", root, function(player)
    removeElementDataSubscriber(source, "fuel", player)
end)
```

#### Zobacz też

- [`addElementDataSubscriber`](https://trilogy-hub.com/docs/addElementDataSubscriber/)

### setElementAngularVelocity

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Ustawia prędkość obrotu elementu wokół osi X, Y i Z.

#### Składnia

```lua
bool setElementAngularVelocity(element theElement, float rx, float ry, float rz)
```

#### Argumenty

- `theElement` (element) - Element.
- `rx` (float) - Obrót wokół X.
- `ry` (float) - Obrót wokół Y.
- `rz` (float) - Obrót wokół Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementAngularVelocity(vehicle, 0, 0, 0.5)
```

#### Zobacz też

- [`getElementAngularVelocity`](https://trilogy-hub.com/docs/getElementAngularVelocity/)

### setElementCallPropagationEnabled

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Włącza albo wyłącza przekazywanie wywołań funkcji z elementu na jego dzieci.

#### Składnia

```lua
bool setElementCallPropagationEnabled(element theElement, bool enabled)
```

#### Argumenty

- `theElement` (element) - Element.
- `enabled` (bool) - `false` wyłącza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementCallPropagationEnabled(group, false)
```

#### Zobacz też

- [`isElementCallPropagationEnabled`](https://trilogy-hub.com/docs/isElementCallPropagationEnabled/)

### setElementColShape

*Funkcja · Strona: Serwer · Kategoria: Elementy · Tylko Trilogy Hub*

Przypisuje strefę kolizji do znacznika albo pickupa. `nil` usuwa przypisanie.

#### Składnia

```lua
bool setElementColShape(element theElement, colshape theShape)
```

#### Argumenty

- `theElement` (element) - Znacznik albo pickup.
- `theShape` (colshape) - Strefa albo `nil`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local shape = createColCircle(1500, -1600, 5)
setElementColShape(marker, shape)
```

#### Zobacz też

- [`getElementColShape`](https://trilogy-hub.com/docs/getElementColShape/)

### setElementDoubleSided

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Włącza rysowanie ścianek modelu z obu stron.

#### Składnia

```lua
bool setElementDoubleSided(element theElement, bool enable)
```

#### Argumenty

- `theElement` (element) - Element.
- `enable` (bool) - `true` włącza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementDoubleSided(wall, true)
```

#### Zobacz też

- [`isElementDoubleSided`](https://trilogy-hub.com/docs/isElementDoubleSided/)

### setElementLowLOD

*Funkcja · Strona: Serwer · Kategoria: Elementy · Tylko Trilogy Hub*

Oznacza obiekt jako model niskiego LOD.

#### Składnia

```lua
bool setElementLowLOD(element theElement, bool enabled)
```

#### Argumenty

- `theElement` (element) - Obiekt.
- `enabled` (bool) - `true` oznacza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local lod = createObject(4000, 1500, -1600, 13, 0, 0, 0, true)
setElementLowLOD(lod, true)
```

#### Zobacz też

- [`setLowLODElement`](https://trilogy-hub.com/docs/setLowLODElement/)
- [`isElementLowLOD`](https://trilogy-hub.com/docs/isElementLowLOD/)

### setElementOnFire

*Funkcja · Strona: Serwer · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Podpala albo gasi element. Z czasem w milisekundach ogień sam zgaśnie.

#### Składnia

```lua
bool setElementOnFire(element theElement, bool burning [, int duration = bez limitu])
```

#### Argumenty

- `theElement` (element) - Element.
- `burning` (bool) - `true` podpala.
- `duration` (int, opcjonalny = bez limitu) - Czas w milisekundach.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setElementOnFire(element theElement, bool isOnFire)`

#### Przykład

```lua
setElementOnFire(player, true, 5000)
```

#### Zobacz też

- [`isElementOnFire`](https://trilogy-hub.com/docs/isElementOnFire/)

### setElementParent

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Zmienia rodzica elementu w drzewie. Usunięcie rodzica usuwa też dzieci.

#### Składnia

```lua
bool setElementParent(element theElement, element parent)
```

#### Argumenty

- `theElement` (element) - Element.
- `parent` (element) - Nowy rodzic.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local race = createElement("race")
for i = 1, 5 do
    local cp = createMarker(i * 50, 0, 3, "checkpoint")
    setElementParent(cp, race)
end
destroyElement(race)
```

#### Zobacz też

- [`getElementParent`](https://trilogy-hub.com/docs/getElementParent/)

### setElementRadius

*Funkcja · Strona: Serwer · Kategoria: Elementy · Tylko Trilogy Hub*

Ustawia promień bryły elementu używany w zapytaniach o geometrię (np. linie wzroku, strefy).

#### Składnia

```lua
bool setElementRadius(element theElement, float radius)
```

#### Argumenty

- `theElement` (element) - Element.
- `radius` (float) - Promień w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementRadius(bigObject, 12)
```

#### Zobacz też

- [`getElementRadius`](https://trilogy-hub.com/docs/getElementRadius/)

### setElementSyncer

*Funkcja · Strona: Serwer · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Wskazuje gracza, który ma liczyć fizykę elementu. `true` albo `nil` przywraca wybór automatyczny.

#### Składnia

```lua
bool setElementSyncer(element theElement, player thePlayer)
```

#### Argumenty

- `theElement` (element) - Element.
- `thePlayer` (player) - Gracz albo `true`/`nil`.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool persist = false`
- W MTA:SA: `setElementSyncer(element theElement, player thePlayer, bool persist = false)`

#### Przykład

```lua
setElementSyncer(trailer, driver)
```

#### Zobacz też

- [`getElementSyncer`](https://trilogy-hub.com/docs/getElementSyncer/)
- [`isElementSyncer`](https://trilogy-hub.com/docs/isElementSyncer/)

### setElementVisibleTo

*Funkcja · Strona: Serwer · Kategoria: Elementy · Identyczna z MTA:SA*

Pokazuje albo chowa element wybranemu graczowi. Dotyczy blipów, znaczników, wyświetlaczy tekstu i podobnych.

#### Składnia

```lua
bool setElementVisibleTo(element theElement, element visibleTo, bool visible)
```

#### Argumenty

- `theElement` (element) - Element.
- `visibleTo` (element) - Gracz albo `root`.
- `visible` (bool) - `true` pokazuje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Znacznik widoczny tylko dla jednego gracza.

```lua
local marker = createMarker(2000, -1500, 13, "checkpoint")
setElementVisibleTo(marker, root, false)
setElementVisibleTo(marker, player, true)
```

#### Zobacz też

- [`isElementVisibleTo`](https://trilogy-hub.com/docs/isElementVisibleTo/)
- [`clearElementVisibleTo`](https://trilogy-hub.com/docs/clearElementVisibleTo/)

### countPlayersInTeam

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca liczbę graczy w drużynie.

#### Składnia

```lua
int countPlayersInTeam(team theTeam)
```

#### Argumenty

- `theTeam` (team) - Drużyna.

#### Zwraca

Liczba graczy albo `false`.

#### Przykład

```lua
for _, team in ipairs(getElementsByType("team")) do
    outputChatBox(getTeamName(team) .. ": " .. countPlayersInTeam(team) .. " graczy")
end
```

#### Zobacz też

- [`getPlayersInTeam`](https://trilogy-hub.com/docs/getPlayersInTeam/)
- [`createTeam`](https://trilogy-hub.com/docs/createTeam/)

### forcePlayerMap

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Wymusza otwarcie mapy u gracza (albo u wszystkich: `root`).

#### Składnia

```lua
bool forcePlayerMap(player thePlayer, bool forceOn)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root`.
- `forceOn` (bool) - `true` wymusza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
forcePlayerMap(player, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Serwer zapamiętuje to ustawienie i zwraca je w `isPlayerMapForced`; sama gra jeszcze go nie stosuje.

#### Zobacz też

- [`isPlayerMapForced`](https://trilogy-hub.com/docs/isPlayerMapForced/)

### getAlivePlayers

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca graczy, którzy żyją i są w świecie.

#### Składnia

```lua
table getAlivePlayers()
```

#### Zwraca

Tablica graczy.

#### Przykład

```lua
addCommandHandler("zywi", function(player)
    outputChatBox("Żywych graczy: " .. #getAlivePlayers(), player)
end)
```

#### Zobacz też

- [`getDeadPlayers`](https://trilogy-hub.com/docs/getDeadPlayers/)

### getDeadPlayers

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca graczy, którzy nie żyją albo jeszcze się nie odrodzili.

#### Składnia

```lua
table getDeadPlayers()
```

#### Zwraca

Tablica graczy.

#### Przykład

```lua
setTimer(function()
    for _, p in ipairs(getDeadPlayers()) do
        spawnPlayer(p, 2495, -1687, 13.5)
    end
end, 10000, 0)
```

### getHudComponentNames

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca nazwy składników interfejsu gry, które można chować osobno: `ammo`, `armour` (albo `armor`), `breath`, `clock`, `health`, `money`, `weapon`, `wanted`, `area_name`, `vehicle_name`, `radio`, `radar`, `all`.

#### Składnia

```lua
table getHudComponentNames()
```

#### Zwraca

Tablica nazw.

#### Przykład

```lua
for _, name in ipairs(getHudComponentNames()) do
    outputServerLog(name)
end
```

#### Zobacz też

- [`setPlayerHudComponentVisible`](https://trilogy-hub.com/docs/setPlayerHudComponentVisible/)

### getPlayerAccount

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca konto gracza. Gdy gracz nie jest zalogowany, zwraca konto gościa.

#### Składnia

```lua
account getPlayerAccount(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Konto.

#### Przykład

```lua
addCommandHandler("konto", function(player)
    local acc = getPlayerAccount(player)
    if isGuestAccount(acc) then
        outputChatBox("Nie jesteś zalogowany.", player)
    else
        outputChatBox("Konto: " .. getAccountName(acc), player)
    end
end)
```

#### Zobacz też

- [`isGuestAccount`](https://trilogy-hub.com/docs/isGuestAccount/)
- [`logIn`](https://trilogy-hub.com/docs/logIn/)
- [`getAccountData`](https://trilogy-hub.com/docs/getAccountData/)

### getPlayerACInfo

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca ostatnie informacje antycheata zgłoszone przez klienta przy wejściu.

#### Składnia

```lua
table getPlayerACInfo(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Tablica z polami jak w `onPlayerACInfo`.

#### Przykład

```lua
local info = getPlayerACInfo(player)
outputServerLog(getPlayerName(player) .. ": " .. toJSON(info))
```

#### Zobacz też

- [`onPlayerACInfo`](https://trilogy-hub.com/docs/onPlayerACInfo/)

### getPlayerACRisk

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca poziom ryzyka gracza z ochrony przed cheatami (Trilogy Protect): tabelę z polami `points` (punkty ryzyka), `violations` (liczba wykrytych naruszeń) i `byRule` (liczba naruszeń dla każdej reguły). Tylko do odczytu: skrypt może na tej podstawie np. powiadomić administrację, ale nie wpływa na kicki i bany ochrony.

#### Składnia

```lua
table getPlayerACRisk(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Tabela ryzyka albo `false`.

#### Przykład

```lua
setTimer(function()
    for _, p in ipairs(getElementsByType("player")) do
        local risk = getPlayerACRisk(p)
        if risk and risk.violations > 0 then
            outputServerLog(getPlayerName(p) .. ": naruszeń " .. risk.violations)
        end
    end
end, 60000, 0)
```

#### Zobacz też

- [`setPlayerACExempt`](https://trilogy-hub.com/docs/setPlayerACExempt/)
- [`isPlayerACExempt`](https://trilogy-hub.com/docs/isPlayerACExempt/)

### getPlayerAdminLevel

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca poziom gracza z `admins.xml`: `"player"`, `"moderator"`, `"admin"` albo `"owner"`.

#### Składnia

```lua
string getPlayerAdminLevel(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Poziom.

#### Przykład

```lua
addCommandHandler("ogloszenie", function(player, cmd, ...)
    local level = getPlayerAdminLevel(player)
    if level ~= "admin" and level ~= "owner" then return end
    outputChatBox("[OGŁOSZENIE] " .. table.concat({ ... }, " "), root, 255, 80, 80)
end)
```

#### Zobacz też

- [`hasObjectPermissionTo`](https://trilogy-hub.com/docs/hasObjectPermissionTo/)

### getPlayerAnnounceValue

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca wartość ogłaszaną dla gracza (np. na liście serwerów).

#### Składnia

```lua
string getPlayerAnnounceValue(player thePlayer, string key)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `key` (string) - Klucz.

#### Zwraca

Wartość albo `false`.

#### Przykład

```lua
outputServerLog(tostring(getPlayerAnnounceValue(player, "score")))
```

#### Zobacz też

- [`setPlayerAnnounceValue`](https://trilogy-hub.com/docs/setPlayerAnnounceValue/)

### getPlayerArmour

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca pancerz gracza (0-100).

#### Składnia

```lua
float getPlayerArmour(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Pancerz.

#### Przykład

```lua
addCommandHandler("pancerz", function(player)
    outputChatBox(("Pancerz: %.0f"):format(getPlayerArmour(player)), player)
end)
```

#### Zobacz też

- [`setPlayerArmour`](https://trilogy-hub.com/docs/setPlayerArmour/)

### getPlayerBlurLevel

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca poziom rozmycia ruchu ustawiony graczowi (0-255, domyślnie 36).

#### Składnia

```lua
int getPlayerBlurLevel(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Poziom.

#### Przykład

```lua
outputChatBox("Rozmycie: " .. getPlayerBlurLevel(player), player)
```

#### Zobacz też

- [`setPlayerBlurLevel`](https://trilogy-hub.com/docs/setPlayerBlurLevel/)

### getPlayerCount

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca liczbę graczy na serwerze.

#### Składnia

```lua
int getPlayerCount()
```

#### Zwraca

Liczba graczy.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputChatBox("Graczy online: " .. getPlayerCount())
end)
```

#### Zobacz też

- [`getPlayers`](https://trilogy-hub.com/docs/getPlayers/)
- [`getMaxPlayers`](https://trilogy-hub.com/docs/getMaxPlayers/)

### getPlayerHudComponentProperty

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Zwraca właściwość wyglądu składnika interfejsu ustawioną przez `setPlayerHudComponentProperty`.

#### Składnia

```lua
mixed getPlayerHudComponentProperty(player thePlayer, string component, string property)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `component` (string) - Składnik, np. `"radar"`.
- `property` (string) - Właściwość, np. `"posX"`.

#### Zwraca

Wartość albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `getPlayerHudComponentProperty(string component, string property)`

#### Przykład

```lua
local x = getPlayerHudComponentProperty(player, "radar", "posX")
```

#### Zobacz też

- [`setPlayerHudComponentProperty`](https://trilogy-hub.com/docs/setPlayerHudComponentProperty/)
- [`resetPlayerHudComponentProperty`](https://trilogy-hub.com/docs/resetPlayerHudComponentProperty/)

### getPlayerIdleTime

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca, ile milisekund gracz nic nie robi (nie rusza się ani nie naciska klawiszy).

#### Składnia

```lua
int getPlayerIdleTime(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Czas w ms albo `false`.

#### Przykład

Wyrzucanie graczy AFK po 10 minutach.

```lua
setTimer(function()
    for _, p in ipairs(getElementsByType("player")) do
        if (getPlayerIdleTime(p) or 0) > 10 * 60 * 1000 then
            kickPlayer(p, "AFK")
        end
    end
end, 60000, 0)
```

### getPlayerIP

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca adres IP gracza.

#### Składnia

```lua
string getPlayerIP(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Adres IP albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputServerLog(getPlayerName(source) .. " wszedł z " .. getPlayerIP(source))
end)
```

### getPlayerLocalization

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca język gracza wybrany w launcherze (ten sam, który klient widzi w `getLocalization`). Przydaje się do wysyłania komunikatów każdemu w jego języku. Gracz ze starszym klientem dostaje polski.

#### Składnia

```lua
table getPlayerLocalization(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`{ code, name }`, np. `{ code = "de", name = "Deutsch" }`; `false` przy złym argumencie.

#### Przykład

```lua
local HELLO = { pl = "Witaj!", en = "Welcome!", de = "Willkommen!" }
addEventHandler("onPlayerJoin", root, function()
    local lang = getPlayerLocalization(source)
    outputChatBox(HELLO[lang.code] or HELLO.en, source)
end)
```

#### Zobacz też

- [`getLocalization`](https://trilogy-hub.com/docs/getLocalization/)
- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)

### getPlayerMapBoundingBox

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Zwraca prostokąt świata widoczny na otwartej mapie gracza.

#### Składnia

```lua
float getPlayerMapBoundingBox(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

minX, maxX, minY, maxY albo `false`, gdy mapa jest zamknięta.

#### Różnice względem MTA:SA

- W MTA:SA: `getPlayerMapBoundingBox()`

#### Przykład

```lua
local x0, x1, y0, y1 = getPlayerMapBoundingBox(player)
if x0 then
    outputServerLog(("Mapa: %.0f..%.0f, %.0f..%.0f"):format(x0, x1, y0, y1))
end
```

#### Zobacz też

- [`isPlayerMapVisible`](https://trilogy-hub.com/docs/isPlayerMapVisible/)

### getPlayerMapOpacity

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Zwraca krycie mapy gracza (0-255).

#### Składnia

```lua
int getPlayerMapOpacity(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Krycie.

#### Różnice względem MTA:SA

- W MTA:SA: `getPlayerMapOpacity()`

#### Przykład

```lua
outputServerLog(getPlayerMapOpacity(player))
```

#### Zobacz też

- [`setPlayerMapOpacity`](https://trilogy-hub.com/docs/setPlayerMapOpacity/)

### getPlayerNametagColor

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca kolor tabliczki z nickiem nad głową gracza.

#### Składnia

```lua
int getPlayerNametagColor(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

r, g, b albo `false`.

#### Przykład

```lua
local r, g, b = getPlayerNametagColor(player)
outputChatBox(getPlayerName(player) .. ": cześć!", root, r, g, b)
```

#### Zobacz też

- [`setPlayerNametagColor`](https://trilogy-hub.com/docs/setPlayerNametagColor/)

### getPlayerNametagStyle

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca wygląd tabliczek ustawiony graczowi przez `setPlayerNametagStyle` (tabela z polami `enabled`, `distance`, `showDistance`, `scale`, `color`, `background`).

#### Składnia

```lua
table getPlayerNametagStyle(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Styl albo `false` dla złego argumentu.

#### Przykład

```lua
local style = getPlayerNametagStyle(player)
outputChatBox("Tabliczki do " .. style.distance .. " m", player)
```

#### Zobacz też

- [`setPlayerNametagStyle`](https://trilogy-hub.com/docs/setPlayerNametagStyle/)

### getPlayersByData

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca graczy, których wartość danych pod kluczem jest równa podanej.

#### Składnia

```lua
table getPlayersByData(string key, mixed value)
```

#### Argumenty

- `key` (string) - Klucz danych.
- `value` (mixed) - Szukana wartość.

#### Zwraca

Tablica graczy.

#### Przykład

```lua
for _, cop in ipairs(getPlayersByData("job", "police")) do
    outputChatBox("Napad na bank!", cop, 255, 0, 0)
end
```

### getPlayerScriptDebugLevel

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca poziom komunikatów debugowania skryptów, które gracz widzi (0-3).

#### Składnia

```lua
int getPlayerScriptDebugLevel(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Poziom.

#### Przykład

```lua
outputChatBox("Debug: " .. getPlayerScriptDebugLevel(player), player)
```

#### Zobacz też

- [`setPlayerScriptDebugLevel`](https://trilogy-hub.com/docs/setPlayerScriptDebugLevel/)

### getPlayerSerial

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca Client ID gracza: stały identyfikator urządzenia, którego nie da się podrobić. Służy do banów i wiązania kont.

#### Składnia

```lua
string getPlayerSerial(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Client ID albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputServerLog(getPlayerName(source) .. " ID: " .. getPlayerSerial(source))
end)
```

#### Zobacz też

- [`addBan`](https://trilogy-hub.com/docs/addBan/)
- [`getBans`](https://trilogy-hub.com/docs/getBans/)

### getPlayersInTeam

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca graczy w drużynie.

#### Składnia

```lua
table getPlayersInTeam(team theTeam)
```

#### Argumenty

- `theTeam` (team) - Drużyna.

#### Zwraca

Tablica graczy.

#### Przykład

```lua
local police = getTeamFromName("Policja")
for _, cop in ipairs(getPlayersInTeam(police)) do
    outputChatBox("Zgłoszenie: kradzież auta w Ganton", cop)
end
```

### getPlayerTeam

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca drużynę gracza.

#### Składnia

```lua
team getPlayerTeam(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Drużyna albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerDamage", root, function(attacker)
    if attacker and getElementType(attacker) == "player" and getPlayerTeam(attacker) == getPlayerTeam(source) then
        outputChatBox("Nie strzelaj do swoich!", attacker, 255, 0, 0)
    end
end)
```

#### Zobacz też

- [`setPlayerTeam`](https://trilogy-hub.com/docs/setPlayerTeam/)

### getPlayerVersion

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca wersję klienta gracza.

#### Składnia

```lua
string getPlayerVersion(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Wersja.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputServerLog(getPlayerName(source) .. " gra na " .. getPlayerVersion(source))
end)
```

### getPlayerVoiceBroadcastTo

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca listę odbiorców głosu gracza.

#### Składnia

```lua
table getPlayerVoiceBroadcastTo(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Lista elementów albo `{ "all" }`.

#### Przykład

```lua
local list = getPlayerVoiceBroadcastTo(player)
```

#### Zobacz też

- [`setPlayerVoiceBroadcastTo`](https://trilogy-hub.com/docs/setPlayerVoiceBroadcastTo/)

### getPlayerVoiceChannel

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca kanał głosowy gracza ustawiony przez `setPlayerVoiceChannel`.

#### Składnia

```lua
string getPlayerVoiceChannel(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Nazwa kanału albo `false`, gdy gracz nie ma kanału.

#### Przykład

```lua
local channel = getPlayerVoiceChannel(player)
if channel then outputChatBox("Twój kanał: " .. channel, player) end
```

#### Zobacz też

- [`setPlayerVoiceChannel`](https://trilogy-hub.com/docs/setPlayerVoiceChannel/)

### getPlayerVoiceIgnoreFrom

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca listę graczy, których ten gracz nie słyszy (ustawioną przez `setPlayerVoiceIgnoreFrom`).

#### Składnia

```lua
table getPlayerVoiceIgnoreFrom(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Lista graczy (pusta, gdy słyszy wszystkich).

#### Przykład

```lua
outputChatBox("Nie słyszysz: " .. #getPlayerVoiceIgnoreFrom(player) .. " graczy", player)
```

#### Zobacz też

- [`setPlayerVoiceIgnoreFrom`](https://trilogy-hub.com/docs/setPlayerVoiceIgnoreFrom/)

### getRandomPlayer

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca losowego gracza z serwera.

#### Składnia

```lua
player getRandomPlayer()
```

#### Zwraca

Gracz albo `false`, gdy nikogo nie ma.

#### Przykład

```lua
setTimer(function()
    local lucky = getRandomPlayer()
    if lucky then
        givePlayerMoney(lucky, 1000)
        outputChatBox(getPlayerName(lucky) .. " wygrał $1000 w loterii!")
    end
end, 600000, 0)
```

### givePlayerMoney

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Dodaje graczowi pieniądze.

#### Składnia

```lua
bool givePlayerMoney(player thePlayer, int amount)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `amount` (int) - Kwota.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerWasted", root, function(ammo, killer)
    if killer and killer ~= source and getElementType(killer) == "player" then
        givePlayerMoney(killer, 250)
    end
end)
```

### isPlayerACExempt

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz jest zwolniony z wykrywania cheatów przez `setPlayerACExempt`.

#### Składnia

```lua
bool isPlayerACExempt(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, gdy zwolniony.

#### Przykład

```lua
outputServerLog(getPlayerName(player) .. " zwolniony: " .. tostring(isPlayerACExempt(player)))
```

#### Zobacz też

- [`setPlayerACExempt`](https://trilogy-hub.com/docs/setPlayerACExempt/)

### isPlayerConnected

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz jest wciąż na serwerze. Przydaje się w opóźnionych funkcjach.

#### Składnia

```lua
bool isPlayerConnected(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli połączony.

#### Przykład

```lua
setTimer(function()
    if isPlayerConnected(player) then
        outputChatBox("Minęła minuta.", player)
    end
end, 60000, 1)
```

### isPlayerCrosshairVisible

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Sprawdza, czy gracz ma widoczny celownik. Celownika gra nie pozwala schować osobno, więc jest widoczny, dopóki widoczny jest cały HUD (`"all"`).

#### Składnia

```lua
bool isPlayerCrosshairVisible(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli widoczny.

#### Różnice względem MTA:SA

- W MTA:SA: `isPlayerCrosshairVisible()`

#### Przykład

```lua
outputServerLog(tostring(isPlayerCrosshairVisible(player)))
```

### isPlayerInWorld

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz trafił już do świata (po pierwszym odrodzeniu).

#### Składnia

```lua
bool isPlayerInWorld(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true` po pierwszym odrodzeniu.

#### Przykład

```lua
for _, p in ipairs(getPlayers()) do
    if isPlayerInWorld(p) then
        outputChatBox("Wydarzenie zaczyna się!", p)
    end
end
```

#### Zobacz też

- [`isPlayerLoading`](https://trilogy-hub.com/docs/isPlayerLoading/)

### isPlayerLoading

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca `true`, dopóki gracz nie trafił pierwszy raz do świata. Po pierwszym odrodzeniu na stałe `false`. W odróżnieniu od `isPlayerSpawned` nie wraca do `true` po śmierci.

#### Składnia

```lua
bool isPlayerLoading(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true` w trakcie ładowania.

#### Przykład

```lua
addCommandHandler("zapros", function(player, cmd, name)
    local target = name and getPlayerFromName(name)
    if target and isPlayerLoading(target) then
        outputChatBox("Gracz jeszcze się ładuje.", player)
    end
end)
```

#### Zobacz też

- [`isPlayerInWorld`](https://trilogy-hub.com/docs/isPlayerInWorld/)
- [`isPlayerSpawned`](https://trilogy-hub.com/docs/isPlayerSpawned/)

### isPlayerMapEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz może otworzyć mapę.

#### Składnia

```lua
bool isPlayerMapEnabled(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli może.

#### Przykład

```lua
outputServerLog(tostring(isPlayerMapEnabled(player)))
```

#### Zobacz też

- [`setPlayerMapEnabled`](https://trilogy-hub.com/docs/setPlayerMapEnabled/)

### isPlayerMapForced

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Sprawdza, czy mapa jest graczowi wymuszona przez `forcePlayerMap`.

#### Składnia

```lua
bool isPlayerMapForced(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli wymuszona.

#### Przykład

```lua
if isPlayerMapForced(player) then forcePlayerMap(player, false) end
```

### isPlayerMapVisible

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Sprawdza, czy gracz ma teraz otwartą mapę.

#### Składnia

```lua
bool isPlayerMapVisible(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli otwarta.

#### Różnice względem MTA:SA

- W MTA:SA: `isPlayerMapVisible()`

#### Przykład

```lua
if isPlayerMapVisible(player) then
    outputChatBox("Zamknij mapę, żeby kontynuować.", player)
end
```

### isPlayerMuted

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Sprawdza, czy gracz jest wyciszony na czacie.

#### Składnia

```lua
bool isPlayerMuted(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli wyciszony.

#### Przykład

```lua
addEventHandler("onPlayerChat", root, function()
    if isPlayerMuted(source) then
        outputChatBox("Jesteś wyciszony.", source, 255, 0, 0)
    end
end)
```

#### Zobacz też

- [`setPlayerMuted`](https://trilogy-hub.com/docs/setPlayerMuted/)

### isPlayerRadioEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz ma włączone radio gry w pojeździe.

#### Składnia

```lua
bool isPlayerRadioEnabled(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli włączone.

#### Przykład

```lua
outputServerLog(tostring(isPlayerRadioEnabled(player)))
```

#### Zobacz też

- [`setPlayerRadioEnabled`](https://trilogy-hub.com/docs/setPlayerRadioEnabled/)

### isPlayerSlowMotionEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy u gracza działa spowolnienie czasu: przy kole broni (`"wheel"`), przy akrobacjach (`"stunt"`) albo oba (`"all"`).

#### Składnia

```lua
bool isPlayerSlowMotionEnabled(player thePlayer [, string kind = "all"])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `kind` (string, opcjonalny = "all") - `"wheel"`, `"stunt"` albo `"all"`.

#### Zwraca

`true`, jeśli włączone.

#### Przykład

```lua
if isPlayerSlowMotionEnabled(player, "wheel") then
    outputChatBox("Koło broni spowalnia czas.", player)
end
```

#### Zobacz też

- [`setPlayerSlowMotionEnabled`](https://trilogy-hub.com/docs/setPlayerSlowMotionEnabled/)
- [`setSlowMotionEnabled`](https://trilogy-hub.com/docs/setSlowMotionEnabled/)

### isPlayerSpawned

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz jest w świecie i żyje. Po śmierci zwraca `false` aż do kolejnego odrodzenia.

#### Składnia

```lua
bool isPlayerSpawned(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli żyje w świecie.

#### Przykład

```lua
addCommandHandler("auto", function(player)
    if not isPlayerSpawned(player) then return end
    local x, y, z = getElementPosition(player)
    warpPedIntoVehicle(player, createVehicle(411, x, y, z))
end)
```

#### Zobacz też

- [`isPlayerLoading`](https://trilogy-hub.com/docs/isPlayerLoading/)

### isPlayerStaminaEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz męczy się przy bieganiu (domyślnie nie).

#### Składnia

```lua
bool isPlayerStaminaEnabled(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli zmęczenie jest włączone.

#### Przykład

```lua
outputServerLog(tostring(isPlayerStaminaEnabled(player)))
```

#### Zobacz też

- [`setPlayerStaminaEnabled`](https://trilogy-hub.com/docs/setPlayerStaminaEnabled/)

### redirectPlayer

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Przenosi gracza na inny serwer. Bez adresu łączy go ponownie z tym samym.

#### Składnia

```lua
bool redirectPlayer(player thePlayer [, string serverIP = "", int serverPort = 0, string serverPassword = ""])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `serverIP` (string, opcjonalny = "") - Adres serwera.
- `serverPort` (int, opcjonalny = 0) - Port.
- `serverPassword` (string, opcjonalny = "") - Hasło serwera.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("lobby", function(player)
    redirectPlayer(player, "lobby.example.com", 7777)
end)
```

### resendPlayerACInfo

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Prosi klienta o ponowne przesłanie informacji antycheata.

#### Składnia

```lua
bool resendPlayerACInfo(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli prośba została wysłana.

#### Przykład

```lua
resendPlayerACInfo(player)
```

#### Uwagi

> **Uwaga:** **Na razie tylko przy wejściu.** Klient jeszcze nie obsługuje ponownej prośby, więc `onPlayerACInfo` przychodzi raz, gdy gracz dołącza.

#### Zobacz też

- [`onPlayerACInfo`](https://trilogy-hub.com/docs/onPlayerACInfo/)

### resendPlayerModInfo

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Prosi klienta o ponowne przesłanie listy modyfikacji gry.

#### Składnia

```lua
bool resendPlayerModInfo(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli prośba została wysłana.

#### Przykład

```lua
resendPlayerModInfo(player)
```

#### Uwagi

> **Uwaga:** **Na razie tylko przy wejściu.** Klient jeszcze nie obsługuje ponownej prośby, więc `onPlayerModInfo` przychodzi tylko przy dołączeniu.

#### Zobacz też

- [`onPlayerModInfo`](https://trilogy-hub.com/docs/onPlayerModInfo/)

### resetPlayerHudComponentProperty

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Przywraca domyślny wygląd składnika interfejsu (jedną właściwość albo wszystkie).

#### Składnia

```lua
bool resetPlayerHudComponentProperty(player thePlayer, string component [, string property = nil])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `component` (string) - Składnik.
- `property` (string, opcjonalny = nil) - Właściwość; bez niej wszystkie.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `resetPlayerHudComponentProperty(string component, string property)`

#### Przykład

```lua
resetPlayerHudComponentProperty(player, "radar")
```

#### Zobacz też

- [`getPlayerHudComponentProperty`](https://trilogy-hub.com/docs/getPlayerHudComponentProperty/)
- [`setPlayerHudComponentProperty`](https://trilogy-hub.com/docs/setPlayerHudComponentProperty/)

### setPlayerACExempt

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Wyłącza albo włącza wykrywanie cheatów dla gracza. Użyj, gdy zasób celowo daje graczowi latanie, wspomaganie celowania albo nietypowy ruch, żeby ochrona nie uznała tego za oszustwo. Administratorzy są zwolnieni automatycznie. Zwolnienie trwa do wyjścia gracza z serwera.

#### Składnia

```lua
bool setPlayerACExempt(player thePlayer [, bool exempt = true])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `exempt` (bool, opcjonalny = true) - `true` zwalnia, `false` przywraca wykrywanie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("superman", function(player)
    setPlayerACExempt(player, true)
    outputChatBox("Możesz latać.", player)
end)
```

#### Zobacz też

- [`isPlayerACExempt`](https://trilogy-hub.com/docs/isPlayerACExempt/)
- [`getPlayerACRisk`](https://trilogy-hub.com/docs/getPlayerACRisk/)

### setPlayerAnnounceValue

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Ustawia wartość ogłaszaną dla gracza, np. punkty widoczne na liście serwerów.

#### Składnia

```lua
bool setPlayerAnnounceValue(player thePlayer, string key, string value)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `key` (string) - Klucz.
- `value` (string) - Wartość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerAnnounceValue(player, "score", tostring(getElementData(player, "score") or 0))
```

#### Zobacz też

- [`getPlayerAnnounceValue`](https://trilogy-hub.com/docs/getPlayerAnnounceValue/)

### setPlayerArmour

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Ustawia pancerz gracza (0-100).

#### Składnia

```lua
bool setPlayerArmour(player thePlayer, float armour)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `armour` (float) - Pancerz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    setPlayerArmour(source, 100)
end)
```

#### Zobacz też

- [`getPlayerArmour`](https://trilogy-hub.com/docs/getPlayerArmour/)

### setPlayerBlurLevel

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Ustawia rozmycie ruchu u gracza (0-255, `root` dla wszystkich).

#### Składnia

```lua
bool setPlayerBlurLevel(player thePlayer, int level)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root`.
- `level` (int) - Poziom 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerBlurLevel(root, 0)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Serwer zapamiętuje poziom i zwraca go w `getPlayerBlurLevel`; gra jeszcze go nie stosuje.

#### Zobacz też

- [`getPlayerBlurLevel`](https://trilogy-hub.com/docs/getPlayerBlurLevel/)

### setPlayerHudComponentProperty

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Zapisuje wygląd składnika interfejsu: jedną właściwość albo całą tabelę. Właściwości: `posX`, `posY`, `size`, `fillColor`, `fillColorSecondary`, `textColor`, `alignment`, `drawBlackBorder`, `drawPercentage`, `blinkingTimeLimit`, `textOutline`, `textShadow`, `useFontTexture`.

#### Składnia

```lua
bool setPlayerHudComponentProperty(player thePlayer, string component, mixed property [, mixed value = nil])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `component` (string) - Składnik.
- `property` (mixed) - Nazwa właściwości albo tabela `{nazwa = wartość}`.
- `value` (mixed, opcjonalny = nil) - Wartość (gdy podano nazwę).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setPlayerHudComponentProperty(string component, string property, mixed value)`

#### Przykład

```lua
setPlayerHudComponentProperty(player, "health", { fillColor = { 0, 200, 0, 255 }, drawPercentage = true })
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Serwer zapamiętuje wygląd i zwraca go w `getPlayerHudComponentProperty`; interfejs gry jeszcze go nie stosuje.

#### Zobacz też

- [`getPlayerHudComponentProperty`](https://trilogy-hub.com/docs/getPlayerHudComponentProperty/)
- [`resetPlayerHudComponentProperty`](https://trilogy-hub.com/docs/resetPlayerHudComponentProperty/)

### setPlayerMapEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Pozwala albo zabrania graczowi otwierać mapę.

#### Składnia

```lua
bool setPlayerMapEnabled(player thePlayer, bool enabled)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `enabled` (bool) - `false` blokuje mapę.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    setPlayerMapEnabled(source, getElementDimension(source) == 0)
end)
```

#### Zobacz też

- [`isPlayerMapEnabled`](https://trilogy-hub.com/docs/isPlayerMapEnabled/)

### setPlayerMapOpacity

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zapisuje krycie mapy gracza (0-255).

#### Składnia

```lua
bool setPlayerMapOpacity(player thePlayer, int opacity)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `opacity` (int) - Krycie 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerMapOpacity(player, 200)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Serwer zapamiętuje wartość i zwraca ją w `getPlayerMapOpacity`; mapa gry jeszcze jej nie stosuje.

#### Zobacz też

- [`getPlayerMapOpacity`](https://trilogy-hub.com/docs/getPlayerMapOpacity/)

### setPlayerMoney

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Ustawia pieniądze gracza. Licznik w grze pokazuje stan z serwera.

#### Składnia

```lua
bool setPlayerMoney(player thePlayer, int amount)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `amount` (int) - Kwota.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool instant = false`
- W MTA:SA: `setPlayerMoney(player thePlayer, int amount, bool instant = false)`

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function(_, account)
    setPlayerMoney(source, getAccountData(account, "money") or 0)
end)
```

#### Zobacz też

- [`getPlayerMoney`](https://trilogy-hub.com/docs/getPlayerMoney/)

### setPlayerMuted

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Wycisza albo odcisza gracza na czacie.

#### Składnia

```lua
bool setPlayerMuted(player thePlayer, bool state)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `state` (bool) - `true` wycisza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("mute", function(admin, cmd, name, minutes)
    local target = name and getPlayerFromName(name)
    if not target then return end
    setPlayerMuted(target, true)
    setTimer(function()
        if isElement(target) then setPlayerMuted(target, false) end
    end, (tonumber(minutes) or 5) * 60000, 1)
end)
```

#### Zobacz też

- [`isPlayerMuted`](https://trilogy-hub.com/docs/isPlayerMuted/)
- [`onPlayerMute`](https://trilogy-hub.com/docs/onPlayerMute/)

### setPlayerName

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zmienia nick gracza. Wywołuje `onPlayerChangeNick`.

#### Składnia

```lua
bool setPlayerName(player thePlayer, string newName)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `newName` (string) - Nowy nick.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function(_, account)
    setPlayerName(source, getAccountName(account))
end)
```

#### Zobacz też

- [`getPlayerName`](https://trilogy-hub.com/docs/getPlayerName/)

### setPlayerNametagColor

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Ustawia kolor tabliczki z nickiem nad głową gracza (widzą go wszyscy; ma pierwszeństwo przed kolorem z `setPlayerNametagStyle`). Ten kolor ma też nick gracza na czacie.

#### Składnia

```lua
bool setPlayerNametagColor(player thePlayer, int/false r, int g, int b)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `r` (int/false) - Czerwony 0-255 albo `false` = kolor domyślny (ze stylu `setPlayerNametagStyle`, inaczej wbudowany).
- `g` (int) - Zielony 0-255.
- `b` (int) - Niebieski 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerTeamChange", root, function(oldTeam, newTeam)
    if newTeam then
        setPlayerNametagColor(source, getTeamColor(newTeam))
    end
end)
```

#### Zobacz też

- [`getPlayerNametagColor`](https://trilogy-hub.com/docs/getPlayerNametagColor/)

### setPlayerNametagShowing

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Pokazuje albo chowa tabliczkę z nickiem gracza.

#### Składnia

```lua
bool setPlayerNametagShowing(player thePlayer, bool showing)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `showing` (bool) - `false` chowa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("incognito", function(player)
    setPlayerNametagShowing(player, false)
end)
```

#### Zobacz też

- [`isPlayerNametagShowing`](https://trilogy-hub.com/docs/isPlayerNametagShowing/)

### setPlayerNametagStyle

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Ustawia wygląd wbudowanych tabliczek nad głowami innych graczy, które widzi ten gracz (albo wszyscy: `root`). Podajesz tylko pola do zmiany, reszta zostaje. Pola: `enabled` (bool, `false` chowa wbudowane tabliczki, np. gdy zasób rysuje własne przez `dxDrawText`), `distance` (metry, 0 = bez limitu), `showDistance` (bool, dopisek „12 m” za nickiem), `scale` (0.4–4, wielkość napisu), `color` (kolor z `tocolor` albo `false` = kolor domyślny), `background` (kolor tła z `tocolor` albo `false` = bez tła). Kolor, tekst i ukrycie pojedynczego gracza (`setPlayerNametagColor`, `setPlayerNametagText`, `setPlayerNametagShowing`) mają pierwszeństwo przed stylem. Po ponownym wejściu na serwer ustaw styl od nowa.

#### Składnia

```lua
bool setPlayerNametagStyle(player thePlayer, table style)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root`.
- `style` (table) - Pola do zmiany.

#### Zwraca

`true` przy powodzeniu; `false` dla złego pola.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    setPlayerNametagStyle(source, { distance = 40, showDistance = false, scale = 1.2 })
end)
```

#### Zobacz też

- [`getPlayerNametagStyle`](https://trilogy-hub.com/docs/getPlayerNametagStyle/)
- [`setNametagStyle`](https://trilogy-hub.com/docs/setNametagStyle/)
- [`setNametagsEnabled`](https://trilogy-hub.com/docs/setNametagsEnabled/)
- [`setPlayerNametagColor`](https://trilogy-hub.com/docs/setPlayerNametagColor/)

### setPlayerNametagText

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Zmienia tekst tabliczki z nickiem. `false` przywraca nick.

#### Składnia

```lua
bool setPlayerNametagText(player thePlayer, string text)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `text` (string) - Tekst albo `false`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerNametagText(player, "[ADMIN] " .. getPlayerName(player))
```

#### Zobacz też

- [`getPlayerNametagText`](https://trilogy-hub.com/docs/getPlayerNametagText/)

### setPlayerRadioEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Włącza albo wyłącza radio gry w pojeździe graczowi (albo wszystkim: `root`). Wyłączone daje ciszę zamiast stacji GTA, pod własne radio skryptu.

#### Składnia

```lua
bool setPlayerRadioEnabled(player thePlayer, bool enabled)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root`.
- `enabled` (bool) - `false` wycisza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerRadioEnabled(root, false)
```

#### Zobacz też

- [`isPlayerRadioEnabled`](https://trilogy-hub.com/docs/isPlayerRadioEnabled/)
- [`setRadioEnabled`](https://trilogy-hub.com/docs/setRadioEnabled/)

### setPlayerScriptDebugLevel

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Ustawia, które komunikaty debugowania skryptów gracz widzi (0 żadne, 1 błędy, 2 i ostrzeżenia, 3 wszystko).

#### Składnia

```lua
bool setPlayerScriptDebugLevel(player thePlayer, int level)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `level` (int) - Poziom 0-3.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function()
    if getPlayerAdminLevel(source) == "owner" then
        setPlayerScriptDebugLevel(source, 3)
    end
end)
```

#### Zobacz też

- [`getPlayerScriptDebugLevel`](https://trilogy-hub.com/docs/getPlayerScriptDebugLevel/)

### setPlayerSlowMotionEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Włącza albo wyłącza spowolnienie czasu u gracza: przy kole broni (`"wheel"`), przy akrobacjach (`"stunt"`) albo oba.

#### Składnia

```lua
bool setPlayerSlowMotionEnabled(player thePlayer, bool enabled [, string kind = "all"])
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root`.
- `enabled` (bool) - `true` włącza.
- `kind` (string, opcjonalny = "all") - `"wheel"`, `"stunt"` albo `"all"`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerSlowMotionEnabled(root, false, "wheel")
```

#### Zobacz też

- [`isPlayerSlowMotionEnabled`](https://trilogy-hub.com/docs/isPlayerSlowMotionEnabled/)
- [`setSlowMotionEnabled`](https://trilogy-hub.com/docs/setSlowMotionEnabled/)

### setPlayerStaminaEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Włącza albo wyłącza zmęczenie przy bieganiu graczowi (albo wszystkim: `root`). Domyślnie wyłączone, więc postać biega bez zadyszki.

#### Składnia

```lua
bool setPlayerStaminaEnabled(player thePlayer, bool enabled)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root`.
- `enabled` (bool) - `true` włącza zmęczenie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerStaminaEnabled(root, true)
```

#### Zobacz też

- [`isPlayerStaminaEnabled`](https://trilogy-hub.com/docs/isPlayerStaminaEnabled/)

### setPlayerTeam

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Przypisuje gracza do drużyny. `nil` albo `false` wypisuje go z drużyny. Wywołuje `onPlayerTeamChange`.

#### Składnia

```lua
bool setPlayerTeam(player thePlayer, team theTeam)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `theTeam` (team) - Drużyna albo `nil`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("policja", function(player)
    setPlayerTeam(player, getTeamFromName("Policja"))
    setElementModel(player, 280)
end)
```

#### Zobacz też

- [`getPlayerTeam`](https://trilogy-hub.com/docs/getPlayerTeam/)
- [`createTeam`](https://trilogy-hub.com/docs/createTeam/)

### setPlayerVoiceBroadcastTo

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Ustala, kto słyszy głos gracza: jeden element, lista elementów albo `nil` (wszyscy).

#### Składnia

```lua
bool setPlayerVoiceBroadcastTo(player thePlayer, mixed broadcastTo)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `broadcastTo` (mixed) - Element, tablica elementów albo `nil`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerVoiceBroadcastTo(player, getPlayersInTeam(getPlayerTeam(player)))
```

#### Uwagi

> **Uwaga:** **Odbiorcy.** Pusta tabela `{}` = nikt nie słyszy gracza. Odbiorca w zasięgu słyszy go w 3D, dalszy jak przez radio. `nil` przywraca zachowanie z ustawień serwera.

#### Zobacz też

- [`setPlayerVoiceIgnoreFrom`](https://trilogy-hub.com/docs/setPlayerVoiceIgnoreFrom/)
- [`setVoiceEnabled`](https://trilogy-hub.com/docs/setVoiceEnabled/)
- [`getPlayerVoiceBroadcastTo`](https://trilogy-hub.com/docs/getPlayerVoiceBroadcastTo/)

### setPlayerVoiceChannel

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Ustawia kanał głosowy gracza. W trybie `"channels"` gracze z tym samym kanałem słyszą się w każdym miejscu mapy, jak przez radio, a gracze w pobliżu dalej słyszą się normalnie w 3D. W innych trybach kanał nie ma wpływu. `nil` albo pusty napis usuwa gracza z kanału.

#### Składnia

```lua
bool setPlayerVoiceChannel(player thePlayer [, string channel = nil])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `channel` (string, opcjonalny = nil) - Nazwa kanału (do 64 znaków).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setVoiceSetting("mode", "channels")
addCommandHandler("radio", function(player, _, freq)
    setPlayerVoiceChannel(player, freq)
    outputChatBox(freq and ("Radio: " .. freq) or "Radio wyłączone", player)
end)
```

#### Zobacz też

- [`getPlayerVoiceChannel`](https://trilogy-hub.com/docs/getPlayerVoiceChannel/)
- [`setVoiceSetting`](https://trilogy-hub.com/docs/setVoiceSetting/)

### setPlayerVoiceIgnoreFrom

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Ustala, kogo gracz nie słyszy.

#### Składnia

```lua
bool setPlayerVoiceIgnoreFrom(player thePlayer, mixed ignoreFrom)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `ignoreFrom` (mixed) - Element, tablica elementów albo `nil`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerVoiceIgnoreFrom(player, annoyingPlayer)
```

#### Zobacz też

- [`getPlayerVoiceIgnoreFrom`](https://trilogy-hub.com/docs/getPlayerVoiceIgnoreFrom/)

### setPlayerVoiceMuted

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Wycisza gracza na czacie głosowym albo zdejmuje wyciszenie. Głos wyciszonego gracza nie jest nikomu przesyłany. Wyciszenie ustawione tą funkcją ma pierwszeństwo przed `mutedByDefault` z ustawień serwera.

#### Składnia

```lua
bool setPlayerVoiceMuted(player thePlayer, bool muted)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `muted` (bool) - `true` wycisza, `false` zdejmuje wyciszenie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("wycisz", function(admin, _, nick)
    local target = nick and getPlayerFromName(nick)
    if target then setPlayerVoiceMuted(target, true) end
end)
```

#### Zobacz też

- [`isPlayerVoiceMuted`](https://trilogy-hub.com/docs/isPlayerVoiceMuted/)
- [`setVoiceSetting`](https://trilogy-hub.com/docs/setVoiceSetting/)

### setPlayerWantedLevel

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Ustawia poziom poszukiwania gracza (0-6 gwiazdek).

#### Składnia

```lua
bool setPlayerWantedLevel(player thePlayer, int level)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `level` (int) - Poziom 0-6.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerWasted", root, function()
    setPlayerWantedLevel(source, 0)
end)
```

#### Zobacz też

- [`getPlayerWantedLevel`](https://trilogy-hub.com/docs/getPlayerWantedLevel/)

### setVoiceEnabled

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Włącza albo wyłącza rozmowę głosową na serwerze.

#### Składnia

```lua
bool setVoiceEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` włącza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setVoiceEnabled(true)
```

#### Uwagi

> **Uwaga:** **Od razu u wszystkich.** Zmiana działa natychmiast u wszystkich graczy. Domyślny stan bierze się z sekcji `voice` w `server-config.json`.

#### Zobacz też

- [`isVoiceEnabled`](https://trilogy-hub.com/docs/isVoiceEnabled/)

### setVoiceSetting

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zmienia jedno ustawienie rozmowy głosowej. Zmiana działa od razu u wszystkich graczy. Nazwy i zakresy są takie jak w `getVoiceSettings`; liczby spoza zakresu są przycinane (np. `range` 500 daje 250). `pushToTalkKey` to nazwa klawisza jak w `bindKey` (`"z"`, `"lalt"`, `"mouse4"`, `"f5"`) i jest tylko domyślnym klawiszem: gracz, który wybrał własny w menu ESC, zachowuje swój.

#### Składnia

```lua
bool setVoiceSetting(string name, var value)
```

#### Argumenty

- `name` (string) - Nazwa ustawienia.
- `value` (var) - Nowa wartość (typ zgodny z ustawieniem).

#### Zwraca

`true` przy powodzeniu, `false` przy złej nazwie albo wartości.

#### Przykład

```lua
setVoiceSetting("range", 25)
setVoiceSetting("pushToTalkKey", "x")
```

#### Uwagi

> **Ostrzeżenie:** **Zasięg i minimalna odległość.** Jeśli `minDistance` wyjdzie większe albo równe `range`, zostaje zmniejszone do `range - 1`.

#### Zobacz też

- [`setVoiceSettings`](https://trilogy-hub.com/docs/setVoiceSettings/)
- [`getVoiceSettings`](https://trilogy-hub.com/docs/getVoiceSettings/)

### setVoiceSettings

*Funkcja · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Zmienia kilka ustawień rozmowy głosowej naraz. Pozostałe zostają bez zmian. Gdy któraś wartość jest zła, nic nie jest zmieniane.

#### Składnia

```lua
bool setVoiceSettings(table settings)
```

#### Argumenty

- `settings` (table) - Tabela nazwa = wartość, jak w `getVoiceSettings`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setVoiceSettings({ mode = "channels", range = 30, falloff = "linear" })
```

#### Zobacz też

- [`setVoiceSetting`](https://trilogy-hub.com/docs/setVoiceSetting/)
- [`getVoiceSettings`](https://trilogy-hub.com/docs/getVoiceSettings/)

### spawnPlayer

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Odradza gracza w podanym miejscu: pozycja, obrót, skin, wnętrze i wymiar.

#### Składnia

```lua
bool spawnPlayer(player player, float x, float y, float z [, float rotation = 0, int skin = 0, int interior = 0, int dimension = 0])
```

#### Argumenty

- `player` (player) - Gracz, którego odradzasz.
- `x, y, z` (float) - Pozycja w świecie. Warto podać `z` kilka centymetrów nad ziemią.
- `rotation` (float, opcjonalny = 0) - Kierunek, w którym gracz patrzy, w stopniach.
- `skin` (int, opcjonalny = 0) - Numer modelu postaci. `0` to CJ.
- `interior` (int, opcjonalny = 0) - Numer wnętrza. `0` to świat na zewnątrz.
- `dimension` (int, opcjonalny = 0) - Wymiar (dimension). Gracze w różnych wymiarach się nie widzą.

#### Zwraca

`true`, gdy gracz został odrodzony, albo `false` przy złym argumencie.

#### Różnice względem MTA:SA

- W MTA:SA: `spawnPlayer(player thePlayer, float x, float y, float z, int rotation = 0)`

#### Przykład

Gracz po wejściu i po każdej śmierci pojawia się przy Grove Street, z losowym skinem z listy.

```lua
local SKINY = { 0, 105, 106, 107 }

local function odrodz(gracz)
    local skin = SKINY[math.random(#SKINY)]
    spawnPlayer(gracz, 2495.3, -1687.0, 13.5, 0, skin)
end

addEventHandler("onPlayerJoin", root, function()
    odrodz(source)
end)

addEventHandler("onPlayerWasted", root, function()
    -- 3 sekundy na ekran śmierci, potem powrót
    setTimer(odrodz, 3000, 1, source)
end)
```

#### Uwagi

> **Uwaga:** **Warto wiedzieć.** Po odrodzeniu wywoływane jest zdarzenie `onPlayerSpawn`. Nowy gracz nie pojawi się w świecie, dopóki żaden skrypt nie wywoła `spawnPlayer`.

#### Zobacz też

- [`onPlayerJoin`](https://trilogy-hub.com/docs/onPlayerJoin/)
- [`onPlayerWasted`](https://trilogy-hub.com/docs/onPlayerWasted/)
- [`getElementPosition`](https://trilogy-hub.com/docs/getElementPosition/)

### takePlayerMoney

*Funkcja · Strona: Serwer · Kategoria: Gracze · Identyczna z MTA:SA*

Odejmuje graczowi pieniądze.

#### Składnia

```lua
bool takePlayerMoney(player thePlayer, int amount)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `amount` (int) - Kwota.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerWasted", root, function()
    takePlayerMoney(source, math.min(100, getPlayerMoney(source)))
end)
```

### takePlayerScreenShot

*Funkcja · Strona: Serwer · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Robi zrzut ekranu gry gracza (JPEG, bez nakładki). Wynik przychodzi w zdarzeniu `onPlayerScreenShot`.

#### Składnia

```lua
bool takePlayerScreenShot(player thePlayer, int width, int height [, string tag = "", int quality = 30, int maxBandwidth, int maxPacketSize, bool includeUI = false])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `width` (int) - Szerokość 1-4096.
- `height` (int) - Wysokość 1-4096.
- `tag` (string, opcjonalny = "") - Dowolny tekst przekazany do zdarzenia.
- `quality` (int, opcjonalny = 30) - Jakość JPEG 0-100.
- `maxBandwidth` (int, opcjonalny) - Przyjmowane dla zgodności, obraz idzie od razu.
- `maxPacketSize` (int, opcjonalny) - Przyjmowane dla zgodności.
- `includeUI` (bool, opcjonalny = false) - `true` = zrzut z interfejsem: panele CEF, dxDraw, GUI i HUD (tak jak widzi gracz).

#### Zwraca

`true`, jeśli prośba została wysłana.

#### Różnice względem MTA:SA

- W MTA:SA: `takePlayerScreenShot(player thePlayer, int width, int height, string tag = "", int quality = 30, int maxBandwidth = 5000, int maxPacketSize = 500)`

#### Przykład

```lua
addCommandHandler("zrzut", function(admin, cmd, name)
    local target = name and getPlayerFromName(name)
    if target then
        takePlayerScreenShot(target, 960, 540, getPlayerName(admin), 60)
    end
end)

addEventHandler("onPlayerScreenShot", root, function(res, status, imageData, timestamp, tag)
    if status == "ok" then
        local f = fileCreate("zrzuty/" .. getPlayerName(source) .. "_" .. timestamp .. ".jpg")
        fileWrite(f, imageData)
        fileClose(f)
    end
end)
```

#### Zobacz też

- [`onPlayerScreenShot`](https://trilogy-hub.com/docs/onPlayerScreenShot/)

### addAccount

*Funkcja · Strona: Serwer · Kategoria: Konta · Zmodyfikowana względem MTA:SA*

Tworzy nowe konto na serwerze. Hasło jest zapisywane jako bezpieczny skrót, nigdy jawnie.

#### Składnia

```lua
account addAccount(string name, string password)
```

#### Argumenty

- `name` (string) - Nazwa konta.
- `password` (string) - Hasło.

#### Zwraca

Konto albo `false` (nazwa zajęta, puste hasło, zła nazwa; powód trafia do logu).

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool allowCaseVariations = false`
- W MTA:SA: `addAccount(string name, string pass, bool allowCaseVariations = false)`

#### Przykład

Rejestracja i logowanie komendami.

```lua
addCommandHandler("register", function(player, cmd, name, password)
    if not name or not password then
        outputChatBox("Użycie: /register <login> <hasło>", player)
        return
    end
    local account = addAccount(name, password)
    if account then
        logIn(player, account, password)
        outputChatBox("Konto utworzone, jesteś zalogowany.", player, 0, 255, 0)
    else
        outputChatBox("Nie udało się: nazwa zajęta albo nieprawidłowa.", player, 255, 0, 0)
    end
end)
```

#### Zobacz też

- [`getAccount`](https://trilogy-hub.com/docs/getAccount/)
- [`logIn`](https://trilogy-hub.com/docs/logIn/)
- [`removeAccount`](https://trilogy-hub.com/docs/removeAccount/)

### copyAccountData

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Kopiuje wszystkie dane z jednego konta do drugiego.

#### Składnia

```lua
bool copyAccountData(account theAccount, account fromAccount)
```

#### Argumenty

- `theAccount` (account) - Konto docelowe.
- `fromAccount` (account) - Konto źródłowe.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
copyAccountData(getAccount("nowe_konto"), getAccount("stare_konto"))
```

### getAccount

*Funkcja · Strona: Serwer · Kategoria: Konta · Zmodyfikowana względem MTA:SA*

Zwraca konto o podanej nazwie. Z hasłem zwraca `false`, gdy hasło nie pasuje.

#### Składnia

```lua
account getAccount(string username [, string password = nil])
```

#### Argumenty

- `username` (string) - Nazwa konta.
- `password` (string, opcjonalny = nil) - Hasło do sprawdzenia.

#### Zwraca

Konto albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool caseSensitive = true`
- W MTA:SA: `getAccount(string username, string password = nil, bool caseSensitive = true)`

#### Przykład

```lua
addCommandHandler("login", function(player, cmd, name, password)
    local account = name and password and getAccount(name, password)
    if not account then
        outputChatBox("Zły login lub hasło.", player, 255, 0, 0)
        return
    end
    logIn(player, account, password)
end)
```

#### Zobacz też

- [`logIn`](https://trilogy-hub.com/docs/logIn/)
- [`addAccount`](https://trilogy-hub.com/docs/addAccount/)
- [`removeAccount`](https://trilogy-hub.com/docs/removeAccount/)

### getAccountByID

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca konto o podanym numerze (`getAccountID`).

#### Składnia

```lua
account getAccountByID(int id)
```

#### Argumenty

- `id` (int) - Numer konta.

#### Zwraca

Konto albo `false`.

#### Przykład

```lua
local acc = getAccountByID(1)
if acc then outputServerLog("Pierwsze konto: " .. getAccountName(acc)) end
```

### getAccountData

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca daną konta zapisaną pod kluczem. Dane konta są trwałe: zostają po wyjściu gracza i restarcie serwera.

#### Składnia

```lua
mixed getAccountData(account theAccount, string key)
```

#### Argumenty

- `theAccount` (account) - Konto.
- `key` (string) - Klucz.

#### Zwraca

Wartość albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function(_, account)
    setPlayerMoney(source, getAccountData(account, "money") or 0)
    local skin = getAccountData(account, "skin")
    if skin then setElementModel(source, skin) end
end)
```

#### Zobacz też

- [`setAccountData`](https://trilogy-hub.com/docs/setAccountData/)
- [`getAllAccountData`](https://trilogy-hub.com/docs/getAllAccountData/)

### getAccountID

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca stały numer konta. Nadawany przy pierwszym pytaniu, potem się nie zmienia.

#### Składnia

```lua
int getAccountID(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

Numer konta.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function(_, account)
    outputChatBox("Twoje ID konta: " .. getAccountID(account), source)
end)
```

### getAccountIP

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca adres IP zapamiętany przy ostatnim logowaniu.

#### Składnia

```lua
string getAccountIP(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

Adres IP albo `false`.

#### Przykład

```lua
outputServerLog(tostring(getAccountIP(getAccount("jan"))))
```

### getAccountName

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca nazwę konta.

#### Składnia

```lua
string getAccountName(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

Nazwa.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function(_, account)
    outputChatBox(getPlayerName(source) .. " zalogował się jako " .. getAccountName(account))
end)
```

#### Zobacz też

- [`setAccountName`](https://trilogy-hub.com/docs/setAccountName/)

### getAccountPlayer

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca gracza zalogowanego na to konto. Jedno konto może być zalogowane tylko u jednego gracza naraz.

#### Składnia

```lua
player getAccountPlayer(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

Gracz albo `false`.

#### Przykład

```lua
local player = getAccountPlayer(getAccount("jan"))
if player then
    outputChatBox("Masz nową wiadomość.", player)
end
```

### getAccounts

*Funkcja · Strona: Serwer · Kategoria: Konta · Zmodyfikowana względem MTA:SA*

Zwraca wszystkie konta na serwerze.

#### Składnia

```lua
table getAccounts()
```

#### Zwraca

Tablica kont.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `getAccounts()`

#### Przykład

```lua
outputServerLog("Kont na serwerze: " .. #getAccounts())
```

#### Zobacz też

- [`getAccount`](https://trilogy-hub.com/docs/getAccount/)

### getAccountsByData

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca konta, których dana pod kluczem jest równa podanej wartości.

#### Składnia

```lua
table getAccountsByData(string dataName, mixed value)
```

#### Argumenty

- `dataName` (string) - Klucz.
- `value` (mixed) - Wartość.

#### Zwraca

Tablica kont.

#### Przykład

```lua
for _, acc in ipairs(getAccountsByData("vip", true)) do
    outputServerLog("VIP: " .. getAccountName(acc))
end
```

### getAccountsByIP

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca konta ostatnio używane z podanego adresu IP.

#### Składnia

```lua
table getAccountsByIP(string ip)
```

#### Argumenty

- `ip` (string) - Adres IP.

#### Zwraca

Tablica kont.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    local n = #getAccountsByIP(getPlayerIP(source))
    if n > 0 then
        outputChatBox("Masz już " .. n .. " kont(a) z tego adresu.", source)
    end
end)
```

### getAccountsBySerial

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca konta używane z podanego Client ID.

#### Składnia

```lua
table getAccountsBySerial(string serial)
```

#### Argumenty

- `serial` (string) - Client ID.

#### Zwraca

Tablica kont.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    for _, acc in ipairs(getAccountsBySerial(getPlayerSerial(source))) do
        outputServerLog(getPlayerName(source) .. " ma konto " .. getAccountName(acc))
    end
end)
```

#### Zobacz też

- [`getPlayerSerial`](https://trilogy-hub.com/docs/getPlayerSerial/)

### getAccountSerial

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca Client ID zapamiętany przy logowaniu na to konto.

#### Składnia

```lua
string getAccountSerial(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

Client ID albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function(_, account)
    local known = getAccountSerial(account)
    if known and known ~= getPlayerSerial(source) then
        outputChatBox("Logujesz się z nowego urządzenia.", source, 255, 200, 0)
    end
    setAccountSerial(account, getPlayerSerial(source))
end)
```

#### Zobacz też

- [`setAccountSerial`](https://trilogy-hub.com/docs/setAccountSerial/)

### getAccountType

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca rodzaj konta: `"guest"` (gracz niezalogowany) albo `"player"`.

#### Składnia

```lua
string getAccountType(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

Rodzaj.

#### Przykład

```lua
if getAccountType(getPlayerAccount(player)) == "guest" then
    outputChatBox("Zaloguj się, żeby zapisać postęp.", player)
end
```

### getAllAccountData

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zwraca wszystkie dane konta jako tablicę klucz-wartość.

#### Składnia

```lua
table getAllAccountData(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

Tablica danych.

#### Przykład

```lua
for key, value in pairs(getAllAccountData(account)) do
    outputServerLog(key .. " = " .. tostring(value))
end
```

### isGuestAccount

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Sprawdza, czy konto jest kontem gościa, czyli gracz nie jest zalogowany.

#### Składnia

```lua
bool isGuestAccount(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

`true` dla gościa.

#### Przykład

```lua
addCommandHandler("zapisz", function(player)
    local account = getPlayerAccount(player)
    if isGuestAccount(account) then
        outputChatBox("Najpierw się zaloguj.", player, 255, 0, 0)
        return
    end
    setAccountData(account, "money", getPlayerMoney(player))
end)
```

### logIn

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Loguje gracza na konto. Wywołuje `onPlayerLogin`. Jedno konto może być zalogowane tylko u jednego gracza naraz.

#### Składnia

```lua
bool logIn(player thePlayer, account theAccount, string thePassword)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `theAccount` (account) - Konto.
- `thePassword` (string) - Hasło.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEvent("tryLogin", true)
addEventHandler("tryLogin", root, function(name, password)
    local account = getAccount(name)
    if not account or not logIn(client, account, password) then
        triggerClientEvent(client, "loginFailed", client)
    end
end)
```

#### Zobacz też

- [`logOut`](https://trilogy-hub.com/docs/logOut/)
- [`onPlayerLogin`](https://trilogy-hub.com/docs/onPlayerLogin/)

### logOut

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Wylogowuje gracza z konta. Wywołuje `onPlayerLogout`.

#### Składnia

```lua
bool logOut(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("wyloguj", function(player)
    logOut(player)
end)
```

### removeAccount

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Usuwa konto razem z jego danymi.

#### Składnia

```lua
bool removeAccount(account theAccount)
```

#### Argumenty

- `theAccount` (account) - Konto.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local acc = getAccount("test")
if acc then removeAccount(acc) end
```

#### Zobacz też

- [`getAccount`](https://trilogy-hub.com/docs/getAccount/)
- [`addAccount`](https://trilogy-hub.com/docs/addAccount/)

### setAccountData

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zapisuje daną konta pod kluczem. Wartość zostaje na stałe (także po restarcie serwera).

#### Składnia

```lua
bool setAccountData(account theAccount, string key, mixed value)
```

#### Argumenty

- `theAccount` (account) - Konto.
- `key` (string) - Klucz.
- `value` (mixed) - Wartość: liczba, tekst, `true`/`false`, tablica.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerQuit", root, function()
    local account = getPlayerAccount(source)
    if not isGuestAccount(account) then
        setAccountData(account, "money", getPlayerMoney(source))
        setAccountData(account, "skin", getElementModel(source))
    end
end)
```

#### Zobacz też

- [`getAccountData`](https://trilogy-hub.com/docs/getAccountData/)

### setAccountName

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zmienia nazwę konta, przenosząc wszystkie jego dane.

#### Składnia

```lua
bool setAccountName(account theAccount, string name [, bool allowCaseVariations = false])
```

#### Argumenty

- `theAccount` (account) - Konto.
- `name` (string) - Nowa nazwa.
- `allowCaseVariations` (bool, opcjonalny = false) - Pozwala na nazwę różniącą się tylko wielkością liter od istniejącej.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setAccountName(getAccount("jan"), "JanKowalski")
```

#### Zobacz też

- [`getAccountName`](https://trilogy-hub.com/docs/getAccountName/)

### setAccountPassword

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zmienia hasło konta.

#### Składnia

```lua
bool setAccountPassword(account theAccount, string password)
```

#### Argumenty

- `theAccount` (account) - Konto.
- `password` (string) - Nowe hasło.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("zmienhaslo", function(player, cmd, old, new)
    local account = getPlayerAccount(player)
    if isGuestAccount(account) or not getAccount(getAccountName(account), old) then
        outputChatBox("Złe hasło.", player, 255, 0, 0)
        return
    end
    setAccountPassword(account, new)
    outputChatBox("Hasło zmienione.", player, 0, 255, 0)
end)
```

### setAccountSerial

*Funkcja · Strona: Serwer · Kategoria: Konta · Identyczna z MTA:SA*

Zapisuje Client ID przypisany do konta.

#### Składnia

```lua
bool setAccountSerial(account theAccount, string serial)
```

#### Argumenty

- `theAccount` (account) - Konto.
- `serial` (string) - Client ID.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setAccountSerial(account, getPlayerSerial(player))
```

#### Zobacz też

- [`getAccountSerial`](https://trilogy-hub.com/docs/getAccountSerial/)

### loadMapData

*Funkcja · Strona: Serwer · Kategoria: Mapy · Identyczna z MTA:SA*

Tworzy elementy (pojazdy, obiekty, znaczniki, pickupy...) z węzła XML mapy w formacie `.map`. Zwraca element-korzeń mapy; jego usunięcie usuwa całą mapę.

#### Składnia

```lua
element loadMapData(xmlnode node, element parent)
```

#### Argumenty

- `node` (xmlnode) - Węzeł XML z mapą.
- `parent` (element) - Rodzic dla mapy.

#### Zwraca

Korzeń mapy albo `false`.

#### Przykład

```lua
local xml = xmlLoadFile("maps/stadion.map")
local map = loadMapData(xml, resourceRoot)
xmlUnloadFile(xml)

addCommandHandler("usunmape", function()
    destroyElement(map)
end)
```

#### Zobacz też

- [`saveMapData`](https://trilogy-hub.com/docs/saveMapData/)
- [`xmlLoadFile`](https://trilogy-hub.com/docs/xmlLoadFile/)

### resetMapInfo

*Funkcja · Strona: Serwer · Kategoria: Mapy · Identyczna z MTA:SA*

Przywraca domyślne ustawienia świata: godzinę 12:00, pogodę 0, grawitację i właściwości świata.

#### Składnia

```lua
bool resetMapInfo([player thePlayer = nil])
```

#### Argumenty

- `thePlayer` (player, opcjonalny = nil) - Dla zgodności ze starszymi skryptami.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onResourceStop", resourceRoot, function()
    resetMapInfo()
end)
```

### saveMapData

*Funkcja · Strona: Serwer · Kategoria: Mapy · Identyczna z MTA:SA*

Zapisuje elementy spod podanego elementu do węzła XML w formacie `.map`.

#### Składnia

```lua
bool saveMapData(xmlnode node, element baseElement [, bool childrenOnly = false])
```

#### Argumenty

- `node` (xmlnode) - Węzeł XML.
- `baseElement` (element) - Element, którego dzieci zapisać.
- `childrenOnly` (bool, opcjonalny = false) - Tylko dzieci, bez samego elementu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local xml = xmlCreateFile("maps/zapis.map", "map")
saveMapData(xml, resourceRoot, true)
xmlSaveFile(xml)
xmlUnloadFile(xml)
```

### clearDebugBox

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Wysyła wszystkim graczom zdarzenie `onClientDebugClear` (skrypt klienta może w nim wyczyścić swoje okno debugowania).

#### Składnia

```lua
bool clearDebugBox()
```

#### Zwraca

Zawsze `true`.

#### Przykład

```lua
clearDebugBox()
```

#### Uwagi

> **Nowość:** Klient nie ma okna debugowania do wyczyszczenia; skrypt klienta może obsłużyć zdarzenie po `addEvent("onClientDebugClear", true)`.

#### Zobacz też

- [`outputDebugString`](https://trilogy-hub.com/docs/outputDebugString/)

### debugSleep

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zatrzymuje cały serwer na podany czas (0-5000 ms). Wyłącznie do testów zachowania przy opóźnieniach - w tym czasie serwer nic nie robi.

#### Składnia

```lua
bool debugSleep(int sleep)
```

#### Argumenty

- `sleep` (int) - Czas w ms (0-5000).

#### Zwraca

`true` po odczekaniu, `false`, gdy nieobsługiwane.

#### Przykład

```lua
addCommandHandler("lag", function(player)
    if getDevelopmentMode() then debugSleep(500) end
end)
```

#### Zobacz też

- [`getTickCount`](https://trilogy-hub.com/docs/getTickCount/)

### getLoadedModules

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca listę wczytanych modułów natywnych (DLL). Serwer Trilogy Hub nie ładuje modułów, więc lista jest zawsze pusta.

#### Składnia

```lua
table getLoadedModules()
```

#### Zwraca

Pusta tabela.

#### Przykład

```lua
outputServerLog("Moduly: " .. #getLoadedModules())
```

#### Zobacz też

- [`getModuleInfo`](https://trilogy-hub.com/docs/getModuleInfo/)

### getModuleInfo

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca informacje o module natywnym. Serwer Trilogy Hub nie ładuje modułów.

#### Składnia

```lua
bool getModuleInfo(string moduleName)
```

#### Argumenty

- `moduleName` (string) - Nazwa modułu.

#### Zwraca

Zawsze `false`.

#### Przykład

```lua
if not getModuleInfo("ml_sockets.dll") then outputServerLog("Brak modulu sockets") end
```

#### Zobacz też

- [`getLoadedModules`](https://trilogy-hub.com/docs/getLoadedModules/)

### getNetworkUsageData

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca, ile danych serwer odebrał i wysłał przez sieć od uruchomienia.

#### Składnia

```lua
table getNetworkUsageData()
```

#### Zwraca

`{ in_ = {bytes, packets}, out = {bytes, packets} }` albo `false`.

#### Przykład

```lua
local usage = getNetworkUsageData()
if usage then outputServerLog(("Wyslano %d KB"):format(usage.out.bytes / 1024)) end
```

#### Zobacz też

- [`getNetworkStats`](https://trilogy-hub.com/docs/getNetworkStats/)
- [`getPerformanceStats`](https://trilogy-hub.com/docs/getPerformanceStats/)

### getPerformanceStats

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca podstawowe statystyki serwera jako kolumny i wiersze (czas działania, gracze, pojazdy, obiekty, timery, zasoby, liczba funkcji API). Argumenty kategoria, opcje i filtr są przyjmowane, ale zestaw danych jest zawsze ten sam.

#### Składnia

```lua
table, table getPerformanceStats([string category = nil, string options = nil, string filter = nil])
```

#### Argumenty

- `category` (string, opcjonalny = nil) - Dla zgodności ze starszymi skryptami.
- `options` (string, opcjonalny = nil) - Dla zgodności ze starszymi skryptami.
- `filter` (string, opcjonalny = nil) - Dla zgodności ze starszymi skryptami.

#### Zwraca

Nagłówki kolumn i wiersze `{ {nazwa, wartość}, ... }`.

#### Przykład

```lua
local columns, rows = getPerformanceStats("Lua timing")
for _, row in ipairs(rows) do outputServerLog(row[1] .. ": " .. row[2]) end
```

#### Zobacz też

- [`getProcessMemoryStats`](https://trilogy-hub.com/docs/getProcessMemoryStats/)
- [`getNetworkUsageData`](https://trilogy-hub.com/docs/getNetworkUsageData/)

### getProcessMemoryStats

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca zużycie pamięci przez skrypty Lua serwera.

#### Składnia

```lua
table getProcessMemoryStats()
```

#### Zwraca

`{ luaKilobytes = ... }`.

#### Przykład

```lua
outputServerLog("Lua: " .. getProcessMemoryStats().luaKilobytes .. " KB")
```

#### Zobacz też

- [`getPerformanceStats`](https://trilogy-hub.com/docs/getPerformanceStats/)

### isChatInputBlocked

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca wartość z `setChatInputBlocked`.

#### Składnia

```lua
bool isChatInputBlocked()
```

#### Zwraca

`true`, gdy zablokowano.

#### Przykład

```lua
outputServerLog(tostring(isChatInputBlocked()))
```

#### Zobacz też

- [`setChatInputBlocked`](https://trilogy-hub.com/docs/setChatInputBlocked/)

### isShowCollisionsEnabled

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca wartość z `showCol`.

#### Składnia

```lua
bool isShowCollisionsEnabled()
```

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
outputServerLog(tostring(isShowCollisionsEnabled()))
```

#### Zobacz też

- [`showCol`](https://trilogy-hub.com/docs/showCol/)

### isShowSoundEnabled

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca wartość z `showSound`.

#### Składnia

```lua
bool isShowSoundEnabled()
```

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
outputServerLog(tostring(isShowSoundEnabled()))
```

#### Zobacz też

- [`showSound`](https://trilogy-hub.com/docs/showSound/)

### isTransferBoxAlwaysVisible

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca, czy okienko pobierania pokazuje się także przy małych plikach.

#### Składnia

```lua
bool isTransferBoxAlwaysVisible()
```

#### Zwraca

Wartość ustawienia (domyślnie `false`).

#### Przykład

```lua
outputServerLog(tostring(isTransferBoxAlwaysVisible()))
```

#### Zobacz też

- [`isTransferBoxVisible`](https://trilogy-hub.com/docs/isTransferBoxVisible/)

### pregFind

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Sprawdza, czy tekst pasuje do wyrażenia regularnego (składnia jak w JavaScript). Flagi jako tekst (`"i"` - bez wielkości liter, `"m"` - wiele linii, `"s"` - kropka łapie nową linię, `"u"` - Unicode) albo liczba.

#### Składnia

```lua
bool pregFind(string subject, string pattern [, string/int flags = ""])
```

#### Argumenty

- `subject` (string) - Tekst.
- `pattern` (string) - Wyrażenie regularne.
- `flags` (string/int, opcjonalny = "") - Flagi.

#### Zwraca

`true`, gdy pasuje.

#### Przykład

```lua
addEventHandler("onPlayerChat", root, function(message)
    if pregFind(message, "\\b(cheat|hack)\\b", "i") then
        cancelEvent()
        outputChatBox("Nie pisz o cheatach", source)
    end
end)
```

#### Zobacz też

- [`pregMatch`](https://trilogy-hub.com/docs/pregMatch/)
- [`pregReplace`](https://trilogy-hub.com/docs/pregReplace/)

### pregMatch

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca wszystkie dopasowania wyrażenia regularnego w tekście. Gdy wzorzec ma grupy w nawiasach, każde dopasowanie jest tablicą: całe dopasowanie i kolejne grupy.

#### Składnia

```lua
table pregMatch(string base, string pattern [, string/int flags = "", int maxResults = 100000])
```

#### Argumenty

- `base` (string) - Tekst.
- `pattern` (string) - Wyrażenie regularne.
- `flags` (string/int, opcjonalny = "") - Flagi (jak w `pregFind`).
- `maxResults` (int, opcjonalny = 100000) - Najwięcej wyników.

#### Zwraca

Tablica dopasowań (pusta, gdy brak) albo `false` przy błędnym wzorcu.

#### Przykład

```lua
local text = "Kontakt: 123-456-789 lub 987-654-321"
for _, number in ipairs(pregMatch(text, "\\d{3}-\\d{3}-\\d{3}")) do outputServerLog(number) end
```

#### Zobacz też

- [`pregFind`](https://trilogy-hub.com/docs/pregFind/)

### pregReplace

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zamienia wszystkie fragmenty pasujące do wyrażenia regularnego. W tekście zamiany `$1`, `$2` wstawiają grupy.

#### Składnia

```lua
string pregReplace(string subject, string pattern, string replacement [, string/int flags = ""])
```

#### Argumenty

- `subject` (string) - Tekst.
- `pattern` (string) - Wyrażenie regularne.
- `replacement` (string) - Tekst zamiany.
- `flags` (string/int, opcjonalny = "") - Flagi (jak w `pregFind`).

#### Zwraca

Tekst po zamianie albo `false` przy błędnym wzorcu.

#### Przykład

```lua
addEventHandler("onPlayerChat", root, function(message)
    local clean = pregReplace(message, "(kurde|cholera)", "***", "i")
    if clean ~= message then
        cancelEvent()
        outputChatBox(getPlayerName(source) .. ": " .. clean)
    end
end)
```

#### Zobacz też

- [`pregFind`](https://trilogy-hub.com/docs/pregFind/)

### setChatInputBlocked

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Tylko Trilogy Hub*

Zapisuje blokadę pisania na czacie.

#### Składnia

```lua
bool setChatInputBlocked(bool blocked)
```

#### Argumenty

- `blocked` (bool) - `true` = blokada.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setChatInputBlocked(true)
addEventHandler("onPlayerChat", root, function()
    if isChatInputBlocked() then cancelEvent() end
end)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Okno czatu u graczy się nie blokuje; do wyciszenia użyj `cancelEvent` w `onPlayerChat`.

#### Zobacz też

- [`isChatInputBlocked`](https://trilogy-hub.com/docs/isChatInputBlocked/)

### showCol

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zapisuje włączenie podglądu brył kolizji u graczy (narzędzie dla twórców map).

#### Składnia

```lua
bool showCol(bool state)
```

#### Argumenty

- `state` (bool) - `true` = włączony.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
showCol(true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie pokazuje jeszcze brył kolizji.

#### Zobacz też

- [`isShowCollisionsEnabled`](https://trilogy-hub.com/docs/isShowCollisionsEnabled/)

### showSound

*Funkcja · Strona: Serwer · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zapisuje włączenie podglądu źródeł dźwięku u graczy.

#### Składnia

```lua
bool showSound(bool state)
```

#### Argumenty

- `state` (bool) - `true` = włączony.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
showSound(true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie pokazuje jeszcze źródeł dźwięku.

#### Zobacz też

- [`isShowSoundEnabled`](https://trilogy-hub.com/docs/isShowSoundEnabled/)

### breakObject

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Rozbija zniszczalny obiekt: obiekt znika u graczy, a serwer wywołuje `onObjectBreak`. Nic nie robi dla obiektów niezniszczalnych.

#### Składnia

```lua
bool breakObject(object theObject)
```

#### Argumenty

- `theObject` (object) - Obiekt.

#### Zwraca

`true`, gdy rozbito.

#### Przykład

```lua
local glass = createObject(1649, 2495, -1660, 14, 0, 0, 0, true)
setTimer(function() breakObject(glass) end, 5000, 1)
```

#### Zobacz też

- [`respawnObject`](https://trilogy-hub.com/docs/respawnObject/)
- [`isObjectBreakable`](https://trilogy-hub.com/docs/isObjectBreakable/)

### createBuilding

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Tworzy nieruchomy budynek z modelu - lżejszy od obiektu element bez fizyki, przeznaczony do dużych map.

#### Składnia

```lua
building createBuilding(int modelId, float x, float y, float z [, float rx = 0, float ry = 0, float rz = 0, int interior = 0])
```

#### Argumenty

- `modelId` (int) - Numer modelu.
- `x` (float) - X.
- `y` (float) - Y.
- `z` (float) - Z.
- `rx` (float, opcjonalny = 0) - Obrót X.
- `ry` (float, opcjonalny = 0) - Obrót Y.
- `rz` (float, opcjonalny = 0) - Obrót Z.
- `interior` (int, opcjonalny = 0) - Wnętrze.

#### Zwraca

Element `building` albo `false`.

#### Przykład

```lua
local building = createBuilding(4550, 1500, -1500, 13)
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Gra nie rysuje jeszcze elementów `building`; do widocznych konstrukcji używaj `createObject`.

#### Zobacz też

- [`createObject`](https://trilogy-hub.com/docs/createObject/)

### getObjectMass

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Zwraca masę obiektu zapisaną przez `setObjectMass` (domyślnie 1).

#### Składnia

```lua
float getObjectMass(object theObject)
```

#### Argumenty

- `theObject` (object) - Obiekt.

#### Zwraca

Masa.

#### Przykład

```lua
local obj = createObject(1225, 0, 0, 3)
outputDebugString(getObjectMass(obj))
```

#### Zobacz też

- [`setObjectMass`](https://trilogy-hub.com/docs/setObjectMass/)

### getObjectProperty

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Zwraca właściwość fizyczną zapisaną przez `setObjectProperty`; `"all"` zwraca tabelę wszystkich.

#### Składnia

```lua
any getObjectProperty(object theObject, string property)
```

#### Argumenty

- `theObject` (object) - Obiekt.
- `property` (string) - Nazwa właściwości albo `"all"`.

#### Zwraca

Wartość albo `false`, gdy nie ustawiono.

#### Przykład

```lua
local obj = createObject(1225, 0, 0, 3)
for k, v in pairs(getObjectProperty(obj, "all")) do outputDebugString(k .. "=" .. tostring(v)) end
```

#### Zobacz też

- [`setObjectProperty`](https://trilogy-hub.com/docs/setObjectProperty/)

### isObjectRespawnable

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Zwraca, czy włączono powrót obiektu przez `toggleObjectRespawn`.

#### Składnia

```lua
bool isObjectRespawnable(object theObject)
```

#### Argumenty

- `theObject` (object) - Obiekt.

#### Zwraca

`true`, gdy włączony.

#### Przykład

```lua
local obj = createObject(1225, 0, 0, 3)
outputDebugString(tostring(isObjectRespawnable(obj)))
```

#### Zobacz też

- [`toggleObjectRespawn`](https://trilogy-hub.com/docs/toggleObjectRespawn/)

### resetMapObjects

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Tylko Trilogy Hub*

Stawia obiekty mapy z powrotem na ich oryginalne miejsca u wszystkich graczy (np. sprzątanie po zamieszkach). Przyjmuje jeden klucz z `getMapObjects`, listę kluczy albo nic - wtedy wszystkie.

#### Składnia

```lua
bool resetMapObjects([string/table keys = nil])
```

#### Argumenty

- `keys` (string/table, opcjonalny = nil) - Klucz, tablica kluczy albo nic.

#### Zwraca

`true`, gdy coś przywrócono.

#### Przykład

```lua
setTimer(function() resetMapObjects() end, 30 * 60 * 1000, 0)
```

#### Zobacz też

- [`getMapObjects`](https://trilogy-hub.com/docs/getMapObjects/)

### respawnObject

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Przywraca obiekt na miejsce zapamiętane przez `toggleObjectRespawn(obiekt, true)`, naprawia go i pokazuje ponownie. Wywołuje `onObjectRespawn`.

#### Składnia

```lua
bool respawnObject(object theObject)
```

#### Argumenty

- `theObject` (object) - Obiekt.

#### Zwraca

`true` przy powodzeniu, `false`, gdy miejsca nie zapamiętano.

#### Przykład

```lua
local barrel = createObject(1225, 0, 0, 3, 0, 0, 0, true)
toggleObjectRespawn(barrel, true)
addEventHandler("onObjectBreak", barrel, function()
    setTimer(respawnObject, 30000, 1, barrel)
end)
```

#### Zobacz też

- [`toggleObjectRespawn`](https://trilogy-hub.com/docs/toggleObjectRespawn/)
- [`breakObject`](https://trilogy-hub.com/docs/breakObject/)

### setMapObjectSyncEnabled

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Tylko Trilogy Hub*

Włącza albo wyłącza synchronizację obiektów mapy San Andreas między graczami. Włączona (domyślnie): gdy ktoś przewróci hydrant albo rozbije beczkę, inni widzą to samo. Wyłączona: każdy gracz widzi własny stan obiektów.

#### Składnia

```lua
bool setMapObjectSyncEnabled(bool state)
```

#### Argumenty

- `state` (bool) - `true` = synchronizacja włączona.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setMapObjectSyncEnabled(false)
```

#### Zobacz też

- [`isMapObjectSyncEnabled`](https://trilogy-hub.com/docs/isMapObjectSyncEnabled/)
- [`getMapObjects`](https://trilogy-hub.com/docs/getMapObjects/)

### setObjectMass

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Zapisuje masę obiektu (wpływa na reakcję na uderzenia).

#### Składnia

```lua
bool setObjectMass(object theObject, float mass)
```

#### Argumenty

- `theObject` (object) - Obiekt.
- `mass` (float) - Masa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local obj = createObject(1225, 0, 0, 3)
setObjectMass(obj, 500)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Fizyka obiektu w grze się nie zmienia.

#### Zobacz też

- [`getObjectMass`](https://trilogy-hub.com/docs/getObjectMass/)
- [`setObjectProperty`](https://trilogy-hub.com/docs/setObjectProperty/)

### setObjectProperty

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Zapisuje właściwość fizyczną obiektu: `"mass"`, `"turn_mass"`, `"air_resistance"`, `"elasticity"`, `"center_of_mass"`, `"buoyancy"`.

#### Składnia

```lua
bool setObjectProperty(object theObject, string property, any value)
```

#### Argumenty

- `theObject` (object) - Obiekt.
- `property` (string) - Nazwa właściwości.
- `value` (any) - Wartość (liczba albo tabela `{x, y, z}` dla `center_of_mass`).

#### Zwraca

`true` przy powodzeniu, `false` dla nieznanej nazwy.

#### Przykład

```lua
local obj = createObject(1225, 0, 0, 3)
setObjectProperty(obj, "elasticity", 0.8)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Fizyka obiektu w grze się nie zmienia.

#### Zobacz też

- [`getObjectProperty`](https://trilogy-hub.com/docs/getObjectProperty/)

### toggleObjectRespawn

*Funkcja · Strona: Serwer · Kategoria: Obiekty · Identyczna z MTA:SA*

Włącza albo wyłącza powrót obiektu. Przy włączeniu zapamiętuje obecne miejsce i obrót, do których wróci `respawnObject`.

#### Składnia

```lua
bool toggleObjectRespawn(object theObject, bool respawn)
```

#### Argumenty

- `theObject` (object) - Obiekt.
- `respawn` (bool) - `true` = obiekt może wracać.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local obj = createObject(1225, 0, 0, 3, 0, 0, 0, true)
toggleObjectRespawn(obj, true)
```

#### Zobacz też

- [`respawnObject`](https://trilogy-hub.com/docs/respawnObject/)
- [`isObjectRespawnable`](https://trilogy-hub.com/docs/isObjectRespawnable/)

### getFires

*Funkcja · Strona: Serwer · Kategoria: Ogień · Tylko Trilogy Hub*

Zwraca listę płonących ogni rozpalonych przez serwer.

#### Składnia

```lua
table getFires()
```

#### Zwraca

Tablica `{ id, x, y, z, size, dimension }` posortowana po numerze.

#### Przykład

```lua
for _, f in ipairs(getFires()) do
    outputServerLog(("Ogień %d w %.1f, %.1f, %.1f"):format(f.id, f.x, f.y, f.z))
end
```

### isExplosionFiresEnabled

*Funkcja · Strona: Serwer · Kategoria: Ogień · Tylko Trilogy Hub*

Sprawdza, czy wybuchy zostawiają ognie wtórne.

#### Składnia

```lua
bool isExplosionFiresEnabled()
```

#### Zwraca

`true`, jeśli włączone.

#### Przykład

```lua
outputServerLog("Ognie po wybuchach: " .. tostring(isExplosionFiresEnabled()))
```

#### Zobacz też

- [`setExplosionFiresEnabled`](https://trilogy-hub.com/docs/setExplosionFiresEnabled/)

### isFireBurning

*Funkcja · Strona: Serwer · Kategoria: Ogień · Tylko Trilogy Hub*

Sprawdza, czy ogień o podanym numerze wciąż się pali.

#### Składnia

```lua
bool isFireBurning(int id)
```

#### Argumenty

- `id` (int) - Numer ognia z `createFire`.

#### Zwraca

`true`, jeśli się pali.

#### Przykład

```lua
local id = createFire(0, 0, 3, 3, 10000)
setTimer(function()
    print(isFireBurning(id))  -- false: minęło 10 s / 10 s have passed
end, 11000, 1)
```

### isFireSpreadEnabled

*Funkcja · Strona: Serwer · Kategoria: Ogień · Tylko Trilogy Hub*

Sprawdza, czy ogień rozprzestrzenia się na sąsiednie miejsca (`setFireSpreadEnabled`).

#### Składnia

```lua
bool isFireSpreadEnabled()
```

#### Zwraca

`true`, gdy ogień się rozprzestrzenia.

#### Przykład

```lua
addCommandHandler("ogien", function(player)
    setFireSpreadEnabled(not isFireSpreadEnabled())
    outputChatBox("Rozprzestrzenianie ognia: " .. tostring(isFireSpreadEnabled()), player)
end)
```

#### Zobacz też

- [`setFireSpreadEnabled`](https://trilogy-hub.com/docs/setFireSpreadEnabled/)

### setExplosionFiresEnabled

*Funkcja · Strona: Serwer · Kategoria: Ogień · Tylko Trilogy Hub*

Włącza lub wyłącza ognie wtórne po wybuchach (`createExplosion`, wybuch pojazdu). Ognie są takie same u wszystkich graczy. Domyślnie włączone.

#### Składnia

```lua
bool setExplosionFiresEnabled(bool state)
```

#### Argumenty

- `state` (bool) - `true` włącza, `false` wyłącza.

#### Zwraca

`true`.

#### Przykład

```lua
addEventHandler("onResourceStart", resourceRoot, function()
    setExplosionFiresEnabled(false)  -- strefa bez pożarów / no fires zone
end)
```

#### Zobacz też

- [`isExplosionFiresEnabled`](https://trilogy-hub.com/docs/isExplosionFiresEnabled/)

### setFireSpreadEnabled

*Funkcja · Strona: Serwer · Kategoria: Ogień · Tylko Trilogy Hub*

Decyduje, czy ogień przenosi się na sąsiednie miejsca (trawa, pojazdy obok). Ustawienie działa tak samo u wszystkich graczy. Domyślnie ogień się rozprzestrzenia.

#### Składnia

```lua
bool setFireSpreadEnabled(bool state)
```

#### Argumenty

- `state` (bool) - `true` = ogień się rozprzestrzenia, `false` = pali się tylko tam, gdzie powstał.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Serwer z wyścigami: wybuch auta nie podpala całej trasy.

```lua
addEventHandler("onResourceStart", resourceRoot, function()
    setFireSpreadEnabled(false)
end)
```

#### Zobacz też

- [`isFireSpreadEnabled`](https://trilogy-hub.com/docs/isFireSpreadEnabled/)
- [`createFire`](https://trilogy-hub.com/docs/createFire/)
- [`setExplosionFiresEnabled`](https://trilogy-hub.com/docs/setExplosionFiresEnabled/)

### getPickupRespawnInterval

*Funkcja · Strona: Serwer · Kategoria: Pickupy · Identyczna z MTA:SA*

Zwraca czas (ms), po jakim zebrany pickup wraca.

#### Składnia

```lua
int getPickupRespawnInterval(pickup thePickup)
```

#### Argumenty

- `thePickup` (pickup) - Pickup.

#### Zwraca

Czas w ms albo `false`.

#### Przykład

```lua
local pickup = createPickup(0, 0, 3, 0, 100, 45000)
outputDebugString(getPickupRespawnInterval(pickup) .. " ms")
```

#### Zobacz też

- [`setPickupRespawnInterval`](https://trilogy-hub.com/docs/setPickupRespawnInterval/)

### isPickupSpawned

*Funkcja · Strona: Serwer · Kategoria: Pickupy · Identyczna z MTA:SA*

Sprawdza, czy pickup jest teraz widoczny i można go zebrać (a nie czeka na powrót po zebraniu).

#### Składnia

```lua
bool isPickupSpawned(pickup thePickup)
```

#### Argumenty

- `thePickup` (pickup) - Pickup.

#### Zwraca

`true`, gdy pickup jest dostępny.

#### Przykład

```lua
local pickup = createPickup(0, 0, 3, 0, 100)
outputDebugString(isPickupSpawned(pickup) and "Dostepny" or "Czeka")
```

#### Zobacz też

- [`usePickup`](https://trilogy-hub.com/docs/usePickup/)

### setPickupAmmo

*Funkcja · Strona: Serwer · Kategoria: Pickupy · Tylko Trilogy Hub*

Zmienia liczbę naboi w pickupie z bronią.

#### Składnia

```lua
bool setPickupAmmo(pickup thePickup, int ammo)
```

#### Argumenty

- `thePickup` (pickup) - Pickup.
- `ammo` (int) - Nowa liczba naboi (ujemna = 0).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local pickup = createPickup(0, 0, 3, 2, 31, 30000, 200)
setPickupAmmo(pickup, 500)
```

#### Zobacz też

- [`getPickupAmmo`](https://trilogy-hub.com/docs/getPickupAmmo/)

### setPickupRespawnInterval

*Funkcja · Strona: Serwer · Kategoria: Pickupy · Identyczna z MTA:SA*

Ustawia czas (ms), po jakim zebrany pickup pojawi się ponownie.

#### Składnia

```lua
bool setPickupRespawnInterval(pickup thePickup, int ms)
```

#### Argumenty

- `thePickup` (pickup) - Pickup.
- `ms` (int) - Czas w ms.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local pickup = createPickup(0, 0, 3, 0, 100)
setPickupRespawnInterval(pickup, 120000)
```

#### Zobacz też

- [`getPickupRespawnInterval`](https://trilogy-hub.com/docs/getPickupRespawnInterval/)

### setPickupType

*Funkcja · Strona: Serwer · Kategoria: Pickupy · Identyczna z MTA:SA*

Zmienia typ istniejącego pickupu i jego zawartość, bez tworzenia go od nowa. Argumenty `amount` i `ammo` znaczą to samo co w `createPickup`.

#### Składnia

```lua
bool setPickupType(pickup thePickup, int theType [, int amount = 0, int ammo = 0])
```

#### Argumenty

- `thePickup` (pickup) - Pickup.
- `theType` (int) - 0 = zdrowie, 1 = pancerz, 2 = broń, 3 = model.
- `amount` (int, opcjonalny = 0) - Punkty, numer broni albo modelu.
- `ammo` (int, opcjonalny = 0) - Naboje dla broni.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local pickup = createPickup(0, 0, 3, 0, 100)
setPickupType(pickup, 2, 22, 34)
```

#### Zobacz też

- [`createPickup`](https://trilogy-hub.com/docs/createPickup/)
- [`getPickupType`](https://trilogy-hub.com/docs/getPickupType/)

### usePickup

*Funkcja · Strona: Serwer · Kategoria: Pickupy · Identyczna z MTA:SA*

Zbiera pickup ręcznie, tak jakby gracz w niego wszedł: daje zawartość, uruchamia `onPickupUse` i chowa pickup na czas powrotu. Bez gracza pickup jest tylko chowany.

#### Składnia

```lua
bool usePickup(pickup thePickup [, player thePlayer = nil])
```

#### Argumenty

- `thePickup` (pickup) - Pickup.
- `thePlayer` (player, opcjonalny = nil) - Gracz, który zbiera.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local medkit = createPickup(2495, -1660, 13.5, 0, 100)
addCommandHandler("apteczka", function(player)
    if isPickupSpawned(medkit) then usePickup(medkit, player) end
end)
```

#### Zobacz też

- [`isPickupSpawned`](https://trilogy-hub.com/docs/isPickupSpawned/)
- [`onPickupUse`](https://trilogy-hub.com/docs/onPickupUse/)

### fileGetHash

*Funkcja · Strona: Serwer · Kategoria: Pliki · Zmodyfikowana względem MTA:SA*

Zwraca skrót zawartości pliku w zapisie szesnastkowym. Przydaje się do sprawdzenia, czy plik się zmienił. Skrót liczony jest z treści jako tekstu UTF-8, więc dla plików binarnych może różnić się od skrótu z innych narzędzi. Algorytmy: `"md5"`, `"sha1"`, `"sha224"`, `"sha256"`, `"sha384"`, `"sha512"`.

#### Składnia

```lua
string fileGetHash(file/string fileOrPath [, string algorithm = "md5"])
```

#### Argumenty

- `fileOrPath` (file/string) - Uchwyt albo ścieżka.
- `algorithm` (string, opcjonalny = "md5") - Algorytm skrótu.

#### Zwraca

Skrót albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `table options = nil`
- W MTA:SA: `fileGetHash(file theFile, string algorithm, table options = nil)`

#### Przykład

```lua
outputDebugString("config.json: " .. tostring(fileGetHash("config.json", "sha256")))
```

#### Zobacz też

- [`hash`](https://trilogy-hub.com/docs/hash/)
- [`fileGetContents`](https://trilogy-hub.com/docs/fileGetContents/)

### pathIsDirectory

*Funkcja · Strona: Serwer · Kategoria: Pliki · Identyczna z MTA:SA*

Sprawdza, czy ścieżka w folderze zasobu wskazuje na folder.

#### Składnia

```lua
bool pathIsDirectory(string path)
```

#### Argumenty

- `path` (string) - Ścieżka.

#### Zwraca

`true` dla folderu.

#### Przykład

```lua
if not pathIsDirectory("logs") then outputDebugString("Brak folderu logs") end
```

#### Zobacz też

- [`pathIsFile`](https://trilogy-hub.com/docs/pathIsFile/)
- [`pathListDir`](https://trilogy-hub.com/docs/pathListDir/)

### pathIsFile

*Funkcja · Strona: Serwer · Kategoria: Pliki · Identyczna z MTA:SA*

Sprawdza, czy ścieżka w folderze zasobu wskazuje na plik.

#### Składnia

```lua
bool pathIsFile(string path)
```

#### Argumenty

- `path` (string) - Ścieżka.

#### Zwraca

`true` dla pliku.

#### Przykład

```lua
outputDebugString(tostring(pathIsFile("meta.xml")))
```

#### Zobacz też

- [`pathIsDirectory`](https://trilogy-hub.com/docs/pathIsDirectory/)
- [`pathListDir`](https://trilogy-hub.com/docs/pathListDir/)

### pathListDir

*Funkcja · Strona: Serwer · Kategoria: Pliki · Identyczna z MTA:SA*

Zwraca listę nazw w folderze zasobu; nazwy folderów kończą się znakiem `/`.

#### Składnia

```lua
table pathListDir(string path)
```

#### Argumenty

- `path` (string) - Ścieżka folderu (`""` = folder zasobu).

#### Zwraca

Tablica nazw albo `false`.

#### Przykład

```lua
for _, name in ipairs(pathListDir("maps") or {}) do
    if name:sub(-4) == ".xml" then outputDebugString("Mapa: " .. name) end
end
```

#### Zobacz też

- [`pathIsFile`](https://trilogy-hub.com/docs/pathIsFile/)
- [`pathIsDirectory`](https://trilogy-hub.com/docs/pathIsDirectory/)

### createProjectile

*Funkcja · Strona: Serwer · Kategoria: Pociski · Zmodyfikowana względem MTA:SA*

Tworzy na serwerze element pocisku (granat, rakieta, koktajl Mołotowa, ładunek wybuchowy itd.) z twórcą, rodzajem, siłą i celem. Uruchamia `onProjectileCreation`. Rodzaj to numer broni, np. 16 granat, 17 gaz łzawiący, 18 koktajl, 19 rakieta, 20 rakieta naprowadzana, 39 ładunek (satchel).

#### Składnia

```lua
projectile createProjectile(element creator, int weaponType [, float x = pozycja twórcy, float y = pozycja twórcy, float z = pozycja twórcy, float force = 1, element target = nil, float rx = 0, float ry = 0, float rz = 0, float vx = nil, float vy = 0, float vz = 0])
```

#### Argumenty

- `creator` (element) - Kto wystrzelił (gracz, postać, pojazd).
- `weaponType` (int) - Rodzaj pocisku (numer broni).
- `x` (float, opcjonalny = pozycja twórcy) - X startu.
- `y` (float, opcjonalny = pozycja twórcy) - Y startu.
- `z` (float, opcjonalny = pozycja twórcy) - Z startu.
- `force` (float, opcjonalny = 1) - Siła wyrzutu.
- `target` (element, opcjonalny = nil) - Cel pocisku naprowadzanego.
- `rx` (float, opcjonalny = 0) - Obrót X.
- `ry` (float, opcjonalny = 0) - Obrót Y.
- `rz` (float, opcjonalny = 0) - Obrót Z.
- `vx` (float, opcjonalny = nil) - Prędkość X.
- `vy` (float, opcjonalny = 0) - Prędkość Y.
- `vz` (float, opcjonalny = 0) - Prędkość Z.

#### Zwraca

Nowy pocisk albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int model`
- W MTA:SA: `createProjectile(element creator, int weaponType, float posX, float posY, float posZ, float force = 1.0, element target = nil, float rotX, float rotY, float rotZ, float velX, float velY, float velZ, int model)`

#### Przykład

```lua
addCommandHandler("granat", function(player)
    local x, y, z = getElementPosition(player)
    local grenade = createProjectile(player, 16, x, y + 5, z)
    setProjectileCounter(grenade, 3000)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Pocisk nie jest jeszcze rysowany w grze i nie leci sam. Wybuch wywołuje `setProjectileCounter` albo `detonateSatchels` (przez `createExplosion` w miejscu pocisku).

#### Zobacz też

- [`setProjectileCounter`](https://trilogy-hub.com/docs/setProjectileCounter/)
- [`getProjectileType`](https://trilogy-hub.com/docs/getProjectileType/)
- [`detonateSatchels`](https://trilogy-hub.com/docs/detonateSatchels/)
- [`createExplosion`](https://trilogy-hub.com/docs/createExplosion/)

### detonateSatchels

*Funkcja · Strona: Serwer · Kategoria: Pociski · Identyczna z MTA:SA*

Detonuje wszystkie ładunki wybuchowe (pociski rodzaju 39) położone przez gracza; bez gracza - wszystkie na serwerze. Każdy wybucha w swoim miejscu i znika.

#### Składnia

```lua
bool detonateSatchels([player thePlayer = nil])
```

#### Argumenty

- `thePlayer` (player, opcjonalny = nil) - Właściciel ładunków.

#### Zwraca

`true`, gdy coś zdetonowano.

#### Przykład

```lua
addCommandHandler("detonuj", function(player)
    if not detonateSatchels(player) then outputChatBox("Nie masz ladunkow", player) end
end)
```

#### Zobacz też

- [`createProjectile`](https://trilogy-hub.com/docs/createProjectile/)

### getProjectileCounter

*Funkcja · Strona: Serwer · Kategoria: Pociski · Identyczna z MTA:SA*

Zwraca licznik pocisku w ms (czas do wybuchu ustawiony przez `setProjectileCounter`; 0 = brak).

#### Składnia

```lua
int getProjectileCounter(projectile theProjectile)
```

#### Argumenty

- `theProjectile` (projectile) - Pocisk.

#### Zwraca

Licznik w ms albo `false`.

#### Przykład

```lua
addEventHandler("onProjectileCreation", root, function()
    outputDebugString("Licznik: " .. getProjectileCounter(source))
end)
```

#### Zobacz też

- [`setProjectileCounter`](https://trilogy-hub.com/docs/setProjectileCounter/)

### getProjectileCreator

*Funkcja · Strona: Serwer · Kategoria: Pociski · Identyczna z MTA:SA*

Zwraca element, który wystrzelił pocisk.

#### Składnia

```lua
element getProjectileCreator(projectile theProjectile)
```

#### Argumenty

- `theProjectile` (projectile) - Pocisk.

#### Zwraca

Twórca albo `false`.

#### Przykład

```lua
addEventHandler("onProjectileCreation", root, function()
    local creator = getProjectileCreator(source)
    if creator and getElementType(creator) == "player" then
        outputDebugString(getPlayerName(creator) .. " rzucil pocisk")
    end
end)
```

#### Zobacz też

- [`createProjectile`](https://trilogy-hub.com/docs/createProjectile/)

### getProjectileForce

*Funkcja · Strona: Serwer · Kategoria: Pociski · Identyczna z MTA:SA*

Zwraca siłę, z jaką utworzono pocisk (domyślnie 1).

#### Składnia

```lua
float getProjectileForce(projectile theProjectile)
```

#### Argumenty

- `theProjectile` (projectile) - Pocisk.

#### Zwraca

Siła albo `false`.

#### Przykład

```lua
addEventHandler("onProjectileCreation", root, function()
    outputDebugString("Sila: " .. getProjectileForce(source))
end)
```

#### Zobacz też

- [`createProjectile`](https://trilogy-hub.com/docs/createProjectile/)

### getProjectileTarget

*Funkcja · Strona: Serwer · Kategoria: Pociski · Identyczna z MTA:SA*

Zwraca cel pocisku naprowadzanego.

#### Składnia

```lua
element getProjectileTarget(projectile theProjectile)
```

#### Argumenty

- `theProjectile` (projectile) - Pocisk.

#### Zwraca

Cel albo `false`, gdy go nie ma.

#### Przykład

```lua
addEventHandler("onProjectileCreation", root, function()
    local target = getProjectileTarget(source)
    if target then outputDebugString("Cel: " .. getElementType(target)) end
end)
```

#### Zobacz też

- [`createProjectile`](https://trilogy-hub.com/docs/createProjectile/)

### getProjectileType

*Funkcja · Strona: Serwer · Kategoria: Pociski · Identyczna z MTA:SA*

Zwraca rodzaj pocisku (numer broni).

#### Składnia

```lua
int getProjectileType(projectile theProjectile)
```

#### Argumenty

- `theProjectile` (projectile) - Pocisk.

#### Zwraca

Rodzaj albo `false`.

#### Przykład

```lua
addEventHandler("onProjectileCreation", root, function(creator)
    outputDebugString("Pocisk rodzaju " .. getProjectileType(source))
end)
```

#### Zobacz też

- [`createProjectile`](https://trilogy-hub.com/docs/createProjectile/)

### setProjectileCounter

*Funkcja · Strona: Serwer · Kategoria: Pociski · Identyczna z MTA:SA*

Ustawia czas do wybuchu pocisku w ms. Po jego upływie w miejscu pocisku następuje wybuch odpowiedni do rodzaju pocisku, a pocisk znika.

#### Składnia

```lua
bool setProjectileCounter(projectile theProjectile, int timeToDetonate)
```

#### Argumenty

- `theProjectile` (projectile) - Pocisk.
- `timeToDetonate` (int) - Czas w ms (najmniej 50; 0 = bez wybuchu).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("bomba", function(player)
    local x, y, z = getElementPosition(player)
    setProjectileCounter(createProjectile(player, 39, x, y, z), 5000)
end)
```

#### Zobacz też

- [`getProjectileCounter`](https://trilogy-hub.com/docs/getProjectileCounter/)
- [`createProjectile`](https://trilogy-hub.com/docs/createProjectile/)

### addVehicleSirens

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje dla pojazdu zestaw własnych świateł syreny: liczbę punktów, typ i flagi. Po nim położenie i kolor każdego punktu ustawia `setVehicleSirens`.

#### Składnia

```lua
bool addVehicleSirens(vehicle vehicle, int sirenCount, int sirenType [, bool flag360 = false, bool checkLos = true, bool randomiser = true, bool silent = false])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `sirenCount` (int) - Liczba świateł 1-8.
- `sirenType` (int) - Typ migania 1-6.
- `flag360` (bool, opcjonalny = false) - Światła widoczne ze wszystkich stron.
- `checkLos` (bool, opcjonalny = true) - Sprawdzanie zasłonięcia świateł.
- `randomiser` (bool, opcjonalny = true) - Losowa kolejność błysków.
- `silent` (bool, opcjonalny = false) - Koguty bez dźwięku syreny.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(596, 1535, -1670, 13.4)
addVehicleSirens(vehicle, 2, 2, true)
setVehicleSirens(vehicle, 1, -0.5, 0, 1, 255, 0, 0)
setVehicleSirens(vehicle, 2, 0.5, 0, 1, 0, 0, 255)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie rysuje jeszcze własnych punktów syren; pojazdy z syreną w grze migają swoimi fabrycznymi kogutami (`setVehicleSirensOn`).

#### Zobacz też

- [`setVehicleSirens`](https://trilogy-hub.com/docs/setVehicleSirens/)
- [`getVehicleSirens`](https://trilogy-hub.com/docs/getVehicleSirens/)
- [`removeVehicleSirens`](https://trilogy-hub.com/docs/removeVehicleSirens/)
- [`setVehicleSirensOn`](https://trilogy-hub.com/docs/setVehicleSirensOn/)

### areVehicleDoorsUndamageable

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca wartość ustawioną przez `setVehicleDoorsUndamageable` (domyślnie `false`).

#### Składnia

```lua
bool areVehicleDoorsUndamageable(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local limo = createVehicle(409, 1480, -1740, 13.5)
outputDebugString(tostring(areVehicleDoorsUndamageable(limo)))
```

#### Zobacz też

- [`setVehicleDoorsUndamageable`](https://trilogy-hub.com/docs/setVehicleDoorsUndamageable/)

### attachTrailerToVehicle

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Doczepia przyczepę albo naczepę do pojazdu ciągnącego (ciężarówki, ciągnika, holownika) u wszystkich graczy. Wywołuje zdarzenie `onTrailerAttach` na przyczepie; jeśli jakiś skrypt je anuluje (`cancelEvent`), przyczepa nie zostanie doczepiona. Gracze mogą też doczepiać naczepy normalnie w grze, cofając na nie ciężarówką.

#### Składnia

```lua
bool attachTrailerToVehicle(vehicle truck, vehicle trailer)
```

#### Argumenty

- `truck` (vehicle) - Pojazd ciągnący.
- `trailer` (vehicle) - Przyczepa (inny pojazd niż ciągnący).

#### Zwraca

`true`, gdy przyczepa została doczepiona.

#### Przykład

```lua
local truck = createVehicle(403, 2200, -2250, 14)
local trailer = createVehicle(435, 2200, -2260, 14)
attachTrailerToVehicle(truck, trailer)
```

#### Zobacz też

- [`detachTrailerFromVehicle`](https://trilogy-hub.com/docs/detachTrailerFromVehicle/)
- [`getVehicleTowedByVehicle`](https://trilogy-hub.com/docs/getVehicleTowedByVehicle/)
- [`getVehicleTowingVehicle`](https://trilogy-hub.com/docs/getVehicleTowingVehicle/)

### blowVehicle

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Niszczy pojazd: zdrowie spada do 0, silnik gaśnie, pojazd staje się wrakiem (`isVehicleBlown` = `true`) i wywołuje zdarzenie `onVehicleExplode`. Domyślnie wszyscy gracze widzą też wybuch. Jeśli odradzanie pojazdu jest włączone (`toggleVehicleRespawn`, domyślnie nie), wrak wraca na swoje miejsce startowe po czasie z `setVehicleRespawnDelay` (domyślnie 10 s); bez odradzania wrak znika po czasie z `setVehicleWreckDelay` (domyślnie 20 s). Wysadzenie już zniszczonego pojazdu nic nie robi.

#### Składnia

```lua
bool blowVehicle(vehicle vehicle [, bool explode = true])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd do zniszczenia.
- `explode` (bool, opcjonalny = true) - `true` = z widocznym wybuchem; `false` = pojazd po cichu staje się wrakiem, bez eksplozji.

#### Zwraca

`true` przy powodzeniu, `false` gdy pojazd już jest wrakiem.

#### Przykład

```lua
addCommandHandler("wysadz", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then blowVehicle(vehicle) end
end)
```

#### Zobacz też

- [`isVehicleBlown`](https://trilogy-hub.com/docs/isVehicleBlown/)
- [`fixVehicle`](https://trilogy-hub.com/docs/fixVehicle/)
- [`setVehicleRespawnDelay`](https://trilogy-hub.com/docs/setVehicleRespawnDelay/)
- [`toggleVehicleRespawn`](https://trilogy-hub.com/docs/toggleVehicleRespawn/)
- [`setVehicleWreckDelay`](https://trilogy-hub.com/docs/setVehicleWreckDelay/)

### detachTrailerFromVehicle

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Odczepia przyczepę od pojazdu ciągnącego u wszystkich graczy i wywołuje `onTrailerDetach` na przyczepie. Można podać konkretną przyczepę; wtedy funkcja zadziała tylko, jeśli to właśnie ona jest doczepiona.

#### Składnia

```lua
bool detachTrailerFromVehicle(vehicle truck [, vehicle trailer = nil])
```

#### Argumenty

- `truck` (vehicle) - Pojazd ciągnący.
- `trailer` (vehicle, opcjonalny = nil) - Przyczepa do odczepienia; `nil` = ta, która jest doczepiona.

#### Zwraca

`true`, gdy odczepiono; `false`, gdy nic nie było doczepione.

#### Przykład

```lua
addCommandHandler("odczep", function(player)
    local truck = getPedOccupiedVehicle(player)
    if truck then detachTrailerFromVehicle(truck) end
end)
```

#### Zobacz też

- [`attachTrailerToVehicle`](https://trilogy-hub.com/docs/attachTrailerToVehicle/)

### getHandlingFieldNames

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca nazwy wszystkich pól handlingu przyjmowanych przez `setVehicleHandling` i `setModelHandling`: `mass`, `turnMass`, `dragCoeff`, `centerOfMass`, `percentSubmerged`, `tractionMultiplier`, `tractionLoss`, `tractionBias`, `numberOfGears`, `maxVelocity`, `engineAcceleration`, `engineInertia`, `driveType`, `engineType`, `brakeDeceleration`, `brakeBias`, `ABS`, `steeringLock`, pola `suspension*`, `seatOffsetDistance`, `collisionDamageMultiplier`, `monetary`, `modelFlags`, `handlingFlags`, `headLight`, `tailLight`, `animGroup`.

#### Składnia

```lua
table getHandlingFieldNames()
```

#### Zwraca

Tablica nazw pól.

#### Przykład

```lua
outputDebugString(table.concat(getHandlingFieldNames(), ", "))
```

#### Zobacz też

- [`setVehicleHandling`](https://trilogy-hub.com/docs/setVehicleHandling/)

### getHeliBladeCollisionsEnabled

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wartość zapisaną przez `setHeliBladeCollisionsEnabled` (domyślnie `true`).

#### Składnia

```lua
bool getHeliBladeCollisionsEnabled(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Helikopter.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local heli = createVehicle(487, 1765, -2290, 14)
outputDebugString(tostring(getHeliBladeCollisionsEnabled(heli)))
```

#### Zobacz też

- [`setHeliBladeCollisionsEnabled`](https://trilogy-hub.com/docs/setHeliBladeCollisionsEnabled/)

### getModelHandling

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca zmiany handlingu ustawione dla modelu przez `setModelHandling` (bez wartości fabrycznych).

#### Składnia

```lua
table/any getModelHandling(int model [, string property = nil])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `property` (string, opcjonalny = nil) - Nazwa jednego pola.

#### Zwraca

Tabela zmian (pusta, gdy brak) albo wartość pola (`false`, gdy pola nie zmieniono).

#### Przykład

```lua
setModelHandling(596, "maxVelocity", 220)
outputDebugString("Radiowoz LS Vmax: " .. tostring(getModelHandling(596, "maxVelocity")))
```

#### Zobacz też

- [`setModelHandling`](https://trilogy-hub.com/docs/setModelHandling/)

### getModelMaxPassengers

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca liczbę miejsc pasażerskich modelu po uwzględnieniu limitu z `setModelMaxPassengers`.

#### Składnia

```lua
int getModelMaxPassengers(int model)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.

#### Zwraca

Liczba miejsc albo `false`, gdy nieznana.

#### Przykład

```lua
setModelMaxPassengers(596, 1)
outputDebugString("Pasazerow: " .. tostring(getModelMaxPassengers(596)))
```

#### Zobacz też

- [`setModelMaxPassengers`](https://trilogy-hub.com/docs/setModelMaxPassengers/)

### getTrainDirection

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca kierunek jazdy zapisany przez `setTrainDirection` (domyślnie `true`).

#### Składnia

```lua
bool getTrainDirection(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pociąg.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
outputDebugString(tostring(getTrainDirection(train)))
```

#### Zobacz też

- [`setTrainDirection`](https://trilogy-hub.com/docs/setTrainDirection/)

### getTrainPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca położenie na torze zapisane przez `setTrainPosition` (domyślnie 0).

#### Składnia

```lua
float getTrainPosition(vehicle train)
```

#### Argumenty

- `train` (vehicle) - Pociąg.

#### Zwraca

Zapisana odległość.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
outputDebugString(getTrainPosition(train))
```

#### Zobacz też

- [`setTrainPosition`](https://trilogy-hub.com/docs/setTrainPosition/)

### getTrainSpeed

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca prędkość zapisaną przez `setTrainSpeed` (domyślnie 0).

#### Składnia

```lua
float getTrainSpeed(vehicle train)
```

#### Argumenty

- `train` (vehicle) - Pociąg.

#### Zwraca

Zapisana prędkość.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
outputDebugString(getTrainSpeed(train))
```

#### Zobacz też

- [`setTrainSpeed`](https://trilogy-hub.com/docs/setTrainSpeed/)

### getTrainTrack

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca numer toru zapisany przez `setTrainTrack` (domyślnie 0).

#### Składnia

```lua
int getTrainTrack(vehicle train)
```

#### Argumenty

- `train` (vehicle) - Pociąg.

#### Zwraca

Numer toru.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
outputDebugString(getTrainTrack(train))
```

#### Zobacz też

- [`setTrainTrack`](https://trilogy-hub.com/docs/setTrainTrack/)

### getVehicleAdjustableProperty

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca ustawienie ruchomej części zapisane przez `setVehicleAdjustableProperty` (domyślnie 0).

#### Składnia

```lua
int getVehicleAdjustableProperty(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Pozycja 0-4000.

#### Przykład

```lua
local forklift = createVehicle(530, 2200, -2250, 13.5)
outputDebugString(getVehicleAdjustableProperty(forklift))
```

#### Zobacz też

- [`setVehicleAdjustableProperty`](https://trilogy-hub.com/docs/setVehicleAdjustableProperty/)

### getVehicleColorId

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca dwa numery palety ustawione przez `setVehicleColorId`. Gdy pojazd ma kolory RGB z `setVehicleColor` (albo jeszcze żadnych), zwraca `false`; wtedy użyj `getVehicleColor`.

#### Składnia

```lua
int, int getVehicleColorId(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Numery kolorów 1 i 2 albo `false`.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleColorId(vehicle, 3, 1)
local c1, c2 = getVehicleColorId(vehicle)
outputDebugString(c1 .. ", " .. c2)
```

#### Zobacz też

- [`setVehicleColorId`](https://trilogy-hub.com/docs/setVehicleColorId/)
- [`getVehicleColor`](https://trilogy-hub.com/docs/getVehicleColor/)

### getVehicleComponentPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Zwraca przesunięcie części zapisane przez `setVehicleComponentPosition` (0, 0, 0, gdy nie ustawiono).

#### Składnia

```lua
float, float, float getVehicleComponentPosition(vehicle vehicle, string component)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.

#### Zwraca

x, y, z.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string base = "root"`
- W MTA:SA: `getVehicleComponentPosition(vehicle theVehicle, string theComponent, string base = "root")`

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
local x, y, z = getVehicleComponentPosition(vehicle, "bonnet_dummy")
```

#### Zobacz też

- [`setVehicleComponentPosition`](https://trilogy-hub.com/docs/setVehicleComponentPosition/)
- [`resetVehicleComponentPosition`](https://trilogy-hub.com/docs/resetVehicleComponentPosition/)

### getVehicleComponentRotation

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Zwraca obrót części zapisany przez `setVehicleComponentRotation` (0, 0, 0, gdy nie ustawiono).

#### Składnia

```lua
float, float, float getVehicleComponentRotation(vehicle vehicle, string component)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.

#### Zwraca

Obrót x, y, z w stopniach.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string base = "parent"`
- W MTA:SA: `getVehicleComponentRotation(vehicle theVehicle, string theComponent, string base = "parent")`

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
local rx = getVehicleComponentRotation(vehicle, "bonnet_dummy")
```

#### Zobacz też

- [`setVehicleComponentRotation`](https://trilogy-hub.com/docs/setVehicleComponentRotation/)
- [`resetVehicleComponentRotation`](https://trilogy-hub.com/docs/resetVehicleComponentRotation/)

### getVehicleComponentScale

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Zwraca skalę części zapisaną przez `setVehicleComponentScale` (1, 1, 1, gdy nie ustawiono).

#### Składnia

```lua
float, float, float getVehicleComponentScale(vehicle vehicle, string component)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.

#### Zwraca

Skala x, y, z.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string base = "root"`
- W MTA:SA: `getVehicleComponentScale(vehicle theVehicle, string theComponent, string base = "root")`

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
local sx, sy, sz = getVehicleComponentScale(vehicle, "exhaust_ok")
```

#### Zobacz też

- [`setVehicleComponentScale`](https://trilogy-hub.com/docs/setVehicleComponentScale/)
- [`resetVehicleComponentScale`](https://trilogy-hub.com/docs/resetVehicleComponentScale/)

### getVehicleDummyPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca położenie punktu pomocniczego pojazdu zapisane przez `setVehicleDummyPosition`.

#### Składnia

```lua
float, float, float getVehicleDummyPosition(vehicle vehicle, string dummy)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `dummy` (string) - Nazwa punktu.

#### Zwraca

x, y, z albo `false`, gdy nie ustawiono.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleDummyPosition(vehicle, "exhaust", 0.5, -2.3, -0.3)
local x, y, z = getVehicleDummyPosition(vehicle, "exhaust")
```

#### Zobacz też

- [`setVehicleDummyPosition`](https://trilogy-hub.com/docs/setVehicleDummyPosition/)

### getVehicleEntryPoints

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca punkty wsiadania pojazdu: ustawione przez `setVehicleEntryPoints` albo cztery przybliżone punkty po bokach pojazdu (dla foteli 0-3) w obecnym położeniu pojazdu.

#### Składnia

```lua
table getVehicleEntryPoints(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tablica punktów `{ x, y, z, seat }`.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
for _, p in ipairs(getVehicleEntryPoints(vehicle)) do
    outputDebugString(("Fotel %d: %.1f, %.1f"):format(p.seat, p.x, p.y))
end
```

#### Zobacz też

- [`setVehicleEntryPoints`](https://trilogy-hub.com/docs/setVehicleEntryPoints/)

### getVehicleGravity

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca kierunek grawitacji pojazdu zapisany przez `setVehicleGravity` (domyślnie 0, 0, -1).

#### Składnia

```lua
float, float, float getVehicleGravity(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

x, y, z.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
local gx, gy, gz = getVehicleGravity(vehicle)
```

#### Zobacz też

- [`setVehicleGravity`](https://trilogy-hub.com/docs/setVehicleGravity/)

### getVehicleIdleRespawnDelay

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca, po ilu milisekundach porzucony pojazd wraca na punkt odrodzenia (domyślnie 60000, 0 = wyłączone).

#### Składnia

```lua
int getVehicleIdleRespawnDelay(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Czas w milisekundach albo `false`.

#### Przykład

```lua
local vehicle = createVehicle(400, 2000, -1700, 13.5)
setVehicleIdleRespawnDelay(vehicle, 120000)
outputDebugString("Porzucone auto wraca po " .. getVehicleIdleRespawnDelay(vehicle) / 1000 .. " s")
```

#### Zobacz też

- [`setVehicleIdleRespawnDelay`](https://trilogy-hub.com/docs/setVehicleIdleRespawnDelay/)

### getVehicleLandingGearDown

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wartość zapisaną przez `setVehicleLandingGearDown` (domyślnie `true`).

#### Składnia

```lua
bool getVehicleLandingGearDown(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Samolot.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local plane = createVehicle(519, 1950, -2300, 14)
outputDebugString(tostring(getVehicleLandingGearDown(plane)))
```

#### Zobacz też

- [`setVehicleLandingGearDown`](https://trilogy-hub.com/docs/setVehicleLandingGearDown/)

### getVehicleModelDummyDefaultPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca fabryczne położenie punktu pomocniczego modelu. Dla `seat_front` i `seat_rear` podaje fabryczne miejsce przedniego i tylnego fotela z gry.

#### Składnia

```lua
float, float, float getVehicleModelDummyDefaultPosition(int model, string dummy)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `dummy` (string) - Nazwa punktu.

#### Zwraca

x, y, z albo `false`, gdy nieznane.

#### Przykład

```lua
local x, y, z = getVehicleModelDummyDefaultPosition(400, "seat_front")
```

#### Zobacz też

- [`getVehicleModelDummyPosition`](https://trilogy-hub.com/docs/getVehicleModelDummyPosition/)

### getVehicleModelDummyPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca położenie punktu pomocniczego modelu ustawione przez `setVehicleModelDummyPosition`.

#### Składnia

```lua
float, float, float getVehicleModelDummyPosition(int model, string dummy)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `dummy` (string) - Nazwa punktu.

#### Zwraca

x, y, z albo `false`, gdy nie ustawiono.

#### Przykład

```lua
local x, y, z = getVehicleModelDummyPosition(411, "seat_front")
```

#### Zobacz też

- [`setVehicleModelDummyPosition`](https://trilogy-hub.com/docs/setVehicleModelDummyPosition/)
- [`getVehicleModelDummyDefaultPosition`](https://trilogy-hub.com/docs/getVehicleModelDummyDefaultPosition/)

### getVehicleModelExhaustFumesPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca położenie wylotu spalin modelu ustawione przez `setVehicleModelExhaustFumesPosition`.

#### Składnia

```lua
float, float, float getVehicleModelExhaustFumesPosition(int model)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local x, y, z = getVehicleModelExhaustFumesPosition(411)
```

#### Zobacz też

- [`setVehicleModelExhaustFumesPosition`](https://trilogy-hub.com/docs/setVehicleModelExhaustFumesPosition/)

### getVehiclePlateDesign

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca wzór tablicy ustawiony przez `setVehiclePlateDesign` (-1 = gra wybiera sama).

#### Składnia

```lua
int getVehiclePlateDesign(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

-1, 0, 1 albo 2.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehiclePlateDesign(vehicle, 1)
outputDebugString("Wzor tablicy: " .. getVehiclePlateDesign(vehicle))
```

#### Zobacz też

- [`setVehiclePlateDesign`](https://trilogy-hub.com/docs/setVehiclePlateDesign/)

### getVehicleRespawnDelay

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca, po ilu milisekundach od zniszczenia wrak tego pojazdu się odrodzi (domyślnie 10000).

#### Składnia

```lua
int getVehicleRespawnDelay(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Czas w milisekundach albo `false` dla złego argumentu.

#### Przykład

```lua
addEventHandler("onVehicleExplode", root, function()
    local seconds = getVehicleRespawnDelay(source) / 1000
    outputDebugString(getVehicleName(source) .. " wroci za " .. seconds .. " s")
end)
```

#### Zobacz też

- [`setVehicleRespawnDelay`](https://trilogy-hub.com/docs/setVehicleRespawnDelay/)

### getVehicleRespawnPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca współrzędne miejsca, w którym pojazd pojawi się przy odrodzeniu.

#### Składnia

```lua
float, float, float getVehicleRespawnPosition(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Trzy liczby x, y, z albo `false`.

#### Przykład

```lua
addCommandHandler("gdzieparking", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    local x, y, z = getVehicleRespawnPosition(vehicle)
    outputChatBox(("Parking: %.1f, %.1f, %.1f"):format(x, y, z), player)
end)
```

#### Zobacz też

- [`setVehicleRespawnPosition`](https://trilogy-hub.com/docs/setVehicleRespawnPosition/)
- [`getVehicleRespawnRotation`](https://trilogy-hub.com/docs/getVehicleRespawnRotation/)

### getVehicleRespawnRotation

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca obrót, z jakim pojazd pojawi się przy odrodzeniu.

#### Składnia

```lua
float, float, float getVehicleRespawnRotation(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Obrót rx, ry, rz w stopniach albo `false`.

#### Przykład

```lua
local vehicle = createVehicle(560, 2495, -1665, 13.2, 0, 0, 90)
local _, _, rz = getVehicleRespawnRotation(vehicle)
outputDebugString("Kierunek odrodzenia: " .. rz)
```

#### Zobacz też

- [`setVehicleRespawnRotation`](https://trilogy-hub.com/docs/setVehicleRespawnRotation/)

### getVehicleRotorSpeed

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca prędkość wirnika zapisaną przez `setVehicleRotorSpeed` (domyślnie 0).

#### Składnia

```lua
float getVehicleRotorSpeed(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Helikopter albo samolot.

#### Zwraca

Zapisana prędkość.

#### Przykład

```lua
local heli = createVehicle(487, 1765, -2290, 14)
outputDebugString(getVehicleRotorSpeed(heli))
```

#### Zobacz też

- [`setVehicleRotorSpeed`](https://trilogy-hub.com/docs/setVehicleRotorSpeed/)

### getVehicleRotorState

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wartość zapisaną przez `setVehicleRotorState` (domyślnie `true`).

#### Składnia

```lua
bool getVehicleRotorState(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Helikopter.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local heli = createVehicle(487, 1765, -2290, 14)
outputDebugString(tostring(getVehicleRotorState(heli)))
```

#### Zobacz też

- [`setVehicleRotorState`](https://trilogy-hub.com/docs/setVehicleRotorState/)

### getVehicleSirenParams

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca ustawienia syren z `addVehicleSirens` jako tabelę: `SirenCount`, `SirenType` i `Flags` (`["360"]`, `DoLOSCheck`, `UseRandomiser`, `Silent`).

#### Składnia

```lua
table getVehicleSirenParams(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tabela ustawień albo `false`, gdy pojazd nie ma syren.

#### Przykład

```lua
local vehicle = createVehicle(596, 1535, -1670, 13.4)
addVehicleSirens(vehicle, 4, 2, true)
local params = getVehicleSirenParams(vehicle)
outputDebugString("Syren: " .. params.SirenCount)
```

#### Zobacz też

- [`addVehicleSirens`](https://trilogy-hub.com/docs/addVehicleSirens/)
- [`getVehicleSirens`](https://trilogy-hub.com/docs/getVehicleSirens/)

### getVehicleSirens

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca listę punktów syren zapisanych przez `addVehicleSirens` i `setVehicleSirens`. Każdy punkt to tabela z polami `x`, `y`, `z`, `Red`, `Green`, `Blue`, `Alpha`, `Min_Alpha`.

#### Składnia

```lua
table getVehicleSirens(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tablica punktów (pusta, gdy brak syren).

#### Przykład

```lua
local vehicle = createVehicle(596, 1535, -1670, 13.4)
addVehicleSirens(vehicle, 2, 2)
for i, point in ipairs(getVehicleSirens(vehicle)) do
    outputDebugString(i .. ": " .. point.Red .. ", " .. point.Green .. ", " .. point.Blue)
end
```

#### Zobacz też

- [`getVehicleSirenParams`](https://trilogy-hub.com/docs/getVehicleSirenParams/)
- [`setVehicleSirens`](https://trilogy-hub.com/docs/setVehicleSirens/)
- [`removeVehicleSirens`](https://trilogy-hub.com/docs/removeVehicleSirens/)
- [`addVehicleSirens`](https://trilogy-hub.com/docs/addVehicleSirens/)

### getVehiclesOfType

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca wszystkie istniejące pojazdy danego modelu, np. wszystkie taksówki na mapie.

#### Składnia

```lua
table getVehiclesOfType(int model)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.

#### Zwraca

Tablica pojazdów.

#### Przykład

```lua
for _, taxi in ipairs(getVehiclesOfType(420)) do
    setVehicleTaxiLightOn(taxi, true)
end
```

#### Zobacz też

- [`getElementsByType`](https://trilogy-hub.com/docs/getElementsByType/)
- [`getVehicleModelsOfType`](https://trilogy-hub.com/docs/getVehicleModelsOfType/)

### getVehicleTowedByVehicle

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca przyczepę, którą ciągnie podany pojazd.

#### Składnia

```lua
vehicle getVehicleTowedByVehicle(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd ciągnący.

#### Zwraca

Przyczepa albo `false`, gdy pojazd nic nie ciągnie.

#### Przykład

```lua
addCommandHandler("ladunek", function(player)
    local truck = getPedOccupiedVehicle(player)
    local trailer = truck and getVehicleTowedByVehicle(truck)
    outputChatBox(trailer and ("Ciagniesz: " .. getVehicleName(trailer)) or "Brak naczepy.", player)
end)
```

#### Zobacz też

- [`getVehicleTowingVehicle`](https://trilogy-hub.com/docs/getVehicleTowingVehicle/)
- [`attachTrailerToVehicle`](https://trilogy-hub.com/docs/attachTrailerToVehicle/)

### getVehicleTowingVehicle

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca pojazd, który ciągnie podaną przyczepę.

#### Składnia

```lua
vehicle getVehicleTowingVehicle(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Przyczepa.

#### Zwraca

Pojazd ciągnący albo `false`.

#### Przykład

```lua
addEventHandler("onTrailerAttach", root, function(towedBy)
    local truck = getVehicleTowingVehicle(source)
    local driver = truck and getVehicleController(truck)
    if driver and getElementType(driver) == "player" then outputChatBox("Naczepa podpieta.", driver) end
end)
```

#### Zobacz też

- [`getVehicleTowedByVehicle`](https://trilogy-hub.com/docs/getVehicleTowedByVehicle/)

### getVehicleTurnVelocity

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca prędkość obrotu pojazdu wokół osi x, y, z. To ta sama funkcja co `getElementAngularVelocity`.

#### Składnia

```lua
float, float, float getVehicleTurnVelocity(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pojazd.

#### Zwraca

Prędkość obrotu x, y, z.

#### Przykład

```lua
addCommandHandler("obrot", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        local _, _, rz = getVehicleTurnVelocity(vehicle)
        outputChatBox("Obrot: " .. rz, player)
    end
end)
```

#### Zobacz też

- [`setVehicleTurnVelocity`](https://trilogy-hub.com/docs/setVehicleTurnVelocity/)
- [`getElementAngularVelocity`](https://trilogy-hub.com/docs/getElementAngularVelocity/)

### getVehicleTurretPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca obrót wieżyczki zapisany przez `setVehicleTurretPosition` (poziomy, pionowy w radianach; domyślnie 0, 0).

#### Składnia

```lua
float, float getVehicleTurretPosition(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Obrót poziomy i pionowy.

#### Przykład

```lua
local tank = createVehicle(432, 300, 1900, 18)
local h, v = getVehicleTurretPosition(tank)
```

#### Zobacz też

- [`setVehicleTurretPosition`](https://trilogy-hub.com/docs/setVehicleTurretPosition/)

### getVehicleWheelFrictionState

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca przyczepność koła: 0 = pełna, 1 = poślizg, 2 = brak.

#### Składnia

```lua
int getVehicleWheelFrictionState(vehicle vehicle, int wheel)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `wheel` (int) - Numer koła 0-3.

#### Zwraca

0, 1 albo 2.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(getVehicleWheelFrictionState(vehicle, 0))
```

#### Uwagi

> **Uwaga:** **Wartość zawsze domyślna.** Serwer nie dostaje jeszcze tej informacji z gry, więc funkcja zwraca 0.

#### Zobacz też

- [`isVehicleWheelOnGround`](https://trilogy-hub.com/docs/isVehicleWheelOnGround/)

### getVehicleWheelScale

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca mnożnik rozmiaru kół zapisany przez `setVehicleWheelScale` (domyślnie 1).

#### Składnia

```lua
float getVehicleWheelScale(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Mnożnik.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(getVehicleWheelScale(vehicle))
```

#### Zobacz też

- [`setVehicleWheelScale`](https://trilogy-hub.com/docs/setVehicleWheelScale/)

### getVehicleWheelsRotation

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca obroty kół zapisane przez `setVehicleWheelsRotation`.

#### Składnia

```lua
float, float, float, float getVehicleWheelsRotation(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tylne lewe, tylne prawe, przednie lewe, przednie prawe.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
local rl, rr, fl, fr = getVehicleWheelsRotation(vehicle)
```

#### Zobacz też

- [`setVehicleWheelsRotation`](https://trilogy-hub.com/docs/setVehicleWheelsRotation/)

### getVehicleWreckDelay

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca, po ilu milisekundach od wybuchu wrak tego pojazdu zniknie (dla `root`: wartość domyślna, początkowo 20000).

#### Składnia

```lua
int getVehicleWreckDelay(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd albo `root`.

#### Zwraca

Czas w milisekundach albo `false` dla złego argumentu.

#### Przykład

```lua
addEventHandler("onVehicleExplode", root, function()
    outputDebugString("Wrak zniknie za " .. getVehicleWreckDelay(source) / 1000 .. " s")
end)
```

#### Zobacz też

- [`setVehicleWreckDelay`](https://trilogy-hub.com/docs/setVehicleWreckDelay/)

### isTrainChainEngine

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy wagon jest lokomotywą prowadzącą skład.

#### Składnia

```lua
bool isTrainChainEngine(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pociąg albo wagon.

#### Zwraca

`true` dla lokomotywy prowadzącej.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
outputDebugString(tostring(isTrainChainEngine(train)))
```

#### Uwagi

> **Uwaga:** **Wartość zawsze domyślna.** Serwer nie dostaje jeszcze z gry informacji o składach pociągów, więc funkcja zwraca `false`.

#### Zobacz też

- [`getTrainSpeed`](https://trilogy-hub.com/docs/getTrainSpeed/)

### isTrainDerailable

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wartość zapisaną przez `setTrainDerailable` (domyślnie `true`).

#### Składnia

```lua
bool isTrainDerailable(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pociąg.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
outputDebugString(tostring(isTrainDerailable(train)))
```

#### Zobacz też

- [`setTrainDerailable`](https://trilogy-hub.com/docs/setTrainDerailable/)

### isTrainDerailed

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wartość zapisaną przez `setTrainDerailed` (domyślnie `false`).

#### Składnia

```lua
bool isTrainDerailed(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pociąg.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
outputDebugString(tostring(isTrainDerailed(train)))
```

#### Zobacz też

- [`setTrainDerailed`](https://trilogy-hub.com/docs/setTrainDerailed/)

### isVehicleDamageProof

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy pojazd jest odporny na uszkodzenia (`setVehicleDamageProof`).

#### Składnia

```lua
bool isVehicleDamageProof(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy niezniszczalny.

#### Przykład

```lua
addCommandHandler("pancerz", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        setVehicleDamageProof(vehicle, not isVehicleDamageProof(vehicle))
    end
end)
```

#### Zobacz też

- [`setVehicleDamageProof`](https://trilogy-hub.com/docs/setVehicleDamageProof/)

### isVehicleFuelTankExplodable

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wartość ustawioną przez `setVehicleFuelTankExplodable` (domyślnie `false`).

#### Składnia

```lua
bool isVehicleFuelTankExplodable(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pojazd.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local tanker = createVehicle(514, 2200, -2250, 13.5)
outputDebugString(tostring(isVehicleFuelTankExplodable(tanker)))
```

#### Zobacz też

- [`setVehicleFuelTankExplodable`](https://trilogy-hub.com/docs/setVehicleFuelTankExplodable/)

### isVehicleRespawnable

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy pojazd ma włączone automatyczne odradzanie (`toggleVehicleRespawn`). Domyślnie `false`: wrak takiego pojazdu nie wraca, tylko znika po czasie z `setVehicleWreckDelay`.

#### Składnia

```lua
bool isVehicleRespawnable(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy odradzanie jest włączone.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
toggleVehicleRespawn(vehicle, true)
outputDebugString("Odradzanie: " .. tostring(isVehicleRespawnable(vehicle)))
```

#### Zobacz też

- [`toggleVehicleRespawn`](https://trilogy-hub.com/docs/toggleVehicleRespawn/)

### isVehicleSmokeTrailEnabled

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wartość zapisaną przez `setVehicleSmokeTrailEnabled` (domyślnie `false`).

#### Składnia

```lua
bool isVehicleSmokeTrailEnabled(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Samolot.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local plane = createVehicle(513, 1950, -2300, 14)
outputDebugString(tostring(isVehicleSmokeTrailEnabled(plane)))
```

#### Zobacz też

- [`setVehicleSmokeTrailEnabled`](https://trilogy-hub.com/docs/setVehicleSmokeTrailEnabled/)

### isVehicleWindowOpen

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca, czy szyba została oznaczona jako opuszczona przez `setVehicleWindowOpen`.

#### Składnia

```lua
bool isVehicleWindowOpen(vehicle vehicle, int window)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `window` (int) - Numer szyby 0-3.

#### Zwraca

`true`, gdy opuszczona.

#### Przykład

```lua
local vehicle = createVehicle(400, 2000, -1700, 13.5)
setVehicleWindowOpen(vehicle, 0, true)
outputDebugString(tostring(isVehicleWindowOpen(vehicle, 0)))
```

#### Zobacz też

- [`setVehicleWindowOpen`](https://trilogy-hub.com/docs/setVehicleWindowOpen/)

### removeVehicleSirens

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Usuwa z pojazdu własne syreny dodane przez `addVehicleSirens`.

#### Składnia

```lua
bool removeVehicleSirens(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(596, 1535, -1670, 13.4)
addVehicleSirens(vehicle, 2, 1)
removeVehicleSirens(vehicle)
```

#### Zobacz też

- [`addVehicleSirens`](https://trilogy-hub.com/docs/addVehicleSirens/)
- [`getVehicleSirens`](https://trilogy-hub.com/docs/getVehicleSirens/)
- [`setVehicleSirens`](https://trilogy-hub.com/docs/setVehicleSirens/)

### resetModelSeatPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Przywraca fabryczne (albo odziedziczone po modelu bazowym) miejsce jednego fotela modelu albo, bez numeru fotela, wszystkich jego foteli.

#### Składnia

```lua
bool resetModelSeatPosition(int model [, int seat = nil])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `seat` (int, opcjonalny = nil) - Fotel 0-7; `nil` = wszystkie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetModelSeatPosition(411)
```

#### Zobacz też

- [`setModelSeatPosition`](https://trilogy-hub.com/docs/setModelSeatPosition/)
- [`getModelSeatPosition`](https://trilogy-hub.com/docs/getModelSeatPosition/)

### resetVehicleComponentPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Kasuje przesunięcie części zapisane przez `setVehicleComponentPosition`.

#### Składnia

```lua
bool resetVehicleComponentPosition(vehicle vehicle, string component)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
resetVehicleComponentPosition(vehicle, "bonnet_dummy")
```

#### Zobacz też

- [`setVehicleComponentPosition`](https://trilogy-hub.com/docs/setVehicleComponentPosition/)
- [`getVehicleComponentPosition`](https://trilogy-hub.com/docs/getVehicleComponentPosition/)

### resetVehicleComponentRotation

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Kasuje obrót części zapisany przez `setVehicleComponentRotation`.

#### Składnia

```lua
bool resetVehicleComponentRotation(vehicle vehicle, string component)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
resetVehicleComponentRotation(vehicle, "bonnet_dummy")
```

#### Zobacz też

- [`setVehicleComponentRotation`](https://trilogy-hub.com/docs/setVehicleComponentRotation/)
- [`getVehicleComponentRotation`](https://trilogy-hub.com/docs/getVehicleComponentRotation/)

### resetVehicleComponentScale

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Kasuje skalę części zapisaną przez `setVehicleComponentScale`.

#### Składnia

```lua
bool resetVehicleComponentScale(vehicle vehicle, string component)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
resetVehicleComponentScale(vehicle, "exhaust_ok")
```

#### Zobacz też

- [`setVehicleComponentScale`](https://trilogy-hub.com/docs/setVehicleComponentScale/)
- [`getVehicleComponentScale`](https://trilogy-hub.com/docs/getVehicleComponentScale/)

### resetVehicleDummyPositions

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Kasuje wszystkie punkty pomocnicze pojazdu zapisane przez `setVehicleDummyPosition`.

#### Składnia

```lua
bool resetVehicleDummyPositions(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
resetVehicleDummyPositions(vehicle)
```

#### Zobacz też

- [`setVehicleDummyPosition`](https://trilogy-hub.com/docs/setVehicleDummyPosition/)
- [`getVehicleDummyPosition`](https://trilogy-hub.com/docs/getVehicleDummyPosition/)

### resetVehicleExplosionTime

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zaczyna od nowa odliczanie do odrodzenia wraku: wrak odrodzi się po pełnym czasie z `setVehicleRespawnDelay`, licząc od teraz. Gdy pojazd nie jest wrakiem czekającym na odrodzenie, funkcja nic nie zmienia.

#### Składnia

```lua
bool resetVehicleExplosionTime(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onVehicleExplode", root, function()
    if getElementData(source, "dowod") then
        setVehicleRespawnDelay(source, 120000)
        resetVehicleExplosionTime(source)
    end
end)
```

#### Zobacz też

- [`setVehicleRespawnDelay`](https://trilogy-hub.com/docs/setVehicleRespawnDelay/)
- [`blowVehicle`](https://trilogy-hub.com/docs/blowVehicle/)

### resetVehicleIdleTime

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zeruje licznik bezczynności pojazdu, tak jakby ktoś właśnie z niego wysiadł. Odliczanie do powrotu porzuconego pojazdu (`setVehicleIdleRespawnDelay`) zaczyna się od nowa. Przydaje się np. gdy gracz zaparkował auto w garażu i chcesz mu dać więcej czasu.

#### Składnia

```lua
bool resetVehicleIdleTime(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("przedluz", function(player)
    local vehicle = getPedOccupiedVehicle(player) or getElementData(player, "ostatnieAuto")
    if vehicle and isElement(vehicle) then resetVehicleIdleTime(vehicle) end
end)
```

#### Zobacz też

- [`setVehicleIdleRespawnDelay`](https://trilogy-hub.com/docs/setVehicleIdleRespawnDelay/)

### resetVehicleLampStates

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Przywraca wszystkie lampy pojazdu do stanu `'auto'`, czyli działania jak w grze. Kasuje wszystko, co ustawiło `setVehicleLampState`.

#### Składnia

```lua
bool resetVehicleLampStates(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onVehicleExit", root, function()
    resetVehicleLampStates(source)
end)
```

#### Zobacz też

- [`setVehicleLampState`](https://trilogy-hub.com/docs/setVehicleLampState/)
- [`getVehicleLampStates`](https://trilogy-hub.com/docs/getVehicleLampStates/)
- [`getVehicleLampState`](https://trilogy-hub.com/docs/getVehicleLampState/)

### respawnVehicle

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Natychmiast odradza pojazd w jego punkcie odrodzenia (miejsce utworzenia albo to z `setVehicleRespawnPosition`). Wszyscy pasażerowie zostają wysadzeni z pojazdu, prędkość jest zerowana, zdrowie wraca do 1000, a uszkodzenia drzwi, paneli, lamp i kół znikają. Wywołuje zdarzenie `onVehicleRespawn`. Działa także dla pojazdu, który nie jest wrakiem.

#### Składnia

```lua
bool respawnVehicle(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd do odrodzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("odrodzwszystkie", function()
    for _, vehicle in ipairs(getElementsByType("vehicle")) do
        if not getVehicleController(vehicle) then respawnVehicle(vehicle) end
    end
end)
```

#### Zobacz też

- [`spawnVehicle`](https://trilogy-hub.com/docs/spawnVehicle/)
- [`setVehicleRespawnPosition`](https://trilogy-hub.com/docs/setVehicleRespawnPosition/)
- [`toggleVehicleRespawn`](https://trilogy-hub.com/docs/toggleVehicleRespawn/)

### setHeliBladeCollisionsEnabled

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje, czy wirnik helikoptera ma ciąć to, w co uderzy (postacie, inne pojazdy).

#### Składnia

```lua
bool setHeliBladeCollisionsEnabled(vehicle vehicle, bool value)
```

#### Argumenty

- `vehicle` (vehicle) - Helikopter.
- `value` (bool) - `true` = wirnik tnie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local heli = createVehicle(487, 1765, -2290, 14)
setHeliBladeCollisionsEnabled(heli, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie korzysta jeszcze z tej wartości.

#### Zobacz też

- [`getHeliBladeCollisionsEnabled`](https://trilogy-hub.com/docs/getHeliBladeCollisionsEnabled/)

### setModelCompatibleUpgrades

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zapisuje własną listę części pasujących do modelu pojazdu, np. dla nowego modelu z `engineRequestModel`.

#### Składnia

```lua
bool setModelCompatibleUpgrades(int model, table list)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `list` (table) - Tablica ID części.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setModelCompatibleUpgrades(411, { 1010, 1079, 1080 })
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Lista jest zapamiętywana na serwerze, ale `getVehicleCompatibleUpgrades`, `getModelCompatibleUpgrades` i `addVehicleUpgrade` nadal korzystają z danych gry.

#### Zobacz też

- [`getModelCompatibleUpgrades`](https://trilogy-hub.com/docs/getModelCompatibleUpgrades/)

### setModelHandling

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zmienia handling wszystkich pojazdów danego modelu naraz, u każdego gracza, także tych utworzonych później. Zmiany pojedynczego auta z `setVehicleHandling` mają pierwszeństwo przed ustawieniem modelu.

#### Składnia

```lua
bool setModelHandling(int model [, string property = nil, any value = nil])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `property` (string, opcjonalny = nil) - Nazwa pola handlingu; `nil` kasuje wszystkie zmiany modelu.
- `value` (any, opcjonalny = nil) - Nowa wartość pola; `nil` usuwa zmianę tego pola.

#### Zwraca

`true` przy powodzeniu, `false` dla nieznanego pola.

#### Przykład

```lua
setModelHandling(596, "maxVelocity", 220)
setModelHandling(596, "engineAcceleration", 32) -- fabrycznie 25 (skala handling.cfg)
```

#### Zobacz też

- [`getModelHandling`](https://trilogy-hub.com/docs/getModelHandling/)
- [`setVehicleHandling`](https://trilogy-hub.com/docs/setVehicleHandling/)

### setModelMaxPassengers

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Ogranicza liczbę miejsc pasażerskich modelu: gracze nie wsiądą na fotele o wyższym numerze (serwer anuluje wsiadanie). Działa też dla nowych modeli z `engineRequestModel`. Nie można dodać miejsc, których model bazowy nie ma. `nil` albo `false` zdejmuje limit.

#### Składnia

```lua
bool setModelMaxPassengers(int model [, int count = nil])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu (400-611 albo nowe ID).
- `count` (int, opcjonalny = nil) - Najwięcej pasażerów (0 = tylko kierowca); `nil`/`false` = bez limitu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setModelMaxPassengers(596, 1)
```

#### Zobacz też

- [`getModelMaxPassengers`](https://trilogy-hub.com/docs/getModelMaxPassengers/)
- [`getVehicleMaxPassengers`](https://trilogy-hub.com/docs/getVehicleMaxPassengers/)

### setModelSeatPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Przesuwa miejsce siedzenia w pojeździe dla całego modelu, u wszystkich graczy: gdzie siedzi postać i w którą stronę jest obrócona. Najczęściej służy do ustawienia foteli w nowych pojazdach z `engineRequestModel` i `engineReplaceModel`, które domyślnie mają fotele jak auto bazowe. Liczba miejsc się nie zmienia.

#### Składnia

```lua
bool setModelSeatPosition(int model, int seat, float x, float y, float z [, float heading = 0])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `seat` (int) - Fotel 0-7 (0 = kierowca, 1 = przedni pasażer, 2-3 tył).
- `x` (float) - Przesunięcie w prawo od środka pojazdu w metrach (do 50).
- `y` (float) - Przesunięcie do przodu w metrach.
- `z` (float) - Przesunięcie w górę w metrach.
- `heading` (float, opcjonalny = 0) - Obrót postaci względem pojazdu w stopniach (0 = przodem do kierunku jazdy).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setModelSeatPosition(411, 0, -0.45, -0.1, 0.05)
setModelSeatPosition(411, 1, 0.45, -0.1, 0.05)
```

#### Zobacz też

- [`getModelSeatPosition`](https://trilogy-hub.com/docs/getModelSeatPosition/)
- [`resetModelSeatPosition`](https://trilogy-hub.com/docs/resetModelSeatPosition/)
- [`setModelSeatsFrom`](https://trilogy-hub.com/docs/setModelSeatsFrom/)

### setModelSeatsFrom

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Kopiuje miejsca siedzenia z innego modelu na wskazany model, np. nowy pojazd z `engineRequestModel` ma siedzieć jak w Sultanie. Bez numeru fotela kopiuje wszystkie fotele, które ma wzorzec.

#### Składnia

```lua
int setModelSeatsFrom(int model, int source [, int seat = nil])
```

#### Argumenty

- `model` (int) - Model, którego fotele zmieniamy.
- `source` (int) - Model wzorcowy (400-611 albo inny).
- `seat` (int, opcjonalny = nil) - Jeden fotel 0-7 do skopiowania; `nil` = wszystkie.

#### Zwraca

Liczba skopiowanych miejsc albo `false`.

#### Przykład

```lua
local model = engineRequestModel("vehicle", 560)
if model then setModelSeatsFrom(model, 560) end
```

#### Zobacz też

- [`setModelSeatPosition`](https://trilogy-hub.com/docs/setModelSeatPosition/)

### setTrainDerailable

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje, czy pociąg może się wykoleić (np. przy zbyt szybkim zakręcie).

#### Składnia

```lua
bool setTrainDerailable(vehicle element, bool value)
```

#### Argumenty

- `element` (vehicle) - Pociąg.
- `value` (bool) - `true` = może się wykoleić.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
setTrainDerailable(train, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setTrainDerailed`.

#### Zobacz też

- [`isTrainDerailable`](https://trilogy-hub.com/docs/isTrainDerailable/)

### setTrainDerailed

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje, czy pociąg jest wykolejony.

#### Składnia

```lua
bool setTrainDerailed(vehicle element, bool value)
```

#### Argumenty

- `element` (vehicle) - Pociąg (lokomotywa albo wagon).
- `value` (bool) - `true` = wykolejony.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
setTrainDerailed(train, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Pociągi w grze nie reagują jeszcze na tę i pozostałe funkcje pociągów (`setTrainSpeed`, `setTrainTrack`, `setTrainPosition`, `setTrainDirection`, `setTrainDerailable`); wartości są zapamiętywane na serwerze.

#### Zobacz też

- [`isTrainDerailed`](https://trilogy-hub.com/docs/isTrainDerailed/)
- [`setTrainDerailable`](https://trilogy-hub.com/docs/setTrainDerailable/)

### setTrainDirection

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje kierunek jazdy pociągu po torze.

#### Składnia

```lua
bool setTrainDirection(vehicle element, bool value)
```

#### Argumenty

- `element` (vehicle) - Pociąg.
- `value` (bool) - `true` = zgodnie z kierunkiem toru, `false` = przeciwnie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
setTrainDirection(train, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setTrainDerailed`.

#### Zobacz też

- [`getTrainDirection`](https://trilogy-hub.com/docs/getTrainDirection/)

### setTrainPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje położenie pociągu na torze jako odległość od początku toru.

#### Składnia

```lua
bool setTrainPosition(vehicle train, float position)
```

#### Argumenty

- `train` (vehicle) - Pociąg.
- `position` (float) - Odległość od początku toru w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
setTrainPosition(train, 1200)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setTrainDerailed`.

#### Zobacz też

- [`getTrainPosition`](https://trilogy-hub.com/docs/getTrainPosition/)

### setTrainSpeed

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje prędkość pociągu po torze.

#### Składnia

```lua
bool setTrainSpeed(vehicle train, float speed)
```

#### Argumenty

- `train` (vehicle) - Pociąg.
- `speed` (float) - Prędkość (jednostki, ujemna = do tyłu).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
setTrainSpeed(train, 0.5)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setTrainDerailed`.

#### Zobacz też

- [`getTrainSpeed`](https://trilogy-hub.com/docs/getTrainSpeed/)

### setTrainTrack

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje numer toru, po którym jedzie pociąg.

#### Składnia

```lua
bool setTrainTrack(vehicle train, int track)
```

#### Argumenty

- `train` (vehicle) - Pociąg.
- `track` (int) - Numer toru (0-3).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local train = createVehicle(538, 1700, -1950, 14)
setTrainTrack(train, 1)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setTrainDerailed`.

#### Zobacz też

- [`getTrainTrack`](https://trilogy-hub.com/docs/getTrainTrack/)

### setVehicleAdjustableProperty

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje ustawienie ruchomej części pojazdu: łyżki spychacza, wideł wózka widłowego, ramienia dźwigu, dyszy Hydry.

#### Składnia

```lua
bool setVehicleAdjustableProperty(vehicle vehicle, int value)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd z ruchomą częścią.
- `value` (int) - Pozycja 0-4000 (0 = spoczynkowa).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local forklift = createVehicle(530, 2200, -2250, 13.5)
setVehicleAdjustableProperty(forklift, 2000)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie przestawia jeszcze części na polecenie skryptu; kierowca robi to sam.

#### Zobacz też

- [`getVehicleAdjustableProperty`](https://trilogy-hub.com/docs/getVehicleAdjustableProperty/)

### setVehicleColorId

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Ustawia kolory pojazdu numerami z palety pojazdów San Andreas (0-127), tak jak w klasycznej grze i w plikach carcols. Numer 0 to czarny, 1 biały, 3 czerwony, 6 żółty… (nazwy i barwy poda `getVehiclePaletteColor`). Podanie jednego numeru ustawia oba główne kolory na ten sam.

#### Składnia

```lua
bool setVehicleColorId(vehicle vehicle, int id1 [, int id2 = id1, int id3 = nil, int id4 = id3])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `id1` (int) - Numer koloru głównego 0-127 (spoza zakresu jest przycinany).
- `id2` (int, opcjonalny = id1) - Numer drugiego koloru 0-127.
- `id3` (int, opcjonalny = nil) - Numer koloru 3; bez niego kolory 3 i 4 wracają do ustawień modelu.
- `id4` (int, opcjonalny = id3) - Numer koloru 4.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local taxi = createVehicle(420, 1780, -1890, 13.4)
setVehicleColorId(taxi, 6, 1)
```

#### Zobacz też

- [`getVehicleColorId`](https://trilogy-hub.com/docs/getVehicleColorId/)
- [`getVehiclePaletteColor`](https://trilogy-hub.com/docs/getVehiclePaletteColor/)
- [`setVehicleColor`](https://trilogy-hub.com/docs/setVehicleColor/)

### setVehicleComponentPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Zapisuje przesunięcie nazwanej części modelu pojazdu (np. maski) względem jej pozycji w modelu.

#### Składnia

```lua
bool setVehicleComponentPosition(vehicle vehicle, string component, float x [, float y = 0, float z = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.
- `x` (float) - Przesunięcie w prawo (m). Zamiast trzech liczb można podać wektor.
- `y` (float, opcjonalny = 0) - Przesunięcie do przodu (m).
- `z` (float, opcjonalny = 0) - Przesunięcie w górę (m).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string base = "root"`
- W MTA:SA: `setVehicleComponentPosition(vehicle theVehicle, string theComponent, float posX, float posY, float posZ, string base = "root")`

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleComponentPosition(vehicle, "bonnet_dummy", 0, 0.1, 0.2)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra stosuje dziś tylko widoczność części (`setVehicleComponentVisible`); pozycja, obrót i skala części są zapamiętywane, ale model się nie zmienia.

#### Zobacz też

- [`getVehicleComponentPosition`](https://trilogy-hub.com/docs/getVehicleComponentPosition/)
- [`resetVehicleComponentPosition`](https://trilogy-hub.com/docs/resetVehicleComponentPosition/)
- [`setVehicleComponentTransform`](https://trilogy-hub.com/docs/setVehicleComponentTransform/)

### setVehicleComponentRotation

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Zapisuje obrót nazwanej części modelu pojazdu w stopniach (x, y, z).

#### Składnia

```lua
bool setVehicleComponentRotation(vehicle vehicle, string component, float x [, float y = 0, float z = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.
- `x` (float) - Obrót wokół osi X w stopniach (albo wektor).
- `y` (float, opcjonalny = 0) - Obrót wokół osi Y.
- `z` (float, opcjonalny = 0) - Obrót wokół osi Z.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string base = "parent"`
- W MTA:SA: `setVehicleComponentRotation(vehicle theVehicle, string theComponent, float rotX, float rotY, float rotZ, string base = "parent")`

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleComponentRotation(vehicle, "bonnet_dummy", 45, 0, 0)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Model się nie zmienia (patrz `setVehicleComponentPosition`).

#### Zobacz też

- [`getVehicleComponentRotation`](https://trilogy-hub.com/docs/getVehicleComponentRotation/)
- [`resetVehicleComponentRotation`](https://trilogy-hub.com/docs/resetVehicleComponentRotation/)

### setVehicleComponentScale

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Zapisuje skalę nazwanej części modelu pojazdu w trzech osiach (1 = rozmiar oryginalny).

#### Składnia

```lua
bool setVehicleComponentScale(vehicle vehicle, string component, float x [, float y = 0, float z = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.
- `x` (float) - Skala w osi X (albo wektor).
- `y` (float, opcjonalny = 0) - Skala w osi Y.
- `z` (float, opcjonalny = 0) - Skala w osi Z.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string base = "parent"`
- W MTA:SA: `setVehicleComponentScale(vehicle theVehicle, string theComponent, float scaleX, float scaleY, float scaleZ, string base = "parent")`

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleComponentScale(vehicle, "exhaust_ok", 1.5, 1.5, 1.5)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Model się nie zmienia (patrz `setVehicleComponentPosition`).

#### Zobacz też

- [`getVehicleComponentScale`](https://trilogy-hub.com/docs/getVehicleComponentScale/)
- [`resetVehicleComponentScale`](https://trilogy-hub.com/docs/resetVehicleComponentScale/)

### setVehicleComponentTransform

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zapisuje pozycję, obrót i skalę części modelu jednym wywołaniem. Każdy z trzech argumentów to wektor albo tabela `{ x, y, z }`; pominięty (`nil`) zostaje bez zmian.

#### Składnia

```lua
bool setVehicleComponentTransform(vehicle vehicle, string component [, table position = nil, table rotation = nil, table scale = nil])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.
- `position` (table, opcjonalny = nil) - Przesunięcie `{ x, y, z }` w metrach.
- `rotation` (table, opcjonalny = nil) - Obrót `{ x, y, z }` w stopniach.
- `scale` (table, opcjonalny = nil) - Skala `{ x, y, z }`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleComponentTransform(vehicle, "bonnet_dummy", { 0, 0, 0.1 }, { 30, 0, 0 }, nil)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Model się nie zmienia (patrz `setVehicleComponentPosition`).

#### Zobacz też

- [`setVehicleComponentPosition`](https://trilogy-hub.com/docs/setVehicleComponentPosition/)
- [`setVehicleComponentRotation`](https://trilogy-hub.com/docs/setVehicleComponentRotation/)
- [`setVehicleComponentScale`](https://trilogy-hub.com/docs/setVehicleComponentScale/)

### setVehicleCurrentGear

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zapisuje numer biegu pojazdu.

#### Składnia

```lua
bool setVehicleCurrentGear(vehicle vehicle, int value)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `value` (int) - Bieg 0-10.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleCurrentGear(vehicle, 1)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Biegi w grze zmienia automatyczna skrzynia; ta wartość służy np. własnym licznikom.

#### Zobacz też

- [`getVehicleCurrentGear`](https://trilogy-hub.com/docs/getVehicleCurrentGear/)

### setVehicleDamageProof

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Czyni pojazd odpornym na uszkodzenia u wszystkich graczy: kolizje, strzały i wybuchy nie odbierają mu zdrowia ani nie psują karoserii. Przydatne dla pojazdów wystawowych, autobusów miejskich albo pojazdów w strefie bezpiecznej.

#### Składnia

```lua
bool setVehicleDamageProof(vehicle element, bool value)
```

#### Argumenty

- `element` (vehicle) - Pojazd.
- `value` (bool) - `true` = niezniszczalny, `false` = normalny.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local bus = createVehicle(431, 1760, -1890, 13.6)
setVehicleDamageProof(bus, true)
```

#### Zobacz też

- [`isVehicleDamageProof`](https://trilogy-hub.com/docs/isVehicleDamageProof/)
- [`fixVehicle`](https://trilogy-hub.com/docs/fixVehicle/)

### setVehicleDirtLevel

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Ustawia zabrudzenie karoserii widoczne u wszystkich graczy: 0 = lśniąco czysta, 1 = mocno zakurzona. Przydaje się w myjniach i przy autach porzuconych na pustyni. Nowy pojazd z `createVehicle` jest czysty.

#### Składnia

```lua
bool setVehicleDirtLevel(vehicle vehicle, float level)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `level` (float) - Brud 0.0-1.0 (wartości spoza zakresu są przycinane).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("myjnia", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleDirtLevel(vehicle, 0) end
end)
```

#### Zobacz też

- [`getVehicleDirtLevel`](https://trilogy-hub.com/docs/getVehicleDirtLevel/)

### setVehicleDoorOpenRatio

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Otwiera drzwi, maskę albo bagażnik pojazdu w podanym stopniu u wszystkich graczy: 0 = zamknięte, 1 = otwarte na oścież, 0,5 = w połowie. Przydatne np. w warsztacie (otwarta maska) albo przy przeszukaniu bagażnika. Numeracja drzwi jak w `setVehicleDoorState`.

#### Składnia

```lua
bool setVehicleDoorOpenRatio(vehicle vehicle, int door, float ratio [, int time = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `door` (int) - Numer drzwi 0-5.
- `ratio` (float) - Stopień otwarcia 0.0-1.0 (wartości spoza zakresu są przycinane).
- `time` (int, opcjonalny = 0) - Czas ruchu w milisekundach (do 60000). Przy 0 drzwi ustawiają się od razu. Gracz, który zobaczy pojazd później, dostaje od razu stan końcowy.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("maska", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        local open = getVehicleDoorOpenRatio(vehicle, 0) < 0.5
        setVehicleDoorOpenRatio(vehicle, 0, open and 1 or 0)
    end
end)
```

#### Zobacz też

- [`getVehicleDoorOpenRatio`](https://trilogy-hub.com/docs/getVehicleDoorOpenRatio/)
- [`setVehicleDoorState`](https://trilogy-hub.com/docs/setVehicleDoorState/)

### setVehicleDoorState

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia stan jednych drzwi (albo maski czy bagażnika) pojazdu u wszystkich graczy: zamknięte, uchylone, wgniecione albo urwane. Numer drzwi: 0 maska, 1 bagażnik, 2 przednie lewe, 3 przednie prawe, 4 tylne lewe, 5 tylne prawe. Pojazd bez danych drzwi po prostu tego nie pokaże.

#### Składnia

```lua
bool setVehicleDoorState(vehicle vehicle, int door, int state)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `door` (int) - Numer drzwi 0-5 (lista wyżej).
- `state` (int) - 0 zamknięte, 1 uchylone, 2 zamknięte i uszkodzone, 3 uchylone i uszkodzone, 4 urwane.

#### Zwraca

`true` przy powodzeniu, `false` dla numeru spoza zakresu.

#### Przykład

```lua
local vehicle = createVehicle(400, 2000, -1700, 13.5)
setVehicleDoorState(vehicle, 0, 4)
setVehicleDoorState(vehicle, 2, 3)
```

#### Zobacz też

- [`getVehicleDoorState`](https://trilogy-hub.com/docs/getVehicleDoorState/)
- [`setVehicleDoorOpenRatio`](https://trilogy-hub.com/docs/setVehicleDoorOpenRatio/)
- [`fixVehicle`](https://trilogy-hub.com/docs/fixVehicle/)

### setVehicleDoorsUndamageable

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje, czy drzwi pojazdu mają być nie do urwania.

#### Składnia

```lua
bool setVehicleDoorsUndamageable(vehicle vehicle, bool value)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `value` (bool) - `true` = drzwi nie odpadają.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local limo = createVehicle(409, 1480, -1740, 13.5)
setVehicleDoorsUndamageable(limo, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie korzysta jeszcze z tej wartości. Żeby drzwi wróciły na miejsce, użyj `setVehicleDoorState` albo `fixVehicle`.

#### Zobacz też

- [`areVehicleDoorsUndamageable`](https://trilogy-hub.com/docs/areVehicleDoorsUndamageable/)
- [`setVehicleDoorState`](https://trilogy-hub.com/docs/setVehicleDoorState/)

### setVehicleDummyPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje położenie punktu pomocniczego (dummy) dla jednego pojazdu, np. wydechu albo świateł.

#### Składnia

```lua
bool setVehicleDummyPosition(vehicle vehicle, string dummy, float x, float y, float z)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `dummy` (string) - Nazwa punktu, np. `exhaust`, `light_front_main`, `engine`.
- `x` (float) - X w układzie pojazdu (m).
- `y` (float) - Y (m).
- `z` (float) - Z (m).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleDummyPosition(vehicle, "exhaust", 0.5, -2.3, -0.3)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie przesuwa jeszcze punktów pojedynczego pojazdu; fotele całego modelu przesuwa `setVehicleModelDummyPosition`.

#### Zobacz też

- [`getVehicleDummyPosition`](https://trilogy-hub.com/docs/getVehicleDummyPosition/)
- [`resetVehicleDummyPositions`](https://trilogy-hub.com/docs/resetVehicleDummyPositions/)
- [`setVehicleModelDummyPosition`](https://trilogy-hub.com/docs/setVehicleModelDummyPosition/)

### setVehicleEngine

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Montuje w pojeździe silnik opisany parametrami jak w prawdziwym aucie (moc, moment, pojemność, paliwo, masa, biegi) i sam przelicza z nich pola handlingu: masę, prędkość maksymalną, przyspieszenie, bezwładność silnika, typ paliwa, liczbę biegów i przyczepność. Silnik dużo mocniejszy od fabrycznego zmniejsza przyczepność (koła buksują). Zużycie obniża moc o maksymalnie 30%. `nil` przywraca silnik fabryczny. Dobre do systemów tuningu i wymiany silników na serwerach RP.

#### Składnia

```lua
bool setVehicleEngine(vehicle vehicle, table/nil spec [, float wear = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `spec` (table/nil) - Tabela silnika: `power` (moc w kW), `torque` (Nm), `displacement` (litry), `cylinders`, `fuel` (`"petrol"`, `"diesel"`, `"electric"`), `mass` (kg silnika), `gears` (1-5), `name`, `code`. Brakujące pola biorą wartość z silnika fabrycznego. `nil` = silnik fabryczny.
- `wear` (float, opcjonalny = 0) - Zużycie silnika 0.0 (nowy) - 1.0 (zajechany, -30% mocy).

#### Zwraca

`true` przy powodzeniu, `false` dla pojazdu bez danych handlingu.

#### Przykład

```lua
addCommandHandler("swap", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    setVehicleEngine(vehicle, { name = "V8 5.0", power = 300, torque = 540, displacement = 5.0,
        cylinders = 8, fuel = "petrol", mass = 220, gears = 5 }, 0.1)
end)
```

#### Zobacz też

- [`getVehicleEngine`](https://trilogy-hub.com/docs/getVehicleEngine/)
- [`getVehicleFactoryEngine`](https://trilogy-hub.com/docs/getVehicleFactoryEngine/)
- [`getVehiclePerformance`](https://trilogy-hub.com/docs/getVehiclePerformance/)
- [`calculateEngineHandling`](https://trilogy-hub.com/docs/calculateEngineHandling/)

### setVehicleEntryPoints

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zapisuje własne punkty wsiadania do pojazdu (tabela punktów `{ x, y, z, seat }`).

#### Składnia

```lua
bool setVehicleEntryPoints(vehicle vehicle [, table list = nil])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `list` (table, opcjonalny = nil) - Tablica punktów `{ x = .., y = .., z = .., seat = .. }`; `nil` = domyślne.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local bus = createVehicle(431, 1760, -1890, 13.6)
setVehicleEntryPoints(bus, { { x = 1761.5, y = -1886, z = 13.6, seat = 1 } })
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra wsiada nadal przez swoje drzwi; punkty służą własnym systemom (np. wsiadanie klawiszem przy punkcie).

#### Zobacz też

- [`getVehicleEntryPoints`](https://trilogy-hub.com/docs/getVehicleEntryPoints/)

### setVehicleFuelTankExplodable

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje, czy zbiornik paliwa pojazdu ma wybuchać od strzału (strzał w bak wysadza auto).

#### Składnia

```lua
bool setVehicleFuelTankExplodable(vehicle element, bool value)
```

#### Argumenty

- `element` (vehicle) - Pojazd.
- `value` (bool) - `true` = bak wybucha od strzału.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local tanker = createVehicle(514, 2200, -2250, 13.5)
setVehicleFuelTankExplodable(tanker, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie korzysta jeszcze z tej wartości; pojazd zachowuje się jak zwykle w San Andreas.

#### Zobacz też

- [`isVehicleFuelTankExplodable`](https://trilogy-hub.com/docs/isVehicleFuelTankExplodable/)

### setVehicleGravity

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje własny kierunek grawitacji dla pojazdu jako wektor (domyślnie 0, 0, -1, czyli w dół). Pozwala to np. jeździć po ścianach.

#### Składnia

```lua
bool setVehicleGravity(vehicle vehicle, float x, float y, float z)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `x` (float) - Składowa X kierunku (albo wektor).
- `y` (float) - Składowa Y.
- `z` (float) - Składowa Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleGravity(vehicle, 0, 1, 0)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Pojazd w grze nadal spada w dół; globalną siłę grawitacji zmienia `setGravity`.

#### Zobacz też

- [`getVehicleGravity`](https://trilogy-hub.com/docs/getVehicleGravity/)
- [`setGravity`](https://trilogy-hub.com/docs/setGravity/)

### setVehicleHeadLightColor

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zmienia kolor światła reflektorów pojazdu u wszystkich graczy, np. ksenonowy niebieski albo żółty. Wpływa na barwę świecących kloszy i plamy światła przed autem.

#### Składnia

```lua
bool setVehicleHeadLightColor(vehicle vehicle, int r, int g, int b)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `r` (int) - Czerwony 0-255.
- `g` (int) - Zielony 0-255.
- `b` (int) - Niebieski 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("ksenony", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleHeadLightColor(vehicle, 170, 200, 255) end
end)
```

#### Zobacz też

- [`getVehicleHeadLightColor`](https://trilogy-hub.com/docs/getVehicleHeadLightColor/)
- [`setVehicleTailLightColor`](https://trilogy-hub.com/docs/setVehicleTailLightColor/)
- [`setVehicleOverrideLights`](https://trilogy-hub.com/docs/setVehicleOverrideLights/)

### setVehicleHealthFloor

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Ustawia próg zdrowia pojazdu: strzały, ogień, wybuchy i zderzenia nie zbiją zdrowia poniżej tej wartości. Próg 250 lub wyższy sprawia, że auto nie zapali się ani nie wybuchnie od obrażeń. Skrypt może dalej zejść niżej przez setElementHealth albo blowVehicle. 0 wyłącza próg.

#### Składnia

```lua
bool setVehicleHealthFloor(vehicle vehicle, number health)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `health` (number) - Próg zdrowia 0-1000.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleHealthFloor(vehicle, 300)
```

#### Zobacz też

- [`getVehicleHealthFloor`](https://trilogy-hub.com/docs/getVehicleHealthFloor/)
- [`setVehicleProofs`](https://trilogy-hub.com/docs/setVehicleProofs/)

### setVehicleIdleRespawnDelay

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia, po ilu milisekundach porzucony pojazd sam wraca na punkt odrodzenia. „Porzucony” znaczy: nikt w nim nie siedzi i stoi dalej niż 0,5 m od punktu odrodzenia. Licznik zeruje się, gdy ktoś wsiądzie. Domyślnie 60000 ms; 0 wyłącza powrót porzuconych aut. Odliczanie działa dla pojazdów, którym ustawiono odradzanie dowolną funkcją z tej grupy (np. tą) albo które były wrakiem; świeżo utworzone, nieskonfigurowane auto nie wraca samo.

#### Składnia

```lua
bool setVehicleIdleRespawnDelay(vehicle vehicle, int ms)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `ms` (int) - Czas w milisekundach, 0 = wyłączone.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
for _, vehicle in ipairs(getElementsByType("vehicle", resourceRoot)) do
    setVehicleIdleRespawnDelay(vehicle, 10 * 60000)
end
```

#### Zobacz też

- [`getVehicleIdleRespawnDelay`](https://trilogy-hub.com/docs/getVehicleIdleRespawnDelay/)
- [`resetVehicleIdleTime`](https://trilogy-hub.com/docs/resetVehicleIdleTime/)
- [`toggleVehicleRespawn`](https://trilogy-hub.com/docs/toggleVehicleRespawn/)

### setVehicleIndicators

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Włącza kierunkowskazy pojazdu, które migają u wszystkich graczy. Na pojazdach z własnego modelu (`engineReplaceModel`) migają lampy oznaczone w modelu kolorami kierunkowskazów SA. Auta z gry nie mają osobnych kierunkowskazów, dlatego miga przód na pomarańczowo i tył czerwonym kloszem. Pojedynczą lampę ustawia `setVehicleLampState`.

#### Składnia

```lua
bool setVehicleIndicators(vehicle vehicle, int state)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `state` (int) - 0 wyłączone, 1 lewy, 2 prawy, 3 awaryjne (oba).

#### Zwraca

`true` przy powodzeniu, `false` dla wartości spoza 0-3.

#### Przykład

```lua
addCommandHandler("awaryjne", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        setVehicleIndicators(vehicle, getVehicleIndicators(vehicle) == 3 and 0 or 3)
    end
end)
```

#### Zobacz też

- [`getVehicleIndicators`](https://trilogy-hub.com/docs/getVehicleIndicators/)
- [`setVehicleLampState`](https://trilogy-hub.com/docs/setVehicleLampState/)

### setVehicleLampState

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zapala, gasi albo oddaje grze jedną lampę (lub grupę lamp) pojazdu, u wszystkich graczy. Dzięki temu skrypt może np. zapalić światło STOP przy hamowaniu na serwerze, światło cofania albo zostawić świecący jeden reflektor. Stan `'auto'` oznacza, że lampa działa jak zwykle w grze. Kierunkowskaz ustawiony na `'on'` świeci stale; miganie daje `setVehicleIndicators`. Auta z gry nie mają lamp cofania ani osobnych kierunkowskazów (przedni świeci na pomarańczowo, tylny czerwonym kloszem); własne modele z `engineReplaceModel` mają wszystkie lampy.

#### Składnia

```lua
bool setVehicleLampState(vehicle vehicle, string/int lamp [, string/bool state = 'auto'])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `lamp` (string/int) - Nazwa lampy: `front_left`, `front_right`, `rear_left`, `rear_right`, `brake_left`, `brake_right`, `reverse_left`, `reverse_right`, `indicator_front_left`, `indicator_front_right`, `indicator_rear_left`, `indicator_rear_right`; grupa: `front`, `rear`, `brake`, `reverse`, `indicators`, `indicator_left`, `indicator_right`, `left`, `right`, `all`; albo numer 0-11 w tej kolejności.
- `state` (string/bool, opcjonalny = 'auto') - `'on'`/`true` = zapalona, `'off'`/`false` = zgaszona, `'auto'`/`nil` = jak w grze.

#### Zwraca

`true` przy powodzeniu, `false` dla złej nazwy lub stanu.

#### Przykład

```lua
addCommandHandler("cofanie", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleLampState(vehicle, "reverse", "on") end
end)
```

#### Zobacz też

- [`getVehicleLampState`](https://trilogy-hub.com/docs/getVehicleLampState/)
- [`getVehicleLampNames`](https://trilogy-hub.com/docs/getVehicleLampNames/)
- [`resetVehicleLampStates`](https://trilogy-hub.com/docs/resetVehicleLampStates/)
- [`setVehicleIndicators`](https://trilogy-hub.com/docs/setVehicleIndicators/)

### setVehicleLandingGearDown

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Wysuwa albo chowa podwozie samolotu. Zmiana trafia do gry każdego gracza, który ma ten samolot wczytany, także po jego ponownym wczytaniu. Pilot może potem zmienić podwozie klawiszem, jak zwykle w grze.

#### Składnia

```lua
bool setVehicleLandingGearDown(vehicle element, bool value)
```

#### Argumenty

- `element` (vehicle) - Samolot.
- `value` (bool) - `true` = wysunięte, `false` = schowane.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local plane = createVehicle(519, 1950, -2300, 14)
setVehicleLandingGearDown(plane, false)
```

#### Uwagi

> **Uwaga:** **Tylko samoloty z podwoziem.** Dla innych pojazdów wartość jest tylko zapamiętywana.

#### Zobacz też

- [`getVehicleLandingGearDown`](https://trilogy-hub.com/docs/getVehicleLandingGearDown/)

### setVehicleLightState

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zbija albo naprawia jedną lampę pojazdu u wszystkich graczy. Numery: 0 przednia lewa, 1 przednia prawa, 2 tylna lewa, 3 tylna prawa. Zbita lampa nie świeci, nawet przy włączonych światłach.

#### Składnia

```lua
bool setVehicleLightState(vehicle vehicle, int light, int state)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `light` (int) - Numer lampy 0-3.
- `state` (int) - 0 = cała, 1 = zbita.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(400, 2000, -1700, 13.5)
setVehicleLightState(vehicle, 0, 1)
```

#### Zobacz też

- [`getVehicleLightState`](https://trilogy-hub.com/docs/getVehicleLightState/)
- [`setVehicleLampState`](https://trilogy-hub.com/docs/setVehicleLampState/)

### setVehicleMaxPassengers

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zapisuje liczbę miejsc pasażerskich modelu na serwerze. Zwykle robi to automatycznie klient gry; skrypt może podać ją wcześniej, żeby `getVehicleMaxPassengers` znało ją od startu.

#### Składnia

```lua
bool setVehicleMaxPassengers(int model, int count)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `count` (int) - Liczba miejsc pasażerskich.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setVehicleMaxPassengers(411, 1)
```

#### Zobacz też

- [`getVehicleMaxPassengers`](https://trilogy-hub.com/docs/getVehicleMaxPassengers/)
- [`setModelMaxPassengers`](https://trilogy-hub.com/docs/setModelMaxPassengers/)

### setVehicleModelDummyPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje położenie punktu pomocniczego (dummy) dla całego modelu pojazdu. Punkty `seat_front` i `seat_rear` przesuwają w grze fotele (przednie i tylne) u wszystkich graczy; pozostałe punkty są zapamiętywane dla skryptów.

#### Składnia

```lua
bool setVehicleModelDummyPosition(int model, string dummy, float x, float y, float z)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `dummy` (string) - Nazwa punktu, np. `seat_front`, `seat_rear`, `exhaust`, `engine`, `light_front_main`.
- `x` (float) - Współrzędna X w układzie pojazdu (m).
- `y` (float) - Współrzędna Y (m).
- `z` (float) - Współrzędna Z (m).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setVehicleModelDummyPosition(411, "seat_front", 0.45, -0.15, 0.05)
```

#### Zobacz też

- [`getVehicleModelDummyPosition`](https://trilogy-hub.com/docs/getVehicleModelDummyPosition/)
- [`setModelSeatPosition`](https://trilogy-hub.com/docs/setModelSeatPosition/)

### setVehicleModelExhaustFumesPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje położenie wylotu spalin dla całego modelu pojazdu (układ pojazdu, metry).

#### Składnia

```lua
bool setVehicleModelExhaustFumesPosition(int model, float x, float y, float z)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `x` (float) - Współrzędna X (m).
- `y` (float) - Współrzędna Y (m).
- `z` (float) - Współrzędna Z (m).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setVehicleModelExhaustFumesPosition(411, 0.4, -2.3, -0.3)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie przenosi jeszcze dymu z rury; wartość służy skryptom (np. własnym efektom).

#### Zobacz też

- [`getVehicleModelExhaustFumesPosition`](https://trilogy-hub.com/docs/getVehicleModelExhaustFumesPosition/)

### setVehicleNitroActivated

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje włączenie albo wyłączenie nitro. Włączenie zużywa jeden ładunek z `setVehicleNitroCount` (przy -1 ładunki się nie kończą); bez ładunków funkcja zwraca `false`.

#### Składnia

```lua
bool setVehicleNitroActivated(vehicle vehicle, bool active)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `active` (bool) - `true` = włącz, `false` = wyłącz.

#### Zwraca

`true` przy powodzeniu, `false` gdy brak ładunków.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleNitroCount(vehicle, 3)
setVehicleNitroActivated(vehicle, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** W grze nitro działa po zamontowaniu części nitro (`addVehicleUpgrade`, np. 1010) i kierowca odpala je sam; funkcje nitro z tej grupy (`setVehicleNitroCount`, `setVehicleNitroLevel`, `setVehicleNitroActivated`) zapisują stan na serwerze, ale gra go jeszcze nie stosuje.

#### Zobacz też

- [`isVehicleNitroActivated`](https://trilogy-hub.com/docs/isVehicleNitroActivated/)
- [`setVehicleNitroCount`](https://trilogy-hub.com/docs/setVehicleNitroCount/)
- [`addVehicleUpgrade`](https://trilogy-hub.com/docs/addVehicleUpgrade/)

### setVehicleNitroCount

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje liczbę ładunków nitro pojazdu, zużywanych przez `setVehicleNitroActivated`.

#### Składnia

```lua
bool setVehicleNitroCount(vehicle vehicle, int value)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `value` (int) - Liczba ładunków 0-100, -1 = bez końca.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleNitroCount(vehicle, -1)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setVehicleNitroActivated`.

#### Zobacz też

- [`getVehicleNitroCount`](https://trilogy-hub.com/docs/getVehicleNitroCount/)
- [`setVehicleNitroActivated`](https://trilogy-hub.com/docs/setVehicleNitroActivated/)

### setVehicleNitroLevel

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje poziom naładowania nitro (jak pasek nitro w grze).

#### Składnia

```lua
bool setVehicleNitroLevel(vehicle vehicle, float value)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `value` (float) - Poziom 0.0001-1.0 (1 = pełny).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleNitroLevel(vehicle, 0.5)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setVehicleNitroActivated`.

#### Zobacz też

- [`getVehicleNitroLevel`](https://trilogy-hub.com/docs/getVehicleNitroLevel/)

### setVehiclePaintjob

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Nakłada na pojazd jedną z fabrycznych naklejek (paintjob) z warsztatów Loco Low Co. i Wheel Arch Angels, widoczną u wszystkich graczy. Paintjoby mają tylko niektóre modele (np. Elegy, Jester, Savanna, Blade); na innych nic się nie zmieni. Naklejka zakrywa kolor główny.

#### Składnia

```lua
bool setVehiclePaintjob(vehicle vehicle, int paintjob)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `paintjob` (int) - 0, 1 albo 2 = numer naklejki, 3 = bez naklejki.

#### Zwraca

`true` przy powodzeniu, `false` dla wartości spoza 0-3.

#### Przykład

```lua
local elegy = createVehicle(562, 2000, -1690, 13.5)
setVehiclePaintjob(elegy, 1)
```

#### Zobacz też

- [`getVehiclePaintjob`](https://trilogy-hub.com/docs/getVehiclePaintjob/)

### setVehiclePanelState

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Ustawia stopień uszkodzenia jednego elementu karoserii u wszystkich graczy. Numery: 0 przedni lewy błotnik, 1 przedni prawy błotnik, 2 tylny lewy, 3 tylny prawy, 4 przednia szyba, 5 przedni zderzak, 6 tylny zderzak. Stan 0 = cały, 3 = mocno zniszczony (zderzak może odpaść).

#### Składnia

```lua
bool setVehiclePanelState(vehicle vehicle, int panel, int state)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `panel` (int) - Numer elementu 0-6.
- `state` (int) - Uszkodzenie 0-3.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool spawnFlyingComponent = true`, `bool breakGlass = false`
- W MTA:SA: `setVehiclePanelState(vehicle theVehicle, int panelID, int state, bool spawnFlyingComponent = true, bool breakGlass = false)`

#### Przykład

```lua
local wreck = createVehicle(404, 2100, -1800, 13.5)
setVehiclePanelState(wreck, 5, 3)
setVehiclePanelState(wreck, 4, 2)
```

#### Zobacz też

- [`getVehiclePanelState`](https://trilogy-hub.com/docs/getVehiclePanelState/)
- [`fixVehicle`](https://trilogy-hub.com/docs/fixVehicle/)

### setVehiclePlateDesign

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Wybiera wzór graficzny tablicy rejestracyjnej (tło i barwy stanu) u wszystkich graczy. Normalnie gra dobiera wzór według miasta, w którym pojazd powstał; ta funkcja pozwala go ustawić na stałe.

#### Składnia

```lua
bool setVehiclePlateDesign(vehicle vehicle, int design)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `design` (int) - 0 San Fierro, 1 Las Venturas, 2 Los Santos, -1 = gra wybiera sama.

#### Zwraca

`true` przy powodzeniu, `false` dla wartości spoza -1..2.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehiclePlateDesign(vehicle, 2)
```

#### Zobacz też

- [`getVehiclePlateDesign`](https://trilogy-hub.com/docs/getVehiclePlateDesign/)
- [`setVehiclePlateText`](https://trilogy-hub.com/docs/setVehiclePlateText/)

### setVehicleProofs

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Ustawia, na co pojazd jest odporny: kule, ogień, wybuchy, zderzenia i ciosy. Działa u wszystkich graczy. Wszystko `false` przywraca zwykłe zachowanie. Odporność na wszystko naraz daje też setVehicleDamageProof.

#### Składnia

```lua
bool setVehicleProofs(vehicle vehicle, table proofs)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `proofs` (table) - Tabela `{ bullets, fire, explosion, collisions, melee }` z wartościami `true`/`false` (brakujące pole = `false`).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleProofs(vehicle, { bullets = true, fire = true })
```

#### Zobacz też

- [`getVehicleProofs`](https://trilogy-hub.com/docs/getVehicleProofs/)
- [`setVehicleDamageProof`](https://trilogy-hub.com/docs/setVehicleDamageProof/)
- [`setVehicleHealthFloor`](https://trilogy-hub.com/docs/setVehicleHealthFloor/)

### setVehicleRespawnDelay

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia, po ilu milisekundach od zniszczenia wrak pojazdu odrodzi się na swoim punkcie odrodzenia. Domyślnie 10000 ms (10 s). Działa tylko przy włączonym odradzaniu (`toggleVehicleRespawn`). Nowy czas dotyczy kolejnych wybuchów; dla wraku już czekającego użyj `resetVehicleExplosionTime`.

#### Składnia

```lua
bool setVehicleRespawnDelay(vehicle vehicle, int ms)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `ms` (int) - Czas w milisekundach (0 lub więcej).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local taxi = createVehicle(420, 1780, -1890, 13.4)
toggleVehicleRespawn(taxi, true)
setVehicleRespawnDelay(taxi, 30000)
```

#### Zobacz też

- [`getVehicleRespawnDelay`](https://trilogy-hub.com/docs/getVehicleRespawnDelay/)
- [`toggleVehicleRespawn`](https://trilogy-hub.com/docs/toggleVehicleRespawn/)
- [`resetVehicleExplosionTime`](https://trilogy-hub.com/docs/resetVehicleExplosionTime/)

### setVehicleRespawnPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia miejsce (i opcjonalnie obrót), w którym pojazd pojawi się przy odrodzeniu: po zniszczeniu, po porzuceniu i przy `respawnVehicle`. Domyślnie to miejsce utworzenia pojazdu. Pojazd nie jest przenoszony od razu.

#### Składnia

```lua
bool setVehicleRespawnPosition(vehicle vehicle, float x, float y, float z [, float rx = bez zmian, float ry = 0, float rz = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `x` (float) - Współrzędna X.
- `y` (float) - Współrzędna Y.
- `z` (float) - Wysokość Z.
- `rx` (float, opcjonalny = bez zmian) - Obrót X w stopniach. Podanie `rx` zmienia cały obrót odrodzenia.
- `ry` (float, opcjonalny = 0) - Obrót Y w stopniach.
- `rz` (float, opcjonalny = 0) - Kierunek w stopniach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("parkuj", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    local x, y, z = getElementPosition(vehicle)
    local rx, ry, rz = getElementRotation(vehicle)
    setVehicleRespawnPosition(vehicle, x, y, z, rx, ry, rz)
    outputChatBox("Tu bedzie wracac to auto.", player)
end)
```

#### Zobacz też

- [`getVehicleRespawnPosition`](https://trilogy-hub.com/docs/getVehicleRespawnPosition/)
- [`setVehicleRespawnRotation`](https://trilogy-hub.com/docs/setVehicleRespawnRotation/)
- [`respawnVehicle`](https://trilogy-hub.com/docs/respawnVehicle/)

### setVehicleRespawnRotation

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia obrót, z jakim pojazd pojawi się przy odrodzeniu (pozycja odrodzenia się nie zmienia).

#### Składnia

```lua
bool setVehicleRespawnRotation(vehicle vehicle [, float rx = 0, float ry = 0, float rz = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `rx` (float, opcjonalny = 0) - Obrót X w stopniach.
- `ry` (float, opcjonalny = 0) - Obrót Y w stopniach.
- `rz` (float, opcjonalny = 0) - Kierunek w stopniach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(560, 2495, -1665, 13.2)
setVehicleRespawnRotation(vehicle, 0, 0, 180)
```

#### Zobacz też

- [`getVehicleRespawnRotation`](https://trilogy-hub.com/docs/getVehicleRespawnRotation/)
- [`setVehicleRespawnPosition`](https://trilogy-hub.com/docs/setVehicleRespawnPosition/)

### setVehicleRotorSpeed

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje prędkość obrotu wirnika helikoptera albo śmigła samolotu.

#### Składnia

```lua
bool setVehicleRotorSpeed(vehicle vehicle, float value)
```

#### Argumenty

- `vehicle` (vehicle) - Helikopter albo samolot.
- `value` (float) - Prędkość -10..10.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local heli = createVehicle(487, 1765, -2290, 14)
setVehicleRotorSpeed(heli, 0.2)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Wirnik w grze kręci się zgodnie z pracą silnika; ustawienie skryptem nie zmienia go jeszcze.

#### Zobacz też

- [`getVehicleRotorSpeed`](https://trilogy-hub.com/docs/getVehicleRotorSpeed/)
- [`setVehicleRotorState`](https://trilogy-hub.com/docs/setVehicleRotorState/)

### setVehicleRotorState

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Zapisuje, czy wirnik helikoptera ma się kręcić.

#### Składnia

```lua
bool setVehicleRotorState(vehicle vehicle, bool value)
```

#### Argumenty

- `vehicle` (vehicle) - Helikopter.
- `value` (bool) - `true` = kręci się.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool stopRotor = true`
- W MTA:SA: `setVehicleRotorState(vehicle theVehicle, bool state, bool stopRotor = true)`

#### Przykład

```lua
local heli = createVehicle(487, 1765, -2290, 14)
setVehicleRotorState(heli, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setVehicleRotorSpeed`.

#### Zobacz też

- [`getVehicleRotorState`](https://trilogy-hub.com/docs/getVehicleRotorState/)
- [`setVehicleRotorSpeed`](https://trilogy-hub.com/docs/setVehicleRotorSpeed/)

### setVehicleSirens

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia położenie i kolor jednego punktu syreny dodanego przez `addVehicleSirens`.

#### Składnia

```lua
bool setVehicleSirens(vehicle vehicle, int point, float x, float y, float z [, int r = 255, int g = 0, int b = 0, int a = 255, int minAlpha = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `point` (int) - Numer punktu od 1 do liczby z `addVehicleSirens`.
- `x` (float) - Przesunięcie w prawo od środka pojazdu (m).
- `y` (float) - Przesunięcie do przodu (m).
- `z` (float) - Przesunięcie w górę (m).
- `r` (int, opcjonalny = 255) - Czerwony 0-255.
- `g` (int, opcjonalny = 0) - Zielony 0-255.
- `b` (int, opcjonalny = 0) - Niebieski 0-255.
- `a` (int, opcjonalny = 255) - Krycie przy błysku 0-255.
- `minAlpha` (int, opcjonalny = 0) - Krycie między błyskami 0-255.

#### Zwraca

`true` przy powodzeniu, `false` gdy pojazd nie ma syren albo zły numer punktu.

#### Przykład

```lua
local vehicle = createVehicle(596, 1535, -1670, 13.4)
addVehicleSirens(vehicle, 1, 1)
setVehicleSirens(vehicle, 1, 0, 0.3, 1.1, 255, 150, 0, 255, 40)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Jak przy `addVehicleSirens`: gra nie rysuje jeszcze tych punktów.

#### Zobacz też

- [`addVehicleSirens`](https://trilogy-hub.com/docs/addVehicleSirens/)
- [`getVehicleSirens`](https://trilogy-hub.com/docs/getVehicleSirens/)
- [`removeVehicleSirens`](https://trilogy-hub.com/docs/removeVehicleSirens/)

### setVehicleSirensOn

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Włącza albo wyłącza syrenę i koguty pojazdu uprzywilejowanego (policja, karetka, straż) u wszystkich graczy, tak jak robi to gracz klawiszem klaksonu w grze. Na pojazdach bez syreny nic nie widać.

#### Składnia

```lua
bool setVehicleSirensOn(vehicle element, bool value)
```

#### Argumenty

- `element` (vehicle) - Pojazd.
- `value` (bool) - `true` = syrena włączona.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("syrena", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleSirensOn(vehicle, not getVehicleSirensOn(vehicle)) end
end)
```

#### Zobacz też

- [`getVehicleSirensOn`](https://trilogy-hub.com/docs/getVehicleSirensOn/)

### setVehicleSmokeTrailEnabled

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje, czy za samolotem (np. Stuntplane, Cropduster) ma się ciągnąć smuga dymu.

#### Składnia

```lua
bool setVehicleSmokeTrailEnabled(vehicle vehicle, bool value)
```

#### Argumenty

- `vehicle` (vehicle) - Samolot.
- `value` (bool) - `true` = smuga włączona.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local plane = createVehicle(513, 1950, -2300, 14)
setVehicleSmokeTrailEnabled(plane, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie rysuje jeszcze smugi na polecenie skryptu.

#### Zobacz też

- [`isVehicleSmokeTrailEnabled`](https://trilogy-hub.com/docs/isVehicleSmokeTrailEnabled/)

### setVehicleTailLightColor

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zmienia kolor tylnych lamp pojazdu u wszystkich graczy (domyślnie czerwony).

#### Składnia

```lua
bool setVehicleTailLightColor(vehicle vehicle, int r, int g, int b)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `r` (int) - Czerwony 0-255.
- `g` (int) - Zielony 0-255.
- `b` (int) - Niebieski 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleTailLightColor(vehicle, 255, 0, 120)
```

#### Zobacz też

- [`getVehicleTailLightColor`](https://trilogy-hub.com/docs/getVehicleTailLightColor/)
- [`setVehicleHeadLightColor`](https://trilogy-hub.com/docs/setVehicleHeadLightColor/)

### setVehicleTaxiLightOn

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapala albo gasi lampkę „TAXI” na dachu taksówki u wszystkich graczy (modele z lampką: Taxi 420, Cabbie 438). Zapalona lampka zwykle znaczy, że taksówka jest wolna.

#### Składnia

```lua
bool setVehicleTaxiLightOn(vehicle element, bool value)
```

#### Argumenty

- `element` (vehicle) - Pojazd.
- `value` (bool) - `true` = lampka świeci.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onVehicleEnter", root, function(player, seat)
    if getElementModel(source) == 420 and seat > 0 then
        setVehicleTaxiLightOn(source, false)
    end
end)
```

#### Zobacz też

- [`isVehicleTaxiLightOn`](https://trilogy-hub.com/docs/isVehicleTaxiLightOn/)

### setVehicleTurnVelocity

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia prędkość obrotu pojazdu wokół osi x, y, z, np. żeby wprawić auto w obrót. To ta sama funkcja co `setElementAngularVelocity`.

#### Składnia

```lua
bool setVehicleTurnVelocity(vehicle element, float x, float y, float z)
```

#### Argumenty

- `element` (vehicle) - Pojazd.
- `x` (float) - Prędkość obrotu wokół osi X.
- `y` (float) - Prędkość obrotu wokół osi Y.
- `z` (float) - Prędkość obrotu wokół osi Z (w poziomie).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("bak", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleTurnVelocity(vehicle, 0, 0, 0.3) end
end)
```

#### Zobacz też

- [`getVehicleTurnVelocity`](https://trilogy-hub.com/docs/getVehicleTurnVelocity/)
- [`setElementAngularVelocity`](https://trilogy-hub.com/docs/setElementAngularVelocity/)
- [`setElementVelocity`](https://trilogy-hub.com/docs/setElementVelocity/)

### setVehicleTurretPosition

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje obrót wieżyczki pojazdu (czołg Rhino, wóz SWAT, wóz strażacki): poziomy i pionowy, w radianach.

#### Składnia

```lua
bool setVehicleTurretPosition(vehicle vehicle, float horizontal, float vertical)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd z wieżyczką.
- `horizontal` (float) - Obrót poziomy w radianach.
- `vertical` (float) - Obrót pionowy w radianach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local tank = createVehicle(432, 300, 1900, 18)
setVehicleTurretPosition(tank, math.pi / 2, 0)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** W grze wieżyczkę obraca kierowca, a jej położenie widzą inni gracze; ustawienie skryptem nie obraca jeszcze wieżyczki.

#### Zobacz też

- [`getVehicleTurretPosition`](https://trilogy-hub.com/docs/getVehicleTurretPosition/)

### setVehicleVariant

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Wybiera warianty wyglądu modelu pojazdu, czyli fabryczne dodatki z gry: bagażnik dachowy, inna skrzynia pickupa, ładunek, osłony. Każdy model ma własną liczbę wariantów (wiele nie ma żadnych). Bez argumentów wariant jest losowany. Zmiana jest widoczna u wszystkich graczy.

#### Składnia

```lua
bool setVehicleVariant(vehicle vehicle [, int v1 = losowy, int v2 = 255])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `v1` (int, opcjonalny = losowy) - Pierwszy wariant: 0 do liczby wariantów modelu minus 1, albo 255 = brak.
- `v2` (int, opcjonalny = 255) - Drugi wariant, te same wartości.

#### Zwraca

`true` przy powodzeniu, `false` gdy model nie ma takiego wariantu.

#### Przykład

```lua
local pickup = createVehicle(422, 2000, -1690, 13.5)
setVehicleVariant(pickup, 0, 255)
```

#### Zobacz też

- [`getVehicleVariant`](https://trilogy-hub.com/docs/getVehicleVariant/)
- [`createVehicle`](https://trilogy-hub.com/docs/createVehicle/)

### setVehicleWheelGrip

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zmienia przyczepność kół pojazdu mnożnikiem (1 = zwykła, 0.5 = połowa, 1.5 = o połowę więcej). Każdy zasób ma swój mnożnik, a auto dostaje ich iloczyn. 1 zdejmuje mnożnik zasobu, a zatrzymanie zasobu zdejmuje jego mnożniki samo.

#### Składnia

```lua
bool setVehicleWheelGrip(vehicle vehicle, number multiplier)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `multiplier` (number) - Mnożnik 0.05-5.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("lod", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleWheelGrip(vehicle, 0.5) end
end)
```

#### Zobacz też

- [`getVehicleWheelGrip`](https://trilogy-hub.com/docs/getVehicleWheelGrip/)
- [`setVehicleHandling`](https://trilogy-hub.com/docs/setVehicleHandling/)

### setVehicleWheelScale

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje mnożnik rozmiaru kół pojazdu (1 = normalne).

#### Składnia

```lua
bool setVehicleWheelScale(vehicle vehicle, float value)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `value` (float) - Mnożnik 0.1-10.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleWheelScale(vehicle, 1.2)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Koła w grze się nie zmieniają; rozmiar kół własnych modeli zmienia `setVehicleModelWheelSize` po stronie klienta.

#### Zobacz też

- [`getVehicleWheelScale`](https://trilogy-hub.com/docs/getVehicleWheelScale/)
- [`setVehicleModelWheelSize`](https://trilogy-hub.com/docs/setVehicleModelWheelSize/)

### setVehicleWheelsRotation

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zapisuje obrót każdego z czterech kół pojazdu w stopniach.

#### Składnia

```lua
bool setVehicleWheelsRotation(vehicle vehicle [, float rl = 0, float rr = 0, float fl = 0, float fr = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `rl` (float, opcjonalny = 0) - Tylne lewe koło.
- `rr` (float, opcjonalny = 0) - Tylne prawe.
- `fl` (float, opcjonalny = 0) - Przednie lewe.
- `fr` (float, opcjonalny = 0) - Przednie prawe.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleWheelsRotation(vehicle, 0, 0, 30, 30)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Koła w grze obracają się zgodnie z jazdą.

#### Zobacz też

- [`getVehicleWheelsRotation`](https://trilogy-hub.com/docs/getVehicleWheelsRotation/)

### setVehicleWheelStates

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia stan kół pojazdu u wszystkich graczy: całe, przebite (flak) albo odpadnięte. Kolejność argumentów: przednie lewe, tylne lewe, przednie prawe, tylne prawe. Dla motocykla liczą się dwa pierwsze (przód, tył). Podaj -1 albo `nil`, żeby nie zmieniać danego koła.

#### Składnia

```lua
bool setVehicleWheelStates(vehicle vehicle [, int frontLeft = -1, int rearLeft = -1, int frontRight = -1, int rearRight = -1])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `frontLeft` (int, opcjonalny = -1) - Przednie lewe: 0 całe, 1 przebite, 2 odpadnięte, -1 bez zmian.
- `rearLeft` (int, opcjonalny = -1) - Tylne lewe, wartości jak wyżej.
- `frontRight` (int, opcjonalny = -1) - Przednie prawe.
- `rearRight` (int, opcjonalny = -1) - Tylne prawe.

#### Zwraca

`true` przy powodzeniu, `false` dla złej wartości.

#### Przykład

```lua
addCommandHandler("kolczatka", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleWheelStates(vehicle, 1, 1, 1, 1) end
end)
```

#### Zobacz też

- [`getVehicleWheelStates`](https://trilogy-hub.com/docs/getVehicleWheelStates/)
- [`fixVehicle`](https://trilogy-hub.com/docs/fixVehicle/)

### setVehicleWindowOpen

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zapisuje, czy szyba pojazdu jest opuszczona. Numery szyb 0-3.

#### Składnia

```lua
bool setVehicleWindowOpen(vehicle vehicle, int window, bool open)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `window` (int) - Numer szyby 0-3.
- `open` (bool) - `true` = opuszczona.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("szyba", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    local seat = getPedOccupiedVehicleSeat(player)
    if vehicle and seat and seat <= 3 then
        setVehicleWindowOpen(vehicle, seat, not isVehicleWindowOpen(vehicle, seat))
    end
end)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie pokazuje jeszcze opuszczonych szyb; wartość służy logice skryptu (np. czy słychać rozmowę z wnętrza).

#### Zobacz też

- [`isVehicleWindowOpen`](https://trilogy-hub.com/docs/isVehicleWindowOpen/)

### setVehicleWindowTint

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Przyciemnia szyby pojazdu u wszystkich graczy i może je lekko podbarwić. Najciemniej jest 80% - większa wartość też daje 80%, bo szyba ma dalej wyglądać jak szyba: zostają odbicia i trochę widać przez nią wnętrze. Kolor tylko podbarwia szkło, główną robotę robi przyciemnienie. Przyciemnienie 0 bez koloru przywraca zwykłe szyby.

#### Składnia

```lua
bool setVehicleWindowTint(vehicle vehicle, int darkness [, int r = nil, int g = nil, int b = nil])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `darkness` (int) - Przyciemnienie w procentach 0-80.
- `r` (int, opcjonalny = nil) - Czerwony składnik koloru 0-255; bez koloru szyby są tylko przyciemnione.
- `g` (int, opcjonalny = nil) - Zielony składnik koloru 0-255.
- `b` (int, opcjonalny = nil) - Niebieski składnik koloru 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("szyby", function(player, _, percent)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleWindowTint(vehicle, tonumber(percent) or 60) end
end)
```

#### Zobacz też

- [`getVehicleWindowTint`](https://trilogy-hub.com/docs/getVehicleWindowTint/)
- [`setVehicleColor`](https://trilogy-hub.com/docs/setVehicleColor/)

### setVehicleWreckDelay

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Ustawia, po ilu milisekundach od wybuchu wrak pojazdu znika z mapy (element zostaje usunięty, z wywołaniem `onElementDestroy`; siedzący w nim gracze wypadają). Domyślnie 20000 ms (20 s); 0 = wrak zostaje na zawsze. Podany `root` zmienia wartość domyślną dla wszystkich pojazdów bez własnego ustawienia. Nie dotyczy pojazdów z włączonym odradzaniem (`toggleVehicleRespawn`) — te wracają naprawione na punkt odrodzenia. `fixVehicle` przed upływem czasu zatrzymuje znikanie. Zmiana dla wraku już czekającego liczy czas od nowa.

#### Składnia

```lua
bool setVehicleWreckDelay(vehicle vehicle, int ms)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd albo `root`.
- `ms` (int) - Czas w milisekundach, 0 = wrak zostaje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
-- wraki znikaja po minucie, a auta frakcji zostaja
setVehicleWreckDelay(root, 60000)
local radiowoz = createVehicle(596, 1535, -1675, 13.4)
setVehicleWreckDelay(radiowoz, 0)
```

#### Zobacz też

- [`getVehicleWreckDelay`](https://trilogy-hub.com/docs/getVehicleWreckDelay/)
- [`toggleVehicleRespawn`](https://trilogy-hub.com/docs/toggleVehicleRespawn/)
- [`blowVehicle`](https://trilogy-hub.com/docs/blowVehicle/)

### spawnVehicle

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Odradza pojazd jednorazowo w podanym miejscu, tak jak `respawnVehicle`: wysadza pasażerów, naprawia pojazd i zeruje prędkość. Zapisany punkt odrodzenia się nie zmienia, więc kolejne automatyczne odrodzenia nadal wracają do starego miejsca.

#### Składnia

```lua
bool spawnVehicle(vehicle vehicle, float x, float y, float z [, float rx = 0, float ry = 0, float rz = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd do odrodzenia.
- `x` (float) - Współrzędna X nowego miejsca.
- `y` (float) - Współrzędna Y.
- `z` (float) - Wysokość Z.
- `rx` (float, opcjonalny = 0) - Obrót wokół osi X w stopniach.
- `ry` (float, opcjonalny = 0) - Obrót wokół osi Y w stopniach.
- `rz` (float, opcjonalny = 0) - Kierunek w stopniach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("przywolaj", function(player, _, id)
    local vehicle = getElementByID(id or "")
    if not vehicle or getElementType(vehicle) ~= "vehicle" then return end
    local x, y, z = getElementPosition(player)
    spawnVehicle(vehicle, x + 4, y, z + 0.5, 0, 0, 0)
end)
```

#### Zobacz też

- [`respawnVehicle`](https://trilogy-hub.com/docs/respawnVehicle/)
- [`setVehicleRespawnPosition`](https://trilogy-hub.com/docs/setVehicleRespawnPosition/)

### spawnVehicleFlyingComponent

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Tworzy element obiektu w miejscu pojazdu i nadaje mu prędkość pojazdu z lekkim losowym rozrzutem, tak jakby część odpadła. Obiekt znika po podanym czasie. Numer części zapisuje w danych elementu `flyingComponent`.

#### Składnia

```lua
object spawnVehicleFlyingComponent(vehicle vehicle, int nodeIndex [, int collisionType = nil, int lifetime = 30000])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `nodeIndex` (int) - Numer części.
- `collisionType` (int, opcjonalny = nil) - Przyjmowany dla zgodności ze starszymi skryptami i ignorowany.
- `lifetime` (int, opcjonalny = 30000) - Czas życia odłamka w ms; 0 = zostaje na stałe.

#### Zwraca

Utworzony obiekt albo `false`.

#### Przykład

```lua
addEventHandler("onVehicleDamage", root, function(loss)
    if loss > 200 then
        local piece = spawnVehicleFlyingComponent(source, 1, nil, 10000)
        if piece then setElementModel(piece, 1327) end
    end
end)
```

#### Uwagi

> **Uwaga:** **Ograniczenie.** Obiekt dostaje numer modelu pojazdu, a gra nie ma takiego obiektu, więc oderwanej części nie widać; funkcja nadaje się do logiki skryptu (np. własnego modelu nadanego przez `setElementModel`).

#### Zobacz też

- [`createObject`](https://trilogy-hub.com/docs/createObject/)

### toggleVehicleRespawn

*Funkcja · Strona: Serwer · Kategoria: Pojazdy · Identyczna z MTA:SA*

Włącza albo wyłącza automatyczne odradzanie pojazdu. Domyślnie wyłączone: pojazd ze skryptu nie wraca sam. Gdy jest włączone, wrak wraca naprawiony na punkt odrodzenia po czasie z `setVehicleRespawnDelay`, a porzucony pojazd po czasie z `setVehicleIdleRespawnDelay`. Wyłączenie anuluje odrodzenie wraku, które już czekało w kolejce; wrak bez odradzania znika po czasie z `setVehicleWreckDelay` (domyślnie 20 s).

#### Składnia

```lua
bool toggleVehicleRespawn(vehicle vehicle, bool enabled)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `enabled` (bool) - `true` = odradzaj automatycznie, `false` = nie odradzaj.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(560, 2495, -1665, 13.2)
toggleVehicleRespawn(vehicle, true)
setVehicleIdleRespawnDelay(vehicle, 5 * 60000)
```

#### Zobacz też

- [`isVehicleRespawnable`](https://trilogy-hub.com/docs/isVehicleRespawnable/)
- [`setVehicleRespawnDelay`](https://trilogy-hub.com/docs/setVehicleRespawnDelay/)
- [`setVehicleIdleRespawnDelay`](https://trilogy-hub.com/docs/setVehicleIdleRespawnDelay/)

### canPedBeKnockedOffBike

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca wartość ustawioną przez `setPedCanBeKnockedOffBike`. Domyślnie `true`.

#### Składnia

```lua
bool canPedBeKnockedOffBike(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Zapisany stan.

#### Przykład

```lua
outputServerLog(tostring(canPedBeKnockedOffBike(player)))
```

#### Zobacz też

- [`setPedCanBeKnockedOffBike`](https://trilogy-hub.com/docs/setPedCanBeKnockedOffBike/)

### getAnalogControlState

*Funkcja · Strona: Serwer · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Druga nazwa funkcji `getPedAnalogControlState`, zostawiona dla zgodności ze starszymi skryptami. Zwraca siłę sterowania płynnego 0-1.

#### Składnia

```lua
float getAnalogControlState(ped ped, string control)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `control` (string) - Nazwa sterowania.

#### Zwraca

Wartość 0-1.

#### Różnice względem MTA:SA

- W MTA:SA: `getAnalogControlState(string control, bool rawValue)`

#### Przykład

```lua
local v = getAnalogControlState(walker, "forwards")
```

#### Zobacz też

- [`getPedAnalogControlState`](https://trilogy-hub.com/docs/getPedAnalogControlState/)
- [`setAnalogControlState`](https://trilogy-hub.com/docs/setAnalogControlState/)

### getBoneIDs

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca listę wszystkich numerów kości, które rozumie serwer (1-8, 21-26, 31-36, 41-44, 51-54). Przydaje się do pętli po kościach albo do sprawdzania, czy numer podany w komendzie jest poprawny.

#### Składnia

```lua
table getBoneIDs()
```

#### Zwraca

Posortowana tablica numerów kości.

#### Przykład

```lua
for _, id in ipairs(getBoneIDs()) do
    outputServerLog(id .. " = " .. getBoneName(id))
end
```

#### Zobacz też

- [`getBoneName`](https://trilogy-hub.com/docs/getBoneName/)
- [`getPedBonePosition`](https://trilogy-hub.com/docs/getPedBonePosition/)

### getBoneName

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca angielską nazwę kości o podanym numerze, np. 8 → `"Head"`, 25 → `"RightHand"`, 2 → `"Pelvis"`. Gdy numer nie istnieje, zwraca `false`.

#### Składnia

```lua
string getBoneName(int bone)
```

#### Argumenty

- `bone` (int) - Numer kości (jak w `getBoneIDs`).

#### Zwraca

Nazwa kości albo `false`.

#### Przykład

```lua
outputServerLog(getBoneName(8))
```

#### Zobacz też

- [`getBoneIDs`](https://trilogy-hub.com/docs/getBoneIDs/)

### getPedAimTarget

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca punkt w świecie, w który celuje postać, zgłoszony przez grę gracza. Gdy gra jeszcze nie przysłała celu, zwraca `false`.

#### Składnia

```lua
float, float, float getPedAimTarget(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

x, y, z celu albo `false`.

#### Przykład

```lua
local x, y, z = getPedAimTarget(player)
```

#### Zobacz też

- [`isPedAiming`](https://trilogy-hub.com/docs/isPedAiming/)
- [`getPedTargetEnd`](https://trilogy-hub.com/docs/getPedTargetEnd/)
- [`setPedAimTarget`](https://trilogy-hub.com/docs/setPedAimTarget/)

### getPedAnalogControlState

*Funkcja · Strona: Serwer · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Zwraca siłę sterowania płynnego postaci (0-1) ustawioną przez `setPedAnalogControlState`. 0 oznacza, że sterowanie nie jest wciśnięte.

#### Składnia

```lua
float getPedAnalogControlState(ped ped, string control)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `control` (string) - Nazwa sterowania.

#### Zwraca

Wartość 0-1.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool rawValue`
- W MTA:SA: `getPedAnalogControlState(ped thePed, string controlName, bool rawValue)`

#### Przykład

```lua
outputServerLog(getPedAnalogControlState(walker, "forwards"))
```

#### Zobacz też

- [`setPedAnalogControlState`](https://trilogy-hub.com/docs/setPedAnalogControlState/)

### getPedAttackTarget

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca element, który NPC właśnie atakuje (ustawiony przez `setPedAttackTarget` albo wybrany przez agresywnego NPC po zranieniu). Gdy NPC nie walczy, zwraca `false`.

#### Składnia

```lua
element getPedAttackTarget(ped ped)
```

#### Argumenty

- `ped` (ped) - NPC.

#### Zwraca

Cel ataku albo `false`.

#### Przykład

```lua
local target = getPedAttackTarget(ped)
if target then outputChatBox("NPC atakuje " .. getElementType(target)) end
```

#### Zobacz też

- [`setPedAttackTarget`](https://trilogy-hub.com/docs/setPedAttackTarget/)

### getPedCameraRotation

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca kierunek kamery postaci zapisany przez `setPedCameraRotation` (domyślnie 0). Nie odczytuje rzeczywistej kamery gracza.

#### Składnia

```lua
float getPedCameraRotation(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Kąt w stopniach.

#### Przykład

```lua
outputServerLog(getPedCameraRotation(player))
```

#### Zobacz też

- [`setPedCameraRotation`](https://trilogy-hub.com/docs/setPedCameraRotation/)

### getPedContactElement

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca element, na którym stoi postać, np. pojazd albo obiekt (gdy gracz stoi na dachu autobusu, zwróci autobus). Gdy postać stoi na zwykłym terenie mapy, zwraca `false`.

#### Składnia

```lua
element getPedContactElement(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Pojazd, obiekt albo `false`.

#### Przykład

```lua
local under = getPedContactElement(player)
if under and getElementType(under) == "vehicle" then outputChatBox("Stoisz na pojeździe.", player) end
```

#### Zobacz też

- [`isPedOnGround`](https://trilogy-hub.com/docs/isPedOnGround/)

### getPedControlState

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy dane sterowanie postaci jest wciśnięte według stanu ustawionego przez skrypty (`setPedControlState` albo `setPedAnalogControlState`). Nie odczytuje klawiszy, które gracz naciska fizycznie; do tego służy `getControlState` po stronie klienta.

#### Składnia

```lua
bool getPedControlState(ped ped, string control)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `control` (string) - Nazwa sterowania, np. `"forwards"`.

#### Zwraca

`true`, gdy wciśnięte.

#### Przykład

```lua
if getPedControlState(walker, "sprint") then outputServerLog("biegnie") end
```

#### Zobacz też

- [`setPedControlState`](https://trilogy-hub.com/docs/setPedControlState/)
- [`getPedControlStates`](https://trilogy-hub.com/docs/getPedControlStates/)

### getPedControlStates

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca naraz listę wszystkich sterowań postaci, które skrypty ustawiły jako wciśnięte. Wygodne do debugowania NPC albo do zapisania i późniejszego odtworzenia stanu.

#### Składnia

```lua
table getPedControlStates(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Posortowana lista nazw wciśniętych sterowań.

#### Przykład

```lua
outputServerLog(table.concat(getPedControlStates(walker), ", "))
```

#### Zobacz też

- [`getPedControlState`](https://trilogy-hub.com/docs/getPedControlState/)
- [`setPedControlState`](https://trilogy-hub.com/docs/setPedControlState/)

### getPedFightingStyle

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca styl walki zapisany przez `setPedFightingStyle` (domyślnie 15).

#### Składnia

```lua
int getPedFightingStyle(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Styl walki 4-16.

#### Przykład

```lua
outputServerLog(getPedFightingStyle(player))
```

#### Zobacz też

- [`setPedFightingStyle`](https://trilogy-hub.com/docs/setPedFightingStyle/)

### getPedGravity

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca grawitację postaci zapisaną przez `setPedGravity` (domyślnie 0.008).

#### Składnia

```lua
float getPedGravity(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Grawitacja postaci.

#### Przykład

```lua
outputServerLog(getPedGravity(player))
```

#### Zobacz też

- [`setPedGravity`](https://trilogy-hub.com/docs/setPedGravity/)
- [`getGravity`](https://trilogy-hub.com/docs/getGravity/)

### getPedLookAt

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca punkt, w który postać ma patrzeć według ostatniego `setPedLookAt`, oraz czas (w `getTickCount`), do którego to patrzenie trwa. Gdy nic nie ustawiono, zwraca `false`.

#### Składnia

```lua
float, float, float, int getPedLookAt(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

x, y, z punktu i chwila końca (ms, jak `getTickCount`) albo `false`.

#### Przykład

```lua
local x, y, z, untilTick = getPedLookAt(ped)
if x and untilTick > getTickCount() then outputServerLog("wciąż patrzy") end
```

#### Zobacz też

- [`setPedLookAt`](https://trilogy-hub.com/docs/setPedLookAt/)

### getPedMoveState

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Ocenia, jak postać się teraz porusza: `stand` (stoi), `walk` (idzie), `powerwalk` (szybki marsz), `jog` (trucht) albo `sprint` (bieg). Wynik wynika z prędkości postaci, a gdy skrypt wcisnął `walk` lub `sprint`, z tego sterowania. Przydaje się np. do naliczania zmęczenia albo hałasu kroków.

#### Składnia

```lua
string getPedMoveState(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`stand`, `walk`, `powerwalk`, `jog` albo `sprint`.

#### Przykład

```lua
setTimer(function()
    for _, p in ipairs(getElementsByType("player")) do
        if getPedMoveState(p) == "sprint" then outputChatBox("Biegniesz!", p) end
    end
end, 2000, 0)
```

#### Zobacz też

- [`getElementVelocity`](https://trilogy-hub.com/docs/getElementVelocity/)
- [`setPedControlState`](https://trilogy-hub.com/docs/setPedControlState/)

### getPedOxygenLevel

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca zapas tlenu zapisany przez `setPedOxygenLevel` (0-1000). Domyślnie 1000. Nie odczytuje paska tlenu z gry.

#### Składnia

```lua
float getPedOxygenLevel(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Tlen 0-1000.

#### Przykład

```lua
outputServerLog(getPedOxygenLevel(player))
```

#### Zobacz też

- [`setPedOxygenLevel`](https://trilogy-hub.com/docs/setPedOxygenLevel/)

### getPedSimplestTask

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca nazwę zadania, które zostało ustawione najpóźniej (we wszystkich warstwach), czyli to, co postać według skryptów robi w tej chwili. Gdy postać nie ma żadnych zadań, zwraca `false`.

#### Składnia

```lua
string getPedSimplestTask(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Nazwa zadania albo `false`.

#### Przykład

```lua
outputServerLog(tostring(getPedSimplestTask(guard)))
```

#### Zobacz też

- [`setPedTask`](https://trilogy-hub.com/docs/setPedTask/)
- [`isPedDoingTask`](https://trilogy-hub.com/docs/isPedDoingTask/)

### getPedTarget

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca element, w który celuje postać (gracz, NPC albo pojazd), zgłoszony przez grę gracza. Gdy postać nie celuje w żaden element, zwraca `false`.

#### Składnia

```lua
element getPedTarget(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Element celu albo `false`.

#### Przykład

```lua
local target = getPedTarget(player)
if target and getElementType(target) == "player" then outputChatBox("Ktoś do ciebie celuje!", target) end
```

#### Zobacz też

- [`isPedAiming`](https://trilogy-hub.com/docs/isPedAiming/)
- [`getPedAimTarget`](https://trilogy-hub.com/docs/getPedAimTarget/)

### getPedTargetCollision

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza linię strzału postaci (od `getPedTargetStart` do `getPedTargetEnd`) i zwraca pierwszy punkt, w którym trafia ona w budynek, pojazd, postać albo obiekt. Gdy po drodze nic nie ma, zwraca `false`.

#### Składnia

```lua
float, float, float getPedTargetCollision(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

x, y, z trafienia albo `false`.

#### Przykład

```lua
local hx, hy, hz = getPedTargetCollision(player)
if hx then createExplosion(hx, hy, hz, 12) end
```

#### Zobacz też

- [`getPedTargetStart`](https://trilogy-hub.com/docs/getPedTargetStart/)
- [`getPedTargetEnd`](https://trilogy-hub.com/docs/getPedTargetEnd/)
- [`processLineOfSight`](https://trilogy-hub.com/docs/processLineOfSight/)

### getPedTargetEnd

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca punkt końcowy linii strzału postaci: cel ustawiony przez `setPedAimTarget`, a gdy go nie ma, punkt 100 m przed postacią w kierunku, w który jest zwrócona.

#### Składnia

```lua
float, float, float getPedTargetEnd(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local ex, ey, ez = getPedTargetEnd(player)
```

#### Zobacz też

- [`getPedTargetStart`](https://trilogy-hub.com/docs/getPedTargetStart/)
- [`setPedAimTarget`](https://trilogy-hub.com/docs/setPedAimTarget/)

### getPedTargetStart

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca punkt, z którego zaczyna się linia strzału postaci, czyli przybliżone położenie wylotu lufy (to samo co `getPedWeaponMuzzlePosition`). Razem z `getPedTargetEnd` wyznacza tor pocisku.

#### Składnia

```lua
float, float, float getPedTargetStart(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local sx, sy, sz = getPedTargetStart(player)
```

#### Zobacz też

- [`getPedTargetEnd`](https://trilogy-hub.com/docs/getPedTargetEnd/)
- [`getPedTargetCollision`](https://trilogy-hub.com/docs/getPedTargetCollision/)

### getPedTask

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca zadanie zapisane w danej warstwie przez `setPedTask`: nazwę, dane i chwilę (w `getTickCount`), w której zostało ustawione. Gdy warstwa jest pusta, zwraca `false`.

#### Składnia

```lua
string, any, int getPedTask(ped ped, string priority)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `priority` (string) - Nazwa warstwy, np. `"primary"`.

#### Zwraca

Nazwa zadania, dane i czas ustawienia albo `false`.

#### Przykład

```lua
local name, data = getPedTask(guard, "primary")
```

#### Zobacz też

- [`setPedTask`](https://trilogy-hub.com/docs/setPedTask/)

### getPedTasks

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca tablicę wszystkich warstw zadań postaci w postaci „warstwa → nazwa zadania”. Przydaje się do podglądu, co skrypty kazały robić NPC.

#### Składnia

```lua
table getPedTasks(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Tablica warstwa → nazwa.

#### Przykład

```lua
for layer, name in pairs(getPedTasks(guard)) do outputServerLog(layer .. ": " .. name) end
```

#### Zobacz też

- [`setPedTask`](https://trilogy-hub.com/docs/setPedTask/)
- [`getPedTask`](https://trilogy-hub.com/docs/getPedTask/)

### getPedVariant

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca bieżący wariant wyglądu pieszego: numer ubrania i numer skóry (oba 0-3). Gdy wariant nie był ustawiony, zwraca 0, 0.

#### Składnia

```lua
int, int getPedVariant(ped ped)
```

#### Argumenty

- `ped` (ped) - NPC albo gracz.

#### Zwraca

Wariant ubrania i wariant skóry.

#### Przykład

```lua
local clothes, skin = getPedVariant(npc)
```

#### Zobacz też

- [`setPedVariant`](https://trilogy-hub.com/docs/setPedVariant/)

### getPedVoice

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca typ i nazwę banku głosów zapisane przez `setPedVoice`. Gdy głos nie był ustawiony, zwraca `false`.

#### Składnia

```lua
string, string getPedVoice(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Typ i nazwa albo `false`.

#### Przykład

```lua
local vtype, vname = getPedVoice(npc)
```

#### Zobacz też

- [`setPedVoice`](https://trilogy-hub.com/docs/setPedVoice/)
- [`resetPedVoice`](https://trilogy-hub.com/docs/resetPedVoice/)

### getPedWalkingStyle

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca styl chodu zapisany przez `setPedWalkingStyle` (domyślnie 0).

#### Składnia

```lua
int getPedWalkingStyle(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Numer stylu chodu.

#### Przykład

```lua
outputServerLog(getPedWalkingStyle(player))
```

#### Zobacz też

- [`setPedWalkingStyle`](https://trilogy-hub.com/docs/setPedWalkingStyle/)

### getPedWeaponMuzzlePosition

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca przybliżone położenie wylotu lufy broni postaci: punkt ok. 45 cm przed postacią na wysokości barku, w kierunku, w który jest zwrócona. Serwer nie zna dokładnej pozy rąk, dlatego to przybliżenie wystarcza do efektów i prostych testów linii strzału.

#### Składnia

```lua
float, float, float getPedWeaponMuzzlePosition(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local mx, my, mz = getPedWeaponMuzzlePosition(player)
```

#### Zobacz też

- [`getPedTargetStart`](https://trilogy-hub.com/docs/getPedTargetStart/)

### getPedWeapons

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca wszystkie bronie, które ma postać, razem z amunicją. Pierwsza wartość to lista ID broni (po jednej na zajęty slot), druga to tablica „ID broni → ile ma amunicji”. Przydaje się przy zapisywaniu ekwipunku gracza do bazy przed wyjściem z serwera.

#### Składnia

```lua
table, table getPedWeapons(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Lista ID broni oraz tablica amunicji według ID broni.

#### Przykład

```lua
addEventHandler("onPlayerQuit", root, function()
    local list, ammo = getPedWeapons(source)
    for _, weapon in ipairs(list) do
        outputServerLog(getPlayerName(source) .. ": " .. weapon .. " x" .. ammo[weapon])
    end
end)
```

#### Zobacz też

- [`getPedWeapon`](https://trilogy-hub.com/docs/getPedWeapon/)
- [`getPedTotalAmmo`](https://trilogy-hub.com/docs/getPedTotalAmmo/)
- [`giveWeapon`](https://trilogy-hub.com/docs/giveWeapon/)

### getPedWeaponSlot

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca numer slotu (0-12) broni, którą postać trzyma teraz w ręku. Slot wynika z rodzaju broni: np. pistolety to slot 2, karabiny szturmowe slot 5. Gdy postać trzyma pięści, zwraca 0.

#### Składnia

```lua
int getPedWeaponSlot(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Numer slotu 0-12.

#### Przykład

```lua
addCommandHandler("slot", function(player)
    outputChatBox("Aktywny slot: " .. getPedWeaponSlot(player), player)
end)
```

#### Zobacz też

- [`setPedWeaponSlot`](https://trilogy-hub.com/docs/setPedWeaponSlot/)
- [`getSlotFromWeapon`](https://trilogy-hub.com/docs/getSlotFromWeapon/)
- [`getPedWeapon`](https://trilogy-hub.com/docs/getPedWeapon/)

### givePedWeapon

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Daje postaci broń z amunicją, dokładnie tak samo jak `giveWeapon` (to ta sama funkcja pod inną nazwą). Jeśli postać ma już broń z tego samego slotu, zostaje ona zastąpiona, a amunicja tej samej broni się sumuje.

#### Składnia

```lua
bool givePedWeapon(ped ped, int weapon [, int ammo = 30, bool setAsCurrent = false])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `weapon` (int) - ID broni, np. 24 = Desert Eagle, 31 = M4, 34 = karabin snajperski.
- `ammo` (int, opcjonalny = 30) - Liczba naboi do dodania.
- `setAsCurrent` (bool, opcjonalny = false) - `true` = postać od razu bierze tę broń do ręki.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("m4", function(player)
    givePedWeapon(player, 31, 200, true)
end)
```

#### Zobacz też

- [`giveWeapon`](https://trilogy-hub.com/docs/giveWeapon/)
- [`takeWeapon`](https://trilogy-hub.com/docs/takeWeapon/)

### isPedAggressive

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Sprawdza, czy NPC jest agresywny, czyli czy sam odpowie atakiem, gdy ktoś go zrani. Agresję ustawia `setPedAggressive` albo siódmy argument `createPed`.

#### Składnia

```lua
bool isPedAggressive(ped ped)
```

#### Argumenty

- `ped` (ped) - NPC (element typu `ped`).

#### Zwraca

`true`, gdy NPC jest agresywny.

#### Przykład

```lua
if isPedAggressive(ped) then outputChatBox("Uważaj, ten gość oddaje!") end
```

#### Zobacz też

- [`setPedAggressive`](https://trilogy-hub.com/docs/setPedAggressive/)

### isPedAiming

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy postać celuje z broni (trzyma prawy przycisk myszy albo celuje z pada). Stan pochodzi z gry gracza i odświeża się kilka razy na sekundę.

#### Składnia

```lua
bool isPedAiming(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy celuje.

#### Przykład

```lua
if isPedAiming(player) then outputServerLog(getPlayerName(player) .. " celuje") end
```

#### Zobacz też

- [`getPedAimTarget`](https://trilogy-hub.com/docs/getPedAimTarget/)
- [`getPedTarget`](https://trilogy-hub.com/docs/getPedTarget/)

### isPedBleeding

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca wartość ustawioną przez `setPedBleeding`. Domyślnie `false`.

#### Składnia

```lua
bool isPedBleeding(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Zapisany stan.

#### Przykład

```lua
if isPedBleeding(player) then setElementHealth(player, getElementHealth(player) - 1) end
```

#### Zobacz też

- [`setPedBleeding`](https://trilogy-hub.com/docs/setPedBleeding/)

### isPedChoking

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca stan duszenia zapisany przez `setPedChoking`. Domyślnie `false`. Gra sama nie ustawia tego stanu (np. gaz łzawiący go nie zmienia), więc odzwierciedla wyłącznie to, co ustawiły skrypty.

#### Składnia

```lua
bool isPedChoking(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy skrypt ustawił duszenie.

#### Przykład

```lua
if isPedChoking(player) then outputChatBox("Dusisz się!", player, 255, 0, 0) end
```

#### Zobacz też

- [`setPedChoking`](https://trilogy-hub.com/docs/setPedChoking/)

### isPedDoingTask

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Sprawdza, czy w którejkolwiek warstwie zadań postaci jest zadanie o podanej nazwie (zapisane przez `setPedTask` albo przez funkcje takie jak `setPedEnterVehicle`, które zapisują `enterVehicle`).

#### Składnia

```lua
bool isPedDoingTask(ped ped, string taskName)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `taskName` (string) - Nazwa zadania, np. `"enterVehicle"`.

#### Zwraca

`true`, gdy postać ma takie zadanie.

#### Przykład

```lua
if isPedDoingTask(guard, "patrol") then return end
```

#### Zobacz też

- [`setPedTask`](https://trilogy-hub.com/docs/setPedTask/)
- [`getPedSimplestTask`](https://trilogy-hub.com/docs/getPedSimplestTask/)

### isPedFootBloodEnabled

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca wartość ustawioną przez `setPedFootBloodEnabled`. Domyślnie `false`.

#### Składnia

```lua
bool isPedFootBloodEnabled(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Zapisany stan.

#### Przykład

```lua
outputServerLog(tostring(isPedFootBloodEnabled(player)))
```

#### Zobacz też

- [`setPedFootBloodEnabled`](https://trilogy-hub.com/docs/setPedFootBloodEnabled/)

### isPedFrozen

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy postać jest zamrożona, czyli nie może się ruszać ani spadać. Zamrożenie ustawia `setElementFrozen`; gra gracza stosuje je od razu.

#### Składnia

```lua
bool isPedFrozen(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy zamrożona.

#### Przykład

```lua
if isPedFrozen(player) then outputChatBox("Jesteś zamrożony.", player) end
```

#### Zobacz też

- [`setElementFrozen`](https://trilogy-hub.com/docs/setElementFrozen/)
- [`isElementFrozen`](https://trilogy-hub.com/docs/isElementFrozen/)

### isPedHeadless

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca wartość ustawioną przez `setPedHeadless`. Domyślnie `false`.

#### Składnia

```lua
bool isPedHeadless(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy skrypt oznaczył postać jako bez głowy.

#### Przykład

```lua
outputServerLog(tostring(isPedHeadless(ped)))
```

#### Zobacz też

- [`setPedHeadless`](https://trilogy-hub.com/docs/setPedHeadless/)

### isPedOnGround

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy postać stoi na ziemi. Zwraca `false`, gdy postać skacze, spada, pływa, siedzi w pojeździe albo leci na plecaku odrzutowym. Stan pochodzi z gry gracza.

#### Składnia

```lua
bool isPedOnGround(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy stoi na ziemi.

#### Przykład

```lua
addCommandHandler("skok", function(player)
    if isPedOnGround(player) then setElementVelocity(player, 0, 0, 0.5) end
end)
```

#### Zobacz też

- [`getPedContactElement`](https://trilogy-hub.com/docs/getPedContactElement/)
- [`isPedInVehicle`](https://trilogy-hub.com/docs/isPedInVehicle/)

### isPedReloadingWeapon

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy postać właśnie przeładowuje broń. Dla gracza korzysta ze stanu wysłanego przez jego grę, a dodatkowo zwraca `true` przez czas ustawiony w `setPedReloadingWeapon`. Przydaje się np. do blokowania akcji w trakcie przeładowania.

#### Składnia

```lua
bool isPedReloadingWeapon(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true` w trakcie przeładowania.

#### Przykład

```lua
addCommandHandler("lecz", function(player)
    if isPedReloadingWeapon(player) then return end
    setElementHealth(player, 100)
end)
```

#### Zobacz też

- [`setPedReloadingWeapon`](https://trilogy-hub.com/docs/setPedReloadingWeapon/)
- [`reloadPedWeapon`](https://trilogy-hub.com/docs/reloadPedWeapon/)

### isPedTargetingMarkerEnabled

*Funkcja · Strona: Serwer · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Zwraca wartość ustawioną przez `setPedTargetingMarkerEnabled`. Domyślnie `true`.

#### Składnia

```lua
bool isPedTargetingMarkerEnabled(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Zapisany stan.

#### Różnice względem MTA:SA

- W MTA:SA: `isPedTargetingMarkerEnabled()`

#### Przykład

```lua
outputServerLog(tostring(isPedTargetingMarkerEnabled(player)))
```

#### Zobacz też

- [`setPedTargetingMarkerEnabled`](https://trilogy-hub.com/docs/setPedTargetingMarkerEnabled/)

### killPed

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Natychmiast zabija gracza albo NPC: zeruje zdrowie i wywołuje zdarzenie śmierci (`onPlayerWasted` dla gracza, `onPedWasted` dla NPC) z podanym zabójcą, bronią i trafioną częścią ciała. Dzięki temu skrypty liczące zabójstwa albo nagrody widzą śmierć tak, jakby ktoś naprawdę zastrzelił postać. Gdy postać już nie żyje, nic się nie dzieje.

#### Składnia

```lua
bool killPed(ped ped [, element killer = false, int weapon = false, int bodyPart = false, bool stealth = false])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC do zabicia.
- `killer` (element, opcjonalny = false) - Kto zabił (gracz, NPC albo pojazd). Trafia do zdarzenia śmierci jako zabójca.
- `weapon` (int, opcjonalny = false) - ID broni albo przyczyny śmierci (np. 22 = pistolet, 49 = potrącenie, 51 = wybuch) przekazywane do zdarzenia.
- `bodyPart` (int, opcjonalny = false) - Trafiona część ciała: 3 tułów, 4 pośladki, 5 lewa ręka, 6 prawa ręka, 7 lewa noga, 8 prawa noga, 9 głowa.
- `stealth` (bool, opcjonalny = false) - `true` = zabójstwo po cichu (jak cios nożem od tyłu); trafia do zdarzenia jako ostatni argument.

#### Zwraca

`true`, gdy postać zginęła; `false`, gdy już nie żyła albo argument jest zły.

#### Przykład

```lua
addCommandHandler("zabij", function(admin, _, name)
    local target = getPlayerFromName(name or "")
    if target then killPed(target, admin, 0, 9) end
end)
```

#### Zobacz też

- [`setElementHealth`](https://trilogy-hub.com/docs/setElementHealth/)
- [`isPedDead`](https://trilogy-hub.com/docs/isPedDead/)

### playPedVoiceLine

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Wysyła wszystkim graczom zdarzenie `onClientPedVoice` z postacią i nazwą kwestii. Sama funkcja nie odtwarza dźwięku: kwestię odtwarza skrypt klienta, np. przez `playSound3D` z pliku dźwiękowego zasobu przypiętego do postaci. Dzięki temu można zrobić własne dialogi NPC słyszalne dla wszystkich w pobliżu.

#### Składnia

```lua
bool playPedVoiceLine(ped ped, string voiceLine)
```

#### Argumenty

- `ped` (ped) - Postać, która „mówi”.
- `voiceLine` (string) - Nazwa kwestii (dowolna, np. nazwa pliku dźwiękowego).

#### Zwraca

`true` po wysłaniu.

#### Przykład

```lua
playPedVoiceLine(shopkeeper, "witaj.mp3")
```

#### Zobacz też

- [`setPedVoice`](https://trilogy-hub.com/docs/setPedVoice/)

### removePedFromVehicle

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Natychmiast wyjmuje gracza albo NPC z pojazdu i stawia obok, bez animacji wysiadania. Wywołuje `onPlayerVehicleExit` tak jak zwykłe wyjście, a na 3 sekundy blokuje graczowi ponowne wejście, żeby gra nie wsadziła go z powrotem. Gdy postać nie siedzi w pojeździe, zwraca `false`.

#### Składnia

```lua
bool removePedFromVehicle(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true` przy powodzeniu, `false` gdy postać była pieszo.

#### Przykład

```lua
addCommandHandler("wyrzuc", function(admin, _, name)
    local target = getPlayerFromName(name or "")
    if target and isPedInVehicle(target) then removePedFromVehicle(target) end
end)
```

#### Zobacz też

- [`warpPedIntoVehicle`](https://trilogy-hub.com/docs/warpPedIntoVehicle/)
- [`setPedExitVehicle`](https://trilogy-hub.com/docs/setPedExitVehicle/)

### resetPedVoice

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Usuwa głos zapisany przez `setPedVoice`, czyli przywraca postać do głosu fabrycznego jej modelu. Po tym `getPedVoice` zwraca `false`.

#### Składnia

```lua
bool resetPedVoice(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetPedVoice(npc)
```

#### Zobacz też

- [`setPedVoice`](https://trilogy-hub.com/docs/setPedVoice/)
- [`getPedVoice`](https://trilogy-hub.com/docs/getPedVoice/)

### setAnalogControlState

*Funkcja · Strona: Serwer · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Druga nazwa funkcji `setPedAnalogControlState`, zostawiona dla starszych skryptów. Przyjmuje te same argumenty: postać, nazwę sterowania i siłę 0-1.

#### Składnia

```lua
bool setAnalogControlState(ped ped, string control, float state)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `control` (string) - Nazwa sterowania.
- `state` (float) - Siła 0-1.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setAnalogControlState(string control, float state, bool forceOverrideNextFrame = false)`

#### Przykład

```lua
setAnalogControlState(walker, "forwards", 0.5)
```

#### Zobacz też

- [`setPedAnalogControlState`](https://trilogy-hub.com/docs/setPedAnalogControlState/)
- [`getAnalogControlState`](https://trilogy-hub.com/docs/getAnalogControlState/)

### setPedAggressive

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Włącza albo wyłącza agresję NPC. Agresywny NPC, którego ktoś zrani (gracz albo inna postać), sam zaczyna atakować napastnika, tak jakby skrypt wywołał `setPedAttackTarget`. Nieagresywny (domyślnie) przyjmuje obrażenia i na nic nie reaguje. Działa tylko dla NPC (`ped`), nie dla graczy.

#### Składnia

```lua
bool setPedAggressive(ped ped, bool on)
```

#### Argumenty

- `ped` (ped) - NPC (element typu `ped`).
- `on` (bool) - `true` = agresywny, `false` = spokojny.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local bouncer = createPed(164, 1833.5, -1682.4, 13.5, 90)
setPedAggressive(bouncer, true)
```

#### Zobacz też

- [`isPedAggressive`](https://trilogy-hub.com/docs/isPedAggressive/)
- [`setPedAttackTarget`](https://trilogy-hub.com/docs/setPedAttackTarget/)
- [`createPed`](https://trilogy-hub.com/docs/createPed/)

### setPedAimTarget

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje punkt, w który postać ma celować. Wartość jest dla skryptów: zwraca ją `getPedTargetEnd` (i pośrednio `getPedTargetCollision`), ale sama gra nie obraca broni postaci w tę stronę.

#### Składnia

```lua
bool setPedAimTarget(ped ped, float x, float y, float z)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `x` (float) - Współrzędna X celu (albo `Vector3`).
- `y` (float) - Współrzędna Y celu.
- `z` (float) - Wysokość Z celu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedAimTarget(sniper, 2495, -1687, 14)
```

#### Zobacz też

- [`getPedTargetEnd`](https://trilogy-hub.com/docs/getPedTargetEnd/)
- [`getPedAimTarget`](https://trilogy-hub.com/docs/getPedAimTarget/)

### setPedAnalogControlState

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Ustawia sterowanie płynne postaci w zakresie 0-1, czyli jak mocno jest „wciśnięte” (np. 0.5 = pół gazu). Wartość jest zapamiętywana dla skryptów; dodatkowo każda wartość większa od 0 wciska zwykłe sterowanie o tej nazwie, a 0 je puszcza, więc dla NPC `forwards`, `backwards` i `sprint` działają w grze jak w `setPedControlState` (bez stopniowania siły).

#### Składnia

```lua
bool setPedAnalogControlState(ped ped, string control, float state)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `control` (string) - Nazwa sterowania, np. `"accelerate"`, `"forwards"`, `"vehicle_left"`.
- `state` (float) - Siła 0-1; wartości poza zakresem są przycinane. 0 = puszczone.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedAnalogControlState(walker, "forwards", 1)
```

#### Zobacz też

- [`getPedAnalogControlState`](https://trilogy-hub.com/docs/getPedAnalogControlState/)
- [`setPedControlState`](https://trilogy-hub.com/docs/setPedControlState/)

### setPedArmor

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Ustawia pancerz (kamizelkę) postaci w skali 0-100. Wartość od razu trafia do gry gracza, więc pasek pancerza na ekranie zmienia się natychmiast. Wartości spoza zakresu są przycinane do 0-100. To ta sama funkcja co `setPlayerArmour`.

#### Składnia

```lua
bool setPedArmor(ped ped, float armor)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `armor` (float) - Nowy pancerz od 0 (brak) do 100 (pełna kamizelka).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    setPedArmor(source, 50)
end)
```

#### Zobacz też

- [`getPedArmor`](https://trilogy-hub.com/docs/getPedArmor/)
- [`setElementHealth`](https://trilogy-hub.com/docs/setElementHealth/)

### setPedAttackTarget

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Każe NPC zaatakować gracza albo inną postać: NPC podchodzi i bije albo strzela z broni, którą ma w ręku, dopóki cel nie zginie, nie zniknie albo skrypt nie przerwie walki. Walkę po stronie graczy prowadzi gra jednego z nich (gracza-celu albo najbliższego gracza w tym samym wymiarze), dlatego NPC zachowuje się tak samo u wszystkich. Podanie `nil` albo `false` kończy walkę. Walka kończy się też sama, gdy cel umrze, wyjdzie z serwera albo zostanie usunięty.

#### Składnia

```lua
bool setPedAttackTarget(ped ped, element target)
```

#### Argumenty

- `ped` (ped) - NPC, który ma atakować.
- `target` (element) - Gracz albo inna postać (nie ten sam NPC). `nil`/`false` = koniec walki.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("zamach", function(player)
    local x, y, z = getElementPosition(player)
    local thug = createPed(102, x + 5, y, z)
    giveWeapon(thug, 22, 100, true)
    setPedAttackTarget(thug, player)
end)
```

#### Zobacz też

- [`getPedAttackTarget`](https://trilogy-hub.com/docs/getPedAttackTarget/)
- [`setPedAggressive`](https://trilogy-hub.com/docs/setPedAggressive/)
- [`givePedWeapon`](https://trilogy-hub.com/docs/givePedWeapon/)

### setPedBleeding

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Włącza albo wyłącza krwawienie postaci. Krwawiący gracz zostawia w swojej grze krople krwi na ziemi, gdy się porusza (jak ranne postacie w grze). Zdrowie nie spada od samego krwawienia. Dla NPC wartość jest zapamiętywana dla skryptów i zwracana przez `isPedBleeding`.

#### Składnia

```lua
bool setPedBleeding(ped ped, bool value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (bool) - `true` = krwawi.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedBleeding(player, true)
```

#### Zobacz też

- [`isPedBleeding`](https://trilogy-hub.com/docs/isPedBleeding/)

### setPedCameraRotation

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje kierunek kamery postaci w stopniach (-360 do 360). W Trilogy Hub to stan dla skryptów zwracany przez `getPedCameraRotation`; kamera gracza się nie obraca. Do sterowania kamerą gracza służą funkcje z kategorii Kamera, np. `setCameraMatrix`.

#### Składnia

```lua
bool setPedCameraRotation(ped ped, float value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (float) - Kąt w stopniach od -360 do 360.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedCameraRotation(player, 90)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.**

#### Zobacz też

- [`getPedCameraRotation`](https://trilogy-hub.com/docs/getPedCameraRotation/)
- [`setCameraMatrix`](https://trilogy-hub.com/docs/setCameraMatrix/)

### setPedCanBeKnockedOffBike

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Ustala, czy postać da się zrzucić z motocykla lub roweru przy zderzeniu. Dla gracza ustawienie działa w jego grze. Dla NPC wartość jest zapamiętywana i zwracana przez `canPedBeKnockedOffBike`.

#### Składnia

```lua
bool setPedCanBeKnockedOffBike(ped ped, bool enabled)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `enabled` (bool) - `true` = można zrzucić (domyślnie), `false` = nie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedCanBeKnockedOffBike(player, false)
```

#### Zobacz też

- [`canPedBeKnockedOffBike`](https://trilogy-hub.com/docs/canPedBeKnockedOffBike/)

### setPedChoking

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje na serwerze, czy postać się dusi (np. od gazu łzawiącego w GTA). W Trilogy Hub to stan dla skryptów: serwer go pamięta i zwraca w `isPedChoking`, ale gra nie odtwarza jeszcze animacji kaszlu ani nie zabiera zdrowia. Jeśli duszenie ma mieć skutki, zrób je w skrypcie, np. timerem zmniejszającym zdrowie i `setPedAnimation` z animacją kaszlu.

#### Składnia

```lua
bool setPedChoking(ped ped, bool value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (bool) - `true` = dusi się, `false` = nie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedChoking(player, true)
local t = setTimer(function()
    if not isElement(player) or not isPedChoking(player) then return end
    setElementHealth(player, getElementHealth(player) - 2)
end, 1000, 10)
setTimer(setPedChoking, 10000, 1, player, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie odtwarza jeszcze duszenia; wartość służy własnej logice skryptów.

#### Zobacz też

- [`isPedChoking`](https://trilogy-hub.com/docs/isPedChoking/)
- [`setPedAnimation`](https://trilogy-hub.com/docs/setPedAnimation/)
- [`setElementHealth`](https://trilogy-hub.com/docs/setElementHealth/)

### setPedControlState

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Wciska albo puszcza wirtualny klawisz sterowania postaci, np. `forwards` (idź do przodu) czy `sprint`. Dla NPC gra wszystkich graczy wykonuje `forwards`, `backwards` i `sprint`, więc postać idzie albo biegnie w kierunku, w który jest zwrócona; pozostałe nazwy sterowań są zapamiętywane dla skryptów i zwracane przez `getPedControlState`. Nazwy są takie jak w `bindKey`/`toggleControl` (np. `fire`, `jump`, `crouch`, `walk`).

#### Składnia

```lua
bool setPedControlState(ped ped, string control, bool state)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `control` (string) - Nazwa sterowania, np. `"forwards"`, `"backwards"`, `"sprint"`, `"walk"`, `"jump"`, `"fire"`. Musi być poprawną nazwą (`isValidControlName`).
- `state` (bool) - `true` = wciśnięte, `false` = puszczone.

#### Zwraca

`true` przy powodzeniu, `false` dla złej nazwy.

#### Przykład

```lua
local walker = createPed(7, 2490, -1670, 13.3, 180)
setPedControlState(walker, "forwards", true)
setTimer(setPedControlState, 5000, 1, walker, "forwards", false)
```

#### Zobacz też

- [`getPedControlState`](https://trilogy-hub.com/docs/getPedControlState/)
- [`getPedControlStates`](https://trilogy-hub.com/docs/getPedControlStates/)
- [`setPedAnalogControlState`](https://trilogy-hub.com/docs/setPedAnalogControlState/)

### setPedDoingGangDriveby

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje, czy postać ma strzelać z okna pojazdu (drive-by). W Trilogy Hub to stan dla skryptów zwracany przez `isPedDoingGangDriveby`; gra nie przełącza na tej podstawie postaci w tryb strzelania z auta.

#### Składnia

```lua
bool setPedDoingGangDriveby(ped ped, bool value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (bool) - `true` = strzela z auta.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedDoingGangDriveby(player, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie zmienia zachowania postaci.

#### Zobacz też

- [`isPedDoingGangDriveby`](https://trilogy-hub.com/docs/isPedDoingGangDriveby/)

### setPedExitVehicle

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Wyjmuje postać z pojazdu na serwerze i zapisuje jej zadanie „wysiadanie”, a wszystkim klientom wysyła zdarzenie `onClientPedExitRequest` (postać, pojazd). Wysiadanie odbywa się tak jak w `removePedFromVehicle`, czyli od razu, bez animacji otwierania drzwi. Zwraca `false`, gdy postać nie siedzi w pojeździe.

#### Składnia

```lua
bool setPedExitVehicle(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("wysiadka", function(player)
    setPedExitVehicle(player)
end)
```

#### Zobacz też

- [`removePedFromVehicle`](https://trilogy-hub.com/docs/removePedFromVehicle/)
- [`setPedEnterVehicle`](https://trilogy-hub.com/docs/setPedEnterVehicle/)

### setPedFightingStyle

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Ustawia styl walki wręcz postaci (4 = zwykły, 5 = boks, 6 = kung-fu, 7 = kolano w głowę, 15 = chwyt i kopnięcie, 16 = łokcie). Gracz dostaje ten styl w swojej grze (jak po treningu na siłowni). Dla NPC wartość jest zapamiętywana i zwracana przez `getPedFightingStyle`. Wartości spoza 4-16 są odrzucane.

#### Składnia

```lua
bool setPedFightingStyle(ped ped, int value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (int) - Styl walki 4-16.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedFightingStyle(player, 5)
```

#### Zobacz też

- [`getPedFightingStyle`](https://trilogy-hub.com/docs/getPedFightingStyle/)

### setPedFootBloodEnabled

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje, czy postać ma zostawiać krwawe ślady stóp (jak po wejściu w kałużę krwi w GTA). W Trilogy Hub to stan dla skryptów zwracany przez `isPedFootBloodEnabled`; gra nie rysuje na tej podstawie śladów.

#### Składnia

```lua
bool setPedFootBloodEnabled(ped ped, bool value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (bool) - `true` = zostawia ślady.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedFootBloodEnabled(player, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.**

#### Zobacz też

- [`isPedFootBloodEnabled`](https://trilogy-hub.com/docs/isPedFootBloodEnabled/)

### setPedGravity

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje grawitację pojedynczej postaci (domyślnie 0.008, tyle co grawitacja świata). W Trilogy Hub to stan dla skryptów zwracany przez `getPedGravity`; na ruch postaci wpływa tylko grawitacja całego świata ustawiana przez `setGravity`.

#### Składnia

```lua
bool setPedGravity(ped ped, float value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (float) - Grawitacja (0.008 = normalna).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedGravity(player, 0.004)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Grawitację, która działa w grze, zmienia `setGravity`.

#### Zobacz też

- [`getPedGravity`](https://trilogy-hub.com/docs/getPedGravity/)
- [`setGravity`](https://trilogy-hub.com/docs/setGravity/)

### setPedHeadless

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje, czy postać ma być bez głowy (jak po strzale z karabinu snajperskiego w GTA). W Trilogy Hub to stan dla skryptów zwracany przez `isPedHeadless`; gra nie usuwa jeszcze głowy z modelu postaci.

#### Składnia

```lua
bool setPedHeadless(ped ped, bool value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (bool) - `true` = bez głowy.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedHeadless(ped, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Wygląd postaci się nie zmienia.

#### Zobacz też

- [`isPedHeadless`](https://trilogy-hub.com/docs/isPedHeadless/)

### setPedLookAt

*Funkcja · Strona: Serwer · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Obraca postać w stronę podanego punktu i zapamiętuje, gdzie i jak długo ma patrzeć. Obrót ciała jest wykonywany od razu (zmiana kierunku postaci), natomiast sam punkt, czas i element zostają zapisane dla skryptów i są zwracane przez `getPedLookAt`; gra nie odwraca dodatkowo głowy. Do stałego śledzenia celu wzrokiem użyj `setPedFocus`.

#### Składnia

```lua
bool setPedLookAt(ped ped, float x, float y, float z [, int time = 3000, int blend = 1000, element target = nil])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `x` (float) - Współrzędna X punktu (albo wektor `Vector3` w miejsce x, y, z).
- `y` (float) - Współrzędna Y punktu.
- `z` (float) - Wysokość Z punktu.
- `time` (int, opcjonalny = 3000) - Jak długo patrzeć, w milisekundach.
- `blend` (int, opcjonalny = 1000) - Czas płynnego obrotu w ms (zapisywany dla skryptów).
- `target` (element, opcjonalny = nil) - Element, na który postać patrzy (zapisywany dla skryptów).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setPedLookAt(ped thePed, float x, float y, float z, int time = 3000 [, int blend = 1000 ], element target = nil)`

#### Przykład

```lua
local x, y, z = getElementPosition(player)
setPedLookAt(guard, x, y, z, 5000)
```

#### Zobacz też

- [`getPedLookAt`](https://trilogy-hub.com/docs/getPedLookAt/)
- [`setPedFocus`](https://trilogy-hub.com/docs/setPedFocus/)
- [`setElementRotation`](https://trilogy-hub.com/docs/setElementRotation/)

### setPedOxygenLevel

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje zapas tlenu postaci pod wodą w skali 0-1000 (1000 = pełne płuca). W Trilogy Hub to stan dla skryptów zwracany przez `getPedOxygenLevel`; pasek tlenu w grze się nie zmienia. Wartości spoza 0-1000 są odrzucane.

#### Składnia

```lua
bool setPedOxygenLevel(ped ped, float value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (float) - Tlen 0-1000.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedOxygenLevel(player, 1000)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.**

#### Zobacz też

- [`getPedOxygenLevel`](https://trilogy-hub.com/docs/getPedOxygenLevel/)

### setPedReloadingWeapon

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Oznacza postać jako przeładowującą przez podany czas. Nie uruchamia animacji w grze; to znacznik dla skryptów, który odczytuje `isPedReloadingWeapon`, np. gdy własny system broni ma mieć swój czas przeładowania. Czas 0 albo ujemny kasuje znacznik.

#### Składnia

```lua
bool setPedReloadingWeapon(ped ped, int duration)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `duration` (int) - Czas w milisekundach (1000 = 1 sekunda). 0 = koniec przeładowania.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedReloadingWeapon(player, 2500)
```

#### Zobacz też

- [`isPedReloadingWeapon`](https://trilogy-hub.com/docs/isPedReloadingWeapon/)

### setPedStat

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Ustawia statystykę postaci z gry San Andreas w zakresie 0-1000. Dla gracza zmiana od razu trafia do jego gry, więc np. podniesienie umiejętności broni (69-79) do 999 pozwala strzelać z dwóch pistoletów, a stat 24 zwiększa maksymalne zdrowie. Wartość jest też zapamiętana na serwerze i widoczna w `getPedStat`.

#### Składnia

```lua
bool setPedStat(ped ped, int stat, float value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `stat` (int) - Numer statystyki 0-342 (np. 22 kondycja, 23 siła, 24 maks. zdrowie, 69-79 umiejętności broni, 160 jazda).
- `value` (float) - Nowa wartość 0-1000. Wartości spoza zakresu są odrzucane.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    for stat = 69, 79 do setPedStat(source, stat, 1000) end
end)
```

#### Zobacz też

- [`getPedStat`](https://trilogy-hub.com/docs/getPedStat/)

### setPedTargetingMarkerEnabled

*Funkcja · Strona: Serwer · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Zapisuje, czy nad celem postaci ma być widoczny znacznik celowania (trójkąt nad głową namierzonej osoby). W Trilogy Hub to stan dla skryptów zwracany przez `isPedTargetingMarkerEnabled`; gra nie chowa na tej podstawie znacznika. Domyślnie `true`.

#### Składnia

```lua
bool setPedTargetingMarkerEnabled(ped ped, bool value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (bool) - `true` = znacznik widoczny.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setPedTargetingMarkerEnabled(bool enabled)`

#### Przykład

```lua
setPedTargetingMarkerEnabled(player, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.**

#### Zobacz też

- [`isPedTargetingMarkerEnabled`](https://trilogy-hub.com/docs/isPedTargetingMarkerEnabled/)

### setPedTask

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Zapisuje dla postaci „zadanie” w wybranej warstwie, np. `primary` = `"enterVehicle"`, razem z dowolnymi danymi. To mechanizm dla skryptów (np. własnej sztucznej inteligencji NPC): gra nie wykonuje zapisanych zadań sama, ale inne skrypty mogą je odczytać przez `getPedTask`, `getPedTasks`, `isPedDoingTask` i `getPedSimplestTask`. Podanie `nil` jako nazwy usuwa zadanie z warstwy.

#### Składnia

```lua
bool setPedTask(ped ped, string priority [, string name = nil, any data = nil])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `priority` (string) - Nazwa warstwy, np. `"primary"`, `"secondary"` (dowolny napis).
- `name` (string, opcjonalny = nil) - Nazwa zadania, np. `"patrol"`. `nil` = usuń zadanie z tej warstwy.
- `data` (any, opcjonalny = nil) - Dowolne dane zadania (liczba, napis, tablica, element).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedTask(guard, "primary", "patrol", { 2490, -1670, 13.3 })
```

#### Zobacz też

- [`getPedTask`](https://trilogy-hub.com/docs/getPedTask/)
- [`getPedTasks`](https://trilogy-hub.com/docs/getPedTasks/)
- [`isPedDoingTask`](https://trilogy-hub.com/docs/isPedDoingTask/)

### setPedVariant

*Funkcja · Strona: Serwer · Kategoria: Postacie · Tylko Trilogy Hub*

Ustawia wariant wyglądu pieszego: zestaw ubrań i odcień skóry. Każdy model pieszego w Definitive Edition ma 4 warianty ubrania (0-3) i 4 warianty skóry (0-3); zmiana jest widoczna u wszystkich graczy. Pominięty argument jest losowany, dlatego `createPed` daje każdemu NPC losowy wygląd. Działa dla NPC i dla graczy ze skinem pieszego.

#### Składnia

```lua
bool setPedVariant(ped ped [, int clothes = losowy / random, int skin = losowy / random])
```

#### Argumenty

- `ped` (ped) - NPC albo gracz ze skinem pieszego.
- `clothes` (int, opcjonalny = losowy / random) - Wariant ubrania 0-3 (0 = podstawowy).
- `skin` (int, opcjonalny = losowy / random) - Wariant skóry 0-3 (0 = podstawowy).

#### Zwraca

`true` przy powodzeniu, `false` dla wartości spoza 0-3.

#### Przykład

```lua
local npc = createPed(7, 2490, -1670, 13.3)
setPedVariant(npc, 2, 0)
```

#### Zobacz też

- [`getPedVariant`](https://trilogy-hub.com/docs/getPedVariant/)
- [`createPed`](https://trilogy-hub.com/docs/createPed/)

### setPedVoice

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje dla postaci typ i nazwę banku głosów (np. typ `"PED_TYPE_GEN"` i nazwę `"VOICE_GEN_BBDYG1"`). Wartość jest dla skryptów i wraca w `getPedVoice`; gra Definitive Edition sama nie zmienia jeszcze na tej podstawie odzywek postaci. Własne kwestie można odtwarzać przez `playPedVoiceLine` i skrypt klienta.

#### Składnia

```lua
bool setPedVoice(ped ped, string voiceType, string voiceName)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `voiceType` (string) - Typ banku głosów, np. `"PED_TYPE_GEN"`.
- `voiceName` (string) - Nazwa banku głosów, np. `"VOICE_GEN_BBDYG1"`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedVoice(npc, "PED_TYPE_GEN", "VOICE_GEN_BBDYG1")
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Serwer zapamiętuje głos, ale gra nie zmienia jeszcze na jego podstawie odzywek postaci.

#### Zobacz też

- [`getPedVoice`](https://trilogy-hub.com/docs/getPedVoice/)
- [`resetPedVoice`](https://trilogy-hub.com/docs/resetPedVoice/)
- [`playPedVoiceLine`](https://trilogy-hub.com/docs/playPedVoiceLine/)

### setPedWalkingStyle

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Zapisuje styl chodu postaci jako numer animacji chodu z San Andreas (np. 54 zwykły, 118 mężczyzna, 121 gangster, 129 kobieta). W Trilogy Hub to na razie stan dla skryptów zwracany przez `getPedWalkingStyle`; gra nie zmienia jeszcze na tej podstawie sposobu chodzenia. Wartości spoza 0-138 są odrzucane.

#### Składnia

```lua
bool setPedWalkingStyle(ped ped, int value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (int) - Numer stylu chodu 0-138.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedWalkingStyle(player, 121)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.**

#### Zobacz też

- [`getPedWalkingStyle`](https://trilogy-hub.com/docs/getPedWalkingStyle/)
- [`setPedAnimation`](https://trilogy-hub.com/docs/setPedAnimation/)

### setPedWeaponSlot

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Przełącza broń w ręku postaci na tę, która leży w podanym slocie ekwipunku, tak jakby gracz przewinął kółkiem myszy. Slot musi zawierać broń; pusty slot (poza 0, czyli pięściami) daje `false`. Zmiana od razu trafia do gry gracza.

#### Składnia

```lua
bool setPedWeaponSlot(ped ped, int slot)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `slot` (int) - Slot 0-12 (0 = pięści, 2 = pistolety, 5 = karabiny szturmowe itd.).

#### Zwraca

`true` przy powodzeniu, `false` gdy slot jest pusty.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    giveWeapon(source, 24, 50)
    setPedWeaponSlot(source, 0)
end)
```

#### Zobacz też

- [`getPedWeaponSlot`](https://trilogy-hub.com/docs/getPedWeaponSlot/)
- [`setCurrentWeapon`](https://trilogy-hub.com/docs/setCurrentWeapon/)

### warpPedIntoVehicle

*Funkcja · Strona: Serwer · Kategoria: Postacie · Identyczna z MTA:SA*

Natychmiast wsadza gracza albo NPC na wybrany fotel pojazdu, bez podchodzenia i bez animacji wsiadania. Jeśli postać siedziała w innym aucie, najpierw jest z niego wyjmowana. Gdy wybrany fotel jest zajęty przez kogoś innego, funkcja nic nie robi i zwraca `false`. Gra gracza dostaje polecenie od razu, a serwer na 3 sekundy blokuje mu samodzielne wysiadanie, żeby wsadzenie się nie cofnęło. NPC w pojeździe zawsze siedzi: dopóki jest w aucie, jego ciało nie ma kolizji (trafiają go tylko kule), polecenia chodzenia i obrotu czekają na wyjście z auta, a gdy gra wyjmie go z fotela, klient od razu wsadza go z powrotem.

#### Składnia

```lua
bool warpPedIntoVehicle(ped ped, vehicle vehicle [, int seat = 0])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC do wsadzenia.
- `vehicle` (vehicle) - Pojazd docelowy.
- `seat` (int, opcjonalny = 0) - Fotel 0-8: 0 = kierowca, 1 = przedni pasażer, 2-3 = tył, wyższe tylko w pojazdach, które je mają.

#### Zwraca

`true` przy powodzeniu, `false` gdy fotel jest zajęty albo argument jest zły.

#### Przykład

```lua
addCommandHandler("auto", function(player)
    local x, y, z = getElementPosition(player)
    local car = createVehicle(411, x + 3, y, z)
    warpPedIntoVehicle(player, car, 0)
end)
```

#### Zobacz też

- [`removePedFromVehicle`](https://trilogy-hub.com/docs/removePedFromVehicle/)
- [`setPedEnterVehicle`](https://trilogy-hub.com/docs/setPedEnterVehicle/)
- [`getVehicleMaxPassengers`](https://trilogy-hub.com/docs/getVehicleMaxPassengers/)

### addDebugHook

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Podpina funkcję pod zdarzenia albo wywołania funkcji, do śledzenia i profilowania. `preEvent` i `postEvent` działają dla zdarzeń, `preFunction` i `postFunction` dla funkcji z listy nazw (lista jest wtedy wymagana). Funkcja w `preEvent` albo `preFunction` może zwrócić `"skip"`, żeby zablokować zdarzenie albo wywołanie.

#### Składnia

```lua
bool addDebugHook(string hookType, function callbackFunction [, table nameList])
```

#### Argumenty

- `hookType` (string) - `"preEvent"`, `"postEvent"`, `"preFunction"` albo `"postFunction"`.
- `callbackFunction` (function) - Zdarzenia: `function(resource, eventName, source, client, ...)`; funkcje: `function(resource, functionName, file, line, ...)`.
- `nameList` (table, opcjonalny) - Nazwy zdarzeń albo funkcji.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Log każdego `kickPlayer` z nazwą zasobu, który go wywołał.

```lua
addDebugHook("preFunction", function(resource, name, file, line, player)
    outputServerLog(("%s woła %s (%s:%s)"):format(resource and getResourceName(resource) or "?", name, tostring(file), tostring(line)))
end, { "kickPlayer" })
```

#### Zobacz też

- [`removeDebugHook`](https://trilogy-hub.com/docs/removeDebugHook/)

### clearElementVisibleTo

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Usuwa ograniczenia widoczności ustawione przez `setElementVisibleTo`, więc element znowu widzą wszyscy.

#### Składnia

```lua
bool clearElementVisibleTo(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local blip = createBlip(0, 0, 0, 41, 2, 255, 0, 0, 255, 0, 99999, player)
setTimer(clearElementVisibleTo, 30000, 1, blip)
```

#### Zobacz też

- [`setElementVisibleTo`](https://trilogy-hub.com/docs/setElementVisibleTo/)
- [`isElementVisibleTo`](https://trilogy-hub.com/docs/isElementVisibleTo/)

### createRadarArea

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Zmodyfikowana względem MTA:SA*

Tworzy prostokątny obszar radaru (np. teren gangu) w kolorze RGBA. Obszar istnieje na serwerze: ma kolor, rozmiar, miganie i `isInsideRadarArea`, ale w obecnej wersji klienta nie jest jeszcze rysowany na radarze.

#### Składnia

```lua
radararea createRadarArea(float startPosX, float startPosY, float sizeX, float sizeY [, int r = 255, int g = 0, int b = 0, int a = 150])
```

#### Argumenty

- `startPosX` (float) - X lewego dolnego rogu.
- `startPosY` (float) - Y lewego dolnego rogu.
- `sizeX` (float) - Szerokość.
- `sizeY` (float) - Wysokość.
- `r` (int, opcjonalny = 255) - Czerwony.
- `g` (int, opcjonalny = 0) - Zielony.
- `b` (int, opcjonalny = 0) - Niebieski.
- `a` (int, opcjonalny = 150) - Krycie.

#### Zwraca

Obszar albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `element visibleTo = root`
- W MTA:SA: `createRadarArea(float startPosX, float startPosY, float sizeX, float sizeY, int r = 255, int g = 0, int b = 0, int a = 255, element visibleTo = root)`

#### Przykład

```lua
local turf = createRadarArea(2440, -1720, 120, 90, 30, 160, 60, 140)
```

#### Zobacz też

- [`isInsideRadarArea`](https://trilogy-hub.com/docs/isInsideRadarArea/)
- [`setRadarAreaColor`](https://trilogy-hub.com/docs/setRadarAreaColor/)
- [`setRadarAreaFlashing`](https://trilogy-hub.com/docs/setRadarAreaFlashing/)

### deref

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca wartość zapamiętaną przez `ref` pod danym numerem.

#### Składnia

```lua
mixed deref(int reference)
```

#### Argumenty

- `reference` (int) - Numer z `ref`.

#### Zwraca

Wartość albo `false`.

#### Przykład

```lua
local value = deref(1)
```

#### Zobacz też

- [`ref`](https://trilogy-hub.com/docs/ref/)

### getCancelReason

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca powód podany w `cancelEvent(true, powod)` przez ostatnie anulowanie zdarzenia, np. powód odrzucenia połączenia w `onPlayerConnect`.

#### Składnia

```lua
string getCancelReason()
```

#### Zwraca

Powód albo pusty napis.

#### Przykład

```lua
addEventHandler("onPlayerConnect", root, function(nick)
    if nick:find("admin") then cancelEvent(true, "Zakazany nick") end
end)
addEventHandler("onPlayerConnect", root, function()
    if wasEventCancelled() then outputServerLog("Odrzucono: " .. getCancelReason()) end
end)
```

#### Zobacz też

- [`cancelEvent`](https://trilogy-hub.com/docs/cancelEvent/)
- [`wasEventCancelled`](https://trilogy-hub.com/docs/wasEventCancelled/)

### getLowLODElement

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca obiekt LOD przypisany przez `setLowLODElement`.

#### Składnia

```lua
element getLowLODElement(element theElement)
```

#### Argumenty

- `theElement` (element) - Obiekt.

#### Zwraca

Obiekt LOD albo `false`.

#### Przykład

```lua
local lod = getLowLODElement(tower)
```

#### Zobacz też

- [`setLowLODElement`](https://trilogy-hub.com/docs/setLowLODElement/)

### getNetworkStats

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca statystyki sieci serwera albo jednego gracza: wysłane i odebrane bajty oraz pakiety. Pola strat pakietów i buforów są na razie zerami.

#### Składnia

```lua
table getNetworkStats([player thePlayer])
```

#### Argumenty

- `thePlayer` (player, opcjonalny) - Gracz; bez niego cały serwer.

#### Zwraca

Tabela `bytesReceived`, `bytesSent`, `packetsReceived`, `packetsSent` i inne albo `false`.

#### Przykład

```lua
local s = getNetworkStats(player)
outputServerLog(("%s: %d KB odebrane"):format(getPlayerName(player), s.bytesReceived / 1024))
```

#### Zobacz też

- [`getSyncCost`](https://trilogy-hub.com/docs/getSyncCost/)
- [`getPlayerPing`](https://trilogy-hub.com/docs/getPlayerPing/)

### getRadarAreaColor

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca kolor obszaru radaru.

#### Składnia

```lua
int, int, int, int getRadarAreaColor(radararea theRadararea)
```

#### Argumenty

- `theRadararea` (radararea) - Obszar.

#### Zwraca

r, g, b, a albo `false`.

#### Przykład

```lua
local r, g, b, a = getRadarAreaColor(turf)
```

#### Zobacz też

- [`setRadarAreaColor`](https://trilogy-hub.com/docs/setRadarAreaColor/)

### getRadarAreaSize

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca szerokość i wysokość obszaru radaru.

#### Składnia

```lua
float, float getRadarAreaSize(radararea theRadararea)
```

#### Argumenty

- `theRadararea` (radararea) - Obszar.

#### Zwraca

Szerokość i wysokość albo `false`.

#### Przykład

```lua
local w, h = getRadarAreaSize(turf)
```

#### Zobacz też

- [`setRadarAreaSize`](https://trilogy-hub.com/docs/setRadarAreaSize/)

### getSyncCost

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Tylko Trilogy Hub*

Zwraca, ile kosztuje synchronizacja graczy od ostatniego wywołania: liczbę cykli (`ticks`), średni i najdłuższy czas cyklu w ms (`avgMs`, `maxMs`), stany na cykl (`statesPerTick`) i czas pomiaru (`seconds`). Pomaga znaleźć przycięcia serwera.

#### Składnia

```lua
table getSyncCost()
```

#### Zwraca

Tabela z polami albo `false`.

#### Przykład

```lua
setTimer(function()
    local c = getSyncCost()
    if c then outputServerLog(("sync: %.2f ms śr., %.2f ms max"):format(c.avgMs, c.maxMs)) end
end, 60000, 0)
```

#### Zobacz też

- [`getNetworkStats`](https://trilogy-hub.com/docs/getNetworkStats/)

### getUserdataType

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Mówi, jakiego rodzaju jest uchwyt: `element`, `lua-timer`, `resource-data`, `xml-node`, `text-display` i inne.

#### Składnia

```lua
string getUserdataType(userdata value)
```

#### Argumenty

- `value` (userdata) - Uchwyt.

#### Zwraca

Rodzaj albo `false`.

#### Przykład

```lua
local t = setTimer(function() end, 1000, 1)
outputServerLog(getUserdataType(t)) -- lua-timer
```

#### Zobacz też

- [`isElement`](https://trilogy-hub.com/docs/isElement/)
- [`isTimer`](https://trilogy-hub.com/docs/isTimer/)

### isInsideRadarArea

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Sprawdza, czy punkt (x, y) leży w obszarze radaru.

#### Składnia

```lua
bool isInsideRadarArea(radararea theArea, float posX, float posY)
```

#### Argumenty

- `theArea` (radararea) - Obszar.
- `posX` (float) - X.
- `posY` (float) - Y.

#### Zwraca

`true`, gdy punkt jest w obszarze.

#### Przykład

```lua
local x, y = getElementPosition(player)
if isInsideRadarArea(turf, x, y) then
    outputChatBox("Jesteś na terenie Grove Street.", player)
end
```

#### Zobacz też

- [`createRadarArea`](https://trilogy-hub.com/docs/createRadarArea/)

### isOOPEnabled

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Sprawdza, czy zasób ma składnię obiektową (`<oop>true</oop>`, np. `player:getName()`). W Trilogy Hub zawsze zwraca `false`; pisz funkcjami (`getPlayerName(player)`).

#### Składnia

```lua
bool isOOPEnabled()
```

#### Zwraca

Zawsze `false`.

#### Przykład

```lua
outputServerLog(tostring(isOOPEnabled())) -- false
```

#### Zobacz też

- [`getPlayerName`](https://trilogy-hub.com/docs/getPlayerName/)

### isRadarAreaFlashing

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Sprawdza, czy obszar radaru miga.

#### Składnia

```lua
bool isRadarAreaFlashing(radararea theRadararea)
```

#### Argumenty

- `theRadararea` (radararea) - Obszar.

#### Zwraca

`true`, gdy miga.

#### Przykład

```lua
outputServerLog(tostring(isRadarAreaFlashing(turf)))
```

#### Zobacz też

- [`setRadarAreaFlashing`](https://trilogy-hub.com/docs/setRadarAreaFlashing/)

### passwordHash

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Tworzy bezpieczny skrót hasła (scrypt, wynik zaczyna się od `$scrypt$`) do zapisania w bazie zamiast hasła. Ten sam tekst daje za każdym razem inny skrót; sprawdzasz go przez `passwordVerify`. Z funkcją zwrotną skrót przychodzi do niej.

#### Składnia

```lua
string passwordHash(string password [, string algorithm = "bcrypt", table options, function callback])
```

#### Argumenty

- `password` (string) - Hasło.
- `algorithm` (string, opcjonalny = "bcrypt") - `"scrypt"`; `"bcrypt"` jest przyjmowany, ale też daje scrypt.
- `options` (table, opcjonalny) - `{ cost = ... }`.
- `callback` (function, opcjonalny) - `function(hash)`.

#### Zwraca

Skrót albo `true` przy funkcji zwrotnej.

#### Przykład

```lua
local stored = passwordHash("haslo123", "scrypt")
outputServerLog(tostring(passwordVerify("haslo123", stored))) -- true
```

#### Uwagi

> **Ostrzeżenie:** **Bez bcrypt.** Skróty bcrypt z innych serwerów nie dadzą się sprawdzić; po przenosinach gracze muszą ustawić hasło od nowa.

#### Zobacz też

- [`passwordVerify`](https://trilogy-hub.com/docs/passwordVerify/)

### passwordVerify

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Sprawdza, czy hasło pasuje do skrótu z `passwordHash`. Z funkcją zwrotną wynik przychodzi do niej.

#### Składnia

```lua
bool passwordVerify(string password, string hash [, table options, function callback])
```

#### Argumenty

- `password` (string) - Wpisane hasło.
- `hash` (string) - Zapisany skrót.
- `options` (table, opcjonalny) - Nieużywane.
- `callback` (function, opcjonalny) - `function(matches)`.

#### Zwraca

`true`, gdy hasło pasuje.

#### Przykład

```lua
addEvent("login", true)
addEventHandler("login", root, function(password)
    local stored = getElementData(client, "hash")
    if stored and passwordVerify(password, stored) then
        outputChatBox("Zalogowano.", client)
    end
end)
```

#### Zobacz też

- [`passwordHash`](https://trilogy-hub.com/docs/passwordHash/)

### ref

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca liczbę, pod którą zapamiętana jest wartość (np. element), żeby przekazać ją dalej jako liczbę. `deref` zamienia ją z powrotem. Ta sama wartość ma zawsze ten sam numer.

#### Składnia

```lua
int ref(mixed value)
```

#### Argumenty

- `value` (mixed) - Wartość.

#### Zwraca

Numer albo `false` dla `nil`.

#### Przykład

```lua
local id = ref(player)
outputServerLog(deref(id) == player) -- true
```

#### Zobacz też

- [`deref`](https://trilogy-hub.com/docs/deref/)

### removeDebugHook

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Odpina funkcję dodaną przez `addDebugHook`.

#### Składnia

```lua
bool removeDebugHook(string hookType, function callbackFunction)
```

#### Argumenty

- `hookType` (string) - Rodzaj haka.
- `callbackFunction` (function) - Funkcja.

#### Zwraca

`true`, gdy funkcja została odpięta.

#### Przykład

```lua
local function trace(resource, eventName) outputServerLog(eventName) end
addDebugHook("preEvent", trace)
setTimer(removeDebugHook, 5000, 1, "preEvent", trace)
```

#### Zobacz też

- [`addDebugHook`](https://trilogy-hub.com/docs/addDebugHook/)

### resetFogDistance

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Przywraca domyślną odległość mgły (100).

#### Składnia

```lua
bool resetFogDistance()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetFogDistance()
```

#### Zobacz też

- [`setFogDistance`](https://trilogy-hub.com/docs/setFogDistance/)
- [`getFogDistance`](https://trilogy-hub.com/docs/getFogDistance/)

### resetMoonSize

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Przywraca domyślny rozmiar księżyca (3).

#### Składnia

```lua
bool resetMoonSize()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetMoonSize()
```

#### Zobacz też

- [`setMoonSize`](https://trilogy-hub.com/docs/setMoonSize/)
- [`getMoonSize`](https://trilogy-hub.com/docs/getMoonSize/)

### resetRainLevel

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Przywraca domyślną siłę deszczu (0).

#### Składnia

```lua
bool resetRainLevel()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetRainLevel()
```

#### Zobacz też

- [`setRainLevel`](https://trilogy-hub.com/docs/setRainLevel/)
- [`getRainLevel`](https://trilogy-hub.com/docs/getRainLevel/)

### setAircraftMaxHeight

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia maksymalną wysokość lotu samolotów i helikopterów (0-10000). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getAircraftMaxHeight`), ale nie zmienia jeszcze limitu w grze.

#### Składnia

```lua
bool setAircraftMaxHeight(float height)
```

#### Argumenty

- `height` (float) - Wysokość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setAircraftMaxHeight(2000)
```

#### Zobacz też

- [`getAircraftMaxHeight`](https://trilogy-hub.com/docs/getAircraftMaxHeight/)
- [`setAircraftMaxVelocity`](https://trilogy-hub.com/docs/setAircraftMaxVelocity/)

### setAircraftMaxVelocity

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia maksymalną prędkość samolotów (0-100, domyślnie 1.5). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getAircraftMaxVelocity`), ale nie zmienia jeszcze limitu w grze.

#### Składnia

```lua
bool setAircraftMaxVelocity(float velocity)
```

#### Argumenty

- `velocity` (float) - Prędkość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setAircraftMaxVelocity(3)
```

#### Zobacz też

- [`getAircraftMaxVelocity`](https://trilogy-hub.com/docs/getAircraftMaxVelocity/)

### setCloudsEnabled

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Włącza albo wyłącza chmury. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getCloudsEnabled`), ale nie zmienia jeszcze nieba w grze.

#### Składnia

```lua
bool setCloudsEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = chmury.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setCloudsEnabled(false)
```

#### Zobacz też

- [`getCloudsEnabled`](https://trilogy-hub.com/docs/getCloudsEnabled/)

### setCurrentWeapon

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Tylko Trilogy Hub*

Daje postaci do ręki broń, którą już ma (numer broni, np. 31 = M4; 0 = pięści). Druga nazwa: `setPedWeaponSlot`.

#### Składnia

```lua
bool setCurrentWeapon(ped thePed, int weapon)
```

#### Argumenty

- `thePed` (ped) - Postać.
- `weapon` (int) - Numer broni.

#### Zwraca

`true`, gdy postać ma tę broń.

#### Przykład

```lua
giveWeapon(player, 31, 200)
setCurrentWeapon(player, 0)
```

#### Zobacz też

- [`giveWeapon`](https://trilogy-hub.com/docs/giveWeapon/)
- [`getPedWeapon`](https://trilogy-hub.com/docs/getPedWeapon/)

### setFogDistance

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia odległość mgły (-1000 do 1000). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getFogDistance`), ale Trilogy Hub nie zmienia jeszcze mgły w grze.

#### Składnia

```lua
bool setFogDistance(float distance)
```

#### Argumenty

- `distance` (float) - Odległość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setFogDistance(50)
```

#### Zobacz też

- [`getFogDistance`](https://trilogy-hub.com/docs/getFogDistance/)
- [`resetFogDistance`](https://trilogy-hub.com/docs/resetFogDistance/)

### setFPSLimit

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia limit klatek na sekundę (0-32767). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getFPSLimit`), ale nie ogranicza jeszcze klatek w grze; limit ustawia gracz w opcjach gry.

#### Składnia

```lua
bool setFPSLimit(int fpsLimit)
```

#### Argumenty

- `fpsLimit` (int) - Limit.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setFPSLimit(60)
```

#### Zobacz też

- [`getFPSLimit`](https://trilogy-hub.com/docs/getFPSLimit/)

### setGameSpeed

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zmienia prędkość gry u wszystkich graczy: `1` to normalnie, `0.5` zwolnione tempo, `2` dwa razy szybciej (najwyżej 10). Działa na ruch, animacje i fizykę.

#### Składnia

```lua
bool setGameSpeed(float value)
```

#### Argumenty

- `value` (float) - Prędkość 0-10.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("matrix", function()
    setGameSpeed(0.4)
    setTimer(setGameSpeed, 5000, 1, 1)
end)
```

#### Zobacz też

- [`getGameSpeed`](https://trilogy-hub.com/docs/getGameSpeed/)
- [`setSlowMotionEnabled`](https://trilogy-hub.com/docs/setSlowMotionEnabled/)

### setInteriorSoundsEnabled

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Włącza albo wyłącza dźwięki wnętrz (muzyka i gwar w budynkach). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getInteriorSoundsEnabled`), ale nie zmienia jeszcze dźwięku w grze.

#### Składnia

```lua
bool setInteriorSoundsEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = dźwięki wnętrz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setInteriorSoundsEnabled(false)
```

#### Zobacz też

- [`getInteriorSoundsEnabled`](https://trilogy-hub.com/docs/getInteriorSoundsEnabled/)

### setJetpackMaxHeight

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia, jak wysoko można polecieć plecakiem odrzutowym. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getJetpackMaxHeight`), ale nie zmienia jeszcze limitu w grze.

#### Składnia

```lua
bool setJetpackMaxHeight(float height)
```

#### Argumenty

- `height` (float) - Wysokość (od -20).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setJetpackMaxHeight(300)
```

#### Zobacz też

- [`getJetpackMaxHeight`](https://trilogy-hub.com/docs/getJetpackMaxHeight/)

### setLowLODElement

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Przypisuje do obiektu jego uproszczoną wersję widoczną z daleka (LOD). W Trilogy Hub odległości rysowania liczy Unreal Engine, więc przypisanie jest zapamiętywane dla zgodności ze starszymi skryptami (`getLowLODElement`), ale nie zmienia wyglądu w grze.

#### Składnia

```lua
bool setLowLODElement(element theElement, element|bool lowLODElement)
```

#### Argumenty

- `theElement` (element) - Obiekt.
- `lowLODElement` (element|bool) - Obiekt LOD albo `false`, żeby odpiąć.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local tower = createObject(4550, 1000, -1000, 20)
local towerLOD = createObject(4550, 1000, -1000, 20, 0, 0, 0, true)
setLowLODElement(tower, towerLOD)
```

#### Zobacz też

- [`getLowLODElement`](https://trilogy-hub.com/docs/getLowLODElement/)

### setMapEnabled

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Tylko Trilogy Hub*

Włącza albo wyłącza mapę pod ESC dla całego serwera. Pojedynczemu graczowi ustawisz ją przez `setPlayerMapEnabled`.

#### Składnia

```lua
bool setMapEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = mapa dostępna.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Tryb chowanego: bez mapy.

```lua
addEventHandler("onResourceStart", resourceRoot, function()
    setMapEnabled(false)
end)
addEventHandler("onResourceStop", resourceRoot, function()
    setMapEnabled(true)
end)
```

#### Zobacz też

- [`isMapEnabled`](https://trilogy-hub.com/docs/isMapEnabled/)
- [`setPlayerMapEnabled`](https://trilogy-hub.com/docs/setPlayerMapEnabled/)

### setMoonSize

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia rozmiar księżyca 0-100. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getMoonSize`), ale nie zmienia jeszcze nieba w grze.

#### Składnia

```lua
bool setMoonSize(int size)
```

#### Argumenty

- `size` (int) - Rozmiar 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setMoonSize(10)
```

#### Zobacz też

- [`getMoonSize`](https://trilogy-hub.com/docs/getMoonSize/)
- [`resetMoonSize`](https://trilogy-hub.com/docs/resetMoonSize/)

### setRadarAreaColor

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zmienia kolor obszaru radaru, np. gdy teren przejmuje inny gang.

#### Składnia

```lua
bool setRadarAreaColor(radararea theRadarArea, int r, int g, int b [, int a = 255])
```

#### Argumenty

- `theRadarArea` (radararea) - Obszar.
- `r` (int) - Czerwony.
- `g` (int) - Zielony.
- `b` (int) - Niebieski.
- `a` (int, opcjonalny = 255) - Krycie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setRadarAreaColor(turf, 160, 60, 200, 140)
```

#### Zobacz też

- [`getRadarAreaColor`](https://trilogy-hub.com/docs/getRadarAreaColor/)

### setRadarAreaFlashing

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Włącza albo wyłącza miganie obszaru radaru (np. podczas walki o teren).

#### Składnia

```lua
bool setRadarAreaFlashing(radararea theRadarArea, bool flash)
```

#### Argumenty

- `theRadarArea` (radararea) - Obszar.
- `flash` (bool) - `true` = miga.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setRadarAreaFlashing(turf, true)
```

#### Zobacz też

- [`isRadarAreaFlashing`](https://trilogy-hub.com/docs/isRadarAreaFlashing/)

### setRadarAreaSize

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zmienia rozmiar obszaru radaru.

#### Składnia

```lua
bool setRadarAreaSize(radararea theRadararea, float x, float y)
```

#### Argumenty

- `theRadararea` (radararea) - Obszar.
- `x` (float) - Szerokość.
- `y` (float) - Wysokość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setRadarAreaSize(turf, 200, 150)
```

#### Zobacz też

- [`getRadarAreaSize`](https://trilogy-hub.com/docs/getRadarAreaSize/)

### setRainLevel

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia siłę deszczu 0-10. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`getRainLevel`), ale nie zmienia deszczu w grze; deszcz daje pogoda (`setWeather`).

#### Składnia

```lua
bool setRainLevel(float level)
```

#### Argumenty

- `level` (float) - Siła 0-10.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWeather(16)
setRainLevel(5)
```

#### Zobacz też

- [`getRainLevel`](https://trilogy-hub.com/docs/getRainLevel/)
- [`resetRainLevel`](https://trilogy-hub.com/docs/resetRainLevel/)
- [`setWeather`](https://trilogy-hub.com/docs/setWeather/)

### showPlayerHudComponent

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Identyczna z MTA:SA*

Druga nazwa `setPlayerHudComponentVisible`: pokazuje albo chowa graczowi składnik HUD gry (np. `"radar"`, `"money"`, `"health"`, `"all"`).

#### Składnia

```lua
bool showPlayerHudComponent(player thePlayer, string component, bool show)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root`.
- `component` (string) - Nazwa składnika.
- `show` (bool) - `true` = pokaż.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
showPlayerHudComponent(player, "radar", false)
```

#### Zobacz też

- [`setPlayerHudComponentVisible`](https://trilogy-hub.com/docs/setPlayerHudComponentVisible/)

### warn

*Funkcja · Strona: Serwer · Kategoria: Pozostałe · Tylko Trilogy Hub*

Standardowa funkcja Lua 5.4: wysyła ostrzeżenie złożone z argumentów. Ostrzeżenia Lua są domyślnie wyłączone (`warn("@on")` je włącza) i trafiają na wyjście błędów procesu serwera. Do komunikatów dla twórców skryptów używaj `outputDebugString`.

#### Składnia

```lua
nil warn(string message)
```

#### Argumenty

- `message` (string) - Treść (kolejne argumenty są doklejane).

#### Zwraca

Nic.

#### Przykład

```lua
warn("@on")
warn("Uwaga: ", "brak pliku konfiguracji")
```

#### Zobacz też

- [`outputDebugString`](https://trilogy-hub.com/docs/outputDebugString/)

### getGameType

*Funkcja · Strona: Serwer · Kategoria: Serwer · Zmodyfikowana względem MTA:SA*

Zwraca typ gry ustawiony przez `setGameType`.

#### Składnia

```lua
string getGameType()
```

#### Zwraca

Typ gry albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `getGameType()`

#### Przykład

```lua
outputServerLog("Tryb: " .. tostring(getGameType()))
```

#### Zobacz też

- [`setGameType`](https://trilogy-hub.com/docs/setGameType/)

### getLoadingScreen

*Funkcja · Strona: Serwer · Kategoria: Serwer · Tylko Trilogy Hub*

Zwraca bieżący ekran ładowania ustawiony przez `setLoadingScreen`.

#### Składnia

```lua
string, string, table, resource getLoadingScreen()
```

#### Zwraca

Obraz (albo `false`), tekst, wskazówki, zasób; `false`, gdy jest domyślny.

#### Przykład

```lua
local image, text = getLoadingScreen()
outputServerLog("Ekran ladowania: " .. tostring(text))
```

#### Zobacz też

- [`setLoadingScreen`](https://trilogy-hub.com/docs/setLoadingScreen/)
- [`resetLoadingScreen`](https://trilogy-hub.com/docs/resetLoadingScreen/)

### getMapName

*Funkcja · Strona: Serwer · Kategoria: Serwer · Zmodyfikowana względem MTA:SA*

Zwraca nazwę mapy ustawioną przez `setMapName`.

#### Składnia

```lua
string getMapName()
```

#### Zwraca

Nazwa mapy albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `getMapName()`

#### Przykład

```lua
outputServerLog("Mapa: " .. tostring(getMapName()))
```

#### Zobacz też

- [`setMapName`](https://trilogy-hub.com/docs/setMapName/)

### getRuleValue

*Funkcja · Strona: Serwer · Kategoria: Serwer · Zmodyfikowana względem MTA:SA*

Zwraca wartość reguły serwera.

#### Składnia

```lua
string getRuleValue(string key)
```

#### Argumenty

- `key` (string) - Nazwa reguły.

#### Zwraca

Wartość albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `getRuleValue()`

#### Przykład

```lua
outputServerLog("Discord: " .. tostring(getRuleValue("discord")))
```

#### Zobacz też

- [`setRuleValue`](https://trilogy-hub.com/docs/setRuleValue/)
- [`removeRuleValue`](https://trilogy-hub.com/docs/removeRuleValue/)

### getRuleValues

*Funkcja · Strona: Serwer · Kategoria: Serwer · Tylko Trilogy Hub*

Zwraca wszystkie reguły serwera jako tabelę klucz → wartość.

#### Składnia

```lua
table getRuleValues()
```

#### Zwraca

Tabela reguł.

#### Przykład

```lua
for key, value in pairs(getRuleValues()) do outputServerLog(key .. " = " .. value) end
```

#### Zobacz też

- [`setRuleValue`](https://trilogy-hub.com/docs/setRuleValue/)
- [`getRuleValue`](https://trilogy-hub.com/docs/getRuleValue/)

### getServerConfigSetting

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Funkcja do odczytu ustawienia z pliku konfiguracji serwera.

#### Składnia

```lua
any getServerConfigSetting(string name)
```

#### Argumenty

- `name` (string) - Nazwa ustawienia.

#### Zwraca

W tej wersji zawsze `false`.

#### Przykład

```lua
local value = getServerConfigSetting("max_slots") or getMaxPlayers()
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Serwer nie udostępnia skryptom pliku `server-config.json` (jest w nim m.in. klucz serwera). Dane serwera odczytasz przez `getServerName`, `getServerPort`, `getMaxPlayers`.

#### Zobacz też

- [`setServerConfigSetting`](https://trilogy-hub.com/docs/setServerConfigSetting/)
- [`getServerName`](https://trilogy-hub.com/docs/getServerName/)

### getServerHttpPort

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zwraca port serwera HTTP. Serwer Trilogy Hub nie ma osobnego serwera HTTP (pliki zasobów trafiają do graczy przez połączenie gry), więc zwykle zwraca 0.

#### Składnia

```lua
int getServerHttpPort()
```

#### Zwraca

Port albo 0.

#### Przykład

```lua
outputServerLog("HTTP: " .. getServerHttpPort())
```

#### Zobacz też

- [`getServerPort`](https://trilogy-hub.com/docs/getServerPort/)

### getServerIp

*Funkcja · Strona: Serwer · Kategoria: Serwer · Zmodyfikowana względem MTA:SA*

Zwraca adres, na którym serwer nasłuchuje. Zwykle `"0.0.0.0"` (wszystkie interfejsy); prawdziwy adres widziany z internetu podaje `getServerIpFromMasterServer`.

#### Składnia

```lua
string getServerIp()
```

#### Zwraca

Adres IP.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool includePort = false`
- W MTA:SA: `getServerIp(bool includePort = false)`

#### Przykład

```lua
outputServerLog("Nasluchuje na " .. getServerIp())
```

#### Zobacz też

- [`getServerIpFromMasterServer`](https://trilogy-hub.com/docs/getServerIpFromMasterServer/)
- [`getServerPort`](https://trilogy-hub.com/docs/getServerPort/)

### getServerIpFromMasterServer

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zwraca adres serwera widziany z zewnątrz, jak podała go lista serwerów.

#### Składnia

```lua
string getServerIpFromMasterServer()
```

#### Zwraca

Adres albo `false`, dopóki lista go nie poda.

#### Przykład

```lua
local ip = getServerIpFromMasterServer()
outputServerLog("Adres publiczny: " .. tostring(ip))
```

#### Zobacz też

- [`getServerIp`](https://trilogy-hub.com/docs/getServerIp/)

### getServerPassword

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zwraca hasło serwera.

#### Składnia

```lua
string getServerPassword()
```

#### Zwraca

Hasło albo `false`, gdy serwer jest otwarty.

#### Przykład

```lua
outputServerLog(getServerPassword() and "Serwer z haslem" or "Serwer otwarty")
```

#### Zobacz też

- [`setServerPassword`](https://trilogy-hub.com/docs/setServerPassword/)

### getServerPort

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zwraca port, na którym serwer przyjmuje graczy.

#### Składnia

```lua
int getServerPort()
```

#### Zwraca

Port.

#### Przykład

```lua
outputServerLog("Serwer dziala na porcie " .. getServerPort())
```

#### Zobacz też

- [`getServerName`](https://trilogy-hub.com/docs/getServerName/)
- [`getServerIp`](https://trilogy-hub.com/docs/getServerIp/)

### getServerUptime

*Funkcja · Strona: Serwer · Kategoria: Serwer · Tylko Trilogy Hub*

Zwraca czas od uruchomienia serwera w milisekundach.

#### Składnia

```lua
int getServerUptime()
```

#### Zwraca

Czas w ms.

#### Przykład

```lua
addCommandHandler("uptime", function(player)
    outputChatBox("Serwer dziala: " .. formatDuration(getServerUptime() / 1000), player)
end)
```

#### Zobacz też

- [`getTickCount`](https://trilogy-hub.com/docs/getTickCount/)
- [`formatDuration`](https://trilogy-hub.com/docs/formatDuration/)

### getVersion

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zwraca informacje o wersji serwera jako tabelę.

#### Składnia

```lua
table getVersion()
```

#### Zwraca

`{ number, mta, name, version, type }`, np. `name = "Trilogy Hub Server"`, `type = "Definitive Edition"`.

#### Przykład

```lua
local v = getVersion()
outputServerLog(v.name .. " " .. v.version)
```

#### Zobacz też

- [`getServerName`](https://trilogy-hub.com/docs/getServerName/)

### removeRuleValue

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Usuwa regułę serwera.

#### Składnia

```lua
bool removeRuleValue(string key)
```

#### Argumenty

- `key` (string) - Nazwa reguły.

#### Zwraca

`true`, gdy usunięto; `false`, gdy jej nie było.

#### Przykład

```lua
removeRuleValue("discord")
```

#### Zobacz też

- [`setRuleValue`](https://trilogy-hub.com/docs/setRuleValue/)
- [`getRuleValue`](https://trilogy-hub.com/docs/getRuleValue/)

### resetLoadingScreen

*Funkcja · Strona: Serwer · Kategoria: Serwer · Tylko Trilogy Hub*

Przywraca domyślny ekran ładowania Trilogy Hub.

#### Składnia

```lua
bool resetLoadingScreen()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetLoadingScreen()
```

#### Zobacz też

- [`setLoadingScreen`](https://trilogy-hub.com/docs/setLoadingScreen/)
- [`getLoadingScreen`](https://trilogy-hub.com/docs/getLoadingScreen/)

### setGameType

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zapisuje typ gry serwera (np. `"Roleplay"`, `"Freeroam"`, `"DM"`).

#### Składnia

```lua
bool setGameType(string gameType)
```

#### Argumenty

- `gameType` (string) - Typ gry albo `false`, żeby wyczyścić.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setGameType("Roleplay")
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Lista serwerów w launcherze jeszcze tego nie pokazuje.

#### Zobacz też

- [`getGameType`](https://trilogy-hub.com/docs/getGameType/)
- [`setMapName`](https://trilogy-hub.com/docs/setMapName/)

### setLoadingScreen

*Funkcja · Strona: Serwer · Kategoria: Serwer · Tylko Trilogy Hub*

Ustawia własny ekran ładowania serwera, który gracze widzą podczas wchodzenia na serwer: obraz PNG/JPG z zasobu (do 2 MB), tekst i listę wskazówek wyświetlanych po kolei. Ekran należy do zasobu - po jego zatrzymaniu wraca domyślny ekran Trilogy Hub.

#### Składnia

```lua
bool setLoadingScreen([string image = false, string text = "", table tips = {}])
```

#### Argumenty

- `image` (string, opcjonalny = false) - Ścieżka obrazu w zasobie albo `false` = bez obrazu.
- `text` (string, opcjonalny = "") - Tekst główny (np. nazwa serwera).
- `tips` (table, opcjonalny = {}) - Tablica wskazówek.

#### Zwraca

`true` przy powodzeniu; `false` z ostrzeżeniem (np. za duży obraz).

#### Przykład

```lua
addEventHandler("onResourceStart", resourceRoot, function()
    setLoadingScreen("img/loading.jpg", "Witaj na Los Santos RP", {
        "Wpisz /pomoc, aby zobaczyc komendy",
        "Regulamin znajdziesz na naszym Discordzie",
    })
end)
```

#### Zobacz też

- [`getLoadingScreen`](https://trilogy-hub.com/docs/getLoadingScreen/)
- [`resetLoadingScreen`](https://trilogy-hub.com/docs/resetLoadingScreen/)

### setMapName

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zapisuje nazwę mapy serwera.

#### Składnia

```lua
bool setMapName(string mapName)
```

#### Argumenty

- `mapName` (string) - Nazwa mapy albo `false`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setMapName("San Andreas")
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Lista serwerów w launcherze jeszcze tego nie pokazuje.

#### Zobacz też

- [`getMapName`](https://trilogy-hub.com/docs/getMapName/)
- [`setGameType`](https://trilogy-hub.com/docs/setGameType/)

### setMaxPlayers

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zmienia liczbę miejsc na serwerze w trakcie działania (1-65535). Nowi gracze są odrzucani, gdy serwer jest pełny; obecnych nie wyrzuca. Zmiana trwa do restartu serwera.

#### Składnia

```lua
bool setMaxPlayers(int slots)
```

#### Argumenty

- `slots` (int) - Liczba miejsc.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("sloty", function(player, _, n)
    if hasObjectPermissionTo(player, "function.setMaxPlayers") then setMaxPlayers(tonumber(n) or 64) end
end)
```

#### Zobacz też

- [`getMaxPlayers`](https://trilogy-hub.com/docs/getMaxPlayers/)

### setRuleValue

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Zapisuje regułę serwera (para klucz-wartość, np. `"discord"` → `"discord.gg/xyz"`).

#### Składnia

```lua
bool setRuleValue(string key, string value)
```

#### Argumenty

- `key` (string) - Nazwa reguły.
- `value` (string) - Wartość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setRuleValue("discord", "discord.gg/mojserwer")
setRuleValue("jezyk", "PL")
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Lista serwerów w launcherze jeszcze nie pokazuje reguł.

#### Zobacz też

- [`getRuleValue`](https://trilogy-hub.com/docs/getRuleValue/)
- [`removeRuleValue`](https://trilogy-hub.com/docs/removeRuleValue/)
- [`getRuleValues`](https://trilogy-hub.com/docs/getRuleValues/)

### setServerConfigSetting

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Funkcja do zmiany ustawienia w pliku konfiguracji serwera.

#### Składnia

```lua
bool setServerConfigSetting(string name, string value [, bool save = false])
```

#### Argumenty

- `name` (string) - Nazwa ustawienia.
- `value` (string) - Wartość.
- `save` (bool, opcjonalny = false) - Zapisz na dysk.

#### Zwraca

W tej wersji zawsze `false` (z ostrzeżeniem).

#### Przykład

```lua
if not setServerConfigSetting("max_slots", "100") then setMaxPlayers(100) end
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Zmiana konfiguracji ze skryptu jest zablokowana; do zmian w trakcie działania służą `setMaxPlayers` i `setServerPassword`.

#### Zobacz też

- [`getServerConfigSetting`](https://trilogy-hub.com/docs/getServerConfigSetting/)
- [`setMaxPlayers`](https://trilogy-hub.com/docs/setMaxPlayers/)
- [`setServerPassword`](https://trilogy-hub.com/docs/setServerPassword/)

### setServerPassword

*Funkcja · Strona: Serwer · Kategoria: Serwer · Identyczna z MTA:SA*

Ustawia albo zdejmuje hasło serwera w trakcie działania. Serwer od razu wymaga hasła od nowych graczy; launcher dostaje nowe hasło przy najbliższym zgłoszeniu do listy serwerów (do 30 sekund) - do tego czasu wpisanie nowego hasła może się nie udać. Gracze już obecni nie są wyrzucani. `nil`/`false` zdejmuje hasło.

#### Składnia

```lua
bool setServerPassword([string password = nil])
```

#### Argumenty

- `password` (string, opcjonalny = nil) - Nowe hasło albo `nil`/`false`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("zamknij", function(player, _, pass)
    if hasObjectPermissionTo(player, "function.setServerPassword") then
        setServerPassword(pass)
        outputChatBox(pass and "Serwer zamkniety haslem" or "Serwer otwarty", player)
    end
end)
```

#### Uwagi

> **Ostrzeżenie:** Zmiana trwa do restartu serwera; stałe hasło ustaw w `server-config.json`.

#### Zobacz też

- [`getServerPassword`](https://trilogy-hub.com/docs/getServerPassword/)

### shutdown

*Funkcja · Strona: Serwer · Kategoria: Serwer · Zmodyfikowana względem MTA:SA*

Zatrzymuje serwer (zasoby dostają `onResourceStop`, gracze są rozłączani). Powód trafia do logu serwera. Jeśli serwer działa pod hostingiem z automatycznym restartem, uruchomi się ponownie.

#### Składnia

```lua
bool shutdown([string reason = ""])
```

#### Argumenty

- `reason` (string, opcjonalny = "") - Powód zatrzymania.

#### Zwraca

`true`, gdy zaczęto zatrzymywanie.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `number exitCode = 0`
- W MTA:SA: `shutdown(string reason = "No reason specified", number exitCode = 0)`

#### Przykład

```lua
addCommandHandler("wylacz", function(player)
    if hasObjectPermissionTo(player, "function.shutdown") then
        outputChatBox("Restart serwera za 10 s", root, 255, 0, 0)
        setTimer(shutdown, 10000, 1, "restart przez " .. getPlayerName(player))
    end
end)
```

#### Zobacz też

- [`restartResource`](https://trilogy-hub.com/docs/restartResource/)

### engineGetRequestedModels

*Funkcja · Strona: Serwer · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca modele utworzone przez `engineRequestModel` na serwerze: tabelę numer -> `{ parent, type, resource }`.

#### Składnia

```lua
table engineGetRequestedModels()
```

#### Zwraca

Tabela modeli.

#### Przykład

```lua
for id, m in pairs(engineGetRequestedModels()) do
    outputServerLog(id .. ": " .. m.type .. " (rodzic " .. m.parent .. ")")
end
```

#### Zobacz też

- [`engineRequestModel`](https://trilogy-hub.com/docs/engineRequestModel/)

### addColPolygonPoint

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Dodaje wierzchołek do strefy wielokątnej. Bez `index` na końcu, z `index` - w tym miejscu listy (od 1). Obszar wykrywania zmienia się od razu.

#### Składnia

```lua
bool addColPolygonPoint(colshape shape, float x, float y [, int index = koniec])
```

#### Argumenty

- `shape` (colshape) - Strefa wielokątna.
- `x` (float) - X wierzchołka.
- `y` (float) - Y wierzchołka.
- `index` (int, opcjonalny = koniec) - Miejsce na liście od 1.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local zone = createColPolygon(0, 0, -5, -5, 5, -5, 5, 5)
addColPolygonPoint(zone, -5, 5)
```

#### Zobacz też

- [`removeColPolygonPoint`](https://trilogy-hub.com/docs/removeColPolygonPoint/)
- [`setColPolygonPointPosition`](https://trilogy-hub.com/docs/setColPolygonPointPosition/)

### getColPolygonHeight

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zwraca zakres wysokości strefy wielokątnej ustawiony przez `setColPolygonHeight`.

#### Składnia

```lua
float, float getColPolygonHeight(colshape shape)
```

#### Argumenty

- `shape` (colshape) - Strefa wielokątna.

#### Zwraca

Dół i góra albo `false`, gdy bez ograniczenia.

#### Przykład

```lua
local zone = createColPolygon(0, 0, -5, -5, 5, -5, 5, 5)
setColPolygonHeight(zone, 0, 10)
local lo, hi = getColPolygonHeight(zone)
```

#### Zobacz też

- [`setColPolygonHeight`](https://trilogy-hub.com/docs/setColPolygonHeight/)

### getColPolygonPointPosition

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zwraca położenie jednego wierzchołka strefy wielokątnej (numeracja od 1).

#### Składnia

```lua
float, float getColPolygonPointPosition(colshape shape, int index)
```

#### Argumenty

- `shape` (colshape) - Strefa wielokątna.
- `index` (int) - Numer wierzchołka od 1.

#### Zwraca

x, y albo `false`.

#### Przykład

```lua
local zone = createColPolygon(0, 0, -5, -5, 5, -5, 5, 5)
local x, y = getColPolygonPointPosition(zone, 2)
```

#### Zobacz też

- [`setColPolygonPointPosition`](https://trilogy-hub.com/docs/setColPolygonPointPosition/)

### getColPolygonPoints

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zwraca wszystkie wierzchołki strefy wielokątnej jako tablicę par `{x, y}`.

#### Składnia

```lua
table getColPolygonPoints(colshape shape)
```

#### Argumenty

- `shape` (colshape) - Strefa wielokątna.

#### Zwraca

Tablica `{ {x, y}, ... }` albo `false` dla innej strefy.

#### Przykład

```lua
local zone = createColPolygon(0, 0, -5, -5, 5, -5, 5, 5)
for i, p in ipairs(getColPolygonPoints(zone)) do outputDebugString(i .. ": " .. p[1] .. ", " .. p[2]) end
```

#### Zobacz też

- [`getColPolygonPointPosition`](https://trilogy-hub.com/docs/getColPolygonPointPosition/)
- [`createColPolygon`](https://trilogy-hub.com/docs/createColPolygon/)

### getColShapeRadius

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zwraca promień strefy w kształcie kuli, koła albo walca.

#### Składnia

```lua
float getColShapeRadius(colshape shape)
```

#### Argumenty

- `shape` (colshape) - Strefa.

#### Zwraca

Promień albo `false`.

#### Przykład

```lua
local zone = createColCircle(0, 0, 25)
outputDebugString(getColShapeRadius(zone))
```

#### Zobacz też

- [`setColShapeRadius`](https://trilogy-hub.com/docs/setColShapeRadius/)

### getColShapeSize

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zwraca wymiary strefy zależnie od kształtu: kula/koło - promień; walec - promień i wysokość; prostokąt - szerokość i długość; prostopadłościan - szerokość, głębokość, wysokość; wielokąt - wysokość.

#### Składnia

```lua
float... getColShapeSize(colshape shape)
```

#### Argumenty

- `shape` (colshape) - Strefa.

#### Zwraca

Wymiary albo `false`.

#### Przykład

```lua
local tube = createColTube(0, 0, 0, 3, 8)
local radius, height = getColShapeSize(tube)
```

#### Zobacz też

- [`setColShapeSize`](https://trilogy-hub.com/docs/setColShapeSize/)
- [`getColShapeRadius`](https://trilogy-hub.com/docs/getColShapeRadius/)

### removeColPolygonPoint

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Usuwa wierzchołek strefy wielokątnej (numeracja od 1). Strefa musi zachować co najmniej trzy wierzchołki.

#### Składnia

```lua
bool removeColPolygonPoint(colshape shape, int index)
```

#### Argumenty

- `shape` (colshape) - Strefa wielokątna.
- `index` (int) - Numer wierzchołka od 1.

#### Zwraca

`true`, gdy usunięto; `false` przy 3 wierzchołkach albo złym numerze.

#### Przykład

```lua
local zone = createColPolygon(0, 0, -5, -5, 5, -5, 5, 5, -5, 5)
removeColPolygonPoint(zone, 4)
```

#### Zobacz też

- [`addColPolygonPoint`](https://trilogy-hub.com/docs/addColPolygonPoint/)

### setColPolygonPointPosition

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Przesuwa wierzchołek strefy wielokątnej; obszar wykrywania zmienia się od razu.

#### Składnia

```lua
bool setColPolygonPointPosition(colshape shape, int index, float x, float y)
```

#### Argumenty

- `shape` (colshape) - Strefa wielokątna.
- `index` (int) - Numer wierzchołka od 1.
- `x` (float) - Nowe X.
- `y` (float) - Nowe Y.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local zone = createColPolygon(0, 0, -5, -5, 5, -5, 5, 5)
setColPolygonPointPosition(zone, 3, 10, 10)
```

#### Zobacz też

- [`getColPolygonPointPosition`](https://trilogy-hub.com/docs/getColPolygonPointPosition/)
- [`addColPolygonPoint`](https://trilogy-hub.com/docs/addColPolygonPoint/)

### setColShapeRadius

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zmienia promień strefy w kształcie kuli, koła albo walca (ujemny = 0).

#### Składnia

```lua
bool setColShapeRadius(colshape shape, float radius)
```

#### Argumenty

- `shape` (colshape) - Strefa.
- `radius` (float) - Nowy promień w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local zone = createColSphere(0, 0, 0, 5)
local r = 5
setTimer(function() r = r + 5; setColShapeRadius(zone, r) end, 60000, 0)
```

#### Zobacz też

- [`getColShapeRadius`](https://trilogy-hub.com/docs/getColShapeRadius/)

### setColShapeSize

*Funkcja · Strona: Serwer · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zmienia wymiary strefy (bez wielokąta); znaczenie liczb jak w `getColShapeSize`.

#### Składnia

```lua
bool setColShapeSize(colshape shape, float a [, float b = 0, float c = 0])
```

#### Argumenty

- `shape` (colshape) - Strefa.
- `a` (float) - Promień albo szerokość.
- `b` (float, opcjonalny = 0) - Wysokość walca, długość prostokąta albo głębokość prostopadłościanu.
- `c` (float, opcjonalny = 0) - Wysokość prostopadłościanu.

#### Zwraca

`true` przy powodzeniu, `false` dla wielokąta.

#### Przykład

```lua
local zone = createColSphere(0, 0, 0, 5)
setColShapeSize(zone, 15)
```

#### Zobacz też

- [`getColShapeSize`](https://trilogy-hub.com/docs/getColShapeSize/)

### svgCreate

*Funkcja · Strona: Serwer · Kategoria: SVG · Zmodyfikowana względem MTA:SA*

Tworzy na serwerze dokument SVG (grafikę wektorową) o podanym rozmiarze w pikselach i treści XML. Dokument przechowuje treść, którą można zmieniać i odczytywać (np. generować wykres lub odznakę i wysyłać jej tekst do klientów zdarzeniem). Opcjonalna funkcja dostaje gotowy dokument.

#### Składnia

```lua
element svgCreate(int width, int height [, string pathOrRawData = "", function callback = nil])
```

#### Argumenty

- `width` (int) - Szerokość w pikselach.
- `height` (int) - Wysokość w pikselach.
- `pathOrRawData` (string, opcjonalny = "") - Treść SVG (XML).
- `callback` (function, opcjonalny = nil) - Funkcja wywołana z dokumentem.

#### Zwraca

Element `svg` albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `svgCreate(int width, int height, string svg)`

#### Przykład

```lua
local badge = svgCreate(64, 64, '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><circle cx="32" cy="32" r="30" fill="gold"/></svg>')
addEventHandler("onPlayerJoin", root, function()
    triggerClientEvent(source, "onBadge", resourceRoot, svgGetDocumentXML(badge))
end)
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Dokument nie jest rysowany; do rysowania na ekranie służą funkcje `dxDraw`.

#### Zobacz też

- [`svgGetDocumentXML`](https://trilogy-hub.com/docs/svgGetDocumentXML/)
- [`svgSetDocumentXML`](https://trilogy-hub.com/docs/svgSetDocumentXML/)
- [`svgGetSize`](https://trilogy-hub.com/docs/svgGetSize/)

### svgGetDocumentXML

*Funkcja · Strona: Serwer · Kategoria: SVG · Identyczna z MTA:SA*

Zwraca treść XML dokumentu SVG.

#### Składnia

```lua
string svgGetDocumentXML(element svgElement)
```

#### Argumenty

- `svgElement` (element) - Dokument SVG.

#### Zwraca

Treść albo `false`.

#### Przykład

```lua
local svg = svgCreate(32, 32, "<svg/>")
outputDebugString(svgGetDocumentXML(svg))
```

#### Zobacz też

- [`svgSetDocumentXML`](https://trilogy-hub.com/docs/svgSetDocumentXML/)

### svgGetSize

*Funkcja · Strona: Serwer · Kategoria: SVG · Identyczna z MTA:SA*

Zwraca rozmiar dokumentu SVG w pikselach.

#### Składnia

```lua
int, int svgGetSize(element svgElement)
```

#### Argumenty

- `svgElement` (element) - Dokument SVG.

#### Zwraca

Szerokość i wysokość albo `false`.

#### Przykład

```lua
local svg = svgCreate(128, 64, "<svg/>")
local w, h = svgGetSize(svg)
```

#### Zobacz też

- [`svgSetSize`](https://trilogy-hub.com/docs/svgSetSize/)

### svgSetDocumentXML

*Funkcja · Strona: Serwer · Kategoria: SVG · Zmodyfikowana względem MTA:SA*

Podmienia treść dokumentu SVG. Opcjonalna funkcja dostaje dokument po zmianie.

#### Składnia

```lua
bool svgSetDocumentXML(element svgElement, string xml [, function callback = nil])
```

#### Argumenty

- `svgElement` (element) - Dokument SVG.
- `xml` (string) - Nowa treść XML.
- `callback` (function, opcjonalny = nil) - Funkcja wywołana z dokumentem.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `svgSetDocumentXML(svg svgElement, xmlnode xmlDocument, function svg)`

#### Przykład

```lua
local svg = svgCreate(100, 20, "<svg/>")
svgSetDocumentXML(svg, '<svg xmlns="http://www.w3.org/2000/svg"><rect width="50" height="20" fill="green"/></svg>')
```

#### Zobacz też

- [`svgGetDocumentXML`](https://trilogy-hub.com/docs/svgGetDocumentXML/)
- [`svgCreate`](https://trilogy-hub.com/docs/svgCreate/)

### svgSetSize

*Funkcja · Strona: Serwer · Kategoria: SVG · Zmodyfikowana względem MTA:SA*

Zmienia zapisany rozmiar dokumentu SVG w pikselach.

#### Składnia

```lua
bool svgSetSize(element svgElement, int width, int height)
```

#### Argumenty

- `svgElement` (element) - Dokument SVG.
- `width` (int) - Szerokość.
- `height` (int) - Wysokość.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `function svg`
- W MTA:SA: `svgSetSize(svg svgElement, int width, int height, function svg)`

#### Przykład

```lua
local svg = svgCreate(128, 64, "<svg/>")
svgSetSize(svg, 256, 128)
```

#### Zobacz też

- [`svgGetSize`](https://trilogy-hub.com/docs/svgGetSize/)

### svgSetUpdateCallback

*Funkcja · Strona: Serwer · Kategoria: SVG · Identyczna z MTA:SA*

Zapisuje funkcję związaną ze zmianami dokumentu SVG (zgodność ze starszymi skryptami); `nil` ją usuwa.

#### Składnia

```lua
bool svgSetUpdateCallback(element svgElement, function callback)
```

#### Argumenty

- `svgElement` (element) - Dokument SVG.
- `callback` (function) - Funkcja albo `nil`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local svg = svgCreate(32, 32, "<svg/>")
svgSetUpdateCallback(svg, function(doc) outputDebugString("Zmieniono SVG") end)
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Funkcja nie jest jeszcze wywoływana; po zmianie użyj argumentu `callback` z `svgSetDocumentXML`.

#### Zobacz też

- [`svgSetDocumentXML`](https://trilogy-hub.com/docs/svgSetDocumentXML/)

### createWater

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Tworzy element wody jako obszar o trzech albo czterech wierzchołkach. Ostatni argument `true` oznacza płytką wodę.

#### Składnia

```lua
element createWater(float ...)
```

#### Argumenty

- `...` (float) - 9 liczb (x, y, z trzech wierzchołków) albo 12 liczb (czterech), na końcu opcjonalnie `shallow` (bool).

#### Zwraca

Element wody albo `false`.

#### Przykład

```lua
local pool = createWater(2000, -1700, 12, 2010, -1700, 12, 2000, -1690, 12, 2010, -1690, 12)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie rysuje jeszcze wody utworzonej skryptem; element przechowuje wierzchołki dla logiki skryptu.

#### Zobacz też

- [`setWaterVertexPosition`](https://trilogy-hub.com/docs/setWaterVertexPosition/)
- [`getWaterVertexPosition`](https://trilogy-hub.com/docs/getWaterVertexPosition/)
- [`setWaterLevel`](https://trilogy-hub.com/docs/setWaterLevel/)

### getGarageBoundingBox

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca prostokąt garażu wyliczony z `setGarageBounds`: granice zachodnia, wschodnia, południowa i północna.

#### Składnia

```lua
float, float, float, float getGarageBoundingBox(int garage)
```

#### Argumenty

- `garage` (int) - Numer garażu.

#### Zwraca

Zachód, wschód, południe, północ albo `false`.

#### Przykład

```lua
local west, east, south, north = getGarageBoundingBox(8)
```

#### Zobacz też

- [`setGarageBounds`](https://trilogy-hub.com/docs/setGarageBounds/)

### getGaragePosition

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca położenie garażu podane przez `setGarageBounds`.

#### Składnia

```lua
float, float, float getGaragePosition(int garage)
```

#### Argumenty

- `garage` (int) - Numer garażu.

#### Zwraca

x, y, z albo `false`, dopóki nie podano.

#### Przykład

```lua
local x, y, z = getGaragePosition(8)
```

#### Zobacz też

- [`setGarageBounds`](https://trilogy-hub.com/docs/setGarageBounds/)

### getGarageSize

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca rozmiar garażu podany przez `setGarageBounds`.

#### Składnia

```lua
float, float, float getGarageSize(int garage)
```

#### Argumenty

- `garage` (int) - Numer garażu.

#### Zwraca

Szerokość, długość, wysokość albo `false`.

#### Przykład

```lua
local w, l, h = getGarageSize(8)
```

#### Zobacz też

- [`setGarageBounds`](https://trilogy-hub.com/docs/setGarageBounds/)

### getJetpackWeaponEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zwraca wartość z `setJetpackWeaponEnabled` (domyślnie `false`).

#### Składnia

```lua
bool getJetpackWeaponEnabled()
```

#### Zwraca

Zapisana wartość.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string weapon`
- W MTA:SA: `getJetpackWeaponEnabled(string weapon)`

#### Przykład

```lua
outputDebugString(tostring(getJetpackWeaponEnabled()))
```

#### Zobacz też

- [`setJetpackWeaponEnabled`](https://trilogy-hub.com/docs/setJetpackWeaponEnabled/)

### getRoofPosition

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wysokość najniższej przeszkody nad punktem (czy nad głową jest dach), według modelu serwera: tylko obiekty skryptów, bez budynków mapy.

#### Składnia

```lua
float getRoofPosition(float x, float y, float z)
```

#### Argumenty

- `x` (float) - Współrzędna X (albo wektor).
- `y` (float) - Współrzędna Y.
- `z` (float) - Wysokość, od której szukamy w górę.

#### Zwraca

Wysokość przeszkody albo `false` (otwarte niebo).

#### Przykład

```lua
local x, y, z = 2495, -1665, 13.3
if getRoofPosition(x, y, z) then outputDebugString("Pod dachem") end
```

#### Zobacz też

- [`getGroundPosition`](https://trilogy-hub.com/docs/getGroundPosition/)

### getWaterVertexPosition

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca położenie wierzchołka elementu wody.

#### Składnia

```lua
float, float, float getWaterVertexPosition(element water, int vertex)
```

#### Argumenty

- `water` (element) - Element wody.
- `vertex` (int) - Numer wierzchołka od 1.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local water = createWater(0, 0, 5, 10, 0, 5, 0, 10, 5)
local x, y, z = getWaterVertexPosition(water, 1)
```

#### Zobacz też

- [`setWaterVertexPosition`](https://trilogy-hub.com/docs/setWaterVertexPosition/)

### getWorldProperty

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca liczby zapisane pod nazwą przez `setWorldProperty`.

#### Składnia

```lua
float, float, float getWorldProperty(string property)
```

#### Argumenty

- `property` (string) - Nazwa właściwości.

#### Zwraca

Trzy liczby albo `false`, gdy nie ustawiono.

#### Przykład

```lua
local r, g, b = getWorldProperty("AmbientColor")
```

#### Zobacz też

- [`setWorldProperty`](https://trilogy-hub.com/docs/setWorldProperty/)
- [`resetWorldProperty`](https://trilogy-hub.com/docs/resetWorldProperty/)

### isAmbientSoundEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca, czy rodzaj dźwięków otoczenia jest włączony (domyślnie tak).

#### Składnia

```lua
bool isAmbientSoundEnabled(string theType)
```

#### Argumenty

- `theType` (string) - `"gunfire"` albo `"general"`.

#### Zwraca

`true`, gdy włączony.

#### Przykład

```lua
outputDebugString(tostring(isAmbientSoundEnabled("gunfire")))
```

#### Zobacz też

- [`setAmbientSoundEnabled`](https://trilogy-hub.com/docs/setAmbientSoundEnabled/)

### isGameWorldRemoved

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca, czy wywołano `removeGameWorld` (i nie cofnięto).

#### Składnia

```lua
bool isGameWorldRemoved()
```

#### Zwraca

`true`, gdy mapa jest oznaczona jako ukryta.

#### Przykład

```lua
outputDebugString(tostring(isGameWorldRemoved()))
```

#### Zobacz też

- [`removeGameWorld`](https://trilogy-hub.com/docs/removeGameWorld/)

### isGlitchEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca, czy błąd gry został włączony przez `setGlitchEnabled` (domyślnie wszystkie wyłączone).

#### Składnia

```lua
bool isGlitchEnabled(string glitch)
```

#### Argumenty

- `glitch` (string) - Nazwa błędu.

#### Zwraca

`true`, gdy włączony.

#### Przykład

```lua
outputDebugString(tostring(isGlitchEnabled("fastfire")))
```

#### Zobacz też

- [`setGlitchEnabled`](https://trilogy-hub.com/docs/setGlitchEnabled/)

### isTimeFrozen

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Sprawdza, czy zegar gry jest zatrzymany przez `setTimeFrozen`.

#### Składnia

```lua
bool isTimeFrozen()
```

#### Zwraca

`true`, gdy zegar stoi.

#### Przykład

```lua
outputDebugString(isTimeFrozen() and "Zegar stoi" or "Zegar idzie")
```

#### Zobacz też

- [`setTimeFrozen`](https://trilogy-hub.com/docs/setTimeFrozen/)
- [`resetTimeFrozen`](https://trilogy-hub.com/docs/resetTimeFrozen/)

### isWorldSoundEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca, czy dźwięk świata nie został wyciszony przez `setWorldSoundEnabled` (sprawdza też wyciszenie całej grupy).

#### Składnia

```lua
bool isWorldSoundEnabled(int group [, int index = -1])
```

#### Argumenty

- `group` (int) - Numer grupy.
- `index` (int, opcjonalny = -1) - Numer dźwięku albo -1.

#### Zwraca

`true`, gdy dźwięk jest włączony.

#### Przykład

```lua
outputDebugString(tostring(isWorldSoundEnabled(5, -1)))
```

#### Zobacz też

- [`setWorldSoundEnabled`](https://trilogy-hub.com/docs/setWorldSoundEnabled/)

### processLineAgainstMesh

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Sprawdza, czy odcinek przecina jeden konkretny element, traktując go jako kulę o jego promieniu (uproszczenie po stronie serwera). Zwraca punkt na odcinku najbliższy środka elementu.

#### Składnia

```lua
bool, float, float, float processLineAgainstMesh(element element, float sx, float sy, float sz, float ex, float ey, float ez)
```

#### Argumenty

- `element` (element) - Element do sprawdzenia.
- `sx` (float) - X początku.
- `sy` (float) - Y początku.
- `sz` (float) - Z początku.
- `ex` (float) - X końca.
- `ey` (float) - Y końca.
- `ez` (float) - Z końca.

#### Zwraca

`true` i punkt x, y, z albo `false`.

#### Przykład

```lua
addCommandHandler("trafiam", function(player, _, id)
    local target = getElementByID(id or "")
    if not target then return end
    local x, y, z = getElementPosition(player)
    local hit = processLineAgainstMesh(target, x, y, z + 0.6, x, y + 50, z + 0.6)
    outputChatBox(hit and "Trafiony" or "Pudlo", player)
end)
```

#### Zobacz też

- [`processLineOfSight`](https://trilogy-hub.com/docs/processLineOfSight/)

### removeGameWorld

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje ukrycie całej mapy San Andreas (dla serwerów z własną mapą).

#### Składnia

```lua
bool removeGameWorld()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
removeGameWorld()
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Mapa w grze zostaje widoczna; ustawienie jest dostępne dla skryptów.

#### Zobacz też

- [`restoreGameWorld`](https://trilogy-hub.com/docs/restoreGameWorld/)
- [`isGameWorldRemoved`](https://trilogy-hub.com/docs/isGameWorldRemoved/)

### resetAmbientSounds

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Przywraca wszystkie dźwięki otoczenia (kasuje ustawienia z `setAmbientSoundEnabled`).

#### Składnia

```lua
bool resetAmbientSounds()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetAmbientSounds()
```

#### Zobacz też

- [`setAmbientSoundEnabled`](https://trilogy-hub.com/docs/setAmbientSoundEnabled/)

### resetBirdsEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Przywraca domyślną wartość `true` ustawienia ptaków.

#### Składnia

```lua
bool resetBirdsEnabled()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetBirdsEnabled()
```

#### Zobacz też

- [`setBirdsEnabled`](https://trilogy-hub.com/docs/setBirdsEnabled/)
- [`getBirdsEnabled`](https://trilogy-hub.com/docs/getBirdsEnabled/)

### resetBlurLevel

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Przywraca domyślne rozmycie (36).

#### Składnia

```lua
bool resetBlurLevel()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetBlurLevel()
```

#### Zobacz też

- [`setBlurLevel`](https://trilogy-hub.com/docs/setBlurLevel/)
- [`getBlurLevel`](https://trilogy-hub.com/docs/getBlurLevel/)

### resetCoronaReflectionsEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Przywraca domyślną wartość (`false`) odbić świateł.

#### Składnia

```lua
bool resetCoronaReflectionsEnabled()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetCoronaReflectionsEnabled()
```

#### Zobacz też

- [`setCoronaReflectionsEnabled`](https://trilogy-hub.com/docs/setCoronaReflectionsEnabled/)
- [`getCoronaReflectionsEnabled`](https://trilogy-hub.com/docs/getCoronaReflectionsEnabled/)

### resetGrainLevel

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Przywraca domyślne ziarno (0).

#### Składnia

```lua
bool resetGrainLevel()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetGrainLevel()
```

#### Zobacz też

- [`setGrainLevel`](https://trilogy-hub.com/docs/setGrainLevel/)
- [`getGrainLevel`](https://trilogy-hub.com/docs/getGrainLevel/)

### resetGrainMultiplier

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Przywraca domyślny mnożnik ziarna (1).

#### Składnia

```lua
bool resetGrainMultiplier()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetGrainMultiplier()
```

#### Zobacz też

- [`setGrainMultiplier`](https://trilogy-hub.com/docs/setGrainMultiplier/)
- [`getGrainMultiplier`](https://trilogy-hub.com/docs/getGrainMultiplier/)

### resetHeatHaze

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Kasuje ustawienia z `setHeatHaze`.

#### Składnia

```lua
bool resetHeatHaze()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetHeatHaze()
```

#### Zobacz też

- [`setHeatHaze`](https://trilogy-hub.com/docs/setHeatHaze/)
- [`getHeatHaze`](https://trilogy-hub.com/docs/getHeatHaze/)

### resetInteriorFurnitureEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Przywraca domyślną wartość (`true`) mebli we wnętrzach.

#### Składnia

```lua
bool resetInteriorFurnitureEnabled()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetInteriorFurnitureEnabled()
```

#### Zobacz też

- [`setInteriorFurnitureEnabled`](https://trilogy-hub.com/docs/setInteriorFurnitureEnabled/)
- [`getInteriorFurnitureEnabled`](https://trilogy-hub.com/docs/getInteriorFurnitureEnabled/)

### resetNearClipDistance

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Przywraca domyślną bliską płaszczyznę kamery (0,3).

#### Składnia

```lua
bool resetNearClipDistance()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetNearClipDistance()
```

#### Zobacz też

- [`setNearClipDistance`](https://trilogy-hub.com/docs/setNearClipDistance/)
- [`getNearClipDistance`](https://trilogy-hub.com/docs/getNearClipDistance/)

### resetPedsLODDistance

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Przywraca domyślną odległość rysowania postaci (60).

#### Składnia

```lua
bool resetPedsLODDistance()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetPedsLODDistance()
```

#### Zobacz też

- [`setPedsLODDistance`](https://trilogy-hub.com/docs/setPedsLODDistance/)
- [`getPedsLODDistance`](https://trilogy-hub.com/docs/getPedsLODDistance/)

### resetSunColor

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Kasuje kolor słońca z `setSunColor`.

#### Składnia

```lua
bool resetSunColor()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetSunColor()
```

#### Zobacz też

- [`setSunColor`](https://trilogy-hub.com/docs/setSunColor/)
- [`getSunColor`](https://trilogy-hub.com/docs/getSunColor/)

### resetSunSize

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Przywraca domyślny rozmiar słońca (1).

#### Składnia

```lua
bool resetSunSize()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetSunSize()
```

#### Zobacz też

- [`setSunSize`](https://trilogy-hub.com/docs/setSunSize/)
- [`getSunSize`](https://trilogy-hub.com/docs/getSunSize/)

### resetTimeFrozen

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Puszcza zatrzymany zegar gry; to samo co `setTimeFrozen(false)`.

#### Składnia

```lua
bool resetTimeFrozen()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetTimeFrozen()
```

#### Zobacz też

- [`setTimeFrozen`](https://trilogy-hub.com/docs/setTimeFrozen/)
- [`isTimeFrozen`](https://trilogy-hub.com/docs/isTimeFrozen/)

### resetVehiclesLODDistance

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Przywraca domyślną odległość rysowania pojazdów (500).

#### Składnia

```lua
bool resetVehiclesLODDistance()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetVehiclesLODDistance()
```

#### Zobacz też

- [`setVehiclesLODDistance`](https://trilogy-hub.com/docs/setVehiclesLODDistance/)
- [`getVehiclesLODDistance`](https://trilogy-hub.com/docs/getVehiclesLODDistance/)

### resetVolumetricShadows

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Druga nazwa `resetVolumetricShadowsEnabled` .

#### Składnia

```lua
bool resetVolumetricShadows()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetVolumetricShadows()
```

#### Zobacz też

- [`resetVolumetricShadowsEnabled`](https://trilogy-hub.com/docs/resetVolumetricShadowsEnabled/)

### resetVolumetricShadowsEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Przywraca domyślną wartość (`false`) cieni objętościowych.

#### Składnia

```lua
bool resetVolumetricShadowsEnabled()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetVolumetricShadowsEnabled()
```

#### Zobacz też

- [`setVolumetricShadowsEnabled`](https://trilogy-hub.com/docs/setVolumetricShadowsEnabled/)
- [`resetVolumetricShadows`](https://trilogy-hub.com/docs/resetVolumetricShadows/)
- [`isVolumetricShadowsEnabled`](https://trilogy-hub.com/docs/isVolumetricShadowsEnabled/)

### resetWaterColor

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Kasuje kolor wody z `setWaterColor`.

#### Składnia

```lua
bool resetWaterColor()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetWaterColor()
```

#### Zobacz też

- [`setWaterColor`](https://trilogy-hub.com/docs/setWaterColor/)
- [`getWaterColor`](https://trilogy-hub.com/docs/getWaterColor/)

### resetWaterDrawnLast

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Przywraca domyślną wartość (`false`) ustawienia `setWaterDrawnLast`.

#### Składnia

```lua
bool resetWaterDrawnLast()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetWaterDrawnLast()
```

#### Zobacz też

- [`setWaterDrawnLast`](https://trilogy-hub.com/docs/setWaterDrawnLast/)
- [`isWaterDrawnLast`](https://trilogy-hub.com/docs/isWaterDrawnLast/)

### resetWaterLevel

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Kasuje poziom wody ustawiony przez `setWaterLevel`.

#### Składnia

```lua
bool resetWaterLevel()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetWaterLevel()
```

#### Zobacz też

- [`setWaterLevel`](https://trilogy-hub.com/docs/setWaterLevel/)
- [`getWaterLevel`](https://trilogy-hub.com/docs/getWaterLevel/)

### resetWindVelocity

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Kasuje wiatr ustawiony przez `setWindVelocity`.

#### Składnia

```lua
bool resetWindVelocity()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetWindVelocity()
```

#### Zobacz też

- [`setWindVelocity`](https://trilogy-hub.com/docs/setWindVelocity/)
- [`getWindVelocity`](https://trilogy-hub.com/docs/getWindVelocity/)

### resetWorldProperties

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Kasuje naraz większość ustawień świata zapisanych przez skrypty: nazwane właściwości, filtr koloru, mgłę, rozmiar słońca i księżyca, deszcz, ziarno, rozmycie, zasięgi rysowania, fale, ptaki, odbicia, cienie, meble, wyciszone dźwięki, prędkość gry i długość minuty. Dodatkowo, o ile nie podasz `false`, kasuje właściwości specjalne, garaże, błędy gry i ustawienie broni na plecaku.

#### Składnia

```lua
bool resetWorldProperties([bool resetSpecialProperties = true, bool resetGarages = true, bool resetGlitches = true, bool resetJetpackWeapons = true])
```

#### Argumenty

- `resetSpecialProperties` (bool, opcjonalny = true) - Kasuj właściwości specjalne.
- `resetGarages` (bool, opcjonalny = true) - Kasuj stan garaży.
- `resetGlitches` (bool, opcjonalny = true) - Kasuj błędy gry.
- `resetJetpackWeapons` (bool, opcjonalny = true) - Kasuj ustawienie broni na plecaku.

#### Zwraca

Zawsze `true`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool resetSounds = true`, `bool resetGlitches = true`, `bool resetJetpackWeapons = true`
- W MTA:SA: `resetWorldProperties(bool resetSpecialProperties = true, bool resetWorldProperties = true, bool resetWeatherProperties = true, bool resetLODs = true, bool resetSounds = true, bool resetGlitches = true, bool resetJetpackWeapons = true)`

#### Przykład

```lua
addEventHandler("onResourceStop", resourceRoot, function()
    resetWorldProperties(true, true, true, true)
end)
```

#### Zobacz też

- [`resetWorldProperty`](https://trilogy-hub.com/docs/resetWorldProperty/)
- [`setWorldSpecialPropertyEnabled`](https://trilogy-hub.com/docs/setWorldSpecialPropertyEnabled/)

### resetWorldProperty

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Kasuje jedną nazwaną właściwość z `setWorldProperty`.

#### Składnia

```lua
bool resetWorldProperty(string property)
```

#### Argumenty

- `property` (string) - Nazwa właściwości.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetWorldProperty("AmbientColor")
```

#### Zobacz też

- [`setWorldProperty`](https://trilogy-hub.com/docs/setWorldProperty/)
- [`getWorldProperty`](https://trilogy-hub.com/docs/getWorldProperty/)

### resetWorldSounds

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Kasuje wszystkie wyciszenia z `setWorldSoundEnabled`.

#### Składnia

```lua
bool resetWorldSounds()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetWorldSounds()
```

#### Zobacz też

- [`setWorldSoundEnabled`](https://trilogy-hub.com/docs/setWorldSoundEnabled/)

### restoreGameWorld

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Cofa `removeGameWorld`.

#### Składnia

```lua
bool restoreGameWorld()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
restoreGameWorld()
```

#### Zobacz też

- [`removeGameWorld`](https://trilogy-hub.com/docs/removeGameWorld/)

### setAimAssistEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Pozwala albo zabrania wspomagania celowania u wszystkich graczy. `false` wymusza celowanie swobodne (celownik nie przyciąga się do celu), a ustawienie w menu gry jest zablokowane. Przydaje się na serwerach PvP, gdzie gracze z padem i z myszą mają mieć równe szanse.

#### Składnia

```lua
bool setAimAssistEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = wspomaganie dozwolone (domyślnie), `false` = tylko celowanie swobodne.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onResourceStart", resourceRoot, function()
    setAimAssistEnabled(false)
end)
```

#### Zobacz też

- [`isAimAssistEnabled`](https://trilogy-hub.com/docs/isAimAssistEnabled/)

### setAmbientSoundEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje włączenie albo wyłączenie dźwięków otoczenia: `"gunfire"` (odległe strzały w niebezpiecznych dzielnicach) lub `"general"` (pozostałe odgłosy tła).

#### Składnia

```lua
bool setAmbientSoundEnabled(string theType, bool enabled)
```

#### Argumenty

- `theType` (string) - `"gunfire"` albo `"general"`.
- `enabled` (bool) - `true` = włączone.

#### Zwraca

`true` przy powodzeniu, `false` dla innego rodzaju.

#### Przykład

```lua
setAmbientSoundEnabled("gunfire", false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Dźwięk gry się nie zmienia.

#### Zobacz też

- [`isAmbientSoundEnabled`](https://trilogy-hub.com/docs/isAmbientSoundEnabled/)
- [`resetAmbientSounds`](https://trilogy-hub.com/docs/resetAmbientSounds/)

### setBirdsEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje, czy nad mapą mają latać ptaki (domyślnie tak).

#### Składnia

```lua
bool setBirdsEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = ptaki włączone.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setBirdsEnabled(false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie wyłącza jeszcze ptaków na tej podstawie.

#### Zobacz też

- [`getBirdsEnabled`](https://trilogy-hub.com/docs/getBirdsEnabled/)
- [`resetBirdsEnabled`](https://trilogy-hub.com/docs/resetBirdsEnabled/)

### setBlurLevel

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zapisuje siłę rozmycia ruchu przy szybkiej jeździe (0-255, w grze domyślnie 36).

#### Składnia

```lua
bool setBlurLevel(int level)
```

#### Argumenty

- `level` (int) - Siła 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int level`
- W MTA:SA: `setBlurLevel(player thePlayer, int level)`

#### Przykład

```lua
setBlurLevel(0)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Rozmycie w grze się nie zmienia.

#### Zobacz też

- [`getBlurLevel`](https://trilogy-hub.com/docs/getBlurLevel/)
- [`resetBlurLevel`](https://trilogy-hub.com/docs/resetBlurLevel/)

### setCoronaReflectionsEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zapisuje, czy światła (latarnie, reflektory) mają się odbijać na mokrej nawierzchni (domyślnie nie).

#### Składnia

```lua
bool setCoronaReflectionsEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = odbicia włączone.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setCoronaReflectionsEnabled(int enabled)`

#### Przykład

```lua
setCoronaReflectionsEnabled(true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Odbicia w grze się nie zmieniają.

#### Zobacz też

- [`getCoronaReflectionsEnabled`](https://trilogy-hub.com/docs/getCoronaReflectionsEnabled/)
- [`resetCoronaReflectionsEnabled`](https://trilogy-hub.com/docs/resetCoronaReflectionsEnabled/)

### setGarageBounds

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Podaje położenie i rozmiar garażu, żeby działały `getGaragePosition`, `getGarageSize` i `getGarageBoundingBox` (serwer nie zna danych garaży z gry).

#### Składnia

```lua
bool setGarageBounds(int garage, float x, float y, float z [, float sizeX = 0, float sizeY = 0, float sizeZ = 0])
```

#### Argumenty

- `garage` (int) - Numer garażu.
- `x` (float) - X środka garażu.
- `y` (float) - Y środka.
- `z` (float) - Z podłogi.
- `sizeX` (float, opcjonalny = 0) - Szerokość (m).
- `sizeY` (float, opcjonalny = 0) - Długość (m).
- `sizeZ` (float, opcjonalny = 0) - Wysokość (m).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setGarageBounds(8, 2071, -1831, 13.5, 8, 10, 5)
```

#### Zobacz też

- [`getGaragePosition`](https://trilogy-hub.com/docs/getGaragePosition/)
- [`getGarageSize`](https://trilogy-hub.com/docs/getGarageSize/)
- [`getGarageBoundingBox`](https://trilogy-hub.com/docs/getGarageBoundingBox/)

### setGarageOpen

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje, czy garaż gry (warsztaty Pay'n'Spray, garaże misji, numery 0-49) ma być otwarty. Stan jest wysyłany do graczy i odczytywany przez `isGarageOpen` po obu stronach.

#### Składnia

```lua
bool setGarageOpen(int garageID, bool isOpen)
```

#### Argumenty

- `garageID` (int) - Numer garażu 0-49.
- `isOpen` (bool) - `true` = otwarty.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setGarageOpen(8, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie otwiera jeszcze bram garaży na polecenie skryptu.

#### Zobacz też

- [`isGarageOpen`](https://trilogy-hub.com/docs/isGarageOpen/)

### setGlitchEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Włącza albo wyłącza znany błąd gry (glitch) dopuszczany na wielu serwerach. Dostępne nazwy: `quickreload` (szybkie przeładowanie), `fastfire` (szybsze strzelanie przerwaniem animacji), `fastmove` (szybki ruch w kucki), `crouchbug` (strzał-kucnięcie), `closedamage` (obrażenia z bliska), `hitanim` (animacja trafienia), `fastsprint` (szybki sprint klikaniem), `baddrivebyhitbox` (zła strefa trafień przy strzelaniu z auta), `quickstand` (szybkie wstawanie), `kickoutofvehicle_onmodelreplace`.

#### Składnia

```lua
bool setGlitchEnabled(string glitch, bool enabled)
```

#### Argumenty

- `glitch` (string) - Nazwa błędu z listy powyżej (wielkość liter bez znaczenia).
- `enabled` (bool) - `true` = włączony.

#### Zwraca

`true` przy powodzeniu, `false` dla nieznanej nazwy.

#### Przykład

```lua
setGlitchEnabled("quickreload", true)
setGlitchEnabled("fastmove", true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Silnik Definitive Edition działa po swojemu; wartość służy skryptom (np. własnym blokadom).

#### Zobacz też

- [`isGlitchEnabled`](https://trilogy-hub.com/docs/isGlitchEnabled/)

### setGrainLevel

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Dodaje do obrazu gry ziarno jak na starym filmie, u wszystkich graczy (0 = brak, 255 = najmocniej). Siłę mnoży `setGrainMultiplier`.

#### Składnia

```lua
bool setGrainLevel(int level)
```

#### Argumenty

- `level` (int) - Siła 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setGrainLevel(40)
```

#### Uwagi

> **Ostrzeżenie:** **Zależy od grafiki gracza.** Przy najniższej jakości efektów (post-process) gra nie rysuje ziarna.

#### Zobacz też

- [`getGrainLevel`](https://trilogy-hub.com/docs/getGrainLevel/)
- [`resetGrainLevel`](https://trilogy-hub.com/docs/resetGrainLevel/)
- [`setGrainMultiplier`](https://trilogy-hub.com/docs/setGrainMultiplier/)

### setGrainMultiplier

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Mnożnik siły ziarna z `setGrainLevel` (0-10, domyślnie 1). Ziarno nie przekracza swojej najwyższej siły.

#### Składnia

```lua
bool setGrainMultiplier(float multiplier)
```

#### Argumenty

- `multiplier` (float) - Mnożnik 0-10.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `float multiplier`
- W MTA:SA: `setGrainMultiplier(string modifierName, float multiplier)`

#### Przykład

```lua
setGrainMultiplier(2)
```

#### Zobacz też

- [`getGrainMultiplier`](https://trilogy-hub.com/docs/getGrainMultiplier/)
- [`setGrainLevel`](https://trilogy-hub.com/docs/setGrainLevel/)
- [`resetGrainMultiplier`](https://trilogy-hub.com/docs/resetGrainMultiplier/)

### setGravity

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zmienia siłę grawitacji w świecie gry u wszystkich graczy. Domyślnie 0,008; mniejsza wartość daje wyższe skoki i dłuższe loty aut (np. 0,004 = połowa ziemskiej). Gra przyjmuje wartości od 0 do 1 (bez zera).

#### Składnia

```lua
bool setGravity(float g)
```

#### Argumenty

- `g` (float) - Siła grawitacji, domyślnie 0.008.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("ksiezyc", function()
    setGravity(0.0013)
end)
```

#### Zobacz też

- [`getGravity`](https://trilogy-hub.com/docs/getGravity/)

### setHeatHaze

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje ustawienia drgania powietrza (efekt gorąca nad asfaltem na pustyni).

#### Składnia

```lua
bool setHeatHaze(int intensity [, int randomShift = 0, int speedMin = 12, int speedMax = 18, int scanSizeX = 75, int scanSizeY = 80, int renderSizeX = 80, int renderSizeY = 85, bool bShowInside = false])
```

#### Argumenty

- `intensity` (int) - Siła 0-255.
- `randomShift` (int, opcjonalny = 0) - Losowe przesunięcie obrazu.
- `speedMin` (int, opcjonalny = 12) - Najmniejsza prędkość falowania.
- `speedMax` (int, opcjonalny = 18) - Największa prędkość falowania.
- `scanSizeX` (int, opcjonalny = 75) - Szerokość obszaru pobieranego z ekranu.
- `scanSizeY` (int, opcjonalny = 80) - Wysokość obszaru pobieranego.
- `renderSizeX` (int, opcjonalny = 80) - Szerokość rysowanego obszaru.
- `renderSizeY` (int, opcjonalny = 85) - Wysokość rysowanego obszaru.
- `bShowInside` (bool, opcjonalny = false) - Czy pokazywać efekt we wnętrzach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setHeatHaze(80, 0, 12, 18, 75, 80, 80, 85, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie zmienia jeszcze efektu na tej podstawie.

#### Zobacz też

- [`getHeatHaze`](https://trilogy-hub.com/docs/getHeatHaze/)
- [`resetHeatHaze`](https://trilogy-hub.com/docs/resetHeatHaze/)

### setInteriorFurnitureEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zapisuje, czy wnętrza (domy, sklepy) mają mieć meble (domyślnie tak). Przydaje się, gdy wstawiasz do wnętrza własne wyposażenie.

#### Składnia

```lua
bool setInteriorFurnitureEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = meble włączone.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool enabled`
- W MTA:SA: `setInteriorFurnitureEnabled(int roomID, bool enabled)`

#### Przykład

```lua
setInteriorFurnitureEnabled(false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie usuwa jeszcze mebli na tej podstawie.

#### Zobacz też

- [`getInteriorFurnitureEnabled`](https://trilogy-hub.com/docs/getInteriorFurnitureEnabled/)
- [`resetInteriorFurnitureEnabled`](https://trilogy-hub.com/docs/resetInteriorFurnitureEnabled/)

### setJetpackWeaponEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zapisuje ogólną zgodę na strzelanie z broni w locie na plecaku odrzutowym (domyślnie nie). Przyjmuje jedną wartość dla wszystkich broni.

#### Składnia

```lua
bool setJetpackWeaponEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = wolno strzelać.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool enabled`
- W MTA:SA: `setJetpackWeaponEnabled(weaponID/string weaponName, bool enabled)`

#### Przykład

```lua
setJetpackWeaponEnabled(true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie zmienia jeszcze zachowania plecaka.

#### Zobacz też

- [`getJetpackWeaponEnabled`](https://trilogy-hub.com/docs/getJetpackWeaponEnabled/)

### setNearClipDistance

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje odległość bliskiej płaszczyzny kamery: rzeczy bliżej kamery niż ta wartość nie są rysowane (0,1-20 m, domyślnie 0,3).

#### Składnia

```lua
bool setNearClipDistance(float distance)
```

#### Argumenty

- `distance` (float) - Odległość w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setNearClipDistance(0.5)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Kamera gry się nie zmienia.

#### Zobacz też

- [`getNearClipDistance`](https://trilogy-hub.com/docs/getNearClipDistance/)
- [`resetNearClipDistance`](https://trilogy-hub.com/docs/resetNearClipDistance/)

### setPedsLODDistance

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje odległość, od której postacie przestają być rysowane (0-500 m, domyślnie 60).

#### Składnia

```lua
bool setPedsLODDistance(float distance)
```

#### Argumenty

- `distance` (float) - Odległość w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedsLODDistance(150)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Zasięg rysowania w grze ustala silnik.

#### Zobacz też

- [`getPedsLODDistance`](https://trilogy-hub.com/docs/getPedsLODDistance/)
- [`setVehiclesLODDistance`](https://trilogy-hub.com/docs/setVehiclesLODDistance/)
- [`resetPedsLODDistance`](https://trilogy-hub.com/docs/resetPedsLODDistance/)

### setSunColor

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje kolor słońca: rdzeń i poświatę (korona), każdy RGB 0-255. Bez trzech ostatnich liczb poświata dostaje kolor rdzenia.

#### Składnia

```lua
bool setSunColor(int aRed, int aGreen, int aBlue [, int bRed = aRed, int bGreen = aGreen, int bBlue = aBlue])
```

#### Argumenty

- `aRed` (int) - Czerwony rdzenia.
- `aGreen` (int) - Zielony rdzenia.
- `aBlue` (int) - Niebieski rdzenia.
- `bRed` (int, opcjonalny = aRed) - Czerwony poświaty.
- `bGreen` (int, opcjonalny = aGreen) - Zielony poświaty.
- `bBlue` (int, opcjonalny = aBlue) - Niebieski poświaty.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setSunColor(255, 80, 0, 255, 160, 60)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Słońce w grze jeszcze się nie zmienia.

#### Zobacz też

- [`getSunColor`](https://trilogy-hub.com/docs/getSunColor/)
- [`resetSunColor`](https://trilogy-hub.com/docs/resetSunColor/)
- [`setSunSize`](https://trilogy-hub.com/docs/setSunSize/)

### setSunSize

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje rozmiar tarczy słońca (0-100, domyślnie 1).

#### Składnia

```lua
bool setSunSize(float size)
```

#### Argumenty

- `size` (float) - Rozmiar 0-100.

#### Zwraca

`true` przy powodzeniu, `false` poza zakresem.

#### Przykład

```lua
setSunSize(5)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Słońce w grze jeszcze się nie zmienia.

#### Zobacz też

- [`getSunSize`](https://trilogy-hub.com/docs/getSunSize/)
- [`resetSunSize`](https://trilogy-hub.com/docs/resetSunSize/)

### setTimeFrozen

*Funkcja · Strona: Serwer · Kategoria: Świat · Tylko Trilogy Hub*

Zatrzymuje albo puszcza zegar gry u wszystkich graczy. Zatrzymany zegar trzyma stałą porę dnia (np. wieczne południe na serwerze wyścigowym). `setTime` nadal może zmienić godzinę.

#### Składnia

```lua
bool setTimeFrozen([bool frozen = true])
```

#### Argumenty

- `frozen` (bool, opcjonalny = true) - `true` = zegar stoi, `false` = idzie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setTime(12, 0)
setTimeFrozen(true)
```

#### Zobacz też

- [`isTimeFrozen`](https://trilogy-hub.com/docs/isTimeFrozen/)
- [`resetTimeFrozen`](https://trilogy-hub.com/docs/resetTimeFrozen/)
- [`setTime`](https://trilogy-hub.com/docs/setTime/)

### setTrafficLightsLocked

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje, czy sygnalizacja ma być zablokowana w obecnym stanie (bez automatycznej zmiany).

#### Składnia

```lua
bool setTrafficLightsLocked(bool value)
```

#### Argumenty

- `value` (bool) - `true` = zablokowane.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setTrafficLightsLocked(true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Patrz `setTrafficLightState`.

#### Zobacz też

- [`areTrafficLightsLocked`](https://trilogy-hub.com/docs/areTrafficLightsLocked/)
- [`setTrafficLightState`](https://trilogy-hub.com/docs/setTrafficLightState/)

### setTrafficLightState

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje stan sygnalizacji świetlnej na skrzyżowaniach (0-9).

#### Składnia

```lua
bool setTrafficLightState(int value)
```

#### Argumenty

- `value` (int) - Stan 0-9 (np. 0 automatyczny, 1-4 kombinacje kolorów, 9 wyłączone).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setTrafficLightState(9)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Sygnalizacja w grze działa po swojemu; wartość służy logice skryptów.

#### Zobacz też

- [`getTrafficLightState`](https://trilogy-hub.com/docs/getTrafficLightState/)
- [`setTrafficLightsLocked`](https://trilogy-hub.com/docs/setTrafficLightsLocked/)

### setVehiclesLODDistance

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zapisuje odległość, od której pojazdy przestają być rysowane (0-500 m, domyślnie 500).

#### Składnia

```lua
bool setVehiclesLODDistance(float distance)
```

#### Argumenty

- `distance` (float) - Odległość w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `float trainsAndPlanesDistance = vehiclesDistance * 2.14`
- W MTA:SA: `setVehiclesLODDistance(float vehiclesDistance, float trainsAndPlanesDistance = vehiclesDistance * 2.14)`

#### Przykład

```lua
setVehiclesLODDistance(300)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Zasięg rysowania w grze ustala silnik.

#### Zobacz też

- [`getVehiclesLODDistance`](https://trilogy-hub.com/docs/getVehiclesLODDistance/)
- [`setPedsLODDistance`](https://trilogy-hub.com/docs/setPedsLODDistance/)
- [`resetVehiclesLODDistance`](https://trilogy-hub.com/docs/resetVehiclesLODDistance/)

### setVolumetricShadowsEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje, czy postacie i pojazdy mają mieć cienie objętościowe (domyślnie nie).

#### Składnia

```lua
bool setVolumetricShadowsEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = cienie włączone.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setVolumetricShadowsEnabled(true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Cienie rysuje Unreal według ustawień grafiki gracza.

#### Zobacz też

- [`isVolumetricShadowsEnabled`](https://trilogy-hub.com/docs/isVolumetricShadowsEnabled/)
- [`resetVolumetricShadowsEnabled`](https://trilogy-hub.com/docs/resetVolumetricShadowsEnabled/)

### setWaterColor

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje kolor wody (RGB 0-255) i jej krycie (domyślnie 200).

#### Składnia

```lua
bool setWaterColor(int r, int g, int b [, int a = 200])
```

#### Argumenty

- `r` (int) - Czerwony.
- `g` (int) - Zielony.
- `b` (int) - Niebieski.
- `a` (int, opcjonalny = 200) - Krycie 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWaterColor(0, 120, 60, 220)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Woda w grze zachowuje swój kolor.

#### Zobacz też

- [`getWaterColor`](https://trilogy-hub.com/docs/getWaterColor/)
- [`resetWaterColor`](https://trilogy-hub.com/docs/resetWaterColor/)

### setWaterDrawnLast

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje, czy woda ma być rysowana jako ostatnia (wpływa to na widoczność przezroczystych obiektów pod wodą).

#### Składnia

```lua
bool setWaterDrawnLast(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` = woda na końcu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWaterDrawnLast(true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Kolejność rysowania w grze się nie zmienia.

#### Zobacz też

- [`isWaterDrawnLast`](https://trilogy-hub.com/docs/isWaterDrawnLast/)
- [`resetWaterDrawnLast`](https://trilogy-hub.com/docs/resetWaterDrawnLast/)

### setWaterLevel

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje poziom wody: z samą liczbą - dla całego świata, z elementem wody - dla tego elementu.

#### Składnia

```lua
bool setWaterLevel(float/element levelOrWater [, float level = nil])
```

#### Argumenty

- `levelOrWater` (float/element) - Poziom wody w metrach albo element wody.
- `level` (float, opcjonalny = nil) - Poziom dla elementu wody.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWaterLevel(5)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Morze w grze zostaje na swoim poziomie; `getWaterLevel` i `testLineAgainstWater` korzystają z zapisanej wartości.

#### Zobacz też

- [`getWaterLevel`](https://trilogy-hub.com/docs/getWaterLevel/)
- [`resetWaterLevel`](https://trilogy-hub.com/docs/resetWaterLevel/)

### setWaterVertexPosition

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Przesuwa wierzchołek elementu wody z `createWater`.

#### Składnia

```lua
bool setWaterVertexPosition(element water, int vertex, float x, float y, float z)
```

#### Argumenty

- `water` (element) - Element wody.
- `vertex` (int) - Numer wierzchołka od 1.
- `x` (float) - Nowe X.
- `y` (float) - Nowe Y.
- `z` (float) - Nowe Z.

#### Zwraca

`true` przy powodzeniu, `false` dla złego numeru.

#### Przykład

```lua
local water = createWater(0, 0, 5, 10, 0, 5, 0, 10, 5)
setWaterVertexPosition(water, 3, 0, 12, 5)
```

#### Zobacz też

- [`getWaterVertexPosition`](https://trilogy-hub.com/docs/getWaterVertexPosition/)
- [`createWater`](https://trilogy-hub.com/docs/createWater/)

### setWaveHeight

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje wysokość fal na wodzie (0-100, domyślnie 0).

#### Składnia

```lua
bool setWaveHeight(float height)
```

#### Argumenty

- `height` (float) - Wysokość 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWaveHeight(2)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Fale w grze zależą od pogody.

#### Zobacz też

- [`getWaveHeight`](https://trilogy-hub.com/docs/getWaveHeight/)

### setWindVelocity

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje kierunek i siłę wiatru. Wartość trafia do graczy i odczytuje ją `getWindVelocity` po stronie klienta, np. dla własnych efektów.

#### Składnia

```lua
bool setWindVelocity(float x, float y, float z)
```

#### Argumenty

- `x` (float) - Składowa X wiatru.
- `y` (float) - Składowa Y.
- `z` (float) - Składowa Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWindVelocity(0.5, 0.2, 0)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie zmienia jeszcze na tej podstawie ruchu drzew i chmur.

#### Zobacz też

- [`getWindVelocity`](https://trilogy-hub.com/docs/getWindVelocity/)
- [`resetWindVelocity`](https://trilogy-hub.com/docs/resetWindVelocity/)

### setWorldProperty

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje nazwaną właściwość świata złożoną z maksymalnie trzech liczb, np. kolor albo intensywność efektu z listy (`AmbientColor`, `LightsOnGround`, `SpriteBrightness` itd.). Nazwa jest bez znaczenia wielkości liter.

#### Składnia

```lua
bool setWorldProperty(string property [, float a = 0, float b = 0, float c = 0])
```

#### Argumenty

- `property` (string) - Nazwa właściwości.
- `a` (float, opcjonalny = 0) - Pierwsza liczba.
- `b` (float, opcjonalny = 0) - Druga liczba.
- `c` (float, opcjonalny = 0) - Trzecia liczba.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWorldProperty("AmbientColor", 0.6, 0.5, 0.4)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie stosuje jeszcze tych wartości.

#### Zobacz też

- [`getWorldProperty`](https://trilogy-hub.com/docs/getWorldProperty/)
- [`resetWorldProperty`](https://trilogy-hub.com/docs/resetWorldProperty/)

### setWorldSoundEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zapisuje wyciszenie dźwięków świata według grup i numerów (np. grupa 0 = odgłosy ludzi, 5 = ptaki). Numer -1 oznacza całą grupę; wywołanie z dwoma argumentami (`group, enabled`) też dotyczy całej grupy.

#### Składnia

```lua
bool setWorldSoundEnabled(int group, bool enabled [, int index = -1])
```

#### Argumenty

- `group` (int) - Numer grupy dźwięków.
- `index` (int, opcjonalny = -1) - Numer dźwięku w grupie albo -1 = cała grupa.
- `enabled` (bool) - `false` = wycisz, `true` = przywróć.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool immediate = false`
- W MTA:SA: `setWorldSoundEnabled(int group, int index = -1, bool enable, bool immediate = false)`

#### Przykład

```lua
setWorldSoundEnabled(5, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Dźwięk gry się nie zmienia; do własnych dźwięków służą funkcje `playSound`.

#### Zobacz też

- [`isWorldSoundEnabled`](https://trilogy-hub.com/docs/isWorldSoundEnabled/)
- [`resetWorldSounds`](https://trilogy-hub.com/docs/resetWorldSounds/)

### setWorldSpecialPropertyEnabled

*Funkcja · Strona: Serwer · Kategoria: Świat · Identyczna z MTA:SA*

Włącza albo wyłącza specjalną właściwość świata: `hovercars`, `aircars`, `extrabunny`, `extrajump`, `randomfoliage`, `snipermoon`, `extraairresistance`, `underworldwarp`, `vehiclesunglare`, `coronaztest`, `watercreatures`, `burnflippedcars`, `fireballdestruct`, `roadsignstext`, `extendedwatercannons`, `tunnelweatherblend`, `ignorefirestate`, `flyingcomponents`, `vehicleburnexplosions`, `vehicle_engine_autostart`. Naprawdę działa `vehicle_engine_autostart`: wyłączona sprawia, że silnik auta nie zapala się sam, gdy kierowca wsiada, i trzeba go włączać przez `setVehicleEngineState`.

#### Składnia

```lua
bool setWorldSpecialPropertyEnabled(string property, bool enabled)
```

#### Argumenty

- `property` (string) - Nazwa właściwości z listy powyżej.
- `enabled` (bool) - `true` = włączona.

#### Zwraca

`true` przy powodzeniu, `false` dla nieznanej nazwy.

#### Przykład

```lua
setWorldSpecialPropertyEnabled("vehicle_engine_autostart", false)
addCommandHandler("silnik", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleEngineState(vehicle, not getVehicleEngineState(vehicle)) end
end)
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Poza `vehicle_engine_autostart` właściwości są tylko zapisywane dla skryptów; gra ich jeszcze nie stosuje.

#### Zobacz też

- [`isWorldSpecialPropertyEnabled`](https://trilogy-hub.com/docs/isWorldSpecialPropertyEnabled/)
- [`setVehicleEngineState`](https://trilogy-hub.com/docs/setVehicleEngineState/)

### testSphereAgainstWorld

*Funkcja · Strona: Serwer · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Sprawdza, czy kula w podanym punkcie nachodzi na jakiś element (pojazd, postać, obiekt) według uproszczonego modelu serwera (elementy jako kule, bez budynków mapy). Przydaje się np. do sprawdzenia, czy miejsce na stworzenie auta jest wolne.

#### Składnia

```lua
bool, element testSphereAgainstWorld(float x, float y, float z, float radius [, element ignoredElement = nil, bool checkBuildings = true, bool checkVehicles = false, bool checkPeds = false, bool checkObjects = true])
```

#### Argumenty

- `x` (float) - X środka kuli.
- `y` (float) - Y środka.
- `z` (float) - Z środka.
- `radius` (float) - Promień kuli w metrach.
- `ignoredElement` (element, opcjonalny = nil) - Element pomijany.
- `checkBuildings` (bool, opcjonalny = true) - Uwzględnij obiekty (razem z `checkObjects`).
- `checkVehicles` (bool, opcjonalny = false) - Uwzględnij pojazdy.
- `checkPeds` (bool, opcjonalny = false) - Uwzględnij postacie.
- `checkObjects` (bool, opcjonalny = true) - Uwzględnij obiekty.

#### Zwraca

`true` i pierwszy nachodzący element albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `testSphereAgainstWorld(unknown vehicle, unknown ped, object etc.)`

#### Przykład

```lua
local function spawnCarIfFree(model, x, y, z)
    if testSphereAgainstWorld(x, y, z, 3, nil, true, true, true, true) then return false end
    return createVehicle(model, x, y, z)
end
```

#### Zobacz też

- [`processLineOfSight`](https://trilogy-hub.com/docs/processLineOfSight/)

### createLight

*Funkcja · Strona: Serwer · Kategoria: Światła · Zmodyfikowana względem MTA:SA*

Tworzy element światła: punktowe (typ 0, świeci we wszystkie strony) albo stożkowe (typ 1, z kierunkiem), z zasięgiem i kolorem.

#### Składnia

```lua
element createLight(int lightType, float x, float y, float z [, float radius = 3, int r = 255, int g = 255, int b = 255, float dirX = 0, float dirY = 0, float dirZ = 0, bool createsShadow = false])
```

#### Argumenty

- `lightType` (int) - 0 = punktowe, 1 = stożkowe.
- `x` (float) - X światła.
- `y` (float) - Y światła.
- `z` (float) - Z światła.
- `radius` (float, opcjonalny = 3) - Zasięg w metrach.
- `r` (int, opcjonalny = 255) - Czerwony.
- `g` (int, opcjonalny = 255) - Zielony.
- `b` (int, opcjonalny = 255) - Niebieski.
- `dirX` (float, opcjonalny = 0) - Kierunek X (stożkowe).
- `dirY` (float, opcjonalny = 0) - Kierunek Y.
- `dirZ` (float, opcjonalny = 0) - Kierunek Z.
- `createsShadow` (bool, opcjonalny = false) - Czy rzuca cienie.

#### Zwraca

Element `light` albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `createLight(int lightType, float posX, float posY, float posZ, float radius = 3, int r = 255, int g = 0, int b = 0, float dirX = 0, float dirY = 0, float dirZ = 0)`

#### Przykład

```lua
local lamp = createLight(0, 2495, -1665, 16, 8, 255, 200, 120)
```

#### Uwagi

> **Nowość:** Światło oświetla ziemię, ściany, pojazdy i postacie w zasięgu `radius` u wszystkich graczy (także tych, którzy wejdą później), a `setLightColor` i `setLightRadius` zmieniają je od razu. Samego snopu w powietrzu nie widać, bo gra nie ma mgły wolumetrycznej. Stożek (typ 1) ma 40°; bez kierunku świeci w dół.

#### Zobacz też

- [`setLightColor`](https://trilogy-hub.com/docs/setLightColor/)
- [`setLightRadius`](https://trilogy-hub.com/docs/setLightRadius/)
- [`createSearchLight`](https://trilogy-hub.com/docs/createSearchLight/)

### createSearchLight

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Tworzy snop reflektora: prawdziwe światło stożkowe Unreal świecące od punktu początkowego do końcowego, jak policyjny reflektor z helikoptera albo światła na stadionie. Szerokość stożka wynika z promienia na końcu i odległości; jasność dobiera się sama do długości snopu. Widzą go wszyscy gracze w tym samym wnętrzu i wymiarze.

#### Składnia

```lua
element createSearchLight(float startX, float startY, float startZ, float endX, float endY, float endZ [, float startRadius = 1, float endRadius = 10, bool renderSpline = true])
```

#### Argumenty

- `startX` (float) - X źródła.
- `startY` (float) - Y źródła.
- `startZ` (float) - Z źródła.
- `endX` (float) - X miejsca, w które świeci.
- `endY` (float) - Y miejsca.
- `endZ` (float) - Z miejsca.
- `startRadius` (float, opcjonalny = 1) - Promień snopu przy źródle (m).
- `endRadius` (float, opcjonalny = 10) - Promień plamy światła na końcu (m).
- `renderSpline` (bool, opcjonalny = true) - Dla zgodności ze starszymi skryptami.

#### Zwraca

Element `searchlight` albo `false`.

#### Przykład

```lua
local light = createSearchLight(2495, -1680, 40, 2495, -1665, 13, 1, 6)
setTimer(function()
    local player = getRandomPlayer()
    if player then
        local x, y, z = getElementPosition(player)
        setSearchLightEndPosition(light, x, y, z)
    end
end, 200, 0)
```

#### Zobacz też

- [`setSearchLightEndPosition`](https://trilogy-hub.com/docs/setSearchLightEndPosition/)
- [`setSearchLightEndRadius`](https://trilogy-hub.com/docs/setSearchLightEndRadius/)
- [`destroyElement`](https://trilogy-hub.com/docs/destroyElement/)

### createSWATRope

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Tworzy linę, po której oddział SWAT zjeżdża z helikoptera. Element `rope` znika sam po podanym czasie.

#### Składnia

```lua
element createSWATRope(float x, float y, float z [, int duration = 4000])
```

#### Argumenty

- `x` (float) - X zawieszenia liny.
- `y` (float) - Y zawieszenia.
- `z` (float) - Z zawieszenia.
- `duration` (int, opcjonalny = 4000) - Czas istnienia w ms.

#### Zwraca

Element `rope` albo `false`.

#### Przykład

```lua
createSWATRope(2495, -1665, 30, 6000)
```

#### Uwagi

> **Ostrzeżenie:** **Ograniczenie.** Lina nie jest jeszcze rysowana w grze.

### getLightColor

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Zwraca kolor światła.

#### Składnia

```lua
int, int, int getLightColor(element theLight)
```

#### Argumenty

- `theLight` (element) - Światło.

#### Zwraca

r, g, b albo `false`.

#### Przykład

```lua
local lamp = createLight(0, 0, 0, 5, 5, 255, 0, 0)
local r, g, b = getLightColor(lamp)
```

#### Zobacz też

- [`setLightColor`](https://trilogy-hub.com/docs/setLightColor/)

### getLightDirection

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Zwraca kierunek światła stożkowego.

#### Składnia

```lua
float, float, float getLightDirection(element theLight)
```

#### Argumenty

- `theLight` (element) - Światło.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local lamp = createLight(1, 0, 0, 5, 5, 255, 255, 255, 0, 0, -1)
local dx, dy, dz = getLightDirection(lamp)
```

#### Zobacz też

- [`setLightDirection`](https://trilogy-hub.com/docs/setLightDirection/)

### getLightRadius

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Zwraca zasięg światła w metrach (domyślnie 3).

#### Składnia

```lua
float getLightRadius(element theLight)
```

#### Argumenty

- `theLight` (element) - Światło.

#### Zwraca

Zasięg.

#### Przykład

```lua
local lamp = createLight(0, 0, 0, 5, 12)
outputDebugString(getLightRadius(lamp))
```

#### Zobacz też

- [`setLightRadius`](https://trilogy-hub.com/docs/setLightRadius/)

### getLightType

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Zwraca rodzaj światła: 0 punktowe, 1 stożkowe.

#### Składnia

```lua
int getLightType(element theLight)
```

#### Argumenty

- `theLight` (element) - Światło.

#### Zwraca

Rodzaj albo `false`.

#### Przykład

```lua
local lamp = createLight(1, 0, 0, 5)
outputDebugString(getLightType(lamp))
```

#### Zobacz też

- [`createLight`](https://trilogy-hub.com/docs/createLight/)

### setLightColor

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Zmienia kolor światła.

#### Składnia

```lua
bool setLightColor(element theLight, int r, int g, int b)
```

#### Argumenty

- `theLight` (element) - Światło.
- `r` (int) - Czerwony 0-255.
- `g` (int) - Zielony 0-255.
- `b` (int) - Niebieski 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local lamp = createLight(0, 0, 0, 5)
setLightColor(lamp, 0, 0, 255)
```

#### Zobacz też

- [`getLightColor`](https://trilogy-hub.com/docs/getLightColor/)

### setLightDirection

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Zmienia kierunek światła stożkowego (wektor, np. 0, 0, -1 = w dół).

#### Składnia

```lua
bool setLightDirection(element theLight, float x, float y, float z)
```

#### Argumenty

- `theLight` (element) - Światło.
- `x` (float) - Składowa X.
- `y` (float) - Składowa Y.
- `z` (float) - Składowa Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local lamp = createLight(1, 0, 0, 5)
setLightDirection(lamp, 0, 0, -1)
```

#### Zobacz też

- [`getLightDirection`](https://trilogy-hub.com/docs/getLightDirection/)

### setLightRadius

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Zmienia zasięg światła (0-255 m).

#### Składnia

```lua
bool setLightRadius(element theLight, float radius)
```

#### Argumenty

- `theLight` (element) - Światło.
- `radius` (float) - Zasięg w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local lamp = createLight(0, 0, 0, 5)
setLightRadius(lamp, 20)
```

#### Zobacz też

- [`getLightRadius`](https://trilogy-hub.com/docs/getLightRadius/)

### setSearchLightEndPosition

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Kieruje reflektor na nowy punkt.

#### Składnia

```lua
bool setSearchLightEndPosition(element theLight, float x, float y, float z)
```

#### Argumenty

- `theLight` (element) - Reflektor.
- `x` (float) - X celu.
- `y` (float) - Y celu.
- `z` (float) - Z celu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local light = createSearchLight(0, 0, 30, 0, 10, 0)
setSearchLightEndPosition(light, 10, 10, 0)
```

#### Zobacz też

- [`createSearchLight`](https://trilogy-hub.com/docs/createSearchLight/)
- [`getSearchLightEndPosition`](https://trilogy-hub.com/docs/getSearchLightEndPosition/)

### setSearchLightEndRadius

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Ustawia promień plamy światła na końcu snopu (0-255 m); większy daje szerszy stożek.

#### Składnia

```lua
bool setSearchLightEndRadius(element theLight, float radius)
```

#### Argumenty

- `theLight` (element) - Reflektor.
- `radius` (float) - Promień w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local light = createSearchLight(0, 0, 30, 0, 10, 0)
setSearchLightEndRadius(light, 4)
```

#### Zobacz też

- [`getSearchLightEndRadius`](https://trilogy-hub.com/docs/getSearchLightEndRadius/)

### setSearchLightStartPosition

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Przesuwa źródło snopu reflektora (np. za helikopterem).

#### Składnia

```lua
bool setSearchLightStartPosition(element theLight, float x, float y, float z)
```

#### Argumenty

- `theLight` (element) - Reflektor.
- `x` (float) - Nowe X.
- `y` (float) - Nowe Y.
- `z` (float) - Nowe Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local heli = createVehicle(497, 2495, -1680, 40)
local light = createSearchLight(2495, -1680, 39, 2495, -1665, 13)
setTimer(function()
    local x, y, z = getElementPosition(heli)
    setSearchLightStartPosition(light, x, y, z - 1)
end, 100, 0)
```

#### Zobacz też

- [`getSearchLightStartPosition`](https://trilogy-hub.com/docs/getSearchLightStartPosition/)

### setSearchLightStartRadius

*Funkcja · Strona: Serwer · Kategoria: Światła · Identyczna z MTA:SA*

Ustawia promień snopu przy źródle (0-255 m).

#### Składnia

```lua
bool setSearchLightStartRadius(element theLight, float radius)
```

#### Argumenty

- `theLight` (element) - Reflektor.
- `radius` (float) - Promień w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local light = createSearchLight(0, 0, 30, 0, 10, 0)
setSearchLightStartRadius(light, 0.5)
```

#### Uwagi

> **Nowość:** Kształt światła wyznacza głównie promień na końcu.

#### Zobacz też

- [`getSearchLightStartRadius`](https://trilogy-hub.com/docs/getSearchLightStartRadius/)
- [`setSearchLightEndRadius`](https://trilogy-hub.com/docs/setSearchLightEndRadius/)

### addPedClothes

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Zmodyfikowana względem MTA:SA*

Zakłada postaci (graczowi albo NPC) część ubioru CJ-a: teksturę i model w jednej z 18 części (0-17 albo nazwa jak `"shirt"`, `"hat"`, `"spodnie"`). Ubranie widzą wszyscy gracze. Piąty argument (tylko Trilogy Hub) przebarwia ubranie: `"RRGGBB"` albo lista stref `"RRGGBB,,RRGGBB"` (puste miejsce = strefa bez zmian, np. nadruk zostaje).

#### Składnia

```lua
bool addPedClothes(ped thePed, string clothesTexture, string clothesModel, int|string clothesType [, string color])
```

#### Argumenty

- `thePed` (ped) - Postać (skin CJ, model 0).
- `clothesTexture` (string) - Nazwa tekstury.
- `clothesModel` (string) - Nazwa modelu.
- `clothesType` (int|string) - Część ubioru 0-17 albo jej nazwa.
- `color` (string, opcjonalny) - Kolor `"RRGGBB"` albo lista stref.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `addPedClothes(ped thePed, string clothesTexture, string clothesModel, int clothesType)`

#### Przykład

Czarna kamizelka w kolorze Grove Street.

```lua
addCommandHandler("kamizelka", function(player)
    setElementModel(player, 0)
    addPedClothes(player, "vestblack", "vest", 0, "1E7A2E")
end)
```

#### Uwagi

> **Nowość:** **Dowolny kolor.** Piąty argument koloruje ubranie dowolnym kolorem RGB.

#### Zobacz też

- [`removePedClothes`](https://trilogy-hub.com/docs/removePedClothes/)
- [`getPedClothes`](https://trilogy-hub.com/docs/getPedClothes/)
- [`setPlayerClothes`](https://trilogy-hub.com/docs/setPlayerClothes/)
- [`getClothesTypeName`](https://trilogy-hub.com/docs/getClothesTypeName/)
- [`setPedClothes`](https://trilogy-hub.com/docs/setPedClothes/)

### addPedTattoo

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Robi postaci tatuaż z tatuaży San Andreas w jednym z dziewięciu miejsc na ciele (gniazda 1-9: ramiona, przedramiona, plecy, pierś, brzuch, dół pleców). Widzą go wszyscy gracze.

#### Składnia

```lua
bool addPedTattoo(ped thePed, int slot, string tattooName [, string texture])
```

#### Argumenty

- `thePed` (ped) - Postać.
- `slot` (int) - Gniazdo 1-9 (`getTattooPlaceName`).
- `tattooName` (string) - Nazwa tatuażu (model), np. `"4rip"`.
- `texture` (string, opcjonalny) - Tekstura; bez niej taka sama jak nazwa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addPedTattoo(player, 1, "4rip")
addPedTattoo(player, 5, "8sa")
```

#### Zobacz też

- [`removePedTattoo`](https://trilogy-hub.com/docs/removePedTattoo/)
- [`addPedTattooImage`](https://trilogy-hub.com/docs/addPedTattooImage/)
- [`getPedTattoos`](https://trilogy-hub.com/docs/getPedTattoos/)

### addPedTattooImage

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Robi tatuaż z własnej grafiki PNG w gnieździe 1-9. Plik musi być wpisany w `meta.xml` jako `<file>` (najwyżej 1 MB i 1024x1024), a `":zasob/plik.png"` bierze plik z innego zasobu. Ciemne piksele są tuszem, jasne i przezroczyste skórą. Widzą go wszyscy gracze.

#### Składnia

```lua
bool addPedTattooImage(ped thePed, int slot, string filePath)
```

#### Argumenty

- `thePed` (ped) - Postać.
- `slot` (int) - Gniazdo 1-9.
- `filePath` (string) - Plik PNG.

#### Zwraca

`true` przy powodzeniu (błąd pliku trafia do konsoli).

#### Przykład

```lua
addPedTattooImage(player, 5, "tatuaze/logo.png")
```

```xml
<meta>
    <script src="server.lua" type="server" />
    <file src="tatuaze/logo.png" />
</meta>
```

#### Zobacz też

- [`addPedTattoo`](https://trilogy-hub.com/docs/addPedTattoo/)
- [`removePedTattoo`](https://trilogy-hub.com/docs/removePedTattoo/)

### clearPedTattoos

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Zdejmuje postaci wszystkie tatuaże, ubrania zostawia.

#### Składnia

```lua
bool clearPedTattoos(ped thePed)
```

#### Argumenty

- `thePed` (ped) - Postać.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
clearPedTattoos(player)
```

#### Zobacz też

- [`removePedTattoo`](https://trilogy-hub.com/docs/removePedTattoo/)
- [`resetPlayerClothes`](https://trilogy-hub.com/docs/resetPlayerClothes/)

### getClothesByTypeIndex

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Identyczna z MTA:SA*

Zwraca teksturę i model ubrania o numerze `index` w danym rodzaju, z tabeli wgranej przez `setClothesData`.

#### Składnia

```lua
string, string getClothesByTypeIndex(int clothesType, int clothesIndex)
```

#### Argumenty

- `clothesType` (int) - Rodzaj 0-17.
- `clothesIndex` (int) - Numer ubrania liczony od 0.

#### Zwraca

Tekstura i model albo `false`.

#### Przykład

```lua
local texture, model = getClothesByTypeIndex(0, 0)
if texture then addPedClothes(player, texture, model, 0) end
```

#### Zobacz też

- [`setClothesData`](https://trilogy-hub.com/docs/setClothesData/)
- [`getTypeIndexFromClothes`](https://trilogy-hub.com/docs/getTypeIndexFromClothes/)

### getPedClothes

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Identyczna z MTA:SA*

Zwraca, co postać ma na danej części ciała: teksturę, model i kolor (`"RRGGBB"`, listę stref albo `nil`).

#### Składnia

```lua
string, string, string getPedClothes(ped thePed, int|string clothesType)
```

#### Argumenty

- `thePed` (ped) - Postać.
- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.

#### Zwraca

Tekstura, model i kolor albo `false`, gdy nic tam nie ma.

#### Przykład

```lua
local texture, model = getPedClothes(player, "hat")
outputChatBox(texture and ("Czapka: " .. model) or "Bez czapki", player)
```

#### Zobacz też

- [`addPedClothes`](https://trilogy-hub.com/docs/addPedClothes/)
- [`getPlayerClothesAll`](https://trilogy-hub.com/docs/getPlayerClothesAll/)
- [`setPedClothes`](https://trilogy-hub.com/docs/setPedClothes/)
- [`removePedClothes`](https://trilogy-hub.com/docs/removePedClothes/)

### getPedTattooOffset

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca przesunięcie i skalę tatuażu z gniazda 1-9 (`0, 0, 0, 1`, gdy nie jest przesunięty).

#### Składnia

```lua
float, float, float, float getPedTattooOffset(ped thePed, int slot)
```

#### Argumenty

- `thePed` (ped) - Postać.
- `slot` (int) - Gniazdo 1-9.

#### Zwraca

x, y, z i skala.

#### Przykład

```lua
local x, y, z, scale = getPedTattooOffset(player, 5)
```

#### Zobacz też

- [`setPedTattooOffset`](https://trilogy-hub.com/docs/setPedTattooOffset/)
- [`resetPedTattooOffset`](https://trilogy-hub.com/docs/resetPedTattooOffset/)

### getPlayerClothesOffset

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca przesunięcie i skalę części wyglądu (`0, 0, 0, 1`, gdy nie jest przesunięta).

#### Składnia

```lua
float, float, float, float getPlayerClothesOffset(ped thePed, int|string clothesType)
```

#### Argumenty

- `thePed` (ped) - Postać.
- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.

#### Zwraca

x, y, z i skala.

#### Przykład

```lua
local x, y, z, scale = getPlayerClothesOffset(player, "hat")
```

#### Zobacz też

- [`setPlayerClothesOffset`](https://trilogy-hub.com/docs/setPlayerClothesOffset/)

### getPlayerWardrobe

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca strój gracza z garderoby launchera (skin -1), tylko do odczytu: tabelę część -> `{ texture, model, color, name }`. Pusta tabela = gracz wszedł bez stroju. Skrypty nie zmieniają tego stroju; ubierają osobną kopię CJ (skin 0).

#### Składnia

```lua
table getPlayerWardrobe(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Tabela stroju (może być pusta) albo `false`.

#### Przykład

```lua
local outfit = getPlayerWardrobe(player)
if next(outfit) == nil then
    outputChatBox("Nie masz stroju z garderoby.", player)
end
```

#### Zobacz też

- [`getPlayerClothesAll`](https://trilogy-hub.com/docs/getPlayerClothesAll/)
- [`setPlayerClothes`](https://trilogy-hub.com/docs/setPlayerClothes/)

### getTypeIndexFromClothes

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Identyczna z MTA:SA*

Zwraca rodzaj i numer ubrania po teksturze i modelu, z tabeli wgranej przez `setClothesData`.

#### Składnia

```lua
int, int getTypeIndexFromClothes(string clothesTexture [, string clothesModel])
```

#### Argumenty

- `clothesTexture` (string) - Tekstura.
- `clothesModel` (string, opcjonalny) - Model.

#### Zwraca

Rodzaj i numer albo `false`.

#### Przykład

```lua
local clothesType, index = getTypeIndexFromClothes("vestblack", "vest")
```

#### Zobacz też

- [`getClothesByTypeIndex`](https://trilogy-hub.com/docs/getClothesByTypeIndex/)
- [`setClothesData`](https://trilogy-hub.com/docs/setClothesData/)

### removePedClothes

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Identyczna z MTA:SA*

Zdejmuje postaci część ubioru. Z teksturą i modelem zdejmuje ją tylko wtedy, gdy postać ma na sobie dokładnie to ubranie.

#### Składnia

```lua
bool removePedClothes(ped thePed, int|string clothesType [, string clothesTexture, string clothesModel])
```

#### Argumenty

- `thePed` (ped) - Postać.
- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.
- `clothesTexture` (string, opcjonalny) - Tekstura, która musi pasować.
- `clothesModel` (string, opcjonalny) - Model, który musi pasować.

#### Zwraca

`true`, gdy ubranie zostało zdjęte.

#### Przykład

```lua
removePedClothes(player, 0, "vestblack", "vest")
```

#### Zobacz też

- [`addPedClothes`](https://trilogy-hub.com/docs/addPedClothes/)
- [`getPedClothes`](https://trilogy-hub.com/docs/getPedClothes/)
- [`setPedClothes`](https://trilogy-hub.com/docs/setPedClothes/)

### removePedTattoo

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Zdejmuje tatuaż z gniazda 1-9.

#### Składnia

```lua
bool removePedTattoo(ped thePed, int slot)
```

#### Argumenty

- `thePed` (ped) - Postać.
- `slot` (int) - Gniazdo 1-9.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
removePedTattoo(player, 1)
```

#### Zobacz też

- [`addPedTattoo`](https://trilogy-hub.com/docs/addPedTattoo/)
- [`clearPedTattoos`](https://trilogy-hub.com/docs/clearPedTattoos/)

### removePlayerClothes

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Zdejmuje graczowi część ubioru. Dodatki (czapka, okulary, tatuaż) znikają, a koszulka, spodnie i buty wracają do wyglądu początkowego, bo gra nie rysuje postaci bez nich.

#### Składnia

```lua
bool removePlayerClothes(player thePlayer, int|string clothesType)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
removePlayerClothes(player, "glasses")
```

#### Zobacz też

- [`setPlayerClothes`](https://trilogy-hub.com/docs/setPlayerClothes/)
- [`resetPlayerClothes`](https://trilogy-hub.com/docs/resetPlayerClothes/)
- [`getPlayerClothes`](https://trilogy-hub.com/docs/getPlayerClothes/)

### resetPedTattooOffset

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Wraca tatuażem z gniazda 1-9 na domyślne miejsce i rozmiar.

#### Składnia

```lua
bool resetPedTattooOffset(ped thePed, int slot)
```

#### Argumenty

- `thePed` (ped) - Postać.
- `slot` (int) - Gniazdo 1-9.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetPedTattooOffset(player, 5)
```

#### Zobacz też

- [`setPedTattooOffset`](https://trilogy-hub.com/docs/setPedTattooOffset/)
- [`getPedTattooOffset`](https://trilogy-hub.com/docs/getPedTattooOffset/)

### resetPlayerClothes

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Zdejmuje graczowi wszystko, co założyły skrypty (ubrania i tatuaże).

#### Składnia

```lua
bool resetPlayerClothes(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerWasted", root, function()
    resetPlayerClothes(source)
end)
```

#### Zobacz też

- [`removePlayerClothes`](https://trilogy-hub.com/docs/removePlayerClothes/)
- [`clearPedTattoos`](https://trilogy-hub.com/docs/clearPedTattoos/)
- [`getPlayerClothes`](https://trilogy-hub.com/docs/getPlayerClothes/)
- [`setPlayerClothes`](https://trilogy-hub.com/docs/setPlayerClothes/)

### setClothesData

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Wgrywa własną tabelę ubrań dla `getClothesByTypeIndex` i `getTypeIndexFromClothes`: rodzaj (jako napis `"0"`-`"17"`) -> lista `{ tekstura, model }`. Bez niej obie funkcje zwracają `false`.

#### Składnia

```lua
bool setClothesData(table data)
```

#### Argumenty

- `data` (table) - Tabela ubrań.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setClothesData({
    ["0"] = { { "vestblack", "vest" }, { "vestwhite", "vest" } },
})
local texture, model = getClothesByTypeIndex(0, 1) -- vestwhite, vest
```

#### Zobacz też

- [`getClothesByTypeIndex`](https://trilogy-hub.com/docs/getClothesByTypeIndex/)
- [`getTypeIndexFromClothes`](https://trilogy-hub.com/docs/getTypeIndexFromClothes/)

### setPedClothes

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Inna nazwa `setPlayerClothes`: zakłada część ubioru, z tymi samymi argumentami.

#### Składnia

```lua
bool setPedClothes(ped thePed, string clothesTexture, string clothesModel, int|string clothesType [, string color])
```

#### Argumenty

- `thePed` (ped) - Postać.
- `clothesTexture` (string) - Nazwa tekstury.
- `clothesModel` (string) - Nazwa modelu.
- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.
- `color` (string, opcjonalny) - Kolor `"RRGGBB"` albo lista stref.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPedClothes(player, "vestblack", "vest", 0)
```

#### Zobacz też

- [`setPlayerClothes`](https://trilogy-hub.com/docs/setPlayerClothes/)
- [`addPedClothes`](https://trilogy-hub.com/docs/addPedClothes/)
- [`getPedClothes`](https://trilogy-hub.com/docs/getPedClothes/)
- [`removePedClothes`](https://trilogy-hub.com/docs/removePedClothes/)

### setPedTattooOffset

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Przesuwa i skaluje tatuaż w gnieździe 1-9 (przesunięcie w centymetrach gry). Widzą to wszyscy gracze.

#### Składnia

```lua
bool setPedTattooOffset(ped thePed, int slot, float x, float y, float z [, float scale = 1])
```

#### Argumenty

- `thePed` (ped) - Postać.
- `slot` (int) - Gniazdo 1-9.
- `x` (float) - Przesunięcie w bok.
- `y` (float) - Przesunięcie w przód.
- `z` (float) - Przesunięcie w górę.
- `scale` (float, opcjonalny = 1) - Skala.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addPedTattoo(player, 5, "8sa")
setPedTattooOffset(player, 5, 0, 0, 4, 1.2)
```

#### Zobacz też

- [`getPedTattooOffset`](https://trilogy-hub.com/docs/getPedTattooOffset/)
- [`resetPedTattooOffset`](https://trilogy-hub.com/docs/resetPedTattooOffset/)

### setPlayerClothes

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Zakłada graczowi część ubioru; to samo co `addPedClothes`, z kolejnością argumentów: tekstura, model, część. Piąty argument to kolor `"RRGGBB"` albo lista stref. Gracz musi mieć skin CJ (0); strój z garderoby launchera (skin -1) zmieniasz na kopii CJ, która wraca po zmianie skina.

#### Składnia

```lua
bool setPlayerClothes(player thePlayer, string clothesTexture, string clothesModel, int|string clothesType [, string color])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `clothesTexture` (string) - Nazwa tekstury.
- `clothesModel` (string) - Nazwa modelu.
- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.
- `color` (string, opcjonalny) - Kolor `"RRGGBB"` albo lista stref.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerClothes(player, "vestblack", "vest", "shirt")
```

#### Zobacz też

- [`getPlayerClothes`](https://trilogy-hub.com/docs/getPlayerClothes/)
- [`removePlayerClothes`](https://trilogy-hub.com/docs/removePlayerClothes/)
- [`addPedClothes`](https://trilogy-hub.com/docs/addPedClothes/)
- [`resetPlayerClothes`](https://trilogy-hub.com/docs/resetPlayerClothes/)

### setPlayerClothesOffset

*Funkcja · Strona: Serwer · Kategoria: Ubrania · Tylko Trilogy Hub*

Przesuwa i skaluje część wyglądu (np. czapkę albo tatuaż) w centymetrach gry. Widzą to wszyscy gracze.

#### Składnia

```lua
bool setPlayerClothesOffset(ped thePed, int|string clothesType, float x, float y, float z [, float scale = 1])
```

#### Argumenty

- `thePed` (ped) - Postać.
- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.
- `x` (float) - Przesunięcie w bok.
- `y` (float) - Przesunięcie w przód.
- `z` (float) - Przesunięcie w górę.
- `scale` (float, opcjonalny = 1) - Skala.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerClothesOffset(player, "hat", 0, 0, 2, 1.1)
```

#### Zobacz też

- [`getPlayerClothesOffset`](https://trilogy-hub.com/docs/getPlayerClothesOffset/)
- [`setPedTattooOffset`](https://trilogy-hub.com/docs/setPedTattooOffset/)

### aclCreate

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Tworzy listę uprawnień (ACL) o podanej nazwie. Lista zawiera prawa, a grupy łączą listy z graczami i zasobami. Zmiany zapisuje `aclSave`.

#### Składnia

```lua
acl aclCreate(string aclName)
```

#### Argumenty

- `aclName` (string) - Nazwa listy.

#### Zwraca

Lista (jej nazwa) albo `false`.

#### Przykład

Grupa moderatorów z prawem do komendy `/kick`.

```lua
local acl = aclCreate("Moderator")
aclSetRight(acl, "command.kick", true)
aclSetRight(acl, "command.ban", false)

local group = aclCreateGroup("Moderatorzy")
aclGroupAddACL(group, acl)
aclGroupAddObject(group, "user.jan")
aclSave()
```

#### Zobacz też

- [`aclSetRight`](https://trilogy-hub.com/docs/aclSetRight/)
- [`aclCreateGroup`](https://trilogy-hub.com/docs/aclCreateGroup/)
- [`aclGroupAddACL`](https://trilogy-hub.com/docs/aclGroupAddACL/)
- [`aclSave`](https://trilogy-hub.com/docs/aclSave/)

### aclCreateGroup

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Tworzy grupę uprawnień. Do grupy dopisujesz listy (`aclGroupAddACL`) i obiekty (`aclGroupAddObject`).

#### Składnia

```lua
aclgroup aclCreateGroup(string groupName)
```

#### Argumenty

- `groupName` (string) - Nazwa grupy.

#### Zwraca

Grupa (jej nazwa) albo `false`.

#### Przykład

```lua
local vip = aclCreateGroup("VIP")
aclGroupAddACL(vip, aclCreate("VIP"))
```

### aclDestroy

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Usuwa listę uprawnień i odłącza ją od grup.

#### Składnia

```lua
bool aclDestroy(acl theACL)
```

#### Argumenty

- `theACL` (acl) - Lista.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
aclDestroy(aclGet("Stara"))
aclSave()
```

### aclDestroyGroup

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Usuwa grupę uprawnień.

#### Składnia

```lua
bool aclDestroyGroup(aclgroup aclGroup)
```

#### Argumenty

- `aclGroup` (aclgroup) - Grupa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
aclDestroyGroup(aclGetGroup("Testerzy"))
```

### aclGet

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Zwraca listę uprawnień o podanej nazwie.

#### Składnia

```lua
acl aclGet(string aclName)
```

#### Argumenty

- `aclName` (string) - Nazwa.

#### Zwraca

Lista albo `false`.

#### Przykład

```lua
local acl = aclGet("Moderator") or aclCreate("Moderator")
```

### aclGetGroup

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Zwraca grupę o podanej nazwie.

#### Składnia

```lua
aclgroup aclGetGroup(string groupName)
```

#### Argumenty

- `groupName` (string) - Nazwa.

#### Zwraca

Grupa albo `false`.

#### Przykład

```lua
local group = aclGetGroup("VIP") or aclCreateGroup("VIP")
```

### aclGetName

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Zwraca nazwę listy uprawnień.

#### Składnia

```lua
string aclGetName(acl theAcl)
```

#### Argumenty

- `theAcl` (acl) - Lista.

#### Zwraca

Nazwa.

#### Przykład

```lua
for _, acl in ipairs(aclList()) do
    outputServerLog(aclGetName(acl))
end
```

### aclGetRight

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Sprawdza, czy lista przyznaje prawo. Zwraca `false` także wtedy, gdy wpisu nie ma.

#### Składnia

```lua
bool aclGetRight(acl theAcl, string rightName)
```

#### Argumenty

- `theAcl` (acl) - Lista.
- `rightName` (string) - Nazwa prawa.

#### Zwraca

`true`, jeśli przyznaje.

#### Przykład

```lua
if aclGetRight(aclGet("Moderator"), "command.kick") then
    outputServerLog("Moderatorzy mogą wyrzucać")
end
```

### aclGroupAddACL

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Dopisuje listę uprawnień do grupy.

#### Składnia

```lua
bool aclGroupAddACL(aclgroup theGroup, acl theACL)
```

#### Argumenty

- `theGroup` (aclgroup) - Grupa.
- `theACL` (acl) - Lista.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
aclGroupAddACL(aclGetGroup("VIP"), aclGet("VIP"))
```

### aclGroupAddObject

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Dodaje obiekt do grupy: napis `"user.nazwakonta"`, `"resource.nazwazasobu"`, gracza albo zasób.

#### Składnia

```lua
bool aclGroupAddObject(aclgroup theGroup, mixed theObjectName)
```

#### Argumenty

- `theGroup` (aclgroup) - Grupa.
- `theObjectName` (mixed) - Obiekt.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("dajvip", function(admin, cmd, accountName)
    if not isObjectInACLGroup(admin, "Admin") then return end
    aclGroupAddObject(aclGetGroup("VIP"), "user." .. accountName)
    aclSave()
end)
```

### aclGroupGetName

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Zwraca nazwę grupy.

#### Składnia

```lua
string aclGroupGetName(aclgroup aclGroup)
```

#### Argumenty

- `aclGroup` (aclgroup) - Grupa.

#### Zwraca

Nazwa.

#### Przykład

```lua
for _, g in ipairs(aclGroupList()) do
    outputServerLog(aclGroupGetName(g))
end
```

### aclGroupList

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Zmodyfikowana względem MTA:SA*

Zwraca wszystkie grupy uprawnień.

#### Składnia

```lua
table aclGroupList()
```

#### Zwraca

Tablica grup.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `aclGroupList()`

#### Przykład

```lua
outputServerLog("Grupy: " .. table.concat(aclGroupList(), ", "))
```

### aclGroupListACL

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Zwraca listy uprawnień należące do grupy.

#### Składnia

```lua
table aclGroupListACL(aclgroup theGroup)
```

#### Argumenty

- `theGroup` (aclgroup) - Grupa.

#### Zwraca

Tablica list.

#### Przykład

```lua
outputServerLog(table.concat(aclGroupListACL(aclGetGroup("VIP")), ", "))
```

### aclGroupListObjects

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Zwraca obiekty należące do grupy (np. `"user.jan"`).

#### Składnia

```lua
table aclGroupListObjects(aclgroup theGroup)
```

#### Argumenty

- `theGroup` (aclgroup) - Grupa.

#### Zwraca

Tablica nazw obiektów.

#### Przykład

```lua
for _, obj in ipairs(aclGroupListObjects(aclGetGroup("VIP"))) do
    outputServerLog(obj)
end
```

### aclGroupRemoveACL

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Odłącza listę uprawnień od grupy.

#### Składnia

```lua
bool aclGroupRemoveACL(aclgroup theGroup, acl theACL)
```

#### Argumenty

- `theGroup` (aclgroup) - Grupa.
- `theACL` (acl) - Lista.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
aclGroupRemoveACL(aclGetGroup("VIP"), aclGet("Stara"))
```

### aclGroupRemoveObject

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Usuwa obiekt z grupy.

#### Składnia

```lua
bool aclGroupRemoveObject(aclgroup theGroup, mixed theObjectString)
```

#### Argumenty

- `theGroup` (aclgroup) - Grupa.
- `theObjectString` (mixed) - Obiekt.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
aclGroupRemoveObject(aclGetGroup("VIP"), "user.jan")
aclSave()
```

### aclHasUnsavedChanges

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Tylko Trilogy Hub*

Sprawdza, czy są zmiany ACL jeszcze niezapisane na dysk.

#### Składnia

```lua
bool aclHasUnsavedChanges()
```

#### Zwraca

`true`, jeśli są.

#### Przykład

```lua
if aclHasUnsavedChanges() then
    outputServerLog("Uwaga: ACL nie jest zapisane")
end
```

### aclList

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Zmodyfikowana względem MTA:SA*

Zwraca wszystkie listy uprawnień.

#### Składnia

```lua
table aclList()
```

#### Zwraca

Tablica list.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `aclList()`

#### Przykład

```lua
outputServerLog("Listy ACL: " .. table.concat(aclList(), ", "))
```

### aclListRights

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Zwraca prawa z listy, opcjonalnie tylko jednego rodzaju.

#### Składnia

```lua
table aclListRights(acl theACL [, string allowedType = nil])
```

#### Argumenty

- `theACL` (acl) - Lista.
- `allowedType` (string, opcjonalny = nil) - `"function"`, `"command"`, `"resource"` albo `"general"`.

#### Zwraca

Tablica nazw praw.

#### Przykład

```lua
for _, right in ipairs(aclListRights(aclGet("Moderator"), "command")) do
    outputServerLog(right)
end
```

### aclObjectGetGroups

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Zwraca grupy, do których należy obiekt (gracz, konto albo zasób).

#### Składnia

```lua
table aclObjectGetGroups(mixed theObject)
```

#### Argumenty

- `theObject` (mixed) - Obiekt.

#### Zwraca

Tablica grup.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function()
    outputChatBox("Twoje grupy: " .. table.concat(aclObjectGetGroups(source), ", "), source)
end)
```

### aclReload

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Zmodyfikowana względem MTA:SA*

Wczytuje ACL z dysku od nowa, porzucając niezapisane zmiany.

#### Składnia

```lua
bool aclReload()
```

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `aclReload()`

#### Przykład

```lua
addCommandHandler("aclreload", function(player)
    if isObjectInACLGroup(player, aclGetGroup("Admin")) then aclReload() end
end)
```

### aclRemoveRight

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Usuwa wpis prawa z listy.

#### Składnia

```lua
bool aclRemoveRight(acl theAcl, string rightName)
```

#### Argumenty

- `theAcl` (acl) - Lista.
- `rightName` (string) - Nazwa prawa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
aclRemoveRight(aclGet("Moderator"), "command.ban")
```

### aclSave

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Zmodyfikowana względem MTA:SA*

Zapisuje ACL do pliku `acl.json` w folderze serwera.

#### Składnia

```lua
bool aclSave()
```

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `aclSave()`

#### Przykład

```lua
addEventHandler("onResourceStop", resourceRoot, function()
    if aclHasUnsavedChanges() then aclSave() end
end)
```

#### Zobacz też

- [`aclReload`](https://trilogy-hub.com/docs/aclReload/)
- [`aclHasUnsavedChanges`](https://trilogy-hub.com/docs/aclHasUnsavedChanges/)

### aclSetRight

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Zmodyfikowana względem MTA:SA*

Ustawia prawo na liście. Nazwy praw: `"command.nazwa"`, `"function.nazwa"`, `"resource.nazwa"` albo własne (`"general.nazwa"`). Czwarty argument ustawia wygaśnięcie.

#### Składnia

```lua
bool aclSetRight(acl theAcl, string rightName, bool hasAccess [, int expiresInMs = nil])
```

#### Argumenty

- `theAcl` (acl) - Lista.
- `rightName` (string) - Nazwa prawa.
- `hasAccess` (bool) - `true` pozwala, `false` zabrania.
- `expiresInMs` (int, opcjonalny = nil) - Po ilu milisekundach prawo wygasa.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `aclSetRight(acl theAcl, string rightName, bool hasAccess)`

#### Przykład

```lua
aclSetRight(aclGet("VIP"), "general.vip_garage", true, 30 * 24 * 60 * 60 * 1000)
```

#### Zobacz też

- [`aclGetRight`](https://trilogy-hub.com/docs/aclGetRight/)
- [`aclRemoveRight`](https://trilogy-hub.com/docs/aclRemoveRight/)
- [`hasObjectPermissionTo`](https://trilogy-hub.com/docs/hasObjectPermissionTo/)

### hasObjectPermissionTo

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Sprawdza, czy obiekt ma prawo. Najpierw patrzy na listy ACL z grup obiektu; gdy żadna nie ma wpisu, decydują poziomy z `admins.xml`, a na końcu wartość domyślna.

#### Składnia

```lua
bool hasObjectPermissionTo(mixed theObject, string theAction [, bool defaultPermission = true])
```

#### Argumenty

- `theObject` (mixed) - Gracz, zasób albo napis `"user.nazwa"`.
- `theAction` (string) - Nazwa prawa, np. `"command.kick"`.
- `defaultPermission` (bool, opcjonalny = true) - Wynik, gdy nigdzie nie ma wpisu.

#### Zwraca

`true`, jeśli ma prawo.

#### Przykład

```lua
addCommandHandler("kick", function(player, cmd, name, ...)
    if not hasObjectPermissionTo(player, "command.kick", false) then
        outputChatBox("Brak uprawnień.", player, 255, 0, 0)
        return
    end
    local target = name and getPlayerFromName(name)
    if target then kickPlayer(target, player, table.concat({ ... }, " ")) end
end)
```

#### Zobacz też

- [`aclSetRight`](https://trilogy-hub.com/docs/aclSetRight/)
- [`getPlayerAdminLevel`](https://trilogy-hub.com/docs/getPlayerAdminLevel/)

### isObjectInACLGroup

*Funkcja · Strona: Serwer · Kategoria: Uprawnienia (ACL) · Identyczna z MTA:SA*

Sprawdza, czy obiekt należy do grupy uprawnień (utworzonej skryptem albo z poziomów `admins.xml`).

#### Składnia

```lua
bool isObjectInACLGroup(mixed theObject, aclgroup theGroup)
```

#### Argumenty

- `theObject` (mixed) - Gracz, zasób albo napis `"user.nazwa"`.
- `theGroup` (aclgroup) - Grupa.

#### Zwraca

`true`, jeśli należy.

#### Przykład

```lua
addCommandHandler("heal", function(player, cmd, name)
    if not isObjectInACLGroup(player, aclGetGroup("Admin")) then
        outputChatBox("Brak uprawnień.", player, 255, 0, 0)
        return
    end
    local target = getPlayerFromName(name or "") or player
    setElementHealth(target, 100)
end)
```

#### Zobacz też

- [`hasObjectPermissionTo`](https://trilogy-hub.com/docs/hasObjectPermissionTo/)

### getBoundKeys

*Funkcja · Strona: Serwer · Kategoria: Wejście i sterowanie · Zmodyfikowana względem MTA:SA*

Zwraca klawisze, które gracz ma podpięte do komend (`bindKey` z nazwą komendy), jako tabelę klawisz -> komenda.

#### Składnia

```lua
table getBoundKeys(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Tabela `{ [klawisz] = komenda }` albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `getBoundKeys(string command/control)`

#### Przykład

```lua
for key, command in pairs(getBoundKeys(player)) do
    outputServerLog(key .. " -> /" .. command)
end
```

#### Zobacz też

- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)
- [`getCommandsBoundToKey`](https://trilogy-hub.com/docs/getCommandsBoundToKey/)

### getBuiltinCommands

*Funkcja · Strona: Serwer · Kategoria: Wejście i sterowanie · Tylko Trilogy Hub*

Zwraca wbudowane komendy serwera, czyli te, których nie dodaje żaden zasób (np. `me`, `pm`, `kick`). Z graczem zwraca tylko komendy, których ten gracz może użyć według `admins.xml`. Przydaje się we własnym czacie, który sam rozpoznaje komendy.

#### Składnia

```lua
table getBuiltinCommands([player thePlayer])
```

#### Argumenty

- `thePlayer` (player, opcjonalny) - Gracz, dla którego sprawdzić uprawnienia.

#### Zwraca

Posortowana tablica nazw komend albo `false` przy złym argumencie.

#### Przykład

Czat sprawdza, czy wpisana komenda istnieje, zanim ją przekaże dalej.

```lua
local function commandExists(player, name)
    name = name:lower()
    for _, c in ipairs(getCommandHandlers()) do
        if c == name then return true end
    end
    for _, c in ipairs(getBuiltinCommands(player)) do
        if c == name then return true end
    end
    return false
end
```

#### Zobacz też

- [`getCommandHandlers`](https://trilogy-hub.com/docs/getCommandHandlers/)
- [`executeCommandHandler`](https://trilogy-hub.com/docs/executeCommandHandler/)

### getCommandHandlers

*Funkcja · Strona: Serwer · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Zwraca nazwy komend zarejestrowanych przez zasób, a bez argumentu przez wszystkie zasoby.

#### Składnia

```lua
table getCommandHandlers([resource theResource])
```

#### Argumenty

- `theResource` (resource, opcjonalny) - Zasób.

#### Zwraca

Tablica nazw komend.

#### Przykład

```lua
addCommandHandler("komendy", function(player)
    local list = getCommandHandlers(getThisResource())
    outputChatBox("Komendy: /" .. table.concat(list, ", /"), player)
end)
```

#### Zobacz też

- [`addCommandHandler`](https://trilogy-hub.com/docs/addCommandHandler/)
- [`getBuiltinCommands`](https://trilogy-hub.com/docs/getBuiltinCommands/)

### getCommandsBoundToKey

*Funkcja · Strona: Serwer · Kategoria: Wejście i sterowanie · Zmodyfikowana względem MTA:SA*

Zwraca komendy podpięte u gracza pod klawisz.

#### Składnia

```lua
table getCommandsBoundToKey(player thePlayer, string key [, string keyState])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `key` (string) - Klawisz.
- `keyState` (string, opcjonalny) - `"down"`, `"up"`; bez niego oba stany.

#### Zwraca

Tablica nazw komend.

#### Różnice względem MTA:SA

- W MTA:SA: `getCommandsBoundToKey(string theKey, string keyState)`

#### Przykład

```lua
local list = getCommandsBoundToKey(player, "F1")
outputChatBox("F1: " .. table.concat(list, ", "), player)
```

#### Zobacz też

- [`getBoundKeys`](https://trilogy-hub.com/docs/getBoundKeys/)
- [`getKeyBoundToCommand`](https://trilogy-hub.com/docs/getKeyBoundToCommand/)

### getControlState

*Funkcja · Strona: Serwer · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Zwraca stan sterowania ustawiony przez `setControlState`.

#### Składnia

```lua
bool getControlState(player thePlayer, string control)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `control` (string) - Nazwa sterowania.

#### Zwraca

`true`, gdy sterowanie jest wciśnięte.

#### Przykład

```lua
if getControlState(player, "accelerate") then
    outputChatBox("Tempomat włączony", player)
end
```

#### Zobacz też

- [`setControlState`](https://trilogy-hub.com/docs/setControlState/)

### getKeyBoundToCommand

*Funkcja · Strona: Serwer · Kategoria: Wejście i sterowanie · Zmodyfikowana względem MTA:SA*

Zwraca pierwszy klawisz, który gracz ma podpięty do komendy.

#### Składnia

```lua
string getKeyBoundToCommand(player thePlayer, string command)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `command` (string) - Nazwa komendy.

#### Zwraca

Klawisz albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `getKeyBoundToCommand(string command)`

#### Przykład

```lua
local key = getKeyBoundToCommand(player, "menu")
outputChatBox("Menu otworzysz klawiszem " .. (key or "(brak)"), player)
```

#### Zobacz też

- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)
- [`getCommandsBoundToKey`](https://trilogy-hub.com/docs/getCommandsBoundToKey/)

### setControlState

*Funkcja · Strona: Serwer · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Wciska albo puszcza sterowanie gry za gracza, tak jakby trzymał klawisz (np. `accelerate` przyspiesza auto, `forwards` idzie do przodu). Stan trwa, dopóki go nie zmienisz.

#### Składnia

```lua
bool setControlState(player thePlayer, string control, bool state)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `control` (string) - Nazwa sterowania.
- `state` (bool) - `true` = wciśnięte, `false` = puszczone.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Komenda `/tempomat` trzyma gaz za gracza.

```lua
addCommandHandler("tempomat", function(player)
    setControlState(player, "accelerate", not getControlState(player, "accelerate"))
end)
```

#### Zobacz też

- [`getControlState`](https://trilogy-hub.com/docs/getControlState/)
- [`toggleControl`](https://trilogy-hub.com/docs/toggleControl/)

### textCreateDisplay

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Tworzy wyświetlacz tekstu, czyli zestaw napisów rysowanych na ekranie wybranych graczy, sterowany w całości z serwera (bez skryptu klienta). Do wyświetlacza dodaje się napisy (`textDisplayAddText`) i obserwatorów, czyli graczy, którzy go widzą (`textDisplayAddObserver`). Przydaje się do prostych komunikatów, liczników czasu i wyników.

#### Składnia

```lua
textdisplay textCreateDisplay()
```

#### Zwraca

Nowy wyświetlacz.

#### Przykład

```lua
local display = textCreateDisplay()
local label = textCreateTextItem("Wyscig startuje za 10 s", 0.5, 0.3, "medium", 255, 200, 0, 255, 2, "center", "center")
textDisplayAddText(display, label)
for _, player in ipairs(getElementsByType("player")) do textDisplayAddObserver(display, player) end
```

#### Zobacz też

- [`textCreateTextItem`](https://trilogy-hub.com/docs/textCreateTextItem/)
- [`textDisplayAddText`](https://trilogy-hub.com/docs/textDisplayAddText/)
- [`textDisplayAddObserver`](https://trilogy-hub.com/docs/textDisplayAddObserver/)

### textCreateTextItem

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Tworzy napis do wyświetlacza tekstu. Pozycja jest względna wobec ekranu: 0 = lewa/górna krawędź, 1 = prawa/dolna, więc napis wygląda tak samo w każdej rozdzielczości. Napis pojawi się dopiero po dodaniu do wyświetlacza.

#### Składnia

```lua
textitem textCreateTextItem(string text, float x, float y [, string priority = "medium", int r = 255, int g = 255, int b = 255, int a = 255, float scale = 1, string alignX = "left", string alignY = "top", int shadowAlpha = 0])
```

#### Argumenty

- `text` (string) - Treść napisu.
- `x` (float) - Pozycja X od 0 do 1.
- `y` (float) - Pozycja Y od 0 do 1.
- `priority` (string, opcjonalny = "medium") - `"low"`, `"medium"` albo `"high"` - jak szybko zmiany docierają do graczy.
- `r` (int, opcjonalny = 255) - Czerwony.
- `g` (int, opcjonalny = 255) - Zielony.
- `b` (int, opcjonalny = 255) - Niebieski.
- `a` (int, opcjonalny = 255) - Krycie.
- `scale` (float, opcjonalny = 1) - Skala tekstu.
- `alignX` (string, opcjonalny = "left") - `"left"`, `"center"` albo `"right"`.
- `alignY` (string, opcjonalny = "top") - `"top"`, `"center"` albo `"bottom"`.
- `shadowAlpha` (int, opcjonalny = 0) - Krycie cienia (zgodność ze starszymi skryptami).

#### Zwraca

Nowy napis.

#### Przykład

```lua
local display = textCreateDisplay()
local timer = textCreateTextItem("60", 0.95, 0.05, "high", 255, 255, 255, 255, 2, "right")
textDisplayAddText(display, timer)
```

#### Zobacz też

- [`textDisplayAddText`](https://trilogy-hub.com/docs/textDisplayAddText/)
- [`textItemSetText`](https://trilogy-hub.com/docs/textItemSetText/)

### textDestroyDisplay

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Usuwa wyświetlacz tekstu; znika z ekranów wszystkich obserwatorów.

#### Składnia

```lua
bool textDestroyDisplay(textdisplay display)
```

#### Argumenty

- `display` (textdisplay) - Wyświetlacz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local display = textCreateDisplay()
setTimer(function() textDestroyDisplay(display) end, 10000, 1)
```

#### Zobacz też

- [`textCreateDisplay`](https://trilogy-hub.com/docs/textCreateDisplay/)

### textDestroyTextItem

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Usuwa napis (także ze wszystkich wyświetlaczy).

#### Składnia

```lua
bool textDestroyTextItem(textitem theTextitem)
```

#### Argumenty

- `theTextitem` (textitem) - Napis.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local item = textCreateTextItem("Tymczasowy", 0.5, 0.5)
textDestroyTextItem(item)
```

#### Zobacz też

- [`textCreateTextItem`](https://trilogy-hub.com/docs/textCreateTextItem/)

### textDisplayAddObserver

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Pokazuje wyświetlacz graczowi (dodaje go do obserwatorów).

#### Składnia

```lua
bool textDisplayAddObserver(textdisplay display, player playerToAdd)
```

#### Argumenty

- `display` (textdisplay) - Wyświetlacz.
- `playerToAdd` (player) - Gracz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local display = textCreateDisplay()
textDisplayAddText(display, textCreateTextItem("Tryb admina", 0.02, 0.95))
addEventHandler("onPlayerLogin", root, function()
    if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup("Admin")) then
        textDisplayAddObserver(display, source)
    end
end)
```

#### Zobacz też

- [`textDisplayRemoveObserver`](https://trilogy-hub.com/docs/textDisplayRemoveObserver/)

### textDisplayAddText

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Dodaje napis do wyświetlacza; zobaczą go wszyscy obserwatorzy wyświetlacza.

#### Składnia

```lua
bool textDisplayAddText(textdisplay display, textitem text)
```

#### Argumenty

- `display` (textdisplay) - Wyświetlacz.
- `text` (textitem) - Napis.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local display = textCreateDisplay()
textDisplayAddText(display, textCreateTextItem("Witaj", 0.5, 0.1, "low", 255, 255, 255, 255, 1.5, "center"))
```

#### Zobacz też

- [`textDisplayRemoveText`](https://trilogy-hub.com/docs/textDisplayRemoveText/)

### textDisplayGetObservers

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zwraca graczy, którzy widzą wyświetlacz.

#### Składnia

```lua
table textDisplayGetObservers(textdisplay theDisplay)
```

#### Argumenty

- `theDisplay` (textdisplay) - Wyświetlacz.

#### Zwraca

Tablica graczy.

#### Przykład

```lua
local display = textCreateDisplay()
outputDebugString("Widzow: " .. #textDisplayGetObservers(display))
```

#### Zobacz też

- [`textDisplayAddObserver`](https://trilogy-hub.com/docs/textDisplayAddObserver/)

### textDisplayIsObserver

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Sprawdza, czy gracz widzi wyświetlacz.

#### Składnia

```lua
bool textDisplayIsObserver(textdisplay display, player thePlayer)
```

#### Argumenty

- `display` (textdisplay) - Wyświetlacz.
- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, gdy widzi.

#### Przykład

```lua
local display = textCreateDisplay()
addCommandHandler("hud", function(player)
    if textDisplayIsObserver(display, player) then textDisplayRemoveObserver(display, player)
    else textDisplayAddObserver(display, player) end
end)
```

#### Zobacz też

- [`textDisplayAddObserver`](https://trilogy-hub.com/docs/textDisplayAddObserver/)

### textDisplayRemoveObserver

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Chowa wyświetlacz przed graczem.

#### Składnia

```lua
bool textDisplayRemoveObserver(textdisplay display, player playerToRemove)
```

#### Argumenty

- `display` (textdisplay) - Wyświetlacz.
- `playerToRemove` (player) - Gracz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local display = textCreateDisplay()
addEventHandler("onPlayerWasted", root, function()
    textDisplayRemoveObserver(display, source)
end)
```

#### Zobacz też

- [`textDisplayAddObserver`](https://trilogy-hub.com/docs/textDisplayAddObserver/)

### textDisplayRemoveText

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zdejmuje napis z wyświetlacza (napis dalej istnieje i można go dodać ponownie).

#### Składnia

```lua
bool textDisplayRemoveText(textdisplay display, textitem text)
```

#### Argumenty

- `display` (textdisplay) - Wyświetlacz.
- `text` (textitem) - Napis.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local display = textCreateDisplay()
local hint = textCreateTextItem("Podpowiedz", 0.5, 0.9)
textDisplayAddText(display, hint)
setTimer(function() textDisplayRemoveText(display, hint) end, 5000, 1)
```

#### Zobacz też

- [`textDisplayAddText`](https://trilogy-hub.com/docs/textDisplayAddText/)

### textItemGetColor

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zwraca kolor napisu.

#### Składnia

```lua
int, int, int, int textItemGetColor(textitem theTextItem)
```

#### Argumenty

- `theTextItem` (textitem) - Napis.

#### Zwraca

r, g, b, a.

#### Przykład

```lua
local item = textCreateTextItem("A", 0.5, 0.5, "low", 255, 0, 0)
local r, g, b, a = textItemGetColor(item)
```

#### Zobacz też

- [`textItemSetColor`](https://trilogy-hub.com/docs/textItemSetColor/)

### textItemGetPosition

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zwraca pozycję napisu (0-1 względem ekranu).

#### Składnia

```lua
float, float textItemGetPosition(textitem theTextItem)
```

#### Argumenty

- `theTextItem` (textitem) - Napis.

#### Zwraca

x, y.

#### Przykład

```lua
local item = textCreateTextItem("A", 0.25, 0.75)
local x, y = textItemGetPosition(item)
```

#### Zobacz też

- [`textItemSetPosition`](https://trilogy-hub.com/docs/textItemSetPosition/)

### textItemGetPriority

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zwraca priorytet napisu (`"low"`, `"medium"`, `"high"`).

#### Składnia

```lua
string textItemGetPriority(textitem textitem)
```

#### Argumenty

- `textitem` (textitem) - Napis.

#### Zwraca

Priorytet.

#### Przykład

```lua
local item = textCreateTextItem("A", 0.5, 0.5, "high")
outputDebugString(textItemGetPriority(item))
```

#### Zobacz też

- [`textItemSetPriority`](https://trilogy-hub.com/docs/textItemSetPriority/)

### textItemGetScale

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zwraca skalę napisu.

#### Składnia

```lua
float textItemGetScale(textitem theTextitem)
```

#### Argumenty

- `theTextitem` (textitem) - Napis.

#### Zwraca

Skala.

#### Przykład

```lua
local item = textCreateTextItem("A", 0.5, 0.5, "low", 255, 255, 255, 255, 2)
outputDebugString(textItemGetScale(item))
```

#### Zobacz też

- [`textItemSetScale`](https://trilogy-hub.com/docs/textItemSetScale/)

### textItemGetText

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zwraca treść napisu.

#### Składnia

```lua
string textItemGetText(textitem theTextitem)
```

#### Argumenty

- `theTextitem` (textitem) - Napis.

#### Zwraca

Treść.

#### Przykład

```lua
local item = textCreateTextItem("Punkty: 0", 0.1, 0.1)
outputDebugString(textItemGetText(item))
```

#### Zobacz też

- [`textItemSetText`](https://trilogy-hub.com/docs/textItemSetText/)

### textItemSetColor

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zmienia kolor napisu.

#### Składnia

```lua
bool textItemSetColor(textitem theTextItem, int r, int g, int b [, int a = 255])
```

#### Argumenty

- `theTextItem` (textitem) - Napis.
- `r` (int) - Czerwony.
- `g` (int) - Zielony.
- `b` (int) - Niebieski.
- `a` (int, opcjonalny = 255) - Krycie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local item = textCreateTextItem("Uwaga", 0.5, 0.5)
textItemSetColor(item, 255, 0, 0, 255)
```

#### Zobacz też

- [`textItemGetColor`](https://trilogy-hub.com/docs/textItemGetColor/)

### textItemSetPosition

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Przesuwa napis (pozycja 0-1 względem ekranu).

#### Składnia

```lua
bool textItemSetPosition(textitem theTextItem, float x, float y)
```

#### Argumenty

- `theTextItem` (textitem) - Napis.
- `x` (float) - X od 0 do 1.
- `y` (float) - Y od 0 do 1.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local item = textCreateTextItem("Info", 0.5, 0.5)
textItemSetPosition(item, 0.5, 0.2)
```

#### Zobacz też

- [`textItemGetPosition`](https://trilogy-hub.com/docs/textItemGetPosition/)

### textItemSetPriority

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zmienia priorytet napisu: `"high"` dla szybko zmieniających się napisów (liczniki), `"low"` dla stałych.

#### Składnia

```lua
bool textItemSetPriority(textitem theTextItem, string priority)
```

#### Argumenty

- `theTextItem` (textitem) - Napis.
- `priority` (string) - `"low"`, `"medium"` albo `"high"`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local item = textCreateTextItem("0", 0.5, 0.5)
textItemSetPriority(item, "high")
```

#### Zobacz też

- [`textItemGetPriority`](https://trilogy-hub.com/docs/textItemGetPriority/)

### textItemSetScale

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zmienia skalę (wielkość) napisu.

#### Składnia

```lua
bool textItemSetScale(textitem theTextitem, float scale)
```

#### Argumenty

- `theTextitem` (textitem) - Napis.
- `scale` (float) - Nowa skala (1 = normalna).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local item = textCreateTextItem("WYGRANA", 0.5, 0.5)
textItemSetScale(item, 3)
```

#### Zobacz też

- [`textItemGetScale`](https://trilogy-hub.com/docs/textItemGetScale/)

### textItemSetText

*Funkcja · Strona: Serwer · Kategoria: Wyświetlacze tekstu · Identyczna z MTA:SA*

Zmienia treść napisu u wszystkich obserwatorów (np. odliczanie).

#### Składnia

```lua
bool textItemSetText(textitem theTextitem, string text)
```

#### Argumenty

- `theTextitem` (textitem) - Napis.
- `text` (string) - Nowa treść.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local display = textCreateDisplay()
local item = textCreateTextItem("10", 0.5, 0.4, "high", 255, 255, 255, 255, 3, "center", "center")
textDisplayAddText(display, item)
local left = 10
setTimer(function()
    left = left - 1
    textItemSetText(item, left > 0 and tostring(left) or "START!")
end, 1000, 10)
```

#### Zobacz też

- [`textItemGetText`](https://trilogy-hub.com/docs/textItemGetText/)

### abortRemoteRequest

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Przerywa trwające zapytanie HTTP. W obecnej wersji serwera nie da się go jeszcze przerwać: funkcja zwraca `false` z ostrzeżeniem, a zapytanie kończy się samo po czasie z `fetchRemote`.

#### Składnia

```lua
bool abortRemoteRequest(request theRequest)
```

#### Argumenty

- `theRequest` (request) - Zapytanie.

#### Zwraca

Obecnie `false`.

#### Przykład

```lua
for _, request in ipairs(getRemoteRequests()) do
    abortRemoteRequest(request)
end
```

#### Zobacz też

- [`fetchRemote`](https://trilogy-hub.com/docs/fetchRemote/)
- [`getRemoteRequests`](https://trilogy-hub.com/docs/getRemoteRequests/)

### addResourceConfig

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Dopisuje plik konfiguracyjny (`<config src type>`) do `meta.xml` zasobu – własnego albo utworzonego przez ten skrypt funkcją `createResource`. Ten sam plik dopisany drugi raz niczego nie zmienia.

#### Składnia

```lua
bool addResourceConfig(resource theResource, string filePath [, string fileType = "server"])
```

#### Argumenty

- `theResource` (resource) - Zasób.
- `filePath` (string) - Ścieżka pliku.
- `fileType` (string, opcjonalny = "server") - `"server"` albo `"client"`.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `addResourceConfig(string filePath, string filetype = "server")`

#### Przykład

```lua
addResourceConfig(getThisResource(), "ustawienia.xml", "server")
```

#### Zobacz też

- [`getResourceConfig`](https://trilogy-hub.com/docs/getResourceConfig/)
- [`addResourceMap`](https://trilogy-hub.com/docs/addResourceMap/)

### addResourceMap

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Dopisuje plik mapy (`<map src dimension>`) do `meta.xml` zasobu – własnego albo utworzonego przez ten skrypt funkcją `createResource`. Mapa wczytuje się przy następnym starcie zasobu.

#### Składnia

```lua
bool addResourceMap(resource theResource, string filePath [, int dimension = 0])
```

#### Argumenty

- `theResource` (resource) - Zasób.
- `filePath` (string) - Ścieżka pliku `.map`.
- `dimension` (int, opcjonalny = 0) - Wymiar, w którym ma się pojawić mapa.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `addResourceMap(string filePath, int dimension = 0)`

#### Przykład

```lua
addResourceMap(getThisResource(), "nowa.map", 0)
```

#### Zobacz też

- [`addResourceConfig`](https://trilogy-hub.com/docs/addResourceConfig/)
- [`getResourceMapRootElement`](https://trilogy-hub.com/docs/getResourceMapRootElement/)

### callRemote

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Wywołuje funkcję udostępnioną przez inny serwer przez HTTP (argumenty idą jako JSON w zapytaniu POST). W obecnej wersji serwera funkcja nie wysyła zapytania i zwraca `false`; zamiast niej użyj `fetchRemote` z `toJSON`.

#### Składnia

```lua
bool callRemote(string url [, any ...])
```

#### Argumenty

- `url` (string) - Adres.
- `...` (any, opcjonalny) - Argumenty i funkcja zwrotna `function(result, errno)`.

#### Zwraca

Obecnie `false`.

#### Przykład

```lua
fetchRemote("https://example.com/api/ranking", function(data, errno)
    if errno == 0 then outputServerLog(data) end
end, toJSON({ player = "Jan", score = 120 }))
```

#### Zobacz też

- [`fetchRemote`](https://trilogy-hub.com/docs/fetchRemote/)
- [`toJSON`](https://trilogy-hub.com/docs/toJSON/)

### copyResource

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Kopiuje zasób pod nową nazwą. W obecnej wersji serwera funkcja nie jest jeszcze podłączona i zwraca `false` z ostrzeżeniem.

#### Składnia

```lua
resource copyResource(resource theResource, string newResourceName [, string organizationalPath])
```

#### Argumenty

- `theResource` (resource) - Zasób do skopiowania.
- `newResourceName` (string) - Nowa nazwa.
- `organizationalPath` (string, opcjonalny) - Podfolder.

#### Zwraca

Kopia albo `false`.

#### Przykład

```lua
copyResource(getResourceFromName("race"), "race_kopia")
```

#### Zobacz też

- [`createResource`](https://trilogy-hub.com/docs/createResource/)
- [`renameResource`](https://trilogy-hub.com/docs/renameResource/)

### createResource

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Tworzy nowy, pusty zasób (folder z `meta.xml`) w `resources/`, opcjonalnie w kategorii, np. `[maps]`. Nazwa może mieć litery, cyfry, `_` i `-`; gdy taki zasób już jest, zwraca `false`. Skrypt, który utworzył zasób, może potem pisać w nim pliki ścieżką `":nazwa/plik"` (`fileCreate`, `xmlCreateFile`), dopisywać `addResourceMap` / `addResourceConfig` i skasować go `deleteResource`. Nowy zasób trzeba uruchomić `startResource`; przy kolejnym starcie serwera rusza sam.

#### Składnia

```lua
resource createResource(string resourceName [, string organizationalPath])
```

#### Argumenty

- `resourceName` (string) - Nazwa nowego zasobu.
- `organizationalPath` (string, opcjonalny) - Podfolder, np. `[mapy]`.

#### Zwraca

Nowy zasób albo `false`.

#### Przykład

```lua
local res = createResource("moja_mapa", "[maps]")
local xml = xmlCreateFile(":moja_mapa/moja_mapa.map", "map")
xmlSaveFile(xml)
xmlUnloadFile(xml)
addResourceMap(res, "moja_mapa.map", 0)
startResource(res)
```

#### Zobacz też

- [`copyResource`](https://trilogy-hub.com/docs/copyResource/)
- [`deleteResource`](https://trilogy-hub.com/docs/deleteResource/)

### deleteResource

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Kasuje zatrzymany zasób z dysku razem z folderem. Skrypt może skasować tylko zasób, który sam utworzył przez `createResource`.

#### Składnia

```lua
bool deleteResource(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób (musi być zatrzymany).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `deleteResource(string resourceName)`

#### Przykład

```lua
deleteResource(getResourceFromName("smieci"))
```

#### Zobacz też

- [`createResource`](https://trilogy-hub.com/docs/createResource/)
- [`stopResource`](https://trilogy-hub.com/docs/stopResource/)

### fetchRemote

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Tylko Trilogy Hub*

Wysyła zapytanie HTTP lub HTTPS i oddaje odpowiedź do funkcji zwrotnej, bez zatrzymywania serwera. Z danymi `postData` robi zapytanie POST, bez nich GET. Funkcja dostaje treść odpowiedzi i kod: `0` = sukces, numer statusu HTTP przy błędzie serwera, `-1` przy braku połączenia albo przekroczeniu czasu.

#### Składnia

```lua
bool fetchRemote(string url, function callback [, string postData, int timeoutMs = 10000])
```

#### Argumenty

- `url` (string) - Adres `http://` albo `https://`.
- `callback` (function) - `function(responseData, errno)`.
- `postData` (string, opcjonalny) - Treść zapytania POST.
- `timeoutMs` (int, opcjonalny = 10000) - Limit czasu w ms (1000-60000).

#### Zwraca

`true`, gdy zapytanie wystartowało.

#### Przykład

Pobranie kursu z publicznego API i pokazanie go na czacie.

```lua
fetchRemote("https://api.example.com/kurs.json", function(data, errno)
    if errno ~= 0 then
        outputServerLog("Błąd zapytania: " .. errno)
        return
    end
    local info = fromJSON(data)
    outputChatBox("Kurs: " .. tostring(info and info.rate))
end)
```

#### Uwagi

> **Ostrzeżenie:** **Kolejność argumentów.** Funkcja zwrotna jest drugim argumentem, a dane POST trzecim. Funkcja dostaje dwa argumenty: treść i kod błędu.

#### Zobacz też

- [`callRemote`](https://trilogy-hub.com/docs/callRemote/)
- [`abortRemoteRequest`](https://trilogy-hub.com/docs/abortRemoteRequest/)
- [`fromJSON`](https://trilogy-hub.com/docs/fromJSON/)

### getRemoteRequestInfo

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Zwraca stan zapytania HTTP: adres, postęp i rozmiar. W obecnej wersji serwera zwraca `false`.

#### Składnia

```lua
table getRemoteRequestInfo(request theRequest)
```

#### Argumenty

- `theRequest` (request) - Zapytanie.

#### Zwraca

Tabela z informacjami albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int postDataLength = 0 [, bool includeHeaders = false ]`
- W MTA:SA: `getRemoteRequestInfo(request theRequest, int postDataLength = 0 [, bool includeHeaders = false ])`

#### Przykład

```lua
for _, request in ipairs(getRemoteRequests()) do
    local info = getRemoteRequestInfo(request)
    if info then outputServerLog(info.url) end
end
```

#### Zobacz też

- [`getRemoteRequests`](https://trilogy-hub.com/docs/getRemoteRequests/)

### getRemoteRequests

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca trwające zapytania HTTP (wszystkich zasobów albo jednego). W obecnej wersji serwera lista jest pusta.

#### Składnia

```lua
table getRemoteRequests([resource theResource])
```

#### Argumenty

- `theResource` (resource, opcjonalny) - Zasób.

#### Zwraca

Tablica zapytań (obecnie pusta).

#### Przykład

```lua
outputServerLog("Zapytań HTTP: " .. #getRemoteRequests())
```

#### Zobacz też

- [`getRemoteRequestInfo`](https://trilogy-hub.com/docs/getRemoteRequestInfo/)
- [`fetchRemote`](https://trilogy-hub.com/docs/fetchRemote/)

### getResourceACLRequests

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca prawa, o które zasób prosi w `meta.xml` (`aclrequests` w `<info>`). Każda pozycja to tabela z nazwą prawa i stanem.

#### Składnia

```lua
table getResourceACLRequests(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Tablica `{ name, access, pending }`.

#### Przykład

```lua
for _, req in ipairs(getResourceACLRequests(getResourceFromName("admin"))) do
    outputServerLog(req.name .. (req.pending and " (czeka)" or ""))
end
```

#### Zobacz też

- [`updateResourceACLRequest`](https://trilogy-hub.com/docs/updateResourceACLRequest/)

### getResourceConfig

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Otwiera plik konfiguracyjny XML zasobu (np. `<config src="ustawienia.xml"/>` z `meta.xml`) i zwraca jego główny węzeł. Czytasz go funkcjami `xml*`, a na końcu zamykasz `xmlUnloadFile`.

#### Składnia

```lua
xmlnode getResourceConfig(string filePath)
```

#### Argumenty

- `filePath` (string) - Ścieżka pliku w zasobie.

#### Zwraca

Główny węzeł albo `false`.

#### Przykład

```lua
local config = getResourceConfig("ustawienia.xml")
if config then
    local start = xmlFindChild(config, "start", 0)
    outputServerLog("Pieniądze na start: " .. tostring(start and xmlNodeGetAttribute(start, "money")))
    xmlUnloadFile(config)
end
```

#### Zobacz też

- [`xmlNodeGetAttribute`](https://trilogy-hub.com/docs/xmlNodeGetAttribute/)
- [`xmlUnloadFile`](https://trilogy-hub.com/docs/xmlUnloadFile/)
- [`addResourceConfig`](https://trilogy-hub.com/docs/addResourceConfig/)

### getResourceDynamicElementRoot

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca korzeń elementów, które zasób tworzy w trakcie działania. W Trilogy Hub to ten sam element co `getResourceRootElement`.

#### Składnia

```lua
element getResourceDynamicElementRoot(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Korzeń albo `false`.

#### Przykład

```lua
local root = getResourceDynamicElementRoot(getThisResource())
outputServerLog(#getElementChildren(root) .. " elementów")
```

#### Zobacz też

- [`getResourceRootElement`](https://trilogy-hub.com/docs/getResourceRootElement/)

### getResourceFromName

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca uchwyt zasobu o podanej nazwie (nazwa folderu w `resources/`), także gdy zasób nie działa. Uchwyt przekażesz do `startResource`, `getResourceState`, `call` i innych funkcji zasobów.

#### Składnia

```lua
resource getResourceFromName(string resourceName)
```

#### Argumenty

- `resourceName` (string) - Nazwa zasobu.

#### Zwraca

Uchwyt zasobu albo `false`, gdy takiego nie ma.

#### Przykład

```lua
local race = getResourceFromName("race")
if race and getResourceState(race) ~= "running" then
    startResource(race)
end
```

#### Zobacz też

- [`getResourceName`](https://trilogy-hub.com/docs/getResourceName/)
- [`getResources`](https://trilogy-hub.com/docs/getResources/)
- [`startResource`](https://trilogy-hub.com/docs/startResource/)

### getResourceGUIElement

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Korzeń elementów interfejsu zasobu. Interfejs istnieje tylko u graczy, więc na serwerze funkcja zawsze zwraca `false`.

#### Składnia

```lua
bool getResourceGUIElement(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Zawsze `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `getResourceGUIElement(resource theResource = getThisResource())`

#### Przykład

```lua
outputServerLog(tostring(getResourceGUIElement(getThisResource()))) -- false
```

#### Zobacz też

- [`getResourceRootElement`](https://trilogy-hub.com/docs/getResourceRootElement/)

### getResourceInfo

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca wartość atrybutu z `<info>` w `meta.xml` zasobu, np. `name`, `author`, `version`, `type`, `description`.

#### Składnia

```lua
string getResourceInfo(resource theResource, string attribute)
```

#### Argumenty

- `theResource` (resource) - Zasób.
- `attribute` (string) - Nazwa atrybutu.

#### Zwraca

Wartość albo `false`.

#### Przykład

```lua
local res = getThisResource()
outputServerLog(("%s %s, autor: %s"):format(getResourceName(res), getResourceInfo(res, "version") or "?", getResourceInfo(res, "author") or "?"))
```

#### Zobacz też

- [`setResourceInfo`](https://trilogy-hub.com/docs/setResourceInfo/)

### getResourceLastStartTime

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca, kiedy zasób ostatnio wystartował (sekundy od 1970 roku), albo `0`. W obecnej wersji serwera zawsze zwraca `0`.

#### Składnia

```lua
int getResourceLastStartTime(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Czas startu albo `0`.

#### Przykład

```lua
outputServerLog("Start: " .. getResourceLastStartTime(getThisResource()))
```

#### Zobacz też

- [`getResourceLoadTime`](https://trilogy-hub.com/docs/getResourceLoadTime/)
- [`getRealTime`](https://trilogy-hub.com/docs/getRealTime/)

### getResourceLoadFailureReason

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca powód, dla którego zasób nie wystartował. Pusty napis = brak błędu. W obecnej wersji serwera zawsze zwraca pusty napis; błędy wczytywania widać w konsoli serwera.

#### Składnia

```lua
string getResourceLoadFailureReason(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Powód albo `""`.

#### Przykład

```lua
local res = getResourceFromName("race")
if not startResource(res) then
    outputServerLog("race: " .. getResourceLoadFailureReason(res))
end
```

#### Zobacz też

- [`startResource`](https://trilogy-hub.com/docs/startResource/)
- [`getResourceState`](https://trilogy-hub.com/docs/getResourceState/)

### getResourceLoadTime

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca, ile milisekund trwało ostatnie wczytanie zasobu. W obecnej wersji serwera zwraca `false`.

#### Składnia

```lua
int getResourceLoadTime(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Czas w ms albo `false`.

#### Przykład

```lua
outputServerLog("Wczytanie: " .. tostring(getResourceLoadTime(getThisResource())))
```

#### Zobacz też

- [`getResourceLastStartTime`](https://trilogy-hub.com/docs/getResourceLastStartTime/)

### getResourceMapRootElement

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca element mapy wczytanej z pliku `.map` zasobu; jego dziećmi są obiekty, pojazdy i inne elementy z tej mapy.

#### Składnia

```lua
element getResourceMapRootElement(resource theResource [, string mapName])
```

#### Argumenty

- `theResource` (resource) - Zasób.
- `mapName` (string, opcjonalny) - Nazwa pliku mapy; bez niej pierwsza mapa.

#### Zwraca

Element mapy albo `false`.

#### Przykład

```lua
local map = getResourceMapRootElement(getThisResource(), "trasa.map")
if map then
    outputServerLog(#getElementsByType("object", map) .. " obiektów na mapie")
end
```

#### Uwagi

> **Uwaga:** **Format MTA.** Pliki `.map` z MTA:SA działają bez zmian: obiekty, pojazdy, NPC, znaczniki, pickupy, blipy, woda (element dla skryptów, jak `createWater`), strefy radaru, `<removeWorldObject>` i własne elementy (np. `spawnpoint`). Atrybuty z pliku są też danymi elementu po stronie serwera (`getElementData(obj, "posX")`).

#### Zobacz też

- [`getResourceRootElement`](https://trilogy-hub.com/docs/getResourceRootElement/)

### getResourceName

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Zwraca nazwę zasobu z jego uchwytu.

#### Składnia

```lua
string getResourceName(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Nazwa albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `getResourceName(resource res = getThisResource())`

#### Przykład

```lua
outputServerLog("Działa zasób " .. getResourceName(getThisResource()))
```

#### Zobacz też

- [`getResourceFromName`](https://trilogy-hub.com/docs/getResourceFromName/)
- [`getResources`](https://trilogy-hub.com/docs/getResources/)

### getResourceOrganizationalPath

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca podfolder, w którym leży zasób wewnątrz `resources/` (np. `[gamemodes]`). Pusty napis, gdy leży bezpośrednio w `resources/`.

#### Składnia

```lua
string getResourceOrganizationalPath(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Ścieżka albo `""`.

#### Przykład

```lua
outputServerLog("Folder: " .. getResourceOrganizationalPath(getThisResource()))
```

#### Zobacz też

- [`getResourceName`](https://trilogy-hub.com/docs/getResourceName/)

### getResourceRootElement

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca korzeń elementów zasobu. Wszystko, co zasób utworzy, jest jego dzieckiem, a zdarzenia podpięte do tego korzenia dotyczą tylko tego zasobu. Bez argumentu zwraca korzeń bieżącego zasobu (to samo co `resourceRoot`).

#### Składnia

```lua
element getResourceRootElement([resource theResource])
```

#### Argumenty

- `theResource` (resource, opcjonalny) - Zasób.

#### Zwraca

Korzeń zasobu albo `false`.

#### Przykład

```lua
local race = getResourceFromName("race")
for _, veh in ipairs(getElementsByType("vehicle", getResourceRootElement(race))) do
    setVehicleColor(veh, 255, 122, 34)
end
```

#### Zobacz też

- [`getResourceDynamicElementRoot`](https://trilogy-hub.com/docs/getResourceDynamicElementRoot/)
- [`getResourceMapRootElement`](https://trilogy-hub.com/docs/getResourceMapRootElement/)

### getResources

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca wszystkie zasoby z folderu `resources/`, działające i zatrzymane.

#### Składnia

```lua
table getResources()
```

#### Zwraca

Tablica uchwytów zasobów.

#### Przykład

```lua
addCommandHandler("zasoby", function(player)
    for _, res in ipairs(getResources()) do
        outputChatBox(getResourceName(res) .. ": " .. getResourceState(res), player)
    end
end)
```

#### Zobacz też

- [`getResourceState`](https://trilogy-hub.com/docs/getResourceState/)
- [`getResourceFromName`](https://trilogy-hub.com/docs/getResourceFromName/)

### getResourceState

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zwraca stan zasobu: `"running"`, gdy działa, albo `"loaded"`, gdy leży na dysku, ale jest zatrzymany. Działa też na kliencie: tam zna tylko zasoby uruchomione u gracza, więc zwraca `"running"` albo `false`.

#### Składnia

```lua
string getResourceState(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób (uchwyt albo nazwa).

#### Zwraca

`"running"`, `"loaded"` albo `false`.

#### Przykład

```lua
local admin = getResourceFromName("admin")
outputServerLog("admin: " .. tostring(admin and getResourceState(admin)))
```

#### Zobacz też

- [`startResource`](https://trilogy-hub.com/docs/startResource/)
- [`stopResource`](https://trilogy-hub.com/docs/stopResource/)

### isResourceArchived

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Sprawdza, czy zasób leży w archiwum ZIP. Zasoby Trilogy Hub są zwykłymi folderami, więc zawsze zwraca `false`.

#### Składnia

```lua
bool isResourceArchived(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Zawsze `false`.

#### Przykład

```lua
outputServerLog(tostring(isResourceArchived(getThisResource())))
```

#### Zobacz też

- [`getResourceOrganizationalPath`](https://trilogy-hub.com/docs/getResourceOrganizationalPath/)

### isResourceProtected

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Sprawdza, czy zasób ma w `meta.xml` atrybut `protected="true"` w `<info>` (zasób, którego inne skrypty nie powinny zatrzymywać).

#### Składnia

```lua
bool isResourceProtected(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

`true`, gdy zasób jest chroniony.

#### Przykład

```lua
for _, res in ipairs(getResources()) do
    if getResourceState(res) == "running" and not isResourceProtected(res) and res ~= getThisResource() then
        stopResource(res)
    end
end
```

#### Zobacz też

- [`stopResource`](https://trilogy-hub.com/docs/stopResource/)
- [`getResourceInfo`](https://trilogy-hub.com/docs/getResourceInfo/)

### refreshResources

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Przegląda folder `resources/` w poszukiwaniu nowych i zmienionych zasobów. W obecnej wersji serwera funkcja nie jest jeszcze podłączona i zwraca `false` z ostrzeżeniem.

#### Składnia

```lua
bool refreshResources([bool refreshAll = false])
```

#### Argumenty

- `refreshAll` (bool, opcjonalny = false) - `true` = sprawdź wszystkie zasoby od nowa.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `resource targetResource = nil`
- W MTA:SA: `refreshResources(bool refreshAll = false, resource targetResource = nil)`

#### Przykład

```lua
refreshResources(true)
```

#### Uwagi

> **Uwaga:** Nowy folder zasobu wystarczy potem uruchomić: `startResource(getResourceFromName("nazwa"))`. Zasób z `<include>` uruchamia też swoje zależności.

#### Zobacz też

- [`getResources`](https://trilogy-hub.com/docs/getResources/)

### removeResourceFile

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Kasuje plik z folderu zasobu (działa jak `fileDelete` na ścieżce w zasobie).

#### Składnia

```lua
bool removeResourceFile(resource theResource, string fileName)
```

#### Argumenty

- `theResource` (resource) - Zasób.
- `fileName` (string) - Ścieżka pliku w zasobie.

#### Zwraca

`true`, gdy plik został skasowany.

#### Przykład

```lua
removeResourceFile(getThisResource(), "logi/stary.txt")
```

#### Zobacz też

- [`fileDelete`](https://trilogy-hub.com/docs/fileDelete/)

### renameResource

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zmienia nazwę zatrzymanego zasobu. W obecnej wersji serwera funkcja nie jest jeszcze podłączona i zwraca `false` z ostrzeżeniem.

#### Składnia

```lua
resource renameResource(resource theResource, string newResourceName [, string organizationalPath])
```

#### Argumenty

- `theResource` (resource) - Zasób (musi być zatrzymany).
- `newResourceName` (string) - Nowa nazwa.
- `organizationalPath` (string, opcjonalny) - Podfolder.

#### Zwraca

Zasób pod nową nazwą albo `false`.

#### Przykład

```lua
local res = getResourceFromName("stara_nazwa")
stopResource(res)
renameResource(res, "nowa_nazwa")
```

#### Zobacz też

- [`copyResource`](https://trilogy-hub.com/docs/copyResource/)
- [`stopResource`](https://trilogy-hub.com/docs/stopResource/)

### restartResource

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Zatrzymuje i od razu uruchamia zasób, np. po zmianie jego plików.

#### Składnia

```lua
bool restartResource(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób (uchwyt albo nazwa).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool persistent = false`, `bool configs = true`, `bool maps = true`, `bool scripts = true`, `bool html = true`, `bool clientConfigs = true`, `bool clientScripts = true`, `bool clientFiles = true`
- W MTA:SA: `restartResource(resource theResource, bool persistent = false, bool configs = true, bool maps = true, bool scripts = true, bool html = true, bool clientConfigs = true, bool clientScripts = true, bool clientFiles = true)`

#### Przykład

```lua
addCommandHandler("restart", function(player, _, name)
    if hasObjectPermissionTo(player, "command.restart") then
        restartResource(getResourceFromName(name or ""))
    end
end)
```

#### Zobacz też

- [`startResource`](https://trilogy-hub.com/docs/startResource/)
- [`stopResource`](https://trilogy-hub.com/docs/stopResource/)

### setResourceInfo

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zapisuje atrybut w `<info>` w `meta.xml` zasobu. W obecnej wersji serwera funkcja nie jest jeszcze podłączona i zwraca `false` z ostrzeżeniem.

#### Składnia

```lua
bool setResourceInfo(resource theResource, string attribute [, string value])
```

#### Argumenty

- `theResource` (resource) - Zasób.
- `attribute` (string) - Nazwa atrybutu.
- `value` (string, opcjonalny) - Wartość; bez niej atrybut jest usuwany.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setResourceInfo(getThisResource(), "version", "1.1")
```

#### Zobacz też

- [`getResourceInfo`](https://trilogy-hub.com/docs/getResourceInfo/)

### startResource

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Uruchamia zatrzymany zasób. Zasób wczytuje skrypty, mapy i pliki, a gracze go pobierają.

#### Składnia

```lua
bool startResource(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób (uchwyt albo nazwa).

#### Zwraca

`true`, gdy zasób wystartował.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool persistent = false`, `bool startIncludedResources = true`, `bool loadServerConfigs = true`, `bool loadMaps = true`, `bool loadServerScripts = true`, `bool loadHTML = true`, `bool loadClientConfigs = true`, `bool loadClientScripts = true`, `bool loadFiles = true`
- W MTA:SA: `startResource(resource resourceToStart, bool persistent = false, bool startIncludedResources = true, bool loadServerConfigs = true, bool loadMaps = true, bool loadServerScripts = true, bool loadHTML = true, bool loadClientConfigs = true, bool loadClientScripts = true, bool loadFiles = true)`

#### Przykład

```lua
addCommandHandler("start", function(player, _, name)
    if hasObjectPermissionTo(player, "command.start") then
        startResource(getResourceFromName(name or ""))
    end
end)
```

#### Zobacz też

- [`stopResource`](https://trilogy-hub.com/docs/stopResource/)
- [`restartResource`](https://trilogy-hub.com/docs/restartResource/)
- [`getResourceState`](https://trilogy-hub.com/docs/getResourceState/)

### stopResource

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Zatrzymuje działający zasób. Jego elementy, timery, komendy i klawisze znikają.

#### Składnia

```lua
bool stopResource(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób (uchwyt albo nazwa).

#### Zwraca

`true`, gdy zasób został zatrzymany.

#### Przykład

```lua
stopResource(getResourceFromName("race"))
```

#### Zobacz też

- [`startResource`](https://trilogy-hub.com/docs/startResource/)
- [`restartResource`](https://trilogy-hub.com/docs/restartResource/)

### updateResourceACLRequest

*Funkcja · Strona: Serwer · Kategoria: Zasoby · Identyczna z MTA:SA*

Przyznaje albo odbiera zasobowi prawo, o które prosił. Tworzy listę ACL `resource.nazwa`, dopina ją do grupy `Resources` i ustawia w niej prawo. Z `byWho` zapisuje w logu serwera, kto to zrobił.

#### Składnia

```lua
bool updateResourceACLRequest(resource theResource, string rightName, bool access [, string byWho])
```

#### Argumenty

- `theResource` (resource) - Zasób.
- `rightName` (string) - Nazwa prawa, np. `"function.kickPlayer"`.
- `access` (bool) - `true` = przyznaj, `false` = odbierz.
- `byWho` (string, opcjonalny) - Kto zmienił (do logu).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
updateResourceACLRequest(getResourceFromName("admin"), "function.kickPlayer", true, "konsola")
aclSave()
```

#### Zobacz też

- [`getResourceACLRequests`](https://trilogy-hub.com/docs/getResourceACLRequests/)
- [`aclSetRight`](https://trilogy-hub.com/docs/aclSetRight/)

### cancelLatentEvent

*Funkcja · Strona: Serwer · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Przerywa wysyłanie zdarzenia latentnego do gracza.

#### Składnia

```lua
bool cancelLatentEvent(player thePlayer, int handle)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `handle` (int) - Uchwyt z `getLatentEventHandles`.

#### Zwraca

`true`, gdy przerwano.

#### Przykład

```lua
addEventHandler("onPlayerQuit", root, function()
    for _, handle in ipairs(getLatentEventHandles(source) or {}) do cancelLatentEvent(source, handle) end
end)
```

#### Zobacz też

- [`getLatentEventHandles`](https://trilogy-hub.com/docs/getLatentEventHandles/)

### getLatentEventHandles

*Funkcja · Strona: Serwer · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Zwraca uchwyty zdarzeń latentnych, które są jeszcze wysyłane do gracza.

#### Składnia

```lua
table getLatentEventHandles(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Tablica uchwytów (liczb) albo `false`.

#### Przykład

```lua
addCommandHandler("wysylki", function(player)
    outputChatBox("W drodze: " .. #(getLatentEventHandles(player) or {}), player)
end)
```

#### Zobacz też

- [`getLatentEventStatus`](https://trilogy-hub.com/docs/getLatentEventStatus/)
- [`cancelLatentEvent`](https://trilogy-hub.com/docs/cancelLatentEvent/)

### getLatentEventStatus

*Funkcja · Strona: Serwer · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Zwraca postęp wysyłania zdarzenia latentnego do gracza.

#### Składnia

```lua
table getLatentEventStatus(player thePlayer, int handle)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `handle` (int) - Uchwyt z `getLatentEventHandles`.

#### Zwraca

Tabela `{ tickStart, tickEnd, totalSize, percentComplete }` albo `false`.

#### Przykład

```lua
addCommandHandler("postep", function(player)
    for _, handle in ipairs(getLatentEventHandles(player) or {}) do
        local status = getLatentEventStatus(player, handle)
        if status then outputChatBox(status.percentComplete .. "%", player) end
    end
end)
```

#### Zobacz też

- [`getLatentEventHandles`](https://trilogy-hub.com/docs/getLatentEventHandles/)

### triggerClientEvent

*Funkcja · Strona: Serwer · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Wysyła zdarzenie z serwera do jednego gracza, kilku graczy albo wszystkich naraz.

#### Składnia

```lua
bool triggerClientEvent([table|player targets,] string name, element source [, ...])
```

#### Argumenty

- `targets` (player|table, opcjonalny) - Gracz albo tabela graczy. Gdy go pominiesz albo podasz `root`, zdarzenie trafi do wszystkich.
- `name` (string) - Nazwa zdarzenia. Klient musi je zarejestrować przez `addEvent(nazwa, true)`.
- `source` (element) - Element, który u klienta będzie widoczny jako `source`.
- `...` (any, opcjonalny) - Argumenty dla funkcji obsługi: liczby, napisy, tabele i elementy.

#### Zwraca

`true`, gdy zdarzenie zostało wysłane.

#### Przykład

Serwer pokazuje graczowi komunikat na środku ekranu. Rysowaniem zajmuje się klient.

```lua
function pokazKomunikat(gracz, tekst)
    triggerClientEvent(gracz, "pokazKomunikat", resourceRoot, tekst)
end

addCommandHandler("witaj", function(gracz)
    pokazKomunikat(gracz, "Witaj w Los Santos!")
end)
```

```lua
addEvent("pokazKomunikat", true)

local tekst, doKiedy = nil, 0
local sw, sh = guiGetScreenSize()

addEventHandler("pokazKomunikat", resourceRoot, function(t)
    tekst, doKiedy = t, getTickCount() + 4000
end)

addEventHandler("onClientRender", root, function()
    if tekst and getTickCount() < doKiedy then
        dxDrawText(tekst, 0, 0, sw, sh * 0.4, tocolor(255, 255, 255), 2, "pricedown", "center", "bottom")
    end
end)
```

#### Uwagi

> **Uwaga:** **Warto wiedzieć.** Działa też skrócony zapis bez celów: `triggerClientEvent("nazwa", zrodlo, ...)` wysyła do wszystkich graczy.

> **Ostrzeżenie:** **Wysyłaj tylko to, co potrzebne.** Każde wywołanie idzie przez sieć. Zamiast wysyłać to samo co klatkę, wyślij raz i pozwól klientowi rysować.

#### Zobacz też

- [`triggerServerEvent`](https://trilogy-hub.com/docs/triggerServerEvent/)
- [`addEventHandler`](https://trilogy-hub.com/docs/addEventHandler/)

### triggerLatentClientEvent

*Funkcja · Strona: Serwer · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Wysyła zdarzenie do klientów jak `triggerClientEvent`, przeznaczone dla dużych danych wysyłanych w tle (z limitem przepustowości). Kolejność argumentów: `sendTo, name, [bandwidth], [persist], sourceElement, ...`. Postęp można sprawdzać przez `getLatentEventHandles` i `getLatentEventStatus`.

#### Składnia

```lua
bool triggerLatentClientEvent(string name, element theElement [, element/table sendTo = root, int bandwidth, bool persist = false, any ...])
```

#### Argumenty

- `sendTo` (element/table, opcjonalny = root) - Gracz, tabela graczy albo `root`.
- `name` (string) - Nazwa zdarzenia.
- `bandwidth` (int, opcjonalny) - Limit bajtów na sekundę (zgodność ze starszymi skryptami).
- `persist` (bool, opcjonalny = false) - Dla zgodności ze starszymi skryptami.
- `theElement` (element) - Element źródłowy.
- `...` (any, opcjonalny) - Argumenty zdarzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function()
    local data = {}
    for i = 1, 1000 do data[i] = { id = i, name = "Przedmiot " .. i } end
    triggerLatentClientEvent(source, "onShopData", 50000, false, resourceRoot, data)
end)
```

#### Uwagi

> **Nowość:** Limit przepustowości jest pomijany: dane idą zwykłym kanałem zdarzeń, który i tak dzieli duże paczki.

#### Zobacz też

- [`triggerClientEvent`](https://trilogy-hub.com/docs/triggerClientEvent/)
- [`getLatentEventStatus`](https://trilogy-hub.com/docs/getLatentEventStatus/)
- [`cancelLatentEvent`](https://trilogy-hub.com/docs/cancelLatentEvent/)

### getMarkerIcon

*Funkcja · Strona: Serwer · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zwraca ikonę znacznika ustawioną przez `setMarkerIcon` (`"none"`, `"arrow"`, `"finish"`).

#### Składnia

```lua
string getMarkerIcon(marker theMarker)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.

#### Zwraca

Nazwa ikony albo `false`.

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "ring", 4)
outputDebugString(getMarkerIcon(marker))
```

#### Zobacz też

- [`setMarkerIcon`](https://trilogy-hub.com/docs/setMarkerIcon/)

### getMarkerTarget

*Funkcja · Strona: Serwer · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zwraca punkt docelowy znacznika ustawiony przez `setMarkerTarget`.

#### Składnia

```lua
float, float, float getMarkerTarget(marker theMarker)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.

#### Zwraca

x, y, z albo `false`, gdy znacznik nie ma celu.

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "ring", 4)
setMarkerTarget(marker, 100, 0, 3)
local tx, ty, tz = getMarkerTarget(marker)
```

#### Zobacz też

- [`setMarkerTarget`](https://trilogy-hub.com/docs/setMarkerTarget/)

### getMarkerTargetArrowProperties

*Funkcja · Strona: Serwer · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zwraca wygląd strzałki zapisany przez `setMarkerTargetArrowProperties`.

#### Składnia

```lua
float, int, int, int, int getMarkerTargetArrowProperties(marker theMarker)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.

#### Zwraca

Rozmiar, r, g, b, a albo `false`.

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "checkpoint", 4)
local size, r, g, b, a = getMarkerTargetArrowProperties(marker)
```

#### Zobacz też

- [`setMarkerTargetArrowProperties`](https://trilogy-hub.com/docs/setMarkerTargetArrowProperties/)

### isCoronaReflectionEnabled

*Funkcja · Strona: Serwer · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zwraca wartość z `setCoronaReflectionEnabled`.

#### Składnia

```lua
bool isCoronaReflectionEnabled(marker theMarker)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local glow = createMarker(0, 0, 5, "corona", 2)
outputDebugString(tostring(isCoronaReflectionEnabled(glow)))
```

#### Zobacz też

- [`setCoronaReflectionEnabled`](https://trilogy-hub.com/docs/setCoronaReflectionEnabled/)

### setCoronaReflectionEnabled

*Funkcja · Strona: Serwer · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zapisuje, czy korona (świecący znacznik) ma się odbijać w wodzie i na mokrej jezdni.

#### Składnia

```lua
bool setCoronaReflectionEnabled(marker theMarker, bool enabled)
```

#### Argumenty

- `theMarker` (marker) - Znacznik typu corona.
- `enabled` (bool) - `true` = odbicie włączone.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local glow = createMarker(0, 0, 5, "corona", 2, 255, 0, 0)
setCoronaReflectionEnabled(glow, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie rysuje jeszcze odbić koron skryptów.

#### Zobacz też

- [`isCoronaReflectionEnabled`](https://trilogy-hub.com/docs/isCoronaReflectionEnabled/)

### setMarkerIcon

*Funkcja · Strona: Serwer · Kategoria: Znaczniki · Identyczna z MTA:SA*

Ustawia ikonę pierścienia lub punktu kontrolnego: `"none"`, `"arrow"` (strzałka do następnego punktu) albo `"finish"` (flaga mety).

#### Składnia

```lua
bool setMarkerIcon(marker theMarker, string icon)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.
- `icon` (string) - `"none"`, `"arrow"` albo `"finish"`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local finish = createMarker(0, 0, 3, "ring", 6)
setMarkerIcon(finish, "finish")
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie rysuje jeszcze ikon na znacznikach.

#### Zobacz też

- [`getMarkerIcon`](https://trilogy-hub.com/docs/getMarkerIcon/)
- [`setMarkerTarget`](https://trilogy-hub.com/docs/setMarkerTarget/)

### setMarkerTarget

*Funkcja · Strona: Serwer · Kategoria: Znaczniki · Identyczna z MTA:SA*

Ustawia punkt, na który wskazuje pierścień lub punkt kontrolny (w wyścigach - następny punkt trasy). Bez współrzędnych zdejmuje cel.

#### Składnia

```lua
bool setMarkerTarget(marker theMarker [, float x = nil, float y = nil, float z = nil])
```

#### Argumenty

- `theMarker` (marker) - Znacznik.
- `x` (float, opcjonalny = nil) - X celu.
- `y` (float, opcjonalny = nil) - Y celu.
- `z` (float, opcjonalny = nil) - Z celu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local route = { {0, 0, 3}, {100, 0, 3}, {200, 50, 3} }
for i = 1, #route - 1 do
    local p, nxt = route[i], route[i + 1]
    local m = createMarker(p[1], p[2], p[3], "ring", 6)
    setMarkerTarget(m, nxt[1], nxt[2], nxt[3])
end
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie obraca jeszcze znacznika w stronę celu.

#### Zobacz też

- [`getMarkerTarget`](https://trilogy-hub.com/docs/getMarkerTarget/)
- [`setMarkerIcon`](https://trilogy-hub.com/docs/setMarkerIcon/)

### setMarkerTargetArrowProperties

*Funkcja · Strona: Serwer · Kategoria: Znaczniki · Zmodyfikowana względem MTA:SA*

Zapisuje wygląd strzałki nad punktem kontrolnym, która wskazuje cel: rozmiar i kolor.

#### Składnia

```lua
bool setMarkerTargetArrowProperties(marker theMarker, float size [, int r = 255, int g = 255, int b = 255, int a = 255])
```

#### Argumenty

- `theMarker` (marker) - Znacznik.
- `size` (float) - Rozmiar strzałki.
- `r` (int, opcjonalny = 255) - Czerwony.
- `g` (int, opcjonalny = 255) - Zielony.
- `b` (int, opcjonalny = 255) - Niebieski.
- `a` (int, opcjonalny = 255) - Krycie.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setMarkerTargetArrowProperties(element marker, int r = 255, int g = 64, int b = 64, int a = 255, float size = markerSize * 0.625)`

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "checkpoint", 4)
setMarkerTargetArrowProperties(marker, 1.5, 255, 0, 0, 200)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Gra nie rysuje jeszcze tej strzałki.

#### Zobacz też

- [`getMarkerTargetArrowProperties`](https://trilogy-hub.com/docs/getMarkerTargetArrowProperties/)
- [`setMarkerTarget`](https://trilogy-hub.com/docs/setMarkerTarget/)

---

## Funkcje klienta

Funkcje dostępne w skryptach type="client". Działają w grze u każdego gracza osobno: rysowanie, klawisze, interfejs.

### getPlayerWaypointRoute

*Funkcja · Strona: Klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zwraca trasę GPS gry do znacznika, czyli linię pokazywaną na radarze, jako listę punktów i długość w metrach. Gra liczy trasę po drogach tylko wtedy, gdy gracz jest w pojeździe.

#### Składnia

```lua
table getPlayerWaypointRoute([bool withZ = false])
```

#### Argumenty

- `withZ` (bool, opcjonalny = false) - `true` = każdy punkt dostaje też `z` (wysokość gruntu).

#### Zwraca

`points, length`: tablica `{x = , y = [, z = ]}` i długość w metrach; `false`, gdy trasy nie ma.

#### Przykład

Trasa GPS narysowana w świecie.

```lua
local route = false
addEventHandler("onClientWaypointRouteUpdate", localPlayer, function(hasRoute)
    route = hasRoute and getPlayerWaypointRoute(true) or false
end)

addEventHandler("onClientRender", root, function()
    if not route then return end
    for i = 2, #route do
        local a, b = route[i - 1], route[i]
        dxDrawLine3D(a.x, a.y, a.z + 0.5, b.x, b.y, b.z + 0.5, tocolor(80, 160, 255), 6)
    end
end)
```

#### Uwagi

> **Uwaga:** Między fragmentami trasy mogą być przerwy - rysuj wtedy linie tylko między sąsiednimi punktami, jak w przykładzie.

#### Zobacz też

- [`onClientWaypointRouteUpdate`](https://trilogy-hub.com/docs/onClientWaypointRouteUpdate/)
- [`getPlayerWaypoint`](https://trilogy-hub.com/docs/getPlayerWaypoint/)
- [`setPlayerWaypoint`](https://trilogy-hub.com/docs/setPlayerWaypoint/)

### isWeaponWheelEnabled

*Funkcja · Strona: Klient · Kategoria: Bronie · Tylko Trilogy Hub*

Sprawdza, czy koło wyboru broni jest włączone.

#### Składnia

```lua
bool isWeaponWheelEnabled()
```

#### Zwraca

`true`, gdy koło działa.

#### Przykład

```lua
if not isWeaponWheelEnabled() then
    outputChatBox("Koło broni jest wyłączone.")
end
```

#### Zobacz też

- [`setWeaponWheelEnabled`](https://trilogy-hub.com/docs/setWeaponWheelEnabled/)

### setWeaponWheelEnabled

*Funkcja · Strona: Klient · Kategoria: Bronie · Tylko Trilogy Hub*

Całkowicie wyłącza albo przywraca koło wyboru broni z gry. Wyłączone koło nigdy się nie otwiera: nie ma menu, spowolnienia czasu ani szarego tła. Zmiana broni rolką myszy działa dalej. Domyślnie koło jest włączone. Ustawienie dotyczy tylko tej gry; jeśli koło było otwarte, zamyka się od razu.

#### Składnia

```lua
bool setWeaponWheelEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `false` = koła nie ma, `true` = koło jak w grze.

#### Zwraca

`true` przy powodzeniu, `false` przy złym argumencie.

#### Przykład

```lua
addEventHandler("onClientResourceStart", resourceRoot, function()
    setWeaponWheelEnabled(false)
end)
```

#### Zobacz też

- [`isWeaponWheelEnabled`](https://trilogy-hub.com/docs/isWeaponWheelEnabled/)
- [`setSlowMotionEnabled`](https://trilogy-hub.com/docs/setSlowMotionEnabled/)

### sendChatMessage

*Funkcja · Strona: Klient · Kategoria: Czat i konsola · Tylko Trilogy Hub*

Wysyła tekst na czat tak, jakby gracz go wpisał. Tekst zaczynający się od `/` jest komendą.

#### Składnia

```lua
bool sendChatMessage(string text)
```

#### Argumenty

- `text` (string) - Tekst.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
bindKey("F3", "down", function()
    sendChatMessage("Potrzebuję pomocy!")
end)
```

#### Zobacz też

- [`executeCommand`](https://trilogy-hub.com/docs/executeCommand/)
- [`onPlayerChat`](https://trilogy-hub.com/docs/onPlayerChat/)

### getParticleCount

*Funkcja · Strona: Klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Zwraca liczbę żywych cząsteczek emitera. Emiter dalej niż `maxDistance` od kamery nic nie liczy i zwraca 0.

#### Składnia

```lua
int getParticleCount(element emitter)
```

#### Argumenty

- `emitter` (element) - Emiter.

#### Zwraca

Liczba cząsteczek albo `false`.

#### Przykład

Licznik wszystkich żywych cząsteczek w rogu ekranu.

```lua
addEventHandler("onClientRender", root, function()
    local total = 0
    for _, emitter in ipairs(getElementsByType("particle")) do
        total = total + getParticleCount(emitter)
    end
    dxDrawText("Cząsteczki: " .. total, 20, 20)
end)
```

#### Uwagi

> **Uwaga:** Tylko u klienta: każdy gracz liczy cząsteczki emitera z serwera u siebie.

#### Zobacz też

- [`burstParticles`](https://trilogy-hub.com/docs/burstParticles/)

### resetDiscordRichPresenceData

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Kasuje wszystko, co skrypty ustawiły w statusie Discord gracza (teksty, obrazki, czasy, grupę, przyciski, własną aplikację) i przywraca domyślny status Trilogy Hub: „Playing on: nazwa serwera / As nick”. Status jest też kasowany automatycznie, gdy gracz łączy się z serwerem, rozłącza albo wychodzi.

#### Składnia

```lua
bool resetDiscordRichPresenceData()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientResourceStop", resourceRoot, function()
    resetDiscordRichPresenceData()
end)
```

#### Zobacz też

- [`setDiscordRichPresenceDetails`](https://trilogy-hub.com/docs/setDiscordRichPresenceDetails/)
- [`setDiscordApplicationID`](https://trilogy-hub.com/docs/setDiscordApplicationID/)

### setDiscordApplicationID

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Przełącza status Discord gracza na własną aplikację Discord serwera (Application ID z panelu Discord Developer Portal). Dzięki temu w statusie widać nazwę Twojego serwera zamiast „Trilogy Hub” i można używać własnych obrazków z zakładki Rich Presence → Art Assets tej aplikacji. Zmiana aplikacji wymaga ponownego połączenia z Discordem, dlatego obrazki ustawione wcześniej są kasowane. Pusty napis wraca do aplikacji Trilogy Hub.

#### Składnia

```lua
bool setDiscordApplicationID(string id)
```

#### Argumenty

- `id` (string) - Numer aplikacji (same cyfry, jako napis, np. `"1234567890123456789"`). `""` = aplikacja Trilogy Hub.

#### Zwraca

`true` przy powodzeniu, `false` gdy napis nie jest numerem.

#### Przykład

```lua
setDiscordApplicationID("1234567890123456789")
setDiscordRichPresenceAsset("logo", "Mój Serwer RP")
```

#### Uwagi

> **Ostrzeżenie:** **Numer jako napis.** Numer aplikacji jest za duży na liczbę Lua bez utraty dokładności, dlatego zawsze podawaj go w cudzysłowie.

#### Zobacz też

- [`setDiscordRichPresenceAsset`](https://trilogy-hub.com/docs/setDiscordRichPresenceAsset/)
- [`resetDiscordRichPresenceData`](https://trilogy-hub.com/docs/resetDiscordRichPresenceData/)

### setDiscordRichPresenceAsset

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Ustawia duży obrazek w statusie Discord gracza oraz podpis, który pojawia się po najechaniu na niego myszą. Obrazek to klucz (nazwa) grafiki wgranej w Discord Developer Portal do aplikacji ustawionej przez `setDiscordApplicationID`. Bez własnej aplikacji Trilogy Hub pokazuje swoje logo. Pusty klucz usuwa obrazek ustawiony skryptem.

#### Składnia

```lua
bool setDiscordRichPresenceAsset(string asset [, string text = ""])
```

#### Argumenty

- `asset` (string) - Klucz obrazka z Art Assets (do 256 znaków). `""` = usuń.
- `text` (string, opcjonalny = "") - Podpis po najechaniu myszą (do 128 znaków).

#### Zwraca

`true`, gdy status został przekazany do launchera.

#### Przykład

```lua
setDiscordRichPresenceAsset("mapa_ls", "Los Santos")
```

#### Zobacz też

- [`setDiscordRichPresenceSmallAsset`](https://trilogy-hub.com/docs/setDiscordRichPresenceSmallAsset/)
- [`setDiscordApplicationID`](https://trilogy-hub.com/docs/setDiscordApplicationID/)

### setDiscordRichPresenceButton

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Dodaje pod statusem Discord gracza przycisk z linkiem, np. „Dołącz do Discorda” albo „Strona serwera”. Można mieć dwa przyciski (numer 1 i 2). Discord pokazuje przyciski innym osobom oglądającym profil gracza, a nie samemu graczowi. Pusta etykieta usuwa przycisk.

#### Składnia

```lua
bool setDiscordRichPresenceButton(int index, string label, string url)
```

#### Argumenty

- `index` (int) - Numer przycisku: 1 albo 2.
- `label` (string) - Napis na przycisku (do 32 znaków). `""` = usuń przycisk.
- `url` (string) - Adres zaczynający się od `http://` albo `https://`.

#### Zwraca

`true` przy powodzeniu, `false` dla złego numeru lub adresu.

#### Przykład

```lua
setDiscordRichPresenceButton(1, "Discord serwera", "https://discord.gg/przyklad")
setDiscordRichPresenceButton(2, "Strona", "https://example.com")
```

#### Zobacz też

- [`setDiscordRichPresenceDetails`](https://trilogy-hub.com/docs/setDiscordRichPresenceDetails/)

### setDiscordRichPresenceDetails

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Ustawia górną linię statusu „Gra w...” na profilu Discord gracza (rich presence), np. „Służba w policji” albo „Wyścig: Grove Street”. Status pokazuje launcher Trilogy Hub, więc działa, gdy gracz ma uruchomioną aplikację Discord na komputerze. Zmiany trafiają do Discorda najwyżej raz na 15 sekund (to limit Discorda), więc częstsze wywołania są łączone i widać ostatnią wartość. Pusty napis przywraca domyślny tekst „Playing on: nazwa serwera”.

#### Składnia

```lua
bool setDiscordRichPresenceDetails(string text)
```

#### Argumenty

- `text` (string) - Tekst do 128 znaków (dłuższy jest obcinany). `""` albo `nil` = tekst domyślny.

#### Zwraca

`true`, gdy status został przekazany do launchera.

#### Przykład

```lua
addEventHandler("onClientResourceStart", resourceRoot, function()
    setDiscordRichPresenceDetails("Roleplay: Los Santos")
    setDiscordRichPresenceState("Spaceruje po mieście")
end)
```

#### Zobacz też

- [`setDiscordRichPresenceState`](https://trilogy-hub.com/docs/setDiscordRichPresenceState/)
- [`resetDiscordRichPresenceData`](https://trilogy-hub.com/docs/resetDiscordRichPresenceData/)

### setDiscordRichPresenceEndTime

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Ustawia licznik „zostało” w statusie Discord: Discord odlicza czas do podanej chwili (np. końca rundy). Podaj znacznik Unix w sekundach. 0 wyłącza odliczanie.

#### Składnia

```lua
bool setDiscordRichPresenceEndTime(int seconds)
```

#### Argumenty

- `seconds` (int) - Znacznik czasu Unix końca w sekundach. 0 = bez odliczania.

#### Zwraca

`true`, gdy status został przekazany do launchera.

#### Przykład

```lua
setDiscordRichPresenceEndTime(getRealTime().timestamp + 300)
```

#### Zobacz też

- [`setDiscordRichPresenceStartTime`](https://trilogy-hub.com/docs/setDiscordRichPresenceStartTime/)

### setDiscordRichPresencePartySize

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Ustawia rozmiar grupy w statusie Discord, wyświetlany jako „(2 z 4)”, np. liczba osób w drużynie albo w misji. Domyślnie launcher pokazuje liczbę graczy na serwerze; 0, 0 przywraca to zachowanie. Rozmiar musi wynosić co najmniej 1 i nie więcej niż maksimum.

#### Składnia

```lua
bool setDiscordRichPresencePartySize(int size, int max)
```

#### Argumenty

- `size` (int) - Ilu jest teraz (1 do max).
- `max` (int) - Ile może być najwięcej. 0 = domyślna liczba graczy serwera.

#### Zwraca

`true` przy powodzeniu, `false` dla złych wartości.

#### Przykład

```lua
setDiscordRichPresencePartySize(3, 4)
```

#### Zobacz też

- [`setDiscordRichPresenceDetails`](https://trilogy-hub.com/docs/setDiscordRichPresenceDetails/)

### setDiscordRichPresenceSmallAsset

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Ustawia mały okrągły obrazek w rogu dużego obrazka statusu Discord, np. ikonę frakcji albo rangi, z podpisem po najechaniu myszą. Obrazek musi być w Art Assets aplikacji ustawionej przez `setDiscordApplicationID`. Pusty klucz usuwa obrazek.

#### Składnia

```lua
bool setDiscordRichPresenceSmallAsset(string asset [, string text = ""])
```

#### Argumenty

- `asset` (string) - Klucz obrazka z Art Assets. `""` = usuń.
- `text` (string, opcjonalny = "") - Podpis po najechaniu myszą (do 128 znaków).

#### Zwraca

`true`, gdy status został przekazany do launchera.

#### Przykład

```lua
setDiscordRichPresenceSmallAsset("policja", "Frakcja: LSPD")
```

#### Zobacz też

- [`setDiscordRichPresenceAsset`](https://trilogy-hub.com/docs/setDiscordRichPresenceAsset/)

### setDiscordRichPresenceStartTime

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Ustawia licznik „upłynęło” w statusie Discord: Discord liczy czas od podanej chwili (np. od początku misji albo zmiany). Podaj czas jako znacznik Unix w sekundach, np. z `getRealTime().timestamp`. 0 przywraca licznik od chwili wejścia do gry.

#### Składnia

```lua
bool setDiscordRichPresenceStartTime(int seconds)
```

#### Argumenty

- `seconds` (int) - Znacznik czasu Unix w sekundach. 0 = od wejścia do gry.

#### Zwraca

`true`, gdy status został przekazany do launchera.

#### Przykład

```lua
setDiscordRichPresenceDetails("Misja: konwój")
setDiscordRichPresenceStartTime(getRealTime().timestamp)
```

#### Zobacz też

- [`setDiscordRichPresenceEndTime`](https://trilogy-hub.com/docs/setDiscordRichPresenceEndTime/)
- [`getRealTime`](https://trilogy-hub.com/docs/getRealTime/)

### setDiscordRichPresenceState

*Funkcja · Strona: Klient · Kategoria: Discord · Tylko Trilogy Hub*

Ustawia dolną linię statusu Discord gracza, zwykle opis tego, co robi teraz (np. „Patroluje Idlewood”, „Na mapie: 12/32 graczy”). Działa tak samo jak `setDiscordRichPresenceDetails`: przez launcher, z limitem jednej zmiany na 15 sekund. Pusty napis przywraca domyślne „As nick” (nick gracza).

#### Składnia

```lua
bool setDiscordRichPresenceState(string text)
```

#### Argumenty

- `text` (string) - Tekst do 128 znaków. `""`/`nil` = tekst domyślny.

#### Zwraca

`true`, gdy status został przekazany do launchera.

#### Przykład

```lua
setTimer(function()
    local vehicle = getPedOccupiedVehicle(localPlayer)
    setDiscordRichPresenceState(vehicle and ("Jedzie: " .. getVehicleName(vehicle)) or "Pieszo")
end, 15000, 0)
```

#### Zobacz też

- [`setDiscordRichPresenceDetails`](https://trilogy-hub.com/docs/setDiscordRichPresenceDetails/)

### getSoundPan

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Identyczna z MTA:SA*

Zwraca przesunięcie dźwięku między głośnikami (-1 do 1).

#### Składnia

```lua
float getSoundPan(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Przesunięcie albo `false`.

#### Przykład

```lua
outputChatBox(tostring(getSoundPan(sound)))
```

#### Uwagi

> **Ostrzeżenie:** **Nie działa z dźwiękami z `playSound`.** W obecnej wersji funkcja zwraca `false`.

#### Zobacz też

- [`setSoundPan`](https://trilogy-hub.com/docs/setSoundPan/)

### getSoundPosition3D

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Tylko Trilogy Hub*

Zwraca punkt świata, w którym gra dźwięk 3D. To samo zwraca `getElementPosition` na dźwięku.

#### Składnia

```lua
float getSoundPosition3D(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk 3D.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local x, y, z = getElementPosition(radio)
```

#### Uwagi

> **Ostrzeżenie:** **Użyj `getElementPosition`.** W obecnej wersji ta funkcja nie przyjmuje elementów dźwięku z `playSound3D`.

#### Zobacz też

- [`setSoundPosition3D`](https://trilogy-hub.com/docs/setSoundPosition3D/)

### isRadioEnabled

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Tylko Trilogy Hub*

Sprawdza, czy radio gry w pojeździe jest włączone.

#### Składnia

```lua
bool isRadioEnabled()
```

#### Zwraca

`true`, jeśli włączone.

#### Przykład

```lua
if isRadioEnabled() then
    setRadioEnabled(false)
end
```

#### Zobacz też

- [`setRadioEnabled`](https://trilogy-hub.com/docs/setRadioEnabled/)

### isSoundLooped

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Identyczna z MTA:SA*

Sprawdza, czy dźwięk gra w kółko.

#### Składnia

```lua
bool isSoundLooped(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

`true`, jeśli zapętlony.

#### Przykład

```lua
outputChatBox(tostring(isSoundLooped(music)))
```

#### Uwagi

> **Ostrzeżenie:** **Nie działa z dźwiękami z `playSound`.** W obecnej wersji funkcja zwraca `false`.

#### Zobacz też

- [`setSoundLooped`](https://trilogy-hub.com/docs/setSoundLooped/)

### playSoundFrontEnd

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Identyczna z MTA:SA*

Odtwarza wbudowany dźwięk interfejsu gry po numerze (kliknięcia menu, zakup, punkt kontrolny itd.). Numery 0-30 to dźwięki z rozgrywki, 31-39 dźwięki menu. Numeracja jest własna, bo Definitive Edition ma inny zestaw dźwięków niż stare San Andreas.

#### Składnia

```lua
bool playSoundFrontEnd(int sound)
```

#### Argumenty

- `sound` (int) - Numer dźwięku 0-39.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientColShapeHit", root, function(element)
    if element == localPlayer then
        playSoundFrontEnd(1)
    end
end)
```

#### Zobacz też

- [`getSFXStatus`](https://trilogy-hub.com/docs/getSFXStatus/)

### setRadioEnabled

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Tylko Trilogy Hub*

Włącza albo wyłącza radio gry w pojeździe. Wyłączone daje ciszę zamiast stacji GTA, na przykład pod własne radio przez `playSound`. Z serwera: `setPlayerRadioEnabled`.

#### Składnia

```lua
bool setRadioEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `false` wycisza radio gry.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setRadioEnabled(false)
local station = playSound("audio/stacja.mp3", true)
```

#### Zobacz też

- [`isRadioEnabled`](https://trilogy-hub.com/docs/isRadioEnabled/)

### setSoundLooped

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Identyczna z MTA:SA*

Ustawia, czy dźwięk ma grać w kółko. Zapętlenie najprościej ustawić przy tworzeniu: `playSound(plik, true)`.

#### Składnia

```lua
bool setSoundLooped(sound theSound, bool looped)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `looped` (bool) - `true` zapętla.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local music = playSound("audio/menu.mp3", true)
```

#### Uwagi

> **Ostrzeżenie:** **Nie działa z dźwiękami z `playSound`.** W obecnej wersji użyj argumentu `looped` w `playSound`.

#### Zobacz też

- [`isSoundLooped`](https://trilogy-hub.com/docs/isSoundLooped/)

### setSoundPan

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Identyczna z MTA:SA*

Ustawia przesunięcie dźwięku między głośnikami: `-1` lewy, `0` środek, `1` prawy.

#### Składnia

```lua
bool setSoundPan(sound theSound, float pan)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `pan` (float) - Wartość od -1 do 1.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setSoundPan(sound, -1)
```

#### Uwagi

> **Ostrzeżenie:** **Nie działa z dźwiękami z `playSound`.** W obecnej wersji funkcja nie przyjmuje elementów dźwięku i zwraca `false`.

#### Zobacz też

- [`getSoundPan`](https://trilogy-hub.com/docs/getSoundPan/)

### setSoundPosition3D

*Funkcja · Strona: Klient · Kategoria: Dźwięk · Tylko Trilogy Hub*

Przesuwa dźwięk 3D w nowy punkt świata. To samo robi `setElementPosition` na dźwięku.

#### Składnia

```lua
bool setSoundPosition3D(sound theSound, float x, float y, float z)
```

#### Argumenty

- `theSound` (sound) - Dźwięk 3D.
- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local radio = playSound3D("audio/radio.mp3", 0, 0, 3, true)
setElementPosition(radio, 10, 0, 3)
```

#### Uwagi

> **Ostrzeżenie:** **Użyj `setElementPosition`.** W obecnej wersji ta funkcja nie przyjmuje elementów dźwięku z `playSound3D`.

#### Zobacz też

- [`getSoundPosition3D`](https://trilogy-hub.com/docs/getSoundPosition3D/)

### getSFXBankSoundCount

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Tylko Trilogy Hub*

Bez numeru banku zwraca liczbę banków w pojemniku. Z numerem banku zwraca liczbę dźwięków w tym banku.

#### Składnia

```lua
int getSFXBankSoundCount(string audioContainer [, int bankIndex])
```

#### Argumenty

- `audioContainer` (string) - Pojemnik.
- `bankIndex` (int, opcjonalny) - Numer banku.

#### Zwraca

Liczba albo `false` przy złym pojemniku lub banku.

#### Przykład

```lua
outputChatBox("genrl: " .. getSFXBankSoundCount("genrl") .. " bankow")
```

#### Zobacz też

- [`playSFX`](https://trilogy-hub.com/docs/playSFX/)
- [`isSFXBankLoaded`](https://trilogy-hub.com/docs/isSFXBankLoaded/)

### getSFXStatus

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Sprawdza, czy pojemnik dźwięków gry istnieje. Pliki dźwięków są zawsze w grze; to, czy dany bank zagra, mówi `isSFXBankLoaded`.

#### Składnia

```lua
bool getSFXStatus([string audioContainer])
```

#### Argumenty

- `audioContainer` (string, opcjonalny) - Pojemnik, np. `"genrl"`. Bez argumentu funkcja mówi, czy dźwięki gry są w ogóle dostępne dla skryptów (`playSoundFrontEnd`).

#### Zwraca

`true` dla znanego pojemnika.

#### Przykład

```lua
outputChatBox(tostring(getSFXStatus("genrl")))
```

#### Zobacz też

- [`playSFX`](https://trilogy-hub.com/docs/playSFX/)
- [`isSFXBankLoaded`](https://trilogy-hub.com/docs/isSFXBankLoaded/)

### getSoundEffectParameters

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zwraca aktualne parametry efektu: nazwa → wartość.

#### Składnia

```lua
table getSoundEffectParameters(sound theSound, string effectName)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `effectName` (string) - Nazwa efektu.

#### Zwraca

Tabela parametrów albo `false`.

#### Przykład

```lua
local music = playSound("audio/radio.mp3", true)
iprint(getSoundEffectParameters(music, "reverb"))
```

#### Zobacz też

- [`setSoundEffectParameter`](https://trilogy-hub.com/docs/setSoundEffectParameter/)

### getSoundEffects

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zwraca tabelę wszystkich efektów dźwięku: nazwa efektu → `true`/`false`.

#### Składnia

```lua
table getSoundEffects(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Tabela efektów albo `false`.

#### Przykład

```lua
local music = playSound("audio/radio.mp3", true)
for name, on in pairs(getSoundEffects(music)) do
    if on then outputChatBox(name) end
end
```

#### Zobacz też

- [`setSoundEffectEnabled`](https://trilogy-hub.com/docs/setSoundEffectEnabled/)

### getSoundHeardVolume

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Tylko Trilogy Hub*

Zwraca głośność, którą gracz naprawdę słyszy: po odległości od kamery i po suwaku głośności w ustawieniach.

#### Składnia

```lua
float getSoundHeardVolume(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Głośność 0-1 albo `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    if isElement(radio) then
        dxDrawText(("Radio: %d%%"):format(getSoundHeardVolume(radio) * 100), 20, 300)
    end
end)
```

### getSoundLength

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zwraca długość dźwięku w sekundach.

#### Składnia

```lua
float getSoundLength(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Długość albo `false`.

#### Przykład

```lua
local intro = playSound("audio/intro.mp3")
outputChatBox(("Utwór trwa %.1f s"):format(getSoundLength(intro)))
```

### getSoundMaxDistance

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zwraca odległość, od której dźwięku 3D nie słychać.

#### Składnia

```lua
float getSoundMaxDistance(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Metry albo `false`.

#### Przykład

```lua
outputChatBox("Słychać do " .. getSoundMaxDistance(siren) .. " m")
```

#### Zobacz też

- [`setSoundMaxDistance`](https://trilogy-hub.com/docs/setSoundMaxDistance/)

### getSoundMinDistance

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zwraca odległość pełnej głośności dźwięku 3D.

#### Składnia

```lua
float getSoundMinDistance(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Metry albo `false`.

#### Przykład

```lua
outputChatBox("Pełna głośność do " .. getSoundMinDistance(radio) .. " m")
```

#### Zobacz też

- [`setSoundMinDistance`](https://trilogy-hub.com/docs/setSoundMinDistance/)

### getSoundPosition

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zwraca, w której sekundzie jest odtwarzanie.

#### Składnia

```lua
float getSoundPosition(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Sekunda albo `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    if isElement(music) then
        dxDrawText(("%.0f / %.0f s"):format(getSoundPosition(music), getSoundLength(music)), 20, 320)
    end
end)
```

#### Zobacz też

- [`setSoundPosition`](https://trilogy-hub.com/docs/setSoundPosition/)

### getSounds

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Tylko Trilogy Hub*

Zwraca wszystkie grające dźwięki stworzone przez skrypty.

#### Składnia

```lua
table getSounds()
```

#### Zwraca

Tablica dźwięków.

#### Przykład

```lua
addCommandHandler("cisza", function()
    for _, sound in ipairs(getSounds()) do
        stopSound(sound)
    end
end)
```

### getSoundSpeed

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zwraca prędkość odtwarzania.

#### Składnia

```lua
float getSoundSpeed(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Prędkość albo `false`.

#### Przykład

```lua
outputChatBox("Tempo: " .. getSoundSpeed(engine))
```

#### Zobacz też

- [`setSoundSpeed`](https://trilogy-hub.com/docs/setSoundSpeed/)

### getSoundVolume

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zwraca głośność ustawioną skryptem (nie uwzględnia odległości ani suwaka gracza).

#### Składnia

```lua
float getSoundVolume(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

Głośność albo `false`.

#### Przykład

```lua
setSoundVolume(music, getSoundVolume(music) + 0.1)
```

#### Zobacz też

- [`getSoundHeardVolume`](https://trilogy-hub.com/docs/getSoundHeardVolume/)
- [`setSoundVolume`](https://trilogy-hub.com/docs/setSoundVolume/)

### isSFXBankLoaded

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Tylko Trilogy Hub*

Sprawdza, czy gra ma teraz wczytany bank dźwięków. Tylko taki bank zagra przez `playSFX` i `playSFX3D`.

#### Składnia

```lua
bool isSFXBankLoaded(string audioContainer, int bankIndex)
```

#### Argumenty

- `audioContainer` (string) - Pojemnik.
- `bankIndex` (int) - Numer banku w pojemniku.

#### Zwraca

`true`, gdy bank jest wczytany.

#### Przykład

```lua
for bank = 0, getSFXBankSoundCount("genrl") - 1 do
    if isSFXBankLoaded("genrl", bank) then
        outputConsole("genrl " .. bank .. ": " .. getSFXBankSoundCount("genrl", bank) .. " dzwiekow")
    end
end
```

#### Zobacz też

- [`playSFX`](https://trilogy-hub.com/docs/playSFX/)
- [`playSFX3D`](https://trilogy-hub.com/docs/playSFX3D/)
- [`getSFXBankSoundCount`](https://trilogy-hub.com/docs/getSFXBankSoundCount/)

### isSoundPaused

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Sprawdza, czy dźwięk jest wstrzymany.

#### Składnia

```lua
bool isSoundPaused(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

`true`, jeśli wstrzymany.

#### Przykład

```lua
if isSoundPaused(music) then
    setSoundPaused(music, false)
end
```

#### Zobacz też

- [`setSoundPaused`](https://trilogy-hub.com/docs/setSoundPaused/)

### playSFX

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Odtwarza dźwięk z banków samej gry San Andreas (kroki, broń, zderzenia, pojazdy, dźwięki misji) bez pozycji w świecie. Dźwięk gra silnik dźwięku gry, więc ma tę samą głośność efektów co gra.

#### Składnia

```lua
sound playSFX(string audioContainer, int bankIndex, int soundIndex [, bool looped = false])
```

#### Argumenty

- `audioContainer` (string) - Pojemnik: `"feet"`, `"genrl"`, `"pain_a"`, `"script"`, `"spc_ea"`, `"spc_fa"`, `"spc_ga"`, `"spc_na"`, `"spc_pa"`.
- `bankIndex` (int) - Numer banku w pojemniku (od 0).
- `soundIndex` (int) - Numer dźwięku w banku (od 0).
- `looped` (bool, opcjonalny = false) - Czy grać w kółko.

#### Zwraca

Element dźwięku albo `false` (w dzienniku pojawi się powód).

#### Przykład

```lua
-- strzal z M4 (bank 136 pojemnika genrl to bron)
if isSFXBankLoaded("genrl", 136) then
    playSFX("genrl", 136, 33)
end
```

#### Uwagi

> **Ostrzeżenie:** **Zagra tylko bank, który gra ma teraz wczytany.** Gra trzyma w pamięci kilkadziesiąt banków naraz. Banki `genrl` z bronią, zderzeniami i krokami są zwykle wczytane, a `script` i `spc_*` tylko w czasie misji. Sprawdź `isSFXBankLoaded`. Pojemnik `"radio"` nie jest obsługiwany.

> **Uwaga:** Działa tylko u tego gracza i nie idzie do innych graczy. Zgodne z MTA, ale numery banków są z wersji Definitive Edition.

#### Zobacz też

- [`playSFX3D`](https://trilogy-hub.com/docs/playSFX3D/)
- [`isSFXBankLoaded`](https://trilogy-hub.com/docs/isSFXBankLoaded/)
- [`getSFXBankSoundCount`](https://trilogy-hub.com/docs/getSFXBankSoundCount/)
- [`stopSound`](https://trilogy-hub.com/docs/stopSound/)

### playSFX3D

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Odtwarza dźwięk z banków gry w punkcie świata. Ściszanie z odległością i panoramę liczy silnik dźwięku gry.

#### Składnia

```lua
sound playSFX3D(string audioContainer, int bankIndex, int soundIndex, float x, float y, float z [, bool looped = false])
```

#### Argumenty

- `audioContainer` (string) - Pojemnik, jak w `playSFX`.
- `bankIndex` (int) - Numer banku w pojemniku.
- `soundIndex` (int) - Numer dźwięku w banku.
- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `looped` (bool, opcjonalny = false) - Czy grać w kółko.

#### Zwraca

Element dźwięku albo `false`.

#### Przykład

```lua
local x, y, z = getElementPosition(localPlayer)
local sound = playSFX3D("genrl", 32, 1, x + 5, y, z)
if sound then setSoundVolume(sound, 0.6) end
```

#### Uwagi

> **Ostrzeżenie:** Zagra tylko bank wczytany teraz w grze (`isSFXBankLoaded`).

> **Uwaga:** Działają `stopSound`, `setSoundVolume`, `setSoundSpeed`, `setElementPosition`, `attachElements` i `onClientSoundStopped`. Efekty (`setSoundEffectEnabled`) i przewijanie działają tylko na plikach z `playSound`.

#### Zobacz też

- [`playSFX`](https://trilogy-hub.com/docs/playSFX/)
- [`isSFXBankLoaded`](https://trilogy-hub.com/docs/isSFXBankLoaded/)
- [`setElementPosition`](https://trilogy-hub.com/docs/setElementPosition/)
- [`attachElements`](https://trilogy-hub.com/docs/attachElements/)

### playSound

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Odtwarza plik MP3 albo WAV z zasobu bez pozycji w świecie (słychać go tak samo wszędzie). Plik musi być w `meta.xml` jako `<file>`.

#### Składnia

```lua
sound playSound(string soundPath [, bool looped = false, bool throttle])
```

#### Argumenty

- `soundPath` (string) - Ścieżka w zasobie albo `:zasób/plik.mp3`. Adresy z sieci nie są obsługiwane.
- `looped` (bool, opcjonalny = false) - Czy grać w kółko.
- `throttle` (bool, opcjonalny) - Przyjmowany dla zgodności ze starszymi skryptami, ale gra go nie używa.

#### Zwraca

Element dźwięku albo `false` (w dzienniku pojawi się powód).

#### Przykład

```lua
local music = playSound("audio/menu.mp3", true)
setSoundVolume(music, 0.5)

addEventHandler("onClientPlayerSpawn", localPlayer, function()
    if isElement(music) then
        stopSound(music)
    end
end)
```

```xml
<meta>
    <script src="client.lua" type="client" />
    <file src="audio/menu.mp3" />
</meta>
```

#### Zobacz też

- [`playSound3D`](https://trilogy-hub.com/docs/playSound3D/)
- [`stopSound`](https://trilogy-hub.com/docs/stopSound/)
- [`setSoundVolume`](https://trilogy-hub.com/docs/setSoundVolume/)
- [`onClientSoundStopped`](https://trilogy-hub.com/docs/onClientSoundStopped/)

### playSound3D

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Odtwarza dźwięk w punkcie świata. Cichnie z odległością od kamery: do 5 m gra pełną głośnością, od 20 m go nie słychać. Ma panoramę lewo-prawo.

#### Składnia

```lua
sound playSound3D(string soundPath, float x, float y, float z [, bool looped = false, bool throttle])
```

#### Argumenty

- `soundPath` (string) - Ścieżka w zasobie.
- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `looped` (bool, opcjonalny = false) - Czy grać w kółko.
- `throttle` (bool, opcjonalny) - Przyjmowany dla zgodności ze starszymi skryptami, ale gra go nie używa.

#### Zwraca

Element dźwięku albo `false`.

#### Przykład

Radio przy ognisku słyszalne z 40 metrów.

```lua
local radio = playSound3D("audio/radio.mp3", 2495.1, -1687.4, 13.5, true)
setSoundMaxDistance(radio, 40)
setSoundMinDistance(radio, 8)
```

#### Uwagi

> **Uwaga:** **Dźwięk może jechać za pojazdem.** `attachElements(sound, vehicle)` przyczepia dźwięk do elementu.

#### Zobacz też

- [`setSoundMaxDistance`](https://trilogy-hub.com/docs/setSoundMaxDistance/)
- [`setSoundMinDistance`](https://trilogy-hub.com/docs/setSoundMinDistance/)
- [`attachElements`](https://trilogy-hub.com/docs/attachElements/)

### setSoundEffectEnabled

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Włącza albo wyłącza efekt na dźwięku z `playSound`/`playSound3D`. Dostępne efekty: `chorus`, `compressor`, `distortion`, `echo`, `flanger`, `gargle`, `i3dl2reverb`, `parameq`, `reverb` (jak w MTA) i `bandpass` (pasmo przenoszenia, np. głos przez telefon).

#### Składnia

```lua
bool setSoundEffectEnabled(sound theSound, string effectName, bool enable)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `effectName` (string) - Nazwa efektu.
- `enable` (bool) - `true` = włącz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local music = playSound("audio/radio.mp3", true)
setSoundEffectEnabled(music, "echo", true)
setSoundEffectParameter(music, "echo", "leftDelay", 300)
```

#### Uwagi

> **Uwaga:** Pierwszy włączony efekt przenosi dźwięk do miksera z efektami w tym samym miejscu odtwarzania (MP3 i WAV do 10 minut).

#### Zobacz też

- [`getSoundEffects`](https://trilogy-hub.com/docs/getSoundEffects/)
- [`setSoundEffectParameter`](https://trilogy-hub.com/docs/setSoundEffectParameter/)
- [`getSoundEffectParameters`](https://trilogy-hub.com/docs/getSoundEffectParameters/)

### setSoundEffectParameter

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Ustawia parametr efektu, także wyłączonego. Nazwy i zakresy są jak w MTA (np. `echo`: `wetDryMix`, `feedback`, `leftDelay`, `rightDelay`, `panDelay`; `reverb`: `inGain`, `reverbMix`, `reverbTime`, `highFreqRTRatio`); `bandpass`: `lowCut`, `highCut`, `gain`.

#### Składnia

```lua
bool setSoundEffectParameter(sound theSound, string effectName, string effectParameter, mixed effectParameterValue)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `effectName` (string) - Nazwa efektu.
- `effectParameter` (string) - Nazwa parametru.
- `effectParameterValue` (mixed) - Liczba (albo `bool` dla `panDelay`). Wartość spoza zakresu daje `false` i ostrzeżenie z zakresem.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Głos przez telefon.

```lua
local call = playSound("audio/call.mp3")
setSoundEffectEnabled(call, "bandpass", true)
setSoundEffectParameter(call, "bandpass", "lowCut", 400)
setSoundEffectParameter(call, "bandpass", "highCut", 3000)
```

#### Zobacz też

- [`setSoundEffectEnabled`](https://trilogy-hub.com/docs/setSoundEffectEnabled/)
- [`getSoundEffectParameters`](https://trilogy-hub.com/docs/getSoundEffectParameters/)

### setSoundMaxDistance

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Ustawia odległość, od której dźwięku 3D nie słychać (domyślnie 20 m).

#### Składnia

```lua
bool setSoundMaxDistance(sound theSound, float distance)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `distance` (float) - Metry, więcej niż 0.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local siren = playSound3D("audio/siren.wav", 1555, -1675, 16, true)
setSoundMaxDistance(siren, 120)
```

#### Zobacz też

- [`getSoundMaxDistance`](https://trilogy-hub.com/docs/getSoundMaxDistance/)

### setSoundMinDistance

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Ustawia odległość, do której dźwięk 3D gra pełną głośnością (domyślnie 5 m). Maksymalna odległość rośnie, gdy trzeba.

#### Składnia

```lua
bool setSoundMinDistance(sound theSound, float distance)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `distance` (float) - Metry, od 0.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setSoundMinDistance(radio, 10)
```

#### Zobacz też

- [`setSoundMaxDistance`](https://trilogy-hub.com/docs/setSoundMaxDistance/)
- [`getSoundMinDistance`](https://trilogy-hub.com/docs/getSoundMinDistance/)

### setSoundPaused

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Wstrzymuje albo wznawia dźwięk.

#### Składnia

```lua
bool setSoundPaused(sound theSound, bool paused)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `paused` (bool) - `true` wstrzymuje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
bindKey("p", "down", function()
    setSoundPaused(music, not isSoundPaused(music))
end)
```

#### Zobacz też

- [`isSoundPaused`](https://trilogy-hub.com/docs/isSoundPaused/)

### setSoundPosition

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Przewija dźwięk do podanej sekundy.

#### Składnia

```lua
bool setSoundPosition(sound theSound, float pos)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `pos` (float) - Sekunda od początku.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
bindKey("arrow_r", "down", function()
    setSoundPosition(music, getSoundPosition(music) + 10)
end)
```

#### Zobacz też

- [`getSoundPosition`](https://trilogy-hub.com/docs/getSoundPosition/)

### setSoundSpeed

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Ustawia prędkość odtwarzania. `1` to normalnie, wyższa wartość przyspiesza i podwyższa dźwięk.

#### Składnia

```lua
bool setSoundSpeed(sound theSound, float speed)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `speed` (float) - Prędkość większa od 0.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local engine = playSound("audio/engine.wav", true)
addEventHandler("onClientRender", root, function()
    local veh = getPedOccupiedVehicle(localPlayer)
    if veh then
        local vx, vy, vz = getElementVelocity(veh)
        setSoundSpeed(engine, 0.8 + math.sqrt(vx * vx + vy * vy) * 2)
    end
end)
```

#### Zobacz też

- [`getSoundSpeed`](https://trilogy-hub.com/docs/getSoundSpeed/)

### setSoundVolume

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Ustawia głośność dźwięku. `1` to normalnie, do `2` wzmacnia.

#### Składnia

```lua
bool setSoundVolume(sound theSound, float volume)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.
- `volume` (float) - Głośność 0-2.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local music = playSound("audio/menu.mp3", true)
local vol = 1
setTimer(function()
    vol = vol - 0.1
    setSoundVolume(music, math.max(vol, 0))
end, 200, 10)
```

#### Uwagi

> **Uwaga:** **Interior i wymiar.** Dźwięk 3D z `setElementInterior` lub `setElementDimension` jest cichy, gdy gracz jest w innym interiorze albo wymiarze; ustawiona głośność wraca, gdy gracz tam wejdzie.

#### Zobacz też

- [`getSoundVolume`](https://trilogy-hub.com/docs/getSoundVolume/)
- [`getSoundHeardVolume`](https://trilogy-hub.com/docs/getSoundHeardVolume/)

### stopSound

*Funkcja · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczna z MTA:SA*

Zatrzymuje dźwięk i usuwa go. Wywołuje zdarzenie `onClientSoundStopped` z powodem `"destroyed"`.

#### Składnia

```lua
bool stopSound(sound theSound)
```

#### Argumenty

- `theSound` (sound) - Dźwięk.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local horn = playSound("audio/horn.wav")
setTimer(function()
    if isElement(horn) then stopSound(horn) end
end, 2000, 1)
```

### createEffect

*Funkcja · Strona: Klient · Kategoria: Efekty · Zmodyfikowana względem MTA:SA*

Tworzy trwały efekt cząsteczkowy gry (np. dym, ogień, fontanna) w punkcie świata.

#### Składnia

```lua
effect createEffect(string name, float x, float y, float z [, float rX = 0, float rY = 0, float rZ = 0, float drawDistance = 100, bool soundEnable = true])
```

#### Argumenty

- `name` (string) - Nazwa efektu gry, np. `"smoke30lit"`.
- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `rX` (float, opcjonalny = 0) - Obrót X w stopniach.
- `rY` (float, opcjonalny = 0) - Obrót Y w stopniach.
- `rZ` (float, opcjonalny = 0) - Obrót Z w stopniach.
- `drawDistance` (float, opcjonalny = 100) - Odległość rysowania.
- `soundEnable` (bool, opcjonalny = true) - Czy efekt ma dźwięk.

#### Zwraca

Uchwyt efektu albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `createEffect(string name, float x, float y, float z, float rX, float rY, float rZ, float drawDistance = 0, bool soundEnable = false)`

#### Przykład

```lua
local smoke = createEffect("smoke30lit", 2490, -1670, 13)
setTimer(destroyEffect, 30000, 1, smoke)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Uchwyt powstaje i zapamiętuje ustawienia, ale w tej wersji efekt nie pojawia się w świecie.

#### Zobacz też

- [`destroyEffect`](https://trilogy-hub.com/docs/destroyEffect/)
- [`setEffectDensity`](https://trilogy-hub.com/docs/setEffectDensity/)
- [`setEffectSpeed`](https://trilogy-hub.com/docs/setEffectSpeed/)

### destroyEffect

*Funkcja · Strona: Klient · Kategoria: Efekty · Tylko Trilogy Hub*

Usuwa efekt utworzony przez `createEffect`.

#### Składnia

```lua
bool destroyEffect(effect theEffect)
```

#### Argumenty

- `theEffect` (effect) - Efekt.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
destroyEffect(smoke)
```

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)

### fxAddBlood

*Funkcja · Strona: Klient · Kategoria: Efekty · Zmodyfikowana względem MTA:SA*

Jednorazowy efekt cząsteczkowy: krew (rozprysk w kierunku).

#### Składnia

```lua
bool fxAddBlood(float posX, float posY, float posZ, float dirX, float dirY, float dirZ [, int count = 1, float brightness = 1.0])
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.
- `dirX` (float) - Kierunek X.
- `dirY` (float) - Kierunek Y.
- `dirZ` (float) - Kierunek Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int count = 1`, `float brightness = 1.0`
- W MTA:SA: `fxAddBlood(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, int count = 1, float brightness = 1.0)`

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddBlood(x, y, z + 1, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddBulletImpact

*Funkcja · Strona: Klient · Kategoria: Efekty · Zmodyfikowana względem MTA:SA*

Jednorazowy efekt cząsteczkowy: trafienie pociskiem (dym i iskry).

#### Składnia

```lua
bool fxAddBulletImpact(float posX, float posY, float posZ, float dirX, float dirY, float dirZ [, int smokeSize = 1, int sparkCount = 1, float smokeIntensity = 1.0])
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.
- `dirX` (float) - Kierunek X.
- `dirY` (float) - Kierunek Y.
- `dirZ` (float) - Kierunek Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int smokeSize = 1`, `int sparkCount = 1`, `float smokeIntensity = 1.0`
- W MTA:SA: `fxAddBulletImpact(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, int smokeSize = 1, int sparkCount = 1, float smokeIntensity = 1.0)`

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddBulletImpact(x, y, z + 1, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddBulletSplash

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Jednorazowy efekt cząsteczkowy: plusk po strzale w wodę.

#### Składnia

```lua
bool fxAddBulletSplash(float posX, float posY, float posZ)
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddBulletSplash(x, y, z)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddDebris

*Funkcja · Strona: Klient · Kategoria: Efekty · Zmodyfikowana względem MTA:SA*

Jednorazowy efekt cząsteczkowy: odłamki.

#### Składnia

```lua
bool fxAddDebris(float posX, float posY, float posZ [, int r = 255, int g = 0, int b = 0, int a = 255, float scale = 1.0, int count = 1])
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int colorR = 255`, `int colorG = 0`, `int colorB = 0`, `int colorA = 255`, `float scale = 1.0`, `int count = 1`
- W MTA:SA: `fxAddDebris(float posX, float posY, float posZ, int colorR = 255, int colorG = 0, int colorB = 0, int colorA = 255, float scale = 1.0, int count = 1)`

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddDebris(x, y, z)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddFootSplash

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Jednorazowy efekt cząsteczkowy: plusk pod stopami.

#### Składnia

```lua
bool fxAddFootSplash(float posX, float posY, float posZ)
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddFootSplash(x, y, z)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddGlass

*Funkcja · Strona: Klient · Kategoria: Efekty · Zmodyfikowana względem MTA:SA*

Jednorazowy efekt cząsteczkowy: odłamki szkła.

#### Składnia

```lua
bool fxAddGlass(float posX, float posY, float posZ [, int r = 255, int g = 0, int b = 0, int a = 255, float scale = 1.0, int count = 1])
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int colorR = 255`, `int colorG = 0`, `int colorB = 0`, `int colorA = 255`, `float scale = 1.0`, `int count = 1`
- W MTA:SA: `fxAddGlass(float posX, float posY, float posZ, int colorR = 255, int colorG = 0, int colorB = 0, int colorA = 255, float scale = 1.0, int count = 1)`

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddGlass(x, y, z)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddGunshot

*Funkcja · Strona: Klient · Kategoria: Efekty · Zmodyfikowana względem MTA:SA*

Jednorazowy efekt cząsteczkowy: błysk wystrzału.

#### Składnia

```lua
bool fxAddGunshot(float posX, float posY, float posZ, float dirX, float dirY, float dirZ [, bool includeSparks = true])
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.
- `dirX` (float) - Kierunek X.
- `dirY` (float) - Kierunek Y.
- `dirZ` (float) - Kierunek Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool includeSparks = true`
- W MTA:SA: `fxAddGunshot(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, bool includeSparks = true)`

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddGunshot(x, y, z + 1, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddPunchImpact

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Jednorazowy efekt cząsteczkowy: uderzenie pięścią.

#### Składnia

```lua
bool fxAddPunchImpact(float posX, float posY, float posZ, float dirX, float dirY, float dirZ)
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.
- `dirX` (float) - Kierunek X.
- `dirY` (float) - Kierunek Y.
- `dirZ` (float) - Kierunek Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddPunchImpact(x, y, z + 1, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddSparks

*Funkcja · Strona: Klient · Kategoria: Efekty · Zmodyfikowana względem MTA:SA*

Jednorazowy efekt cząsteczkowy: iskry.

#### Składnia

```lua
bool fxAddSparks(float posX, float posY, float posZ, float dirX, float dirY, float dirZ [, float force = 1, int count = 1, float acrossLineX = 0, float acrossLineY = 0, float acrossLineZ = 0, bool blur = false, float spread = 1, float life = 1])
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.
- `dirX` (float) - Kierunek X.
- `dirY` (float) - Kierunek Y.
- `dirZ` (float) - Kierunek Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `float force = 1.0`, `int count = 1`, `float acrossLineX = 0.0`, `float acrossLineY = 0.0`, `float acrossLineZ = 0.0`, `bool blur = false`, `float spread = 1.0`, `float life = 1.0`
- W MTA:SA: `fxAddSparks(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, float force = 1.0, int count = 1, float acrossLineX = 0.0, float acrossLineY = 0.0, float acrossLineZ = 0.0, bool blur = false, float spread = 1.0, float life = 1.0)`

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddSparks(x, y, z + 1, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddTankFire

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Jednorazowy efekt cząsteczkowy: wystrzał z czołgu.

#### Składnia

```lua
bool fxAddTankFire(float posX, float posY, float posZ, float dirX, float dirY, float dirZ)
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.
- `dirX` (float) - Kierunek X.
- `dirY` (float) - Kierunek Y.
- `dirZ` (float) - Kierunek Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddTankFire(x, y, z + 1, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddTyreBurst

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Jednorazowy efekt cząsteczkowy: przebita opona.

#### Składnia

```lua
bool fxAddTyreBurst(float posX, float posY, float posZ, float dirX, float dirY, float dirZ)
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.
- `dirX` (float) - Kierunek X.
- `dirY` (float) - Kierunek Y.
- `dirZ` (float) - Kierunek Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddTyreBurst(x, y, z + 1, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddWaterHydrant

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Jednorazowy efekt cząsteczkowy: strumień z hydrantu.

#### Składnia

```lua
bool fxAddWaterHydrant(float posX, float posY, float posZ)
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddWaterHydrant(x, y, z)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddWaterSplash

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Jednorazowy efekt cząsteczkowy: plusk wody.

#### Składnia

```lua
bool fxAddWaterSplash(float posX, float posY, float posZ)
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddWaterSplash(x, y, z)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxAddWood

*Funkcja · Strona: Klient · Kategoria: Efekty · Zmodyfikowana względem MTA:SA*

Jednorazowy efekt cząsteczkowy: drzazgi.

#### Składnia

```lua
bool fxAddWood(float posX, float posY, float posZ, float dirX, float dirY, float dirZ [, int count = 1, float brightness = 1.0])
```

#### Argumenty

- `posX` (float) - Pozycja X.
- `posY` (float) - Pozycja Y.
- `posZ` (float) - Pozycja Z.
- `dirX` (float) - Kierunek X.
- `dirY` (float) - Kierunek Y.
- `dirZ` (float) - Kierunek Z.

#### Zwraca

`true`, jeśli efekt powstał.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int count = 1`, `float brightness = 1.0`
- W MTA:SA: `fxAddWood(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, int count = 1, float brightness = 1.0)`

#### Przykład

```lua
bindKey("e", "down", function()
    local x, y, z = getElementPosition(localPlayer)
    fxAddWood(x, y, z + 1, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** Funkcja jest dostępna, żeby istniejące skrypty działały bez błędów, ale w tej wersji efekt się nie pojawia i funkcja zwraca `false`.

#### Zobacz też

- [`createEffect`](https://trilogy-hub.com/docs/createEffect/)
- [`fxCreateParticle`](https://trilogy-hub.com/docs/fxCreateParticle/)

### fxCreateParticle

*Funkcja · Strona: Klient · Kategoria: Efekty · Tylko Trilogy Hub*

Tworzy cząstki o zadanym kolorze, rozmiarze i czasie życia.

#### Składnia

```lua
bool fxCreateParticle(string name, float x, float y, float z [, float dirX = 0, float dirY = 0, float dirZ = 0, float size = 1, int r = 255, int g = 255, int b = 255, int a = 255, bool randomizeColors = false, int count = 1, float brightness = 1, int lifetime = 1000])
```

#### Argumenty

- `name` (string) - Nazwa cząstki gry.
- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `dirX` (float, opcjonalny = 0) - Kierunek X.
- `dirY` (float, opcjonalny = 0) - Kierunek Y.
- `dirZ` (float, opcjonalny = 0) - Kierunek Z.
- `size` (float, opcjonalny = 1) - Rozmiar.
- `r` (int, opcjonalny = 255) - Czerwony.
- `g` (int, opcjonalny = 255) - Zielony.
- `b` (int, opcjonalny = 255) - Niebieski.
- `a` (int, opcjonalny = 255) - Krycie.
- `randomizeColors` (bool, opcjonalny = false) - Losowe odcienie.
- `count` (int, opcjonalny = 1) - Liczba cząstek.
- `brightness` (float, opcjonalny = 1) - Jasność.
- `lifetime` (int, opcjonalny = 1000) - Czas życia w milisekundach.

#### Zwraca

`true`, jeśli cząstki powstały.

#### Przykład

```lua
local x, y, z = getElementPosition(localPlayer)
fxCreateParticle("sparks", x, y, z + 1, 0, 0, 1, 0.5, 255, 180, 0, 255, false, 20, 1, 800)
```

#### Uwagi

> **Ostrzeżenie:** **Gra jeszcze tego nie rysuje.** W tej wersji funkcja zwraca `false`.

### getEffectDensity

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Zwraca gęstość cząstek efektu.

#### Składnia

```lua
float getEffectDensity(effect theEffect)
```

#### Argumenty

- `theEffect` (effect) - Efekt.

#### Zwraca

Gęstość albo `false`.

#### Przykład

```lua
outputChatBox("Gęstość: " .. getEffectDensity(smoke))
```

#### Zobacz też

- [`setEffectDensity`](https://trilogy-hub.com/docs/setEffectDensity/)

### getEffectSpeed

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Zwraca tempo efektu.

#### Składnia

```lua
float getEffectSpeed(effect theEffect)
```

#### Argumenty

- `theEffect` (effect) - Efekt.

#### Zwraca

Tempo albo `false`.

#### Przykład

```lua
outputChatBox("Tempo: " .. getEffectSpeed(smoke))
```

#### Zobacz też

- [`setEffectSpeed`](https://trilogy-hub.com/docs/setEffectSpeed/)

### setEffectDensity

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Ustawia gęstość cząstek efektu (0-2, domyślnie 1).

#### Składnia

```lua
bool setEffectDensity(effect theEffect, float density)
```

#### Argumenty

- `theEffect` (effect) - Efekt.
- `density` (float) - Gęstość 0-2.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setEffectDensity(smoke, 2)
```

#### Zobacz też

- [`getEffectDensity`](https://trilogy-hub.com/docs/getEffectDensity/)

### setEffectSpeed

*Funkcja · Strona: Klient · Kategoria: Efekty · Identyczna z MTA:SA*

Ustawia tempo efektu (domyślnie 1).

#### Składnia

```lua
bool setEffectSpeed(effect theEffect, float speed)
```

#### Argumenty

- `theEffect` (effect) - Efekt.
- `speed` (float) - Tempo.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setEffectSpeed(smoke, 0.5)
```

#### Zobacz też

- [`getEffectSpeed`](https://trilogy-hub.com/docs/getEffectSpeed/)

### getElementBonePosition

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca pozycję kości postaci w świecie.

#### Składnia

```lua
float getElementBonePosition(element theElement, int bone)
```

#### Argumenty

- `theElement` (element) - Gracz albo NPC.
- `bone` (int) - Numer kości (np. 8 głowa, 24 prawa dłoń).

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    for _, p in ipairs(getElementsByType("player")) do
        local x, y, z = getElementBonePosition(p, 8)
        if x then
            local sx, sy = getScreenFromWorldPosition(x, y, z + 0.3)
            if sx then dxDrawText(getPlayerName(p), sx, sy) end
        end
    end
end)
```

#### Zobacz też

- [`getPedBonePosition`](https://trilogy-hub.com/docs/getPedBonePosition/)

### getElementBoundingBox

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca prostopadłościan obejmujący model elementu, względem jego środka.

#### Składnia

```lua
float getElementBoundingBox(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

minX, minY, minZ, maxX, maxY, maxZ.

#### Przykład

```lua
local x0, y0, z0, x1, y1, z1 = getElementBoundingBox(vehicle)
outputChatBox(("Długość auta: %.1f m"):format(y1 - y0))
```

### getElementDistanceFromCentreOfMassToBaseOfModel

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca odległość od środka ciężkości elementu do spodu jego modelu. Przydaje się do stawiania elementów na ziemi.

#### Składnia

```lua
float getElementDistanceFromCentreOfMassToBaseOfModel(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Odległość w metrach.

#### Przykład

```lua
local base = getElementDistanceFromCentreOfMassToBaseOfModel(vehicle)
local x, y = getElementPosition(vehicle)
local ground = getGroundPosition(x, y, 100)
outputChatBox(("Auto powinno stać na Z = %.2f"):format(ground + base))
```

### getElementHighlight

*Funkcja · Strona: Klient · Kategoria: Elementy · Tylko Trilogy Hub*

Zwraca poświatę ustawioną przez `setElementHighlight`.

#### Składnia

```lua
int getElementHighlight(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`r, g, b, strength` albo `false`, gdy element nie ma poświaty.

#### Przykład

```lua
local r, g, b = getElementHighlight(localPlayer)
if r then outputChatBox(("poswiata %d %d %d"):format(r, g, b)) end
```

#### Zobacz też

- [`setElementHighlight`](https://trilogy-hub.com/docs/setElementHighlight/)

### getElementLighting

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca, jak mocno element jest oświetlony (0 ciemno, 1 jasno).

#### Składnia

```lua
float getElementLighting(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Oświetlenie 0-1.

#### Przykład

```lua
if getElementLighting(localPlayer) < 0.3 then
    outputChatBox("Jest ciemno, włącz latarkę.")
end
```

### isElementCollidableWith

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy dwa elementy mogą się zderzyć.

#### Składnia

```lua
bool isElementCollidableWith(element theElement, element withElement)
```

#### Argumenty

- `theElement` (element) - Pierwszy element.
- `withElement` (element) - Drugi element.

#### Zwraca

`true`, jeśli mogą się zderzyć.

#### Przykład

```lua
if not isElementCollidableWith(localPlayer, ghostCar) then
    outputChatBox("Przenikasz przez auto-ducha.")
end
```

#### Zobacz też

- [`setElementCollidableWith`](https://trilogy-hub.com/docs/setElementCollidableWith/)

### isElementLocal

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element istnieje tylko u tego gracza (utworzony skryptem klienta, nie zna go serwer).

#### Składnia

```lua
bool isElementLocal(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true` dla elementu lokalnego.

#### Przykład

```lua
local zone = createColSphere(0, 0, 3, 5)
outputChatBox(tostring(isElementLocal(zone)))
```

### isElementOnScreen

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest widoczny na ekranie gracza.

#### Składnia

```lua
bool isElementOnScreen(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli na ekranie.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    for _, veh in ipairs(getElementsByType("vehicle")) do
        if isElementOnScreen(veh) then
            local x, y, z = getElementPosition(veh)
            local sx, sy = getScreenFromWorldPosition(x, y, z + 1.5)
            if sx then dxDrawText(getVehicleName(veh), sx, sy) end
        end
    end
end)
```

### isElementStreamable

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element może znikać, gdy gracz się oddali (strumieniowanie).

#### Składnia

```lua
bool isElementStreamable(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli podlega strumieniowaniu.

#### Przykład

```lua
outputChatBox(tostring(isElementStreamable(vehicle)))
```

### isElementStreamedIn

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest wczytany u tego gracza.

#### Składnia

```lua
bool isElementStreamedIn(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli wczytany.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    if isElement(vehicle) and isElementStreamedIn(vehicle) then
        local x, y, z = getElementPosition(vehicle)
        local sx, sy = getScreenFromWorldPosition(x, y, z + 1)
        if sx then dxDrawText("Na sprzedaż", sx, sy) end
    end
end)
```

#### Zobacz też

- [`onClientElementStreamIn`](https://trilogy-hub.com/docs/onClientElementStreamIn/)

### isElementSyncer

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy to gracz lokalny liczy fizykę elementu.

#### Składnia

```lua
bool isElementSyncer(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli liczy go ten gracz.

#### Przykład

```lua
if isElementSyncer(vehicle) then
    outputChatBox("Twoja gra liczy to auto.")
end
```

#### Zobacz też

- [`getElementSyncer`](https://trilogy-hub.com/docs/getElementSyncer/)
- [`setElementSyncer`](https://trilogy-hub.com/docs/setElementSyncer/)

### isElementWaitingForGroundToLoad

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element czeka na wczytanie terenu pod sobą (wtedy jest zatrzymany w powietrzu).

#### Składnia

```lua
bool isElementWaitingForGroundToLoad(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli czeka.

#### Przykład

```lua
if isElementWaitingForGroundToLoad(localPlayer) then
    dxDrawText("Wczytywanie terenu...", 20, 20)
end
```

### setElementCollidableWith

*Funkcja · Strona: Klient · Kategoria: Elementy · Identyczna z MTA:SA*

Włącza albo wyłącza kolizję między dwoma elementami, tylko u tego gracza i w obie strony. Przydaje się do trybu ducha: Twoje auto przenika przez auta innych graczy, ale dalej zderza się ze ścianami, beczkami i resztą mapy.

#### Składnia

```lua
bool setElementCollidableWith(element theElement, element withElement, bool enabled)
```

#### Argumenty

- `theElement` (element) - Pierwszy element.
- `withElement` (element) - Drugi element.
- `enabled` (bool) - `false` wyłącza kolizję tej pary, `true` ją przywraca.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Tryb ducha na starcie wyścigu.

```lua
local mine = getPedOccupiedVehicle(localPlayer)
for _, v in ipairs(getElementsByType("vehicle", root, true)) do
    if v ~= mine then setElementCollidableWith(mine, v, false) end
end
```

#### Uwagi

> **Uwaga:** **Jak to działa.** Gra nie zna kolizji „tylko z tym jednym elementem”, więc pojazd prowadzony przez kogoś innego przestaje u Ciebie kolidować w ogóle (jego pozycję i tak podaje synchronizacja). Twoje auto i Twoja postać zachowują pełną kolizję. Skutek widzi tylko ten gracz, u którego wywołano funkcję.

#### Zobacz też

- [`isElementCollidableWith`](https://trilogy-hub.com/docs/isElementCollidableWith/)
- [`setElementCollisionsEnabled`](https://trilogy-hub.com/docs/setElementCollisionsEnabled/)

### setElementHighlight

*Funkcja · Strona: Klient · Kategoria: Elementy · Tylko Trilogy Hub*

Rozjaśnia cały model elementu kolorem (poświata) tylko u tego gracza: NPC, gracza (także własną postać), pojazd albo obiekt. Wołane z `false` zamiast koloru zdejmuje poświatę.

#### Składnia

```lua
bool setElementHighlight(element theElement, int r [, int g, int b, float strength = 1])
```

#### Argumenty

- `theElement` (element) - Ped, gracz, pojazd albo obiekt.
- `r` (int) - Czerwony 0-255 albo `false`, żeby zdjąć poświatę.
- `g` (int, opcjonalny) - Zielony 0-255.
- `b` (int, opcjonalny) - Niebieski 0-255.
- `strength` (float, opcjonalny = 1) - Siła 0-10.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Podświetlenie NPC bliżej niż 10 m.

```lua
setTimer(function()
    local x, y, z = getElementPosition(localPlayer)
    for _, ped in ipairs(getElementsByType("ped", root, true)) do
        local px, py, pz = getElementPosition(ped)
        if getDistanceBetweenPoints3D(x, y, z, px, py, pz) < 10 then
            setElementHighlight(ped, 255, 200, 0, 1.5)
        else
            setElementHighlight(ped, false)
        end
    end
end, 250, 0)
```

#### Uwagi

> **Ostrzeżenie:** **To rozjaśnienie powierzchni modelu, nie obrys.** Kolor dodaje się do oświetlenia materiałów gry, więc ciemne części świecą słabiej.

> **Uwaga:** Najwyżej 128 elementów naraz. Poświata znika przy zniszczeniu elementu i po zatrzymaniu zasobu, który ją ustawił. Element poza zasięgiem dostaje ją, gdy się pojawi.

#### Zobacz też

- [`getElementHighlight`](https://trilogy-hub.com/docs/getElementHighlight/)
- [`setElementAlpha`](https://trilogy-hub.com/docs/setElementAlpha/)

### getPlayerVoiceLevel

*Funkcja · Strona: Klient · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca, jak głośno gracz teraz mówi: `-1` gdy milczy, a gdy mówi stopień od `0` (cicho) do `3` (głośno). Przydaje się do własnych wskaźników mowy.

#### Składnia

```lua
int getPlayerVoiceLevel(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Poziom od `-1` do `3`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    for _, p in ipairs(getElementsByType("player")) do
        local level = getPlayerVoiceLevel(p)
        if level >= 0 then
            local x, y, z = getPedBonePosition(p, 8)
            local sx, sy = getScreenFromWorldPosition(x, y, z + 0.4)
            if sx then dxDrawRectangle(sx - 2, sy - level * 6, 4, 6 + level * 6, tocolor(80, 220, 120)) end
        end
    end
end)
```

#### Zobacz też

- [`isPlayerTalking`](https://trilogy-hub.com/docs/isPlayerTalking/)

### getVoicePushToTalkKey

*Funkcja · Strona: Klient · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca klawisz mówienia lokalnego gracza: jego własny z menu ESC albo, gdy go nie wybrał, domyślny klawisz serwera. Druga wartość to nazwa do pokazania na ekranie.

#### Składnia

```lua
string, string getVoicePushToTalkKey()
```

#### Zwraca

Nazwa klawisza (jak w `bindKey`) i jego napis, np. `"z", "Z"`.

#### Przykład

```lua
local key, label = getVoicePushToTalkKey()
outputChatBox("Aby mówić, przytrzymaj " .. label)
```

#### Zobacz też

- [`getVoiceSettings`](https://trilogy-hub.com/docs/getVoiceSettings/)
- [`setVoiceSetting`](https://trilogy-hub.com/docs/setVoiceSetting/)

### guiBlur

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zdejmuje skupienie z kontrolki, więc pisanie przestaje do niej trafiać.

#### Składnia

```lua
bool guiBlur(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientGUIAccepted", chatEdit, function()
    guiBlur(chatEdit)
end, false)
```

#### Zobacz też

- [`guiFocus`](https://trilogy-hub.com/docs/guiFocus/)
- [`onClientGUIBlur`](https://trilogy-hub.com/docs/onClientGUIBlur/)

### guiBringToFront

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przenosi okno albo kontrolkę na wierzch.

#### Składnia

```lua
bool guiBringToFront(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiSetVisible(win, true)
guiBringToFront(win)
```

#### Zobacz też

- [`guiMoveToBack`](https://trilogy-hub.com/docs/guiMoveToBack/)

### guiCheckBoxGetSelected

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy pole wyboru jest zaznaczone.

#### Składnia

```lua
bool guiCheckBoxGetSelected(gui-checkbox theCheckbox)
```

#### Argumenty

- `theCheckbox` (gui-checkbox) - Pole wyboru.

#### Zwraca

`true`, jeśli zaznaczone.

#### Przykład

```lua
if guiCheckBoxGetSelected(musicBox) then
    setSoundVolume(music, 1)
end
```

### guiCheckBoxSetSelected

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zaznacza albo odznacza pole wyboru.

#### Składnia

```lua
bool guiCheckBoxSetSelected(gui-checkbox theCheckbox, bool state)
```

#### Argumenty

- `theCheckbox` (gui-checkbox) - Pole wyboru.
- `state` (bool) - `true` zaznacza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiCheckBoxSetSelected(musicBox, false)
```

### guiComboBoxAddItem

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Dodaje pozycję do listy rozwijanej.

#### Składnia

```lua
int guiComboBoxAddItem(gui-combobox comboBox, string value)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.
- `value` (string) - Tekst pozycji.

#### Zwraca

Numer pozycji (od 0).

#### Przykład

```lua
for _, name in ipairs({ "Los Santos", "San Fierro", "Las Venturas" }) do
    guiComboBoxAddItem(cityCombo, name)
end
```

### guiComboBoxClear

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Usuwa wszystkie pozycje z listy rozwijanej.

#### Składnia

```lua
bool guiComboBoxClear(gui-combobox comboBox)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiComboBoxClear(playerCombo)
for _, p in ipairs(getElementsByType("player")) do
    guiComboBoxAddItem(playerCombo, getPlayerName(p))
end
```

### guiComboBoxGetItemCount

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca liczbę pozycji listy rozwijanej.

#### Składnia

```lua
int guiComboBoxGetItemCount(gui-combobox comboBox)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.

#### Zwraca

Liczba pozycji.

#### Przykład

```lua
outputChatBox(guiComboBoxGetItemCount(cityCombo) .. " miast")
```

### guiComboBoxGetItemText

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca tekst pozycji listy rozwijanej.

#### Składnia

```lua
string guiComboBoxGetItemText(gui-combobox comboBox, int itemId)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.
- `itemId` (int) - Numer pozycji (od 0).

#### Zwraca

Tekst albo `false`.

#### Przykład

```lua
local i = guiComboBoxGetSelected(cityCombo)
if i >= 0 then outputChatBox(guiComboBoxGetItemText(cityCombo, i)) end
```

### guiComboBoxGetSelected

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca numer wybranej pozycji (od 0) albo `-1`, gdy nic nie wybrano.

#### Składnia

```lua
int guiComboBoxGetSelected(gui-combobox comboBox)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.

#### Zwraca

Numer pozycji.

#### Przykład

```lua
if guiComboBoxGetSelected(cityCombo) == -1 then
    guiNotify("Wybierz miasto", "warning")
end
```

### guiComboBoxIsOpen

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy lista rozwijana jest rozwinięta.

#### Składnia

```lua
bool guiComboBoxIsOpen(gui-combobox comboBox)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.

#### Zwraca

`true`, jeśli rozwinięta.

#### Przykład

```lua
if guiComboBoxIsOpen(cityCombo) then guiComboBoxSetOpen(cityCombo, false) end
```

### guiComboBoxRemoveItem

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Usuwa pozycję z listy rozwijanej.

#### Składnia

```lua
bool guiComboBoxRemoveItem(gui-combobox comboBox, int itemId)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.
- `itemId` (int) - Numer pozycji (od 0).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiComboBoxRemoveItem(cityCombo, 0)
```

### guiComboBoxSetItemText

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zmienia tekst pozycji listy rozwijanej.

#### Składnia

```lua
bool guiComboBoxSetItemText(gui-combobox comboBox, int itemId, string text)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.
- `itemId` (int) - Numer pozycji (od 0).
- `text` (string) - Nowy tekst.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiComboBoxSetItemText(cityCombo, 0, "Los Santos (tu jesteś)")
```

### guiComboBoxSetOpen

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Rozwija albo zwija listę rozwijaną.

#### Składnia

```lua
bool guiComboBoxSetOpen(gui-combobox comboBox, bool state)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.
- `state` (bool) - `true` rozwija.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiComboBoxSetOpen(cityCombo, true)
```

### guiComboBoxSetSelected

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Wybiera pozycję listy rozwijanej. `-1` czyści wybór.

#### Składnia

```lua
bool guiComboBoxSetSelected(gui-combobox comboBox, int itemIndex)
```

#### Argumenty

- `comboBox` (gui-combobox) - Lista.
- `itemIndex` (int) - Numer pozycji (od 0).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiComboBoxSetSelected(cityCombo, 0)
```

### guiCreateBrowser

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy przeglądarkę jako kontrolkę GUI. Mysz, kółko i klawiatura trafiają do strony same. Element przeglądarki do `loadBrowserURL` dostajesz przez `guiGetBrowser`.

#### Składnia

```lua
gui-browser guiCreateBrowser(float x, float y, float width, float height, bool isLocal, bool isTransparent, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `isLocal` (bool) - Strona lokalna (pliki zasobu).
- `isTransparent` (bool) - Przezroczyste tło.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Kontrolka przeglądarki.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateBrowser(float x, float y, float width, float height, bool isLocal, bool isTransparent, bool isRelative = false, gui-element parent = nil)`

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 820, 640, "Pomoc", false)
local gb = guiCreateBrowser(10, 35, 800, 595, true, false, false, win)
local browser = guiGetBrowser(gb)
addEventHandler("onClientBrowserCreated", browser, function()
    loadBrowserURL(source, "http://trilogy/local/help.html")
end)
```

#### Zobacz też

- [`guiGetBrowser`](https://trilogy-hub.com/docs/guiGetBrowser/)
- [`createBrowser`](https://trilogy-hub.com/docs/createBrowser/)

### guiCreateButton

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy przycisk. Kliknięcie wywołuje `onClientGUIClick`.

#### Składnia

```lua
gui-button guiCreateButton(float x, float y, float width, float height, string text, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `text` (string) - Napis.
- `relative` (bool) - Wartości względne (0-1) zamiast pikseli.
- `parent` (element, opcjonalny = nil) - Rodzic, np. okno.

#### Zwraca

Przycisk.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateButton(float x, float y, float width, float height, string text, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local btn = guiCreateButton(20, 20, 140, 36, "Napraw auto", false)
addEventHandler("onClientGUIClick", btn, function(button)
    if button == "left" then
        triggerServerEvent("fixMyCar", localPlayer)
    end
end, false)
```

#### Uwagi

> **Uwaga:** **Trzeci argument `false`.** Dodając obsługę do jednego przycisku, podaj `false` jako czwarty argument `addEventHandler`, żeby nie łapać kliknięć dzieci.

#### Zobacz też

- [`onClientGUIClick`](https://trilogy-hub.com/docs/onClientGUIClick/)

### guiCreateCheckBox

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy pole wyboru (tak/nie).

#### Składnia

```lua
gui-checkbox guiCreateCheckBox(float x, float y, float width, float height, string text, bool selected, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `text` (string) - Napis.
- `selected` (bool) - Czy zaznaczone na start.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Pole wyboru.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateCheckBox(float x, float y, float width, float height, string text, bool selected, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local hud = guiCreateCheckBox(20, 20, 200, 24, "Pokaż licznik", true, false)
addEventHandler("onClientGUIClick", hud, function()
    showSpeedo = guiCheckBoxGetSelected(hud)
end, false)
```

#### Zobacz też

- [`guiCheckBoxGetSelected`](https://trilogy-hub.com/docs/guiCheckBoxGetSelected/)

### guiCreateComboBox

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy listę rozwijaną. Wybór pozycji wywołuje `onClientGUIComboBoxAccepted`.

#### Składnia

```lua
gui-combobox guiCreateComboBox(float x, float y, float width, float height, string caption, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość rozwiniętej listy.
- `caption` (string) - Tekst, gdy nic nie wybrano.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Lista.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateComboBox(float x, float y, float width, float height, string caption, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local combo = guiCreateComboBox(20, 20, 200, 150, "Wybierz pogodę", false)
for _, name in ipairs({ "Słońce", "Chmury", "Deszcz" }) do
    guiComboBoxAddItem(combo, name)
end
addEventHandler("onClientGUIComboBoxAccepted", combo, function()
    local i = guiComboBoxGetSelected(combo)
    outputChatBox("Wybrano: " .. guiComboBoxGetItemText(combo, i))
end, false)
```

#### Zobacz też

- [`guiComboBoxAddItem`](https://trilogy-hub.com/docs/guiComboBoxAddItem/)
- [`guiComboBoxGetSelected`](https://trilogy-hub.com/docs/guiComboBoxGetSelected/)

### guiCreateEdit

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy jednolinijkowe pole tekstowe. Zmiana tekstu wywołuje `onClientGUIChanged`, Enter `onClientGUIAccepted`.

#### Składnia

```lua
gui-edit guiCreateEdit(float x, float y, float width, float height, string text, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `text` (string) - Tekst początkowy.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Pole.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateEdit(float x, float y, float width, float height, string text, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local edit = guiCreateEdit(20, 20, 260, 30, "", false)
guiEditSetMaxLength(edit, 24)
addEventHandler("onClientGUIAccepted", edit, function()
    outputChatBox("Wpisano: " .. guiGetText(edit))
end, false)
```

#### Zobacz też

- [`guiEditSetMasked`](https://trilogy-hub.com/docs/guiEditSetMasked/)
- [`guiEditSetMaxLength`](https://trilogy-hub.com/docs/guiEditSetMaxLength/)
- [`onClientGUIAccepted`](https://trilogy-hub.com/docs/onClientGUIAccepted/)

### guiCreateFont

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Tworzy czcionkę z pliku TTF zasobu do `guiSetFont`. Rozmiar w punktach.

#### Składnia

```lua
font guiCreateFont(string filepath [, int size = 9])
```

#### Argumenty

- `filepath` (string) - Ścieżka do pliku TTF.
- `size` (int, opcjonalny = 9) - Rozmiar w punktach.

#### Zwraca

Czcionka albo `false`.

#### Przykład

```lua
local font = guiCreateFont("fonts/roboto.ttf", 12)
local title = guiCreateLabel(20, 20, 400, 30, "Sklep z bronią", false)
guiSetFont(title, font)
```

#### Zobacz też

- [`guiSetFont`](https://trilogy-hub.com/docs/guiSetFont/)
- [`dxCreateFont`](https://trilogy-hub.com/docs/dxCreateFont/)

### guiCreateGridList

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy listę z kolumnami (tabelę). Kolumny dodajesz przez `guiGridListAddColumn`, wiersze przez `guiGridListAddRow`.

#### Składnia

```lua
gui-gridlist guiCreateGridList(float x, float y, float width, float height, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Lista.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateGridList(float x, float y, float width, float height, bool relative = false, gui-element parent = nil)`

#### Przykład

Lista graczy ze zdrowiem.

```lua
local win = guiCreateWindow(100, 100, 360, 400, "Gracze", false)
local list = guiCreateGridList(10, 35, 340, 355, false, win)
guiGridListAddColumn(list, "Nick", 0.7)
guiGridListAddColumn(list, "Zdrowie", 0.2)
for _, p in ipairs(getElementsByType("player")) do
    local row = guiGridListAddRow(list, getPlayerName(p), math.floor(getElementHealth(p)))
    guiGridListSetItemData(list, row, 1, p)
end
```

#### Zobacz też

- [`guiGridListAddColumn`](https://trilogy-hub.com/docs/guiGridListAddColumn/)
- [`guiGridListAddRow`](https://trilogy-hub.com/docs/guiGridListAddRow/)
- [`guiGridListGetSelectedItem`](https://trilogy-hub.com/docs/guiGridListGetSelectedItem/)

### guiCreateLabel

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy napis.

#### Składnia

```lua
gui-label guiCreateLabel(float x, float y, float width, float height, string text, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `text` (string) - Tekst.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Napis.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateLabel(float x, float y, float width, float height, string text, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local label = guiCreateLabel(20, 20, 300, 24, "Witaj na serwerze!", false)
guiLabelSetColor(label, 255, 200, 0)
guiSetFont(label, "default-bold")
```

#### Zobacz też

- [`guiLabelSetColor`](https://trilogy-hub.com/docs/guiLabelSetColor/)
- [`guiLabelSetHorizontalAlign`](https://trilogy-hub.com/docs/guiLabelSetHorizontalAlign/)

### guiCreateMemo

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy wielolinijkowe pole tekstowe.

#### Składnia

```lua
gui-memo guiCreateMemo(float x, float y, float width, float height, string text, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `text` (string) - Tekst początkowy.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Pole.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateMemo(float x, float y, float width, float height, string text, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 420, 300, "Zasady", false)
local memo = guiCreateMemo(10, 35, 400, 255, "1. Szanuj innych.\n2. Bez cheatów.\n3. Baw się dobrze!", false, win)
guiMemoSetReadOnly(memo, true)
```

### guiCreateProgressBar

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy pasek postępu (0-100).

#### Składnia

```lua
gui-progressbar guiCreateProgressBar(float x, float y, float width, float height, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Pasek.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateProgressBar(float x, float y, float width, float height, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local bar = guiCreateProgressBar(20, 20, 300, 24, false)
local p = 0
setTimer(function()
    p = p + 10
    guiProgressBarSetProgress(bar, p)
end, 500, 10)
```

#### Zobacz też

- [`guiProgressBarSetProgress`](https://trilogy-hub.com/docs/guiProgressBarSetProgress/)

### guiCreateRadioButton

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy przycisk wyboru jednej opcji z grupy. Grupę tworzą przyciski z tym samym rodzicem.

#### Składnia

```lua
gui-radiobutton guiCreateRadioButton(float x, float y, float width, float height, string text, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `text` (string) - Napis.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Przycisk wyboru.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateRadioButton(float x, float y, float width, float height, string text, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 240, 150, "Pora dnia", false)
local day = guiCreateRadioButton(20, 40, 200, 24, "Dzień", false, win)
local night = guiCreateRadioButton(20, 70, 200, 24, "Noc", false, win)
guiRadioButtonSetSelected(day, true)
```

#### Zobacz też

- [`guiRadioButtonSetSelected`](https://trilogy-hub.com/docs/guiRadioButtonSetSelected/)

### guiCreateScrollBar

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy pasek przewijania (0-100). Przesunięcie wywołuje `onClientGUIScroll`.

#### Składnia

```lua
gui-scrollbar guiCreateScrollBar(float x, float y, float width, float height, bool horizontal, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `horizontal` (bool) - `true` poziomy.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Pasek.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateScrollBar(float x, float y, float width, float height, bool horizontal, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local bar = guiCreateScrollBar(20, 20, 300, 20, true, false)
addEventHandler("onClientGUIScroll", bar, function()
    outputChatBox("Pozycja: " .. guiScrollBarGetScrollPosition(bar))
end, false)
```

#### Zobacz też

- [`guiScrollBarGetScrollPosition`](https://trilogy-hub.com/docs/guiScrollBarGetScrollPosition/)

### guiCreateScrollPane

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy przewijany obszar. Kontrolki dodane jako dzieci, które się nie mieszczą, można przewinąć.

#### Składnia

```lua
gui-scrollpane guiCreateScrollPane(float x, float y, float width, float height, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Obszar.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateScrollPane(float x, float y, float width, float height, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 320, 300, "Lista", false)
local pane = guiCreateScrollPane(10, 35, 300, 255, false, win)
for i = 1, 30 do
    guiCreateLabel(0, (i - 1) * 24, 280, 22, "Pozycja " .. i, false, pane)
end
```

### guiCreateSlider

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Tworzy suwak wartości 0-100. Zmiana wywołuje `onClientGUIChanged`.

#### Składnia

```lua
gui-slider guiCreateSlider(float x, float y, float width, float height, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Suwak.

#### Przykład

```lua
local slider = guiCreateSlider(20, 20, 260, 24, false)
guiSliderSetValue(slider, 50)
addEventHandler("onClientGUIChanged", slider, function()
    setSoundVolume(music, guiSliderGetValue(slider) / 100)
end, false)
```

#### Zobacz też

- [`guiSliderGetValue`](https://trilogy-hub.com/docs/guiSliderGetValue/)
- [`guiSliderSetValue`](https://trilogy-hub.com/docs/guiSliderSetValue/)

### guiCreateStaticImage

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy obrazek z pliku zasobu (PNG, JPG). Plik musi być w `meta.xml`.

#### Składnia

```lua
gui-staticimage guiCreateStaticImage(float x, float y, float width, float height, string path, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `path` (string) - Ścieżka do pliku.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Obrazek albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateStaticImage(float x, float y, float width, float height, string path, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local logo = guiCreateStaticImage(20, 20, 256, 128, "img/logo.png", false)
```

```xml
<meta>
    <script src="client.lua" type="client" />
    <file src="img/logo.png" />
</meta>
```

#### Zobacz też

- [`guiStaticImageLoadImage`](https://trilogy-hub.com/docs/guiStaticImageLoadImage/)

### guiCreateTab

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Dodaje zakładkę do panelu. Zakładka jest rodzicem dla swoich kontrolek.

#### Składnia

```lua
gui-tab guiCreateTab(string text, gui-tabpanel parent)
```

#### Argumenty

- `text` (string) - Tytuł zakładki.
- `parent` (gui-tabpanel) - Panel.

#### Zwraca

Zakładka.

#### Przykład

```lua
local settings = guiCreateTab("Ustawienia", tabs)
guiCreateCheckBox(10, 10, 200, 24, "Muzyka", true, false, settings)
```

#### Zobacz też

- [`guiDeleteTab`](https://trilogy-hub.com/docs/guiDeleteTab/)
- [`guiCreateTabPanel`](https://trilogy-hub.com/docs/guiCreateTabPanel/)

### guiCreateTabPanel

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy panel z zakładkami. Zakładki dodajesz przez `guiCreateTab`.

#### Składnia

```lua
gui-tabpanel guiCreateTabPanel(float x, float y, float width, float height, bool relative [, element parent = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `relative` (bool) - Wartości względne.
- `parent` (element, opcjonalny = nil) - Rodzic.

#### Zwraca

Panel.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateTabPanel(float x, float y, float width, float height, bool relative = false, gui-element parent = nil)`

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 400, 300, "Panel", false)
local tabs = guiCreateTabPanel(10, 35, 380, 255, false, win)
local tabCars = guiCreateTab("Pojazdy", tabs)
local tabWeapons = guiCreateTab("Bronie", tabs)
guiCreateButton(10, 10, 120, 30, "Infernus", false, tabCars)
guiCreateButton(10, 10, 120, 30, "M4", false, tabWeapons)
```

#### Zobacz też

- [`guiCreateTab`](https://trilogy-hub.com/docs/guiCreateTab/)
- [`guiSetSelectedTab`](https://trilogy-hub.com/docs/guiSetSelectedTab/)

### guiCreateWindow

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Tworzy okno z paskiem tytułu. Okno można przeciągać i skalować, ma przycisk zamknięcia (zdarzenie `onClientGUIClose`). Inne kontrolki dodajesz jako jego dzieci.

#### Składnia

```lua
gui-window guiCreateWindow(float x, float y, float width, float height, string titleBarText, bool relative)
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `titleBarText` (string) - Tytuł.
- `relative` (bool) - `true`: wartości to ułamki ekranu (0-1), `false`: piksele.

#### Zwraca

Okno albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `guiCreateWindow(float x, float y, float width, float height, string titleBarText, bool relative = false)`

#### Przykład

Okno logowania z polami i przyciskiem.

```lua
local sw, sh = guiGetScreenSize()
local win = guiCreateWindow((sw - 360) / 2, (sh - 220) / 2, 360, 220, "Logowanie", false)
guiCreateLabel(20, 45, 320, 20, "Login:", false, win)
local login = guiCreateEdit(20, 65, 320, 30, "", false, win)
guiCreateLabel(20, 105, 320, 20, "Hasło:", false, win)
local pass = guiCreateEdit(20, 125, 320, 30, "", false, win)
guiEditSetMasked(pass, true)
local ok = guiCreateButton(240, 170, 100, 32, "Zaloguj", false, win)
showCursor(true)

addEventHandler("onClientGUIClick", ok, function()
    triggerServerEvent("tryLogin", localPlayer, guiGetText(login), guiGetText(pass))
end, false)
```

#### Zobacz też

- [`guiCreateButton`](https://trilogy-hub.com/docs/guiCreateButton/)
- [`guiWindowSetMovable`](https://trilogy-hub.com/docs/guiWindowSetMovable/)
- [`guiWindowSetSizable`](https://trilogy-hub.com/docs/guiWindowSetSizable/)
- [`onClientGUIClose`](https://trilogy-hub.com/docs/onClientGUIClose/)

### guiDeleteTab

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Usuwa zakładkę z panelu razem z jej kontrolkami.

#### Składnia

```lua
bool guiDeleteTab(gui-tab tabToDelete, gui-tabpanel tabPanel)
```

#### Argumenty

- `tabToDelete` (gui-tab) - Zakładka.
- `tabPanel` (gui-tabpanel) - Panel.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiDeleteTab(adminTab, tabs)
```

### guiEditGetCaretIndex

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca pozycję kursora tekstowego w polu (liczba znaków przed kursorem).

#### Składnia

```lua
int guiEditGetCaretIndex(element theElement)
```

#### Argumenty

- `theElement` (element) - Pole tekstowe.

#### Zwraca

Pozycja.

#### Przykład

```lua
outputChatBox("Kursor na znaku " .. guiEditGetCaretIndex(edit))
```

### guiEditGetMaxLength

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca największą liczbę znaków, jaką można wpisać w pole.

#### Składnia

```lua
int guiEditGetMaxLength(gui-edit guiEdit)
```

#### Argumenty

- `guiEdit` (gui-edit) - Pole.

#### Zwraca

Limit znaków.

#### Przykład

```lua
outputChatBox("Limit: " .. guiEditGetMaxLength(edit))
```

### guiEditIsMasked

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy pole ukrywa tekst gwiazdkami.

#### Składnia

```lua
bool guiEditIsMasked(gui-edit guiEdit)
```

#### Argumenty

- `guiEdit` (gui-edit) - Pole.

#### Zwraca

`true`, jeśli ukrywa.

#### Przykład

```lua
guiEditSetMasked(pass, not guiEditIsMasked(pass))
```

### guiEditIsReadOnly

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy pole jest tylko do odczytu.

#### Składnia

```lua
bool guiEditIsReadOnly(element guiEdit)
```

#### Argumenty

- `guiEdit` (element) - Pole.

#### Zwraca

`true`, jeśli tylko do odczytu.

#### Przykład

```lua
outputChatBox(tostring(guiEditIsReadOnly(edit)))
```

### guiEditSetCaretIndex

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia pozycję kursora tekstowego w polu.

#### Składnia

```lua
bool guiEditSetCaretIndex(element theElement, int index)
```

#### Argumenty

- `theElement` (element) - Pole tekstowe.
- `index` (int) - Pozycja.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiSetText(edit, "/pw ")
guiEditSetCaretIndex(edit, 4)
```

### guiEditSetMasked

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ukrywa wpisywany tekst gwiazdkami, np. dla hasła.

#### Składnia

```lua
bool guiEditSetMasked(gui-edit guiEdit, bool status)
```

#### Argumenty

- `guiEdit` (gui-edit) - Pole.
- `status` (bool) - `true` ukrywa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local pass = guiCreateEdit(20, 60, 260, 30, "", false)
guiEditSetMasked(pass, true)
```

### guiEditSetMaxLength

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia największą liczbę znaków w polu.

#### Składnia

```lua
bool guiEditSetMaxLength(gui-edit guiEdit, int length)
```

#### Argumenty

- `guiEdit` (gui-edit) - Pole.
- `length` (int) - Limit znaków.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiEditSetMaxLength(nickEdit, 22)
```

### guiEditSetReadOnly

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia pole tylko do odczytu (nie da się w nim pisać).

#### Składnia

```lua
bool guiEditSetReadOnly(element guiEdit, bool status)
```

#### Argumenty

- `guiEdit` (element) - Pole.
- `status` (bool) - `true` blokuje pisanie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiEditSetReadOnly(serialEdit, true)
```

### guiFocus

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia skupienie na kontrolce, więc pisanie trafia do niej.

#### Składnia

```lua
bool guiFocus(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local edit = guiCreateEdit(20, 20, 260, 30, "", false)
showCursor(true)
guiFocus(edit)
```

#### Zobacz też

- [`guiBlur`](https://trilogy-hub.com/docs/guiBlur/)
- [`guiGetFocus`](https://trilogy-hub.com/docs/guiGetFocus/)
- [`onClientGUIFocus`](https://trilogy-hub.com/docs/onClientGUIFocus/)

### guiGetAlpha

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca przezroczystość kontrolki (0-1).

#### Składnia

```lua
float guiGetAlpha(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

Krycie 0-1.

#### Przykład

```lua
guiSetAlpha(win, guiGetAlpha(win) - 0.1)
```

### guiGetBrowser

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca element przeglądarki z kontrolki `guiCreateBrowser`.

#### Składnia

```lua
browser guiGetBrowser(gui-browser theBrowser)
```

#### Argumenty

- `theBrowser` (gui-browser) - Kontrolka przeglądarki.

#### Zwraca

Przeglądarka.

#### Przykład

```lua
local browser = guiGetBrowser(gb)
setBrowserVolume(browser, 0.5)
```

### guiGetCursorType

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca rodzaj kursora pasujący do kontrolki pod myszką: `"default"`, `"text"` albo `"sizing"`.

#### Składnia

```lua
string guiGetCursorType()
```

#### Zwraca

Rodzaj kursora.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    if isCursorShowing() then
        dxDrawText(guiGetCursorType(), 10, 10)
    end
end)
```

### guiGetEnabled

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy kontrolka reaguje na mysz i klawiaturę.

#### Składnia

```lua
bool guiGetEnabled(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

`true`, jeśli włączona.

#### Przykład

```lua
if guiGetEnabled(buyButton) then outputChatBox("Możesz kupić") end
```

### guiGetFocus

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zwraca kontrolkę ze skupieniem (tę, do której trafia pisanie).

#### Składnia

```lua
element guiGetFocus()
```

#### Zwraca

Kontrolka albo `false`.

#### Przykład

```lua
bindKey("t", "down", function()
    if guiGetFocus() then return end
    outputChatBox("Klawisz T poza polem tekstowym")
end)
```

### guiGetFont

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca czcionkę kontrolki (nazwę albo uchwyt z `guiCreateFont`).

#### Składnia

```lua
mixed guiGetFont(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

Czcionka.

#### Przykład

```lua
guiSetFont(newLabel, guiGetFont(oldLabel))
```

### guiGetInputEnabled

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy interfejs przejmuje klawiaturę od gry.

#### Składnia

```lua
bool guiGetInputEnabled()
```

#### Zwraca

`true`, jeśli przejmuje.

#### Przykład

```lua
if guiGetInputEnabled() then return end
```

#### Zobacz też

- [`guiSetInputEnabled`](https://trilogy-hub.com/docs/guiSetInputEnabled/)

### guiGetInputMode

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca tryb wejścia interfejsu: `"allow_binds"`, `"no_binds"` albo `"no_binds_when_editing"`.

#### Składnia

```lua
string guiGetInputMode()
```

#### Zwraca

Tryb.

#### Przykład

```lua
outputChatBox(guiGetInputMode())
```

#### Zobacz też

- [`guiSetInputMode`](https://trilogy-hub.com/docs/guiSetInputMode/)

### guiGetPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Zwraca pozycję kontrolki względem rodzica.

#### Składnia

```lua
float guiGetPosition(element guiElement, bool relative)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `relative` (bool) - `true`: ułamek rodzica, `false`: piksele.

#### Zwraca

x, y.

#### Różnice względem MTA:SA

- W MTA:SA: `guiGetPosition(gui-element guiElement, bool relative = false)`

#### Przykład

```lua
local x, y = guiGetPosition(win, false)
guiSetPosition(win, x + 10, y, false)
```

#### Zobacz też

- [`guiSetPosition`](https://trilogy-hub.com/docs/guiSetPosition/)

### guiGetProperties

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca wszystkie właściwości kontrolki, także wbudowane (rodzaj, tekst, pozycja, rozmiar...). Przydaje się przy szukaniu błędów.

#### Składnia

```lua
table guiGetProperties(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

Tablica właściwości.

#### Przykład

```lua
for k, v in pairs(guiGetProperties(win)) do
    outputConsole(k .. " = " .. tostring(v))
end
```

### guiGetProperty

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca własną właściwość kontrolki ustawioną przez `guiSetProperty`.

#### Składnia

```lua
mixed guiGetProperty(element guiElement, string property)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `property` (string) - Nazwa.

#### Zwraca

Wartość albo `false`.

#### Przykład

```lua
outputChatBox(tostring(guiGetProperty(win, "CloseButtonEnabled")))
```

### guiGetScale

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zwraca bieżącą skalę GUI.

#### Składnia

```lua
float guiGetScale()
```

#### Zwraca

Skala.

#### Przykład

```lua
outputChatBox("Skala GUI: " .. guiGetScale())
```

#### Zobacz też

- [`guiSetScale`](https://trilogy-hub.com/docs/guiSetScale/)

### guiGetScreenSize

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca rozmiar ekranu w pikselach.

#### Składnia

```lua
float guiGetScreenSize()
```

#### Zwraca

Szerokość i wysokość.

#### Przykład

```lua
local sw, sh = guiGetScreenSize()
local win = guiCreateWindow(sw / 2 - 200, sh / 2 - 150, 400, 300, "Środek ekranu", false)
```

### guiGetSelectedTab

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca wybraną zakładkę panelu.

#### Składnia

```lua
gui-tab guiGetSelectedTab(gui-tabpanel tabPanel)
```

#### Argumenty

- `tabPanel` (gui-tabpanel) - Panel.

#### Zwraca

Zakładka albo `false`.

#### Przykład

```lua
if guiGetSelectedTab(tabs) == tabCars then
    outputChatBox("Zakładka pojazdów")
end
```

### guiGetSize

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Zwraca rozmiar kontrolki.

#### Składnia

```lua
float guiGetSize(element theElement, bool relative)
```

#### Argumenty

- `theElement` (element) - Kontrolka.
- `relative` (bool) - `true`: ułamek rodzica, `false`: piksele.

#### Zwraca

Szerokość i wysokość.

#### Różnice względem MTA:SA

- W MTA:SA: `guiGetSize(gui-element theElement, bool relative = false)`

#### Przykład

```lua
local w, h = guiGetSize(win, false)
```

### guiGetText

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca tekst kontrolki (napisu, przycisku, pola, tytuł okna).

#### Składnia

```lua
string guiGetText(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

Tekst.

#### Przykład

```lua
addEventHandler("onClientGUIClick", sendButton, function()
    triggerServerEvent("sendReport", localPlayer, guiGetText(reportMemo))
end, false)
```

#### Zobacz też

- [`guiSetText`](https://trilogy-hub.com/docs/guiSetText/)

### guiGetTheme

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zwraca nazwę bieżącego motywu, a jako drugi wynik jego kolory rysowania.

#### Składnia

```lua
string guiGetTheme()
```

#### Zwraca

Nazwa motywu i tablica kolorów.

#### Przykład

```lua
local name = guiGetTheme()
outputChatBox("Motyw: " .. name)
```

#### Zobacz też

- [`guiSetTheme`](https://trilogy-hub.com/docs/guiSetTheme/)

### guiGetThemeColor

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zwraca jeden kolor bieżącego motywu.

#### Składnia

```lua
int guiGetThemeColor(string key)
```

#### Argumenty

- `key` (string) - Klucz, np. `"accent"`, `"windowBg"`, `"text"`.

#### Zwraca

r, g, b, a.

#### Przykład

```lua
local r, g, b = guiGetThemeColor("accent")
dxDrawRectangle(0, 0, 200, 4, tocolor(r, g, b))
```

### guiGetThemeNames

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zwraca nazwy dostępnych motywów (posortowane).

#### Składnia

```lua
table guiGetThemeNames()
```

#### Zwraca

Tablica nazw.

#### Przykład

```lua
for _, name in ipairs(guiGetThemeNames()) do
    guiComboBoxAddItem(themeCombo, name)
end
```

### guiGetVisible

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy kontrolka jest widoczna.

#### Składnia

```lua
bool guiGetVisible(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

`true`, jeśli widoczna.

#### Przykład

```lua
bindKey("F1", "down", function()
    local show = not guiGetVisible(helpWin)
    guiSetVisible(helpWin, show)
    showCursor(show)
end)
```

### guiGetWidgets

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zwraca wszystkie kontrolki najwyższego poziomu (okna i kontrolki bez rodzica). Przydaje się przy szukaniu błędów.

#### Składnia

```lua
table guiGetWidgets()
```

#### Zwraca

Tablica kontrolek.

#### Przykład

```lua
outputConsole("Otwarte okna: " .. #guiGetWidgets())
```

### guiGridListAddColumn

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Dodaje kolumnę do listy. Szerokość podajesz jako ułamek szerokości listy.

#### Składnia

```lua
int guiGridListAddColumn(gui-gridlist gridList, string title, float width)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `title` (string) - Nagłówek.
- `width` (float) - Szerokość 0-1.

#### Zwraca

Numer kolumny (od 1).

#### Przykład

```lua
local list = guiCreateGridList(20, 20, 400, 300, false)
local colName = guiGridListAddColumn(list, "Pojazd", 0.6)
local colPrice = guiGridListAddColumn(list, "Cena", 0.3)
```

#### Uwagi

> **Uwaga:** **Kolumny od 1, wiersze od 0.** Tak samo.

#### Zobacz też

- [`guiGridListAddRow`](https://trilogy-hub.com/docs/guiGridListAddRow/)
- [`guiCreateGridList`](https://trilogy-hub.com/docs/guiCreateGridList/)

### guiGridListAddRow

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Dodaje wiersz. Teksty kolejnych komórek możesz podać od razu jako dalsze argumenty.

#### Składnia

```lua
int guiGridListAddRow(gui-gridlist gridList [, mixed ...])
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `...` (mixed, opcjonalny) - Teksty komórek.

#### Zwraca

Numer wiersza (od 0).

#### Przykład

```lua
local cars = { { 411, "Infernus", 95000 }, { 541, "Bullet", 70000 } }
for _, c in ipairs(cars) do
    local row = guiGridListAddRow(list, c[2], "$" .. c[3])
    guiGridListSetItemData(list, row, 1, c[1])
end
```

#### Zobacz też

- [`guiGridListSetItemText`](https://trilogy-hub.com/docs/guiGridListSetItemText/)
- [`guiGridListSetItemData`](https://trilogy-hub.com/docs/guiGridListSetItemData/)

### guiGridListAutoSizeColumn

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Dopasowuje szerokość kolumny do najdłuższej komórki.

#### Składnia

```lua
bool guiGridListAutoSizeColumn(gui-gridlist gridList, int columnIndex)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `columnIndex` (int) - Numer kolumny (od 1).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListAutoSizeColumn(list, 1)
```

### guiGridListClear

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Usuwa wszystkie wiersze listy (kolumny zostają).

#### Składnia

```lua
bool guiGridListClear(gui-gridlist gridList)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local function refresh()
    guiGridListClear(list)
    for _, p in ipairs(getElementsByType("player")) do
        guiGridListAddRow(list, getPlayerName(p))
    end
end
```

### guiGridListGetColumnCount

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca liczbę kolumn listy.

#### Składnia

```lua
int guiGridListGetColumnCount(gui-gridlist gridList)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.

#### Zwraca

Liczba kolumn.

#### Przykład

```lua
outputChatBox(guiGridListGetColumnCount(list) .. " kolumn")
```

### guiGridListGetColumnTitle

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca nagłówek kolumny.

#### Składnia

```lua
string guiGridListGetColumnTitle(gui-gridlist guiGridlist, int columnIndex)
```

#### Argumenty

- `guiGridlist` (gui-gridlist) - Lista.
- `columnIndex` (int) - Numer kolumny (od 1).

#### Zwraca

Nagłówek albo `false`.

#### Przykład

```lua
outputChatBox(guiGridListGetColumnTitle(list, 1))
```

### guiGridListGetColumnWidth

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Zwraca szerokość kolumny.

#### Składnia

```lua
float guiGridListGetColumnWidth(gui-gridlist gridList, int columnIndex, bool relative)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `columnIndex` (int) - Numer kolumny (od 1).
- `relative` (bool) - `true`: ułamek listy, `false`: piksele.

#### Zwraca

Szerokość.

#### Różnice względem MTA:SA

- W MTA:SA: `guiGridListGetColumnWidth(gui-gridlist gridList, int columnIndex, bool relative = false)`

#### Przykład

```lua
local w = guiGridListGetColumnWidth(list, 1, true)
```

### guiGridListGetHorizontalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca, jak daleko lista jest przewinięta w poziomie (0-100).

#### Składnia

```lua
float guiGridListGetHorizontalScrollPosition(gui-gridlist guiGridlist)
```

#### Argumenty

- `guiGridlist` (gui-gridlist) - Lista.

#### Zwraca

Przewinięcie.

#### Przykład

```lua
outputChatBox(guiGridListGetHorizontalScrollPosition(list))
```

### guiGridListGetItemColor

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca kolor tekstu komórki.

#### Składnia

```lua
int guiGridListGetItemColor(gui-gridlist gridList, int rowIndex, int columnIndex)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Wiersz (od 0).
- `columnIndex` (int) - Kolumna (od 1).

#### Zwraca

r, g, b, a.

#### Przykład

```lua
local r, g, b, a = guiGridListGetItemColor(list, 0, 1)
```

### guiGridListGetItemData

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca wartość przypiętą do komórki przez `guiGridListSetItemData`.

#### Składnia

```lua
mixed guiGridListGetItemData(gui-gridlist gridList, int rowIndex, int columnIndex)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Wiersz (od 0).
- `columnIndex` (int) - Kolumna (od 1).

#### Zwraca

Wartość albo `nil`.

#### Przykład

```lua
addEventHandler("onClientGUIClick", buyButton, function()
    local row = guiGridListGetSelectedItem(list)
    if row ~= -1 then
        triggerServerEvent("buyVehicle", localPlayer, guiGridListGetItemData(list, row, 1))
    end
end, false)
```

### guiGridListGetItemText

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca tekst komórki.

#### Składnia

```lua
string guiGridListGetItemText(gui-gridlist gridList, int rowIndex, int columnIndex)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Wiersz (od 0).
- `columnIndex` (int) - Kolumna (od 1).

#### Zwraca

Tekst albo `false`.

#### Przykład

```lua
addEventHandler("onClientGUIDoubleClick", list, function()
    local row = guiGridListGetSelectedItem(list)
    if row ~= -1 then
        outputChatBox("Wybrano " .. guiGridListGetItemText(list, row, 1))
    end
end, false)
```

### guiGridListGetRowCount

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca liczbę wierszy listy.

#### Składnia

```lua
int guiGridListGetRowCount(gui-gridlist gridList)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.

#### Zwraca

Liczba wierszy.

#### Przykład

```lua
guiSetText(win, "Gracze (" .. guiGridListGetRowCount(list) .. ")")
```

### guiGridListGetSelectedCount

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca liczbę wybranych wierszy (0 albo 1, lista wybiera jeden wiersz).

#### Składnia

```lua
int guiGridListGetSelectedCount(gui-gridlist gridList)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.

#### Zwraca

Liczba wybranych.

#### Przykład

```lua
guiSetEnabled(deleteButton, guiGridListGetSelectedCount(list) > 0)
```

### guiGridListGetSelectedItem

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca wybrany wiersz (od 0) i kolumnę (od 1). Gdy nic nie wybrano: `-1, -1`.

#### Składnia

```lua
int guiGridListGetSelectedItem(gui-gridlist gridList)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.

#### Zwraca

Wiersz i kolumna.

#### Przykład

```lua
addEventHandler("onClientGUIClick", list, function()
    local row, col = guiGridListGetSelectedItem(list)
    if row ~= -1 then
        outputChatBox(guiGridListGetItemText(list, row, col))
    end
end, false)
```

### guiGridListGetSelectedItems

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca listę wybranych komórek jako tablice `{row = ..., column = ...}`.

#### Składnia

```lua
table guiGridListGetSelectedItems(gui-gridlist gridList)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.

#### Zwraca

Tablica komórek.

#### Przykład

```lua
for _, cell in ipairs(guiGridListGetSelectedItems(list)) do
    outputChatBox(guiGridListGetItemText(list, cell.row, cell.column))
end
```

### guiGridListGetSelectionMode

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca tryb zaznaczania wierszy zapisany przez `guiGridListSetSelectionMode`.

#### Składnia

```lua
int guiGridListGetSelectionMode(gui-gridlist gridList)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.

#### Zwraca

Tryb.

#### Przykład

```lua
outputChatBox(guiGridListGetSelectionMode(list))
```

### guiGridListGetVerticalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca, jak daleko lista jest przewinięta w pionie (0-100).

#### Składnia

```lua
float guiGridListGetVerticalScrollPosition(gui-gridlist guiGridlist)
```

#### Argumenty

- `guiGridlist` (gui-gridlist) - Lista.

#### Zwraca

Przewinięcie.

#### Przykład

```lua
local pos = guiGridListGetVerticalScrollPosition(list)
guiGridListClear(list)
for _, p in ipairs(getElementsByType("player")) do
    guiGridListAddRow(list, getPlayerName(p))
end
guiGridListSetVerticalScrollPosition(list, pos)
```

### guiGridListInsertRowAfter

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Wstawia wiersz po wskazanym. `-1` wstawia na początek.

#### Składnia

```lua
int guiGridListInsertRowAfter(gui-gridlist gridList, int rowIndex [, mixed ...])
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Numer wiersza (od 0).
- `...` (mixed, opcjonalny) - Teksty komórek.

#### Zwraca

Numer nowego wiersza.

#### Przykład

```lua
guiGridListInsertRowAfter(list, -1, "Najnowsze", "$0")
```

### guiGridListIsSortingEnabled

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy kliknięcie w nagłówek sortuje listę (domyślnie tak).

#### Składnia

```lua
bool guiGridListIsSortingEnabled(gui-gridlist gridList)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.

#### Zwraca

`true`, jeśli sortowanie jest włączone.

#### Przykład

```lua
outputChatBox(tostring(guiGridListIsSortingEnabled(list)))
```

### guiGridListRemoveColumn

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Usuwa kolumnę razem z jej komórkami.

#### Składnia

```lua
bool guiGridListRemoveColumn(gui-gridlist gridList, int columnIndex)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `columnIndex` (int) - Numer kolumny (od 1).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListRemoveColumn(list, 2)
```

### guiGridListRemoveRow

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Usuwa wiersz.

#### Składnia

```lua
bool guiGridListRemoveRow(gui-gridlist gridList, int rowIndex)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Numer wiersza (od 0).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local row = guiGridListGetSelectedItem(list)
if row ~= -1 then guiGridListRemoveRow(list, row) end
```

### guiGridListSetColumnTitle

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zmienia nagłówek kolumny.

#### Składnia

```lua
bool guiGridListSetColumnTitle(gui-gridlist guiGridlist, int columnIndex, string title)
```

#### Argumenty

- `guiGridlist` (gui-gridlist) - Lista.
- `columnIndex` (int) - Numer kolumny (od 1).
- `title` (string) - Nowy nagłówek.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListSetColumnTitle(list, 2, "Cena ($)")
```

### guiGridListSetColumnWidth

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Ustawia szerokość kolumny.

#### Składnia

```lua
bool guiGridListSetColumnWidth(gui-gridlist gridList, int columnIndex, float width, bool relative)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `columnIndex` (int) - Numer kolumny (od 1).
- `width` (float) - Szerokość.
- `relative` (bool) - `true`: ułamek listy, `false`: piksele.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `guiGridListSetColumnWidth(gui-gridlist gridList, int columnIndex, number width, bool relative = false)`

#### Przykład

```lua
guiGridListSetColumnWidth(list, 1, 0.7, true)
```

### guiGridListSetHorizontalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przewija listę w poziomie (0-100).

#### Składnia

```lua
bool guiGridListSetHorizontalScrollPosition(gui-gridlist guiGridlist, float fPosition)
```

#### Argumenty

- `guiGridlist` (gui-gridlist) - Lista.
- `fPosition` (float) - Przewinięcie 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListSetHorizontalScrollPosition(list, 0)
```

### guiGridListSetItemColor

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia kolor tekstu komórki.

#### Składnia

```lua
bool guiGridListSetItemColor(gui-gridlist gridList, int rowIndex, int columnIndex, int red, int green, int blue [, int alpha = 255])
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Wiersz (od 0).
- `columnIndex` (int) - Kolumna (od 1).
- `red` (int) - Czerwony.
- `green` (int) - Zielony.
- `blue` (int) - Niebieski.
- `alpha` (int, opcjonalny = 255) - Krycie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
for _, p in ipairs(getElementsByType("player")) do
    local row = guiGridListAddRow(list, getPlayerName(p))
    if p == localPlayer then
        guiGridListSetItemColor(list, row, 1, 255, 200, 0)
    end
end
```

### guiGridListSetItemData

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przypina do komórki dowolną wartość niewidoczną dla gracza, np. element albo numer modelu.

#### Składnia

```lua
bool guiGridListSetItemData(gui-gridlist gridList, int rowIndex, int columnIndex, mixed data)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Wiersz (od 0).
- `columnIndex` (int) - Kolumna (od 1).
- `data` (mixed) - Wartość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local row = guiGridListAddRow(list, getPlayerName(target))
guiGridListSetItemData(list, row, 1, target)
```

### guiGridListSetItemText

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia tekst komórki. Z `section = true` wiersz staje się nagłówkiem sekcji.

#### Składnia

```lua
bool guiGridListSetItemText(gui-gridlist gridList, int rowIndex, int columnIndex, string text, bool section, bool number)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Wiersz (od 0).
- `columnIndex` (int) - Kolumna (od 1).
- `text` (string) - Tekst.
- `section` (bool) - Nagłówek sekcji.
- `number` (bool) - Liczba (dla zgodności ze starszymi skryptami).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local header = guiGridListAddRow(list)
guiGridListSetItemText(list, header, 1, "Sportowe", true, false)
local row = guiGridListAddRow(list)
guiGridListSetItemText(list, row, 1, "Infernus", false, false)
```

### guiGridListSetScrollBars

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia, czy lista pokazuje paski przewijania.

#### Składnia

```lua
bool guiGridListSetScrollBars(gui-gridlist guiGridlist, bool horizontalBar, bool verticalBar)
```

#### Argumenty

- `guiGridlist` (gui-gridlist) - Lista.
- `horizontalBar` (bool) - Pasek poziomy.
- `verticalBar` (bool) - Pasek pionowy.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListSetScrollBars(list, false, true)
```

### guiGridListSetSelectedItem

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Wybiera wiersz listy. `-1` czyści wybór. Wywołuje `onClientGUIChanged`.

#### Składnia

```lua
bool guiGridListSetSelectedItem(gui-gridlist gridList, int rowIndex, int columnIndex [, bool bReset = true])
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `rowIndex` (int) - Wiersz (od 0).
- `columnIndex` (int) - Kolumna (od 1).
- `bReset` (bool, opcjonalny = true) - Dla zgodności ze starszymi skryptami.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListSetSelectedItem(list, 0, 1)
```

### guiGridListSetSelectionMode

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zapisuje tryb zaznaczania (numer). Lista zaznacza zawsze jeden wiersz.

#### Składnia

```lua
bool guiGridListSetSelectionMode(gui-gridlist gridList, int mode)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `mode` (int) - Tryb.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListSetSelectionMode(list, 0)
```

### guiGridListSetSortingEnabled

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Włącza albo wyłącza sortowanie po kliknięciu w nagłówek.

#### Składnia

```lua
bool guiGridListSetSortingEnabled(gui-gridlist gridList, bool enabled)
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `enabled` (bool) - `false` wyłącza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListSetSortingEnabled(list, false)
```

### guiGridListSetVerticalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przewija listę w pionie (0-100).

#### Składnia

```lua
bool guiGridListSetVerticalScrollPosition(gui-gridlist guiGridlist, float fPosition)
```

#### Argumenty

- `guiGridlist` (gui-gridlist) - Lista.
- `fPosition` (float) - Przewinięcie 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListSetVerticalScrollPosition(logList, 100)
```

### guiGridListSortByColumn

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Sortuje listę po kolumnie. Liczby porównuje jako liczby, resztę jako tekst. Czyści wybór.

#### Składnia

```lua
bool guiGridListSortByColumn(gui-gridlist gridList, int columnIndex [, bool descending = false])
```

#### Argumenty

- `gridList` (gui-gridlist) - Lista.
- `columnIndex` (int) - Kolumna (od 1).
- `descending` (bool, opcjonalny = false) - Malejąco.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiGridListSortByColumn(list, 2, true)
```

### guiLabelGetColor

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca kolor napisu.

#### Składnia

```lua
int guiLabelGetColor(gui-label theLabel)
```

#### Argumenty

- `theLabel` (gui-label) - Napis.

#### Zwraca

r, g, b.

#### Przykład

```lua
local r, g, b = guiLabelGetColor(label)
```

### guiLabelGetFontHeight

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca wysokość czcionki napisu w pikselach.

#### Składnia

```lua
float guiLabelGetFontHeight(gui-label theLabel)
```

#### Argumenty

- `theLabel` (gui-label) - Napis.

#### Zwraca

Wysokość.

#### Przykład

```lua
local h = guiLabelGetFontHeight(label)
guiSetSize(label, 300, h, false)
```

### guiLabelGetTextExtent

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca szerokość tekstu napisu w pikselach.

#### Składnia

```lua
float guiLabelGetTextExtent(gui-label theLabel)
```

#### Argumenty

- `theLabel` (gui-label) - Napis.

#### Zwraca

Szerokość.

#### Przykład

```lua
local w = guiLabelGetTextExtent(label)
guiSetSize(label, w, guiLabelGetFontHeight(label), false)
```

### guiLabelSetColor

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia kolor napisu.

#### Składnia

```lua
bool guiLabelSetColor(gui-label theElement, int red, int green, int blue)
```

#### Argumenty

- `theElement` (gui-label) - Napis.
- `red` (int) - Czerwony.
- `green` (int) - Zielony.
- `blue` (int) - Niebieski.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiLabelSetColor(statusLabel, 255, 60, 60)
```

### guiLabelSetHorizontalAlign

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Wyrównuje tekst napisu w poziomie i opcjonalnie zawija wiersze.

#### Składnia

```lua
bool guiLabelSetHorizontalAlign(gui-label theLabel, string align [, bool wordwrap = false])
```

#### Argumenty

- `theLabel` (gui-label) - Napis.
- `align` (string) - `"left"`, `"center"` albo `"right"`.
- `wordwrap` (bool, opcjonalny = false) - Zawijanie wierszy.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiLabelSetHorizontalAlign(label, "center", true)
```

### guiLabelSetVerticalAlign

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Wyrównuje tekst napisu w pionie.

#### Składnia

```lua
bool guiLabelSetVerticalAlign(gui-label theLabel, string align)
```

#### Argumenty

- `theLabel` (gui-label) - Napis.
- `align` (string) - `"top"`, `"center"` albo `"bottom"`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiLabelSetVerticalAlign(label, "center")
```

### guiMemoGetCaretIndex

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca pozycję kursora w polu wielolinijkowym. Druga nazwa `guiEditGetCaretIndex`.

#### Składnia

```lua
int guiMemoGetCaretIndex(gui-memo theMemo)
```

#### Argumenty

- `theMemo` (gui-memo) - Pole.

#### Zwraca

Pozycja.

#### Przykład

```lua
outputChatBox(guiMemoGetCaretIndex(memo))
```

### guiMemoGetVerticalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca, jak daleko przewinięte jest pole wielolinijkowe (0-100).

#### Składnia

```lua
float guiMemoGetVerticalScrollPosition(gui-memo theMemo)
```

#### Argumenty

- `theMemo` (gui-memo) - Pole.

#### Zwraca

Przewinięcie 0-100.

#### Przykład

```lua
if guiMemoGetVerticalScrollPosition(rulesMemo) >= 100 then
    guiSetEnabled(acceptButton, true)
end
```

### guiMemoIsReadOnly

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy pole wielolinijkowe jest tylko do odczytu. Druga nazwa `guiEditIsReadOnly`.

#### Składnia

```lua
bool guiMemoIsReadOnly(gui-memo theMemo)
```

#### Argumenty

- `theMemo` (gui-memo) - Pole.

#### Zwraca

`true`, jeśli tylko do odczytu.

#### Przykład

```lua
outputChatBox(tostring(guiMemoIsReadOnly(memo)))
```

### guiMemoSetCaretIndex

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia pozycję kursora w polu wielolinijkowym. Druga nazwa `guiEditSetCaretIndex`.

#### Składnia

```lua
bool guiMemoSetCaretIndex(gui-memo theMemo, int index)
```

#### Argumenty

- `theMemo` (gui-memo) - Pole.
- `index` (int) - Pozycja.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiMemoSetCaretIndex(memo, 0)
```

### guiMemoSetReadOnly

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia pole wielolinijkowe tylko do odczytu. Druga nazwa `guiEditSetReadOnly`.

#### Składnia

```lua
bool guiMemoSetReadOnly(gui-memo theMemo, bool status)
```

#### Argumenty

- `theMemo` (gui-memo) - Pole.
- `status` (bool) - `true` blokuje pisanie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiMemoSetReadOnly(rulesMemo, true)
```

### guiMemoSetVerticalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przewija pole wielolinijkowe (0-100).

#### Składnia

```lua
bool guiMemoSetVerticalScrollPosition(gui-memo theMemo, float position)
```

#### Argumenty

- `theMemo` (gui-memo) - Pole.
- `position` (float) - Przewinięcie 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiMemoSetVerticalScrollPosition(logMemo, 100)
```

### guiMessageBox

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Pokazuje okno dialogowe z przyciskami. Po kliknięciu wywołuje `onClientGUIAccepted` (źródło: okno, argumenty: napis przycisku i jego numer), a potem okno znika.

#### Składnia

```lua
gui-window guiMessageBox(string title, string message [, table buttons = { "OK" }])
```

#### Argumenty

- `title` (string) - Tytuł.
- `message` (string) - Treść.
- `buttons` (table, opcjonalny = { "OK" }) - Napisy przycisków.

#### Zwraca

Okno dialogu.

#### Przykład

```lua
local box = guiMessageBox("Sprzedaż", "Sprzedać auto za $5000?", { "Tak", "Nie" })
addEventHandler("onClientGUIAccepted", box, function(label, index)
    if index == 1 then
        triggerServerEvent("sellCar", localPlayer)
    end
end, false)
```

### guiMoveToBack

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przenosi okno pod pozostałe.

#### Składnia

```lua
bool guiMoveToBack(element guiElement)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiMoveToBack(helpWindow)
```

### guiNotify

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Pokazuje krótkie powiadomienie w prawym dolnym rogu ekranu. Naraz widać najwyżej 6.

#### Składnia

```lua
bool guiNotify(string message [, string kind = "info", int duration = 4000])
```

#### Argumenty

- `message` (string) - Tekst.
- `kind` (string, opcjonalny = "info") - `"info"`, `"success"`, `"warning"` albo `"error"`.
- `duration` (int, opcjonalny = 4000) - Czas w milisekundach (najmniej 500).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEvent("onMoneyReceived", true)
addEventHandler("onMoneyReceived", localPlayer, function(amount)
    guiNotify("Otrzymano $" .. amount, "success")
end)
```

### guiProgressBarGetProgress

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca postęp paska (0-100).

#### Składnia

```lua
float guiProgressBarGetProgress(gui-progressbar theProgressbar)
```

#### Argumenty

- `theProgressbar` (gui-progressbar) - Pasek.

#### Zwraca

Postęp.

#### Przykład

```lua
if guiProgressBarGetProgress(bar) >= 100 then
    guiNotify("Gotowe!", "success")
end
```

### guiProgressBarSetProgress

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia postęp paska (0-100).

#### Składnia

```lua
bool guiProgressBarSetProgress(gui-progressbar theProgressbar, float progress)
```

#### Argumenty

- `theProgressbar` (gui-progressbar) - Pasek.
- `progress` (float) - Postęp 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    guiProgressBarSetProgress(hpBar, getElementHealth(localPlayer))
end)
```

### guiRadioButtonGetSelected

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy przycisk wyboru jest wybrany.

#### Składnia

```lua
bool guiRadioButtonGetSelected(gui-radiobutton guiRadioButton)
```

#### Argumenty

- `guiRadioButton` (gui-radiobutton) - Przycisk wyboru.

#### Zwraca

`true`, jeśli wybrany.

#### Przykład

```lua
local hour = guiRadioButtonGetSelected(night) and 0 or 12
```

### guiRadioButtonSetSelected

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Wybiera przycisk z grupy (pozostałe w grupie się odznaczają).

#### Składnia

```lua
bool guiRadioButtonSetSelected(gui-radiobutton guiRadioButton, bool state)
```

#### Argumenty

- `guiRadioButton` (gui-radiobutton) - Przycisk wyboru.
- `state` (bool) - `true` wybiera.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiRadioButtonSetSelected(day, true)
```

### guiRegisterTheme

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Dodaje własny motyw. Brakujące kolory bierze z bieżącego motywu.

#### Składnia

```lua
bool guiRegisterTheme(string name, table colors)
```

#### Argumenty

- `name` (string) - Nazwa motywu.
- `colors` (table) - Tablica `{klucz = {r, g, b [, a]}}`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiRegisterTheme("grove", {
    accent = { 40, 170, 60 },
    windowBg = { 16, 24, 18, 245 },
    text = { 230, 240, 230 },
})
guiSetTheme("grove")
```

### guiScrollBarGetScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca pozycję paska przewijania (0-100).

#### Składnia

```lua
float guiScrollBarGetScrollPosition(gui-scrollbar theScrollBar)
```

#### Argumenty

- `theScrollBar` (gui-scrollbar) - Pasek.

#### Zwraca

Pozycja.

#### Przykład

```lua
local value = guiScrollBarGetScrollPosition(bar)
```

### guiScrollBarSetScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia pozycję paska przewijania (0-100).

#### Składnia

```lua
bool guiScrollBarSetScrollPosition(gui-scrollbar theScrollBar, float amount)
```

#### Argumenty

- `theScrollBar` (gui-scrollbar) - Pasek.
- `amount` (float) - Pozycja 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiScrollBarSetScrollPosition(bar, 50)
```

### guiScrollPaneGetHorizontalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca, jak daleko obszar jest przewinięty w poziomie (0-100).

#### Składnia

```lua
float guiScrollPaneGetHorizontalScrollPosition(gui-scrollpane horizontalScrollPane)
```

#### Argumenty

- `horizontalScrollPane` (gui-scrollpane) - Obszar.

#### Zwraca

Przewinięcie.

#### Przykład

```lua
outputChatBox(guiScrollPaneGetHorizontalScrollPosition(pane))
```

### guiScrollPaneGetVerticalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca, jak daleko obszar jest przewinięty w pionie (0-100).

#### Składnia

```lua
float guiScrollPaneGetVerticalScrollPosition(gui-scrollpane verticalScrollPane)
```

#### Argumenty

- `verticalScrollPane` (gui-scrollpane) - Obszar.

#### Zwraca

Przewinięcie.

#### Przykład

```lua
outputChatBox(guiScrollPaneGetVerticalScrollPosition(pane))
```

### guiScrollPaneSetHorizontalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przewija obszar w poziomie (0-100).

#### Składnia

```lua
bool guiScrollPaneSetHorizontalScrollPosition(gui-scrollpane horizontalScrollPane, float position)
```

#### Argumenty

- `horizontalScrollPane` (gui-scrollpane) - Obszar.
- `position` (float) - Przewinięcie 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiScrollPaneSetHorizontalScrollPosition(pane, 0)
```

### guiScrollPaneSetScrollBars

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia, czy obszar pokazuje paski przewijania.

#### Składnia

```lua
bool guiScrollPaneSetScrollBars(gui-scrollpane scrollPane, bool horizontal, bool vertical)
```

#### Argumenty

- `scrollPane` (gui-scrollpane) - Obszar.
- `horizontal` (bool) - Pasek poziomy.
- `vertical` (bool) - Pasek pionowy.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiScrollPaneSetScrollBars(pane, false, true)
```

### guiScrollPaneSetVerticalScrollPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przewija obszar w pionie (0-100).

#### Składnia

```lua
bool guiScrollPaneSetVerticalScrollPosition(gui-scrollpane verticalScrollPane, float position)
```

#### Argumenty

- `verticalScrollPane` (gui-scrollpane) - Obszar.
- `position` (float) - Przewinięcie 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiScrollPaneSetVerticalScrollPosition(pane, 100)
```

### guiSetAlpha

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia przezroczystość kontrolki (0 niewidoczna, 1 pełna).

#### Składnia

```lua
bool guiSetAlpha(element guiElement, float alpha)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `alpha` (float) - Krycie 0-1.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Okno, które powoli się pojawia.

```lua
guiSetAlpha(win, 0)
local a = 0
setTimer(function()
    a = a + 0.1
    guiSetAlpha(win, a)
end, 30, 10)
```

### guiSetEnabled

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Włącza albo wyłącza kontrolkę. Wyłączona jest wyszarzona i nie reaguje.

#### Składnia

```lua
bool guiSetEnabled(element guiElement, bool enabled)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `enabled` (bool) - `false` wyłącza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientGUIChanged", nickEdit, function()
    guiSetEnabled(okButton, #guiGetText(nickEdit) >= 3)
end, false)
```

### guiSetFont

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia czcionkę kontrolki: nazwę wbudowanej (`"default-normal"`, `"default-small"`, `"default-bold-small"`, `"default-bold"`, `"clear-normal"`, `"sa-header"`, `"sa-gothic"`) albo uchwyt z `guiCreateFont`.

#### Składnia

```lua
bool guiSetFont(element guiElement, mixed font)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `font` (mixed) - Nazwa albo czcionka.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local title = guiCreateLabel(20, 20, 400, 40, "Grove Street", false)
guiSetFont(title, "sa-header")
```

### guiSetInputEnabled

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Przekazuje klawiaturę do interfejsu zamiast do gry (postać nie reaguje na klawisze, bindy nie działają).

#### Składnia

```lua
bool guiSetInputEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `true` przejmuje klawiaturę.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local function openPanel()
    guiSetVisible(win, true)
    showCursor(true)
    guiSetInputEnabled(true)
end
```

#### Zobacz też

- [`guiSetInputMode`](https://trilogy-hub.com/docs/guiSetInputMode/)

### guiSetInputMode

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia tryb wejścia: `"allow_binds"` (bindy działają), `"no_binds"` (nie działają) albo `"no_binds_when_editing"` (nie działają podczas pisania w polu).

#### Składnia

```lua
bool guiSetInputMode(string mode)
```

#### Argumenty

- `mode` (string) - Tryb.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiSetInputMode("no_binds_when_editing")
```

### guiSetPosition

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Przesuwa kontrolkę. Wywołuje `onClientGUIMove`.

#### Składnia

```lua
bool guiSetPosition(element guiElement, float x, float y, bool relative)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `relative` (bool) - Wartości względne.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `guiSetPosition(gui-element theElement, float x, float y, bool relative = false)`

#### Przykład

```lua
local sw, sh = guiGetScreenSize()
local w, h = guiGetSize(win, false)
guiSetPosition(win, (sw - w) / 2, (sh - h) / 2, false)
```

### guiSetProperty

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia właściwość kontrolki. Obsługiwane: `"CloseButtonEnabled"` (przycisk zamknięcia okna) i `"AlwaysOnTop"`; inne nazwy są zapamiętywane dla skryptu.

#### Składnia

```lua
bool guiSetProperty(element guiElement, string property, mixed value)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `property` (string) - Nazwa.
- `value` (mixed) - Wartość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiSetProperty(win, "CloseButtonEnabled", "false")
```

### guiSetScale

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Ustawia skalę całego GUI (0.5-4, domyślnie 1): czcionki, pasek tytułu, wiersze list i zakładek. Pozycje i rozmiary kontrolek zostają w pikselach skryptu.

#### Składnia

```lua
bool guiSetScale(float scale)
```

#### Argumenty

- `scale` (float) - Skala 0.5-4.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local sw, sh = guiGetScreenSize()
guiSetScale(math.min(sw / 1920, sh / 1080))
```

#### Uwagi

> **Uwaga:** **Napisy dopasowują się do pól.** Gdy napis jednowierszowy (przycisk, etykieta, pole wyboru, tytuł okna) albo zakładki nie mieszczą się w swoim miejscu, GUI zmniejsza czcionkę najwyżej do 70%, a resztę kończy wielokropkiem. Dlatego okno liczone od rozdzielczości (np. 1000 * sh / 1080) nie ucina tekstu na małym ekranie, ale czytelniej będzie z `guiSetScale` ustawionym tak samo jak rozmiar okna.

### guiSetSelectedTab

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Wybiera zakładkę panelu.

#### Składnia

```lua
bool guiSetSelectedTab(gui-tabpanel tabPanel, gui-tab theTab)
```

#### Argumenty

- `tabPanel` (gui-tabpanel) - Panel.
- `theTab` (gui-tab) - Zakładka.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiSetSelectedTab(tabs, tabWeapons)
```

### guiSetSize

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowana względem MTA:SA*

Zmienia rozmiar kontrolki. Wywołuje `onClientGUISize`.

#### Składnia

```lua
bool guiSetSize(element guiElement, float width, float height, bool relative)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `relative` (bool) - Wartości względne.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `guiSetSize(gui-element guiElement, float width, float height, bool relative = false)`

#### Przykład

```lua
guiSetSize(win, 500, 400, false)
```

### guiSetText

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zmienia tekst kontrolki.

#### Składnia

```lua
bool guiSetText(element guiElement, string text)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `text` (string) - Nowy tekst.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setTimer(function()
    local now = getRealTime()
    guiSetText(clockLabel, ("%02d:%02d"):format(now.hour, now.minute))
end, 1000, 0)
```

### guiSetTheme

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zmienia motyw całego interfejsu: nazwa (`default`, `sunset`, `midnight`, `ocean`, `emerald`, `crimson`, `grape`, `slate`, `light` albo własny z `guiRegisterTheme`) albo tabela kolorów.

#### Składnia

```lua
bool guiSetTheme(mixed theme)
```

#### Argumenty

- `theme` (mixed) - Nazwa albo tabela `{klucz = {r, g, b [, a]}}`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiSetTheme("midnight")
guiSetTheme({ accent = { 255, 0, 120 } })
```

#### Zobacz też

- [`guiGetThemeNames`](https://trilogy-hub.com/docs/guiGetThemeNames/)
- [`guiSetThemeColor`](https://trilogy-hub.com/docs/guiSetThemeColor/)
- [`guiRegisterTheme`](https://trilogy-hub.com/docs/guiRegisterTheme/)

### guiSetThemeColor

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zmienia jeden kolor bieżącego motywu. Klucze: `accent`, `accentBright`, `accentDim`, `accentText`, `windowBg`, `windowBorder`, `titleBg`, `titleBgActive`, `panelBg`, `fieldBg`, `fieldBorder`, `text`, `textDim`, `textDisabled`, `hover`, `press`, `shadow`, `scrollTrack`, `scrollThumb`.

#### Składnia

```lua
bool guiSetThemeColor(string key, int r, int g, int b [, int a = 255])
```

#### Argumenty

- `key` (string) - Klucz koloru.
- `r` (int) - Czerwony.
- `g` (int) - Zielony.
- `b` (int) - Niebieski.
- `a` (int, opcjonalny = 255) - Krycie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiSetThemeColor("accent", 40, 200, 120)
```

### guiSetVisible

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Pokazuje albo chowa kontrolkę razem z jej dziećmi.

#### Składnia

```lua
bool guiSetVisible(element guiElement, bool state)
```

#### Argumenty

- `guiElement` (element) - Kontrolka.
- `state` (bool) - `true` pokazuje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 300, 200, "Sklep", false)
guiSetVisible(win, false)
```

### guiSliderGetValue

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Zwraca wartość suwaka (0-100).

#### Składnia

```lua
float guiSliderGetValue(gui-slider slider)
```

#### Argumenty

- `slider` (gui-slider) - Suwak.

#### Zwraca

Wartość.

#### Przykład

```lua
local volume = guiSliderGetValue(volumeSlider) / 100
```

### guiSliderSetValue

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Ustawia wartość suwaka (0-100).

#### Składnia

```lua
bool guiSliderSetValue(gui-slider slider, float value)
```

#### Argumenty

- `slider` (gui-slider) - Suwak.
- `value` (float) - Wartość 0-100.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiSliderSetValue(volumeSlider, 75)
```

### guiStaticImageGetNativeSize

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Zwraca prawdziwy rozmiar pliku obrazka w pikselach.

#### Składnia

```lua
int guiStaticImageGetNativeSize(gui-staticimage theImage)
```

#### Argumenty

- `theImage` (gui-staticimage) - Obrazek.

#### Zwraca

Szerokość i wysokość.

#### Przykład

```lua
local w, h = guiStaticImageGetNativeSize(logo)
guiSetSize(logo, w, h, false)
```

### guiStaticImageLoadImage

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Podmienia plik obrazka w kontrolce.

#### Składnia

```lua
bool guiStaticImageLoadImage(gui-staticimage theElement, string filename)
```

#### Argumenty

- `theElement` (gui-staticimage) - Obrazek.
- `filename` (string) - Ścieżka do pliku.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiStaticImageLoadImage(avatar, "img/avatar_" .. getElementModel(localPlayer) .. ".png")
```

### guiWindowIsMovable

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy okno da się przeciągać.

#### Składnia

```lua
bool guiWindowIsMovable(gui-window guiWindow)
```

#### Argumenty

- `guiWindow` (gui-window) - Okno.

#### Zwraca

`true`, jeśli można przeciągać.

#### Przykład

```lua
outputChatBox(tostring(guiWindowIsMovable(win)))
```

### guiWindowIsSizable

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Sprawdza, czy okno da się skalować.

#### Składnia

```lua
bool guiWindowIsSizable(gui-window guiWindow)
```

#### Argumenty

- `guiWindow` (gui-window) - Okno.

#### Zwraca

`true`, jeśli można skalować.

#### Przykład

```lua
outputChatBox(tostring(guiWindowIsSizable(win)))
```

### guiWindowSetMovable

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia, czy okno da się przeciągać myszą.

#### Składnia

```lua
bool guiWindowSetMovable(gui-window theElement, bool status)
```

#### Argumenty

- `theElement` (gui-window) - Okno.
- `status` (bool) - `false` blokuje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiWindowSetMovable(loginWindow, false)
```

### guiWindowSetSizable

*Funkcja · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczna z MTA:SA*

Ustawia, czy okno da się skalować, ciągnąc za krawędź.

#### Składnia

```lua
bool guiWindowSetSizable(gui-window theElement, bool status)
```

#### Argumenty

- `theElement` (gui-window) - Okno.
- `status` (bool) - `false` blokuje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
guiWindowSetSizable(loginWindow, false)
```

### getCamera

*Funkcja · Strona: Klient · Kategoria: Kamera · Zmodyfikowana względem MTA:SA*

Zwraca element kamery gracza, np. do przyczepiania innych elementów albo danych.

#### Składnia

```lua
element getCamera()
```

#### Zwraca

Element kamery.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `getCamera()`

#### Przykład

```lua
local cam = getCamera()
outputChatBox("Kamera: " .. getElementType(cam))
```

### getCameraClip

*Funkcja · Strona: Klient · Kategoria: Kamera · Zmodyfikowana względem MTA:SA*

Zwraca, czy kamera przenika obiekty i pojazdy (ustawienie z `setCameraClip`).

#### Składnia

```lua
bool getCameraClip()
```

#### Zwraca

Obiekty i pojazdy.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `getCameraClip()`

#### Przykład

```lua
local objects, vehicles = getCameraClip()
```

#### Zobacz też

- [`setCameraClip`](https://trilogy-hub.com/docs/setCameraClip/)

### getCameraDrunkLevel

*Funkcja · Strona: Klient · Kategoria: Kamera · Zmodyfikowana względem MTA:SA*

Zwraca poziom chwiania kamery (0-255).

#### Składnia

```lua
int getCameraDrunkLevel()
```

#### Zwraca

Poziom.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `getCameraDrunkLevel()`

#### Przykład

```lua
outputChatBox("Chwianie: " .. getCameraDrunkLevel())
```

#### Zobacz też

- [`setCameraDrunkLevel`](https://trilogy-hub.com/docs/setCameraDrunkLevel/)

### getCameraFieldOfView

*Funkcja · Strona: Klient · Kategoria: Kamera · Identyczna z MTA:SA*

Zwraca pole widzenia zapisane przez `setCameraFieldOfView`.

#### Składnia

```lua
float getCameraFieldOfView([string cameraMode = nil])
```

#### Argumenty

- `cameraMode` (string, opcjonalny = nil) - Tryb kamery (dla zgodności ze starszymi skryptami).

#### Zwraca

Pole widzenia w stopniach.

#### Przykład

```lua
outputChatBox("FOV: " .. tostring(getCameraFieldOfView("player")))
```

#### Zobacz też

- [`setCameraFieldOfView`](https://trilogy-hub.com/docs/setCameraFieldOfView/)

### getCameraGoggleEffect

*Funkcja · Strona: Klient · Kategoria: Kamera · Zmodyfikowana względem MTA:SA*

Zwraca filtr kamery: `"normal"`, `"nightvision"` albo `"thermalvision"`.

#### Składnia

```lua
string getCameraGoggleEffect()
```

#### Zwraca

Filtr.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `getCameraGoggleEffect()`

#### Przykład

```lua
if getCameraGoggleEffect() ~= "normal" then
    setCameraGoggleEffect("normal")
end
```

#### Zobacz też

- [`setCameraGoggleEffect`](https://trilogy-hub.com/docs/setCameraGoggleEffect/)

### getCameraViewMode

*Funkcja · Strona: Klient · Kategoria: Kamera · Zmodyfikowana względem MTA:SA*

Zwraca obecny widok kamery w pojeździe, odczytany z gry: `0` = zderzak (widok z wnętrza), `1` = blisko, `2` = średnio, `3` = daleko. Uwzględnia też zmianę widoku klawiszem przez gracza.

#### Składnia

```lua
int getCameraViewMode()
```

#### Zwraca

Widok 0-3.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `getCameraViewMode()`

#### Przykład

```lua
outputChatBox("Widok: " .. getCameraViewMode())
```

#### Zobacz też

- [`setCameraViewMode`](https://trilogy-hub.com/docs/setCameraViewMode/)

### resetShakeCamera

*Funkcja · Strona: Klient · Kategoria: Kamera · Zmodyfikowana względem MTA:SA*

Kończy potrząsanie kamerą.

#### Składnia

```lua
bool resetShakeCamera()
```

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `resetShakeCamera()`

#### Przykład

```lua
resetShakeCamera()
```

### setCameraClip

*Funkcja · Strona: Klient · Kategoria: Kamera · Identyczna z MTA:SA*

Zapisuje, czy kamera ma przenikać obiekty i pojazdy.

#### Składnia

```lua
bool setCameraClip([bool objects = true, bool vehicles = true])
```

#### Argumenty

- `objects` (bool, opcjonalny = true) - Obiekty.
- `vehicles` (bool, opcjonalny = true) - Pojazdy.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setCameraClip(false, true)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Wartość jest zapamiętywana i zwracana przez `getCameraClip`; kamera gry jeszcze jej nie stosuje.

#### Zobacz też

- [`getCameraClip`](https://trilogy-hub.com/docs/getCameraClip/)

### setCameraDrunkLevel

*Funkcja · Strona: Klient · Kategoria: Kamera · Identyczna z MTA:SA*

Chwieje kamerą jak po alkoholu w grze (0 = brak, 255 = najmocniej). Przy wyższym poziomie sterowanie postacią też lekko się opóźnia.

#### Składnia

```lua
bool setCameraDrunkLevel(int drunkLevel)
```

#### Argumenty

- `drunkLevel` (int) - Poziom 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setCameraDrunkLevel(120)
```

#### Zobacz też

- [`getCameraDrunkLevel`](https://trilogy-hub.com/docs/getCameraDrunkLevel/)

### setCameraFieldOfView

*Funkcja · Strona: Klient · Kategoria: Kamera · Zmodyfikowana względem MTA:SA*

Zapisuje pole widzenia kamery (10-120 stopni).

#### Składnia

```lua
bool setCameraFieldOfView(float fieldOfView [, string cameraMode = nil])
```

#### Argumenty

- `cameraMode` (string, opcjonalny = nil) - Tryb kamery (dla zgodności ze starszymi skryptami).
- `fieldOfView` (float) - Kąt 10-120.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool instant = false`
- W MTA:SA: `setCameraFieldOfView(string cameraMode, float fieldOfView, bool instant = false)`

#### Przykład

```lua
setCameraFieldOfView("player", 90)
```

#### Uwagi

> **Ostrzeżenie:** **Definitive Edition nie pozwala zmienić pola widzenia.** Funkcja zapamiętuje tylko wartość i przy pierwszym użyciu pisze ostrzeżenie. Pole widzenia kamery skryptowej ustawisz w `setCameraMatrix`.

#### Zobacz też

- [`getCameraFieldOfView`](https://trilogy-hub.com/docs/getCameraFieldOfView/)

### setCameraGoggleEffect

*Funkcja · Strona: Klient · Kategoria: Kamera · Identyczna z MTA:SA*

Włącza filtr obrazu gry: noktowizję (zielony, rozjaśniony obraz) albo termowizję (ciepłe postacie i pojazdy na czerwono, reszta na niebiesko). `"normal"` wyłącza filtr. To ten sam efekt co gogle w grze.

#### Składnia

```lua
bool setCameraGoggleEffect(string goggleEffect [, bool noiseEnabled = true])
```

#### Argumenty

- `goggleEffect` (string) - `"normal"`, `"nightvision"` albo `"thermalvision"`.
- `noiseEnabled` (bool, opcjonalny = true) - Nieużywany: gra zawsze dodaje swój szum.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setCameraGoggleEffect("nightvision")
```

#### Zobacz też

- [`getCameraGoggleEffect`](https://trilogy-hub.com/docs/getCameraGoggleEffect/)

### setCameraViewMode

*Funkcja · Strona: Klient · Kategoria: Kamera · Zmodyfikowana względem MTA:SA*

Zmienia widok kamery w pojeździe, tak jak klawisz zmiany widoku w grze: `0` = zderzak (widok z wnętrza), `1` = blisko, `2` = średnio, `3` = daleko. Gracz może potem dalej zmieniać widok klawiszem.

#### Składnia

```lua
bool setCameraViewMode(int viewMode)
```

#### Argumenty

- `viewMode` (int) - Widok 0-3.

#### Zwraca

`true` przy powodzeniu, `false` dla wartości spoza 0-3.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int pedCameraMode = nil`
- W MTA:SA: `setCameraViewMode(int vehicleCameraMode = nil, int pedCameraMode = nil)`

#### Przykład

```lua
setCameraViewMode(2)
```

#### Zobacz też

- [`getCameraViewMode`](https://trilogy-hub.com/docs/getCameraViewMode/)

### shakeCamera

*Funkcja · Strona: Klient · Kategoria: Kamera · Identyczna z MTA:SA*

Potrząsa kamerą przez chwilę, np. przy wybuchu. Siła 0-255.

#### Składnia

```lua
bool shakeCamera(float strength [, float x = 0, float y = 0, float z = 0])
```

#### Argumenty

- `strength` (float) - Siła 0-255.
- `x` (float, opcjonalny = 0) - Źródło X (dla zgodności ze starszymi skryptami).
- `y` (float, opcjonalny = 0) - Źródło Y.
- `z` (float, opcjonalny = 0) - Źródło Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientExplosion", root, function(x, y, z)
    local px, py, pz = getElementPosition(localPlayer)
    local d = getDistanceBetweenPoints3D(x, y, z, px, py, pz)
    if d < 30 then
        shakeCamera(255 * (1 - d / 30))
    end
end)
```

#### Zobacz też

- [`resetShakeCamera`](https://trilogy-hub.com/docs/resetShakeCamera/)

### getCursorAlpha

*Funkcja · Strona: Klient · Kategoria: Kursor · Zmodyfikowana względem MTA:SA*

Zwraca przezroczystość kursora (0-255).

#### Składnia

```lua
int getCursorAlpha()
```

#### Zwraca

Krycie.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `getCursorAlpha()`

#### Przykład

```lua
outputChatBox("Kursor: " .. getCursorAlpha())
```

#### Zobacz też

- [`setCursorAlpha`](https://trilogy-hub.com/docs/setCursorAlpha/)

### getCursorType

*Funkcja · Strona: Klient · Kategoria: Kursor · Tylko Trilogy Hub*

Zwraca obecny kształt kursora: nazwę ustawioną przez `setCursorType` albo kształt, który kursor przyjął sam nad przeglądarką.

#### Składnia

```lua
string getCursorType()
```

#### Zwraca

Nazwa kształtu, np. `"arrow"`, `"hand"`, `"text"`.

#### Przykład

```lua
outputChatBox("Kursor: " .. getCursorType())
```

#### Zobacz też

- [`setCursorType`](https://trilogy-hub.com/docs/setCursorType/)

### setCursorAlpha

*Funkcja · Strona: Klient · Kategoria: Kursor · Identyczna z MTA:SA*

Ustawia przezroczystość kursora w grze (0 = niewidoczny, 255 = pełny). Kursor pokazany przez `showCursor` jest rysowany przez grę, nad HUD-em, GUI i przeglądarkami, więc przezroczystość widać też na zrzutach ekranu.

#### Składnia

```lua
bool setCursorAlpha(int alpha)
```

#### Argumenty

- `alpha` (int) - Krycie 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
showCursor(true)
setCursorAlpha(120)
```

#### Zobacz też

- [`getCursorAlpha`](https://trilogy-hub.com/docs/getCursorAlpha/)
- [`setCursorType`](https://trilogy-hub.com/docs/setCursorType/)
- [`showCursor`](https://trilogy-hub.com/docs/showCursor/)

### setCursorImage

*Funkcja · Strona: Klient · Kategoria: Kursor · Tylko Trilogy Hub*

Zamienia kursor gry na własny obraz: plik PNG z zasobu albo teksturę z `dxCreateTexture` lub `dxCreateRenderTarget`. Wywołanie bez argumentu albo z `false` wraca do wbudowanego kursora.

#### Składnia

```lua
bool setCursorImage([string|texture|bool image = nil, int hotX = 0, int hotY = 0, int width, int height])
```

#### Argumenty

- `image` (string|texture|bool, opcjonalny = nil) - Ścieżka do pliku, tekstura albo `false`.
- `hotX` (int, opcjonalny = 0) - Punkt kliknięcia w obrazie: piksele od lewej krawędzi.
- `hotY` (int, opcjonalny = 0) - Punkt kliknięcia: piksele od górnej krawędzi.
- `width` (int, opcjonalny) - Szerokość na ekranie (domyślnie szerokość obrazu, do 512).
- `height` (int, opcjonalny) - Wysokość na ekranie (domyślnie wysokość obrazu, do 512).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Celownik 32x32, który klika środkiem.

```lua
showCursor(true)
setCursorImage("img/celownik.png", 16, 16)
```

#### Uwagi

> **Uwaga:** **Piksele są kopiowane w chwili wywołania.** Kursor rysowany w render targecie wymaga ponownego wywołania po każdej zmianie. Gdy zasób, który ustawił obraz, zostanie zatrzymany, wraca zwykła strzałka.

#### Zobacz też

- [`setCursorType`](https://trilogy-hub.com/docs/setCursorType/)
- [`setCursorAlpha`](https://trilogy-hub.com/docs/setCursorAlpha/)
- [`showCursor`](https://trilogy-hub.com/docs/showCursor/)

### setCursorType

*Funkcja · Strona: Klient · Kategoria: Kursor · Tylko Trilogy Hub*

Zmienia kształt kursora gry. Bez argumentu kursor wraca do zmieniania kształtu sam: nad linkiem w przeglądarce zmienia się w rękę, nad polem tekstowym w kreskę.

#### Składnia

```lua
bool setCursorType([string name = nil])
```

#### Argumenty

- `name` (string, opcjonalny = nil) - `"arrow"`, `"hand"`, `"text"`, `"crosshair"`, `"move"`, `"wait"`, `"progress"`, `"help"`, `"no"`, `"sizewe"`, `"sizens"`, `"sizenesw"`, `"sizenwse"` albo `"none"` (kursor schowany, sterowanie dalej zablokowane).

#### Zwraca

`true` przy powodzeniu, `false` przy nieznanej nazwie.

#### Przykład

```lua
addEventHandler("onClientGUIMouseDown", root, function()
    setCursorType("move")
end)
addEventHandler("onClientGUIMouseUp", root, function()
    setCursorType()
end)
```

#### Zobacz też

- [`getCursorType`](https://trilogy-hub.com/docs/getCursorType/)
- [`setCursorAlpha`](https://trilogy-hub.com/docs/setCursorAlpha/)
- [`showCursor`](https://trilogy-hub.com/docs/showCursor/)

### resetVehicleComponentVisible

*Funkcja · Strona: Klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Kasuje lokalne (tylko u tego gracza) ustawienie widoczności części pojazdu, więc wraca stan ustawiony przez serwer. Bez nazwy części kasuje lokalne ustawienia wszystkich części pojazdu.

#### Składnia

```lua
bool resetVehicleComponentVisible(vehicle vehicle [, string component = nil])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string, opcjonalny = nil) - Nazwa części; `nil` = wszystkie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = getPedOccupiedVehicle(localPlayer)
if vehicle then resetVehicleComponentVisible(vehicle) end
```

#### Zobacz też

- [`setVehicleComponentVisible`](https://trilogy-hub.com/docs/setVehicleComponentVisible/)
- [`getVehicleComponentVisible`](https://trilogy-hub.com/docs/getVehicleComponentVisible/)

### getPedBoneCount

*Funkcja · Strona: Klient · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca liczbę kości szkieletu postaci w tej wersji gry (szkielet Definitive Edition ma ich więcej niż klasyczny). Gdy gra jeszcze nie pokazała żadnej postaci, zwraca 0. Razem z `getPedBoneName` pozwala wypisać wszystkie kości.

#### Składnia

```lua
int getPedBoneCount()
```

#### Zwraca

Liczba kości (0, gdy szkielet nie jest jeszcze znany).

#### Przykład

```lua
for i = 0, getPedBoneCount() - 1 do
    outputConsole(i .. ": " .. tostring(getPedBoneName(i)))
end
```

#### Zobacz też

- [`getPedBoneName`](https://trilogy-hub.com/docs/getPedBoneName/)
- [`getPedBoneIndexByName`](https://trilogy-hub.com/docs/getPedBoneIndexByName/)

### getPedBoneIndexByName

*Funkcja · Strona: Klient · Kategoria: Postacie · Tylko Trilogy Hub*

Zamienia nazwę kości szkieletu gry na jej indeks, który można potem podać do `getPedBonePosition` i podobnych funkcji. Niektóre nazwy powtarzają się w szkielecie (są np. dwie kości „Spine”); drugi argument wybiera, które wystąpienie zwrócić.

#### Składnia

```lua
int getPedBoneIndexByName(string name [, int occurrence = 0])
```

#### Argumenty

- `name` (string) - Nazwa kości, np. `"Head"`.
- `occurrence` (int, opcjonalny = 0) - Które wystąpienie powtarzającej się nazwy: 0 = pierwsze, 1 = drugie itd.

#### Zwraca

Indeks kości albo `false`/`nil`, gdy nie ma takiej nazwy.

#### Przykład

```lua
local head = getPedBoneIndexByName("Head")
local x, y, z = getPedBonePosition(localPlayer, head)
```

#### Zobacz też

- [`getPedBoneName`](https://trilogy-hub.com/docs/getPedBoneName/)
- [`getPedBoneIndexForMta`](https://trilogy-hub.com/docs/getPedBoneIndexForMta/)

### getPedBoneIndexForMta

*Funkcja · Strona: Klient · Kategoria: Postacie · Tylko Trilogy Hub*

Tłumaczy numer kości ze starszych skryptów (np. 8 = głowa, 25 = prawa dłoń) na indeks kości w szkielecie Definitive Edition. Przydaje się przy przenoszeniu istniejących skryptów, które używają numerów kości. Gdy kość nie ma odpowiednika w nowym szkielecie, zwraca `false`.

#### Składnia

```lua
int getPedBoneIndexForMta(int boneId)
```

#### Argumenty

- `boneId` (int) - Numer kości (jak w `getBoneIDs`).

#### Zwraca

Indeks kości gry albo `false`.

#### Przykład

```lua
outputChatBox("Głowa 8 = kość gry " .. tostring(getPedBoneIndexForMta(8)))
```

#### Zobacz też

- [`getPedBoneIndexByName`](https://trilogy-hub.com/docs/getPedBoneIndexByName/)
- [`getPedBonePosition`](https://trilogy-hub.com/docs/getPedBonePosition/)

### getPedBoneMatrix

*Funkcja · Strona: Klient · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca macierz 4x4 kości postaci w tej klatce, w takim samym układzie jak `getElementMatrix`: wiersz 1 = oś X kości, 2 = oś Y, 3 = oś Z, 4 = pozycja. To te same osie, w których `attachElementToBone` liczy przesunięcie i obrót, więc punkt przyczepienia to `pozycja + X*dx + Y*dy + Z*dz`. Liczona prosto z obrotu kości w silniku, bez kątów Eulera, więc nie gubi dokładności przy obrotach o 90°.

#### Składnia

```lua
table getPedBoneMatrix(ped thePed, int bone)
```

#### Argumenty

- `thePed` (ped) - Postać (w zasięgu).
- `bone` (int) - Numer kości (`getBoneIDs`).

#### Zwraca

Macierz `{ {xx,xy,xz,0}, {yx,yy,yz,0}, {zx,zy,zz,0}, {x,y,z,1} }` albo `false`.

#### Przykład

```lua
addEventHandler("onClientPedsProcessed", root, function()
    local m = getPedBoneMatrix(localPlayer, 25) -- prawa dłoń
    if not m then return end
    -- punkt 20 cm wzdłuż osi X dłoni
    local x, y, z = m[4][1] + m[1][1] * 0.2, m[4][2] + m[1][2] * 0.2, m[4][3] + m[1][3] * 0.2
    dxDrawLine3D(m[4][1], m[4][2], m[4][3], x, y, z, tocolor(255, 0, 0), 2)
end)
```

#### Uwagi

> **Uwaga:** Najświeższe pozycje kości są w `onClientPedsProcessed` (po przeliczeniu animacji w tej klatce).

#### Zobacz też

- [`getPedBonePosition`](https://trilogy-hub.com/docs/getPedBonePosition/)
- [`getPedBoneRotation`](https://trilogy-hub.com/docs/getPedBoneRotation/)
- [`attachElementToBone`](https://trilogy-hub.com/docs/attachElementToBone/)
- [`getElementMatrix`](https://trilogy-hub.com/docs/getElementMatrix/)

### getPedBoneName

*Funkcja · Strona: Klient · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca nazwę kości szkieletu gry o podanym numerze (np. `"Head"`, `"R_Hand"`). Numer to indeks kości w szkielecie Definitive Edition (0 do `getPedBoneCount() - 1`), nie numer z `getBoneIDs`.

#### Składnia

```lua
string getPedBoneName(int index)
```

#### Argumenty

- `index` (int) - Indeks kości gry, od 0.

#### Zwraca

Nazwa kości albo `false`/`nil` dla złego numeru.

#### Przykład

```lua
outputChatBox(tostring(getPedBoneName(0)))
```

#### Zobacz też

- [`getPedBoneCount`](https://trilogy-hub.com/docs/getPedBoneCount/)
- [`getPedBoneIndexByName`](https://trilogy-hub.com/docs/getPedBoneIndexByName/)

### getPedBoneRotation

*Funkcja · Strona: Klient · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca obrót wybranej kości szkieletu postaci w świecie, w stopniach, dokładnie tak, jak wygląda w bieżącej klatce animacji. Działa dla postaci widocznych w tej grze. Przydaje się do przyczepiania obiektów do dłoni albo głowy tak, żeby obracały się razem z nią.

#### Składnia

```lua
float, float, float getPedBoneRotation(ped ped, int bone)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `bone` (int) - Numer kości (jak w `getBoneIDs`) albo numer kości gry (jak w `getPedBonePosition`).

#### Zwraca

Obrót rx, ry, rz w stopniach (rz: 0 = północ) albo `false`.

#### Przykład

```lua
local rx, ry, rz = getPedBoneRotation(localPlayer, 6)
```

#### Zobacz też

- [`getPedBonePosition`](https://trilogy-hub.com/docs/getPedBonePosition/)
- [`getPedBoneTransform`](https://trilogy-hub.com/docs/getPedBoneTransform/)

### getPedBoneTransform

*Funkcja · Strona: Klient · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca naraz położenie i obrót kości postaci (x, y, z, rx, ry, rz), co jest szybsze niż osobne wywołania `getPedBonePosition` i `getPedBoneRotation` w każdej klatce. Wartości są czytane z bieżącej klatki animacji w tej grze.

#### Składnia

```lua
float, float, float, float, float, float getPedBoneTransform(ped ped, int bone)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `bone` (int) - Numer kości (jak w `getBoneIDs`) albo numer kości gry.

#### Zwraca

x, y, z oraz rx, ry, rz w stopniach albo `false`.

#### Przykład

```lua
local x, y, z, rx, ry, rz = getPedBoneTransform(localPlayer, 25)
```

#### Zobacz też

- [`getPedBonePosition`](https://trilogy-hub.com/docs/getPedBonePosition/)
- [`getPedBoneRotation`](https://trilogy-hub.com/docs/getPedBoneRotation/)

### areNametagsEnabled

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Sprawdza, czy wbudowane tabliczki nad głowami są u siebie włączone.

#### Składnia

```lua
bool areNametagsEnabled()
```

#### Zwraca

`true`, jeśli włączone.

#### Przykład

```lua
if areNametagsEnabled() then
    outputChatBox("Tabliczki wbudowane: wlaczone")
end
```

#### Zobacz też

- [`setNametagsEnabled`](https://trilogy-hub.com/docs/setNametagsEnabled/)

### downloadFile

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Pobiera plik zasobu oznaczony w `meta.xml` jako `<file src="..." download="false"/>` dopiero wtedy, gdy jest potrzebny (np. duża muzyka). Wynik przychodzi w zdarzeniu `onClientFileDownloadComplete`, zawsze asynchronicznie, także gdy plik był już pobrany. `":zasob/plik"` pobiera plik innego zasobu.

#### Składnia

```lua
bool downloadFile(string fileName)
```

#### Argumenty

- `fileName` (string) - Ścieżka pliku.

#### Zwraca

`true`, gdy pobieranie ruszyło.

#### Przykład

```lua
addEventHandler("onClientFileDownloadComplete", resourceRoot, function(name, ok)
    if ok and name == "muzyka/intro.mp3" then playSound(name) end
end)
downloadFile("muzyka/intro.mp3")
```

```xml
<meta>
    <script src="client.lua" type="client" />
    <file src="muzyka/intro.mp3" download="false" />
</meta>
```

#### Zobacz też

- [`onClientFileDownloadComplete`](https://trilogy-hub.com/docs/onClientFileDownloadComplete/)
- [`isTransferBoxActive`](https://trilogy-hub.com/docs/isTransferBoxActive/)

### getBrowserPositionFromScreen

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Zamienia punkt na ekranie (np. kursor) na piksel strony przeglądarki narysowanej w świecie przez `dxDrawMaterialLine3D` albo `dxDrawMaterialPrimitive3D`. Dzięki temu da się klikać w ekrany i billboardy z przeglądarką stojące w świecie.

#### Składnia

```lua
int, int getBrowserPositionFromScreen(browser material, float screenX, float screenY)
```

#### Argumenty

- `material` (browser) - Przeglądarka (materiał) narysowana w świecie.
- `screenX` (float) - X na ekranie.
- `screenY` (float) - Y na ekranie.

#### Zwraca

Piksel strony (x, y) albo `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local ax, ay = getCursorPositionAbsolute()
    if not ax then return end
    local px, py = getBrowserPositionFromScreen(billboard, ax, ay)
    if px then injectBrowserMouseMove(billboard, px, py) end
end)
```

#### Uwagi

> **Nowość:** **Jedna funkcja.** Nie musisz samemu liczyć, w który piksel trafia kursor; robi to ta funkcja.

#### Zobacz też

- [`injectBrowserMouseMove`](https://trilogy-hub.com/docs/injectBrowserMouseMove/)
- [`injectBrowserMouseDown`](https://trilogy-hub.com/docs/injectBrowserMouseDown/)
- [`dxDrawMaterialLine3D`](https://trilogy-hub.com/docs/dxDrawMaterialLine3D/)

### getCursorPosition

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Zmodyfikowana względem MTA:SA*

Zwraca pozycję kursora jako ułamek ekranu 0-1 (x, y). Działa tylko, gdy kursor jest pokazany. Trzy kolejne wyniki (punkt w świecie) są na razie zerami; punkt w świecie pod kursorem da `getWorldFromScreenPosition`.

#### Składnia

```lua
float, float, float, float, float getCursorPosition()
```

#### Zwraca

x, y (0-1) i trzy zera albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `getCursorPosition()`

#### Przykład

```lua
addEventHandler("onClientClick", root, function(button, state)
    local x, y = getCursorPosition()
    if x then outputChatBox(("Klik: %.2f, %.2f"):format(x, y)) end
end)
```

#### Zobacz też

- [`getCursorPositionAbsolute`](https://trilogy-hub.com/docs/getCursorPositionAbsolute/)
- [`setCursorPosition`](https://trilogy-hub.com/docs/setCursorPosition/)
- [`getWorldFromScreenPosition`](https://trilogy-hub.com/docs/getWorldFromScreenPosition/)

### getCursorPositionAbsolute

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Zwraca pozycję kursora w pikselach ekranu (gdy kursor jest pokazany).

#### Składnia

```lua
float, float getCursorPositionAbsolute()
```

#### Zwraca

x i y w pikselach albo `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local x, y = getCursorPositionAbsolute()
    if x then dxDrawRectangle(x - 2, y - 2, 4, 4, tocolor(255, 122, 34)) end
end)
```

#### Zobacz też

- [`getCursorPosition`](https://trilogy-hub.com/docs/getCursorPosition/)

### getNametagStyle

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Zwraca aktualny wygląd wbudowanych tabliczek u siebie (tabela z polami jak w `setNametagStyle`).

#### Składnia

```lua
table getNametagStyle()
```

#### Zwraca

Styl tabliczek.

#### Przykład

```lua
local style = getNametagStyle()
setNametagStyle({ scale = style.scale + 0.2 })
```

#### Zobacz też

- [`setNametagStyle`](https://trilogy-hub.com/docs/setNametagStyle/)

### getScreenFromWorldPosition

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zamienia punkt w świecie na punkt na ekranie (piksele). Zwraca `false`, gdy punkt jest za kamerą albo poza ekranem. Trzeci wynik to odległość od kamery. Przydaje się do napisów nad głowami.

#### Składnia

```lua
float, float, float getScreenFromWorldPosition(float x, y, z [, float edgeTolerance = 0, bool relative = true])
```

#### Argumenty

- `x, y, z` (float) - Punkt w świecie.
- `edgeTolerance` (float, opcjonalny = 0) - Ile punkt może wyjść poza ekran i dalej się liczyć.
- `relative` (bool, opcjonalny = true) - `true` = `edgeTolerance` jako ułamek szerokości ekranu.

#### Zwraca

x, y w pikselach i odległość albo `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    for _, p in ipairs(getElementsByType("player", root, true)) do
        if p ~= localPlayer then
            local x, y, z = getElementPosition(p)
            local sx, sy = getScreenFromWorldPosition(x, y, z + 1.1)
            if sx then dxDrawText(getPlayerName(p), sx, sy, sx, sy, tocolor(255, 255, 255), 1, "default-bold", "center") end
        end
    end
end)
```

#### Zobacz też

- [`getWorldFromScreenPosition`](https://trilogy-hub.com/docs/getWorldFromScreenPosition/)
- [`dxDrawText`](https://trilogy-hub.com/docs/dxDrawText/)

### getScreenSize

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Zwraca rozmiar ekranu gry w pikselach. To samo co `guiGetScreenSize`.

#### Składnia

```lua
int, int getScreenSize()
```

#### Zwraca

Szerokość i wysokość.

#### Przykład

```lua
local sw, sh = getScreenSize()
outputChatBox(sw .. "x" .. sh)
```

#### Zobacz też

- [`guiGetScreenSize`](https://trilogy-hub.com/docs/guiGetScreenSize/)

### isChatBoxInputActive

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Sprawdza, czy gracz właśnie pisze na czacie.

#### Składnia

```lua
bool isChatBoxInputActive()
```

#### Zwraca

`true` podczas pisania.

#### Przykład

```lua
bindKey("e", "down", function()
    if isChatBoxInputActive() then return end
    outputChatBox("Akcja!")
end)
```

#### Zobacz też

- [`isConsoleActive`](https://trilogy-hub.com/docs/isConsoleActive/)
- [`isMainMenuActive`](https://trilogy-hub.com/docs/isMainMenuActive/)

### isConsoleActive

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Sprawdza, czy konsola gry jest otwarta.

#### Składnia

```lua
bool isConsoleActive()
```

#### Zwraca

`true`, gdy konsola jest otwarta.

#### Przykład

```lua
if isConsoleActive() then return end
```

#### Zobacz też

- [`isChatBoxInputActive`](https://trilogy-hub.com/docs/isChatBoxInputActive/)

### isMainMenuActive

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Sprawdza, czy menu gry (pauza) jest otwarte.

#### Składnia

```lua
bool isMainMenuActive()
```

#### Zwraca

`true`, gdy menu jest otwarte.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    if isMainMenuActive() then return end
    dxDrawText("HUD serwera", 20, 380)
end)
```

#### Zobacz też

- [`isConsoleActive`](https://trilogy-hub.com/docs/isConsoleActive/)

### isTransferBoxActive

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Sprawdza, czy klient właśnie pobiera pliki zasobów (start zasobu albo `downloadFile`).

#### Składnia

```lua
bool isTransferBoxActive()
```

#### Zwraca

`true` w trakcie pobierania.

#### Przykład

```lua
if isTransferBoxActive() then
    outputChatBox("Poczekaj, aż pliki się pobiorą.")
end
```

#### Zobacz też

- [`downloadFile`](https://trilogy-hub.com/docs/downloadFile/)
- [`onClientTransferBoxProgressChange`](https://trilogy-hub.com/docs/onClientTransferBoxProgressChange/)

### setCursorPosition

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Przesuwa kursor w podane miejsce okna gry (piksele). Zwraca `false`, gdy okno gry nie jest aktywne albo jest zminimalizowane.

#### Składnia

```lua
bool setCursorPosition(int cursorX, int cursorY)
```

#### Argumenty

- `cursorX` (int) - X w pikselach.
- `cursorY` (int) - Y w pikselach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local sw, sh = guiGetScreenSize()
showCursor(true)
setCursorPosition(sw / 2, sh / 2)
```

#### Zobacz też

- [`getCursorPosition`](https://trilogy-hub.com/docs/getCursorPosition/)
- [`showCursor`](https://trilogy-hub.com/docs/showCursor/)

### setNametagsEnabled

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Włącza albo wyłącza u siebie wbudowane tabliczki nad głowami innych graczy. Skrót dla `setNametagStyle({ enabled = ... })`; przydaje się, gdy zasób rysuje własne tabliczki.

#### Składnia

```lua
bool setNametagsEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `false` chowa wbudowane tabliczki.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setNametagsEnabled(false)
addEventHandler("onClientRender", root, function()
    for _, player in ipairs(getElementsByType("player", root, true)) do
        if player ~= localPlayer then
            local x, y, z = getElementPosition(player)
            local sx, sy = getScreenFromWorldPosition(x, y, z + 1.1)
            if sx then dxDrawText(getPlayerName(player), sx, sy) end
        end
    end
end)
```

#### Zobacz też

- [`areNametagsEnabled`](https://trilogy-hub.com/docs/areNametagsEnabled/)
- [`setNametagStyle`](https://trilogy-hub.com/docs/setNametagStyle/)

### setNametagStyle

*Funkcja · Strona: Klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Ustawia u siebie wygląd wbudowanych tabliczek nad głowami innych graczy. Pola jak w `setPlayerNametagStyle`: `enabled`, `distance`, `showDistance`, `scale`, `color`, `background`; podajesz tylko te do zmiany.

#### Składnia

```lua
bool setNametagStyle(table style)
```

#### Argumenty

- `style` (table) - Pola do zmiany.

#### Zwraca

`true` przy powodzeniu; `false` dla złego pola.

#### Przykład

```lua
setNametagStyle({
    distance = 30,
    color = tocolor(255, 255, 255, 255),
    background = false,
})
```

#### Zobacz też

- [`getNametagStyle`](https://trilogy-hub.com/docs/getNametagStyle/)
- [`setNametagsEnabled`](https://trilogy-hub.com/docs/setNametagsEnabled/)
- [`setPlayerNametagStyle`](https://trilogy-hub.com/docs/setPlayerNametagStyle/)

### canBrowserNavigateBack

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Sprawdza, czy w historii przeglądarki jest poprzednia strona.

#### Składnia

```lua
bool canBrowserNavigateBack(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`true`, jeśli można cofnąć.

#### Przykład

```lua
bindKey("backspace", "down", function()
    if canBrowserNavigateBack(browser) then
        navigateBrowserBack(browser)
    end
end)
```

#### Zobacz też

- [`navigateBrowserBack`](https://trilogy-hub.com/docs/navigateBrowserBack/)
- [`canBrowserNavigateForward`](https://trilogy-hub.com/docs/canBrowserNavigateForward/)

### canBrowserNavigateForward

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Sprawdza, czy w historii przeglądarki jest następna strona.

#### Składnia

```lua
bool canBrowserNavigateForward(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`true`, jeśli można przejść dalej.

#### Przykład

```lua
if canBrowserNavigateForward(browser) then
    navigateBrowserForward(browser)
end
```

#### Zobacz też

- [`navigateBrowserForward`](https://trilogy-hub.com/docs/navigateBrowserForward/)

### createBrowser

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Tworzy przeglądarkę, czyli stronę HTML renderowaną do tekstury. Rysujesz ją przez `dxDrawImage`, a adres ładujesz dopiero w zdarzeniu `onClientBrowserCreated`.

#### Składnia

```lua
browser createBrowser(int width, int height, bool isLocal [, bool transparent = false])
```

#### Argumenty

- `width` (int) - Szerokość strony w pikselach.
- `height` (int) - Wysokość strony w pikselach.
- `isLocal` (bool) - `true`: strony z plików zasobów (`http://trilogy/local/...`), `false`: strony z internetu z domen dozwolonych przez serwer i gracza.
- `transparent` (bool, opcjonalny = false) - Czy przezroczyste tło strony ma być przezroczyste w grze.

#### Zwraca

Element przeglądarki albo `false`.

#### Przykład

Pełnoekranowy interfejs w HTML, który wysyła zdarzenie do Lua.

```lua
local sw, sh = guiGetScreenSize()
local browser = createBrowser(sw, sh, true, true)

addEventHandler("onClientBrowserCreated", browser, function()
    loadBrowserURL(browser, "http://trilogy/local/html/index.html")
end)

addEventHandler("onClientRender", root, function()
    dxDrawImage(0, 0, sw, sh, browser)
end)

setBrowserFunction(browser, "login", function(login, password)
    triggerServerEvent("tryLogin", localPlayer, login, password)
end)
```

```xml
<meta>
    <script src="client.lua" type="client" />
    <file src="html/index.html" protected="true" />
    <file src="html/app.js" protected="true" />
    <file src="html/logo.png" />
</meta>
```

#### Uwagi

> **Uwaga:** **Nie czeka na przeglądarkę.** `createBrowser` od razu zwraca element, nawet gdy proces przeglądarki dopiero startuje (pierwsze wywołanie po wejściu na serwer). Ustawienia i adres podane wcześniej trafią do strony, gdy proces wstanie, a gotowość zgłasza `onClientBrowserCreated`. Można ją więc tworzyć w `onClientResourceStart`.

> **Uwaga:** **Osobny proces.** Strony renderuje osobny proces Chromium. Gdy strona padnie, gra działa dalej, a przeglądarka wraca z ostatnim adresem.

> **Nowość:** **Zaszyfrowane strony.** `<file src="html/index.html" protected="true" />` zapisuje plik strony (`.html` `.htm` `.js` `.mjs` `.cjs` `.css` `.json` `.svg`) w cache gracza zaszyfrowany, tak jak skrypty klienta. Treść dostaje tylko przeglądarka zasobu; `fileOpen` i `fileCopy` takiego pliku nie otworzą. Strona i tak musi dostać czysty kod, więc w narzędziach deweloperskich da się go podejrzeć.

#### Zobacz też

- [`loadBrowserURL`](https://trilogy-hub.com/docs/loadBrowserURL/)
- [`onClientBrowserCreated`](https://trilogy-hub.com/docs/onClientBrowserCreated/)
- [`guiCreateBrowser`](https://trilogy-hub.com/docs/guiCreateBrowser/)
- [`dxDrawImage`](https://trilogy-hub.com/docs/dxDrawImage/)

### evaluateBrowserJavascript

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Wykonuje kod JavaScript na stronie lokalnej i oddaje jego wynik do Lua. Jeśli kod zwraca Promise, funkcja czeka na wynik.

#### Składnia

```lua
bool evaluateBrowserJavascript(browser webBrowser, string code, function callback)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka lokalna.
- `code` (string) - Kod JavaScript.
- `callback` (function) - Funkcja `function(ok, result)`: `ok` mówi, czy się udało, `result` to wynik albo opis błędu.

#### Zwraca

`true`, jeśli kod został wysłany.

#### Przykład

```lua
evaluateBrowserJavascript(browser, "document.querySelectorAll('li').length", function(ok, count)
    if ok then
        outputChatBox("Na liście jest " .. count .. " pozycji")
    end
end)
```

#### Zobacz też

- [`executeBrowserJavascript`](https://trilogy-hub.com/docs/executeBrowserJavascript/)
- [`setBrowserFunction`](https://trilogy-hub.com/docs/setBrowserFunction/)

### executeBrowserJavascript

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Wykonuje kod JavaScript na stronie. Działa tylko na przeglądarkach lokalnych.

#### Składnia

```lua
bool executeBrowserJavascript(browser webBrowser, string jsCode)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka lokalna.
- `jsCode` (string) - Kod JavaScript.

#### Zwraca

`true`, jeśli kod został wysłany, `false` dla przeglądarki zdalnej.

#### Przykład

```lua
local function setMoney(amount)
    executeBrowserJavascript(browser, "document.getElementById('money').textContent = '$" .. tonumber(amount) .. "'")
end
```

#### Zobacz też

- [`evaluateBrowserJavascript`](https://trilogy-hub.com/docs/evaluateBrowserJavascript/)
- [`triggerBrowserEvent`](https://trilogy-hub.com/docs/triggerBrowserEvent/)

### focusBrowser

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Zmodyfikowana względem MTA:SA*

Przekazuje klawiaturę przeglądarce. Tekst trafia do strony, gdy jej pole tekstowe jest aktywne i widać kursor. `nil` zdejmuje skupienie z wszystkich przeglądarek.

#### Składnia

```lua
bool focusBrowser(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka albo `nil`.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `focusBrowser(browser webBrowser = nil)`

#### Przykład

```lua
showCursor(true)
focusBrowser(browser)
```

#### Uwagi

> **Uwaga:** **Kiedy wołać.** Można od razu po `createBrowser` - skupienie zostaje przy przeglądarce także podczas ładowania strony. Klawiatura trafia do strony, gdy: przeglądarka ma `focusBrowser`, kursor jest widoczny (`showCursor(true)`) i na stronie aktywne jest pole tekstowe (`onClientBrowserInputFocusChanged(true)`). Wtedy klawisze nie idą do gry ani do bindów; `guiSetInputEnabled` nie jest potrzebne. Klawisz ruchu wciśnięty w chwili otwarcia panelu nie "zawiesza się" - puszczenie zawsze dochodzi do gry.

#### Zobacz też

- [`isBrowserFocused`](https://trilogy-hub.com/docs/isBrowserFocused/)
- [`showCursor`](https://trilogy-hub.com/docs/showCursor/)

### getBrowserFrameRate

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Zwraca, ile razy na sekundę strona jest przerysowywana.

#### Składnia

```lua
int getBrowserFrameRate(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

Klatki na sekundę (1-60).

#### Przykład

```lua
outputChatBox("Strona: " .. getBrowserFrameRate(browser) .. " kl/s")
```

#### Zobacz też

- [`setBrowserFrameRate`](https://trilogy-hub.com/docs/setBrowserFrameRate/)

### getBrowserPixelAlpha

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Zwraca krycie piksela strony. Przydaje się, żeby kliknięcia w przezroczyste miejsca HUD-u trafiały do gry.

#### Składnia

```lua
int getBrowserPixelAlpha(browser webBrowser, int x, int y)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `x` (int) - Pozycja X w pikselach strony.
- `y` (int) - Pozycja Y w pikselach strony.

#### Zwraca

Krycie 0-255, a `-1` poza obrazem.

#### Przykład

```lua
addEventHandler("onClientClick", root, function(button, state, cx, cy)
    if getBrowserPixelAlpha(browser, cx, cy) > 0 then
        if state == "down" then injectBrowserMouseDown(browser, button) else injectBrowserMouseUp(browser, button) end
    end
end)
```

### getBrowserProperty

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Zwraca właściwość przeglądarki. Obsługiwana jest `"mobile"` (widok telefonu).

#### Składnia

```lua
string getBrowserProperty(browser webBrowser, string key)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `key` (string) - Nazwa właściwości.

#### Zwraca

`"1"` albo `"0"` dla `"mobile"`, `false` dla innych nazw.

#### Przykład

```lua
if getBrowserProperty(browser, "mobile") == "1" then
    outputChatBox("Widok telefonu")
end
```

#### Zobacz też

- [`setBrowserProperty`](https://trilogy-hub.com/docs/setBrowserProperty/)

### getBrowsers

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Zwraca wszystkie przeglądarki utworzone przez skrypty.

#### Składnia

```lua
table getBrowsers()
```

#### Zwraca

Tablica przeglądarek.

#### Przykład

```lua
for _, b in ipairs(getBrowsers()) do
    setBrowserRenderingPaused(b, true)
end
```

### getBrowserSettings

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Zmodyfikowana względem MTA:SA*

Zwraca ustawienia przeglądarki wybrane przez gracza (ESC, Ustawienia, Przeglądarka).

#### Składnia

```lua
table getBrowserSettings()
```

#### Zwraca

`{ RemoteEnabled = bool, RemoteJavascript = bool, PluginsEnabled = false }`.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `getBrowserSettings()`

#### Przykład

```lua
if not getBrowserSettings().RemoteEnabled then
    outputChatBox("Włącz strony z internetu w ustawieniach, żeby zobaczyć radio.")
end
```

### getBrowserSize

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Zwraca rozmiar przeglądarki w pikselach.

#### Składnia

```lua
int getBrowserSize(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

Szerokość i wysokość.

#### Przykład

```lua
local w, h = getBrowserSize(browser)
dxDrawImage(0, 0, w, h, browser)
```

### getBrowserSource

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Pobiera kod HTML bieżącej strony i przekazuje go do funkcji.

#### Składnia

```lua
bool getBrowserSource(browser webBrowser, function callback)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `callback` (function) - Funkcja `function(html)`.

#### Zwraca

`true`, jeśli żądanie zostało wysłane.

#### Przykład

```lua
getBrowserSource(browser, function(html)
    outputConsole("Strona ma " .. #html .. " znaków")
end)
```

### getBrowserTitle

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Zwraca tytuł strony (z `<title>`).

#### Składnia

```lua
string getBrowserTitle(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

Tytuł albo `false`.

#### Przykład

```lua
addEventHandler("onClientBrowserDocumentReady", browser, function()
    outputChatBox("Załadowano: " .. getBrowserTitle(source))
end)
```

### getBrowserURL

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Zwraca bieżący adres strony.

#### Składnia

```lua
string getBrowserURL(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

Adres albo `false`.

#### Przykład

```lua
outputChatBox(getBrowserURL(browser))
```

### getBrowserVolume

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Zwraca głośność jednej przeglądarki albo, bez argumentu, głośność wszystkich przeglądarek.

#### Składnia

```lua
float getBrowserVolume([browser webBrowser = nil])
```

#### Argumenty

- `webBrowser` (browser, opcjonalny = nil) - Przeglądarka.

#### Zwraca

Głośność 0-1.

#### Przykład

```lua
setBrowserVolume(browser, getBrowserVolume(browser) / 2)
```

#### Zobacz też

- [`setBrowserVolume`](https://trilogy-hub.com/docs/setBrowserVolume/)

### getBrowserZoom

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Zwraca powiększenie strony (`1` to 100%).

#### Składnia

```lua
float getBrowserZoom(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

Powiększenie.

#### Przykład

```lua
setBrowserZoom(browser, getBrowserZoom(browser) + 0.1)
```

#### Zobacz też

- [`setBrowserZoom`](https://trilogy-hub.com/docs/setBrowserZoom/)

### injectBrowserCharacter

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Wpisuje tekst w aktywne pole strony, znak po znaku (zdarzenia `keypress` / `input`), także polskie litery i inne znaki UTF-8.

#### Składnia

```lua
bool injectBrowserCharacter(browser webBrowser, string text)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `text` (string) - Tekst do wpisania. Znaki sterujące (np. nowa linia) są pomijane - Enter wyślij przez `injectBrowserKey`.

#### Zwraca

`true`, gdy wpisano co najmniej jeden znak.

#### Przykład

```lua
injectBrowserCharacter(browser, "Zażółć gęślą jaźń")
injectBrowserKey(browser, "enter")
injectBrowserKey(browser, "enter", false)
```

#### Zobacz też

- [`injectBrowserKey`](https://trilogy-hub.com/docs/injectBrowserKey/)
- [`focusBrowser`](https://trilogy-hub.com/docs/focusBrowser/)

### injectBrowserKey

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Wysyła do strony naciśnięcie albo puszczenie klawisza (np. Enter, Backspace, strzałki), tak jakby gracz nacisnął go na klawiaturze. Strona dostaje zwykłe zdarzenia `keydown` / `keyup`. Do wpisywania tekstu służy `injectBrowserCharacter`.

#### Składnia

```lua
bool injectBrowserKey(browser webBrowser, string/int key [, bool down = true, table modifiers = {}])
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `key` (string/int) - Nazwa klawisza jak w `bindKey` (`"enter"`, `"backspace"`, `"tab"`, `"arrow_l"`, `"a"`, `"f5"`, `"num_3"`…) albo kod VK Windows.
- `down` (bool, opcjonalny = true) - `true` = naciśnięcie, `false` = puszczenie.
- `modifiers` (table, opcjonalny = {}) - Wciśnięte modyfikatory: `{"shift", "control", "alt"}`.

#### Zwraca

`true`, gdy klawisz został wysłany; `false` dla nieznanej nazwy.

#### Przykład

```lua
-- Ctrl+A w aktywnym polu strony
injectBrowserKey(browser, "a", true, { "control" })
injectBrowserKey(browser, "a", false, { "control" })
```

#### Uwagi

> **Uwaga:** Klawiatura gracza trafia do strony sama, gdy przeglądarka ma `focusBrowser`, kursor jest widoczny, a na stronie aktywne jest pole tekstowe. Ta funkcja przydaje się do skrótów klawiszowych i sterowania stroną ze skryptu.

#### Zobacz też

- [`injectBrowserCharacter`](https://trilogy-hub.com/docs/injectBrowserCharacter/)
- [`focusBrowser`](https://trilogy-hub.com/docs/focusBrowser/)
- [`injectBrowserMouseDown`](https://trilogy-hub.com/docs/injectBrowserMouseDown/)

### injectBrowserMouseDown

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Wciska przycisk myszy na stronie w miejscu ostatniego `injectBrowserMouseMove`. Dwa wciśnięcia w tym samym miejscu w ciągu 0,5 s strona dostaje jako podwójne kliknięcie, trzy jako potrójne (zaznaczenie akapitu), tak jak w Windows.

#### Składnia

```lua
bool injectBrowserMouseDown(browser webBrowser, string mouseButton [, bool double = false])
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `mouseButton` (string) - `"left"`, `"middle"` albo `"right"`.
- `double` (bool, opcjonalny = false) - Wymuś podwójne kliknięcie bez pierwszego wciśnięcia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientClick", root, function(button, state)
    if state == "down" then
        injectBrowserMouseDown(browser, button)
    else
        injectBrowserMouseUp(browser, button)
    end
end)
```

#### Zobacz też

- [`injectBrowserMouseUp`](https://trilogy-hub.com/docs/injectBrowserMouseUp/)
- [`injectBrowserMouseMove`](https://trilogy-hub.com/docs/injectBrowserMouseMove/)

### injectBrowserMouseMove

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Przesuwa kursor myszy na stronie.

#### Składnia

```lua
bool injectBrowserMouseMove(browser webBrowser, int posX, int posY)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `posX` (int) - Pozycja X w pikselach strony.
- `posY` (int) - Pozycja Y w pikselach strony.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local sw, sh = guiGetScreenSize()
addEventHandler("onClientRender", root, function()
    if isCursorShowing() then
        local cx, cy = getCursorPosition()
        injectBrowserMouseMove(browser, cx * sw, cy * sh)
    end
end)
```

### injectBrowserMouseUp

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Puszcza przycisk myszy na stronie.

#### Składnia

```lua
bool injectBrowserMouseUp(browser webBrowser, string mouseButton)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `mouseButton` (string) - `"left"`, `"middle"` albo `"right"`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
injectBrowserMouseUp(browser, "left")
```

### injectBrowserMouseWheel

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Przewija stronę kółkiem myszy. Wartości ujemne przewijają w dół i w prawo.

#### Składnia

```lua
bool injectBrowserMouseWheel(browser webBrowser, int verticalScroll, int horizontalScroll)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `verticalScroll` (int) - Przewinięcie w pionie.
- `horizontalScroll` (int) - Przewinięcie w poziomie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
bindKey("mouse_wheel_down", "down", function() injectBrowserMouseWheel(browser, -40, 0) end)
bindKey("mouse_wheel_up", "down", function() injectBrowserMouseWheel(browser, 40, 0) end)
```

### isBrowserDomainBlocked

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Sprawdza, czy domena (albo adres) jest niedostępna dla przeglądarek z internetem: przez czarną listę, brak zgody gracza albo wyłączone strony zdalne.

#### Składnia

```lua
bool isBrowserDomainBlocked(string address [, bool isURL = false])
```

#### Argumenty

- `address` (string) - Domena albo adres.
- `isURL` (bool, opcjonalny = false) - `true`, gdy podajesz pełny adres, a nie domenę.

#### Zwraca

`true`, jeśli domena jest zablokowana.

#### Przykład

```lua
if isBrowserDomainBlocked("youtube.com") then
    requestBrowserDomains({ "youtube.com" })
end
```

#### Zobacz też

- [`requestBrowserDomains`](https://trilogy-hub.com/docs/requestBrowserDomains/)

### isBrowserFocused

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Sprawdza, czy przeglądarka ma skupienie klawiatury.

#### Składnia

```lua
bool isBrowserFocused(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`true`, jeśli ma skupienie.

#### Przykład

```lua
if not isBrowserFocused(browser) then
    focusBrowser(browser)
end
```

### isBrowserGPUEnabled

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Zmodyfikowana względem MTA:SA*

Sprawdza, czy strony rysuje karta graficzna.

#### Składnia

```lua
bool isBrowserGPUEnabled([browser webBrowser = nil])
```

#### Argumenty

- `webBrowser` (browser, opcjonalny = nil) - Przeglądarka.

#### Zwraca

`true`, jeśli rysuje karta graficzna.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `isBrowserGPUEnabled()`

#### Przykład

```lua
outputConsole("GPU: " .. tostring(isBrowserGPUEnabled(browser)))
```

### isBrowserLoading

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Sprawdza, czy strona się jeszcze ładuje.

#### Składnia

```lua
bool isBrowserLoading(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`true` w trakcie ładowania.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    if isBrowserLoading(browser) then
        dxDrawText("Ładowanie...", 20, 20)
    end
end)
```

### isBrowserLocal

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Sprawdza, czy przeglądarka jest lokalna (pliki zasobów), a nie zdalna (internet).

#### Składnia

```lua
bool isBrowserLocal(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`true` dla przeglądarki lokalnej.

#### Przykład

```lua
if isBrowserLocal(browser) then
    executeBrowserJavascript(browser, "init()")
end
```

### isBrowserRenderingPaused

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Sprawdza, czy rysowanie strony jest wstrzymane.

#### Składnia

```lua
bool isBrowserRenderingPaused(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`true`, jeśli wstrzymane.

#### Przykład

```lua
setBrowserRenderingPaused(browser, not isBrowserRenderingPaused(browser))
```

#### Zobacz też

- [`setBrowserRenderingPaused`](https://trilogy-hub.com/docs/setBrowserRenderingPaused/)

### isBrowserSupported

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Sprawdza, czy gra może tworzyć przeglądarki.

#### Składnia

```lua
bool isBrowserSupported()
```

#### Zwraca

`true`, jeśli przeglądarki są dostępne.

#### Przykład

```lua
if not isBrowserSupported() then
    outputChatBox("Ten interfejs wymaga przeglądarki.")
    return
end
```

### loadBrowserURL

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Ładuje adres w przeglądarce. Przeglądarka lokalna otwiera pliki zasobów, a zdalna strony z dozwolonych domen.

#### Składnia

```lua
bool loadBrowserURL(browser webBrowser, string url [, string postData = "", bool urlEncoded = true])
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `url` (string) - Adres: `http://trilogy/local/plik.html`, `http://trilogy/<zasób>/plik` albo `https://...`.
- `postData` (string, opcjonalny = "") - Dane wysłane metodą POST.
- `urlEncoded` (bool, opcjonalny = true) - Czy `postData` jest zakodowane jak formularz.

#### Zwraca

`true`, jeśli adres został przyjęty.

#### Przykład

```lua
addEventHandler("onClientBrowserCreated", browser, function()
    loadBrowserURL(source, "http://trilogy/local/html/hud.html")
end)
```

#### Uwagi

> **Uwaga:** **Strona widzi tylko pliki `<file>`.** Pliki skryptów zasobu nie są dostępne dla strony.

#### Zobacz też

- [`createBrowser`](https://trilogy-hub.com/docs/createBrowser/)
- [`onClientBrowserCreated`](https://trilogy-hub.com/docs/onClientBrowserCreated/)
- [`onClientBrowserDocumentReady`](https://trilogy-hub.com/docs/onClientBrowserDocumentReady/)

### navigateBrowserBack

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Przechodzi do poprzedniej strony z historii.

#### Składnia

```lua
bool navigateBrowserBack(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`false`, gdy nie ma poprzedniej strony.

#### Przykład

```lua
navigateBrowserBack(browser)
```

### navigateBrowserForward

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Przechodzi do następnej strony z historii.

#### Składnia

```lua
bool navigateBrowserForward(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`false`, gdy nie ma następnej strony.

#### Przykład

```lua
navigateBrowserForward(browser)
```

### reloadBrowserPage

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Zmodyfikowana względem MTA:SA*

Przeładowuje bieżącą stronę.

#### Składnia

```lua
bool reloadBrowserPage(browser webBrowser)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool ignoreCache = false`
- W MTA:SA: `reloadBrowserPage(browser webBrowser, bool ignoreCache = false)`

#### Przykład

```lua
bindKey("F5", "down", function() reloadBrowserPage(browser) end)
```

### requestBrowserDomains

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Prosi gracza o zgodę na strony z podanych domen. Domena musi być na liście serwera (`browser_domains` w `server-config.json`), inne są odrzucane bez pytania. Zgoda jest zapamiętywana.

#### Składnia

```lua
bool requestBrowserDomains(table pages [, bool parseAsURL = false, function callback = nil])
```

#### Argumenty

- `pages` (table) - Lista domen albo adresów.
- `parseAsURL` (bool, opcjonalny = false) - `true`, gdy na liście są pełne adresy.
- `callback` (function, opcjonalny = nil) - Funkcja `function(accepted, newDomains)`.

#### Zwraca

`true`, jeśli prośba została wysłana.

#### Przykład

```lua
requestBrowserDomains({ "youtube.com" }, false, function(accepted)
    if accepted then
        loadBrowserURL(webBrowser, "https://youtube.com/embed/dQw4w9WgXcQ")
    end
end)
```

```json
"browser_domains": ["youtube.com"]
```

#### Zobacz też

- [`isBrowserDomainBlocked`](https://trilogy-hub.com/docs/isBrowserDomainBlocked/)
- [`onClientBrowserWhitelistChange`](https://trilogy-hub.com/docs/onClientBrowserWhitelistChange/)

### resizeBrowser

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Zmienia rozmiar przeglądarki.

#### Składnia

```lua
bool resizeBrowser(browser webBrowser, int width, int height)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `width` (int) - Nowa szerokość.
- `height` (int) - Nowa wysokość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientScreenSizeChange", root, function(w, h)
    resizeBrowser(browser, w, h)
end)
```

### setBrowserAjaxHandler

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Odpowiada z Lua na zapytania strony pod daną ścieżką, np. `fetch("http://trilogy/local/api")`. Funkcja zwraca treść odpowiedzi i opcjonalnie typ MIME. Bez funkcji obsługa jest usuwana.

#### Składnia

```lua
bool setBrowserAjaxHandler(browser webBrowser, string url [, function handler = nil])
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka lokalna.
- `url` (string) - Ścieżka, np. `"api/gracze"`.
- `handler` (function, opcjonalny = nil) - Funkcja `function(get, post)` zwracająca treść i typ MIME.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setBrowserAjaxHandler(browser, "api/gracze", function(get, post)
    local list = {}
    for _, p in ipairs(getElementsByType("player")) do
        list[#list + 1] = getPlayerName(p)
    end
    return toJSON(list), "application/json"
end)
```

#### Uwagi

> **Uwaga:** **Ma pierwszeństwo przed plikiem.** Gdy pod tą ścieżką jest też plik, strona dostanie odpowiedź z Lua.

### setBrowserFrameRate

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Ustawia, ile razy na sekundę strona się przerysowuje (1-240, domyślnie 60). Mniej klatek to mniej pracy procesora, na przykład dla rzadko zmienianego HUD-a; więcej klatek daje płynniejsze animacje na monitorach powyżej 60 Hz.

#### Składnia

```lua
bool setBrowserFrameRate(browser webBrowser, int fps)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `fps` (int) - Klatki na sekundę 1-240.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setBrowserFrameRate(hudBrowser, 15)
```

#### Zobacz też

- [`getBrowserFrameRate`](https://trilogy-hub.com/docs/getBrowserFrameRate/)

### setBrowserFunction

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Udostępnia stronie lokalnej funkcję Lua. W JavaScripcie wywołujesz ją przez `await trilogy.call("nazwa", ...)` i dostajesz jej wynik.

#### Składnia

```lua
bool setBrowserFunction(browser webBrowser, string name, function fn)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka lokalna.
- `name` (string) - Nazwa widoczna w JavaScripcie.
- `fn` (function) - Funkcja Lua albo `nil`, żeby ją usunąć.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setBrowserFunction(browser, "getHealth", function()
    return getElementHealth(localPlayer)
end)
```

```html
<script>
  trilogy.call("getHealth").then((hp) => {
    document.getElementById("hp").textContent = Math.round(hp) + " HP";
  });
</script>
```

#### Zobacz też

- [`triggerBrowserEvent`](https://trilogy-hub.com/docs/triggerBrowserEvent/)
- [`evaluateBrowserJavascript`](https://trilogy-hub.com/docs/evaluateBrowserJavascript/)

### setBrowserProperty

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Ustawia właściwość przeglądarki. Obsługiwana jest `"mobile"`: `"1"` włącza widok telefonu.

#### Składnia

```lua
bool setBrowserProperty(browser webBrowser, string key, string value)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `key` (string) - Nazwa właściwości.
- `value` (string) - Wartość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setBrowserProperty(phoneBrowser, "mobile", "1")
```

#### Zobacz też

- [`getBrowserProperty`](https://trilogy-hub.com/docs/getBrowserProperty/)

### setBrowserRenderingPaused

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Wstrzymuje albo wznawia rysowanie strony. Wstrzymana strona nie obciąża procesora, gdy jej nie widać.

#### Składnia

```lua
bool setBrowserRenderingPaused(browser webBrowser, bool paused)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `paused` (bool) - `true` wstrzymuje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local visible = false
bindKey("F2", "down", function()
    visible = not visible
    setBrowserRenderingPaused(browser, not visible)
end)
```

#### Zobacz też

- [`isBrowserRenderingPaused`](https://trilogy-hub.com/docs/isBrowserRenderingPaused/)

### setBrowserVolume

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Zmodyfikowana względem MTA:SA*

Ustawia głośność jednej przeglądarki albo, gdy podasz tylko liczbę, wszystkich przeglądarek.

#### Składnia

*Jedna*

```lua
bool setBrowserVolume(browser webBrowser, float volume)
```

*Wszystkie*

```lua
bool setBrowserVolume(float volume)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `volume` (float) - Głośność 0-1.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setBrowserVolume(browser webBrowser = nil, float volume)`

#### Przykład

```lua
setBrowserVolume(radioBrowser, 0.3)
setBrowserVolume(0)
```

#### Zobacz też

- [`getBrowserVolume`](https://trilogy-hub.com/docs/getBrowserVolume/)

### setBrowserZoom

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Ustawia powiększenie strony (0.25-5, `1` to 100%).

#### Składnia

```lua
bool setBrowserZoom(browser webBrowser, float zoom)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `zoom` (float) - Powiększenie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local sw = guiGetScreenSize()
setBrowserZoom(browser, sw / 1920)
```

#### Zobacz też

- [`getBrowserZoom`](https://trilogy-hub.com/docs/getBrowserZoom/)

### toggleBrowserDevTools

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Identyczna z MTA:SA*

Otwiera albo zamyka narzędzia deweloperskie strony. Wymaga `setDevelopmentMode(true, true)` i `"browser_devtools": true` w `server-config.json`.

#### Składnia

```lua
bool toggleBrowserDevTools(browser webBrowser, bool visible)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka.
- `visible` (bool) - `true` otwiera.

#### Zwraca

`false`, gdy tryb deweloperski nie jest włączony.

#### Przykład

```lua
setDevelopmentMode(true, true)
bindKey("F12", "down", function()
    toggleBrowserDevTools(browser, true)
end)
```

### triggerBrowserEvent

*Funkcja · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Wysyła zdarzenie z Lua do strony lokalnej. W JavaScripcie odbierasz je przez `trilogy.on("nazwa", fn)`, bez sklejania kodu w napisie.

#### Składnia

```lua
bool triggerBrowserEvent(browser webBrowser, string name, mixed ...)
```

#### Argumenty

- `webBrowser` (browser) - Przeglądarka lokalna.
- `name` (string) - Nazwa zdarzenia.
- `...` (mixed) - Dane przekazane do strony.

#### Zwraca

`true`, jeśli zdarzenie zostało wysłane.

#### Przykład

```lua
addEventHandler("onClientPlayerWasted", localPlayer, function()
    triggerBrowserEvent(browser, "death", getPlayerName(localPlayer))
end)
```

```html
<script>
  trilogy.on("death", (name) => {
    document.body.classList.add("dead");
  });
</script>
```

#### Zobacz też

- [`setBrowserFunction`](https://trilogy-hub.com/docs/setBrowserFunction/)
- [`executeBrowserJavascript`](https://trilogy-hub.com/docs/executeBrowserJavascript/)

### attachCameraRender

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Przyczepia kamerę do elementu (pojazd, gracz, postać, obiekt, obiekt modelu). Pozycja i cel są w metrach w układzie elementu (x w prawo, y do przodu, z w górę); cel domyślnie 10 m przed kamerą. Lusterko wsteczne to kamera z tyłu auta patrząca do tyłu i `setCameraRenderMirrored`.

#### Składnia

```lua
bool attachCameraRender(element camera, element element, float x, y, z [, float lx, ly, lz, float roll = 0, float fov = 70])
```

#### Argumenty

- `camera` (element) - Kamera.
- `element` (element) - Element.
- `x, y, z` (float) - Pozycja względem elementu.
- `lx, ly, lz` (float, opcjonalny) - Cel względem elementu.
- `roll` (float, opcjonalny = 0) - Przechylenie.
- `fov` (float, opcjonalny = 70) - Pole widzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Lusterko wsteczne nad środkiem ekranu.

```lua
local mirror = createCameraRender(400, 120, 30)
setCameraRenderMirrored(mirror, true)
addEventHandler("onClientRender", root, function()
    local veh = getPedOccupiedVehicle(localPlayer)
    if not veh then return end
    if getCameraRenderAttachedTo(mirror) ~= veh then
        attachCameraRender(mirror, veh, 0, -2.5, 1, 0, -12, 0.5, 0, 60)
        setCameraRenderElementHidden(mirror, veh, true)
    end
    local sw = guiGetScreenSize()
    dxDrawImage(sw / 2 - 200, 20, 400, 120, mirror)
end)
```

#### Zobacz też

- [`detachCameraRender`](https://trilogy-hub.com/docs/detachCameraRender/)
- [`setCameraRenderMirrored`](https://trilogy-hub.com/docs/setCameraRenderMirrored/)
- [`setCameraRenderElementHidden`](https://trilogy-hub.com/docs/setCameraRenderElementHidden/)

### createCameraRender

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Tworzy drugą kamerę, która renderuje świat do tekstury: lusterko w aucie, monitoring, ekran z widokiem z drona. Teksturę rysujesz przez `dxDrawImage`, `dxDrawMaterialLine3D` albo przekazujesz shaderowi. Rozmiar 16-2048 pikseli, 0-60 zdjęć na sekundę (0 = tylko na żądanie przez `renderCameraMatrix`/`updateCameraRender`). Każde zdjęcie to dodatkowy render sceny, więc kosztuje wydajność.

#### Składnia

```lua
element createCameraRender(int width, int height [, float fps = 30])
```

#### Argumenty

- `width` (int) - Szerokość 16-2048.
- `height` (int) - Wysokość 16-2048.
- `fps` (float, opcjonalny = 30) - Zdjęć na sekundę 0-60.

#### Zwraca

Kamera (tekstura) albo `false`.

#### Przykład

Kamera monitoringu na Grove Street pokazana w rogu ekranu.

```lua
local cam = createCameraRender(480, 270, 15)
setCameraRenderMatrix(cam, 2510, -1660, 25, 2495, -1687, 13)
addEventHandler("onClientRender", root, function()
    dxDrawImage(20, 20, 320, 180, cam)
end)
```

#### Uwagi

> **Nowość:** **Druga kamera.** Świat widziany z dowolnego miejsca trafia do tekstury, którą narysujesz na ekranie albo na obiekcie.

#### Zobacz też

- [`attachCameraRender`](https://trilogy-hub.com/docs/attachCameraRender/)
- [`setCameraRenderMatrix`](https://trilogy-hub.com/docs/setCameraRenderMatrix/)
- [`startCameraRecording`](https://trilogy-hub.com/docs/startCameraRecording/)
- [`setCameraRenderMirrored`](https://trilogy-hub.com/docs/setCameraRenderMirrored/)
- [`isCameraRender`](https://trilogy-hub.com/docs/isCameraRender/)

### createGroundDecal

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Kładzie obrazek na ziemi - ślad, plamę albo oznaczenie miejsca. Obrazek układa się na pochyłościach i krawężnikach, a nie wisi płasko nad nimi. Rysowany jest do 150 m od kamery, a przy ustawionym czasie życia ostatnia sekunda płynnie wygasa. Decal zostaje do destroyGroundDecal albo zatrzymania zasobu.

#### Składnia

```lua
int createGroundDecal(string material, number x, number y, number z, number size [, number rotation = 0, int lifetime = 0, int color = white])
```

#### Argumenty

- `material` (string) - Ścieżka obrazka zasobu albo tekstura z dxCreateTexture.
- `x` (number) - Środek X.
- `y` (number) - Środek Y.
- `z` (number) - Wysokość, od której szukany jest grunt.
- `size` (number) - Bok kwadratu w metrach (0.1-50).
- `rotation` (number, opcjonalny = 0) - Obrót w stopniach.
- `lifetime` (int, opcjonalny = 0) - Czas życia w ms, 0 = do usunięcia.
- `color` (int, opcjonalny = white) - Kolor z tocolor.

#### Zwraca

Numer decala albo `false`.

#### Przykład

```lua
addCommandHandler("plama", function()
    local x, y, z = getElementPosition(localPlayer)
    createGroundDecal("img/plama.png", x, y, z, 2, math.random(0, 360), 30000, tocolor(255, 255, 255, 220))
end)
```

#### Zobacz też

- [`destroyGroundDecal`](https://trilogy-hub.com/docs/destroyGroundDecal/)
- [`setGroundDecalColor`](https://trilogy-hub.com/docs/setGroundDecalColor/)
- [`dxDrawMaterialLine3D`](https://trilogy-hub.com/docs/dxDrawMaterialLine3D/)

### createRecordingFromData

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Tworzy nagranie z danych AVI (MJPEG): z `getRecordingData`, z pliku albo od innego gracza.

#### Składnia

```lua
element createRecordingFromData(string data)
```

#### Argumenty

- `data` (string) - Dane AVI.

#### Zwraca

Nagranie albo `false`.

#### Przykład

```lua
addEvent("onReplay", true)
addEventHandler("onReplay", root, function(data)
    local rec = createRecordingFromData(data)
    if rec then createRecordingPlayer(rec) end
end)
```

#### Zobacz też

- [`getRecordingData`](https://trilogy-hub.com/docs/getRecordingData/)
- [`createRecordingPlayer`](https://trilogy-hub.com/docs/createRecordingPlayer/)

### createRecordingPlayer

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Tworzy odtwarzacz nagrania, który jest teksturą: rysujesz go jak każdą teksturę, także w świecie przez `dxDrawMaterialLine3D`. Nagranie można potem usunąć, odtwarzacz ma swoje klatki.

#### Składnia

```lua
element createRecordingPlayer(element recording [, bool loop = false, bool paused = false])
```

#### Argumenty

- `recording` (element) - Nagranie.
- `loop` (bool, opcjonalny = false) - Odtwarzanie w pętli.
- `paused` (bool, opcjonalny = false) - Start z pauzą.

#### Zwraca

Odtwarzacz (tekstura) albo `false`.

#### Przykład

Powtórka na ekranie kina w świecie.

```lua
local rec = loadRecording("powtorki/ostatnia.avi")
local screen = rec and createRecordingPlayer(rec, true)
addEventHandler("onClientRender", root, function()
    if screen then dxDrawMaterialLine3D(1000, -1000, 30, 1000, -1000, 22, screen, 14) end
end)
```

#### Zobacz też

- [`setRecordingPlayerPaused`](https://trilogy-hub.com/docs/setRecordingPlayerPaused/)
- [`setRecordingPlayerSpeed`](https://trilogy-hub.com/docs/setRecordingPlayerSpeed/)
- [`dxDrawImage`](https://trilogy-hub.com/docs/dxDrawImage/)

### destroyGroundDecal

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Usuwa decal z createGroundDecal.

#### Składnia

```lua
bool destroyGroundDecal(int decal)
```

#### Argumenty

- `decal` (int) - Numer decala.

#### Zwraca

`true`, gdy decal istniał.

#### Przykład

```lua
local x, y, z = getElementPosition(localPlayer)
local decal = createGroundDecal("img/strzalka.png", x, y, z, 3)
setTimer(destroyGroundDecal, 5000, 1, decal)
```

#### Zobacz też

- [`createGroundDecal`](https://trilogy-hub.com/docs/createGroundDecal/)

### detachCameraRender

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Odpina kamerę od elementu; zostaje w miejscu ostatniego zdjęcia.

#### Składnia

```lua
bool detachCameraRender(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

`true`, gdy była przyczepiona.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
attachCameraRender(cam, localPlayer, 0, -3, 1)
setTimer(detachCameraRender, 5000, 1, cam)
```

#### Zobacz też

- [`attachCameraRender`](https://trilogy-hub.com/docs/attachCameraRender/)

### dxConvertPixels

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zamienia piksele na inny format: `plain`, `png` albo `jpeg` (z jakością 1-100).

#### Składnia

```lua
string dxConvertPixels(string pixels, string newFormat [, int quality = 80])
```

#### Argumenty

- `pixels` (string) - Piksele.
- `newFormat` (string) - `"plain"`, `"png"`, `"jpeg"`.
- `quality` (int, opcjonalny = 80) - Jakość JPEG.

#### Zwraca

Piksele w nowym formacie albo `false`.

#### Przykład

```lua
local jpeg = dxConvertPixels(dxGetTexturePixels(screen), "jpeg", 70)
```

#### Zobacz też

- [`dxGetPixelsFormat`](https://trilogy-hub.com/docs/dxGetPixelsFormat/)
- [`dxGetTexturePixels`](https://trilogy-hub.com/docs/dxGetTexturePixels/)

### dxCreateFont

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Tworzy czcionkę z pliku TTF/OTF zasobu albo z kroju systemowego (podajesz nazwę). Rozmiar jest w punktach. Czcionkę przekazujesz do `dxDrawText` i `guiSetFont`.

#### Składnia

```lua
font dxCreateFont(string filepath [, float size = 9, bool bold = false, string quality, table style])
```

#### Argumenty

- `filepath` (string) - Plik `.ttf`/`.otf` albo nazwa kroju.
- `size` (float, opcjonalny = 9) - Rozmiar w punktach.
- `bold` (bool, opcjonalny = false) - Pogrubienie.
- `quality` (string, opcjonalny) - Przyjmowany dla zgodności ze starszymi skryptami.
- `style` (table, opcjonalny) - Styl jak w `dxSetFontStyle`.

#### Zwraca

Czcionka albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `dxCreateFont(string filepath, int size = 9, bool bold = false, string quality = "proof")`

#### Przykład

```lua
local font = dxCreateFont("fonty/gta.ttf", 18)
addEventHandler("onClientRender", root, function()
    dxDrawText("Misja zaliczona", 0, 200, 1920, 260, tocolor(255, 200, 0), 1, font, "center")
end)
```

```xml
<meta>
    <script src="client.lua" type="client" />
    <file src="fonty/gta.ttf" />
</meta>
```

#### Zobacz też

- [`dxSetFontStyle`](https://trilogy-hub.com/docs/dxSetFontStyle/)
- [`dxDrawText`](https://trilogy-hub.com/docs/dxDrawText/)
- [`dxGetFontInfo`](https://trilogy-hub.com/docs/dxGetFontInfo/)

### dxCreateRenderTarget

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Tworzy powierzchnię do rysowania poza ekranem. Po `dxSetRenderTarget(rt)` wszystkie `dxDraw*` rysują na niej, a potem rysujesz ją jak teksturę. Bez kanału alfa każdy piksel jest kryjący.

#### Składnia

```lua
element dxCreateRenderTarget(int width, int height [, bool withAlpha = false])
```

#### Argumenty

- `width` (int) - Szerokość.
- `height` (int) - Wysokość.
- `withAlpha` (bool, opcjonalny = false) - `true` = z przezroczystością.

#### Zwraca

Render target albo `false`.

#### Przykład

```lua
local rt = dxCreateRenderTarget(300, 100, true)
addEventHandler("onClientRender", root, function()
    dxSetRenderTarget(rt, true)
    dxDrawText("Na powierzchni", 10, 10, 0, 0, tocolor(255, 255, 255), 2)
    dxSetRenderTarget()
    dxDrawImage(50, 500, 300, 100, rt)
end)
```

#### Zobacz też

- [`dxSetRenderTarget`](https://trilogy-hub.com/docs/dxSetRenderTarget/)
- [`dxDrawImage`](https://trilogy-hub.com/docs/dxDrawImage/)

### dxCreateScreenSource

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Tworzy źródło obrazu ekranu o podanym rozmiarze. `dxUpdateScreenSource` wpisuje do niego obraz gry (przeskalowany), który potem rysujesz albo przetwarzasz shaderem.

#### Składnia

```lua
element dxCreateScreenSource(int width, int height)
```

#### Argumenty

- `width` (int) - Szerokość.
- `height` (int) - Wysokość.

#### Zwraca

Źródło albo `false`.

#### Przykład

```lua
local screen = dxCreateScreenSource(480, 270)
addEventHandler("onClientRender", root, function()
    dxUpdateScreenSource(screen)
    dxDrawImage(20, 20, 240, 135, screen)
end)
```

#### Zobacz też

- [`dxUpdateScreenSource`](https://trilogy-hub.com/docs/dxUpdateScreenSource/)
- [`dxCreateShader`](https://trilogy-hub.com/docs/dxCreateShader/)

### dxCreateTexture

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Tworzy teksturę: z pliku obrazu zasobu, z pikseli (`plain`, `png`, `jpeg`, `dds`) albo pustą o podanym rozmiarze. Tekstura jest materiałem dla `dxDrawImage`, `dxDrawMaterial*3D` i shaderów.

#### Składnia

*Z pliku albo pikseli*

```lua
element dxCreateTexture(string pathOrPixels [, string format, bool mipmaps, string edge])
```

*Pusta*

```lua
element dxCreateTexture(int width, int height [, string format, string edge])
```

#### Argumenty

- `pathOrPixels` (string) - Ścieżka pliku albo piksele.
- `edge` (string, opcjonalny) - `"wrap"`, `"mirror"`, `"clamp"`, `"border"`.

#### Zwraca

Tekstura albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool mipmaps = true`, `string textureEdge = "wrap"`
- W MTA:SA: `dxCreateTexture(string pixels/filepath, string textureFormat = "argb", bool mipmaps = true, string textureEdge = "wrap")`

#### Przykład

```lua
local tex = dxCreateTexture("img/radar.png")
addEventHandler("onClientRender", root, function()
    dxDrawImage(20, 400, 200, 200, tex)
end)
```

#### Zobacz też

- [`dxDrawImage`](https://trilogy-hub.com/docs/dxDrawImage/)
- [`dxGetTexturePixels`](https://trilogy-hub.com/docs/dxGetTexturePixels/)
- [`dxSetTexturePixels`](https://trilogy-hub.com/docs/dxSetTexturePixels/)

### dxDrawBorderedRectangle

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Rysuje prostokąt z wypełnieniem i ramką o podanej grubości jednym wywołaniem.

#### Składnia

```lua
bool dxDrawBorderedRectangle(float x, float y, float width, float height [, int fillColor, int borderColor, float thickness = 1, bool postGUI = false])
```

#### Argumenty

- `x` (float) - Lewa krawędź.
- `y` (float) - Górna krawędź.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `fillColor` (int, opcjonalny) - Kolor wypełnienia.
- `borderColor` (int, opcjonalny) - Kolor ramki.
- `thickness` (float, opcjonalny = 1) - Grubość ramki.
- `postGUI` (bool, opcjonalny = false) - Nad GUI.

#### Zwraca

`true`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    dxDrawBorderedRectangle(50, 50, 220, 120, tocolor(0, 0, 0, 150), tocolor(255, 122, 34), 2)
end)
```

#### Zobacz też

- [`dxDrawRectangle`](https://trilogy-hub.com/docs/dxDrawRectangle/)
- [`dxDrawRoundedRectangle`](https://trilogy-hub.com/docs/dxDrawRoundedRectangle/)

### dxDrawCircle

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Rysuje koło, elipsę albo wycinek koła o środku (x, y) i promieniu w pikselach. Krótka forma przyjmuje sam kolor jako czwarty argument.

#### Składnia

*Pełna*

```lua
bool dxDrawCircle(float posX, float posY, float radius [, float startAngle = 0, float stopAngle = 360, int color = white, int centerColor = color, int segments = 32, float ratio = 1, bool postGUI = false])
```

*Krótka*

```lua
bool dxDrawCircle(float posX, float posY, float radius, int color)
```

#### Argumenty

- `posX` (float) - Środek X.
- `posY` (float) - Środek Y.
- `radius` (float) - Promień.
- `startAngle` (float, opcjonalny = 0) - Kąt początku wycinka w stopniach (0 = w prawo, rośnie zgodnie z ruchem wskazówek).
- `stopAngle` (float, opcjonalny = 360) - Kąt końca wycinka w stopniach.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Kolor krawędzi.
- `centerColor` (int, opcjonalny = color) - Kolor w środku: inny niż `color` daje gradient od środka.
- `segments` (int, opcjonalny = 32) - Liczba odcinków obwodu (więcej = gładszy brzeg).
- `ratio` (float, opcjonalny = 1) - Proporcja szerokości do wysokości (inna niż 1 = elipsa).
- `postGUI` (bool, opcjonalny = false) - Rysuj nad GUI.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

Pełne koło, wskaźnik postępu jako wycinek i kółko z gradientem.

```lua
addEventHandler("onClientRender", root, function()
    dxDrawCircle(100, 100, 30, tocolor(95, 207, 115))
    local progress = (getTickCount() % 3000) / 3000
    dxDrawCircle(200, 100, 30, -90, -90 + 360 * progress, tocolor(255, 122, 34))
    dxDrawCircle(300, 100, 30, 0, 360, tocolor(255, 122, 34, 0), tocolor(255, 122, 34, 220), 48)
end)
```

#### Uwagi

> **Uwaga:** **Szybka ścieżka.** Pełne koło w jednym kolorze, z `ratio = 1` i bez `postGUI` gra rysuje jednym wywołaniem; wycinki, gradienty i elipsy idą przez trójkąty. Krótką formę rozpoznaje czwarty argument większy niż 720 (kolor z `tocolor`).

#### Zobacz też

- [`dxDrawRectangle`](https://trilogy-hub.com/docs/dxDrawRectangle/)

### dxDrawGradientRectangle

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Rysuje prostokąt z pionowym przejściem od koloru górnego do dolnego.

#### Składnia

```lua
bool dxDrawGradientRectangle(float x, float y, float width, float height [, int colorTop = tocolor(255, 255, 255), int colorBottom = tocolor(255, 255, 255), bool postGUI = false])
```

#### Argumenty

- `x` (float) - Lewa krawędź.
- `y` (float) - Górna krawędź.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `colorTop` (int, opcjonalny = tocolor(255, 255, 255)) - Kolor u góry.
- `colorBottom` (int, opcjonalny = tocolor(255, 255, 255)) - Kolor u dołu.
- `postGUI` (bool, opcjonalny = false) - Nad GUI.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

```lua
local sw, sh = guiGetScreenSize()
addEventHandler("onClientRender", root, function()
    dxDrawGradientRectangle(0, sh - 120, sw, 120, tocolor(0, 0, 0, 0), tocolor(0, 0, 0, 200))
end)
```

#### Zobacz też

- [`dxDrawRectangle`](https://trilogy-hub.com/docs/dxDrawRectangle/)

### dxDrawImage

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Rysuje obraz (plik PNG/JPG zasobu, teksturę, render target, przeglądarkę albo kamerę) w prostokącie ekranu, z opcjonalnym obrotem i zabarwieniem.

#### Składnia

```lua
bool dxDrawImage(float posX, float posY, float width, float height, string|element image [, float rotation = 0, float rotationCenterOffsetX = 0, float rotationCenterOffsetY = 0, int color = tocolor(255, 255, 255), bool postGUI = false])
```

#### Argumenty

- `posX` (float) - Lewa krawędź.
- `posY` (float) - Górna krawędź.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `image` (string|element) - Ścieżka pliku albo materiał.
- `rotation` (float, opcjonalny = 0) - Obrót w stopniach.
- `rotationCenterOffsetX` (float, opcjonalny = 0) - Przesunięcie środka obrotu X.
- `rotationCenterOffsetY` (float, opcjonalny = 0) - Przesunięcie środka obrotu Y.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Zabarwienie i przezroczystość.
- `postGUI` (bool, opcjonalny = false) - Nad GUI.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    dxDrawImage(20, 20, 128, 128, "img/logo.png", getTickCount() / 20 % 360)
end)
```

#### Zobacz też

- [`dxDrawImageSection`](https://trilogy-hub.com/docs/dxDrawImageSection/)
- [`dxCreateTexture`](https://trilogy-hub.com/docs/dxCreateTexture/)

### dxDrawImageSection

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Rysuje wycinek obrazu (u, v, szerokość i wysokość wycinka w pikselach obrazu) w prostokącie ekranu. Przydaje się do arkuszy ikon i pasków postępu.

#### Składnia

```lua
bool dxDrawImageSection(float posX, float posY, float width, float height, float u, float v, float usize, float vsize, string|element image [, float rotation = 0, float rotationCenterOffsetX = 0, float rotationCenterOffsetY = 0, int color = tocolor(255, 255, 255), bool postGUI = false])
```

#### Argumenty

- `posX` (float) - Lewa krawędź.
- `posY` (float) - Górna krawędź.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `u` (float) - X wycinka w obrazie.
- `v` (float) - Y wycinka w obrazie.
- `usize` (float) - Szerokość wycinka.
- `vsize` (float) - Wysokość wycinka.
- `image` (string|element) - Ścieżka albo materiał.
- `rotation` (float, opcjonalny = 0) - Obrót.
- `rotationCenterOffsetX` (float, opcjonalny = 0) - Środek obrotu X.
- `rotationCenterOffsetY` (float, opcjonalny = 0) - Środek obrotu Y.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Zabarwienie.
- `postGUI` (bool, opcjonalny = false) - Nad GUI.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

Arkusz czterech ikon po 64 px; rysujemy trzecią.

```lua
addEventHandler("onClientRender", root, function()
    dxDrawImageSection(20, 200, 64, 64, 128, 0, 64, 64, "img/ikony.png")
end)
```

#### Zobacz też

- [`dxDrawImage`](https://trilogy-hub.com/docs/dxDrawImage/)
- [`dxSetTextureEdge`](https://trilogy-hub.com/docs/dxSetTextureEdge/)

### dxDrawLine

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Rysuje odcinek między dwoma punktami ekranu.

#### Składnia

```lua
bool dxDrawLine(float startX, float startY, float endX, float endY [, int color = tocolor(255, 255, 255), float width = 1, bool postGUI = false])
```

#### Argumenty

- `startX` (float) - Początek X.
- `startY` (float) - Początek Y.
- `endX` (float) - Koniec X.
- `endY` (float) - Koniec Y.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Kolor.
- `width` (float, opcjonalny = 1) - Grubość.
- `postGUI` (bool, opcjonalny = false) - Nad GUI.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

Celownik w środku ekranu.

```lua
local sw, sh = guiGetScreenSize()
addEventHandler("onClientRender", root, function()
    dxDrawLine(sw / 2 - 10, sh / 2, sw / 2 + 10, sh / 2, tocolor(255, 255, 255), 2)
    dxDrawLine(sw / 2, sh / 2 - 10, sw / 2, sh / 2 + 10, tocolor(255, 255, 255), 2)
end)
```

#### Zobacz też

- [`dxDrawLine3D`](https://trilogy-hub.com/docs/dxDrawLine3D/)
- [`dxDrawPrimitive`](https://trilogy-hub.com/docs/dxDrawPrimitive/)

### dxDrawLine3D

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Rysuje odcinek między dwoma punktami świata: rzutuje je na ekran i łączy linią. Rysuje tylko, gdy oba końce są na ekranie, i nie jest zasłaniany przez budynki.

#### Składnia

```lua
bool dxDrawLine3D(float startX, startY, startZ, float endX, endY, endZ [, int color = tocolor(255, 255, 255), float width = 1, bool postGUI = false, bool smooth = false])
```

#### Argumenty

- `startX, startY, startZ` (float) - Początek w świecie.
- `endX, endY, endZ` (float) - Koniec w świecie.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Kolor.
- `width` (float, opcjonalny = 1) - Grubość w pikselach.
- `postGUI` (bool, opcjonalny = false) - Nad GUI.
- `smooth` (bool, opcjonalny = false) - `true` = linia wygładzona: gładkie krawędzie bez schodków i zaokrąglone końce, więc kolejne odcinki (np. ścieżka po ziemi) łączą się bez przerw.

#### Zwraca

`true`, gdy narysowano.

#### Różnice względem MTA:SA

- W MTA:SA: `dxDrawLine3D(float startX, float startY, float startZ, float endX, float endY, float endZ, int color = 0xFFFFFFFF, float width = 1.0, bool/string stage = "postfx")`

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local x, y, z = getElementPosition(localPlayer)
    dxDrawLine3D(x, y, z, x, y, z + 5, tocolor(255, 0, 0), 3)
end)
```

#### Uwagi

> **Uwaga:** Odcinek z jednym końcem za kamerą albo poza ekranem jest przycinany (do płaszczyzny 0,6 m przed kamerą i do krawędzi ekranu), więc rysuje się widoczna część, a nie nic.

#### Zobacz też

- [`dxDrawLine`](https://trilogy-hub.com/docs/dxDrawLine/)
- [`getScreenFromWorldPosition`](https://trilogy-hub.com/docs/getScreenFromWorldPosition/)

### dxDrawMaterialLine3D

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Rysuje materiał (obraz, teksturę, przeglądarkę, kamerę albo shader) jako pas w świecie 3D: od punktu początku (góra obrazu) do końca, o podanej szerokości. Pas jest zwrócony do kamery albo do punktu `faceX, faceY, faceZ`. Rysunek jest częścią świata: zasłaniają go budynki i świeci (ekran widać w nocy). Tak zrobisz billboard, ekran kina albo napis nad budynkiem.

#### Składnia

```lua
bool dxDrawMaterialLine3D(float startX, startY, startZ, float endX, endY, endZ, string|element material, float width [, bool flipUV = false, int color = tocolor(255, 255, 255), bool postGUI = false, float faceX, faceY, faceZ])
```

#### Argumenty

- `startX, startY, startZ` (float) - Początek (góra obrazu).
- `endX, endY, endZ` (float) - Koniec (dół obrazu).
- `flipUV` (bool, opcjonalny = false) - Odwraca obraz (opcjonalny argument przed materiałem).
- `material` (string|element) - Materiał.
- `width` (float) - Szerokość pasa w metrach.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Zabarwienie.
- `postGUI` (bool, opcjonalny = false) - Przyjmowany dla zgodności.
- `faceX, faceY, faceZ` (float, opcjonalny) - Punkt, do którego zwrócony jest przód.

#### Zwraca

`true`, gdy narysowano.

#### Różnice względem MTA:SA

- W MTA:SA: `dxDrawMaterialLine3D(float startX, float startY, float startZ, float endX, float endY, float endZ, bool flipUV = false, texture material, float width, int color = tocolor(255,255,255,255), bool/string stage = "postfx", float faceTowardX = nil, float faceTowardY = nil, float faceTowardZ = nil)`

#### Przykład

Pionowy billboard 8x4 m zwrócony na południe.

```lua
addEventHandler("onClientRender", root, function()
    dxDrawMaterialLine3D(2500, -1660, 24, 2500, -1660, 20, "img/reklama.png", 8, tocolor(255, 255, 255), false, 2500, -1700, 22)
end)
```

#### Uwagi

> **Nowość:** **Ekran w świecie.** Materiał może być przeglądarką albo kamerą, a `getBrowserPositionFromScreen` pozwala klikać w taki ekran.

#### Zobacz też

- [`dxDrawMaterialSectionLine3D`](https://trilogy-hub.com/docs/dxDrawMaterialSectionLine3D/)
- [`dxDrawMaterialPrimitive3D`](https://trilogy-hub.com/docs/dxDrawMaterialPrimitive3D/)
- [`createBrowser`](https://trilogy-hub.com/docs/createBrowser/)

### dxDrawMaterialPrimitive3D

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Rysuje kształt z trójkątów w świecie 3D pokryty materiałem. Wierzchołki to `{x, y, z, kolor, u, v}`, gdzie u i v (0-1) mówią, który punkt obrazu trafia w wierzchołek. Kolor całego kształtu pochodzi z pierwszego wierzchołka.

#### Składnia

```lua
bool dxDrawMaterialPrimitive3D(string primitiveType, string|element material, bool postGUI, table vertex1 [, table ...])
```

#### Argumenty

- `primitiveType` (string) - `"trianglelist"`, `"trianglestrip"`, `"trianglefan"`.
- `material` (string|element) - Materiał.
- `postGUI` (bool) - Dla zgodności ze starszymi skryptami.
- `vertex1` (table) - `{x, y, z, kolor, u, v}`.
- `...` (table, opcjonalny) - Kolejne wierzchołki.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

Obraz na poziomym kwadracie (np. logo na ziemi).

```lua
addEventHandler("onClientRender", root, function()
    local c, z = tocolor(255, 255, 255), 13.6
    dxDrawMaterialPrimitive3D("trianglestrip", "img/logo.png", false,
        { 2490, -1680, z, c, 0, 0 }, { 2500, -1680, z, c, 1, 0 },
        { 2490, -1690, z, c, 0, 1 }, { 2500, -1690, z, c, 1, 1 })
end)
```

#### Zobacz też

- [`dxDrawMaterialLine3D`](https://trilogy-hub.com/docs/dxDrawMaterialLine3D/)
- [`dxDrawPrimitive3D`](https://trilogy-hub.com/docs/dxDrawPrimitive3D/)

### dxDrawMaterialSectionLine3D

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Jak `dxDrawMaterialLine3D`, ale rysuje tylko wycinek materiału (u, v, szerokość i wysokość wycinka w pikselach).

#### Składnia

```lua
bool dxDrawMaterialSectionLine3D(float startX, startY, startZ, float endX, endY, endZ, float u, float v, float usize, float vsize, string|element material, float width [, bool flipUV = false, int color = tocolor(255, 255, 255), bool postGUI = false, float faceX, faceY, faceZ])
```

#### Argumenty

- `startX, startY, startZ` (float) - Początek.
- `endX, endY, endZ` (float) - Koniec.
- `flipUV` (bool, opcjonalny = false) - Odwraca obraz.
- `u` (float) - X wycinka.
- `v` (float) - Y wycinka.
- `usize` (float) - Szerokość wycinka.
- `vsize` (float) - Wysokość wycinka.
- `material` (string|element) - Materiał.
- `width` (float) - Szerokość pasa w metrach.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Zabarwienie.
- `postGUI` (bool, opcjonalny = false) - Zgodność.
- `faceX, faceY, faceZ` (float, opcjonalny) - Kierunek przodu.

#### Zwraca

`true`, gdy narysowano.

#### Różnice względem MTA:SA

- W MTA:SA: `dxDrawMaterialSectionLine3D(float startX, float startY, float startZ, float endX, float endY, float endZ, float u, float v, float usize, float vsize, bool flipUV = false, texture material, float width, int color = tocolor(255,255,255,255), string stage = "postfx", float faceTowardX = nil, float faceTowardY = nil, float faceTowardZ = nil)`

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    dxDrawMaterialSectionLine3D(2500, -1660, 24, 2500, -1660, 20, 0, 0, 256, 128, "img/arkusz.png", 8)
end)
```

#### Zobacz też

- [`dxDrawMaterialLine3D`](https://trilogy-hub.com/docs/dxDrawMaterialLine3D/)

### dxDrawModel3D

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Rysuje model obiektu gry w danym miejscu na jedną klatkę: bez kolizji, zasłaniany przez świat. Nie działa dla postaci i pojazdów. Pierwsza klatka nowego modelu czeka, aż gra go wczyta. Najwyżej 64 obiekty naraz.

#### Składnia

```lua
bool dxDrawModel3D(int modelID, float x, y, z, float rx, ry, rz [, float scale = 1, float lighting])
```

#### Argumenty

- `modelID` (int) - Model obiektu.
- `x, y, z` (float) - Pozycja.
- `rx, ry, rz` (float) - Obrót.
- `scale` (float, opcjonalny = 1) - Skala.
- `lighting` (float, opcjonalny) - Przyjmowany dla zgodności ze starszymi skryptami.

#### Zwraca

`true`, gdy narysowano albo model się wczytuje.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `float scaleZ = 1`, `float lighting = 0`
- W MTA:SA: `dxDrawModel3D(int modelId, float positionX, float positionY, float positionZ, float rotationX, float rotationY, float rotationZ, float scaleX = 1, float scaleY = 1, float scaleZ = 1, float lighting = 0)`

#### Przykład

Podgląd stawianego obiektu przed graczem (np. w edytorze mapy).

```lua
addEventHandler("onClientRender", root, function()
    local x, y, z = getElementPosition(localPlayer)
    dxDrawModel3D(1271, x, y + 3, z - 0.5, 0, 0, getTickCount() / 10 % 360)
end)
```

#### Zobacz też

- [`createObject`](https://trilogy-hub.com/docs/createObject/)
- [`dxDrawMaterialLine3D`](https://trilogy-hub.com/docs/dxDrawMaterialLine3D/)

### dxDrawPrimitive

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Rysuje kształt 2D z listy wierzchołków `{x, y [, kolor]}`: punkty, linie albo trójkąty. Kolor jest płynnie mieszany między wierzchołkami.

#### Składnia

```lua
bool dxDrawPrimitive(string primitiveType, bool postGUI, table vertex1 [, table ...])
```

#### Argumenty

- `primitiveType` (string) - `"pointlist"`, `"linelist"`, `"linestrip"`, `"trianglelist"`, `"trianglestrip"`, `"trianglefan"`.
- `postGUI` (bool) - Nad GUI.
- `vertex1` (table) - Wierzchołek `{x, y, kolor}`.
- `...` (table, opcjonalny) - Kolejne wierzchołki.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    dxDrawPrimitive("trianglelist", false,
        { 300, 100, tocolor(255, 0, 0) },
        { 400, 250, tocolor(0, 255, 0) },
        { 200, 250, tocolor(0, 0, 255) })
end)
```

#### Zobacz też

- [`dxDrawPrimitive3D`](https://trilogy-hub.com/docs/dxDrawPrimitive3D/)
- [`dxDrawLine`](https://trilogy-hub.com/docs/dxDrawLine/)

### dxDrawPrimitive3D

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Rysuje kształt z trójkątów w świecie 3D z wierzchołków `{x, y, z, kolor}`. Cały kształt ma kolor pierwszego wierzchołka.

#### Składnia

```lua
bool dxDrawPrimitive3D(string primitiveType, bool postGUI, table vertex1 [, table ...])
```

#### Argumenty

- `primitiveType` (string) - `"trianglelist"`, `"trianglestrip"`, `"trianglefan"`.
- `postGUI` (bool) - Przyjmowany dla zgodności ze starszymi skryptami.
- `vertex1` (table) - Wierzchołek `{x, y, z, kolor}`.
- `...` (table, opcjonalny) - Kolejne wierzchołki.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

Czerwony trójkąt nad Grove Street.

```lua
addEventHandler("onClientRender", root, function()
    local c = tocolor(255, 0, 0, 180)
    dxDrawPrimitive3D("trianglelist", false,
        { 2490, -1690, 20, c }, { 2500, -1690, 20, c }, { 2495, -1680, 25, c })
end)
```

#### Zobacz też

- [`dxDrawMaterialPrimitive3D`](https://trilogy-hub.com/docs/dxDrawMaterialPrimitive3D/)
- [`dxDrawPrimitive`](https://trilogy-hub.com/docs/dxDrawPrimitive/)

### dxDrawRectangle

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Rysuje wypełniony prostokąt na ekranie w jednej klatce. Wywołuj w `onClientRender`, żeby był widoczny cały czas.

#### Składnia

```lua
bool dxDrawRectangle(float startX, float startY, float width, float height [, int color = tocolor(255, 255, 255), bool postGUI = false])
```

#### Argumenty

- `startX` (float) - Lewa krawędź w pikselach.
- `startY` (float) - Górna krawędź w pikselach.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Kolor z `tocolor`.
- `postGUI` (bool, opcjonalny = false) - `true` = nad oknami GUI.

#### Zwraca

`true`, gdy narysowano.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool subPixelPositioning = false`
- W MTA:SA: `dxDrawRectangle(float startX, float startY, float width, float height, int color = white, bool postGUI = false, bool subPixelPositioning = false)`

#### Przykład

Pasek życia w lewym dolnym rogu.

```lua
local sw, sh = guiGetScreenSize()
addEventHandler("onClientRender", root, function()
    local hp = getElementHealth(localPlayer)
    dxDrawRectangle(30, sh - 60, 204, 18, tocolor(0, 0, 0, 160))
    dxDrawRectangle(32, sh - 58, 2 * hp, 14, tocolor(200, 40, 40))
end)
```

#### Zobacz też

- [`dxDrawRoundedRectangle`](https://trilogy-hub.com/docs/dxDrawRoundedRectangle/)
- [`dxDrawText`](https://trilogy-hub.com/docs/dxDrawText/)
- [`tocolor`](https://trilogy-hub.com/docs/tocolor/)

### dxDrawRoundedRectangle

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Rysuje prostokąt z zaokrąglonymi rogami. Promień jest w pikselach i nie przekracza połowy krótszego boku.

#### Składnia

```lua
bool dxDrawRoundedRectangle(float x, float y, float width, float height [, float radius = 6, int color = tocolor(255, 255, 255), bool postGUI = false])
```

#### Argumenty

- `x` (float) - Lewa krawędź.
- `y` (float) - Górna krawędź.
- `width` (float) - Szerokość.
- `height` (float) - Wysokość.
- `radius` (float, opcjonalny = 6) - Promień rogów.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Kolor.
- `postGUI` (bool, opcjonalny = false) - Nad GUI.

#### Zwraca

`true`, gdy narysowano.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    dxDrawRoundedRectangle(40, 200, 260, 60, 12, tocolor(15, 13, 12, 220))
    dxDrawText("Trilogy Hub", 40, 200, 300, 260, tocolor(255, 122, 34), 1.4, "default-bold", "center", "center")
end)
```

#### Zobacz też

- [`dxDrawRectangle`](https://trilogy-hub.com/docs/dxDrawRectangle/)
- [`dxDrawBorderedRectangle`](https://trilogy-hub.com/docs/dxDrawBorderedRectangle/)

### dxDrawText

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Rysuje tekst na ekranie w jednej klatce. Wywołuj w `onClientRender`, żeby był widoczny cały czas.

#### Składnia

*Krótka forma*

```lua
bool dxDrawText(string text, float left, float top [, float right, float bottom, int color, float scale, font font, string alignX, string alignY, bool clip, bool wordBreak, bool postGUI, bool colorCoded])
```

*Z tabelą opcji*

```lua
bool dxDrawText(string text, float left, float top, float right, float bottom, int color, table options)
```

#### Argumenty

- `text` (string) - Tekst do narysowania.
- `left, top` (float) - Lewy górny róg obszaru tekstu w pikselach.
- `right, bottom` (float, opcjonalny = left, top) - Prawy dolny róg obszaru. Potrzebny do wyrównania do środka albo do prawej.
- `color` (int, opcjonalny = tocolor(255, 255, 255)) - Kolor z `tocolor(r, g, b, a)`.
- `scale` (float, opcjonalny = 1) - Powiększenie tekstu. Możesz podać dwie liczby: osobno w poziomie i w pionie.
- `font` (string|font, opcjonalny = default) - Nazwa wbudowanej czcionki (`default`, `default-bold`, `pricedown`...) albo czcionka z `dxCreateFont`.
- `alignX` (string, opcjonalny = left) - `left`, `center` albo `right`.
- `alignY` (string, opcjonalny = top) - `top`, `center` albo `bottom`.
- `clip` (bool, opcjonalny = false) - Ucina tekst wystający poza obszar.
- `wordBreak` (bool, opcjonalny = false) - Łamie długi tekst na kilka linii w obrębie obszaru.
- `postGUI` (bool, opcjonalny = false) - Rysuje nad oknami GUI.
- `colorCoded` (bool, opcjonalny = false) - Włącza kolory w tekście zapisane jak `#FF7A22`.
- `options` (table, opcjonalny) - Zamiast listy argumentów: tabela z polami `font`, `scale`, `alignX`, `alignY`, `shadow`, `outline`, `fit`, `ellipsis` i innymi.

#### Zwraca

`true`, gdy tekst został narysowany, albo `false` przy złym argumencie.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `float fRotation = 0.0`, `float fRotationCenterX = 0.0`, `float fRotationCenterY = 0.0`, `float fLineSpacing = 0.0`
- W MTA:SA: `dxDrawText(string text, float leftX, float topY, float rightX = leftX, float bottomY = topY, int color = 0xFFFFFFFF, float textSize, string/dx-font font = "default", string alignX = "left", string alignY = "top", bool clip = false, bool wordBreak = false, bool postGUI = false, bool colorCoded = false, bool subPixelPositioning = false, float fRotation = 0.0, float fRotationCenterX = 0.0, float fRotationCenterY = 0.0, float fLineSpacing = 0.0)`

#### Przykład

Licznik prędkości w prawym dolnym rogu, z obrysem jak napisy w San Andreas.

```lua
local sw, sh = guiGetScreenSize()

addEventHandler("onClientRender", root, function()
    local auto = getPedOccupiedVehicle(localPlayer)
    if not auto then return end

    local vx, vy, vz = getElementVelocity(auto)  -- metry na sekundę
    local kmh = math.floor((vx * vx + vy * vy + vz * vz) ^ 0.5 * 3.6)

    dxDrawText(kmh .. " km/h", 0, 0, sw - 40, sh - 40, tocolor(255, 255, 255), {
        font = "pricedown", scale = 2,
        alignX = "right", alignY = "bottom",
        outline = 2
    })
end)
```

#### Uwagi

> **Nowość:** **Tabela opcji.** Zamiast długiej listy argumentów możesz podać tabelę opcji. W tabeli są też dodatki: własny cień (`shadow`), obrys (`outline`), dopasowanie skali do szerokości (`fit`) i ucinanie z wielokropkiem (`ellipsis`).

> **Ostrzeżenie:** **Obrót tekstu.** Argumenty obrotu są przyjmowane, ale tekst nie jest jeszcze obracany. Skrypt dostanie jedno ostrzeżenie w konsoli.

> **Uwaga:** **Tylko na jedną klatkę.** Tekst znika w następnej klatce. Żeby był widoczny, rysuj go w każdej klatce w `onClientRender`.

#### Zobacz też

- [`onClientRender`](https://trilogy-hub.com/docs/onClientRender/)
- [`triggerClientEvent`](https://trilogy-hub.com/docs/triggerClientEvent/)

### dxDrawWiredSphere

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Rysuje siatkę kuli w świecie (do debugowania, np. zasięgu strefy). Rysowana na ekranie, więc widać ją przez ściany.

#### Składnia

```lua
bool dxDrawWiredSphere(float x, y, z, float radius [, int color = tocolor(255, 0, 0, 64), float lineWidth = 1, int iterations = 1])
```

#### Argumenty

- `x, y, z` (float) - Środek.
- `radius` (float) - Promień w metrach.
- `color` (int, opcjonalny = tocolor(255, 0, 0, 64)) - Kolor.
- `lineWidth` (float, opcjonalny = 1) - Grubość linii.
- `iterations` (int, opcjonalny = 1) - Gęstość siatki 1-4.

#### Zwraca

`true`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    dxDrawWiredSphere(2495, -1687, 13.5, 30, tocolor(0, 255, 0, 120), 1, 2)
end)
```

#### Zobacz też

- [`dxDrawLine3D`](https://trilogy-hub.com/docs/dxDrawLine3D/)
- [`createColSphere`](https://trilogy-hub.com/docs/createColSphere/)

### dxGetBlendMode

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca tryb ustawiony przez `dxSetBlendMode` (domyślnie `"blend"`).

#### Składnia

```lua
string dxGetBlendMode()
```

#### Zwraca

Tryb.

#### Przykład

```lua
outputChatBox(dxGetBlendMode())
```

#### Zobacz też

- [`dxSetBlendMode`](https://trilogy-hub.com/docs/dxSetBlendMode/)

### dxGetDefaultFont

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca czcionkę ustawioną przez `dxSetDefaultFont` w tym zasobie albo `"default"`.

#### Składnia

```lua
string|font dxGetDefaultFont()
```

#### Zwraca

Czcionka.

#### Przykład

```lua
outputChatBox(tostring(dxGetDefaultFont()))
```

#### Zobacz też

- [`dxSetDefaultFont`](https://trilogy-hub.com/docs/dxSetDefaultFont/)

### dxGetDrawPriority

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca ustawienie `dxSetDrawPriority` bieżącego zasobu: `"overHud"` (domyślnie) albo `"underHud"`.

#### Składnia

```lua
string dxGetDrawPriority()
```

#### Zwraca

`"overHud"` albo `"underHud"`.

#### Przykład

```lua
outputChatBox(dxGetDrawPriority())
```

#### Zobacz też

- [`dxSetDrawPriority`](https://trilogy-hub.com/docs/dxSetDrawPriority/)

### dxGetFontHeight

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca wysokość jednego wiersza tekstu w pikselach dla skali i czcionki.

#### Składnia

```lua
float dxGetFontHeight([float scale = 1, string|font font = "default"])
```

#### Argumenty

- `scale` (float, opcjonalny = 1) - Skala.
- `font` (string|font, opcjonalny = "default") - Czcionka.

#### Zwraca

Wysokość wiersza.

#### Przykład

```lua
local lineH = dxGetFontHeight(1, "default-bold")
addEventHandler("onClientRender", root, function()
    for i, line in ipairs({ "Linia 1", "Linia 2" }) do
        dxDrawText(line, 20, 300 + (i - 1) * lineH)
    end
end)
```

#### Zobacz też

- [`dxGetTextWidth`](https://trilogy-hub.com/docs/dxGetTextWidth/)

### dxGetFontInfo

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca opis czcionki: krój (`family`), rozmiar w pikselach (`px`) i punktach (`size`), ustawienia stylu i źródło.

#### Składnia

```lua
table dxGetFontInfo(string|font font)
```

#### Argumenty

- `font` (string|font) - Czcionka.

#### Zwraca

Tabela opisu.

#### Przykład

```lua
local info = dxGetFontInfo("pricedown")
outputChatBox(info.family .. " " .. info.px .. " px")
```

#### Zobacz też

- [`dxCreateFont`](https://trilogy-hub.com/docs/dxCreateFont/)
- [`dxSetFontStyle`](https://trilogy-hub.com/docs/dxSetFontStyle/)

### dxGetFontList

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca nazwy wbudowanych czcionek: `default`, `default-bold`, `clear`, `arial`, `sans`, `pricedown`, `bankgothic`, `diploma`, `beckett`, `unifont`, `inter`, `inter-medium`, `inter-semibold`, `inter-bold`.

#### Składnia

```lua
table dxGetFontList()
```

#### Zwraca

Posortowane nazwy.

#### Przykład

```lua
for _, name in ipairs(dxGetFontList()) do outputChatBox(name) end
```

#### Zobacz też

- [`dxCreateFont`](https://trilogy-hub.com/docs/dxCreateFont/)

### dxGetMaterialSize

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca szerokość i wysokość materiału: tekstury, render targetu, przeglądarki albo shadera.

#### Składnia

```lua
int, int dxGetMaterialSize(element material)
```

#### Argumenty

- `material` (element) - Materiał.

#### Zwraca

Szerokość i wysokość albo `false`.

#### Przykład

```lua
local w, h = dxGetMaterialSize(dxCreateTexture("img/logo.png"))
```

#### Zobacz też

- [`dxImageSize`](https://trilogy-hub.com/docs/dxImageSize/)
- [`dxCreateTexture`](https://trilogy-hub.com/docs/dxCreateTexture/)

### dxGetPixelColor

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca kolor piksela (x, y) z pikseli w formacie `plain`.

#### Składnia

```lua
int, int, int, int dxGetPixelColor(string pixels, int x, int y)
```

#### Argumenty

- `pixels` (string) - Piksele `plain`.
- `x` (int) - X.
- `y` (int) - Y.

#### Zwraca

r, g, b, a albo `false`.

#### Przykład

```lua
local r, g, b = dxGetPixelColor(dxGetTexturePixels(screen), 10, 10)
```

#### Zobacz też

- [`dxSetPixelColor`](https://trilogy-hub.com/docs/dxSetPixelColor/)
- [`dxGetTexturePixels`](https://trilogy-hub.com/docs/dxGetTexturePixels/)

### dxGetPixelsFormat

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Mówi, w jakim formacie są piksele: `"plain"`, `"png"`, `"jpeg"`, `"dds"` albo `false`.

#### Składnia

```lua
string dxGetPixelsFormat(string pixels)
```

#### Argumenty

- `pixels` (string) - Piksele.

#### Zwraca

Format albo `false`.

#### Przykład

```lua
outputChatBox(tostring(dxGetPixelsFormat(fileGetContents("img/logo.png"))))
```

#### Zobacz też

- [`dxConvertPixels`](https://trilogy-hub.com/docs/dxConvertPixels/)

### dxGetPixelsSize

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca szerokość i wysokość obrazu zapisanego w pikselach (dowolny format).

#### Składnia

```lua
int, int dxGetPixelsSize(string pixels)
```

#### Argumenty

- `pixels` (string) - Piksele.

#### Zwraca

Szerokość i wysokość albo `false`.

#### Przykład

```lua
local w, h = dxGetPixelsSize(fileGetContents("img/logo.png"))
```

#### Zobacz też

- [`dxGetPixelsFormat`](https://trilogy-hub.com/docs/dxGetPixelsFormat/)

### dxGetStatus

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca stan rysowania: tryb testowy, rozdzielczość, liczbę tekstur, render targetów i źródeł ekranu skryptów oraz pamięć tekstur. Przydaje się do szukania wycieków tekstur.

#### Składnia

```lua
table dxGetStatus()
```

#### Zwraca

Tabela stanu.

#### Przykład

```lua
local s = dxGetStatus()
outputChatBox(s.DisplayResolution .. ", tekstury: " .. s.VideoMemoryUsedByTextures)
```

#### Zobacz też

- [`dxSetTestMode`](https://trilogy-hub.com/docs/dxSetTestMode/)

### dxGetTextSize

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca szerokość i wysokość bloku tekstu, także przy zawijaniu do podanej szerokości.

#### Składnia

```lua
float, float dxGetTextSize(string text [, float width = 0, float scaleX = 1, float scaleY, string|font font = "default", bool wordBreak = false, bool colorCoded = false])
```

#### Argumenty

- `text` (string) - Tekst.
- `width` (float, opcjonalny = 0) - Szerokość do zawijania.
- `scaleX` (float, opcjonalny = 1) - Skala w poziomie.
- `scaleY` (float, opcjonalny) - Skala w pionie.
- `font` (string|font, opcjonalny = "default") - Czcionka.
- `wordBreak` (bool, opcjonalny = false) - `true` = zawijaj.
- `colorCoded` (bool, opcjonalny = false) - Pomiń kody kolorów.

#### Zwraca

Szerokość i wysokość.

#### Przykład

```lua
local w, h = dxGetTextSize("Długi opis zadania, który się zawija", 200, 1, 1, "default", true)
```

#### Zobacz też

- [`dxGetTextWidth`](https://trilogy-hub.com/docs/dxGetTextWidth/)

### dxGetTexturePixels

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Zmodyfikowana względem MTA:SA*

Odczytuje piksele tekstury, render targetu albo źródła ekranu w formacie `plain`, `png` albo `jpeg`, w całości albo z wycinka (x, y, szerokość, wysokość). Na przykład do zrzutu ekranu.

#### Składnia

```lua
string dxGetTexturePixels(element texture [, int surfaceIndex, string pixelsFormat = "plain", int x, y, width, height])
```

#### Argumenty

- `surfaceIndex` (int, opcjonalny) - Indeks powierzchni (zgodność ze starszymi skryptami).
- `texture` (element) - Tekstura.
- `pixelsFormat` (string, opcjonalny = "plain") - `"plain"`, `"png"`, `"jpeg"`.
- `x, y, width, height` (int, opcjonalny) - Wycinek.

#### Zwraca

Piksele albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int width = 0`, `int height = 0`
- W MTA:SA: `dxGetTexturePixels(int surfaceIndex = 0, texture texture, string pixelsFormat = "plain", string textureFormat = "unknown", bool mipmaps, int x = 0, int y = 0, int width = 0, int height = 0)`

#### Przykład

```lua
local screen = dxCreateScreenSource(1280, 720)
bindKey("F12", "down", function()
    dxUpdateScreenSource(screen)
    setTimer(function()
        local png = dxGetTexturePixels(screen, "png")
        if png then
            local f = fileCreate("zrzut.png")
            fileWrite(f, png)
            fileClose(f)
        end
    end, 100, 1)
end)
```

#### Zobacz też

- [`dxSetTexturePixels`](https://trilogy-hub.com/docs/dxSetTexturePixels/)
- [`dxConvertPixels`](https://trilogy-hub.com/docs/dxConvertPixels/)

### dxGetTextWidth

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca szerokość tekstu w pikselach dla danej skali i czcionki (jak w `dxDrawText`). Przydaje się do wyśrodkowania i ramek dopasowanych do tekstu.

#### Składnia

```lua
float dxGetTextWidth(string text [, float scale = 1, string|font font = "default", bool colorCoded = false])
```

#### Argumenty

- `text` (string) - Tekst.
- `scale` (float, opcjonalny = 1) - Skala.
- `font` (string|font, opcjonalny = "default") - Czcionka.
- `colorCoded` (bool, opcjonalny = false) - `true` = pomiń kody `#RRGGBB`.

#### Zwraca

Szerokość.

#### Przykład

```lua
local text = "Witaj na serwerze"
addEventHandler("onClientRender", root, function()
    local w = dxGetTextWidth(text, 1.5, "default-bold")
    dxDrawRectangle(20, 20, w + 20, 34, tocolor(0, 0, 0, 160))
    dxDrawText(text, 30, 24, 0, 0, tocolor(255, 255, 255), 1.5, "default-bold")
end)
```

#### Zobacz też

- [`dxGetTextSize`](https://trilogy-hub.com/docs/dxGetTextSize/)
- [`dxGetFontHeight`](https://trilogy-hub.com/docs/dxGetFontHeight/)
- [`dxDrawText`](https://trilogy-hub.com/docs/dxDrawText/)

### dxImageSize

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca rozmiar obrazu z pliku zasobu w pikselach, bez tworzenia tekstury.

#### Składnia

```lua
int, int dxImageSize(string filePath)
```

#### Argumenty

- `filePath` (string) - Ścieżka pliku.

#### Zwraca

Szerokość i wysokość albo `false`.

#### Przykład

```lua
local w, h = dxImageSize("img/logo.png")
```

#### Zobacz też

- [`dxGetMaterialSize`](https://trilogy-hub.com/docs/dxGetMaterialSize/)

### dxIsAspectRatioAdjustmentEnabled

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Zwraca ustawienie z `dxSetAspectRatioAdjustmentEnabled`.

#### Składnia

```lua
bool dxIsAspectRatioAdjustmentEnabled()
```

#### Zwraca

Ustawienie.

#### Przykład

```lua
outputChatBox(tostring(dxIsAspectRatioAdjustmentEnabled()))
```

#### Zobacz też

- [`dxSetAspectRatioAdjustmentEnabled`](https://trilogy-hub.com/docs/dxSetAspectRatioAdjustmentEnabled/)

### dxSetAspectRatioAdjustmentEnabled

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Włącza korektę proporcji rysowania na szerokich ekranach. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`dxIsAspectRatioAdjustmentEnabled`), ale nie zmienia rysowania; licz pozycje od `guiGetScreenSize`.

#### Składnia

```lua
bool dxSetAspectRatioAdjustmentEnabled(bool enabled [, float sourceRatio])
```

#### Argumenty

- `enabled` (bool) - Ustawienie.
- `sourceRatio` (float, opcjonalny) - Proporcje źródłowe.

#### Zwraca

`true`.

#### Przykład

```lua
dxSetAspectRatioAdjustmentEnabled(true, 4 / 3)
```

#### Zobacz też

- [`dxIsAspectRatioAdjustmentEnabled`](https://trilogy-hub.com/docs/dxIsAspectRatioAdjustmentEnabled/)

### dxSetBlendMode

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Ustawia tryb mieszania kolorów przy rysowaniu (`blend`, `add`, `modulate_add`, `overwrite`). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (`dxGetBlendMode`), ale rysowanie zawsze używa zwykłego mieszania.

#### Składnia

```lua
bool dxSetBlendMode(string blendMode)
```

#### Argumenty

- `blendMode` (string) - Tryb.

#### Zwraca

`true`.

#### Przykład

```lua
dxSetBlendMode("add")
```

#### Zobacz też

- [`dxGetBlendMode`](https://trilogy-hub.com/docs/dxGetBlendMode/)

### dxSetDefaultFont

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Ustawia czcionkę, której `dxDrawText` używa bez podanej czcionki, tylko w bieżącym zasobie. `nil` przywraca domyślną.

#### Składnia

```lua
bool dxSetDefaultFont([string|font font])
```

#### Argumenty

- `font` (string|font, opcjonalny) - Czcionka.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
dxSetDefaultFont("inter-semibold")
```

#### Zobacz też

- [`dxGetDefaultFont`](https://trilogy-hub.com/docs/dxGetDefaultFont/)
- [`dxDrawText`](https://trilogy-hub.com/docs/dxDrawText/)

### dxSetDrawPriority

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Ustawia, czy zwykłe rysunki 2D zasobu (`dxDrawRectangle`, `dxDrawText`, `dxDrawImage`, `dxDrawLine` i inne bez `postGUI`) są rysowane nad HUD-em i radarem gry (`"overHud"`, domyślnie) czy pod nimi (`"underHud"`). Ustawienie dotyczy następnych wywołań `dxDraw*` tego zasobu i trwa do zmiany, a każdy zasób ma własne. W jednym `onClientRender` można przełączać: część rysunków pod HUD-em, część nad nim. Rysunki z `postGUI = true` zawsze są nad wszystkim.

#### Składnia

```lua
bool dxSetDrawPriority(string priority)
```

#### Argumenty

- `priority` (string) - `"overHud"` albo `"underHud"`.

#### Zwraca

`true`, a przy złej wartości `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local sw, sh = guiGetScreenSize()
    dxSetDrawPriority("underHud")
    dxDrawRectangle(0, sh - 300, 400, 300, tocolor(0, 0, 0, 150))   -- tlo pod radarem
    dxSetDrawPriority("overHud")
    dxDrawText("Nad HUD", 20, 20)
end)
```

#### Zobacz też

- [`dxGetDrawPriority`](https://trilogy-hub.com/docs/dxGetDrawPriority/)
- [`dxDrawRectangle`](https://trilogy-hub.com/docs/dxDrawRectangle/)

### dxSetFontStyle

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zmienia styl czcionki z `dxCreateFont`: `bold`, `italic`, `underline`, `strike`, `weight`, `spacing`, `widthScale`, `shadow`, `outline`, `outlineColor`, `gradient`, `lineSpacing`, `size`. Możesz podać jeden klucz albo tabelę.

#### Składnia

```lua
bool dxSetFontStyle(font font, string|table key [, mixed value])
```

#### Argumenty

- `font` (font) - Czcionka.
- `key` (string|table) - Klucz albo tabela `{ klucz = wartość }`.
- `value` (mixed, opcjonalny) - Wartość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local font = dxCreateFont("Segoe UI", 16)
dxSetFontStyle(font, { outline = 2, outlineColor = tocolor(0, 0, 0), spacing = 1 })
```

#### Zobacz też

- [`dxCreateFont`](https://trilogy-hub.com/docs/dxCreateFont/)
- [`dxGetFontInfo`](https://trilogy-hub.com/docs/dxGetFontInfo/)

### dxSetPixelColor

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Ustawia kolor piksela (x, y) w pikselach `plain` i zmienia przekazany napis. Obrazy mniejsze niż 4x4 są odrzucane.

#### Składnia

```lua
bool dxSetPixelColor(string pixels, int x, int y, int r, int g, int b [, int a = 255])
```

#### Argumenty

- `pixels` (string) - Piksele `plain`.
- `x` (int) - X.
- `y` (int) - Y.
- `r` (int) - Czerwony.
- `g` (int) - Zielony.
- `b` (int) - Niebieski.
- `a` (int, opcjonalny = 255) - Krycie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
dxSetPixelColor(pixels, 5, 5, 255, 122, 34)
dxSetTexturePixels(tex, pixels)
```

#### Zobacz też

- [`dxGetPixelColor`](https://trilogy-hub.com/docs/dxGetPixelColor/)
- [`dxSetTexturePixels`](https://trilogy-hub.com/docs/dxSetTexturePixels/)

### dxSetRenderTarget

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Ustawia, gdzie rysują funkcje `dxDraw*`: na render target (opcjonalnie najpierw go czyści) albo, bez argumentu, na ekranie. Działa tylko w `onClientRender` i `onClientPreRender`; po zdarzeniu rysowanie wraca na ekran.

#### Składnia

```lua
bool dxSetRenderTarget([element renderTarget, bool clear = false])
```

#### Argumenty

- `renderTarget` (element, opcjonalny) - Render target; brak = ekran.
- `clear` (bool, opcjonalny = false) - `true` = wyczyść przed rysowaniem.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local rt = dxCreateRenderTarget(64, 64, true)
addEventHandler("onClientRender", root, function()
    dxSetRenderTarget(rt, true)
    dxDrawRectangle(0, 0, 50, 50, tocolor(255, 0, 0))
    dxSetRenderTarget()
end)
```

#### Zobacz też

- [`dxCreateRenderTarget`](https://trilogy-hub.com/docs/dxCreateRenderTarget/)

### dxSetTestMode

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Włącza tryb testowy, żeby sprawdzić, czy skrypt radzi sobie z błędami: `"no_mem"` (tworzenie tekstur zawodzi), `"low_mem"` (bez skutku), `"no_shader"` (`dxCreateShader` zawodzi), `"none"` (wyłączony).

#### Składnia

```lua
bool dxSetTestMode(string testMode)
```

#### Argumenty

- `testMode` (string) - Tryb.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
dxSetTestMode("no_shader")
local shader = dxCreateShader("efekt.fx") -- false
dxSetTestMode("none")
```

#### Zobacz też

- [`dxGetStatus`](https://trilogy-hub.com/docs/dxGetStatus/)

### dxSetTextureEdge

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Ustawia, co tekstura pokazuje poza swoim obrazem przy wycinkach (`dxDrawImageSection`): powtórzenie (`wrap`), odbicie (`mirror`), przeciągnięcie krawędzi (`clamp`) albo kolor ramki (`border`).

#### Składnia

```lua
bool dxSetTextureEdge(element theTexture, string textureEdge [, int borderColor])
```

#### Argumenty

- `theTexture` (element) - Tekstura.
- `textureEdge` (string) - `"wrap"`, `"mirror"`, `"clamp"`, `"border"`.
- `borderColor` (int, opcjonalny) - Kolor ramki dla `border`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Kafelkowe tło: wycinek większy od tekstury powtarza ją.

```lua
local tile = dxCreateTexture("img/kafel.png")
dxSetTextureEdge(tile, "wrap")
addEventHandler("onClientRender", root, function()
    dxDrawImageSection(0, 0, 512, 512, 0, 0, 512, 512, tile)
end)
```

#### Zobacz też

- [`dxDrawImageSection`](https://trilogy-hub.com/docs/dxDrawImageSection/)

### dxSetTexturePixels

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Wpisuje piksele (`plain`, `png`, `jpeg`) do tekstury albo render targetu, w całości albo w wycinek.

#### Składnia

```lua
bool dxSetTexturePixels(element texture, string pixels [, int surfaceIndex, int x, y, width, height])
```

#### Argumenty

- `surfaceIndex` (int, opcjonalny) - Indeks powierzchni (zgodność).
- `texture` (element) - Tekstura.
- `pixels` (string) - Piksele.
- `x, y, width, height` (int, opcjonalny) - Wycinek.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local tex = dxCreateTexture(64, 64)
local pixels = dxGetTexturePixels(tex)
dxSetPixelColor(pixels, 10, 10, 255, 0, 0)
dxSetTexturePixels(tex, pixels)
```

#### Zobacz też

- [`dxGetTexturePixels`](https://trilogy-hub.com/docs/dxGetTexturePixels/)
- [`dxSetPixelColor`](https://trilogy-hub.com/docs/dxSetPixelColor/)

### dxUpdateScreenSource

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczna z MTA:SA*

Odświeża źródło obrazu ekranu obrazem gry (bez nakładki skryptów). Obraz dochodzi 1-2 klatki później.

#### Składnia

```lua
bool dxUpdateScreenSource(element screenSource [, bool resampleNow])
```

#### Argumenty

- `screenSource` (element) - Źródło.
- `resampleNow` (bool, opcjonalny) - Bez znaczenia, dla zgodności ze starszymi skryptami.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local screen = dxCreateScreenSource(320, 180)
setTimer(dxUpdateScreenSource, 1000, 0, screen)
```

#### Zobacz też

- [`dxCreateScreenSource`](https://trilogy-hub.com/docs/dxCreateScreenSource/)

### getCameraRenderAttachedTo

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca element, do którego kamera jest przyczepiona.

#### Składnia

```lua
element getCameraRenderAttachedTo(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

Element albo `false`.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
outputChatBox(tostring(getCameraRenderAttachedTo(cam))) -- false
```

#### Zobacz też

- [`attachCameraRender`](https://trilogy-hub.com/docs/attachCameraRender/)

### getCameraRenderExposure

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca obecny mnożnik jasności kamery i czy dobiera go automat.

#### Składnia

```lua
float, bool getCameraRenderExposure(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

Mnożnik i `true` dla trybu `"auto"`.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
local gain, auto = getCameraRenderExposure(cam)
```

#### Zobacz też

- [`setCameraRenderExposure`](https://trilogy-hub.com/docs/setCameraRenderExposure/)

### getCameraRenderFrameRate

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca ustawioną liczbę zdjęć na sekundę (zmierzoną podaje `getCameraRenderInfo`).

#### Składnia

```lua
float getCameraRenderFrameRate(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

Zdjęć na sekundę.

#### Przykład

```lua
local cam = createCameraRender(256, 256, 12)
outputChatBox(getCameraRenderFrameRate(cam)) -- 12
```

#### Zobacz też

- [`setCameraRenderFrameRate`](https://trilogy-hub.com/docs/setCameraRenderFrameRate/)

### getCameraRenderInfo

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca stan kamery: `state`, liczbę klatek w teksturze (`frames`), zmierzone zdjęcia na sekundę (`fps`), czy obraz dociera (`ready`), czy element przyczepienia zniknął (`attachLost`) i błąd (`error`).

#### Składnia

```lua
table getCameraRenderInfo(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

Tabela stanu.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
setTimer(function()
    local info = getCameraRenderInfo(cam)
    outputChatBox(info.ready and ("Kamera: " .. info.fps .. " kl/s") or "Kamera jeszcze nie gotowa")
end, 2000, 1)
```

#### Zobacz też

- [`createCameraRender`](https://trilogy-hub.com/docs/createCameraRender/)

### getCameraRenderMatrix

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca położenie kamery: x, y, z, cel, przechylenie i pole widzenia. Dla kamery przyczepionej do elementu podaje miejsce ostatniego zdjęcia.

#### Składnia

```lua
float, float, float, float, float, float, float, float getCameraRenderMatrix(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

x, y, z, lx, ly, lz, roll, fov albo `false`.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
local x, y, z = getCameraRenderMatrix(cam)
```

#### Zobacz też

- [`setCameraRenderMatrix`](https://trilogy-hub.com/docs/setCameraRenderMatrix/)

### getCameraRenderViewDistance

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca zasięg widzenia kamery w metrach (0 = jak w grze).

#### Składnia

```lua
float getCameraRenderViewDistance(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

Zasięg.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
outputChatBox(getCameraRenderViewDistance(cam)) -- 0
```

#### Zobacz też

- [`setCameraRenderViewDistance`](https://trilogy-hub.com/docs/setCameraRenderViewDistance/)

### getRecordingData

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca całe nagranie jako plik AVI (MJPEG) w napisie, np. do `fileWrite`, wysłania na serwer albo `createRecordingFromData`.

#### Składnia

```lua
string getRecordingData(element recording)
```

#### Argumenty

- `recording` (element) - Nagranie.

#### Zwraca

Dane AVI albo `false`.

#### Przykład

```lua
local rec = loadRecording("powtorki/ostatnia.avi")
if rec then triggerServerEvent("onReplayUpload", localPlayer, getRecordingData(rec)) end
```

#### Zobacz też

- [`createRecordingFromData`](https://trilogy-hub.com/docs/createRecordingFromData/)
- [`saveRecording`](https://trilogy-hub.com/docs/saveRecording/)

### getRecordingFrame

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca piksele jednej klatki nagrania (numer od 1) w formacie `jpeg` (domyślnie), `png` albo `plain`, np. do `dxCreateTexture` albo zapisu zdjęcia.

#### Składnia

```lua
string getRecordingFrame(element recording, int index [, string format = "jpeg"])
```

#### Argumenty

- `recording` (element) - Nagranie.
- `index` (int) - Numer klatki od 1.
- `format` (string, opcjonalny = "jpeg") - Format.

#### Zwraca

Piksele albo `false`.

#### Przykład

```lua
local rec = loadRecording("powtorki/ostatnia.avi")
local thumb = rec and dxCreateTexture(getRecordingFrame(rec, 1))
```

#### Zobacz też

- [`getRecordingInfo`](https://trilogy-hub.com/docs/getRecordingInfo/)
- [`dxCreateTexture`](https://trilogy-hub.com/docs/dxCreateTexture/)

### getRecordingInfo

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca informacje o nagraniu: czy trwa (`recording`), liczbę klatek, klatki na sekundę, długość w ms (`duration`), rozmiar obrazu, rozmiar danych w bajtach (`size`) i powód zatrzymania (`stopReason`).

#### Składnia

```lua
table getRecordingInfo(element recording)
```

#### Argumenty

- `recording` (element) - Nagranie.

#### Zwraca

Tabela informacji.

#### Przykład

```lua
local rec = loadRecording("powtorki/ostatnia.avi")
local info = rec and getRecordingInfo(rec)
if info then outputChatBox(("%d klatek, %.1f s"):format(info.frames, info.duration / 1000)) end
```

#### Zobacz też

- [`startCameraRecording`](https://trilogy-hub.com/docs/startCameraRecording/)

### getRecordingPlayerPosition

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca położenie odtwarzacza i długość nagrania w milisekundach.

#### Składnia

```lua
int, int getRecordingPlayerPosition(element player)
```

#### Argumenty

- `player` (element) - Odtwarzacz.

#### Zwraca

Położenie i długość albo `false`.

#### Przykład

```lua
local screen = createRecordingPlayer(loadRecording("powtorki/ostatnia.avi"))
addEventHandler("onClientRender", root, function()
    local pos, len = getRecordingPlayerPosition(screen)
    if pos then dxDrawText(("%.1f / %.1f s"):format(pos / 1000, len / 1000), 20, 60) end
end)
```

#### Zobacz też

- [`setRecordingPlayerPosition`](https://trilogy-hub.com/docs/setRecordingPlayerPosition/)

### getWorldPointOcclusionInfo

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zwraca stan sprawdzania zasłaniania: czy jest włączone (`enabled`), czy gra odpowiada (`available`), liczbę sprawdzeń (`checks`), kolejkę (`queue`) i zapamiętane punkty (`cached`).

#### Składnia

```lua
table getWorldPointOcclusionInfo()
```

#### Zwraca

Tabela stanu.

#### Przykład

```lua
local info = getWorldPointOcclusionInfo()
outputChatBox("Kolejka: " .. info.queue)
```

#### Zobacz też

- [`isWorldPointVisible`](https://trilogy-hub.com/docs/isWorldPointVisible/)

### isCameraRecording

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Sprawdza, czy nagranie wciąż trwa (staje samo po maksymalnym czasie, limicie pamięci albo usunięciu kamery).

#### Składnia

```lua
bool isCameraRecording(element recording)
```

#### Argumenty

- `recording` (element) - Nagranie.

#### Zwraca

`true` w trakcie nagrywania.

#### Przykład

```lua
local cam = createCameraRender(320, 180, 15)
local rec = startCameraRecording(cam)
addEventHandler("onClientRender", root, function()
    if isCameraRecording(rec) then dxDrawText("REC", 20, 20, 0, 0, tocolor(255, 0, 0)) end
end)
```

#### Zobacz też

- [`startCameraRecording`](https://trilogy-hub.com/docs/startCameraRecording/)

### isCameraRender

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Sprawdza, czy wartość to działająca kamera z `createCameraRender`.

#### Składnia

```lua
bool isCameraRender(mixed value)
```

#### Argumenty

- `value` (mixed) - Wartość.

#### Zwraca

`true` dla kamery.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
outputChatBox(tostring(isCameraRender(cam))) -- true
```

#### Zobacz też

- [`createCameraRender`](https://trilogy-hub.com/docs/createCameraRender/)

### isCameraRenderMirrored

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Sprawdza, czy obraz kamery jest odbity.

#### Składnia

```lua
bool isCameraRenderMirrored(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

`true`, gdy odbity.

#### Przykład

```lua
local mirror = createCameraRender(400, 120)
outputChatBox(tostring(isCameraRenderMirrored(mirror))) -- false
```

#### Zobacz też

- [`setCameraRenderMirrored`](https://trilogy-hub.com/docs/setCameraRenderMirrored/)

### isRecordingPlayerPlaying

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Sprawdza, czy odtwarzacz gra (nie jest na pauzie i nie doszedł do końca bez pętli).

#### Składnia

```lua
bool isRecordingPlayerPlaying(element player)
```

#### Argumenty

- `player` (element) - Odtwarzacz.

#### Zwraca

`true` podczas odtwarzania.

#### Przykład

```lua
local screen = createRecordingPlayer(loadRecording("powtorki/ostatnia.avi"))
local check
check = setTimer(function()
    if not isRecordingPlayerPlaying(screen) then
        outputChatBox("Koniec powtórki")
        killTimer(check)
    end
end, 1000, 0)
```

#### Zobacz też

- [`setRecordingPlayerPaused`](https://trilogy-hub.com/docs/setRecordingPlayerPaused/)

### isWorldPointOcclusionEnabled

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Sprawdza, czy `isWorldPointVisible` sprawdza zasłanianie.

#### Składnia

```lua
bool isWorldPointOcclusionEnabled()
```

#### Zwraca

Ustawienie.

#### Przykład

```lua
outputChatBox(tostring(isWorldPointOcclusionEnabled()))
```

#### Zobacz też

- [`setWorldPointOcclusion`](https://trilogy-hub.com/docs/setWorldPointOcclusion/)

### isWorldPointVisible

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Sprawdza, czy punkt świata jest na ekranie i nie zasłania go budynek ani teren. Zasłanianie jest sprawdzane w tle, więc wynik dla nowego punktu przychodzi po chwili. Do napisów i znaczników 3D, które nie mają być widoczne przez ściany.

#### Składnia

```lua
bool isWorldPointVisible(float x, y, z)
```

#### Argumenty

- `x, y, z` (float) - Punkt.

#### Zwraca

`true`, gdy punkt jest widoczny.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local x, y, z = 2495, -1687, 15
    if isWorldPointVisible(x, y, z) then
        local sx, sy = getScreenFromWorldPosition(x, y, z)
        if sx then dxDrawText("Grove Street", sx, sy) end
    end
end)
```

#### Uwagi

> **Nowość:** **Zasłanianie w tle.** Nie musisz wołać `processLineOfSight` w każdej klatce; zasłanianie liczy gra w tle.

#### Zobacz też

- [`setWorldPointOcclusion`](https://trilogy-hub.com/docs/setWorldPointOcclusion/)
- [`getScreenFromWorldPosition`](https://trilogy-hub.com/docs/getScreenFromWorldPosition/)

### loadRecording

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Wczytuje nagranie z pliku AVI (MJPEG) zasobu.

#### Składnia

```lua
element loadRecording(string filePath)
```

#### Argumenty

- `filePath` (string) - Ścieżka pliku.

#### Zwraca

Nagranie albo `false`.

#### Przykład

```lua
local rec = loadRecording("powtorki/ostatnia.avi")
```

#### Zobacz też

- [`saveRecording`](https://trilogy-hub.com/docs/saveRecording/)
- [`createRecordingPlayer`](https://trilogy-hub.com/docs/createRecordingPlayer/)

### renderCameraMatrix

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Robi jedno zdjęcie kamerą z podanego miejsca (jak `setCameraRenderMatrix` i `updateCameraRender` naraz). Obraz pojawia się w teksturze 1-2 klatki później; działa też przy 0 zdjęciach na sekundę.

#### Składnia

```lua
bool renderCameraMatrix(element camera, float x, y, z, float lx, ly, lz [, float roll = 0, float fov = 70])
```

#### Argumenty

- `camera` (element) - Kamera.
- `x, y, z` (float) - Pozycja.
- `lx, ly, lz` (float) - Cel.
- `roll` (float, opcjonalny = 0) - Przechylenie.
- `fov` (float, opcjonalny = 70) - Pole widzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Zdjęcie gracza z boku (kamera bez stałego odświeżania).

```lua
local photo = createCameraRender(640, 360, 0)
local x, y, z = getElementPosition(localPlayer)
renderCameraMatrix(photo, x + 5, y + 5, z + 3, x, y, z)
```

#### Zobacz też

- [`createCameraRender`](https://trilogy-hub.com/docs/createCameraRender/)
- [`updateCameraRender`](https://trilogy-hub.com/docs/updateCameraRender/)

### saveRecording

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zapisuje nagranie do pliku AVI w zasobie (nadpisuje istniejący, jak `fileCreate`).

#### Składnia

```lua
bool saveRecording(element recording, string filePath)
```

#### Argumenty

- `recording` (element) - Nagranie.
- `filePath` (string) - Ścieżka pliku.

#### Zwraca

`true`, gdy zapisano całość.

#### Przykład

```lua
local cam = createCameraRender(320, 180, 15)
local rec = startCameraRecording(cam, 15, 5)
setTimer(function()
    saveRecording(rec, "powtorki/" .. getRealTime().timestamp .. ".avi")
end, 6000, 1)
```

#### Zobacz też

- [`loadRecording`](https://trilogy-hub.com/docs/loadRecording/)
- [`getRecordingData`](https://trilogy-hub.com/docs/getRecordingData/)

### setCameraRenderElementHidden

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Ukrywa element tylko w obrazie tej kamery, np. własne auto w lusterku albo gracza trzymającego telefon. Cień elementu zostaje. Do 64 elementów na kamerę.

#### Składnia

```lua
bool setCameraRenderElementHidden(element camera, element element, bool hidden)
```

#### Argumenty

- `camera` (element) - Kamera.
- `element` (element) - Element.
- `hidden` (bool) - `true` = ukryty.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local selfie = createCameraRender(400, 400)
setCameraRenderElementHidden(selfie, localPlayer, true)
```

#### Zobacz też

- [`attachCameraRender`](https://trilogy-hub.com/docs/attachCameraRender/)

### setCameraRenderExposure

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Ustawia jasność obrazu kamery: `"auto"` (domyślnie, dobiera mnożnik 0.5-4 z jasności kadru jak aparat) albo stały mnożnik 0.05-16. Obraz kamery ma podniesione cienie, żeby w nocy wyglądał podobnie do gry.

#### Składnia

```lua
bool setCameraRenderExposure(element camera, string|float value)
```

#### Argumenty

- `camera` (element) - Kamera.
- `value` (string|float) - `"auto"` albo mnożnik.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
setCameraRenderExposure(cam, 1.5)
```

#### Zobacz też

- [`getCameraRenderExposure`](https://trilogy-hub.com/docs/getCameraRenderExposure/)

### setCameraRenderFrameRate

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Ustawia, ile zdjęć na sekundę robi kamera (0-60; 0 = tylko na żądanie).

#### Składnia

```lua
bool setCameraRenderFrameRate(element camera, float fps)
```

#### Argumenty

- `camera` (element) - Kamera.
- `fps` (float) - Zdjęć na sekundę.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local cam = createCameraRender(256, 256)
setCameraRenderFrameRate(cam, 5)
```

#### Zobacz też

- [`getCameraRenderFrameRate`](https://trilogy-hub.com/docs/getCameraRenderFrameRate/)
- [`updateCameraRender`](https://trilogy-hub.com/docs/updateCameraRender/)

### setCameraRenderMatrix

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Ustawia kamerę w miejscu i kierunku jak `setCameraMatrix`: pozycja, punkt, w który patrzy, przechylenie i pole widzenia (5-170, domyślnie 70). Odpina kamerę od elementu.

#### Składnia

```lua
bool setCameraRenderMatrix(element camera, float x, y, z, float lx, ly, lz [, float roll = 0, float fov = 70])
```

#### Argumenty

- `camera` (element) - Kamera.
- `x, y, z` (float) - Pozycja.
- `lx, ly, lz` (float) - Punkt, w który patrzy.
- `roll` (float, opcjonalny = 0) - Przechylenie w stopniach (dodatnie = w prawo).
- `fov` (float, opcjonalny = 70) - Pole widzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Widok z góry na skrzyżowanie.

```lua
local cam = createCameraRender(512, 512, 10)
setCameraRenderMatrix(cam, 1544, -1675, 60, 1544, -1674, 0, 0, 90)
```

#### Zobacz też

- [`getCameraRenderMatrix`](https://trilogy-hub.com/docs/getCameraRenderMatrix/)
- [`renderCameraMatrix`](https://trilogy-hub.com/docs/renderCameraMatrix/)
- [`attachCameraRender`](https://trilogy-hub.com/docs/attachCameraRender/)

### setCameraRenderMirrored

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Odbija obraz kamery w poziomie (lusterko). Dotyczy też nagrań z tej kamery.

#### Składnia

```lua
bool setCameraRenderMirrored(element camera, bool mirrored)
```

#### Argumenty

- `camera` (element) - Kamera.
- `mirrored` (bool) - `true` = odbity.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local mirror = createCameraRender(400, 120)
setCameraRenderMirrored(mirror, true)
```

#### Zobacz też

- [`isCameraRenderMirrored`](https://trilogy-hub.com/docs/isCameraRenderMirrored/)
- [`attachCameraRender`](https://trilogy-hub.com/docs/attachCameraRender/)

### setCameraRenderViewDistance

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Ustawia zasięg widzenia kamery w metrach (0 = jak w grze). Krótszy zasięg to tańszy render, np. dla lusterka.

#### Składnia

```lua
bool setCameraRenderViewDistance(element camera, float metres)
```

#### Argumenty

- `camera` (element) - Kamera.
- `metres` (float) - Zasięg.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local mirror = createCameraRender(400, 120)
setCameraRenderViewDistance(mirror, 150)
```

#### Zobacz też

- [`getCameraRenderViewDistance`](https://trilogy-hub.com/docs/getCameraRenderViewDistance/)

### setGroundDecalColor

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zmienia kolor decala z createGroundDecal.

#### Składnia

```lua
bool setGroundDecalColor(int decal, int color)
```

#### Argumenty

- `decal` (int) - Numer decala.
- `color` (int) - Kolor z tocolor.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local x, y, z = getElementPosition(localPlayer)
local decal = createGroundDecal("img/okrag.png", x, y, z, 4)
setGroundDecalColor(decal, tocolor(255, 60, 60, 200))
```

#### Zobacz też

- [`createGroundDecal`](https://trilogy-hub.com/docs/createGroundDecal/)

### setRecordingPlayerLooped

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Włącza albo wyłącza odtwarzanie w pętli.

#### Składnia

```lua
bool setRecordingPlayerLooped(element player, bool looped)
```

#### Argumenty

- `player` (element) - Odtwarzacz.
- `looped` (bool) - `true` = pętla.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local screen = createRecordingPlayer(loadRecording("powtorki/ostatnia.avi"))
setRecordingPlayerLooped(screen, true)
```

#### Zobacz też

- [`createRecordingPlayer`](https://trilogy-hub.com/docs/createRecordingPlayer/)

### setRecordingPlayerPaused

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Pauzuje albo wznawia odtwarzacz. Wznowienie po końcu nagrania zaczyna od początku.

#### Składnia

```lua
bool setRecordingPlayerPaused(element player, bool paused)
```

#### Argumenty

- `player` (element) - Odtwarzacz.
- `paused` (bool) - `true` = pauza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local screen = createRecordingPlayer(loadRecording("powtorki/ostatnia.avi"))
bindKey("space", "down", function()
    setRecordingPlayerPaused(screen, isRecordingPlayerPlaying(screen))
end)
```

#### Zobacz też

- [`isRecordingPlayerPlaying`](https://trilogy-hub.com/docs/isRecordingPlayerPlaying/)

### setRecordingPlayerPosition

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Przewija odtwarzacz do podanej milisekundy nagrania.

#### Składnia

```lua
bool setRecordingPlayerPosition(element player, float ms)
```

#### Argumenty

- `player` (element) - Odtwarzacz.
- `ms` (float) - Milisekunda.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local screen = createRecordingPlayer(loadRecording("powtorki/ostatnia.avi"))
setRecordingPlayerPosition(screen, 5000)
```

#### Zobacz też

- [`getRecordingPlayerPosition`](https://trilogy-hub.com/docs/getRecordingPlayerPosition/)

### setRecordingPlayerSpeed

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Ustawia prędkość odtwarzania 0-16 (1 = normalna, 0.5 = zwolnione tempo).

#### Składnia

```lua
bool setRecordingPlayerSpeed(element player, float speed)
```

#### Argumenty

- `player` (element) - Odtwarzacz.
- `speed` (float) - Prędkość.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local screen = createRecordingPlayer(loadRecording("powtorki/ostatnia.avi"))
setRecordingPlayerSpeed(screen, 0.25)
```

#### Zobacz też

- [`createRecordingPlayer`](https://trilogy-hub.com/docs/createRecordingPlayer/)

### setWorldPointOcclusion

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Włącza albo wyłącza sprawdzanie zasłaniania w `isWorldPointVisible` (`false` = punkty widoczne przez ściany, do debugowania).

#### Składnia

```lua
bool setWorldPointOcclusion(bool enabled)
```

#### Argumenty

- `enabled` (bool) - Ustawienie.

#### Zwraca

`true`.

#### Przykład

```lua
setWorldPointOcclusion(false)
```

#### Zobacz też

- [`isWorldPointVisible`](https://trilogy-hub.com/docs/isWorldPointVisible/)

### startCameraRecording

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Nagrywa obraz kamery z `createCameraRender` do pamięci (bez dźwięku). Zwraca element nagrania. 1-60 klatek na sekundę, do 600 sekund, jakość JPEG 1-100. Kamera powinna robić co najmniej tyle zdjęć na sekundę co nagranie, inaczej klatki się powtarzają.

#### Składnia

```lua
element startCameraRecording(element camera [, int fps = 15, int seconds = 60, int quality = 80])
```

#### Argumenty

- `camera` (element) - Kamera.
- `fps` (int, opcjonalny = 15) - Klatki na sekundę.
- `seconds` (int, opcjonalny = 60) - Najdłuższy czas.
- `quality` (int, opcjonalny = 80) - Jakość JPEG.

#### Zwraca

Nagranie albo `false`.

#### Przykład

Nagranie 10 sekund jazdy kamerą za autem.

```lua
local veh = getPedOccupiedVehicle(localPlayer)
if veh then
    local cam = createCameraRender(640, 360, 30)
    attachCameraRender(cam, veh, 0, -6, 2)
    local rec = startCameraRecording(cam, 30, 10)
    setTimer(function()
        stopCameraRecording(rec)
        saveRecording(rec, "powtorki/ostatnia.avi")
    end, 10000, 1)
end
```

#### Uwagi

> **Nowość:** **Nagrywanie ze skryptu.** Nagrywanie obrazu z gry do pliku AVI ze skryptu.

#### Zobacz też

- [`stopCameraRecording`](https://trilogy-hub.com/docs/stopCameraRecording/)
- [`createRecordingPlayer`](https://trilogy-hub.com/docs/createRecordingPlayer/)
- [`saveRecording`](https://trilogy-hub.com/docs/saveRecording/)

### stopCameraRecording

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Kończy nagrywanie. Nagranie zostaje do odtworzenia i zapisu. Zwraca `false`, gdy już nie nagrywało.

#### Składnia

```lua
bool stopCameraRecording(element recording)
```

#### Argumenty

- `recording` (element) - Nagranie.

#### Zwraca

`true`, gdy zatrzymano.

#### Przykład

```lua
local cam = createCameraRender(320, 180, 15)
local rec = startCameraRecording(cam, 15, 30)
bindKey("F7", "down", function() stopCameraRecording(rec) end)
```

#### Zobacz też

- [`startCameraRecording`](https://trilogy-hub.com/docs/startCameraRecording/)
- [`isCameraRecording`](https://trilogy-hub.com/docs/isCameraRecording/)

### updateCameraRender

*Funkcja · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zleca jedno zdjęcie kamery w najbliższej klatce (obraz w teksturze 1-2 klatki później).

#### Składnia

```lua
bool updateCameraRender(element camera)
```

#### Argumenty

- `camera` (element) - Kamera.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local cam = createCameraRender(512, 288, 0)
attachCameraRender(cam, localPlayer, 0, -4, 1.5)
bindKey("p", "down", function() updateCameraRender(cam) end)
```

#### Zobacz też

- [`renderCameraMatrix`](https://trilogy-hub.com/docs/renderCameraMatrix/)
- [`setCameraRenderFrameRate`](https://trilogy-hub.com/docs/setCameraRenderFrameRate/)

### dxCreateShader

*Funkcja · Strona: Klient · Kategoria: Shadery · Zmodyfikowana względem MTA:SA*

Tworzy shader z pliku .fx zasobu albo z kodu podanego jako tekst. W Trilogy Hub shader wykonuje podmianę tekstury: obraz podany przez `dxSetShaderValue` pod parametrem tekstury zastępuje tekstury świata wskazane przez `engineApplyShaderToWorldTexture` (np. własne billboardy, napisy na budynkach, oklejenie aut). Materiał gry zostaje (oświetlenie, odbicia), zmienia się sam obraz. Efekty pikselowe i wierzchołkowe z kodu HLSL nie są wykonywane.

#### Składnia

```lua
element, string dxCreateShader(string filepath [, int priority = 0, float maxDistance = 0, bool layered = false, string elementTypes = "world,vehicle,object,other"])
```

#### Argumenty

- `filepath` (string) - Ścieżka do pliku .fx w zasobie albo kod shadera.
- `priority` (int, opcjonalny = 0) - Pierwszeństwo, gdy kilka shaderów trafia w tę samą teksturę.
- `maxDistance` (float, opcjonalny = 0) - Dla zgodności ze starszymi skryptami.
- `layered` (bool, opcjonalny = false) - Dla zgodności ze starszymi skryptami.
- `elementTypes` (string, opcjonalny = "world,vehicle,object,other") - Dla zgodności ze starszymi skryptami.

#### Zwraca

Element `shader` i nazwa techniki z pliku albo `false`, gdy pliku nie da się wczytać.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string elementTypes = "world,vehicle,object,other"`
- W MTA:SA: `dxCreateShader(string filepath/raw_data, table macros = {}, float priority = 0, float maxDistance = 0, bool layered = false, string elementTypes = "world,vehicle,object,other")`

#### Przykład

```lua
local shader = dxCreateShader("texture gTexture; technique replace { pass P0 { Texture[0] = gTexture; } }")
local image = dxCreateTexture("billboard.png")
dxSetShaderValue(shader, "gTexture", image)
engineApplyShaderToWorldTexture(shader, "heat_02")
```

#### Zobacz też

- [`dxSetShaderValue`](https://trilogy-hub.com/docs/dxSetShaderValue/)
- [`engineApplyShaderToWorldTexture`](https://trilogy-hub.com/docs/engineApplyShaderToWorldTexture/)
- [`engineApplyTextureToWorldTexture`](https://trilogy-hub.com/docs/engineApplyTextureToWorldTexture/)

### dxSetShaderTessellation

*Funkcja · Strona: Klient · Kategoria: Shadery · Identyczna z MTA:SA*

Ustawia gęstość siatki dla efektów wierzcholkowych shadera. W Trilogy Hub nie ma skutku, bo shadery wykonują tylko podmianę tekstury.

#### Składnia

```lua
bool dxSetShaderTessellation(element theShader [, int tessellationX = 1, int tessellationY = 1])
```

#### Argumenty

- `theShader` (element) - Shader.
- `tessellationX` (int, opcjonalny = 1) - Podział w poziomie (bez skutku).
- `tessellationY` (int, opcjonalny = 1) - Podział w pionie (bez skutku).

#### Zwraca

`true` dla poprawnego shadera.

#### Przykład

```lua
local shader = dxCreateShader("texture gTexture; technique t { pass P0 { Texture[0] = gTexture; } }")
dxSetShaderTessellation(shader, 4, 4)
```

#### Zobacz też

- [`dxCreateShader`](https://trilogy-hub.com/docs/dxCreateShader/)

### dxSetShaderTransform

*Funkcja · Strona: Klient · Kategoria: Shadery · Identyczna z MTA:SA*

Obraca obraz shadera rysowany przez `dxDrawImage` w 3D. Nieobsługiwane - zawsze zwraca `false`.

#### Składnia

```lua
bool dxSetShaderTransform(element theShader [, float ...])
```

#### Argumenty

- `theShader` (element) - Shader.
- `...` (float, opcjonalny) - Parametry obrotu (pomijane).

#### Zwraca

Zawsze `false`.

#### Przykład

```lua
local shader = dxCreateShader("texture gTexture; technique t { pass P0 { Texture[0] = gTexture; } }")
if not dxSetShaderTransform(shader, 30, 0, 0) then outputDebugString("Brak transformacji") end
```

#### Zobacz też

- [`dxCreateShader`](https://trilogy-hub.com/docs/dxCreateShader/)

### dxSetShaderValue

*Funkcja · Strona: Klient · Kategoria: Shadery · Identyczna z MTA:SA*

Ustawia parametr shadera. Gdy parametr jest teksturą zadeklarowaną w kodzie .fx (albo shader nie ma żadnej), a wartością jest tekstura (`dxCreateTexture`, render target, przeglądarka) lub ścieżka obrazu, ten obraz staje się nową teksturą podmienianą w świecie. Liczby i wektory są zapamiętywane dla zgodności ze starszymi skryptami.

#### Składnia

```lua
bool dxSetShaderValue(element theShader, string parameterName, any value [, float ...])
```

#### Argumenty

- `theShader` (element) - Shader.
- `parameterName` (string) - Nazwa parametru z kodu .fx.
- `value` (any) - Tekstura, ścieżka obrazu, liczba albo tabela liczb.
- `...` (float, opcjonalny) - Kolejne liczby wektora.

#### Zwraca

`true` przy powodzeniu, `false` dla nieznanego materiału.

#### Przykład

```lua
local shader = dxCreateShader("texture gTexture; technique t { pass P0 { Texture[0] = gTexture; } }")
local target = dxCreateRenderTarget(512, 256)
dxSetShaderValue(shader, "gTexture", target)
engineApplyShaderToWorldTexture(shader, "heat_02")
```

#### Zobacz też

- [`dxCreateShader`](https://trilogy-hub.com/docs/dxCreateShader/)
- [`dxCreateTexture`](https://trilogy-hub.com/docs/dxCreateTexture/)

### engineApplyShaderToWorldTexture

*Funkcja · Strona: Klient · Kategoria: Shadery · Identyczna z MTA:SA*

Podmienia teksturę świata San Andreas o podanej nazwie na obraz shadera. Nazwa może zawierać znaki `*` i `?` (np. `"vehiclegrunge*"`). Bez elementu podmiana działa na wszystkich obiektach z tą teksturą, także wczytanych później; z elementem (pojazd, obiekt, postać) - tylko na nim. Nazwy tekstur widocznych teraz w grze zwraca `engineGetVisibleTextureNames`.

#### Składnia

```lua
bool engineApplyShaderToWorldTexture(element theShader, string textureName [, element targetElement = nil, bool appendLayers = true])
```

#### Argumenty

- `theShader` (element) - Shader z ustawioną teksturą.
- `textureName` (string) - Nazwa tekstury albo wzorzec.
- `targetElement` (element, opcjonalny = nil) - Pojazd, obiekt albo postać.
- `appendLayers` (bool, opcjonalny = true) - Dla zgodności ze starszymi skryptami.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local shader = dxCreateShader("texture gTexture; technique t { pass P0 { Texture[0] = gTexture; } }")
dxSetShaderValue(shader, "gTexture", dxCreateTexture("wrap.png"))
local car = getPedOccupiedVehicle(localPlayer)
if car then engineApplyShaderToWorldTexture(shader, "vehiclegrunge256", car) end
```

#### Zobacz też

- [`engineRemoveShaderFromWorldTexture`](https://trilogy-hub.com/docs/engineRemoveShaderFromWorldTexture/)
- [`engineGetVisibleTextureNames`](https://trilogy-hub.com/docs/engineGetVisibleTextureNames/)
- [`dxCreateShader`](https://trilogy-hub.com/docs/dxCreateShader/)

### engineApplyTextureToWorldTexture

*Funkcja · Strona: Klient · Kategoria: Shadery · Tylko Trilogy Hub*

Podmienia teksturę świata na teksturę skryptu bez pisania shadera: wystarczy tekstura z `dxCreateTexture`, render target, zrzut ekranu albo przeglądarka. Działa jak `engineApplyShaderToWorldTexture` (wzorce `*` i `?`, opcjonalny element). Render target i przeglądarka dają żywy obraz, np. telewizor w grze pokazujący stronę WWW.

#### Składnia

```lua
bool engineApplyTextureToWorldTexture(element texture, string textureName [, element targetElement = nil])
```

#### Argumenty

- `texture` (element) - Tekstura skryptu.
- `textureName` (string) - Nazwa tekstury świata albo wzorzec.
- `targetElement` (element, opcjonalny = nil) - Pojazd, obiekt albo postać.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local board = dxCreateRenderTarget(512, 256)
engineApplyTextureToWorldTexture(board, "heat_02")
addEventHandler("onClientRender", root, function()
    dxSetRenderTarget(board, true)
    dxDrawRectangle(0, 0, 512, 256, tocolor(0, 0, 0))
    dxDrawText(os.date("%H:%M:%S"), 0, 0, 512, 256, tocolor(255, 255, 0), 4, "default", "center", "center")
    dxSetRenderTarget()
end)
```

#### Zobacz też

- [`engineRemoveTextureFromWorldTexture`](https://trilogy-hub.com/docs/engineRemoveTextureFromWorldTexture/)
- [`engineApplyShaderToWorldTexture`](https://trilogy-hub.com/docs/engineApplyShaderToWorldTexture/)

### engineGetVisibleTextureNames

*Funkcja · Strona: Klient · Kategoria: Shadery · Zmodyfikowana względem MTA:SA*

Zwraca nazwy tekstur San Andreas wczytanych teraz w grze (wokół gracza), z opcjonalnym filtrem `*` i `?`. Pomaga znaleźć nazwę tekstury do podmiany: stań przy obiekcie i wypisz listę. Drugi argument (model) jest pomijany.

#### Składnia

```lua
table engineGetVisibleTextureNames([string nameFilter = "*", int modelId = nil])
```

#### Argumenty

- `nameFilter` (string, opcjonalny = "*") - Wzorzec nazwy.
- `modelId` (int, opcjonalny = nil) - Pomijany.

#### Zwraca

Tablica nazw (najwyżej 5000).

#### Różnice względem MTA:SA

- W MTA:SA: `engineGetVisibleTextureNames(string nameFilter = "*", string modelIdOrName = "")`

#### Przykład

```lua
addCommandHandler("tekstury", function(_, filter)
    for _, name in ipairs(engineGetVisibleTextureNames(filter or "*sign*")) do outputConsole(name) end
end)
```

#### Zobacz też

- [`engineApplyShaderToWorldTexture`](https://trilogy-hub.com/docs/engineApplyShaderToWorldTexture/)

### engineRemoveShaderFromWorldTexture

*Funkcja · Strona: Klient · Kategoria: Shadery · Identyczna z MTA:SA*

Zdejmuje podmianę tekstury zrobioną przez `engineApplyShaderToWorldTexture` - trzeba podać ten sam wzorzec nazwy i ten sam element. Wraca oryginalna tekstura gry.

#### Składnia

```lua
bool engineRemoveShaderFromWorldTexture(element theShader, string textureName [, element targetElement = nil])
```

#### Argumenty

- `theShader` (element) - Shader.
- `textureName` (string) - Ten sam wzorzec nazwy.
- `targetElement` (element, opcjonalny = nil) - Ten sam element.

#### Zwraca

`true`, gdy zdjęto; `false`, gdy takiej podmiany nie było.

#### Przykład

```lua
local shader = dxCreateShader("texture gTexture; technique t { pass P0 { Texture[0] = gTexture; } }")
dxSetShaderValue(shader, "gTexture", dxCreateTexture("sign.png"))
engineApplyShaderToWorldTexture(shader, "heat_02")
setTimer(function() engineRemoveShaderFromWorldTexture(shader, "heat_02") end, 30000, 1)
```

#### Zobacz też

- [`engineApplyShaderToWorldTexture`](https://trilogy-hub.com/docs/engineApplyShaderToWorldTexture/)

### engineRemoveTextureFromWorldTexture

*Funkcja · Strona: Klient · Kategoria: Shadery · Tylko Trilogy Hub*

Zdejmuje podmianę zrobioną przez `engineApplyTextureToWorldTexture` (ta sama tekstura, wzorzec i element). Wraca oryginał.

#### Składnia

```lua
bool engineRemoveTextureFromWorldTexture(element texture, string textureName [, element targetElement = nil])
```

#### Argumenty

- `texture` (element) - Ta sama tekstura skryptu.
- `textureName` (string) - Ten sam wzorzec nazwy.
- `targetElement` (element, opcjonalny = nil) - Ten sam element.

#### Zwraca

`true`, gdy zdjęto.

#### Przykład

```lua
local image = dxCreateTexture("sign.png")
engineApplyTextureToWorldTexture(image, "heat_02")
setTimer(function() engineRemoveTextureFromWorldTexture(image, "heat_02") end, 30000, 1)
```

#### Zobacz też

- [`engineApplyTextureToWorldTexture`](https://trilogy-hub.com/docs/engineApplyTextureToWorldTexture/)

### callGameCommand

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Wywołuje komendę skryptową gry po numerze i zwraca wynik oraz zmienne. Tylko w trybie deweloperskim; u graczy zwraca `false`.

#### Składnia

```lua
bool, table, table, bool callGameCommand(int opcode [, mixed ...])
```

#### Argumenty

- `opcode` (int) - Numer komendy.
- `...` (mixed, opcjonalny) - Argumenty komendy.

#### Zwraca

Sukces, zmienne całkowite, zmienne zmiennoprzecinkowe i warunek.

#### Przykład

```lua
local ok = callGameCommand(0x0247, 1271) -- wczytaj model
```

#### Zobacz też

- [`isGameScriptAvailable`](https://trilogy-hub.com/docs/isGameScriptAvailable/)

### createElementPreview

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Tworzy podgląd elementu (pojazd, gracz, postać, obiekt, obiekt modelu) jako obraz do `dxDrawImage`, np. do sklepu z autami albo garderoby. `false` jako cel = scena z kamery. Kamera domyślnie krąży wokół celu tak, żeby był cały w kadrze.

#### Składnia

```lua
preview createElementPreview(element|bool target [, int width = 256, int height])
```

#### Argumenty

- `target` (element|bool) - Cel podglądu.
- `width` (int, opcjonalny = 256) - Szerokość obrazu.
- `height` (int, opcjonalny) - Wysokość obrazu (domyślnie jak szerokość).

#### Zwraca

Podgląd albo `false`.

#### Przykład

Obracające się auto gracza w rogu ekranu.

```lua
local veh = getPedOccupiedVehicle(localPlayer)
local preview = veh and createElementPreview(veh, 320, 200)
addEventHandler("onClientRender", root, function()
    if not preview then return end
    setElementPreviewOrbit(preview, getTickCount() / 30 % 360, 15)
    local img = getElementPreviewImage(preview)
    if img then dxDrawImage(20, 20, 320, 200, img) end
end)
```

#### Uwagi

> **Nowość:** **Bez ustawiania kamery.** Podgląd modelu nie wymaga ręcznego ustawiania obiektu i kamery ani zewnętrznych zasobów.

#### Zobacz też

- [`setElementPreviewOrbit`](https://trilogy-hub.com/docs/setElementPreviewOrbit/)
- [`setElementPreviewModel`](https://trilogy-hub.com/docs/setElementPreviewModel/)
- [`getElementPreviewImage`](https://trilogy-hub.com/docs/getElementPreviewImage/)
- [`destroyElementPreview`](https://trilogy-hub.com/docs/destroyElementPreview/)
- [`isElementPreview`](https://trilogy-hub.com/docs/isElementPreview/)

### createMeshObject

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Stawia model z `engineLoadMesh` w świecie, tylko u tego gracza: pozycja, obrót i skala. Obiektem sterujesz funkcjami `setMeshObject*`.

#### Składnia

```lua
meshobject createMeshObject(mesh mesh, float x, y, z [, float rx, ry, rz = 0, float scale = 1])
```

#### Argumenty

- `mesh` (mesh) - Model.
- `x, y, z` (float) - Pozycja.
- `rx, ry, rz` (float, opcjonalny = 0) - Obrót.
- `scale` (float, opcjonalny = 1) - Skala.

#### Zwraca

Obiekt albo `false`.

#### Przykład

```lua
local mesh = engineLoadMesh("modele/pomnik.glb")
local statue = mesh and createMeshObject(mesh, 2495, -1680, 13.5, 0, 0, 90, 1.5)
```

#### Zobacz też

- [`engineLoadMesh`](https://trilogy-hub.com/docs/engineLoadMesh/)
- [`destroyMeshObject`](https://trilogy-hub.com/docs/destroyMeshObject/)
- [`setMeshObjectPosition`](https://trilogy-hub.com/docs/setMeshObjectPosition/)
- [`isMeshObject`](https://trilogy-hub.com/docs/isMeshObject/)

### destroyElementPreview

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Usuwa podgląd z `createElementPreview`.

#### Składnia

```lua
bool destroyElementPreview(preview preview)
```

#### Argumenty

- `preview` (preview) - Podgląd.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
destroyElementPreview(preview)
```

#### Zobacz też

- [`createElementPreview`](https://trilogy-hub.com/docs/createElementPreview/)
- [`isElementPreview`](https://trilogy-hub.com/docs/isElementPreview/)

### destroyMeshObject

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Usuwa obiekt modelu ze świata.

#### Składnia

```lua
bool destroyMeshObject(meshobject meshObject)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
destroyMeshObject(statue)
```

#### Zobacz też

- [`createMeshObject`](https://trilogy-hub.com/docs/createMeshObject/)
- [`isMeshObject`](https://trilogy-hub.com/docs/isMeshObject/)

### engineFreeMesh

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwalnia model z `engineLoadMesh`; obiekty postawione z niego znikają.

#### Składnia

```lua
bool engineFreeMesh(mesh mesh)
```

#### Argumenty

- `mesh` (mesh) - Model.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local mesh = engineLoadMesh("modele/pomnik.glb")
setTimer(engineFreeMesh, 60000, 1, mesh)
```

#### Zobacz też

- [`engineLoadMesh`](https://trilogy-hub.com/docs/engineLoadMesh/)

### engineGenerateCOL

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Tworzy kolizję COL3 z modelu z `engineLoadMesh`, gdy autor nie dał pliku `.col`. Ustawiasz liczbę trójkątów (upraszczanie QEM zachowuje kształt), tryb (siatka, otoczka wypukła, pudełka, kula) i powierzchnię. Wynik podajesz do `engineReplaceCOL`.

#### Składnia

```lua
col engineGenerateCOL(mesh mesh [, table options])
```

#### Argumenty

- `mesh` (mesh) - Model.
- `options` (table, opcjonalny) - `mode` (`"mesh"`, `"hull"`, `"boxes"`, `"box"`, `"sphere"`), `triangles` (4-65535, też `maxTriangles`), `ratio` (część trójkątów modelu, np. `0.25`), `material` (powierzchnia SA 0-178), `maxBoxes` (dla `"boxes"`, domyślnie 16), `weld` (metry, domyślnie 0.002), `skipTransparent` (bez szyb i liści).

#### Zwraca

Kolizja z polami `mode`, `generatedFaces`, `originalFaces`, `simplified`, `deviation` (największy błąd kształtu w metrach) albo `false` (powód w logu).

#### Przykład

```lua
local mesh = engineLoadMesh("modele/dom.fbx")
local id = engineRequestModel("object")
engineReplaceModel(mesh, id)
local col = engineGenerateCOL(mesh, { triangles = 2500, material = 43, skipTransparent = true })
if col then engineReplaceCOL(col, id) end
```

#### Uwagi

> **Uwaga:** **Gotowy plik .col bez liczenia w grze:** [generator kolizji](https://trilogy-hub.com/dla-tworcow/generator-kolizji/) na stronie, te same ustawienia i podgląd 3D.

#### Zobacz też

- [`engineReplaceCOL`](https://trilogy-hub.com/docs/engineReplaceCOL/)
- [`engineLoadCOL`](https://trilogy-hub.com/docs/engineLoadCOL/)

### engineGetCOLInfo

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca dane kolizji z `engineLoadCOL`: wersję, nazwę, liczbę kul, prostopadłościanów, ścian i wierzchołków oraz obrys `box`.

#### Składnia

```lua
table engineGetCOLInfo(col col)
```

#### Argumenty

- `col` (col) - Kolizja.

#### Zwraca

Tabela danych albo `false`.

#### Przykład

```lua
local info = engineGetCOLInfo(engineLoadCOL("modele/rampa.col"))
if info then outputChatBox(info.version .. ", " .. info.faces .. " ścian") end
```

#### Zobacz też

- [`engineLoadCOL`](https://trilogy-hub.com/docs/engineLoadCOL/)

### engineGetIFPAnimations

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca spis animacji wczytanego bloku IFP: tablicę `{ name, duration, bones }` (czas w sekundach, liczba kości).

#### Składnia

```lua
table engineGetIFPAnimations(element ifp)
```

#### Argumenty

- `ifp` (element) - Element IFP.

#### Zwraca

Lista animacji albo `false`.

#### Przykład

```lua
for _, a in ipairs(engineGetIFPAnimations(engineLoadIFP("anim/taniec.ifp", "taniec.blok")) or {}) do
    outputChatBox(("%s (%.1f s)"):format(a.name, a.duration))
end
```

#### Zobacz też

- [`engineLoadIFP`](https://trilogy-hub.com/docs/engineLoadIFP/)

### engineGetMeshFormats

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca formaty plików modeli, które wczytuje `engineLoadMesh`.

#### Składnia

```lua
table engineGetMeshFormats()
```

#### Zwraca

Tablica formatów.

#### Przykład

```lua
outputChatBox(table.concat(engineGetMeshFormats(), ", "))
```

#### Zobacz też

- [`engineLoadMesh`](https://trilogy-hub.com/docs/engineLoadMesh/)

### engineGetModelBoundingBox

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca prostopadłościan kolizji modelu: najmniejsze i największe x, y, z względem środka modelu, a na końcu promień kuli kolizji. Dane pochodzą z kolizji wczytanej przez grę, więc działają dla aut, postaci i obiektów. Przydaje się do ustawiania rzeczy na ziemi, liczenia rozmiaru i kadrowania kamery.

#### Składnia

```lua
float, float, float, float, float, float, float engineGetModelBoundingBox(int modelID)
```

#### Argumenty

- `modelID` (int) - Numer modelu.

#### Zwraca

minX, minY, minZ, maxX, maxY, maxZ i promień, albo `false`, gdy gra nie ma wczytanej kolizji tego modelu.

#### Przykład

```lua
local x0, y0, z0, x1, y1, z1 = engineGetModelBoundingBox(411)
if x0 then
    outputChatBox(("Infernus: %.1f x %.1f x %.1f m"):format(x1 - x0, y1 - y0, z1 - z0))
end
```

#### Zobacz też

- [`getElementBoundingBox`](https://trilogy-hub.com/docs/getElementBoundingBox/)
- [`getElementRadius`](https://trilogy-hub.com/docs/getElementRadius/)

### engineGetModelFlags

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Zwraca flagi modelu ustawione przez `engineSetModelFlag` jako tabelę nazwa -> `true`/`false`.

#### Składnia

```lua
table engineGetModelFlags(int modelID)
```

#### Argumenty

- `modelID` (int) - Model.

#### Zwraca

Tabela flag.

#### Przykład

```lua
for name, on in pairs(engineGetModelFlags(1271) or {}) do outputChatBox(name .. " = " .. tostring(on)) end
```

#### Zobacz też

- [`engineSetModelFlag`](https://trilogy-hub.com/docs/engineSetModelFlag/)

### engineGetModelLODDistance

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Zwraca zasięg rysowania modelu w metrach: ustawiony przez `engineSetModelLODDistance` albo z plików San Andreas.

#### Składnia

```lua
float engineGetModelLODDistance(int modelID)
```

#### Argumenty

- `modelID` (int) - Model.

#### Zwraca

Zasięg albo `false`.

#### Przykład

```lua
outputChatBox(tostring(engineGetModelLODDistance(1271)))
```

#### Zobacz też

- [`engineSetModelLODDistance`](https://trilogy-hub.com/docs/engineSetModelLODDistance/)

### engineGetModelTextureNames

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Zwraca nazwy tekstur San Andreas modelu (numer albo nazwa), także kół pojazdu. Niewczytany model jest na chwilę dociągany. Przydaje się do shaderów podmieniających tekstury.

#### Składnia

```lua
table engineGetModelTextureNames(int|string modelID)
```

#### Argumenty

- `modelID` (int|string) - Model.

#### Zwraca

Lista nazw albo `false`.

#### Przykład

```lua
for _, name in ipairs(engineGetModelTextureNames(411) or {}) do outputChatBox(name) end
```

#### Zobacz też

- [`engineApplyShaderToWorldTexture`](https://trilogy-hub.com/docs/engineApplyShaderToWorldTexture/)

### engineGetModelVisibleTime

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Zwraca godziny widoczności modelu ustawione przez `engineSetModelVisibleTime` (domyślnie 0 i 24).

#### Składnia

```lua
int, int engineGetModelVisibleTime(int modelID)
```

#### Argumenty

- `modelID` (int) - Model.

#### Zwraca

Od i do.

#### Przykład

```lua
local on, off = engineGetModelVisibleTime(1226)
```

#### Zobacz też

- [`engineSetModelVisibleTime`](https://trilogy-hub.com/docs/engineSetModelVisibleTime/)

### engineGetPedModelBones

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca, jak kości modelu z pliku łączą się z kośćmi szkieletu gry: listę `{ hid, bone, occurrence }`. Animacje gry sterują modelem przez te kości.

#### Składnia

```lua
table engineGetPedModelBones(mesh mesh)
```

#### Argumenty

- `mesh` (mesh) - Model postaci.

#### Zwraca

Lista kości albo `false`.

#### Przykład

```lua
for _, b in ipairs(engineGetPedModelBones(engineLoadMesh("skiny/bohater.dff")) or {}) do
    outputChatBox(b.hid .. " -> " .. b.bone)
end
```

#### Zobacz też

- [`engineValidatePedModel`](https://trilogy-hub.com/docs/engineValidatePedModel/)

### engineGetPoolCapacity

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Zwraca pojemność puli gry, np. `"building"`, `"ped"`, `"object"`, `"vehicle"`, `"col-model"`, `"task"`. Trilogy Hub powiększa pule przy starcie gry.

#### Składnia

```lua
int engineGetPoolCapacity(string pool)
```

#### Argumenty

- `pool` (string) - Nazwa puli.

#### Zwraca

Pojemność albo `false`.

#### Przykład

```lua
outputChatBox("Obiekty: " .. engineGetPoolUsedCapacity("object") .. "/" .. engineGetPoolCapacity("object"))
```

#### Zobacz też

- [`engineGetPoolUsedCapacity`](https://trilogy-hub.com/docs/engineGetPoolUsedCapacity/)
- [`engineGetPoolDefaultCapacity`](https://trilogy-hub.com/docs/engineGetPoolDefaultCapacity/)

### engineGetPoolDefaultCapacity

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Zwraca domyślną pojemność puli w Definitive Edition, przed powiększeniem przez Trilogy Hub.

#### Składnia

```lua
int engineGetPoolDefaultCapacity(string pool)
```

#### Argumenty

- `pool` (string) - Nazwa puli.

#### Zwraca

Pojemność albo `false`.

#### Przykład

```lua
outputChatBox(engineGetPoolDefaultCapacity("vehicle"))
```

#### Zobacz też

- [`engineGetPoolCapacity`](https://trilogy-hub.com/docs/engineGetPoolCapacity/)

### engineGetPoolUsedCapacity

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Zwraca, ile miejsc puli gry jest teraz zajętych.

#### Składnia

```lua
int engineGetPoolUsedCapacity(string pool)
```

#### Argumenty

- `pool` (string) - Nazwa puli.

#### Zwraca

Liczba albo `false`.

#### Przykład

```lua
outputChatBox(engineGetPoolUsedCapacity("ped"))
```

#### Zobacz też

- [`engineGetPoolCapacity`](https://trilogy-hub.com/docs/engineGetPoolCapacity/)

### engineGetReplacedModels

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca wszystkie podmienione modele: tabelę numer -> ścieżka zasobu.

#### Składnia

```lua
table engineGetReplacedModels()
```

#### Zwraca

Tabela podmian.

#### Przykład

```lua
for id, path in pairs(engineGetReplacedModels()) do
    outputChatBox(id .. ": " .. path)
end
```

#### Zobacz też

- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)
- [`getModelAsset`](https://trilogy-hub.com/docs/getModelAsset/)

### engineImportTXD

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Przypisuje tekstury z `engineLoadTXD` do modelu o danym numerze.

#### Składnia

```lua
bool engineImportTXD(txd texture, int modelID)
```

#### Argumenty

- `texture` (txd) - Tekstury.
- `modelID` (int) - Numer modelu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineImportTXD(engineLoadTXD("modele/auto.txd"), 411)
```

#### Zobacz też

- [`engineLoadTXD`](https://trilogy-hub.com/docs/engineLoadTXD/)
- [`engineRestoreTXD`](https://trilogy-hub.com/docs/engineRestoreTXD/)

### engineLoadAsset

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Wczytuje zasób silnika gry (Unreal) po ścieżce, np. model albo materiał z plików gry. Uchwyt podajesz do `engineReplaceModel`.

#### Składnia

```lua
asset engineLoadAsset(string path)
```

#### Argumenty

- `path` (string) - Ścieżka zasobu silnika.

#### Zwraca

Uchwyt albo `false`.

#### Przykład

```lua
-- ścieżkę zasobu silnika znajdziesz w trybie deweloperskim przez findEngineObject
local asset = engineLoadAsset("/Game/...")
if asset then engineReplaceModel(asset, 411) end
```

#### Zobacz też

- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)

### engineLoadCOL

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Wczytuje kolizję z pliku zasobu (formaty COLL, COL2, COL3, COL4; z archiwum bierze pierwszy model) albo z bajtów pliku.

#### Składnia

```lua
col engineLoadCOL(string colFileOrData)
```

#### Argumenty

- `colFileOrData` (string) - Plik `.col` albo jego dane.

#### Zwraca

Kolizja albo `false`.

#### Przykład

```lua
local col = engineLoadCOL("modele/rampa.col")
if col then engineReplaceCOL(col, 1634) end
```

#### Zobacz też

- [`engineReplaceCOL`](https://trilogy-hub.com/docs/engineReplaceCOL/)
- [`engineGetCOLInfo`](https://trilogy-hub.com/docs/engineGetCOLInfo/)
- [`engineGenerateCOL`](https://trilogy-hub.com/docs/engineGenerateCOL/)

### engineLoadDFF

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Zmodyfikowana względem MTA:SA*

wczytuje model z pliku `.dff` zasobu (jak `engineLoadMesh`). Tekstury bierze z `.txd` przypisanego wcześniej przez `engineImportTXD` dla tego numeru albo z `.txd` o tej samej nazwie. Inna ścieżka niż plik `.dff` oznacza zasób silnika.

#### Składnia

```lua
mesh engineLoadDFF(string dffFile [, int modelID])
```

#### Argumenty

- `dffFile` (string) - Plik `.dff`.
- `modelID` (int, opcjonalny) - Numer modelu (dla tekstur).

#### Zwraca

Model albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `engineLoadDFF(string filePath/rawData)`

#### Przykład

```lua
local txd = engineLoadTXD("modele/auto.txd")
engineImportTXD(txd, 411)
local dff = engineLoadDFF("modele/auto.dff", 411)
engineReplaceModel(dff, 411)
```

#### Zobacz też

- [`engineLoadTXD`](https://trilogy-hub.com/docs/engineLoadTXD/)
- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)
- [`engineLoadMesh`](https://trilogy-hub.com/docs/engineLoadMesh/)

### engineLoadIFP

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Wczytuje bibliotekę animacji IFP (ANPK z Vice City, ANP2/ANP3 z San Andreas) z pliku albo danych pod własną nazwą bloku (najlepiej `"zasob.blok"`). Animacje odtwarzasz przez `setPedAnimation(ped, blok, animacja)` albo podstawiasz przez `engineReplaceAnimation`. Zatrzymanie zasobu zwalnia blok.

#### Składnia

```lua
element engineLoadIFP(string ifpFileOrData, string customBlockName)
```

#### Argumenty

- `ifpFileOrData` (string) - Plik `.ifp` albo jego dane.
- `customBlockName` (string) - Własna nazwa bloku.

#### Zwraca

Element IFP albo `false`.

#### Przykład

```lua
local ifp = engineLoadIFP("anim/taniec.ifp", "taniec.blok")
if ifp then setPedAnimation(localPlayer, "taniec.blok", "dance1") end
```

#### Zobacz też

- [`engineGetIFPAnimations`](https://trilogy-hub.com/docs/engineGetIFPAnimations/)
- [`engineReplaceAnimation`](https://trilogy-hub.com/docs/engineReplaceAnimation/)
- [`setPedAnimation`](https://trilogy-hub.com/docs/setPedAnimation/)

### engineLoadMesh

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Wczytuje model 3D z pliku zasobu: `.obj`, `.stl`, `.ply`, `.gltf`, `.glb`, `.fbx`, `.3ds` oraz `.dff` z GTA SA (tekstury z `.txd` obok). Model stawiasz przez `createMeshObject` albo podstawiasz pod numer przez `engineReplaceModel`.

#### Składnia

```lua
mesh engineLoadMesh(string filePath [, string format])
```

#### Argumenty

- `filePath` (string) - Plik modelu.
- `format` (string, opcjonalny) - Format, gdy rozszerzenie go nie mówi.

#### Zwraca

Model albo `false`.

#### Przykład

```lua
local mesh = engineLoadMesh("modele/pomnik.glb")
if mesh then createMeshObject(mesh, 2495, -1680, 13.5) end
```

```xml
<meta>
    <script src="client.lua" type="client" />
    <file src="modele/pomnik.glb" />
</meta>
```

#### Uwagi

> **Nowość:** **Prosto z Blendera.** Modele prosto z Blendera i innych programów (glTF, FBX, OBJ), bez konwersji do DFF.

#### Zobacz też

- [`createMeshObject`](https://trilogy-hub.com/docs/createMeshObject/)
- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)
- [`engineFreeMesh`](https://trilogy-hub.com/docs/engineFreeMesh/)
- [`getMeshInfo`](https://trilogy-hub.com/docs/getMeshInfo/)

### engineLoadTXD

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Zmodyfikowana względem MTA:SA*

wczytuje plik `.txd` zasobu z teksturami dla `engineImportTXD` i `engineLoadDFF`. Inna ścieżka oznacza teksturę jako zasób silnika.

#### Składnia

```lua
txd engineLoadTXD(string txdFile [, int modelID])
```

#### Argumenty

- `txdFile` (string) - Plik `.txd`.
- `modelID` (int, opcjonalny) - Numer modelu.

#### Zwraca

Tekstury albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `engineLoadTXD(string filePath/rawData, bool filteringEnabled = true)`

#### Przykład

```lua
local txd = engineLoadTXD("modele/auto.txd")
```

#### Zobacz też

- [`engineImportTXD`](https://trilogy-hub.com/docs/engineImportTXD/)
- [`engineLoadDFF`](https://trilogy-hub.com/docs/engineLoadDFF/)

### engineReplaceAnimation

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Sprawia, że na tej postaci animacja gry (blok i nazwa) gra się jako animacja z wczytanego pliku IFP. Działa tylko u tego gracza; jeśli to własna postać, inni widzą efekt w przesyłanej pozie.

#### Składnia

```lua
bool engineReplaceAnimation(ped thePed, string internalBlockName, string internalAnimName, string customBlockName, string customAnimName)
```

#### Argumenty

- `thePed` (ped) - Postać.
- `internalBlockName` (string) - Blok gry.
- `internalAnimName` (string) - Animacja gry.
- `customBlockName` (string) - Blok z `engineLoadIFP`.
- `customAnimName` (string) - Animacja z pliku.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Własny chód zamiast chodu gry.

```lua
engineLoadIFP("anim/chod.ifp", "chod.blok")
engineReplaceAnimation(localPlayer, "ped", "walk_player", "chod.blok", "walk_custom")
```

#### Zobacz też

- [`engineRestoreAnimation`](https://trilogy-hub.com/docs/engineRestoreAnimation/)
- [`engineLoadIFP`](https://trilogy-hub.com/docs/engineLoadIFP/)

### engineReplaceBlipIcon

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Podmienia obraz ikony blipa gry (numer 0-63, np. 40) na własny obraz. Obraz to plik z zasobu (PNG, JPG, BMP albo GIF, wpisany w `meta.xml` jako `<file>`, także `:zasob/plik.png`) albo dane obrazu, np. odczytane przez `fileRead`. Nowa ikona pojawia się wszędzie, gdzie gra rysuje ten numer: na radarze, na mapie w menu ESC i w jej legendzie. Blipy z tą ikoną działają dalej tak samo (najechanie myszą, nazwy, kolejność). Najlepiej kwadratowy obraz z przezroczystym tłem; większy niż 256 px jest zmniejszany. Po zatrzymaniu zasobu wraca ikona gry.

#### Składnia

```lua
bool engineReplaceBlipIcon(int iconID, string image)
```

#### Argumenty

- `iconID` (int) - Numer ikony blipa 0-63 (jak w `createBlip`).
- `image` (string) - Ścieżka pliku obrazu w zasobie albo dane obrazu.

#### Zwraca

`true` przy powodzeniu; przy błędzie `false` i powód.

#### Przykład

```lua
-- ikona 40 na radarze i mapie ESC = nasz plik
engineReplaceBlipIcon(40, "ikony/sklep.png")
```

#### Zobacz też

- [`engineRestoreBlipIcon`](https://trilogy-hub.com/docs/engineRestoreBlipIcon/)
- [`isBlipIconReplaced`](https://trilogy-hub.com/docs/isBlipIconReplaced/)
- [`createBlip`](https://trilogy-hub.com/docs/createBlip/)

### engineReplaceCOL

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Podmienia kolizję modelu obiektu na kolizję z `engineLoadCOL` albo `engineGenerateCOL` (także obiektów mapy o tym numerze i modelu pary dzień/noc). Tylko obiekty, nie postacie i pojazdy. Jeśli model jeszcze nie powstał w grze (nowy model z `engineRequestModel` przy wejściu gracza albo restarcie zasobu), kolizja czeka i wchodzi, gdy tylko model się pojawi; numer modelu, którego nie ma, daje `false`.

#### Składnia

```lua
bool engineReplaceCOL(col theCol, int modelID)
```

#### Argumenty

- `theCol` (col) - Kolizja.
- `modelID` (int) - Numer modelu obiektu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineReplaceCOL(engineLoadCOL("modele/rampa.col"), 1634)
```

#### Zobacz też

- [`engineRestoreCOL`](https://trilogy-hub.com/docs/engineRestoreCOL/)
- [`engineLoadCOL`](https://trilogy-hub.com/docs/engineLoadCOL/)

### engineReplaceModel

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Podmienia wygląd modelu o danym numerze: na zasób silnika (`engineLoadAsset`) albo model z pliku (`engineLoadMesh`). Obiekty, pojazdy i postacie (skiny 0-312; model z pliku bez szkieletu jest statyczny) o tym numerze pokazują nowy model. Obiekt bez własnej kolizji dostaje kolizję z `.dff` albo z trójkątów modelu; własną kolizję daje `engineReplaceCOL`. Działa u tego gracza, więc wywołuj w skrypcie klienta. Podmiana nowego modelu z `engineRequestModel`, który jeszcze nie powstał w grze (gracz właśnie wchodzi, restart zasobu), czeka na niego; numer modelu, którego nie ma, daje `false`.

#### Składnia

```lua
bool engineReplaceModel(mesh|asset asset, int modelID [, bool alphaTransparency])
```

#### Argumenty

- `asset` (mesh|asset) - Model z pliku albo zasób silnika.
- `modelID` (int) - Numer modelu.
- `alphaTransparency` (bool, opcjonalny) - Przyjmowany dla zgodności ze starszymi skryptami.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local mesh = engineLoadMesh("modele/skrzynka.obj")
if mesh then engineReplaceModel(mesh, 1271) end
```

#### Zobacz też

- [`engineRestoreModel`](https://trilogy-hub.com/docs/engineRestoreModel/)
- [`engineLoadMesh`](https://trilogy-hub.com/docs/engineLoadMesh/)
- [`engineReplaceCOL`](https://trilogy-hub.com/docs/engineReplaceCOL/)
- [`engineRequestModel`](https://trilogy-hub.com/docs/engineRequestModel/)

### engineResetModelFlags

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Kasuje wszystkie flagi modelu ustawione przez `engineSetModelFlag`.

#### Składnia

```lua
bool engineResetModelFlags(int modelID)
```

#### Argumenty

- `modelID` (int) - Model.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineResetModelFlags(1271)
```

#### Zobacz też

- [`engineSetModelFlag`](https://trilogy-hub.com/docs/engineSetModelFlag/)

### engineResetModelLODDistance

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Przywraca zasięg rysowania obiektów modelu ustawiony przez grę.

#### Składnia

```lua
bool engineResetModelLODDistance(int modelID)
```

#### Argumenty

- `modelID` (int) - Model.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineResetModelLODDistance(1271)
```

#### Zobacz też

- [`engineSetModelLODDistance`](https://trilogy-hub.com/docs/engineSetModelLODDistance/)

### engineRestoreAnimation

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Cofa podmiany animacji z `engineReplaceAnimation` na postaci: wszystkie, z jednego bloku gry albo jedną animację.

#### Składnia

```lua
bool engineRestoreAnimation(ped thePed [, string internalBlockName, string internalAnimName])
```

#### Argumenty

- `thePed` (ped) - Postać.
- `internalBlockName` (string, opcjonalny) - Blok gry.
- `internalAnimName` (string, opcjonalny) - Animacja gry.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineRestoreAnimation(localPlayer)
```

#### Zobacz też

- [`engineReplaceAnimation`](https://trilogy-hub.com/docs/engineReplaceAnimation/)

### engineRestoreBlipIcon

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Przywraca ikonę gry po `engineReplaceBlipIcon`. Bez argumentu przywraca wszystkie ikony podmienione przez ten zasób.

#### Składnia

```lua
bool engineRestoreBlipIcon([int iconID = nil])
```

#### Argumenty

- `iconID` (int, opcjonalny = nil) - Numer ikony 0-63; pominięty = wszystkie ikony tego zasobu.

#### Zwraca

`true`, gdy coś przywrócono.

#### Przykład

```lua
engineRestoreBlipIcon(40)
```

#### Zobacz też

- [`engineReplaceBlipIcon`](https://trilogy-hub.com/docs/engineReplaceBlipIcon/)
- [`isBlipIconReplaced`](https://trilogy-hub.com/docs/isBlipIconReplaced/)

### engineRestoreCOL

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Przywraca oryginalną kolizję modelu.

#### Składnia

```lua
bool engineRestoreCOL(int modelID)
```

#### Argumenty

- `modelID` (int) - Numer modelu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineRestoreCOL(1634)
```

#### Zobacz też

- [`engineReplaceCOL`](https://trilogy-hub.com/docs/engineReplaceCOL/)

### engineRestoreModel

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Przywraca oryginalny wygląd modelu o danym numerze.

#### Składnia

```lua
bool engineRestoreModel(int modelID)
```

#### Argumenty

- `modelID` (int) - Numer modelu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineRestoreModel(1271)
```

#### Zobacz też

- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)

### engineRestoreTXD

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Przywraca oryginalne tekstury modelu.

#### Składnia

```lua
bool engineRestoreTXD(int modelID)
```

#### Argumenty

- `modelID` (int) - Numer modelu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineRestoreTXD(411)
```

#### Zobacz też

- [`engineImportTXD`](https://trilogy-hub.com/docs/engineImportTXD/)

### engineRestream

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Zmodyfikowana względem MTA:SA*

Druga nazwa `engineRestreamWorld`: wczytuje świat wokół gracza od nowa.

#### Składnia

```lua
bool engineRestream()
```

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string restreamOption = "world"`
- W MTA:SA: `engineRestream(string restreamOption = "world")`

#### Przykład

```lua
engineRestream()
```

#### Zobacz też

- [`engineRestreamWorld`](https://trilogy-hub.com/docs/engineRestreamWorld/)

### engineRestreamWorld

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Każe grze wczytać świat wokół gracza od nowa, np. po podmianie wielu modeli.

#### Składnia

```lua
bool engineRestreamWorld()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineRestreamWorld()
```

#### Zobacz też

- [`engineRestream`](https://trilogy-hub.com/docs/engineRestream/)
- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)

### engineSetAsynchronousLoading

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Wczytywanie modeli w tle. W Definitive Edition jest zawsze włączone (strumieniowanie Unreala): `true` niczego nie zmienia, `false` zwraca `false` z ostrzeżeniem.

#### Składnia

```lua
bool engineSetAsynchronousLoading(bool enabled [, bool forced])
```

#### Argumenty

- `enabled` (bool) - Ustawienie.
- `forced` (bool, opcjonalny) - Dla zgodności ze starszymi skryptami.

#### Zwraca

`true` dla `true`.

#### Przykład

```lua
engineSetAsynchronousLoading(true)
```

#### Zobacz też

- [`engineStreamingRequestModel`](https://trilogy-hub.com/docs/engineStreamingRequestModel/)

### engineSetModelFlag

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Ustawia flagę modelu (`is_road`, `draw_last`, `additive`, `is_tree` i inne). W Definitive Edition rysuje Unreal, więc flaga jest tylko zapamiętywana (odczyt przez `engineGetModelFlags`) i nie zmienia obrazu.

#### Składnia

```lua
bool engineSetModelFlag(int modelID, string flagName, bool state)
```

#### Argumenty

- `modelID` (int) - Model.
- `flagName` (string) - Nazwa flagi.
- `state` (bool) - Stan.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineSetModelFlag(1271, "draw_last", true)
```

#### Zobacz też

- [`engineGetModelFlags`](https://trilogy-hub.com/docs/engineGetModelFlags/)
- [`engineResetModelFlags`](https://trilogy-hub.com/docs/engineResetModelFlags/)

### engineSetModelLODDistance

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Zmodyfikowana względem MTA:SA*

Ustawia, od jakiej odległości (0-1400 m) obiekty tego modelu z `createObject` przestają być rysowane, także krótszej niż domyślnie. Zmienia zasięg modelu w grze (jak zasięg z plików IDE San Andreas, domyślnie 40-300 m), więc mapy z edytora widać z daleka; zasięg ponad 300 m wydłuża też wczytywanie tych obiektów. Obiektów mapy (budynki, rośliny) nie zmienia, bo są częścią poziomów Unreala.

#### Składnia

```lua
bool engineSetModelLODDistance(int modelID, float distance)
```

#### Argumenty

- `modelID` (int) - Model.
- `distance` (float) - Odległość w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool extendedLod = false`
- W MTA:SA: `engineSetModelLODDistance(string/int modelNameOrID, float distance, bool extendedLod = false)`

#### Przykład

```lua
engineSetModelLODDistance(1271, 300)
```

#### Zobacz też

- [`engineGetModelLODDistance`](https://trilogy-hub.com/docs/engineGetModelLODDistance/)
- [`engineResetModelLODDistance`](https://trilogy-hub.com/docs/engineResetModelLODDistance/)

### engineSetModelVisibleTime

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Ustawia godziny gry (0-24), w których obiekty tego modelu z `createObject` są widoczne; poza nimi są schowane. Od > do oznacza przez północ (np. 20 i 6 = nocą), 0 i 24 = zawsze.

#### Składnia

```lua
bool engineSetModelVisibleTime(int modelID, int hourOn, int hourOff)
```

#### Argumenty

- `modelID` (int) - Model.
- `hourOn` (int) - Od godziny.
- `hourOff` (int) - Do godziny.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Latarnie stawiane skryptem widoczne tylko nocą.

```lua
engineSetModelVisibleTime(1226, 20, 6)
```

#### Zobacz też

- [`engineGetModelVisibleTime`](https://trilogy-hub.com/docs/engineGetModelVisibleTime/)

### engineSetPoolCapacity

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

W Trilogy Hub zawsze zwraca `false`: pule gry są powiększane przy starcie gry, a ich rozmiaru nie da się bezpiecznie zmienić w trakcie.

#### Składnia

```lua
bool engineSetPoolCapacity(string pool, int size)
```

#### Argumenty

- `pool` (string) - Nazwa puli.
- `size` (int) - Rozmiar.

#### Zwraca

Zawsze `false`.

#### Przykład

```lua
engineSetPoolCapacity("object", 2000) -- false
```

#### Zobacz też

- [`engineGetPoolCapacity`](https://trilogy-hub.com/docs/engineGetPoolCapacity/)

### engineStreamingFreeUpMemory

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Prosi grę o zwolnienie pamięci strumieniowania.

#### Składnia

```lua
bool engineStreamingFreeUpMemory(int bytes)
```

#### Argumenty

- `bytes` (int) - Ile bajtów zwolnić.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineStreamingFreeUpMemory(64 * 1024 * 1024)
```

#### Zobacz też

- [`engineStreamingGetUsedMemory`](https://trilogy-hub.com/docs/engineStreamingGetUsedMemory/)

### engineStreamingGetModelLoadState

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Mówi, czy model jest wczytany: `"loaded"`, `"loading"` albo `"notloaded"`.

#### Składnia

```lua
string engineStreamingGetModelLoadState(int modelID)
```

#### Argumenty

- `modelID` (int) - Model.

#### Zwraca

Stan.

#### Przykład

```lua
outputChatBox(engineStreamingGetModelLoadState(3458))
```

#### Zobacz też

- [`engineStreamingRequestModel`](https://trilogy-hub.com/docs/engineStreamingRequestModel/)

### engineStreamingGetUsedMemory

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Zwraca, ile pamięci zajmują wczytane modele (bajty).

#### Składnia

```lua
int engineStreamingGetUsedMemory()
```

#### Zwraca

Bajty.

#### Przykład

```lua
outputChatBox(("%.0f MB"):format(engineStreamingGetUsedMemory() / 1048576))
```

#### Zobacz też

- [`engineStreamingFreeUpMemory`](https://trilogy-hub.com/docs/engineStreamingFreeUpMemory/)

### engineStreamingReleaseModel

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Zmodyfikowana względem MTA:SA*

Mówi grze, że model nie jest już potrzebny i może zwolnić pamięć.

#### Składnia

```lua
bool engineStreamingReleaseModel(int modelID)
```

#### Argumenty

- `modelID` (int) - Model.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool removeRef = false`
- W MTA:SA: `engineStreamingReleaseModel(number modelID, bool removeRef = false)`

#### Przykład

```lua
engineStreamingReleaseModel(3458)
```

#### Zobacz też

- [`engineStreamingRequestModel`](https://trilogy-hub.com/docs/engineStreamingRequestModel/)

### engineStreamingRequestModel

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Identyczna z MTA:SA*

Prosi grę o wczytanie modelu do pamięci (np. przed stworzeniem wielu obiektów naraz).

#### Składnia

```lua
bool engineStreamingRequestModel(int modelID [, bool addReference, bool blocking])
```

#### Argumenty

- `modelID` (int) - Model.
- `addReference` (bool, opcjonalny) - Dla zgodności ze starszymi skryptami.
- `blocking` (bool, opcjonalny) - Dla zgodności ze starszymi skryptami.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
engineStreamingRequestModel(3458)
```

#### Zobacz też

- [`engineStreamingGetModelLoadState`](https://trilogy-hub.com/docs/engineStreamingGetModelLoadState/)
- [`engineStreamingReleaseModel`](https://trilogy-hub.com/docs/engineStreamingReleaseModel/)

### engineValidatePedModel

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Sprawdza, czy model z pliku (`.dff` postaci) nadaje się na skin: wagi kości, hierarchię i wymagane kości. Zwraca wynik i raport z błędami i ostrzeżeniami albo `false`, gdy model nie ma szkieletu (będzie statyczny).

#### Składnia

```lua
bool, table engineValidatePedModel(mesh mesh)
```

#### Argumenty

- `mesh` (mesh) - Model.

#### Zwraca

Wynik i raport `{ ok, bones, usedBones, errors, warnings }`.

#### Przykład

```lua
local ok, report = engineValidatePedModel(engineLoadMesh("skiny/bohater.dff"))
if report then
    for _, e in ipairs(report.errors) do outputChatBox("Błąd: " .. e) end
end
```

#### Zobacz też

- [`engineGetPedModelBones`](https://trilogy-hub.com/docs/engineGetPedModelBones/)
- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)

### findEngineObject

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Szuka obiektów silnika gry po fragmencie nazwy albo ścieżki i zwraca listę trafień. Tylko w trybie deweloperskim; u graczy zwraca `false`.

#### Składnia

```lua
table findEngineObject(string fragment [, int limit = 20, bool byPath = true])
```

#### Argumenty

- `fragment` (string) - Fragment nazwy.
- `limit` (int, opcjonalny = 20) - Ile wyników.
- `byPath` (bool, opcjonalny = true) - Szukaj w ścieżce.

#### Zwraca

Lista trafień albo `false`.

#### Przykład

```lua
for _, hit in ipairs(findEngineObject("infernus", 5) or {}) do outputConsole(tostring(hit)) end
```

#### Zobacz też

- [`engineLoadAsset`](https://trilogy-hub.com/docs/engineLoadAsset/)
- [`getEngineInfo`](https://trilogy-hub.com/docs/getEngineInfo/)

### getElementPreviewCache

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca ścieżkę zdjęcia zapisanego w trwałej pamięci podglądów przez `setElementPreviewCacheKey`. Ścieżkę podasz do `dxDrawImage` albo `dxCreateTexture`. Zdjęcie zostaje między sesjami gry.

#### Składnia

```lua
string getElementPreviewCache(string key)
```

#### Argumenty

- `key` (string) - Klucz zapisu.

#### Zwraca

Ścieżka albo `false`, gdy nie ma takiego zdjęcia.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local img = getElementPreviewCache("salon_411")
    if img then dxDrawImage(40, 40, 256, 256, img) end
end)
```

#### Zobacz też

- [`setElementPreviewCacheKey`](https://trilogy-hub.com/docs/setElementPreviewCacheKey/)
- [`getElementPreviewImage`](https://trilogy-hub.com/docs/getElementPreviewImage/)

### getElementPreviewImage

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca ścieżkę pliku PNG podglądu (dla `dxDrawImage` i `dxCreateTexture`) albo `false`, gdy nie ma jeszcze pierwszego zdjęcia.

#### Składnia

```lua
string getElementPreviewImage(preview preview)
```

#### Argumenty

- `preview` (preview) - Podgląd.

#### Zwraca

Ścieżka albo `false`.

#### Przykład

```lua
local img = getElementPreviewImage(preview)
if img then dxDrawImage(20, 20, 256, 256, img) end
```

#### Zobacz też

- [`createElementPreview`](https://trilogy-hub.com/docs/createElementPreview/)

### getElementPreviewState

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca stan podglądu (`"czeka"`, `"gotowy"`, `"czeka na cel"`, `"blad: ..."`) i liczbę zrobionych zdjęć.

#### Składnia

```lua
string, int getElementPreviewState(preview preview)
```

#### Argumenty

- `preview` (preview) - Podgląd.

#### Zwraca

Stan i liczba zdjęć.

#### Przykład

```lua
local state, shots = getElementPreviewState(preview)
```

#### Zobacz też

- [`getElementPreviewImage`](https://trilogy-hub.com/docs/getElementPreviewImage/)

### getEngineInfo

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca, co klient wie o silniku gry: wersję, adresy i gotowość refleksji. Tylko w trybie deweloperskim; u graczy zwraca `false`.

#### Składnia

```lua
table getEngineInfo()
```

#### Zwraca

Dane silnika albo `false`.

#### Przykład

```lua
iprint(getEngineInfo())
```

#### Zobacz też

- [`findEngineObject`](https://trilogy-hub.com/docs/findEngineObject/)

### getMeshInfo

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca dane modelu z `engineLoadMesh`: format, liczbę wierzchołków i trójkątów oraz obrys `{ minX, minY, minZ, maxX, maxY, maxZ }` w metrach.

#### Składnia

```lua
table getMeshInfo(mesh mesh)
```

#### Argumenty

- `mesh` (mesh) - Model.

#### Zwraca

Tabela danych albo `false`.

#### Przykład

```lua
local info = getMeshInfo(engineLoadMesh("modele/pomnik.glb"))
if info then outputChatBox(info.triangles .. " trójkątów") end
```

#### Zobacz też

- [`engineLoadMesh`](https://trilogy-hub.com/docs/engineLoadMesh/)

### getMeshObjectColor

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca kolor obiektu modelu albo `false`, gdy ma materiał domyślny.

#### Składnia

```lua
int, int, int getMeshObjectColor(meshobject meshObject)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.

#### Zwraca

r, g, b albo `false`.

#### Przykład

```lua
local r, g, b = getMeshObjectColor(statue)
```

#### Zobacz też

- [`setMeshObjectColor`](https://trilogy-hub.com/docs/setMeshObjectColor/)

### getMeshObjectPosition

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca położenie obiektu modelu.

#### Składnia

```lua
float, float, float getMeshObjectPosition(meshobject meshObject)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.

#### Zwraca

x, y, z.

#### Przykład

```lua
local x, y, z = getMeshObjectPosition(statue)
```

#### Zobacz też

- [`setMeshObjectPosition`](https://trilogy-hub.com/docs/setMeshObjectPosition/)

### getMeshObjectRotation

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca obrót obiektu modelu w stopniach.

#### Składnia

```lua
float, float, float getMeshObjectRotation(meshobject meshObject)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.

#### Zwraca

rx, ry, rz.

#### Przykład

```lua
local rx, ry, rz = getMeshObjectRotation(statue)
```

#### Zobacz też

- [`setMeshObjectRotation`](https://trilogy-hub.com/docs/setMeshObjectRotation/)

### getMeshObjectScale

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca skalę obiektu modelu w trzech osiach.

#### Składnia

```lua
float, float, float getMeshObjectScale(meshobject meshObject)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.

#### Zwraca

sx, sy, sz.

#### Przykład

```lua
local sx, sy, sz = getMeshObjectScale(statue)
```

#### Zobacz też

- [`setMeshObjectScale`](https://trilogy-hub.com/docs/setMeshObjectScale/)

### getMeshObjectState

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca stan obiektu w grze: `"czeka"`, `"gotowy"` albo `"blad:..."`.

#### Składnia

```lua
string getMeshObjectState(meshobject meshObject)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.

#### Zwraca

Stan.

#### Przykład

```lua
outputChatBox(getMeshObjectState(statue))
```

#### Zobacz też

- [`createMeshObject`](https://trilogy-hub.com/docs/createMeshObject/)

### getModelAsset

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca ścieżkę zasobu podstawionego pod model (`false` = oryginalny).

#### Składnia

```lua
string getModelAsset(int modelID)
```

#### Argumenty

- `modelID` (int) - Numer modelu.

#### Zwraca

Ścieżka albo `false`.

#### Przykład

```lua
outputChatBox(tostring(getModelAsset(1271)))
```

#### Zobacz też

- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)
- [`engineGetReplacedModels`](https://trilogy-hub.com/docs/engineGetReplacedModels/)

### isBlipIconReplaced

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Sprawdza, czy ikona blipa o tym numerze ma własny obraz z `engineReplaceBlipIcon`.

#### Składnia

```lua
bool isBlipIconReplaced(int iconID)
```

#### Argumenty

- `iconID` (int) - Numer ikony 0-63.

#### Zwraca

`true` = ikona podmieniona.

#### Przykład

```lua
outputChatBox(tostring(isBlipIconReplaced(40)))
```

#### Zobacz też

- [`engineReplaceBlipIcon`](https://trilogy-hub.com/docs/engineReplaceBlipIcon/)
- [`engineRestoreBlipIcon`](https://trilogy-hub.com/docs/engineRestoreBlipIcon/)

### isElementPreview

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Sprawdza, czy wartość to istniejący podgląd z `createElementPreview`.

#### Składnia

```lua
bool isElementPreview(mixed value)
```

#### Argumenty

- `value` (mixed) - Wartość.

#### Zwraca

`true` dla podglądu.

#### Przykład

```lua
if isElementPreview(preview) then destroyElementPreview(preview) end
```

#### Zobacz też

- [`createElementPreview`](https://trilogy-hub.com/docs/createElementPreview/)
- [`destroyElementPreview`](https://trilogy-hub.com/docs/destroyElementPreview/)

### isGameScriptAvailable

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Sprawdza, czy klient może wywoływać komendy skryptowe gry (podstawa części funkcji, np. `dxDrawModel3D` i `createExplosion` u klienta).

#### Składnia

```lua
bool isGameScriptAvailable()
```

#### Zwraca

`true`, gdy dostępne.

#### Przykład

```lua
outputChatBox(tostring(isGameScriptAvailable()))
```

#### Zobacz też

- [`callGameCommand`](https://trilogy-hub.com/docs/callGameCommand/)

### isMeshObject

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Sprawdza, czy wartość to istniejący obiekt z `createMeshObject`.

#### Składnia

```lua
bool isMeshObject(mixed value)
```

#### Argumenty

- `value` (mixed) - Wartość.

#### Zwraca

`true` dla obiektu modelu.

#### Przykład

```lua
if isMeshObject(statue) then destroyMeshObject(statue) end
```

#### Zobacz też

- [`createMeshObject`](https://trilogy-hub.com/docs/createMeshObject/)
- [`destroyMeshObject`](https://trilogy-hub.com/docs/destroyMeshObject/)

### isMeshObjectVisible

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Sprawdza, czy obiekt modelu jest widoczny.

#### Składnia

```lua
bool isMeshObjectVisible(meshobject meshObject)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.

#### Zwraca

`true`, gdy widoczny.

#### Przykład

```lua
outputChatBox(tostring(isMeshObjectVisible(statue)))
```

#### Zobacz też

- [`setMeshObjectVisible`](https://trilogy-hub.com/docs/setMeshObjectVisible/)

### setElementPreviewCacheKey

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Następne zdjęcie podglądu zapisuje też w trwałej pamięci podglądów pod podanym kluczem. Pamięć zostaje po wyjściu z gry, więc przy następnym wejściu możesz od razu pokazać obraz przez `getElementPreviewCache`, bez tworzenia podglądu. Zapis dotyczy jednego zdjęcia; po nim klucz jest czyszczony. Pusty klucz wyłącza zapis.

#### Składnia

```lua
bool setElementPreviewCacheKey(preview preview, string key)
```

#### Argumenty

- `preview` (preview) - Podgląd.
- `key` (string) - Klucz: litery, cyfry, `_` i `-`, do 64 znaków.

#### Zwraca

`true` przy powodzeniu, `false` przy złym kluczu albo podglądzie.

#### Przykład

```lua
local veh = createVehicle(411, 0, 0, -50)
local preview = createElementPreview(veh, 256, 256)
setElementPreviewCacheKey(preview, "salon_411")
```

#### Uwagi

> **Ostrzeżenie:** **Wspólna pamięć.** Pamięć podglądów jest jedna dla wszystkich serwerów, więc używaj kluczy z nazwą swojego zasobu, np. `"salon_411"`.

#### Zobacz też

- [`getElementPreviewCache`](https://trilogy-hub.com/docs/getElementPreviewCache/)
- [`createElementPreview`](https://trilogy-hub.com/docs/createElementPreview/)

### setElementPreviewCamera

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Ustawia stałą kamerę podglądu: pozycję, cel i pole widzenia (metry San Andreas).

#### Składnia

```lua
bool setElementPreviewCamera(preview preview, float x, y, z, float lx, ly, lz [, float fov])
```

#### Argumenty

- `preview` (preview) - Podgląd.
- `x, y, z` (float) - Pozycja kamery.
- `lx, ly, lz` (float) - Cel.
- `fov` (float, opcjonalny) - Pole widzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementPreviewCamera(preview, 2500, -1670, 16, 2495, -1680, 13)
```

#### Zobacz też

- [`setElementPreviewOrbit`](https://trilogy-hub.com/docs/setElementPreviewOrbit/)

### setElementPreviewHeldOnly

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Podgląd postaci pokazuje tylko to, co postać trzyma w ręce (broń), bez ciała. Kamera krąży wokół samego przedmiotu, np. w sklepie z bronią.

#### Składnia

```lua
bool setElementPreviewHeldOnly(preview preview, bool enabled)
```

#### Argumenty

- `preview` (preview) - Podgląd z celem-postacią.
- `enabled` (bool) - `true` = sam przedmiot.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Sklep z bronią: postać z bronią w ręce, na podglądzie widać tylko broń.

```lua
local preview = createElementPreview(shopPed, 256, 256)
setElementPreviewHeldOnly(preview, true)
setElementPreviewOrbit(preview, 0, 15)
```

#### Uwagi

> **Uwaga:** Dopóki postać nic nie trzyma, stan podglądu to `"czeka na cel"`.

#### Zobacz też

- [`createElementPreview`](https://trilogy-hub.com/docs/createElementPreview/)
- [`setElementPreviewOrbit`](https://trilogy-hub.com/docs/setElementPreviewOrbit/)

### setElementPreviewModel

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Ustawia podgląd modelu bez elementu w świecie (np. lista aut albo skinów w sklepie): rodzaj (`"vehicle"`, `"ped"`, `"object"`) i numer modelu. Model stoi tylko u tego gracza, do zdjęć.

#### Składnia

```lua
bool setElementPreviewModel(preview preview, string kind, int model)
```

#### Argumenty

- `preview` (preview) - Podgląd.
- `kind` (string) - `"vehicle"`, `"ped"` albo `"object"`.
- `model` (int) - Numer modelu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Sklep z autami: podgląd zmienia się po kliknięciu modelu na liście.

```lua
local preview = createElementPreview(false, 400, 250)
local function showCar(model)
    setElementPreviewModel(preview, "vehicle", model)
end
showCar(411)
```

#### Zobacz też

- [`createElementPreview`](https://trilogy-hub.com/docs/createElementPreview/)

### setElementPreviewOrbit

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Ustawia kamerę krążącą wokół celu: kąt w poziomie (`yaw`, 0 = z północy), kąt w pionie (`pitch`), odległość (0 = cały cel w kadrze), wysokość i pole widzenia.

#### Składnia

```lua
bool setElementPreviewOrbit(preview preview, float yaw, float pitch [, float distance = 0, float height, float fov])
```

#### Argumenty

- `preview` (preview) - Podgląd.
- `yaw` (float) - Kąt w poziomie.
- `pitch` (float) - Kąt w pionie.
- `distance` (float, opcjonalny = 0) - Odległość.
- `height` (float, opcjonalny) - Wysokość.
- `fov` (float, opcjonalny) - Pole widzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementPreviewOrbit(preview, 45, 20)
```

#### Zobacz też

- [`setElementPreviewCamera`](https://trilogy-hub.com/docs/setElementPreviewCamera/)

### setElementPreviewRefresh

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Ustawia, co ile milisekund podgląd robi nowe zdjęcie (najmniej 50; 0 = tylko po zmianie i `updateElementPreview`). Jedno zdjęcie kosztuje około 10 ms klatki.

#### Składnia

```lua
bool setElementPreviewRefresh(preview preview, int ms)
```

#### Argumenty

- `preview` (preview) - Podgląd.
- `ms` (int) - Odstęp.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementPreviewRefresh(preview, 0)
```

#### Zobacz też

- [`updateElementPreview`](https://trilogy-hub.com/docs/updateElementPreview/)

### setElementPreviewTarget

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zmienia cel podglądu (element, obiekt modelu albo `false` = scena).

#### Składnia

```lua
bool setElementPreviewTarget(preview preview, element|bool target)
```

#### Argumenty

- `preview` (preview) - Podgląd.
- `target` (element|bool) - Nowy cel.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementPreviewTarget(preview, localPlayer)
```

#### Zobacz też

- [`createElementPreview`](https://trilogy-hub.com/docs/createElementPreview/)
- [`setElementPreviewModel`](https://trilogy-hub.com/docs/setElementPreviewModel/)

### setMeshObjectColor

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Nadaje obiektowi modelu jednolity kolor (r, g, b 0-255) z oświetleniem; bez koloru wraca materiał domyślny.

#### Składnia

```lua
bool setMeshObjectColor(meshobject meshObject [, int r, int g, int b])
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.
- `r` (int, opcjonalny) - Czerwony.
- `g` (int, opcjonalny) - Zielony.
- `b` (int, opcjonalny) - Niebieski.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setMeshObjectColor(statue, 255, 200, 0)
```

#### Zobacz też

- [`getMeshObjectColor`](https://trilogy-hub.com/docs/getMeshObjectColor/)
- [`setMeshObjectTexture`](https://trilogy-hub.com/docs/setMeshObjectTexture/)

### setMeshObjectPosition

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Przestawia obiekt modelu (metry).

#### Składnia

```lua
bool setMeshObjectPosition(meshobject meshObject, float x, y, z)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.
- `x, y, z` (float) - Pozycja.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setMeshObjectPosition(statue, 2495, -1680, 14)
```

#### Zobacz też

- [`getMeshObjectPosition`](https://trilogy-hub.com/docs/getMeshObjectPosition/)

### setMeshObjectRotation

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Obraca obiekt modelu (stopnie, kolejność Z, X, Y).

#### Składnia

```lua
bool setMeshObjectRotation(meshobject meshObject, float rx, ry, rz)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.
- `rx, ry, rz` (float) - Obrót.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    setMeshObjectRotation(statue, 0, 0, getTickCount() / 20 % 360)
end)
```

#### Zobacz też

- [`getMeshObjectRotation`](https://trilogy-hub.com/docs/getMeshObjectRotation/)

### setMeshObjectScale

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Skaluje obiekt modelu: jedną liczbą albo osobno w trzech osiach.

#### Składnia

```lua
bool setMeshObjectScale(meshobject meshObject, float sx [, float sy, float sz])
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.
- `sx` (float) - Skala X (albo całość).
- `sy` (float, opcjonalny) - Skala Y.
- `sz` (float, opcjonalny) - Skala Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setMeshObjectScale(statue, 2)
```

#### Zobacz też

- [`getMeshObjectScale`](https://trilogy-hub.com/docs/getMeshObjectScale/)

### setMeshObjectTexture

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Kładzie obraz PNG/JPG z zasobu na obiekt modelu (według współrzędnych UV z pliku); `false` zdejmuje obraz.

#### Składnia

```lua
bool setMeshObjectTexture(meshobject meshObject, string|bool imagePath)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.
- `imagePath` (string|bool) - Obraz albo `false`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setMeshObjectTexture(statue, "modele/marmur.png")
```

#### Zobacz też

- [`setMeshObjectColor`](https://trilogy-hub.com/docs/setMeshObjectColor/)

### setMeshObjectVisible

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Pokazuje albo chowa obiekt modelu.

#### Składnia

```lua
bool setMeshObjectVisible(meshobject meshObject, bool visible)
```

#### Argumenty

- `meshObject` (meshobject) - Obiekt.
- `visible` (bool) - `true` = widoczny.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setMeshObjectVisible(statue, false)
```

#### Zobacz też

- [`isMeshObjectVisible`](https://trilogy-hub.com/docs/isMeshObjectVisible/)

### updateElementPreview

*Funkcja · Strona: Klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zleca nowe zdjęcie podglądu w najbliższej klatce.

#### Składnia

```lua
bool updateElementPreview(preview preview)
```

#### Argumenty

- `preview` (preview) - Podgląd.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
updateElementPreview(preview)
```

#### Zobacz też

- [`setElementPreviewRefresh`](https://trilogy-hub.com/docs/setElementPreviewRefresh/)

### createColBox

*Funkcja · Strona: Klient · Kategoria: Strefy kolizji · Tylko Trilogy Hub*

Tworzy na kliencie strefę-prostopadłościan o środku w (x, y, z), obróconą wokół osi pionowej - wygodniejszą niż `createColCuboid`, gdy budynek stoi pod kątem.

#### Składnia

```lua
colshape createColBox(float x, float y, float z, float width, float depth, float height [, float rotation = 0])
```

#### Argumenty

- `x` (float) - X środka.
- `y` (float) - Y środka.
- `z` (float) - Z środka.
- `width` (float) - Szerokość (X przed obrotem).
- `depth` (float) - Głębokość (Y przed obrotem).
- `height` (float) - Wysokość.
- `rotation` (float, opcjonalny = 0) - Obrót w stopniach wokół osi Z.

#### Zwraca

Nowa strefa.

#### Przykład

```lua
local shop = createColBox(2244, -1665, 15, 10, 6, 4, 45)
addEventHandler("onClientColShapeHit", shop, function(element)
    if element == localPlayer then outputChatBox("Sklep: nacisnij E") end
end)
```

#### Zobacz też

- [`createColCube`](https://trilogy-hub.com/docs/createColCube/)
- [`createColCuboid`](https://trilogy-hub.com/docs/createColCuboid/)

### createColCube

*Funkcja · Strona: Klient · Kategoria: Strefy kolizji · Tylko Trilogy Hub*

Tworzy na kliencie strefę-sześcian o środku w (x, y, z) i podanej długości boku.

#### Składnia

```lua
colshape createColCube(float x, float y, float z, float size)
```

#### Argumenty

- `x` (float) - X środka.
- `y` (float) - Y środka.
- `z` (float) - Z środka.
- `size` (float) - Długość boku.

#### Zwraca

Nowa strefa.

#### Przykład

```lua
local box = createColCube(0, 0, 5, 4)
```

#### Zobacz też

- [`createColBox`](https://trilogy-hub.com/docs/createColBox/)

### getColShapes

*Funkcja · Strona: Klient · Kategoria: Strefy kolizji · Tylko Trilogy Hub*

Zwraca wszystkie strefy kolizji utworzone przez skrypty po stronie tego klienta.

#### Składnia

```lua
table getColShapes()
```

#### Zwraca

Tablica stref.

#### Przykład

```lua
outputDebugString("Stref: " .. #getColShapes())
```

#### Zobacz też

- [`createColSphere`](https://trilogy-hub.com/docs/createColSphere/)

### getPostEffect

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca wartość efektu obrazu ustawioną przez `setPostEffect` albo przez serwer (filtr koloru jako `"tint"`, ziarno jako `"grain"`).

#### Składnia

```lua
float... getPostEffect(string name)
```

#### Argumenty

- `name` (string) - Nazwa efektu.

#### Zwraca

Wartość (dla `"tint"` trzy liczby 0-255, dla efektów kolorów cztery: r, g, b, całość) albo `false`, gdy efekt ma wartość domyślną gry.

#### Przykład

```lua
local exposure = getPostEffect("exposure")
outputChatBox("Ekspozycja: " .. tostring(exposure or 0))
```

#### Zobacz też

- [`setPostEffect`](https://trilogy-hub.com/docs/setPostEffect/)
- [`resetPostEffect`](https://trilogy-hub.com/docs/resetPostEffect/)

### getPostEffectNames

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca listę nazw efektów obrazu, które przyjmuje `setPostEffect`.

#### Składnia

```lua
table getPostEffectNames()
```

#### Zwraca

Nazwy efektów.

#### Przykład

```lua
outputChatBox(table.concat(getPostEffectNames(), ", "))
```

#### Zobacz też

- [`setPostEffect`](https://trilogy-hub.com/docs/setPostEffect/)

### getWorldFromScreenPosition

*Funkcja · Strona: Klient · Kategoria: Świat · Identyczna z MTA:SA*

Zamienia punkt na ekranie na punkt w świecie 3D leżący na zadanej odległości od kamery. Przydaje się np. do stawiania obiektów kursorem myszy.

#### Składnia

```lua
float, float, float getWorldFromScreenPosition(float x, float y, float depth)
```

#### Argumenty

- `x` (float) - Pozycja X na ekranie w pikselach.
- `y` (float) - Pozycja Y na ekranie w pikselach.
- `depth` (float) - Odległość od kamery w metrach.

#### Zwraca

Punkt x, y, z w świecie albo `false`.

#### Przykład

```lua
addEventHandler("onClientClick", root, function(button, state, sx, sy)
    if button == "left" and state == "down" then
        local x, y, z = getWorldFromScreenPosition(sx, sy, 10)
        if x then outputChatBox(("%.1f %.1f %.1f"):format(x, y, z)) end
    end
end)
```

#### Zobacz też

- [`getScreenFromWorldPosition`](https://trilogy-hub.com/docs/getScreenFromWorldPosition/)
- [`processLineOfSight`](https://trilogy-hub.com/docs/processLineOfSight/)

### getWorldModelOnLine

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Szuka modelu mapy San Andreas bez kolizji, przez który przechodzi odcinek: graffiti, szczotek myjni, siatek z przezroczystością. `processLineOfSight` takich modeli nie widzi, bo przechodzi przez nie. Gdy odcinek przecina kilka takich modeli, wygrywa najmniejszy (np. graffiti na ścianie budynku). Modele z kolizją pomija, bo te znajduje `processLineOfSight`. Wynik pasuje wprost do `removeWorldModel`.

#### Składnia

```lua
int, float... getWorldModelOnLine(float sx, float sy, float sz, float ex, float ey, float ez)
```

#### Argumenty

- `sx` (float) - X początku.
- `sy` (float) - Y początku.
- `sz` (float) - Z początku.
- `ex` (float) - X końca.
- `ey` (float) - Y końca.
- `ez` (float) - Z końca.

#### Zwraca

model, x, y, z, rx, ry, rz modelu, model LOD (0 = brak) i x, y, z punktu, w którym odcinek wchodzi w model; `false`, gdy nic nie znaleziono.

#### Przykład

```lua
addCommandHandler("graffiti", function()
    local x1, y1, z1, x2, y2, z2 = getCameraMatrix()
    local model, x, y, z = getWorldModelOnLine(x1, y1, z1, x1 + (x2 - x1) * 50, y1 + (y2 - y1) * 50, z1 + (z2 - z1) * 50)
    if model then outputChatBox(("Model %d w %.1f %.1f %.1f"):format(model, x, y, z)) end
end)
```

#### Zobacz też

- [`processLineOfSight`](https://trilogy-hub.com/docs/processLineOfSight/)
- [`removeWorldModel`](https://trilogy-hub.com/docs/removeWorldModel/)

### getWorldSettings

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca kopię wszystkich ustawień świata, które serwer przysłał temu graczowi (pogoda, wiatr, ustawienia zapisane funkcjami świata itd.) jako tabelę klucz → wartość. Przydatne do diagnostyki i własnych efektów zależnych od ustawień serwera.

#### Składnia

```lua
table getWorldSettings()
```

#### Zwraca

Tabela ustawień.

#### Przykład

```lua
for key, value in pairs(getWorldSettings()) do
    outputDebugString(key .. " = " .. tostring(value))
end
```

#### Zobacz też

- [`getWindVelocity`](https://trilogy-hub.com/docs/getWindVelocity/)

### isWorldLoaded

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Sprawdza, czy ekran ładowania Trilogy Hub już zniknął i gracz stoi w świecie gry. Przydaje się, żeby pokazać powitalne okno albo kamerę dopiero wtedy, gdy gracz naprawdę ją widzi.

#### Składnia

```lua
bool isWorldLoaded()
```

#### Zwraca

`true`, gdy świat jest widoczny.

#### Przykład

```lua
local timer
timer = setTimer(function()
    if isWorldLoaded() then
        killTimer(timer)
        outputChatBox("Witaj na serwerze!")
    end
end, 500, 0)
```

#### Zobacz też

- [`getWorldSettings`](https://trilogy-hub.com/docs/getWorldSettings/)

### resetMinuteDuration

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Kończy lokalną długość minuty ustawioną przez `setMinuteDuration` w skrypcie klienta: zegar wraca do godziny i tempa serwera.

#### Składnia

```lua
bool resetMinuteDuration()
```

#### Zwraca

Zawsze `true`.

#### Przykład

```lua
resetMinuteDuration()
```

#### Zobacz też

- [`setMinuteDuration`](https://trilogy-hub.com/docs/setMinuteDuration/)
- [`setTime`](https://trilogy-hub.com/docs/setTime/)
- [`getMinuteDuration`](https://trilogy-hub.com/docs/getMinuteDuration/)

### resetPostEffect

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Zdejmuje jeden efekt obrazu ustawiony przez `setPostEffect`. Jeśli ten efekt ustawia też serwer (filtr koloru, ziarno), wraca wartość z serwera.

#### Składnia

```lua
bool resetPostEffect(string name)
```

#### Argumenty

- `name` (string) - Nazwa efektu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetPostEffect("saturation")
```

#### Zobacz też

- [`setPostEffect`](https://trilogy-hub.com/docs/setPostEffect/)
- [`resetPostEffects`](https://trilogy-hub.com/docs/resetPostEffects/)
- [`getPostEffect`](https://trilogy-hub.com/docs/getPostEffect/)

### resetPostEffects

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Zdejmuje wszystkie efekty obrazu ustawione przez `setPostEffect` w tej grze.

#### Składnia

```lua
bool resetPostEffects()
```

#### Zwraca

`true`.

#### Przykład

```lua
addCommandHandler("czysty", resetPostEffects)
```

#### Zobacz też

- [`setPostEffect`](https://trilogy-hub.com/docs/setPostEffect/)
- [`resetPostEffect`](https://trilogy-hub.com/docs/resetPostEffect/)
- [`getPostEffect`](https://trilogy-hub.com/docs/getPostEffect/)

### setPostEffect

*Funkcja · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Ustawia efekt obrazu u tego gracza, liczony przez silnik gry na całym obrazie świata (bez napisów i okien skryptów). Efekt zostaje do `resetPostEffect` albo wyjścia z serwera. Dostępne efekty: `"saturation"` (nasycenie, 0-2, 1 = bez zmian, 0 = czarno-biały), `"contrast"` (0-2), `"gamma"` (0,1-4), `"gain"` (wzmocnienie jasności kolorów, 0-4), `"offset"` (przesunięcie kolorów, -1-1, 0 = bez zmian), `"tint"` (barwa obrazu: r, g, b 0-255), `"temperature"` (temperatura bieli w kelwinach, 1500-15000, 6500 = neutralna), `"grain"` (ziarno 0-1), `"grainJitter"` (drganie ziarna 0-1), `"vignette"` (przyciemnienie brzegów 0-1), `"bloom"` (poświata jasnych miejsc 0-8), `"fringe"` (rozszczepienie kolorów na brzegach 0-5), `"exposure"` (ekspozycja -8-8, 0 = bez zmian, +1 = dwa razy jaśniej).

#### Składnia

```lua
bool setPostEffect(string name, float value)
```

#### Argumenty

- `name` (string) - Nazwa efektu.
- `value` (float) - Wartość efektu. Dla `"saturation"`, `"contrast"`, `"gamma"`, `"gain"` i `"offset"` jedna liczba zmienia cały obraz, a trzy albo cztery (r, g, b[, całość]) każdą barwę osobno. Dla `"tint"` trzy liczby r, g, b.

#### Zwraca

`true` przy powodzeniu, `false` przy nieznanym efekcie albo wartości spoza zakresu.

#### Przykład

```lua
-- wspomnienie: czarno-bialy obraz z ziarnem i ciemnymi brzegami
setPostEffect("saturation", 0)
setPostEffect("grain", 0.4)
setPostEffect("vignette", 0.8)
setTimer(resetPostEffects, 10000, 1)
```

#### Uwagi

> **Ostrzeżenie:** **Zależy od grafiki gracza.** Przy najniższej jakości efektów (post-process) gra nie rysuje ziarna ani przyciemnienia brzegów. Pozostałe efekty działają zawsze.

#### Zobacz też

- [`getPostEffect`](https://trilogy-hub.com/docs/getPostEffect/)
- [`resetPostEffect`](https://trilogy-hub.com/docs/resetPostEffect/)
- [`resetPostEffects`](https://trilogy-hub.com/docs/resetPostEffects/)
- [`getPostEffectNames`](https://trilogy-hub.com/docs/getPostEffectNames/)
- [`setColorFilter`](https://trilogy-hub.com/docs/setColorFilter/)

### getClothesModels

*Funkcja · Strona: Klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca nazwy modeli, które gra ma dla danej części ubioru.

#### Składnia

```lua
table getClothesModels(int|string clothesType)
```

#### Argumenty

- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.

#### Zwraca

Tablica nazw modeli albo `false`.

#### Przykład

```lua
for _, model in ipairs(getClothesModels("hat") or {}) do
    outputChatBox(model)
end
```

#### Zobacz też

- [`getClothesTable`](https://trilogy-hub.com/docs/getClothesTable/)

### getClothesTable

*Funkcja · Strona: Klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca spis ubrań i tatuaży, które zna gra: tabelę część -> `{ nazwa, tatuaz, modele }` i ich liczbę. Przydaje się do sklepu z ubraniami.

#### Składnia

```lua
table, int getClothesTable()
```

#### Zwraca

Tabela części i liczba albo `false`.

#### Przykład

```lua
local all, count = getClothesTable()
if all then outputChatBox("Gra zna " .. tostring(count) .. " ubrań") end
```

#### Zobacz też

- [`getClothesModels`](https://trilogy-hub.com/docs/getClothesModels/)
- [`getWornClothes`](https://trilogy-hub.com/docs/getWornClothes/)

### getWornClothes

*Funkcja · Strona: Klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca, co gra naprawdę założyła lokalnej postaci: tabelę część -> `"tekstura|model"`. Przydatne do sprawdzenia, czy ubranie z serwera dotarło.

#### Składnia

```lua
table getWornClothes()
```

#### Zwraca

Tabela `{ [część] = "tekstura|model" }` albo `false`.

#### Przykład

```lua
for part, item in pairs(getWornClothes() or {}) do
    outputChatBox(part .. ": " .. item)
end
```

#### Zobacz też

- [`getPlayerClothes`](https://trilogy-hub.com/docs/getPlayerClothes/)

### createTrayNotification

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Pokazuje powiadomienie systemowe Windows obok zegara (przydatne, gdy gra jest zminimalizowana). W obecnej wersji klienta funkcja nie jest jeszcze podłączona do gry i zwraca `false` z ostrzeżeniem w konsoli; `isTrayNotificationEnabled` mówi, czy już działa.

#### Składnia

```lua
bool createTrayNotification(string text [, string iconType = "default", bool useSound = true])
```

#### Argumenty

- `text` (string) - Treść powiadomienia.
- `iconType` (string, opcjonalny = "default") - Ikona: `"default"`, `"info"`, `"warning"`, `"error"`.
- `useSound` (bool, opcjonalny = true) - Czy zagrać dźwięk.

#### Zwraca

`true`, gdy powiadomienie zostało pokazane.

#### Przykład

```lua
if isTrayNotificationEnabled() then
    createTrayNotification("Twój wyścig zaraz się zaczyna!", "info")
end
```

#### Zobacz też

- [`isTrayNotificationEnabled`](https://trilogy-hub.com/docs/isTrayNotificationEnabled/)
- [`setWindowFlashing`](https://trilogy-hub.com/docs/setWindowFlashing/)

### executeCommand

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Tylko Trilogy Hub*

Wysyła komendę na serwer tak, jakby gracz wpisał ją w czacie (bez ukośnika na początku).

#### Składnia

```lua
bool executeCommand(string command)
```

#### Argumenty

- `command` (string) - Komenda z argumentami, np. `"auto 411"`.

#### Zwraca

`true`, gdy komenda została wysłana.

#### Przykład

```lua
bindKey("F5", "down", function()
    executeCommand("auto 411")
end)
```

#### Zobacz też

- [`executeCommandHandler`](https://trilogy-hub.com/docs/executeCommandHandler/)
- [`addCommandHandler`](https://trilogy-hub.com/docs/addCommandHandler/)

### getKeyboardLayout

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Tylko Trilogy Hub*

Zwraca układ klawiatury gracza (nazwa i identyfikator). W obecnej wersji klienta funkcja nie jest jeszcze podłączona do gry i zwraca `false` z ostrzeżeniem w konsoli.

#### Składnia

```lua
table getKeyboardLayout()
```

#### Zwraca

Tabela z polem `name` albo `false`.

#### Przykład

```lua
local layout = getKeyboardLayout()
if layout then outputChatBox("Klawiatura: " .. layout.name) end
```

#### Zobacz też

- [`getLocalization`](https://trilogy-hub.com/docs/getLocalization/)

### getKeyState

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Sprawdza, czy klawisz jest teraz wciśnięty. Działa także bez `bindKey`, np. w `onClientRender`.

#### Składnia

```lua
bool getKeyState(string key)
```

#### Argumenty

- `key` (string) - Klawisz, np. `"lshift"`, `"w"`, `"mouse2"`.

#### Zwraca

`true`, gdy klawisz jest wciśnięty.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    if getKeyState("lalt") then
        dxDrawText("Trzymasz Alt", 20, 300)
    end
end)
```

#### Zobacz też

- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)
- [`getControlState`](https://trilogy-hub.com/docs/getControlState/)

### getLocalization

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Zwraca język gracza (ten sam, który wybrał w launcherze i ustawieniach gry) jako tabelę z kodem i nazwą. Kody: `pl`, `en`, `de`, `es`, `fr`, `it`, `pt`, `ru`, `uk`, `tr`, `cs`, `ro`. Serwer zna ten sam język przez `getPlayerLocalization`.

#### Składnia

```lua
table getLocalization()
```

#### Zwraca

Np. `{ code = "de", name = "Deutsch" }`.

#### Przykład

```lua
local lang = getLocalization()
outputChatBox("Język: " .. lang.name)
```

#### Zobacz też

- [`getKeyboardLayout`](https://trilogy-hub.com/docs/getKeyboardLayout/)
- [`getPlayerLocalization`](https://trilogy-hub.com/docs/getPlayerLocalization/)

### isCapsLockEnabled

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Sprawdza, czy Caps Lock jest włączony (np. żeby ostrzec przy wpisywaniu hasła).

#### Składnia

```lua
bool isCapsLockEnabled()
```

#### Zwraca

`true`, gdy Caps Lock jest włączony.

#### Przykład

```lua
if isCapsLockEnabled() then
    outputChatBox("Uwaga: włączony Caps Lock.")
end
```

#### Zobacz też

- [`getKeyState`](https://trilogy-hub.com/docs/getKeyState/)

### isMinimizeKeyEnabled

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Tylko Trilogy Hub*

Sprawdza, czy klawisz F11 minimalizuje grę. Zwraca `false`, gdy którykolwiek zasób wyłączył to przez `setMinimizeKeyEnabled`.

#### Składnia

```lua
bool isMinimizeKeyEnabled()
```

#### Zwraca

`true`, gdy F11 minimalizuje grę.

#### Przykład

```lua
if not isMinimizeKeyEnabled() then
    outputChatBox("F11 na tym serwerze nie minimalizuje gry.")
end
```

#### Zobacz też

- [`setMinimizeKeyEnabled`](https://trilogy-hub.com/docs/setMinimizeKeyEnabled/)

### isTrayNotificationEnabled

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Sprawdza, czy klient obsługuje powiadomienia systemowe (`createTrayNotification`). W obecnej wersji zwraca `false`.

#### Składnia

```lua
bool isTrayNotificationEnabled()
```

#### Zwraca

`true`, gdy powiadomienia działają.

#### Przykład

```lua
outputChatBox("Powiadomienia: " .. tostring(isTrayNotificationEnabled()))
```

#### Zobacz też

- [`createTrayNotification`](https://trilogy-hub.com/docs/createTrayNotification/)

### setClipboard

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Wpisuje tekst do schowka systemowego gracza (np. kod zaproszenia albo adres serwera). W obecnej wersji klienta funkcja nie jest jeszcze podłączona do gry i zwraca `false` z ostrzeżeniem w konsoli.

#### Składnia

```lua
bool setClipboard(string text)
```

#### Argumenty

- `text` (string) - Tekst do skopiowania.

#### Zwraca

`true`, gdy tekst trafił do schowka.

#### Przykład

```lua
addCommandHandler("discord", function()
    if setClipboard("https://discord.gg/przyklad") then
        outputChatBox("Link skopiowany.")
    end
end)
```

#### Zobacz też

- [`createTrayNotification`](https://trilogy-hub.com/docs/createTrayNotification/)

### setMinimizeKeyEnabled

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Tylko Trilogy Hub*

Włącza albo wyłącza minimalizowanie gry klawiszem F11. Gdy jest wyłączone, F11 nie minimalizuje gry, ale dalej działa w `bindKey`, więc serwer może podpiąć pod niego własną funkcję (np. własną mapę).

#### Składnia

```lua
bool setMinimizeKeyEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - `false` wyłącza minimalizowanie, `true` je przywraca.

#### Zwraca

`true` po zmianie, `false` przy złym argumencie (z ostrzeżeniem w konsoli).

#### Przykład

F11 otwiera własną mapę serwera zamiast minimalizować grę.

```lua
setMinimizeKeyEnabled(false)

local mapOpen = false
bindKey("F11", "down", function()
    mapOpen = not mapOpen
    showCursor(mapOpen)
end)
```

#### Uwagi

> **Uwaga:** **Każdy zasób osobno.** Wyłączenie trwa, dopóki zasób sam go nie cofnie albo nie zostanie zatrzymany. F11 minimalizuje grę dopiero wtedy, gdy żaden zasób go nie wyłączył.

#### Zobacz też

- [`isMinimizeKeyEnabled`](https://trilogy-hub.com/docs/isMinimizeKeyEnabled/)
- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)

### setWindowFlashing

*Funkcja · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Miga ikoną gry na pasku zadań, np. gdy gracz dostał prywatną wiadomość, a okno jest w tle. W obecnej wersji klienta funkcja nie jest jeszcze podłączona do gry i zwraca `false` z ostrzeżeniem w konsoli.

#### Składnia

```lua
bool setWindowFlashing(bool enabled [, int count = 10])
```

#### Argumenty

- `enabled` (bool) - `true` = migaj, `false` = przestań.
- `count` (int, opcjonalny = 10) - Ile razy mignąć.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEvent("onPrivateMessage", true)
addEventHandler("onPrivateMessage", root, function()
    setWindowFlashing(true, 5)
end)
```

#### Zobacz też

- [`createTrayNotification`](https://trilogy-hub.com/docs/createTrayNotification/)

### triggerServerEvent

*Funkcja · Strona: Klient · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Wysyła zdarzenie od gracza do serwera, np. kliknięcie przycisku albo wybór w menu.

#### Składnia

```lua
bool triggerServerEvent(string name [, element source = localPlayer, ...])
```

#### Argumenty

- `name` (string) - Nazwa zdarzenia. Serwer musi je zarejestrować przez `addEvent(nazwa, true)`.
- `source` (element, opcjonalny = localPlayer) - Element, który na serwerze będzie widoczny jako `source`.
- `...` (any, opcjonalny) - Argumenty dla funkcji obsługi na serwerze.

#### Zwraca

`true`, gdy zdarzenie zostało wysłane.

#### Przykład

Gracz wciska F2, a serwer sprawdza, czy stać go na naprawę auta.

```lua
bindKey("F2", "down", function()
    triggerServerEvent("naprawAuto", resourceRoot)
end)
```

```lua
addEvent("naprawAuto", true)

addEventHandler("naprawAuto", resourceRoot, function()
    -- client to gracz, który wysłał zdarzenie
    local auto = getPedOccupiedVehicle(client)
    if not auto then return end
    if getPlayerMoney(client) < 500 then
        outputChatBox("Naprawa kosztuje $500.", client, 255, 80, 80)
        return
    end
    takePlayerMoney(client, 500)
    fixVehicle(auto)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Nie ufaj danym od gracza.** Na serwerze używaj zmiennej `client`, a nie argumentów wysłanych przez gracza, żeby wiedzieć, kto wysłał zdarzenie. Ceny, nagrody i uprawnienia sprawdzaj zawsze na serwerze.

> **Uwaga:** **Warto wiedzieć.** Zdarzenie niezarejestrowane z `true` jest odrzucane, a serwer wywołuje `onPlayerTriggerInvalidEvent`.

#### Zobacz też

- [`triggerClientEvent`](https://trilogy-hub.com/docs/triggerClientEvent/)
- [`addEventHandler`](https://trilogy-hub.com/docs/addEventHandler/)

---

## Funkcje wspólne

Funkcje, które działają po obu stronach. Możesz ich używać w skryptach serwera, klienta i shared.

### arePlayerBlipsVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Sprawdza, czy ikony graczy na mapie są włączone.

#### Składnia

```lua
bool arePlayerBlipsVisible()
```

#### Zwraca

`true`, jeśli ikony graczy są widoczne.

#### Przykład

```lua
if arePlayerBlipsVisible() then
    print("Gracze widzą się na mapie")
end
```

#### Zobacz też

- [`setPlayerBlipsVisible`](https://trilogy-hub.com/docs/setPlayerBlipsVisible/)

### createBlip

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Tworzy blip, czyli ikonę na radarze i mapie, w podanym punkcie.

#### Składnia

```lua
blip createBlip(float x, float y, float z [, int icon = 0, int size = 2, int r = 255, int g = 0, int b = 0, int a = 255, int ordering = 0, float visibleDistance = 16383, element visibleTo = root])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `icon` (int, opcjonalny = 0) - Numer ikony, `0` to zwykły kwadrat.
- `size` (int, opcjonalny = 2) - Rozmiar kwadratu (dla ikony `0`).
- `r` (int, opcjonalny = 255) - Kolor: czerwony 0-255.
- `g` (int, opcjonalny = 0) - Kolor: zielony.
- `b` (int, opcjonalny = 0) - Kolor: niebieski.
- `a` (int, opcjonalny = 255) - Krycie.
- `ordering` (int, opcjonalny = 0) - Kolejność rysowania, wyższe na wierzchu.
- `visibleDistance` (float, opcjonalny = 16383) - Z jakiej odległości blip jest widoczny na radarze.
- `visibleTo` (element, opcjonalny = root) - Kto widzi blip (gracz, drużyna albo `root`).

#### Zwraca

Nowy blip albo `false`.

#### Przykład

```lua
local bank = createBlip(1462.0, -1011.0, 26.8, 52)
local meet = createBlip(2495.0, -1687.0, 13.5, 0, 3, 0, 255, 0)
```

#### Zobacz też

- [`createBlipAttachedTo`](https://trilogy-hub.com/docs/createBlipAttachedTo/)
- [`destroyElement`](https://trilogy-hub.com/docs/destroyElement/)
- [`setBlipColor`](https://trilogy-hub.com/docs/setBlipColor/)

### createBlipAttachedTo

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Zmodyfikowana względem MTA:SA*

Tworzy blip przyczepiony do elementu. Blip porusza się razem z nim, na przykład z pojazdem albo graczem.

#### Składnia

```lua
blip createBlipAttachedTo(element element [, int icon = 0, int size = 2, int r = 255, int g = 0, int b = 0, int a = 255, int ordering = 0, float visibleDistance = 16383])
```

#### Argumenty

- `element` (element) - Element, za którym ma podążać blip.
- `icon` (int, opcjonalny = 0) - Numer ikony.
- `size` (int, opcjonalny = 2) - Rozmiar kwadratu.
- `r` (int, opcjonalny = 255) - Kolor: czerwony.
- `g` (int, opcjonalny = 0) - Kolor: zielony.
- `b` (int, opcjonalny = 0) - Kolor: niebieski.
- `a` (int, opcjonalny = 255) - Krycie.
- `ordering` (int, opcjonalny = 0) - Kolejność rysowania.
- `visibleDistance` (float, opcjonalny = 16383) - Zasięg widoczności na radarze.

#### Zwraca

Nowy blip albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `element visibleTo = getRootElement()`
- W MTA:SA: `createBlipAttachedTo(element elementToAttachTo, int icon = 0, int size = 2, int r = 255, int g = 0, int b = 0, int a = 255, int ordering = 0, float visibleDistance = 16383.0, element visibleTo = getRootElement())`

#### Przykład

```lua
local vehicle = createVehicle(411, 2495.0, -1680.0, 13.4)
createBlipAttachedTo(vehicle, 0, 2, 255, 200, 0)
```

#### Zobacz też

- [`createBlip`](https://trilogy-hub.com/docs/createBlip/)
- [`attachElements`](https://trilogy-hub.com/docs/attachElements/)

### getBlipColor

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Zwraca kolor blipa.

#### Składnia

```lua
int getBlipColor(blip blip)
```

#### Argumenty

- `blip` (blip) - Blip.

#### Zwraca

Cztery wartości: `r, g, b, a` albo `false`.

#### Przykład

```lua
local r, g, b, a = getBlipColor(blip)
print(r, g, b, a)
```

#### Zobacz też

- [`setBlipColor`](https://trilogy-hub.com/docs/setBlipColor/)

### getBlipIcon

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Zwraca numer ikony blipa.

#### Składnia

```lua
int getBlipIcon(blip blip)
```

#### Argumenty

- `blip` (blip) - Blip.

#### Zwraca

Numer ikony albo `false`.

#### Przykład

```lua
if getBlipIcon(blip) == 0 then
    setBlipIcon(blip, 41)
end
```

#### Zobacz też

- [`setBlipIcon`](https://trilogy-hub.com/docs/setBlipIcon/)

### getBlipName

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zwraca nazwę blipa ustawioną przez setBlipName albo `false`, gdy blip nie ma własnej nazwy.

#### Składnia

```lua
string getBlipName(blip blip)
```

#### Argumenty

- `blip` (blip) - Blip.

#### Zwraca

Nazwa albo `false`.

#### Przykład

```lua
for _, blip in ipairs(getElementsByType("blip")) do
    local name = getBlipName(blip)
    if name then outputChatBox(name) end
end
```

#### Zobacz też

- [`setBlipName`](https://trilogy-hub.com/docs/setBlipName/)

### getBlipOrdering

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Zwraca kolejność rysowania blipa. Blipy z wyższą wartością są rysowane na wierzchu.

#### Składnia

```lua
int getBlipOrdering(blip blip)
```

#### Argumenty

- `blip` (blip) - Blip.

#### Zwraca

Kolejność rysowania.

#### Przykład

```lua
setBlipOrdering(blip, getBlipOrdering(blip) + 1)
```

#### Zobacz też

- [`setBlipOrdering`](https://trilogy-hub.com/docs/setBlipOrdering/)

### getBlipSize

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Zwraca rozmiar blipa.

#### Składnia

```lua
int getBlipSize(blip blip)
```

#### Argumenty

- `blip` (blip) - Blip.

#### Zwraca

Rozmiar albo `false`.

#### Przykład

```lua
setBlipSize(blip, getBlipSize(blip) * 2)
```

#### Zobacz też

- [`setBlipSize`](https://trilogy-hub.com/docs/setBlipSize/)

### getBlipVisibleDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Zwraca zasięg, z jakiego blip widać na radarze.

#### Składnia

```lua
float getBlipVisibleDistance(blip blip)
```

#### Argumenty

- `blip` (blip) - Blip.

#### Zwraca

Zasięg w metrach (domyślnie 16383).

#### Przykład

```lua
print("Blip widać z " .. getBlipVisibleDistance(blip) .. " m")
```

#### Zobacz też

- [`setBlipVisibleDistance`](https://trilogy-hub.com/docs/setBlipVisibleDistance/)

### getMapBlipName

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zwraca nazwę ikony z legendy mapy.

#### Składnia

```lua
string getMapBlipName(int icon)
```

#### Argumenty

- `icon` (int) - Numer ikony.

#### Zwraca

Nazwa albo `false`, gdy ikona nie ma nazwy.

#### Przykład

```lua
print(getMapBlipName(41) or "ikona bez nazwy")
```

#### Zobacz też

- [`addMapBlipName`](https://trilogy-hub.com/docs/addMapBlipName/)
- [`removeMapBlipName`](https://trilogy-hub.com/docs/removeMapBlipName/)

### getMapBlipNames

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zwraca całą legendę mapy: wszystkie nazwy ikon ustawione przez skrypty.

#### Składnia

```lua
table getMapBlipNames()
```

#### Zwraca

Tablica `{ [ikona] = nazwa }`.

#### Przykład

```lua
for icon, name in pairs(getMapBlipNames()) do
    print(icon, name)
end
```

#### Zobacz też

- [`getMapBlipName`](https://trilogy-hub.com/docs/getMapBlipName/)

### getMapZoneNames

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zwraca wszystkie napisy miejsc dodane przez skrypty na mapie.

#### Składnia

```lua
table getMapZoneNames()
```

#### Zwraca

Tablica `{ [numer] = { x, y, z, name, kind } }`.

#### Przykład

```lua
for id, zone in pairs(getMapZoneNames()) do
    print(id, zone.name, zone.kind)
end
```

#### Zobacz też

- [`addMapZoneName`](https://trilogy-hub.com/docs/addMapZoneName/)
- [`removeMapZoneName`](https://trilogy-hub.com/docs/removeMapZoneName/)

### getPlayerBlipColor

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zwraca kolor ikony gracza na mapie.

#### Składnia

```lua
int getPlayerBlipColor(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`r, g, b, a` (domyślnie 255, 0, 0, 255).

#### Przykład

```lua
local r, g, b = getPlayerBlipColor(player)
```

#### Zobacz też

- [`setPlayerBlipColor`](https://trilogy-hub.com/docs/setPlayerBlipColor/)

### getPlayerBlipSize

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zwraca rozmiar ikony gracza na mapie (0-25).

#### Składnia

```lua
int getPlayerBlipSize(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Rozmiar (domyślnie 2).

#### Przykład

```lua
print(getPlayerBlipSize(player))
```

#### Zobacz też

- [`setPlayerBlipSize`](https://trilogy-hub.com/docs/setPlayerBlipSize/)

### getPlayerWaypoint

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zwraca punkt GPS gracza, czyli cel, który zaznaczył na mapie albo ustawił skrypt. Na serwerze to ostatni punkt potwierdzony przez grę gracza.

#### Składnia

*Serwer*

```lua
float, float getPlayerWaypoint(player thePlayer)
```

*Klient*

```lua
float, float getPlayerWaypoint()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko na serwerze).

#### Zwraca

`x, y` albo `false`, gdy gracz nie ma celu.

#### Przykład

```lua
addCommandHandler("cel", function(player)
    local x, y = getPlayerWaypoint(player)
    if x then
        outputChatBox(string.format("Twój cel: %.0f, %.0f", x, y), player)
    else
        outputChatBox("Nie masz celu na mapie.", player)
    end
end)
```

#### Zobacz też

- [`setPlayerWaypoint`](https://trilogy-hub.com/docs/setPlayerWaypoint/)
- [`removePlayerWaypoint`](https://trilogy-hub.com/docs/removePlayerWaypoint/)
- [`onPlayerWaypointSet`](https://trilogy-hub.com/docs/onPlayerWaypointSet/)

### isPlayerBlipVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Sprawdza, czy ikona gracza jest widoczna na mapie.

#### Składnia

```lua
bool isPlayerBlipVisible(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli ikona jest widoczna.

#### Przykład

```lua
if not isPlayerBlipVisible(player) then
    outputChatBox("Jesteś ukryty na mapie.", player)
end
```

#### Zobacz też

- [`setPlayerBlipVisible`](https://trilogy-hub.com/docs/setPlayerBlipVisible/)

### removePlayerWaypoint

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zdejmuje graczowi punkt GPS.

#### Składnia

*Serwer*

```lua
bool removePlayerWaypoint(player thePlayer)
```

*Klient*

```lua
bool removePlayerWaypoint()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko na serwerze).

#### Zwraca

Na serwerze `false`, gdy serwer nie znał żadnego punktu gracza.

#### Przykład

```lua
addEventHandler("onPlayerWasted", root, function()
    removePlayerWaypoint(source)
end)
```

#### Zobacz też

- [`getPlayerWaypoint`](https://trilogy-hub.com/docs/getPlayerWaypoint/)
- [`setPlayerWaypoint`](https://trilogy-hub.com/docs/setPlayerWaypoint/)

### setBlipColor

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Zmienia kolor blipa. Kolor widać na zwykłym kwadracie (ikona `0`).

#### Składnia

```lua
bool setBlipColor(blip blip, int r, int g, int b [, int a = 255])
```

#### Argumenty

- `blip` (blip) - Blip.
- `r` (int) - Czerwony 0-255.
- `g` (int) - Zielony 0-255.
- `b` (int) - Niebieski 0-255.
- `a` (int, opcjonalny = 255) - Krycie 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local blip = createBlip(1000, -1500, 13, 0)
setBlipColor(blip, 0, 128, 255, 255)
```

#### Zobacz też

- [`getBlipColor`](https://trilogy-hub.com/docs/getBlipColor/)

### setBlipIcon

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Zmienia ikonę blipa.

#### Składnia

```lua
bool setBlipIcon(blip blip, int icon)
```

#### Argumenty

- `blip` (blip) - Blip.
- `icon` (int) - Numer ikony.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setBlipIcon(blip, 19)
```

#### Zobacz też

- [`getBlipIcon`](https://trilogy-hub.com/docs/getBlipIcon/)

### setBlipName

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Ustawia nazwę jednego blipa, widoczną w dymku po najechaniu na niego na mapie ESC. Pusta nazwa (albo `nil`) wraca do nazwy ikony z addMapBlipName. Najwyżej 64 bajty.

#### Składnia

```lua
bool setBlipName(blip blip, string name)
```

#### Argumenty

- `blip` (blip) - Blip.
- `name` (string) - Nazwa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local blip = createBlip(2495, -1687, 13.5, 0, 2, 255, 200, 0, 255)
setBlipName(blip, "Twój pojazd")
```

#### Zobacz też

- [`getBlipName`](https://trilogy-hub.com/docs/getBlipName/)
- [`addMapBlipName`](https://trilogy-hub.com/docs/addMapBlipName/)

### setBlipOrdering

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Ustawia kolejność rysowania blipa. Blip z wyższą wartością przykrywa inne.

#### Składnia

```lua
bool setBlipOrdering(blip blip, int ordering)
```

#### Argumenty

- `blip` (blip) - Blip.
- `ordering` (int) - Kolejność rysowania.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setBlipOrdering(importantBlip, 10)
```

#### Zobacz też

- [`getBlipOrdering`](https://trilogy-hub.com/docs/getBlipOrdering/)

### setBlipSize

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Zmienia rozmiar blipa (kwadratu, ikona `0`).

#### Składnia

```lua
bool setBlipSize(blip blip, int size)
```

#### Argumenty

- `blip` (blip) - Blip.
- `size` (int) - Rozmiar, najczęściej 1-4.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setBlipSize(blip, 4)
```

#### Zobacz też

- [`getBlipSize`](https://trilogy-hub.com/docs/getBlipSize/)

### setBlipVisibleDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Identyczna z MTA:SA*

Ustawia, z jakiej odległości blip jest widoczny na radarze.

#### Składnia

```lua
bool setBlipVisibleDistance(blip blip, float distance)
```

#### Argumenty

- `blip` (blip) - Blip.
- `distance` (float) - Zasięg w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local shop = createBlip(2244.0, -1665.0, 15.5, 45)
setBlipVisibleDistance(shop, 300)
```

#### Zobacz też

- [`getBlipVisibleDistance`](https://trilogy-hub.com/docs/getBlipVisibleDistance/)

### setPlayerBlipColor

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zmienia kolor ikony gracza na mapie (domyślnie czerwony). Na serwerze kolor widzą wszyscy, u klienta zmiana dotyczy tylko tego gracza.

#### Składnia

```lua
bool setPlayerBlipColor(player thePlayer, int r, int g, int b [, int a = 255])
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `r` (int) - Czerwony 0-255. U klienta `nil` przywraca kolor z serwera.
- `g` (int) - Zielony 0-255.
- `b` (int) - Niebieski 0-255.
- `a` (int, opcjonalny = 255) - Krycie 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    local team = getPlayerTeam(source)
    if team then
        local r, g, b = getTeamColor(team)
        setPlayerBlipColor(source, r, g, b)
    end
end)
```

#### Zobacz też

- [`getPlayerBlipColor`](https://trilogy-hub.com/docs/getPlayerBlipColor/)
- [`setPlayerBlipSize`](https://trilogy-hub.com/docs/setPlayerBlipSize/)

### setPlayerBlipSize

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Zmienia rozmiar ikony gracza na mapie. `0` ukrywa ikonę.

#### Składnia

```lua
bool setPlayerBlipSize(player thePlayer, int size)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `size` (int) - Rozmiar 0-25 (domyślnie 2).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerBlipSize(vipPlayer, 4)
```

#### Zobacz też

- [`getPlayerBlipSize`](https://trilogy-hub.com/docs/getPlayerBlipSize/)

### setPlayerBlipsVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Włącza albo wyłącza ikony wszystkich graczy na mapie. Domyślnie są włączone.

#### Składnia

```lua
bool setPlayerBlipsVisible(bool visible)
```

#### Argumenty

- `visible` (bool) - `true` pokazuje, `false` chowa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onResourceStart", resourceRoot, function()
    setPlayerBlipsVisible(false)
end)
```

#### Zobacz też

- [`arePlayerBlipsVisible`](https://trilogy-hub.com/docs/arePlayerBlipsVisible/)
- [`setPlayerBlipVisible`](https://trilogy-hub.com/docs/setPlayerBlipVisible/)

### setPlayerBlipVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Pokazuje albo chowa ikonę jednego gracza na mapie.

#### Składnia

```lua
bool setPlayerBlipVisible(player thePlayer, bool visible)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `visible` (bool) - `true` pokazuje, `false` chowa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("ukryj", function(player)
    setPlayerBlipVisible(player, not isPlayerBlipVisible(player))
end)
```

#### Zobacz też

- [`isPlayerBlipVisible`](https://trilogy-hub.com/docs/isPlayerBlipVisible/)

### setPlayerWaypoint

*Funkcja · Strona: Serwer i klient · Kategoria: Blipy · Tylko Trilogy Hub*

Ustawia graczowi punkt GPS gry: cel na radarze i mapie, a w pojeździe także trasę po drogach. Grę potwierdza zdarzeniem `onPlayerWaypointSet`.

#### Składnia

*Serwer*

```lua
bool setPlayerWaypoint(player thePlayer, float x, float y)
```

*Klient*

```lua
bool setPlayerWaypoint(float x, float y)
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko na serwerze).
- `x` (float) - Pozycja X celu.
- `y` (float) - Pozycja Y celu.

#### Zwraca

`true`, jeśli polecenie zostało wysłane.

#### Przykład

```lua
addCommandHandler("dojazd", function(player)
    setPlayerWaypoint(player, 1481.0, -1771.0)
    outputChatBox("Cel ustawiony: ratusz.", player)
end)
```

#### Zobacz też

- [`getPlayerWaypoint`](https://trilogy-hub.com/docs/getPlayerWaypoint/)
- [`removePlayerWaypoint`](https://trilogy-hub.com/docs/removePlayerWaypoint/)

### getSlotFromWeapon

*Funkcja · Strona: Serwer i klient · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca slot ekwipunku (0-12), do którego trafia broń o podanym ID.

#### Składnia

```lua
int getSlotFromWeapon(int weapon)
```

#### Argumenty

- `weapon` (int) - ID broni.

#### Zwraca

Numer slotu albo `false`.

#### Przykład

```lua
print(getSlotFromWeapon(31))
```

#### Zobacz też

- [`getWeaponsInSlot`](https://trilogy-hub.com/docs/getWeaponsInSlot/)
- [`getPedWeapon`](https://trilogy-hub.com/docs/getPedWeapon/)

### getWeaponIDFromName

*Funkcja · Strona: Serwer i klient · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca ID broni na podstawie jej nazwy. Wielkość liter nie ma znaczenia, a tekst z samą liczbą (`"30"`) też działa.

#### Składnia

```lua
int getWeaponIDFromName(string name)
```

#### Argumenty

- `name` (string) - Nazwa broni, np. `"M4"`.

#### Zwraca

ID broni albo `false`.

#### Przykład

```lua
addCommandHandler("bron", function(player, cmd, name)
    local id = getWeaponIDFromName(name or "")
    if id then
        giveWeapon(player, id, 200, true)
    else
        outputChatBox("Nie znam takiej broni.", player)
    end
end)
```

#### Zobacz też

- [`getWeaponNameFromID`](https://trilogy-hub.com/docs/getWeaponNameFromID/)

### getWeaponIDs

*Funkcja · Strona: Serwer i klient · Kategoria: Bronie · Tylko Trilogy Hub*

Zwraca listę wszystkich ID broni używanych w grze, posortowaną rosnąco.

#### Składnia

```lua
table getWeaponIDs()
```

#### Zwraca

Tablica ID broni.

#### Przykład

```lua
for _, id in ipairs(getWeaponIDs()) do
    print(id, getWeaponNameFromID(id))
end
```

### getWeaponModelFromID

*Funkcja · Strona: Serwer i klient · Kategoria: Bronie · Tylko Trilogy Hub*

Zwraca ID modelu, który postać trzyma w ręce dla danej broni.

#### Składnia

```lua
int getWeaponModelFromID(int weapon)
```

#### Argumenty

- `weapon` (int) - ID broni (0-46).

#### Zwraca

ID modelu albo `false`, gdy broń nie ma modelu (np. pięść).

#### Przykład

```lua
local model = getWeaponModelFromID(31)
createObject(model, 2495.0, -1670.0, 13.0)
```

### getWeaponNameFromID

*Funkcja · Strona: Serwer i klient · Kategoria: Bronie · Identyczna z MTA:SA*

Zwraca nazwę broni z GTA San Andreas dla podanego ID (0-46).

#### Składnia

```lua
string getWeaponNameFromID(int id)
```

#### Argumenty

- `id` (int) - ID broni.

#### Zwraca

Nazwa broni albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerWasted", root, function(ammo, killer, weapon)
    if killer then
        outputChatBox(getPlayerName(killer) .. " zabił " .. getPlayerName(source) .. " (" .. (getWeaponNameFromID(weapon) or "?") .. ")")
    end
end)
```

### getWeaponsInSlot

*Funkcja · Strona: Serwer i klient · Kategoria: Bronie · Tylko Trilogy Hub*

Zwraca listę ID broni należących do slotu ekwipunku.

#### Składnia

```lua
table getWeaponsInSlot(int slot)
```

#### Argumenty

- `slot` (int) - Numer slotu 0-12.

#### Zwraca

Tablica ID broni (pusta, gdy slot nie ma broni).

#### Przykład

```lua
for _, id in ipairs(getWeaponsInSlot(5)) do
    print(getWeaponNameFromID(id))
end
```

### isValidWeaponID

*Funkcja · Strona: Serwer i klient · Kategoria: Bronie · Tylko Trilogy Hub*

Sprawdza, czy ID odpowiada broni używanej w grze (0-46, bez nieużywanych numerów).

#### Składnia

```lua
bool isValidWeaponID(int weapon)
```

#### Argumenty

- `weapon` (int) - ID do sprawdzenia.

#### Zwraca

`true` dla prawdziwej broni.

#### Przykład

```lua
if isValidWeaponID(tonumber(arg)) then
    giveWeapon(player, tonumber(arg), 100)
end
```

### clearChatBox

*Funkcja · Strona: Serwer i klient · Kategoria: Czat i konsola · Identyczna z MTA:SA*

Czyści okno czatu. Na serwerze czyści czat jednemu graczowi albo, bez argumentu, wszystkim.

#### Składnia

*Serwer*

```lua
bool clearChatBox([element clearFor = root])
```

*Klient*

```lua
bool clearChatBox()
```

#### Argumenty

- `clearFor` (element, opcjonalny = root) - Gracz albo element, którego gracze dostaną pusty czat (tylko serwer).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("cc", function(player)
    clearChatBox()
    outputChatBox("Czat wyczyścił " .. getPlayerName(player), root, 255, 200, 0)
end)
```

#### Zobacz też

- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)
- [`showChat`](https://trilogy-hub.com/docs/showChat/)

### isChatVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Czat i konsola · Zmodyfikowana względem MTA:SA*

Sprawdza, czy okno czatu jest widoczne. Na serwerze podajesz gracza.

#### Składnia

*Serwer*

```lua
bool isChatVisible(player thePlayer)
```

*Klient*

```lua
bool isChatVisible()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).

#### Zwraca

`true`, jeśli czat jest widoczny.

#### Różnice względem MTA:SA

- W MTA:SA: `isChatVisible()`

#### Przykład

```lua
bindKey("F7", "down", function()
    showChat(not isChatVisible())
end)
```

#### Zobacz też

- [`showChat`](https://trilogy-hub.com/docs/showChat/)

### outputChatBox

*Funkcja · Strona: Serwer i klient · Kategoria: Czat i konsola · Identyczna z MTA:SA*

Pisze wiadomość na czacie. Na serwerze do jednego gracza albo do wszystkich, u klienta na czacie lokalnego gracza.

#### Składnia

*Serwer*

```lua
bool outputChatBox(string text [, element target = root, int r = 231, int g = 217, int b = 176, bool colorCoded = false])
```

*Klient*

```lua
bool outputChatBox(string text [, int r = 231, int g = 217, int b = 176, bool colorCoded = false])
```

#### Argumenty

- `text` (string) - Treść wiadomości.
- `target` (element, opcjonalny = root) - Tylko na serwerze. Gracz, który zobaczy wiadomość. Bez niego widzą ją wszyscy.
- `r, g, b` (int, opcjonalny = 231, 217, 176) - Kolor wiadomości, od `0` do `255`.
- `colorCoded` (bool, opcjonalny = false) - Włącza kolory w tekście zapisane jak `#FF7A22`.

#### Zwraca

`true`, gdy wiadomość została wysłana.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    -- do wszystkich
    outputChatBox(getPlayerName(source) .. " dołączył do gry.")
    -- tylko do nowego gracza, z kolorami w tekście
    outputChatBox("#FF7A22Witaj! #FFFFFFWpisz /pomoc, żeby zobaczyć komendy.", source, 255, 255, 255, true)
end)
```

```lua
addCommandHandler("gdzie", function()
    local x, y, z = getElementPosition(localPlayer)
    outputChatBox(("Jesteś na %.1f, %.1f, %.1f"):format(x, y, z), 140, 196, 232)
end)
```

#### Uwagi

> **Uwaga:** **Różnica między stronami.** U klienta nie ma argumentu `cel`, bo wiadomość zawsze trafia na czat gracza, u którego działa skrypt. Kolor podajesz od razu po tekście.

#### Zobacz też

- [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/)
- [`triggerServerEvent`](https://trilogy-hub.com/docs/triggerServerEvent/)

### outputConsole

*Funkcja · Strona: Serwer i klient · Kategoria: Czat i konsola · Identyczna z MTA:SA*

Wypisuje linię w konsoli F8. Na serwerze bez celu linia trafia do wszystkich graczy.

#### Składnia

*Serwer*

```lua
bool outputConsole(string message [, element visibleTo = root])
```

*Klient*

```lua
bool outputConsole(string message)
```

#### Argumenty

- `message` (string) - Tekst.
- `visibleTo` (element, opcjonalny = root) - Gracz albo element z graczami (tylko serwer).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("pomoc", function(player)
    outputConsole("/pomoc - ta lista", player)
    outputConsole("/auto <model> - tworzy pojazd", player)
    outputChatBox("Lista komend jest w konsoli (F8).", player)
end)
```

#### Zobacz też

- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)
- [`outputDebugString`](https://trilogy-hub.com/docs/outputDebugString/)

### outputDebugString

*Funkcja · Strona: Serwer i klient · Kategoria: Czat i konsola · Identyczna z MTA:SA*

Dodaje wpis do dziennika debugowania (`/debugscript`). Poziomy 1-3 dopisują plik i linię skryptu.

#### Składnia

```lua
bool outputDebugString(string message [, int level = 3, int r = 255, int g = 255, int b = 255])
```

#### Argumenty

- `message` (string) - Tekst.
- `level` (int, opcjonalny = 3) - 0 własny kolor, 1 błąd, 2 ostrzeżenie, 3 informacja, 4 tekst bez znacznika.
- `r` (int, opcjonalny = 255) - Czerwony dla poziomu 0.
- `g` (int, opcjonalny = 255) - Zielony dla poziomu 0.
- `b` (int, opcjonalny = 255) - Niebieski dla poziomu 0.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local function loadConfig()
    local file = fileOpen("config.json", true)
    if not file then
        outputDebugString("Brak config.json, używam domyślnych ustawień", 2)
        return {}
    end
    local data = fromJSON(fileRead(file, fileGetSize(file)))
    fileClose(file)
    outputDebugString("Wczytano konfigurację", 0, 0, 200, 255)
    return data or {}
end
```

#### Zobacz też

- [`outputServerLog`](https://trilogy-hub.com/docs/outputServerLog/)
- [`onDebugMessage`](https://trilogy-hub.com/docs/onDebugMessage/)

### print

*Funkcja · Strona: Serwer i klient · Kategoria: Czat i konsola · Tylko Trilogy Hub*

Wypisuje tekst w wybranej konsoli. Pierwszy argument to obowiązkowa kategoria, która mówi, gdzie tekst ma się pojawić. Kolejne wartości są zamieniane na tekst i łączone dwiema spacjami.

#### Składnia

```lua
bool print(string category, ...)
```

#### Argumenty

- `category` (string) - Kategoria konsoli. Serwer: `"server"` (konsola i log serwera), `"console"` (konsola w grze u wszystkich graczy). Klient: `"console"` (główna karta konsoli w grze), `"debug"` (karta Debug), `"errors"` (karta Błędy). Wielkość liter nie ma znaczenia.
- `...` (any, opcjonalny) - Wartości do wypisania (dowolne typy, przez `tostring`).

#### Zwraca

`true` przy powodzeniu; `false` i ostrzeżenie w logu, gdy kategorii brakuje albo nie istnieje po tej stronie.

#### Przykład

```lua
addEventHandler("onResourceStart", resourceRoot, function()
    print("server", "Zasób uruchomiony, graczy:", #getElementsByType("player"))
    print("console", "Serwer wczytał nową mapę")
end)
```

```lua
addEventHandler("onClientResourceStart", resourceRoot, function()
    print("console", "Witaj na serwerze!")
    print("debug", "Pozycja startowa:", getElementPosition(localPlayer))
    if not getElementData(localPlayer, "konto") then
        print("errors", "Brak danych konta gracza")
    end
end)
```

#### Uwagi

> **Ostrzeżenie:** **Kategoria jest obowiązkowa.** Zwykłe `print("tekst")` ze standardowego Lua tu nie zadziała: wypisze ostrzeżenie `Bad argument @ 'print'` i zwróci `false`. Kategorie `debug` i `errors` są tylko w skryptach klienta, a `server` tylko w skryptach serwera.

#### Zobacz też

- [`outputConsole`](https://trilogy-hub.com/docs/outputConsole/)
- [`outputServerLog`](https://trilogy-hub.com/docs/outputServerLog/)
- [`outputDebugString`](https://trilogy-hub.com/docs/outputDebugString/)
- [`iprint`](https://trilogy-hub.com/docs/iprint/)

### showChat

*Funkcja · Strona: Serwer i klient · Kategoria: Czat i konsola · Zmodyfikowana względem MTA:SA*

Pokazuje albo chowa okno czatu. Na serwerze podajesz gracza (albo `root` dla wszystkich).

#### Składnia

*Serwer*

```lua
bool showChat(player thePlayer, bool show)
```

*Klient*

```lua
bool showChat(bool show)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root` (tylko serwer).
- `show` (bool) - `true` pokazuje.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool inputBlocked`
- W MTA:SA: `showChat(player thePlayer, bool show, bool inputBlocked)`

#### Przykład

```lua
addEventHandler("onClientResourceStart", resourceRoot, function()
    showChat(false)
    setTimer(showChat, 10000, 1, true)
end)
```

#### Zobacz też

- [`isChatVisible`](https://trilogy-hub.com/docs/isChatVisible/)
- [`clearChatBox`](https://trilogy-hub.com/docs/clearChatBox/)

### burstParticles

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Wypuszcza od razu podaną liczbę cząsteczek, niezależnie od `rate`: wybuch, trafienie, salwa konfetti.

#### Składnia

```lua
bool burstParticles(element emitter, int count)
```

#### Argumenty

- `emitter` (element) - Emiter.
- `count` (int) - Liczba cząsteczek (1 do 2000).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Konfetti na komendę, emiter sam nic nie wypuszcza.

```lua
local x, y, z = getElementPosition(localPlayer)
local party = createParticleEmitter(x, y, z, "confetti", { rate = 0 })
addCommandHandler("party", function()
    burstParticles(party, 400)
end)
```

#### Zobacz też

- [`createParticleEffect`](https://trilogy-hub.com/docs/createParticleEffect/)
- [`setParticleEmitterEnabled`](https://trilogy-hub.com/docs/setParticleEmitterEnabled/)

### createParticleEffect

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Efekt na chwilę: emiter wypuszcza cząsteczki przez podany czas i sam znika, gdy zgaśnie ostatnia. Nie trzeba go niszczyć. Na serwerze efekt widzą wszyscy gracze w pobliżu.

#### Składnia

```lua
element createParticleEffect(float x, float y, float z, string|table settings [, float seconds = 2, table overrides = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `settings` (string|table) - Nazwa gotowego efektu albo tabela ustawień.
- `seconds` (float, opcjonalny = 2) - Jak długo emiter wypuszcza cząsteczki.
- `overrides` (table, opcjonalny = nil) - Pola, które zastępują ustawienia gotowca.

#### Zwraca

Emiter albo `false`.

#### Przykład

Iskry w miejscu trafienia kuli.

```lua
addEventHandler("onClientPlayerWeaponFire", localPlayer, function(weapon, hx, hy, hz)
    createParticleEffect(hx, hy, hz, "sparks", 0.5, { rate = 300 })
end)
```

```lua
addCommandHandler("show", function(player)
    local x, y, z = getElementPosition(player)
    createParticleEffect(x, y, z + 25, "firework")
end)
```

#### Zobacz też

- [`createParticleEmitter`](https://trilogy-hub.com/docs/createParticleEmitter/)
- [`burstParticles`](https://trilogy-hub.com/docs/burstParticles/)

### createParticleEmitter

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Tworzy emiter ruchomych cząsteczek liczonych przez grę: ogień, dym, iskry, śnieg, portale i wszystko, co ułożysz z ustawień. Czwarty argument to nazwa gotowego efektu albo tabela ustawień, piąty nadpisuje wybrane pola gotowca. Zwraca element `"particle"`, który da się przesuwać, przyczepiać i niszczyć jak każdy inny. Wywołany na serwerze tworzy emiter widoczny dla wszystkich graczy.

#### Składnia

```lua
element createParticleEmitter(float x, float y, float z, string|table settings [, table overrides = nil])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `settings` (string|table) - Nazwa gotowego efektu (`"fire"`, `"smoke"`, `"sparks"`, `"fireflies"`, `"snow"`, `"rain"`, `"magic"`, `"vortex"`, `"confetti"`, `"hearts"`, `"bubbles"`, `"leaves"`, `"dust"`, `"firework"`) albo tabela ustawień.
- `overrides` (table, opcjonalny = nil) - Pola, które zastępują ustawienia gotowca.

#### Zwraca

Emiter albo `false` przy złych argumentach.

#### Przykład

Ognisko obok gracza i własny portal z tabeli ustawień. Opis wszystkich pól jest w przewodniku [Cząsteczki](https://trilogy-hub.com/docs/czasteczki/).

```lua
local x, y, z = getElementPosition(localPlayer)
local fire = createParticleEmitter(x + 2, y, z - 1, "fire", { rate = 60 })

local portal = createParticleEmitter(x - 4, y, z, {
    sprite = "glow", shape = "ring", radius = 2,
    rate = 120, max = 300, life = { 1, 1.6 },
    orbit = 3, attract = 0.6, size = { 0.25, 0.05 },
    colors = { tocolor(120, 200, 255), tocolor(160, 90, 255, 0) },
})
```

```lua
-- ognisko na placu, widoczne dla wszystkich graczy (także wchodzących później)
local fire = createParticleEmitter(2495, -1670, 12.5, "fire", { rate = 60 })
```

#### Uwagi

> **Nowość:** **Fizyka po stronie gry.** Cząsteczki liczy i rysuje gra w jednym przebiegu dla wszystkich emiterów, więc skrypt nie robi nic w każdej klatce.

#### Zobacz też

- [`createParticleEffect`](https://trilogy-hub.com/docs/createParticleEffect/)
- [`setParticleEmitterSettings`](https://trilogy-hub.com/docs/setParticleEmitterSettings/)
- [`getParticlePresets`](https://trilogy-hub.com/docs/getParticlePresets/)
- [`burstParticles`](https://trilogy-hub.com/docs/burstParticles/)
- [`attachElements`](https://trilogy-hub.com/docs/attachElements/)

### getParticleEmitterSettings

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Zwraca kopię ustawień emitera. Można ją zmienić i podać z powrotem do `setParticleEmitterSettings`.

#### Składnia

```lua
table getParticleEmitterSettings(element emitter)
```

#### Argumenty

- `emitter` (element) - Emiter.

#### Zwraca

Ustawienia albo `false`.

#### Przykład

```lua
local s = getParticleEmitterSettings(fire)
s.rate = s.rate * 2
setParticleEmitterSettings(fire, s)
```

#### Zobacz też

- [`setParticleEmitterSettings`](https://trilogy-hub.com/docs/setParticleEmitterSettings/)

### getParticlePresets

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Zwraca gotowe efekty cząsteczek jako tabelę `{ nazwa = opis }`.

#### Składnia

```lua
table getParticlePresets()
```

#### Zwraca

Gotowe efekty.

#### Przykład

```lua
for name, description in pairs(getParticlePresets()) do
    outputChatBox(name .. ": " .. description)
end
```

#### Zobacz też

- [`getParticlePresetSettings`](https://trilogy-hub.com/docs/getParticlePresetSettings/)
- [`createParticleEmitter`](https://trilogy-hub.com/docs/createParticleEmitter/)

### getParticlePresetSettings

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Zwraca kopię pełnych ustawień gotowego efektu, jako punkt wyjścia do własnego.

#### Składnia

```lua
table getParticlePresetSettings(string name)
```

#### Argumenty

- `name` (string) - Nazwa gotowego efektu.

#### Zwraca

Ustawienia albo `false` dla nieznanej nazwy.

#### Przykład

```lua
local green = getParticlePresetSettings("fire")
green.colors = { tocolor(120, 255, 120), tocolor(20, 120, 40, 0) }
createParticleEmitter(x, y, z, green)
```

#### Zobacz też

- [`getParticlePresets`](https://trilogy-hub.com/docs/getParticlePresets/)
- [`createParticleEmitter`](https://trilogy-hub.com/docs/createParticleEmitter/)

### getParticleSprites

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Zwraca nazwy wbudowanych kształtów cząsteczek (pole `sprite`).

#### Składnia

```lua
table getParticleSprites()
```

#### Zwraca

Lista nazw.

#### Przykład

Wypisuje na czacie wszystkie kształty do pola `sprite`.

```lua
outputChatBox(table.concat(getParticleSprites(), ", "))
```

#### Zobacz też

- [`createParticleEmitter`](https://trilogy-hub.com/docs/createParticleEmitter/)

### isParticleEmitterEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Sprawdza, czy emiter wypuszcza nowe cząsteczki.

#### Składnia

```lua
bool isParticleEmitterEnabled(element emitter)
```

#### Argumenty

- `emitter` (element) - Emiter.

#### Zwraca

`true`, gdy włączony.

#### Przykład

Przełącza ognisko klawiszem F: gaśnie albo znów się pali.

```lua
local x, y, z = getElementPosition(localPlayer)
local fire = createParticleEmitter(x + 2, y, z - 1, "fire")
bindKey("f", "down", function()
    setParticleEmitterEnabled(fire, not isParticleEmitterEnabled(fire))
end)
```

#### Zobacz też

- [`setParticleEmitterEnabled`](https://trilogy-hub.com/docs/setParticleEmitterEnabled/)

### setParticleEmitterEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Włącza albo wstrzymuje wypuszczanie nowych cząsteczek. Wyłączony emiter pozwala dożyć cząsteczkom już wypuszczonym; ponowne włączenie zaczyna od nowa czas `duration`.

#### Składnia

```lua
bool setParticleEmitterEnabled(element emitter, bool enabled)
```

#### Argumenty

- `emitter` (element) - Emiter.
- `enabled` (bool) - `true` = wypuszcza, `false` = wstrzymany.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
bindKey("f", "down", function()
    setParticleEmitterEnabled(fire, not isParticleEmitterEnabled(fire))
end)
```

#### Zobacz też

- [`isParticleEmitterEnabled`](https://trilogy-hub.com/docs/isParticleEmitterEnabled/)

### setParticleEmitterSettings

*Funkcja · Strona: Serwer i klient · Kategoria: Cząsteczki · Tylko Trilogy Hub*

Zmienia wybrane ustawienia działającego emitera (te same pola co w `createParticleEmitter`), reszta zostaje. Żywe cząsteczki od razu dostają nowy kolor i wielkość.

#### Składnia

```lua
bool setParticleEmitterSettings(element emitter, table settings)
```

#### Argumenty

- `emitter` (element) - Emiter.
- `settings` (table) - Pola do zmiany.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Ogień, który przechodzi w niebieski płomień.

```lua
setParticleEmitterSettings(fire, {
    colors = { tocolor(120, 180, 255), tocolor(40, 80, 255, 0) },
    rate = 90,
})
```

#### Zobacz też

- [`getParticleEmitterSettings`](https://trilogy-hub.com/docs/getParticleEmitterSettings/)
- [`createParticleEmitter`](https://trilogy-hub.com/docs/createParticleEmitter/)

### attachElements

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Przyczepia element do innego. Przyczepiony element porusza się i obraca razem z tym, do którego go przyczepiono. Obiekt przyczepiony do pojazdu prowadzi sama gra w tej samej klatce co fizykę pojazdu, więc jedzie z nim co do milimetra także przy dużej prędkości i na zakrętach.

#### Składnia

```lua
bool attachElements(element theElement, element theAttachToElement [, float xPosOffset = 0, float yPosOffset = 0, float zPosOffset = 0, float xRotOffset = 0, float yRotOffset = 0, float zRotOffset = 0])
```

#### Argumenty

- `theElement` (element) - Element do przyczepienia.
- `theAttachToElement` (element) - Element, do którego przyczepiasz.
- `xPosOffset` (float, opcjonalny = 0) - Przesunięcie X.
- `yPosOffset` (float, opcjonalny = 0) - Przesunięcie Y.
- `zPosOffset` (float, opcjonalny = 0) - Przesunięcie Z.
- `xRotOffset` (float, opcjonalny = 0) - Obrót X.
- `yRotOffset` (float, opcjonalny = 0) - Obrót Y.
- `zRotOffset` (float, opcjonalny = 0) - Obrót Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Kogut na dachu radiowozu.

```lua
local car = createVehicle(596, 1545, -1675, 13.4)
local light = createObject(1210, 0, 0, 0)
attachElements(light, car, 0, -0.2, 0.95)
```

#### Zobacz też

- [`detachElements`](https://trilogy-hub.com/docs/detachElements/)
- [`getAttachedElements`](https://trilogy-hub.com/docs/getAttachedElements/)
- [`setElementAttachedOffsets`](https://trilogy-hub.com/docs/setElementAttachedOffsets/)

### createElement

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Tworzy element własnego typu, na przykład `"dom"` albo `"strefa"`. Wisi pod korzeniem bieżącego zasobu i znika, gdy zasób się zatrzyma. Przydaje się do grupowania elementów i przechowywania danych.

#### Składnia

```lua
element createElement(string elementType [, string elementID = nil])
```

#### Argumenty

- `elementType` (string) - Nazwa typu.
- `elementID` (string, opcjonalny = nil) - Identyfikator tekstowy (do `getElementByID`).

#### Zwraca

Nowy element albo `false`.

#### Przykład

```lua
local house = createElement("house", "dom_grove_1")
setElementData(house, "price", 150000)
setElementData(house, "owner", false)

for _, h in ipairs(getElementsByType("house")) do
    outputServerLog(getElementID(h) .. ": $" .. getElementData(h, "price"))
end
```

#### Zobacz też

- [`getElementsByType`](https://trilogy-hub.com/docs/getElementsByType/)
- [`setElementData`](https://trilogy-hub.com/docs/setElementData/)
- [`setElementParent`](https://trilogy-hub.com/docs/setElementParent/)
- [`isElement`](https://trilogy-hub.com/docs/isElement/)
- [`destroyElement`](https://trilogy-hub.com/docs/destroyElement/)

### destroyElement

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Usuwa element razem z jego dziećmi. Na kliencie usuwa też elementy GUI.

#### Składnia

```lua
bool destroyElement(element elementToDestroy)
```

#### Argumenty

- `elementToDestroy` (element) - Element.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local car = createVehicle(411, 0, 0, 3)
setTimer(function()
    if isElement(car) then destroyElement(car) end
end, 60000, 1)
```

#### Zobacz też

- [`isElement`](https://trilogy-hub.com/docs/isElement/)
- [`onElementDestroy`](https://trilogy-hub.com/docs/onElementDestroy/)
- [`createElement`](https://trilogy-hub.com/docs/createElement/)

### detachElements

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Odczepia element od tego, do którego był przyczepiony.

#### Składnia

```lua
bool detachElements(element theElement [, element theAttachToElement = nil])
```

#### Argumenty

- `theElement` (element) - Przyczepiony element.
- `theAttachToElement` (element, opcjonalny = nil) - Element, od którego odczepiasz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
if isElementAttached(box) then
    detachElements(box)
end
```

### getAttachedElements

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca elementy przyczepione do elementu.

#### Składnia

```lua
table getAttachedElements(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Tablica elementów.

#### Przykład

```lua
addEventHandler("onVehicleExplode", root, function()
    for _, el in ipairs(getAttachedElements(source)) do
        destroyElement(el)
    end
end)
```

### getElementAlpha

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca przezroczystość elementu (0 niewidoczny, 255 pełny).

#### Składnia

```lua
int getElementAlpha(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Krycie 0-255.

#### Przykład

```lua
if getElementAlpha(player) < 255 then
    outputChatBox("Jesteś niewidzialny.", player)
end
```

#### Zobacz też

- [`setElementAlpha`](https://trilogy-hub.com/docs/setElementAlpha/)

### getElementAttachedOffsets

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca przesunięcie i obrót przyczepionego elementu względem tego, do którego go przyczepiono.

#### Składnia

```lua
float getElementAttachedOffsets(element theElement)
```

#### Argumenty

- `theElement` (element) - Przyczepiony element.

#### Zwraca

x, y, z, rx, ry, rz.

#### Przykład

```lua
local x, y, z = getElementAttachedOffsets(light)
setElementAttachedOffsets(light, x, y, z + 0.1)
```

#### Zobacz też

- [`setElementAttachedOffsets`](https://trilogy-hub.com/docs/setElementAttachedOffsets/)

### getElementAttachedTo

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca element, do którego ten jest przyczepiony.

#### Składnia

```lua
element getElementAttachedTo(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Element albo `false`.

#### Przykład

```lua
local car = getElementAttachedTo(light)
if car then
    outputServerLog("Kogut wisi na " .. getVehicleName(car))
end
```

### getElementBoneAttachment

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Tylko Trilogy Hub*

Zwraca dane przyczepienia elementu do kości postaci.

#### Składnia

```lua
mixed getElementBoneAttachment(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

ped, kość, x, y, z, rx, ry, rz, follow albo `false`. `follow` mówi, czy element podąża za kością (patrz `attachElementToBone`).

#### Przykład

```lua
local ped, bone = getElementBoneAttachment(hat)
if ped then
    outputServerLog("Czapka na kości " .. bone)
end
```

#### Zobacz też

- [`attachElementToBone`](https://trilogy-hub.com/docs/attachElementToBone/)
- [`isElementAttachedToBone`](https://trilogy-hub.com/docs/isElementAttachedToBone/)

### getElementBonePositionOffset

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Tylko Trilogy Hub*

Zwraca przesunięcie elementu przyczepionego do kości.

#### Składnia

```lua
float, float, float getElementBonePositionOffset(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

x, y, z albo `false`, gdy element nie wisi na kości.

#### Przykład

```lua
local x, y, z = getElementBonePositionOffset(box)
```

#### Zobacz też

- [`setElementBonePositionOffset`](https://trilogy-hub.com/docs/setElementBonePositionOffset/)
- [`getElementBoneAttachment`](https://trilogy-hub.com/docs/getElementBoneAttachment/)

### getElementBoneRotationOffset

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Tylko Trilogy Hub*

Zwraca obrót elementu przyczepionego do kości (w stopniach).

#### Składnia

```lua
float, float, float getElementBoneRotationOffset(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

rx, ry, rz albo `false`, gdy element nie wisi na kości.

#### Przykład

```lua
local rx, ry, rz = getElementBoneRotationOffset(box)
```

#### Zobacz też

- [`setElementBoneRotationOffset`](https://trilogy-hub.com/docs/setElementBoneRotationOffset/)
- [`getElementBoneAttachment`](https://trilogy-hub.com/docs/getElementBoneAttachment/)

### getElementByID

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Szuka elementu po identyfikatorze tekstowym (z mapy `.map` albo z `setElementID`).

#### Składnia

```lua
element getElementByID(string id [, int index = 0])
```

#### Argumenty

- `id` (string) - Identyfikator.
- `index` (int, opcjonalny = 0) - Który element z tym identyfikatorem (od 0).

#### Zwraca

Element albo `false`.

#### Przykład

```lua
local gate = getElementByID("brama_policja")
if gate then
    moveObject(gate, 3000, 1588, -1638, 8)
end
```

#### Zobacz też

- [`getElementID`](https://trilogy-hub.com/docs/getElementID/)
- [`setElementID`](https://trilogy-hub.com/docs/setElementID/)

### getElementCollisionsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element ma włączone kolizje (domyślnie tak).

#### Składnia

```lua
bool getElementCollisionsEnabled(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli kolizje są włączone.

#### Przykład

```lua
if not getElementCollisionsEnabled(object) then
    setElementCollisionsEnabled(object, true)
end
```

#### Zobacz też

- [`setElementCollisionsEnabled`](https://trilogy-hub.com/docs/setElementCollisionsEnabled/)

### getElementData

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zwraca wartość danych elementu pod kluczem. Dane ustawia `setElementData`; dane rozsyłane widać też na kliencie.

#### Składnia

```lua
mixed getElementData(element theElement, string key)
```

#### Argumenty

- `theElement` (element) - Element.
- `key` (string) - Klucz.

#### Zwraca

Wartość albo `false`, gdy jej nie ma.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool inherit = true`
- W MTA:SA: `getElementData(element theElement, string key, bool inherit = true)`

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local level = getElementData(localPlayer, "level") or 1
    dxDrawText("Poziom " .. level, 20, 400)
end)
```

#### Zobacz też

- [`setElementData`](https://trilogy-hub.com/docs/setElementData/)
- [`hasElementData`](https://trilogy-hub.com/docs/hasElementData/)
- [`onElementDataChange`](https://trilogy-hub.com/docs/onElementDataChange/)
- [`removeElementData`](https://trilogy-hub.com/docs/removeElementData/)

### getElementDimension

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca wymiar elementu. Elementy w różnych wymiarach się nie widzą.

#### Składnia

```lua
int getElementDimension(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Numer wymiaru (0-65535).

#### Przykład

```lua
if getElementDimension(player) ~= 0 then
    setElementDimension(player, 0)
end
```

#### Zobacz też

- [`setElementDimension`](https://trilogy-hub.com/docs/setElementDimension/)

### getElementHealth

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca zdrowie elementu: postaci 0-100 (do 176 z pełną wytrzymałością), pojazdu 0-1000 (poniżej 250 się pali).

#### Składnia

```lua
float getElementHealth(element theElement)
```

#### Argumenty

- `theElement` (element) - Gracz, NPC, pojazd albo obiekt.

#### Zwraca

Zdrowie albo `false`.

#### Przykład

```lua
addCommandHandler("hp", function(player)
    outputChatBox(("Zdrowie: %.0f"):format(getElementHealth(player)), player)
end)
```

#### Zobacz też

- [`setElementHealth`](https://trilogy-hub.com/docs/setElementHealth/)

### getElementID

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca identyfikator tekstowy elementu.

#### Składnia

```lua
string getElementID(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Identyfikator (pusty, gdy brak).

#### Przykład

```lua
for _, obj in ipairs(getElementsByType("object")) do
    if getElementID(obj) ~= "" then
        outputServerLog(getElementID(obj))
    end
end
```

#### Zobacz też

- [`setElementID`](https://trilogy-hub.com/docs/setElementID/)
- [`getElementByID`](https://trilogy-hub.com/docs/getElementByID/)

### getElementInterior

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca numer interioru elementu (0 to świat zewnętrzny).

#### Składnia

```lua
int getElementInterior(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Interior 0-255.

#### Przykład

```lua
if getElementInterior(player) ~= 0 then
    outputChatBox("Jesteś w budynku.", player)
end
```

#### Zobacz też

- [`setElementInterior`](https://trilogy-hub.com/docs/setElementInterior/)

### getElementMatrix

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca macierz elementu (pozycja i obrót). Domyślnie tablicę 4x4, a z `legacy = false` obiekt `Matrix`.

#### Składnia

```lua
table getElementMatrix(element theElement [, bool legacy = true])
```

#### Argumenty

- `theElement` (element) - Element.
- `legacy` (bool, opcjonalny = true) - `false` zwraca obiekt `Matrix`.

#### Zwraca

Macierz albo `false`.

#### Przykład

Punkt 3 m przed pojazdem.

```lua
local function getPositionInFront(element, distance)
    local m = getElementMatrix(element)
    return m[4][1] + m[2][1] * distance,
           m[4][2] + m[2][2] * distance,
           m[4][3] + m[2][3] * distance
end

local x, y, z = getPositionInFront(vehicle, 3)
createObject(1225, x, y, z)
```

#### Zobacz też

- [`setElementMatrix`](https://trilogy-hub.com/docs/setElementMatrix/)

### getElementModel

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca model elementu. Dla gracza `-1` oznacza CJ-a w stroju wybranym w launcherze, a `0` czystego CJ-a.

#### Składnia

```lua
int getElementModel(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Numer modelu.

#### Przykład

```lua
local veh = getPedOccupiedVehicle(player)
if veh and getElementModel(veh) == 411 then
    outputChatBox("Ładne Infernus!", player)
end
```

#### Zobacz też

- [`setElementModel`](https://trilogy-hub.com/docs/setElementModel/)

### getElementPosition

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca pozycję elementu w świecie: gracza, pojazdu, obiektu albo znacznika.

#### Składnia

```lua
float, float, float getElementPosition(element el)
```

#### Argumenty

- `el` (element) - Element, którego pozycję chcesz poznać.

#### Zwraca

Trzy liczby `x, y, z` albo `false`, gdy element nie istnieje.

#### Przykład

Odległość między dwoma graczami w metrach.

```lua
function odleglosc(a, b)
    local x1, y1, z1 = getElementPosition(a)
    local x2, y2, z2 = getElementPosition(b)
    return getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2)
end

addCommandHandler("dystans", function(gracz, _, nick)
    local inny = getPlayerFromName(nick or "")
    if not inny then return outputChatBox("Nie ma takiego gracza.", gracz) end
    outputChatBox(("Do %s masz %.0f m."):format(nick, odleglosc(gracz, inny)), gracz)
end)
```

#### Uwagi

> **Uwaga:** **Warto wiedzieć.** Pozycję ustawiasz przez `setElementPosition(el, x, y, z)`. Współrzędne są opisane w [Konwencjach](https://trilogy-hub.com/docs/konwencje/#wspolrzedne).

#### Zobacz też

- [`createVehicle`](https://trilogy-hub.com/docs/createVehicle/)
- [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/)
- [`setTimer`](https://trilogy-hub.com/docs/setTimer/)
- [`setElementPosition`](https://trilogy-hub.com/docs/setElementPosition/)

### getElementRadius

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zwraca promień bryły elementu (domyślny dla typu, gdy nie został ustawiony).

#### Składnia

```lua
float getElementRadius(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Promień w metrach.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `getElementRadius(element theElement)`

#### Przykład

```lua
outputServerLog(("Promień auta: %.1f m"):format(getElementRadius(vehicle)))
```

#### Zobacz też

- [`setElementRadius`](https://trilogy-hub.com/docs/setElementRadius/)

### getElementRotation

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zwraca obrót elementu w stopniach.

#### Składnia

```lua
float getElementRotation(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

rx, ry, rz albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string rotOrder = "default"`
- W MTA:SA: `getElementRotation(element theElement, string rotOrder = "default")`

#### Przykład

```lua
local _, _, rz = getElementRotation(player)
outputChatBox(("Patrzysz na %.0f°"):format(rz), player)
```

#### Zobacz też

- [`setElementRotation`](https://trilogy-hub.com/docs/setElementRotation/)

### getElementsByType

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zwraca wszystkie elementy danego typu, opcjonalnie tylko pod wskazanym elementem (np. `resourceRoot`).

#### Składnia

```lua
table getElementsByType(string theType [, element startAt = root])
```

#### Argumenty

- `theType` (string) - Typ, np. `"player"`, `"vehicle"`, `"object"`, `"marker"`.
- `startAt` (element, opcjonalny = root) - Element, od którego szukać.

#### Zwraca

Tablica elementów.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool streamedIn = false`
- W MTA:SA: `getElementsByType(string theType, element startat = getRootElement(), bool streamedIn = false)`

#### Przykład

```lua
addCommandHandler("naprawwszystko", function()
    for _, veh in ipairs(getElementsByType("vehicle")) do
        fixVehicle(veh)
    end
end)
```

#### Zobacz też

- [`getElementChildren`](https://trilogy-hub.com/docs/getElementChildren/)
- [`getElementType`](https://trilogy-hub.com/docs/getElementType/)

### getElementsWithinColShape

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca elementy w strefie kolizji, opcjonalnie tylko jednego typu.

#### Składnia

```lua
table getElementsWithinColShape(colshape theShape [, string elemType = nil])
```

#### Argumenty

- `theShape` (colshape) - Strefa.
- `elemType` (string, opcjonalny = nil) - Typ elementów.

#### Zwraca

Tablica elementów.

#### Przykład

```lua
local zone = createColSphere(2495, -1687, 13, 30)
addCommandHandler("obecni", function(player)
    outputChatBox("Na Grove: " .. #getElementsWithinColShape(zone, "player"), player)
end)
```

#### Zobacz też

- [`isElementWithinColShape`](https://trilogy-hub.com/docs/isElementWithinColShape/)
- [`createColSphere`](https://trilogy-hub.com/docs/createColSphere/)

### getElementsWithinMarker

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zwraca elementy, które są teraz w znaczniku (marker): gracze, pojazdy, postacie, obiekty, pickupy i inne znaczniki. Znacznik `checkpoint` to koło bez limitu wysokości, pozostałe typy to kula o promieniu równym rozmiarowi znacznika. Można ograniczyć wynik do jednego typu.

#### Składnia

```lua
table getElementsWithinMarker(marker theMarker [, string elementType = nil])
```

#### Argumenty

- `theMarker` (marker) - Znacznik.
- `elementType` (string, opcjonalny = nil) - Typ elementów, np. `"player"` albo `"vehicle"`.

#### Zwraca

Lista elementów albo `false` przy złym znaczniku.

#### Różnice względem MTA:SA

- W MTA:SA: `getElementsWithinMarker(marker theMarker)`

#### Przykład

```lua
local parking = createMarker(2490, -1670, 12.4, "cylinder", 6, 0, 120, 255, 80)
addCommandHandler("parking", function()
    outputChatBox("Aut na parkingu: " .. #getElementsWithinMarker(parking, "vehicle"))
end)
```

#### Zobacz też

- [`isElementWithinMarker`](https://trilogy-hub.com/docs/isElementWithinMarker/)
- [`onClientMarkerHit`](https://trilogy-hub.com/docs/onClientMarkerHit/)

### getElementsWithinRange

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zwraca elementy w promieniu od punktu, opcjonalnie tylko danego typu i wymiaru.

#### Składnia

```lua
table getElementsWithinRange(float x, float y, float z, float range [, string elemType = nil, int dimension = nil])
```

#### Argumenty

- `x` (float) - Środek X.
- `y` (float) - Środek Y.
- `z` (float) - Środek Z.
- `range` (float) - Promień w metrach.
- `elemType` (string, opcjonalny = nil) - Typ elementów.
- `dimension` (int, opcjonalny = nil) - Wymiar.

#### Zwraca

Tablica elementów.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int dimension = nil`
- W MTA:SA: `getElementsWithinRange(float x, float y, float z, float range, string elemType = "", int interior = nil, int dimension = nil)`

#### Przykład

```lua
addCommandHandler("krzyk", function(player, cmd, ...)
    local x, y, z = getElementPosition(player)
    local text = table.concat({ ... }, " ")
    for _, p in ipairs(getElementsWithinRange(x, y, z, 40, "player")) do
        outputChatBox(getPlayerName(player) .. " krzyczy: " .. text, p, 255, 120, 0)
    end
end)
```

### getElementType

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca typ elementu, np. `"player"`, `"vehicle"`, `"ped"`, `"object"`. Elementy GUI mają typy z przedrostkiem `"gui-"`.

#### Składnia

```lua
string getElementType(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Typ albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerDamage", root, function(attacker)
    if attacker and getElementType(attacker) == "vehicle" then
        outputChatBox("Potrącił cię pojazd!", source)
    end
end)
```

### getElementVelocity

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zwraca prędkość elementu. Jednostka: 1 to 50 m/s, więc km/h to długość wektora razy 180.

#### Składnia

```lua
float getElementVelocity(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

vx, vy, vz albo `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local veh = getPedOccupiedVehicle(localPlayer)
    if veh then
        local vx, vy, vz = getElementVelocity(veh)
        local kmh = math.sqrt(vx * vx + vy * vy + vz * vz) * 180
        dxDrawText(("%d km/h"):format(kmh), 20, 500)
    end
end)
```

#### Zobacz też

- [`setElementVelocity`](https://trilogy-hub.com/docs/setElementVelocity/)

### hasElementData

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Sprawdza, czy element ma ustawioną wartość pod kluczem. W odróżnieniu od `getElementData` odróżnia brak wartości od `false`.

#### Składnia

```lua
bool hasElementData(element theElement, string key)
```

#### Argumenty

- `theElement` (element) - Element.
- `key` (string) - Klucz.

#### Zwraca

`true`, jeśli klucz istnieje.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool inherit = true`
- W MTA:SA: `hasElementData(element theElement, string key, bool inherit = true)`

#### Przykład

```lua
if not hasElementData(player, "level") then
    setElementData(player, "level", 1)
end
```

### isElement

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy wartość jest istniejącym elementem. Używaj przed działaniem na elemencie, który mógł zostać usunięty.

#### Składnia

```lua
bool isElement(mixed theValue)
```

#### Argumenty

- `theValue` (mixed) - Dowolna wartość.

#### Zwraca

`true` dla istniejącego elementu.

#### Przykład

```lua
setTimer(function()
    if isElement(car) then
        destroyElement(car)
    end
end, 30000, 1)
```

#### Zobacz też

- [`destroyElement`](https://trilogy-hub.com/docs/destroyElement/)
- [`createElement`](https://trilogy-hub.com/docs/createElement/)

### isElementAttached

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest przyczepiony do innego.

#### Składnia

```lua
bool isElementAttached(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli przyczepiony.

#### Przykład

```lua
if isElementAttached(box) then detachElements(box) end
```

### isElementAttachedToBone

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Tylko Trilogy Hub*

Sprawdza, czy element jest przyczepiony do kości postaci.

#### Składnia

```lua
bool isElementAttachedToBone(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli wisi na kości.

#### Przykład

```lua
if isElementAttachedToBone(hat) then
    detachElementFromBone(hat)
end
```

#### Zobacz też

- [`attachElementToBone`](https://trilogy-hub.com/docs/attachElementToBone/)
- [`detachElementFromBone`](https://trilogy-hub.com/docs/detachElementFromBone/)

### isElementFrozen

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest zamrożony (nie rusza się).

#### Składnia

```lua
bool isElementFrozen(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli zamrożony.

#### Przykład

```lua
addCommandHandler("zamroz", function(player)
    setElementFrozen(player, not isElementFrozen(player))
end)
```

#### Zobacz też

- [`setElementFrozen`](https://trilogy-hub.com/docs/setElementFrozen/)

### isElementInWater

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest w wodzie.

#### Składnia

```lua
bool isElementInWater(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true`, jeśli w wodzie.

#### Przykład

```lua
setTimer(function()
    for _, veh in ipairs(getElementsByType("vehicle")) do
        if isElementInWater(veh) then
            respawnVehicle(veh)
        end
    end
end, 10000, 0)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta: własna postać i pojazdy w zasięgu - z gry; inne elementy - pozycja poniżej powierzchni wody.

> **Uwaga:** **Serwer.** Gracz - z jego gry (pływanie). Pojazd - według graczy w promieniu 80 m, którzy go widzą; gdy nikogo nie ma w pobliżu, zostaje ostatni znany stan (auto zatopione i porzucone dalej zwraca `true`).

### isElementWithinColShape

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest teraz w strefie kolizji.

#### Składnia

```lua
bool isElementWithinColShape(element theElement, colshape theShape)
```

#### Argumenty

- `theElement` (element) - Element.
- `theShape` (colshape) - Strefa.

#### Zwraca

`true`, jeśli w strefie.

#### Przykład

```lua
addCommandHandler("kup", function(player)
    if not isElementWithinColShape(player, shopZone) then
        outputChatBox("Musisz być w sklepie.", player, 255, 0, 0)
        return
    end
end)
```

#### Zobacz też

- [`getElementsWithinColShape`](https://trilogy-hub.com/docs/getElementsWithinColShape/)

### isElementWithinMarker

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Sprawdza, czy element jest w znaczniku.

#### Składnia

```lua
bool isElementWithinMarker(element theElement, marker theMarker)
```

#### Argumenty

- `theElement` (element) - Element.
- `theMarker` (marker) - Znacznik.

#### Zwraca

`true`, jeśli w znaczniku.

#### Przykład

```lua
bindKey(player, "e", "down", function(p)
    if isElementWithinMarker(p, bankMarker) then
        outputChatBox("Witaj w banku!", p)
    end
end)
```

### removeElementData

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Usuwa wartość danych elementu pod kluczem (u wszystkich graczy).

#### Składnia

```lua
bool removeElementData(element theElement, string key)
```

#### Argumenty

- `theElement` (element) - Element.
- `key` (string) - Klucz.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `removeElementData(element theElement, string key)`

#### Przykład

```lua
addEventHandler("onPlayerLogout", root, function()
    removeElementData(source, "level")
end)
```

#### Zobacz też

- [`getElementData`](https://trilogy-hub.com/docs/getElementData/)
- [`setElementData`](https://trilogy-hub.com/docs/setElementData/)

### setElementAlpha

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Ustawia przezroczystość elementu (0 niewidoczny, 255 pełny). Działa na graczach, pedach, obiektach i pojazdach (pojazd razem z kołami).

#### Składnia

```lua
bool setElementAlpha(element theElement, int alpha)
```

#### Argumenty

- `theElement` (element) - Element.
- `alpha` (int) - Krycie 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    setElementAlpha(source, 120)
    setTimer(setElementAlpha, 5000, 1, source, 255)
end)
```

#### Zobacz też

- [`getElementAlpha`](https://trilogy-hub.com/docs/getElementAlpha/)

### setElementAttachedOffsets

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zmienia przesunięcie i obrót przyczepionego elementu.

#### Składnia

```lua
bool setElementAttachedOffsets(element theElement [, float xPosOffset = 0, float yPosOffset = 0, float zPosOffset = 0, float xRotOffset = 0, float yRotOffset = 0, float zRotOffset = 0])
```

#### Argumenty

- `theElement` (element) - Przyczepiony element.
- `xPosOffset` (float, opcjonalny = 0) - Przesunięcie X.
- `yPosOffset` (float, opcjonalny = 0) - Przesunięcie Y.
- `zPosOffset` (float, opcjonalny = 0) - Przesunięcie Z.
- `xRotOffset` (float, opcjonalny = 0) - Obrót X.
- `yRotOffset` (float, opcjonalny = 0) - Obrót Y.
- `zRotOffset` (float, opcjonalny = 0) - Obrót Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local angle = 0
setTimer(function()
    angle = (angle + 10) % 360
    setElementAttachedOffsets(light, 0, -0.2, 0.95, 0, 0, angle)
end, 50, 0)
```

#### Zobacz też

- [`getElementAttachedOffsets`](https://trilogy-hub.com/docs/getElementAttachedOffsets/)

### setElementBonePositionOffset

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Tylko Trilogy Hub*

Zmienia przesunięcie elementu przyczepionego do kości, bez ponownego przyczepiania. Element od razu przesuwa się względem kości.

#### Składnia

```lua
bool setElementBonePositionOffset(element theElement, float x, y, z)
```

#### Argumenty

- `theElement` (element) - Element przyczepiony przez `attachElementToBone`.
- `x, y, z` (float) - Nowe przesunięcie względem kości.

#### Zwraca

`true` przy powodzeniu, `false`, gdy element nie wisi na kości.

#### Przykład

```lua
setElementBonePositionOffset(box, 0.05, 0.15, 0)
```

#### Zobacz też

- [`attachElementToBone`](https://trilogy-hub.com/docs/attachElementToBone/)
- [`getElementBonePositionOffset`](https://trilogy-hub.com/docs/getElementBonePositionOffset/)
- [`setElementBoneRotationOffset`](https://trilogy-hub.com/docs/setElementBoneRotationOffset/)

### setElementBoneRotationOffset

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Tylko Trilogy Hub*

Zmienia obrót elementu przyczepionego do kości, bez ponownego przyczepiania.

#### Składnia

```lua
bool setElementBoneRotationOffset(element theElement, float rx, ry, rz)
```

#### Argumenty

- `theElement` (element) - Element przyczepiony przez `attachElementToBone`.
- `rx, ry, rz` (float) - Nowy obrót względem kości w stopniach.

#### Zwraca

`true` przy powodzeniu, `false`, gdy element nie wisi na kości.

#### Przykład

```lua
setElementBoneRotationOffset(box, 0, 90, 0)
```

#### Zobacz też

- [`attachElementToBone`](https://trilogy-hub.com/docs/attachElementToBone/)
- [`getElementBoneRotationOffset`](https://trilogy-hub.com/docs/getElementBoneRotationOffset/)
- [`setElementBonePositionOffset`](https://trilogy-hub.com/docs/setElementBonePositionOffset/)

### setElementCollisionsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Włącza albo wyłącza kolizje elementu.

#### Składnia

```lua
bool setElementCollisionsEnabled(element theElement, bool enabled)
```

#### Argumenty

- `theElement` (element) - Element.
- `enabled` (bool) - `false` wyłącza kolizje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local ghost = createObject(3095, 2500, -1670, 12)
setElementCollisionsEnabled(ghost, false)
setElementAlpha(ghost, 100)
```

#### Uwagi

> **Uwaga:** **Własna postać w skrypcie klienta.** Po stronie klienta można wyłączyć kolizje także własnej postaci (`localPlayer`).

> **Uwaga:** **Pojazdy, NPC i obiekty.** Działa na obiektach, pojazdach i NPC u wszystkich graczy. Pusty pojazd bez kolizji stoi tam, gdzie go postawiono.

> **Uwaga:** **Pliki .map.** Atrybut `collisions="false"` działa na pojedynczym elemencie, na korzeniu `<map collisions="false">` (cała mapa) i w meta.xml: `<map src="trasa.map" collisions="false" />`. Atrybut elementu ma pierwszeństwo.

#### Zobacz też

- [`getElementCollisionsEnabled`](https://trilogy-hub.com/docs/getElementCollisionsEnabled/)

### setElementData

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zapisuje wartość pod kluczem w elemencie. Domyślnie wartość trafia do wszystkich graczy, co wywołuje `onElementDataChange`.

#### Składnia

```lua
bool setElementData(element theElement, string key, mixed value [, mixed syncMode = true, string clientChangesPolicy = "default"])
```

#### Argumenty

- `theElement` (element) - Element.
- `key` (string) - Klucz.
- `value` (mixed) - Wartość: liczba, tekst, tablica, element, `true`/`false`.
- `syncMode` (mixed, opcjonalny = true) - `true`/`"broadcast"`: wszyscy, `false`/`"local"`: tylko serwer, `"subscribe"`: tylko gracze z `addElementDataSubscriber`.
- `clientChangesPolicy` (string, opcjonalny = "default") - Czy skrypty klientów mogą zmieniać ten klucz: `"allow"` tak, `"deny"` nie (zmiana odrzucona, gracz dostaje wartość serwera, serwer dostaje `onPlayerChangesProtectedData`), `"default"` = ustawienie `element_data_client_changes` w server-config.json (domyślnie `"allow"`).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setElementData(element theElement, string key, var value, string syncMode = "broadcast", string clientChangesPolicy = "default")`

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function(_, account)
    setElementData(source, "level", getAccountData(account, "level") or 1)
    setElementData(source, "password_hash", "...", false)
end)
```

#### Uwagi

> **Uwaga:** **Kto zmienił.** W `onElementDataChange` po zmianie od klienta zmienna globalna `client` wskazuje gracza; przy zmianie z serwera jest `nil`.

> **Uwaga:** **Rozsyłaj tylko to, co klient musi znać.** Każda zmiana wysyłana do wszystkich kosztuje ruch sieciowy; dane tylko dla serwera ustawiaj z `false`.

#### Zobacz też

- [`getElementData`](https://trilogy-hub.com/docs/getElementData/)
- [`removeElementData`](https://trilogy-hub.com/docs/removeElementData/)
- [`onElementDataChange`](https://trilogy-hub.com/docs/onElementDataChange/)

### setElementDimension

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Przenosi element do innego wymiaru. Elementy w różnych wymiarach się nie widzą.

#### Składnia

```lua
bool setElementDimension(element theElement, int dimension)
```

#### Argumenty

- `theElement` (element) - Element.
- `dimension` (int) - Wymiar 0-65535.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("arena", function(player)
    setElementDimension(player, 10)
    setElementPosition(player, 0, 0, 5)
end)
```

#### Uwagi

> **Uwaga:** **Działa też w skryptach klienta.** Po stronie klienta zmienia wymiar każdego elementu, także dźwięków i graczy.

#### Zobacz też

- [`getElementDimension`](https://trilogy-hub.com/docs/getElementDimension/)
- [`onElementDimensionChange`](https://trilogy-hub.com/docs/onElementDimensionChange/)

### setElementFrozen

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Zamraża albo odmraża element. Zamrożony element nie rusza się.

#### Składnia

```lua
bool setElementFrozen(element theElement, bool freezeStatus)
```

#### Argumenty

- `theElement` (element) - Element.
- `freezeStatus` (bool) - `true` zamraża.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    setElementFrozen(source, true)
    setTimer(setElementFrozen, 3000, 1, source, false)
end)
```

#### Uwagi

> **Uwaga:** **Własna postać w skrypcie klienta.** Po stronie klienta można zamrozić też własną postać (`localPlayer`).

#### Zobacz też

- [`isElementFrozen`](https://trilogy-hub.com/docs/isElementFrozen/)

### setElementHealth

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Ustawia zdrowie elementu. `0` zabija gracza albo NPC i wywołuje `onPlayerWasted` / `onPedWasted`.

#### Składnia

```lua
bool setElementHealth(element theElement, float newHealth)
```

#### Argumenty

- `theElement` (element) - Element.
- `newHealth` (float) - Nowe zdrowie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("ulecz", function(player)
    setElementHealth(player, 100)
    local veh = getPedOccupiedVehicle(player)
    if veh then setElementHealth(veh, 1000) end
end)
```

#### Zobacz też

- [`getElementHealth`](https://trilogy-hub.com/docs/getElementHealth/)

### setElementID

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Ustawia identyfikator tekstowy elementu.

#### Składnia

```lua
bool setElementID(element theElement, string name)
```

#### Argumenty

- `theElement` (element) - Element.
- `name` (string) - Identyfikator.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local gate = createObject(980, 1588, -1638, 14)
setElementID(gate, "brama_policja")
```

#### Zobacz też

- [`getElementID`](https://trilogy-hub.com/docs/getElementID/)

### setElementInterior

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Przenosi element do interioru. Gracz w interiorze widzi tylko budynki i elementy z tego samego numeru.

#### Składnia

```lua
bool setElementInterior(element theElement, int interior)
```

#### Argumenty

- `theElement` (element) - Element.
- `interior` (int) - Interior 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `float x = nil`, `float y = nil`, `float z = nil`
- W MTA:SA: `setElementInterior(element theElement, int interior, float x = nil, float y = nil, float z = nil)`

#### Przykład

```lua
addCommandHandler("komisariat", function(player)
    setElementInterior(player, 6)
    setElementPosition(player, 246.4, 65.8, 1003.6)
end)
```

#### Uwagi

> **Uwaga:** **Działa też w skryptach klienta.** Po stronie klienta przenosi każdy element: markery, obiekty, pojazdy, NPC, pickupy, colshape, dźwięki i własną postać (wtedy zmienia też obszar gry).

#### Zobacz też

- [`getElementInterior`](https://trilogy-hub.com/docs/getElementInterior/)

### setElementMatrix

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Ustawia pozycję i obrót elementu z macierzy (tablica 4x4 albo obiekt `Matrix`).

#### Składnia

```lua
bool setElementMatrix(element theElement, table matrix)
```

#### Argumenty

- `theElement` (element) - Element.
- `matrix` (table) - Macierz.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setElementMatrix(copy, getElementMatrix(original))
```

#### Uwagi

> **Uwaga:** **Klient.** Działa też w skrypcie klienta; element serwera zmienia się wtedy tylko u tego gracza.

#### Zobacz też

- [`getElementMatrix`](https://trilogy-hub.com/docs/getElementMatrix/)

### setElementModel

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Zmienia model elementu. Dla gracza i NPC możesz podać też wariant ubrania i skóry (0-3); bez nich serwer losuje wariant, żeby wszyscy widzieli to samo.

#### Składnia

```lua
bool setElementModel(element theElement, int model [, int clothes = losowy, int skin = losowy])
```

#### Argumenty

- `theElement` (element) - Element.
- `model` (int) - Numer modelu.
- `clothes` (int, opcjonalny = losowy) - Wariant ubrania 0-3.
- `skin` (int, opcjonalny = losowy) - Wariant skóry 0-3.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setElementModel(element theElement, int model)`

#### Przykład

```lua
addCommandHandler("skin", function(player, cmd, id)
    if not setElementModel(player, tonumber(id) or 0) then
        outputChatBox("Nieprawidłowy skin.", player, 255, 0, 0)
    end
end)
```

#### Zobacz też

- [`getElementModel`](https://trilogy-hub.com/docs/getElementModel/)
- [`setPedVariant`](https://trilogy-hub.com/docs/setPedVariant/)

### setElementPosition

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Przenosi element w podane miejsce. Na serwerze działa dla każdego elementu. Na kliencie przesuwa własną postać (do 50 m zwykłe przesunięcie w tej samej klatce, `getElementPosition` od razu zwraca nowe miejsce, więc można to wołać co klatkę, np. noclip; dalej teleport z wczytaniem okolicy), a także obiekty, dźwięki i strefy kolizji klienta. Obiekt przesuwany co klatkę w `onClientPreRender` stoi w nowym miejscu na tym samym obrazie.

#### Składnia

```lua
bool setElementPosition(element theElement, float x, float y, float z)
```

#### Argumenty

- `theElement` (element) - Element.
- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool warp = true`
- W MTA:SA: `setElementPosition(element theElement, float x, float y, float z, bool warp = true)`

#### Przykład

Komenda teleportu do innego gracza.

```lua
addCommandHandler("tp", function(player, cmd, name)
    local target = name and getPlayerFromName(name)
    if not target then
        outputChatBox("Nie ma takiego gracza.", player, 255, 0, 0)
        return
    end
    local x, y, z = getElementPosition(target)
    setElementInterior(player, getElementInterior(target))
    setElementDimension(player, getElementDimension(target))
    setElementPosition(player, x + 1, y, z)
end)
```

#### Zobacz też

- [`getElementPosition`](https://trilogy-hub.com/docs/getElementPosition/)
- [`setElementRotation`](https://trilogy-hub.com/docs/setElementRotation/)
- [`setElementInterior`](https://trilogy-hub.com/docs/setElementInterior/)

### setElementRotation

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Zmodyfikowana względem MTA:SA*

Ustawia obrót elementu w stopniach. Na kliencie obraca własną postać w tej samej klatce (bez teleportu) oraz obiekty klienta.

#### Składnia

```lua
bool setElementRotation(element theElement, float rotX, float rotY, float rotZ)
```

#### Argumenty

- `theElement` (element) - Element.
- `rotX` (float) - Obrót X.
- `rotY` (float) - Obrót Y.
- `rotZ` (float) - Obrót Z (kierunek).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string rotOrder = "default"`, `bool conformPedRotation = false`
- W MTA:SA: `setElementRotation(element theElement, float rotX, float rotY, float rotZ, string rotOrder = "default", bool conformPedRotation = false)`

#### Przykład

```lua
addCommandHandler("odwroc", function(player)
    local veh = getPedOccupiedVehicle(player)
    if veh then
        local _, _, rz = getElementRotation(veh)
        setElementRotation(veh, 0, 0, rz)
    end
end)
```

#### Zobacz też

- [`getElementRotation`](https://trilogy-hub.com/docs/getElementRotation/)

### setElementVelocity

*Funkcja · Strona: Serwer i klient · Kategoria: Elementy · Identyczna z MTA:SA*

Ustawia prędkość elementu (1 to 50 m/s). Na kliencie działa dla własnej postaci i pojazdu; na ziemi animacja postaci gasi ruch poziomy, pionowy działa zawsze.

#### Składnia

```lua
bool setElementVelocity(element theElement, float speedX, float speedY, float speedZ)
```

#### Argumenty

- `theElement` (element) - Element.
- `speedX` (float) - Prędkość X.
- `speedY` (float) - Prędkość Y.
- `speedZ` (float) - Prędkość Z.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
bindKey("lshift", "down", function()
    local veh = getPedOccupiedVehicle(localPlayer)
    if veh then
        local vx, vy, vz = getElementVelocity(veh)
        setElementVelocity(veh, vx * 1.5, vy * 1.5, vz)
    end
end)
```

#### Zobacz też

- [`getElementVelocity`](https://trilogy-hub.com/docs/getElementVelocity/)

### getLocalPlayer

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca gracza, na którego komputerze działa skrypt. To samo daje zmienna `localPlayer`. Na serwerze zwraca `false`.

#### Składnia

```lua
player getLocalPlayer()
```

#### Zwraca

Gracz lokalny.

#### Przykład

```lua
local me = getLocalPlayer()
outputChatBox("Grasz jako " .. getPlayerName(me))
```

### getPlayerFromName

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Szuka gracza po nicku. Na kliencie wielkość liter nie ma znaczenia.

#### Składnia

```lua
player getPlayerFromName(string playerName)
```

#### Argumenty

- `playerName` (string) - Nick.

#### Zwraca

Gracz albo `false`.

#### Przykład

```lua
addCommandHandler("pw", function(player, cmd, name, ...)
    local target = name and getPlayerFromName(name)
    if not target then
        outputChatBox("Nie ma takiego gracza.", player, 255, 0, 0)
        return
    end
    outputChatBox("[PW od " .. getPlayerName(player) .. "] " .. table.concat({ ... }, " "), target, 255, 255, 0)
end)
```

### getPlayerMoney

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca pieniądze gracza. Stan trzyma serwer, licznik w grze go tylko pokazuje.

#### Składnia

```lua
int getPlayerMoney(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Kwota.

#### Przykład

```lua
addCommandHandler("kup", function(player)
    if getPlayerMoney(player) < 500 then
        outputChatBox("Za mało pieniędzy.", player, 255, 0, 0)
        return
    end
    takePlayerMoney(player, 500)
    giveWeapon(player, 22, 50)
end)
```

#### Uwagi

> **Uwaga:** **Też w skryptach klienta.** Po stronie klienta argument jest opcjonalny: bez niego zwraca pieniądze własnej postaci. Zmieniać je może tylko serwer.

#### Zobacz też

- [`givePlayerMoney`](https://trilogy-hub.com/docs/givePlayerMoney/)
- [`takePlayerMoney`](https://trilogy-hub.com/docs/takePlayerMoney/)
- [`setPlayerMoney`](https://trilogy-hub.com/docs/setPlayerMoney/)

### getPlayerName

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca nick gracza.

#### Składnia

```lua
string getPlayerName(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Nick albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputChatBox(getPlayerName(source) .. " dołączył do gry", root, 0, 255, 0)
end)
```

#### Zobacz też

- [`setPlayerName`](https://trilogy-hub.com/docs/setPlayerName/)
- [`getPlayerFromName`](https://trilogy-hub.com/docs/getPlayerFromName/)

### getPlayerNametagText

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca tekst tabliczki z nickiem (domyślnie nick).

#### Składnia

```lua
string getPlayerNametagText(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Tekst.

#### Przykład

```lua
for _, p in ipairs(getElementsByType("player")) do
    outputChatBox(getPlayerNametagText(p))
end
```

#### Zobacz też

- [`setPlayerNametagText`](https://trilogy-hub.com/docs/setPlayerNametagText/)

### getPlayerPing

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca ping gracza w milisekundach.

#### Składnia

```lua
int getPlayerPing(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Ping.

#### Przykład

```lua
setTimer(function()
    for _, p in ipairs(getElementsByType("player")) do
        if getPlayerPing(p) > 500 then
            kickPlayer(p, "Za wysoki ping")
        end
    end
end, 15000, 0)
```

#### Uwagi

> **Uwaga:** **Klient.** Działa też w skrypcie klienta: własny ping mierzy klient, ping innych graczy przychodzi z serwera (pierwsze wywołanie prosi o pingi wszystkich, potem odświeżane co 2 s, dopóki skrypt pyta; do tego czasu `0`).

### getPlayers

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca wszystkich graczy. To samo co `getElementsByType("player")`.

#### Składnia

```lua
table getPlayers()
```

#### Zwraca

Tablica graczy.

#### Przykład

```lua
for _, p in ipairs(getPlayers()) do
    givePlayerMoney(p, 100)
end
outputChatBox("Każdy dostał $100!")
```

#### Zobacz też

- [`getPlayerCount`](https://trilogy-hub.com/docs/getPlayerCount/)

### getPlayerWantedLevel

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Zwraca poziom poszukiwania gracza (0-6 gwiazdek). Gwiazdki nadaje tylko serwer, gra sama ich nie daje.

#### Składnia

```lua
int getPlayerWantedLevel(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz (na kliencie można pominąć).

#### Zwraca

Poziom 0-6.

#### Przykład

```lua
addEventHandler("onPlayerWasted", root, function(ammo, killer)
    if killer and getElementType(killer) == "player" then
        setPlayerWantedLevel(killer, math.min(6, getPlayerWantedLevel(killer) + 1))
    end
end)
```

#### Zobacz też

- [`setPlayerWantedLevel`](https://trilogy-hub.com/docs/setPlayerWantedLevel/)

### getVoiceSettings

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Tylko Trilogy Hub*

Zwraca wszystkie ustawienia rozmowy głosowej serwera jako tabelę. Klucze: `enabled` (włączona), `mode` (`"proximity"` – słychać w pobliżu, `"global"` – wszyscy słyszą wszystkich, `"channels"` – w pobliżu plus kanały), `range` (zasięg w metrach, 3–250, domyślnie 40), `minDistance` (do tej odległości głos ma pełną głośność, domyślnie 2), `falloff` (spadek głośności z odległością: `"linear"`, `"inverse"`, `"exponential"`), `wallDamping` (tłumienie przez ściany 0–1, domyślnie 0.75), `pushToTalk`, `pushToTalkKey` (domyślny klawisz mówienia, `"z"`), `bitrate` (jakość w kb/s, 8–64, domyślnie 32), `occlusion`, `reverb`, `vehicleMuffle` (stłumienie w zamkniętym aucie), `indicator` (ikonka nad mówiącym) i `mutedByDefault` (nowi gracze wyciszeni). Klient dostaje tę samą tabelę co serwer.

#### Składnia

```lua
table getVoiceSettings()
```

#### Zwraca

Tabela ustawień (kopia – zmiany w niej nic nie robią).

#### Przykład

```lua
local v = getVoiceSettings()
outputServerLog("Głos: " .. v.mode .. ", zasięg " .. v.range .. " m")
```

```lua
local v = getVoiceSettings()
if v.pushToTalk then outputChatBox("Mów, trzymając klawisz " .. v.pushToTalkKey) end
```

#### Zobacz też

- [`setVoiceSetting`](https://trilogy-hub.com/docs/setVoiceSetting/)
- [`setVoiceSettings`](https://trilogy-hub.com/docs/setVoiceSettings/)
- [`isVoiceEnabled`](https://trilogy-hub.com/docs/isVoiceEnabled/)

### isPlayerHelpTextsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy podpowiedzi i poradniki z gry są u gracza włączone (`setPlayerHelpTextsEnabled`). U klienta sprawdza lokalnego gracza.

#### Składnia

*Serwer*

```lua
bool isPlayerHelpTextsEnabled(player thePlayer)
```

*Klient*

```lua
bool isPlayerHelpTextsEnabled()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko na serwerze).

#### Zwraca

`true`, gdy podpowiedzi są włączone.

#### Przykład

```lua
addCommandHandler("podpowiedzi", function(player)
    setPlayerHelpTextsEnabled(player, not isPlayerHelpTextsEnabled(player))
end)
```

#### Zobacz też

- [`setPlayerHelpTextsEnabled`](https://trilogy-hub.com/docs/setPlayerHelpTextsEnabled/)

### isPlayerHudComponentVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Zmodyfikowana względem MTA:SA*

Sprawdza, czy składnik interfejsu gry jest u gracza widoczny (według ustawień z `setPlayerHudComponentVisible`). Składnik bez własnego ustawienia ma stan `"all"`.

#### Składnia

*Serwer*

```lua
bool isPlayerHudComponentVisible(player thePlayer, string component)
```

*Klient*

```lua
bool isPlayerHudComponentVisible(string component)
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `component` (string) - Nazwa składnika (zob. `getHudComponentNames`).

#### Zwraca

`true`, jeśli widoczny; `false` także dla nieznanego składnika.

#### Różnice względem MTA:SA

- W MTA:SA: `isPlayerHudComponentVisible(string component)`

#### Przykład

```lua
if isPlayerHudComponentVisible(player, "radar") then
    setPlayerHudComponentVisible(player, "radar", false)
end
```

#### Zobacz też

- [`setPlayerHudComponentVisible`](https://trilogy-hub.com/docs/setPlayerHudComponentVisible/)

### isPlayerNametagShowing

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Sprawdza, czy tabliczka z nickiem gracza jest widoczna.

#### Składnia

```lua
bool isPlayerNametagShowing(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, jeśli widoczna.

#### Przykład

```lua
setPlayerNametagShowing(player, not isPlayerNametagShowing(player))
```

#### Zobacz też

- [`setPlayerNametagShowing`](https://trilogy-hub.com/docs/setPlayerNametagShowing/)

### isPlayerTalking

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz właśnie mówi przez czat głosowy. U klienta dla lokalnego gracza oznacza to, że jego mikrofon właśnie nadaje.

#### Składnia

```lua
bool isPlayerTalking(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, gdy mówi.

#### Przykład

```lua
for _, p in ipairs(getElementsByType("player")) do
    if isPlayerTalking(p) then outputServerLog(getPlayerName(p) .. " mówi") end
end
```

```lua
addEventHandler("onClientRender", root, function()
    if isPlayerTalking(localPlayer) then dxDrawText("MIKROFON", 20, 400) end
end)
```

#### Zobacz też

- [`getPlayerVoiceLevel`](https://trilogy-hub.com/docs/getPlayerVoiceLevel/)
- [`onPlayerVoiceStart`](https://trilogy-hub.com/docs/onPlayerVoiceStart/)

### isPlayerVoiceMuted

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz jest wyciszony na czacie głosowym: przez `setPlayerVoiceMuted` albo, jeśli tej funkcji nie użyto, przez ustawienie serwera `mutedByDefault`. Działa też u klienta.

#### Składnia

```lua
bool isPlayerVoiceMuted(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

`true`, gdy wyciszony.

#### Przykład

```lua
if isPlayerVoiceMuted(localPlayer) then outputChatBox("Jesteś wyciszony na czacie głosowym.") end
```

#### Zobacz też

- [`setPlayerVoiceMuted`](https://trilogy-hub.com/docs/setPlayerVoiceMuted/)

### isPlayerWastedScreenEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Tylko Trilogy Hub*

Sprawdza, czy gracz widzi po śmierci ekran WASTED z gry.

#### Składnia

*Serwer*

```lua
bool isPlayerWastedScreenEnabled(player thePlayer)
```

*Klient*

```lua
bool isPlayerWastedScreenEnabled()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).

#### Zwraca

`true`, jeśli włączony.

#### Przykład

```lua
if not isPlayerWastedScreenEnabled() then
    outputChatBox("Ekran śmierci rysuje serwer.")
end
```

#### Zobacz też

- [`setPlayerWastedScreenEnabled`](https://trilogy-hub.com/docs/setPlayerWastedScreenEnabled/)

### isVoiceEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Sprawdza, czy rozmowa głosowa jest na serwerze włączona.

#### Składnia

```lua
bool isVoiceEnabled()
```

#### Zwraca

`true`, jeśli włączona.

#### Przykład

```lua
outputServerLog("Głos: " .. tostring(isVoiceEnabled()))
```

#### Zobacz też

- [`setVoiceEnabled`](https://trilogy-hub.com/docs/setVoiceEnabled/)

### setPlayerHelpTextsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Tylko Trilogy Hub*

Włącza albo wyłącza podpowiedzi i poradniki z gry (ramka pomocy San Andreas, np. przy pierwszym wyciąganiu kierowcy z auta). Domyślnie są wyłączone. Na serwerze podajesz gracza albo `root` (wszyscy), u klienta zmiana dotyczy tylko tego gracza.

#### Składnia

*Serwer*

```lua
bool setPlayerHelpTextsEnabled(player thePlayer, bool enabled)
```

*Klient*

```lua
bool setPlayerHelpTextsEnabled(bool enabled)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root` (tylko na serwerze).
- `enabled` (bool) - `true` = podpowiedzi widoczne.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Nowi gracze widzą podpowiedzi gry, dopóki nie wpiszą `/bezpodpowiedzi`.

```lua
addEventHandler("onPlayerJoin", root, function()
    setPlayerHelpTextsEnabled(source, true)
end)

addCommandHandler("bezpodpowiedzi", function(player)
    setPlayerHelpTextsEnabled(player, false)
end)
```

#### Zobacz też

- [`isPlayerHelpTextsEnabled`](https://trilogy-hub.com/docs/isPlayerHelpTextsEnabled/)

### setPlayerHudComponentVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Identyczna z MTA:SA*

Pokazuje albo chowa składnik interfejsu gry. Każdy składnik działa osobno: schowanie pieniędzy zostawia zdrowie, pancerz, broń, zegar i resztę HUD na miejscu. `"all"` dotyczy wszystkich naraz (razem z radarem) i kasuje wcześniejsze ustawienia pojedynczych składników. Składniki: `ammo`, `armour` (albo `armor`), `breath`, `clock`, `health`, `money`, `weapon`, `wanted`, `area_name`, `vehicle_name`, `radio`, `radar`, `all`. Ustawienie zostaje po śmierci i odrodzeniu; po ponownym wejściu na serwer ustaw je od nowa (np. w `onPlayerJoin`).

#### Składnia

*Serwer*

```lua
bool setPlayerHudComponentVisible(player thePlayer, string component, bool show)
```

*Klient*

```lua
bool setPlayerHudComponentVisible(string component, bool show)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root` (tylko serwer).
- `component` (string) - Nazwa składnika (zob. `getHudComponentNames`).
- `show` (bool) - `true` pokazuje.

#### Zwraca

`true` przy powodzeniu, `false` dla nieznanego składnika.

#### Przykład

```lua
addEventHandler("onClientResourceStart", resourceRoot, function()
    setPlayerHudComponentVisible("money", false)
    setPlayerHudComponentVisible("area_name", false)
end)
```

```lua
addEventHandler("onPlayerSpawn", root, function()
    setPlayerHudComponentVisible(source, "all", true)
    setPlayerHudComponentVisible(source, "money", false)
    setPlayerHudComponentVisible(source, "wanted", false)
end)
```

#### Zobacz też

- [`isPlayerHudComponentVisible`](https://trilogy-hub.com/docs/isPlayerHudComponentVisible/)
- [`getHudComponentNames`](https://trilogy-hub.com/docs/getHudComponentNames/)
- [`showPlayerHudComponent`](https://trilogy-hub.com/docs/showPlayerHudComponent/)

### setPlayerWastedScreenEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Gracze · Tylko Trilogy Hub*

Włącza ekran WASTED z gry (napis i czerwona zasłona) po śmierci gracza. Domyślnie wyłączony.

#### Składnia

*Serwer*

```lua
bool setPlayerWastedScreenEnabled(player thePlayer, bool enabled)
```

*Klient*

```lua
bool setPlayerWastedScreenEnabled(bool enabled)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root` (tylko serwer).
- `enabled` (bool) - `true` włącza.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setPlayerWastedScreenEnabled(root, true)
```

#### Zobacz też

- [`isPlayerWastedScreenEnabled`](https://trilogy-hub.com/docs/isPlayerWastedScreenEnabled/)

### fadeCamera

*Funkcja · Strona: Serwer i klient · Kategoria: Kamera · Identyczna z MTA:SA*

Ściemnia albo rozjaśnia ekran w podanym kolorze. Przydaje się przy teleportach, wejściu do gry i przerywnikach.

#### Składnia

*Serwer*

```lua
bool fadeCamera(player thePlayer, bool fadeIn [, float timeToFade = 1.0, int r = 0, int g = 0, int b = 0])
```

*Klient*

```lua
bool fadeCamera(bool fadeIn [, float timeToFade = 1.0, int r = 0, int g = 0, int b = 0])
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `fadeIn` (bool) - `true` rozjaśnia, `false` ściemnia.
- `timeToFade` (float, opcjonalny = 1.0) - Czas w sekundach.
- `r` (int, opcjonalny = 0) - Czerwony koloru zasłony.
- `g` (int, opcjonalny = 0) - Zielony.
- `b` (int, opcjonalny = 0) - Niebieski.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Teleport z zaciemnieniem.

```lua
local function fadeTeleport(player, x, y, z)
    fadeCamera(player, false, 0.5)
    setTimer(function()
        setElementPosition(player, x, y, z)
        fadeCamera(player, true, 0.5)
    end, 600, 1)
end
```

### getCameraInterior

*Funkcja · Strona: Serwer i klient · Kategoria: Kamera · Identyczna z MTA:SA*

Zwraca interior, w którym rysowana jest kamera.

#### Składnia

*Serwer*

```lua
int getCameraInterior(player thePlayer)
```

*Klient*

```lua
int getCameraInterior()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).

#### Zwraca

Interior.

#### Przykład

```lua
outputChatBox("Kamera w interiorze " .. getCameraInterior(player), player)
```

#### Zobacz też

- [`setCameraInterior`](https://trilogy-hub.com/docs/setCameraInterior/)

### getCameraMatrix

*Funkcja · Strona: Serwer i klient · Kategoria: Kamera · Identyczna z MTA:SA*

Zwraca pozycję kamery, punkt, na który patrzy, przechylenie i pole widzenia.

#### Składnia

*Serwer*

```lua
float getCameraMatrix(player thePlayer)
```

*Klient*

```lua
float getCameraMatrix()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).

#### Zwraca

x, y, z, lx, ly, lz, roll, fov albo `false`.

#### Przykład

Punkt 10 m przed kamerą gracza.

```lua
local cx, cy, cz, lx, ly, lz = getCameraMatrix()
local dx, dy, dz = lx - cx, ly - cy, lz - cz
local len = math.sqrt(dx * dx + dy * dy + dz * dz)
local tx, ty, tz = cx + dx / len * 10, cy + dy / len * 10, cz + dz / len * 10
```

#### Uwagi

> **Uwaga:** **Serwer zna tylko ustawioną kamerę.** Na serwerze funkcja zwraca macierz ustawioną przez `setCameraMatrix`, a nie bieżące położenie kamery gracza.

#### Zobacz też

- [`setCameraMatrix`](https://trilogy-hub.com/docs/setCameraMatrix/)

### getCameraTarget

*Funkcja · Strona: Serwer i klient · Kategoria: Kamera · Identyczna z MTA:SA*

Zwraca element, za którym podąża kamera, albo `false`, gdy kamera stoi w miejscu.

#### Składnia

*Serwer*

```lua
element getCameraTarget(player thePlayer)
```

*Klient*

```lua
element getCameraTarget()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).

#### Zwraca

Element albo `false`.

#### Przykład

```lua
if getCameraTarget() ~= localPlayer then
    dxDrawText("Tryb obserwatora", 20, 20)
end
```

#### Zobacz też

- [`setCameraTarget`](https://trilogy-hub.com/docs/setCameraTarget/)

### setCameraInterior

*Funkcja · Strona: Serwer i klient · Kategoria: Kamera · Identyczna z MTA:SA*

Ustawia interior kamery, czyli które budynki są rysowane wokół. Używaj razem z `setCameraMatrix` przy podglądzie wnętrz.

#### Składnia

*Serwer*

```lua
bool setCameraInterior(player thePlayer, int interior)
```

*Klient*

```lua
bool setCameraInterior(int interior)
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `interior` (int) - Interior 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setCameraInterior(player, 3)
setCameraMatrix(player, 236, 1110, 1084, 230, 1110, 1083)
```

#### Zobacz też

- [`getCameraInterior`](https://trilogy-hub.com/docs/getCameraInterior/)

### setCameraMatrix

*Funkcja · Strona: Serwer i klient · Kategoria: Kamera · Identyczna z MTA:SA*

Ustawia kamerę w punkcie i kieruje ją na cel. Kamera przestaje podążać za graczem do czasu `setCameraTarget`.

#### Składnia

*Serwer*

```lua
bool setCameraMatrix(player thePlayer, float positionX, float positionY, float positionZ [, float lookAtX, float lookAtY, float lookAtZ, float roll = 0, float fov = 70])
```

*Klient*

```lua
bool setCameraMatrix(float positionX, float positionY, float positionZ [, float lookAtX, float lookAtY, float lookAtZ, float roll = 0, float fov = 70])
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `positionX` (float) - Pozycja kamery X.
- `positionY` (float) - Pozycja kamery Y.
- `positionZ` (float) - Pozycja kamery Z.
- `lookAtX` (float, opcjonalny = 0) - Cel X.
- `lookAtY` (float, opcjonalny = 0) - Cel Y.
- `lookAtZ` (float, opcjonalny = 0) - Cel Z.
- `roll` (float, opcjonalny = 0) - Przechylenie.
- `fov` (float, opcjonalny = 70) - Pole widzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Widok na miasto przy logowaniu.

```lua
addEventHandler("onPlayerJoin", root, function()
    setCameraMatrix(source, 1468, -919, 100, 1468, -800, 60)
    fadeCamera(source, true, 2)
end)

addEventHandler("onPlayerLogin", root, function()
    spawnPlayer(source, 2495, -1687, 13.5)
    setCameraTarget(source, source)
end)
```

#### Zobacz też

- [`setCameraTarget`](https://trilogy-hub.com/docs/setCameraTarget/)
- [`getCameraMatrix`](https://trilogy-hub.com/docs/getCameraMatrix/)

### setCameraTarget

*Funkcja · Strona: Serwer i klient · Kategoria: Kamera · Identyczna z MTA:SA*

Ustawia kamerę za graczem albo każe jej śledzić inny element (np. przy obserwowaniu).

#### Składnia

*Serwer*

```lua
bool setCameraTarget(player thePlayer [, element target = thePlayer])
```

*Klient*

```lua
bool setCameraTarget(element target)
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `target` (element, opcjonalny = gracz) - Element do śledzenia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("spec", function(player, cmd, name)
    local target = name and getPlayerFromName(name)
    setCameraTarget(player, target or player)
end)
```

#### Zobacz też

- [`getCameraTarget`](https://trilogy-hub.com/docs/getCameraTarget/)

### getAngleDifference

*Funkcja · Strona: Serwer i klient · Kategoria: Matematyka, wektory i macierze · Tylko Trilogy Hub*

Zwraca najkrótszą różnicę między dwoma kątami w stopniach, w zakresie od -180 do 180. Dodatnia, gdy trzeba obrócić się w prawo (zgodnie z rosnącym kątem).

#### Składnia

```lua
float getAngleDifference(float a, float b)
```

#### Argumenty

- `a` (float) - Kąt początkowy.
- `b` (float) - Kąt docelowy.

#### Zwraca

Różnica od -180 do 180.

#### Przykład

```lua
print(getAngleDifference(350, 10))  -- 20
print(getAngleDifference(10, 350))  -- -20
```

#### Zobacz też

- [`interpolateAngle`](https://trilogy-hub.com/docs/interpolateAngle/)

### getDirectionFromRotation

*Funkcja · Strona: Serwer i klient · Kategoria: Matematyka, wektory i macierze · Tylko Trilogy Hub*

Zamienia kierunek (heading, jak obrót Z w GTA) i pochylenie w stopniach na wektor kierunku o długości 1.

#### Składnia

```lua
vector3 getDirectionFromRotation(float heading [, float pitch = 0])
```

#### Argumenty

- `heading` (float) - Kierunek w stopniach.
- `pitch` (float, opcjonalny = 0) - Pochylenie w stopniach (dodatnie w górę).

#### Zwraca

Wektor kierunku.

#### Przykład

Punkt 10 metrów przed graczem.

```lua
local player = getRandomPlayer()
local x, y, z = getElementPosition(player)
local _, _, rz = getElementRotation(player)
local dir = getDirectionFromRotation(rz, 0)
local tx, ty, tz = x + dir.x * 10, y + dir.y * 10, z + dir.z * 10
createMarker(tx, ty, tz, "cylinder", 1.5, 255, 200, 0, 150)
```

#### Zobacz też

- [`getPointFromDistanceRotation`](https://trilogy-hub.com/docs/getPointFromDistanceRotation/)

### getPointFromDistanceRotation

*Funkcja · Strona: Serwer i klient · Kategoria: Matematyka, wektory i macierze · Tylko Trilogy Hub*

Zwraca punkt oddalony od `(x, y)` o podaną odległość w podanym kierunku. Kąty jak w GTA: 0 to północ, rosną przeciwnie do ruchu wskazówek zegara.

#### Składnia

```lua
float, float getPointFromDistanceRotation(float x, float y, float distance, float angle)
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `distance` (float) - Odległość.
- `angle` (float) - Kierunek w stopniach.

#### Zwraca

Nowe X i Y albo `false`.

#### Przykład

Stawia pojazd 5 metrów przed graczem.

```lua
addCommandHandler("auto", function(player)
    local x, y, z = getElementPosition(player)
    local _, _, rz = getElementRotation(player)
    local vx, vy = getPointFromDistanceRotation(x, y, 5, rz)
    createVehicle(411, vx, vy, z, 0, 0, rz)
end)
```

### interpolateAngle

*Funkcja · Strona: Serwer i klient · Kategoria: Matematyka, wektory i macierze · Tylko Trilogy Hub*

Wyznacza kąt pośredni między dwoma kątami, idąc krótszą drogą. Wynik jest w zakresie 0-360.

#### Składnia

```lua
float interpolateAngle(float from, float to, float progress)
```

#### Argumenty

- `from` (float) - Kąt początkowy.
- `to` (float) - Kąt docelowy.
- `progress` (float) - Postęp od 0 do 1.

#### Zwraca

Kąt pośredni.

#### Przykład

Płynne obracanie obiektu w stronę celu.

```lua
local obj = createObject(1337, 0, 0, 3)
local target = 270
setTimer(function()
    local _, _, rz = getElementRotation(obj)
    setElementRotation(obj, 0, 0, interpolateAngle(rz, target, 0.2))
end, 50, 0)
```

#### Zobacz też

- [`getAngleDifference`](https://trilogy-hub.com/docs/getAngleDifference/)

### isMatrix

*Funkcja · Strona: Serwer i klient · Kategoria: Matematyka, wektory i macierze · Tylko Trilogy Hub*

Sprawdza, czy wartość jest macierzą (obiektem `Matrix`).

#### Składnia

```lua
bool isMatrix(mixed value)
```

#### Argumenty

- `value` (mixed) - Wartość.

#### Zwraca

`true` dla macierzy.

#### Przykład

```lua
local m = getElementMatrix(getRandomPlayer())
print(isMatrix(m))
```

#### Zobacz też

- [`isVector`](https://trilogy-hub.com/docs/isVector/)

### isVector

*Funkcja · Strona: Serwer i klient · Kategoria: Matematyka, wektory i macierze · Tylko Trilogy Hub*

Sprawdza, czy wartość jest wektorem (`Vector2`, `Vector3` albo `Vector4`).

#### Składnia

```lua
bool isVector(mixed value)
```

#### Argumenty

- `value` (mixed) - Wartość.

#### Zwraca

`true` dla wektora.

#### Przykład

```lua
print(isVector(getDirectionFromRotation(90)))  -- true
print(isVector({ 1, 2, 3 }))       -- false
```

### math.clamp

*Funkcja · Strona: Serwer i klient · Kategoria: Matematyka, wektory i macierze · Tylko Trilogy Hub*

Obcina liczbę do zakresu od `lo` do `hi`.

#### Składnia

```lua
math.clamp(value, lo, hi)
```

#### Argumenty

- `value` (float) - Liczba.
- `lo` (float) - Dolna granica.
- `hi` (float) - Górna granica.

#### Zwraca

Liczba w zakresie.

#### Przykład

```lua
addCommandHandler("hp", function(player, cmd, amount)
    setElementHealth(player, math.clamp(tonumber(amount) or 100, 1, 100))
end)
```

### formatDuration

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Tylko Trilogy Hub*

Zamienia liczbę sekund na czytelny zapis: `"45s"`, `"3m 05s"`, `"1h 02m 05s"`. Ułamki są obcinane, ujemne dają `"0s"`.

#### Składnia

```lua
string formatDuration(float seconds)
```

#### Argumenty

- `seconds` (float) - Liczba sekund.

#### Zwraca

Zapis czasu.

#### Przykład

```lua
outputChatBox("Kara wiezienia: " .. formatDuration(725))
```

#### Zobacz też

- [`formatNumber`](https://trilogy-hub.com/docs/formatNumber/)
- [`getServerUptime`](https://trilogy-hub.com/docs/getServerUptime/)

### formatNumber

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Tylko Trilogy Hub*

Zapisuje liczbę całkowitą z separatorem co trzy cyfry (domyślnie spacja): 1500000 → `"1 500 000"`. Ułamki są obcinane.

#### Składnia

```lua
string formatNumber(int value [, string separator = " "])
```

#### Argumenty

- `value` (int) - Liczba.
- `separator` (string, opcjonalny = " ") - Znak separatora (np. `","` albo `"."`).

#### Zwraca

Sformatowana liczba.

#### Przykład

```lua
addCommandHandler("kasa", function(player)
    outputChatBox("Masz $" .. formatNumber(getPlayerMoney(player), ","), player)
end)
```

#### Zobacz też

- [`formatDuration`](https://trilogy-hub.com/docs/formatDuration/)

### fromcolor

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Tylko Trilogy Hub*

Rozkłada kolor w postaci jednej liczby (np. z `tocolor`) na składowe r, g, b, a - odwrotność `tocolor`.

#### Składnia

```lua
int, int, int, int fromcolor(int color)
```

#### Argumenty

- `color` (int) - Kolor ARGB.

#### Zwraca

r, g, b, a.

#### Przykład

```lua
local r, g, b, a = fromcolor(tocolor(255, 128, 0, 200))
```

#### Zobacz też

- [`tocolor`](https://trilogy-hub.com/docs/tocolor/)

### getDevelopmentMode

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca, czy tryb deweloperski jest włączony (`setDevelopmentMode`).

#### Składnia

```lua
bool getDevelopmentMode()
```

#### Zwraca

`true`, gdy włączony.

#### Przykład

```lua
if getDevelopmentMode() then
    addCommandHandler("tp", function(player, _, x, y, z) setElementPosition(player, x, y, z) end)
end
```

#### Zobacz też

- [`setDevelopmentMode`](https://trilogy-hub.com/docs/setDevelopmentMode/)

### getTickCountSeconds

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Tylko Trilogy Hub*

Zwraca `getTickCount()` w sekundach, z ułamkiem - wygodniejsze przy liczeniu prędkości i animacji.

#### Składnia

```lua
float getTickCountSeconds()
```

#### Zwraca

Czas w sekundach.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local pulse = math.abs(math.sin(getTickCountSeconds() * 2))
    dxDrawText("REC", 20, 20, 0, 0, tocolor(255, 0, 0, 255 * pulse), 2)
end)
```

#### Zobacz też

- [`getTickCount`](https://trilogy-hub.com/docs/getTickCount/)

### isTransferBoxVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca, czy okienko postępu pobierania jest włączone.

#### Składnia

```lua
bool isTransferBoxVisible()
```

#### Zwraca

`true`, gdy włączone.

#### Przykład

```lua
outputDebugString(tostring(isTransferBoxVisible()))
```

#### Zobacz też

- [`setTransferBoxVisible`](https://trilogy-hub.com/docs/setTransferBoxVisible/)

### setDevelopmentMode

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Identyczna z MTA:SA*

Włącza tryb deweloperski. Na kliencie drugi argument odblokowuje narzędzia deweloperskie stron w przeglądarkach skryptów. Na serwerze zapisuje flagę odczytywaną przez `getDevelopmentMode` (np. do włączania komend testowych).

#### Składnia

```lua
bool setDevelopmentMode(bool enable [, bool enableWeb = false])
```

#### Argumenty

- `enable` (bool) - `true` = tryb deweloperski.
- `enableWeb` (bool, opcjonalny = false) - Klient: narzędzia deweloperskie przeglądarek.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setDevelopmentMode(true)
```

#### Zobacz też

- [`getDevelopmentMode`](https://trilogy-hub.com/docs/getDevelopmentMode/)

### setTransferBoxVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Identyczna z MTA:SA*

Pokazuje albo chowa okienko postępu pobierania plików zasobów (pasek u góry ekranu). Na serwerze ustawienie dotyczy wszystkich graczy, na kliencie - tylko tego gracza.

#### Składnia

```lua
bool setTransferBoxVisible(bool visible)
```

#### Argumenty

- `visible` (bool) - `true` = widoczne.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setTransferBoxVisible(false)
```

#### Zobacz też

- [`isTransferBoxVisible`](https://trilogy-hub.com/docs/isTransferBoxVisible/)

### utfChar

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca znak o podanym kodzie Unicode, np. `utfChar(261)` → `"ą"`.

#### Składnia

```lua
string utfChar(int characterCode)
```

#### Argumenty

- `characterCode` (int) - Kod znaku.

#### Zwraca

Znak albo `false`.

#### Przykład

```lua
outputServerLog(utfChar(9733) .. " VIP")
```

#### Zobacz też

- [`utfCode`](https://trilogy-hub.com/docs/utfCode/)

### utfCode

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca kod Unicode pierwszego znaku tekstu, np. `utfCode("ą")` → 261.

#### Składnia

```lua
int utfCode(string theString)
```

#### Argumenty

- `theString` (string) - Tekst.

#### Zwraca

Kod znaku albo `false`.

#### Przykład

```lua
outputServerLog(utfCode("Ż"))
```

#### Zobacz też

- [`utfChar`](https://trilogy-hub.com/docs/utfChar/)

### utfLen

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Identyczna z MTA:SA*

Zwraca długość tekstu w znakach (a nie bajtach). Ważne dla polskich liter: `#"żółw"` to 7 bajtów, a `utfLen("żółw")` to 4.

#### Składnia

```lua
int utfLen(string input)
```

#### Argumenty

- `input` (string) - Tekst.

#### Zwraca

Liczba znaków albo `false` dla błędnego UTF-8.

#### Przykład

```lua
addEventHandler("onPlayerChat", root, function(message)
    if utfLen(message) > 120 then cancelEvent() outputChatBox("Za dluga wiadomosc", source) end
end)
```

#### Zobacz też

- [`utfSub`](https://trilogy-hub.com/docs/utfSub/)
- [`utfChar`](https://trilogy-hub.com/docs/utfChar/)

### utfSeek

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Zmodyfikowana względem MTA:SA*

Zwraca pozycję bajtową w tekście przesuniętą o podaną liczbę znaków od pozycji startowej - przydaje się, gdy trzeba łączyć funkcje UTF z `string.find`.

#### Składnia

```lua
int utfSeek(string theString, int position [, int offset = 0])
```

#### Argumenty

- `theString` (string) - Tekst.
- `position` (int) - Pozycja bajtowa startu (od 1).
- `offset` (int, opcjonalny = 0) - O ile znaków przesunąć.

#### Zwraca

Pozycja bajtowa albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `utfSeek(string theString, int position)`

#### Przykład

```lua
local text = "żółta łódź"
local bytePos = utfSeek(text, 1, 6)
outputServerLog(text:sub(bytePos))
```

#### Zobacz też

- [`utfSub`](https://trilogy-hub.com/docs/utfSub/)

### utfSub

*Funkcja · Strona: Serwer i klient · Kategoria: Narzędzia · Identyczna z MTA:SA*

Wycina fragment tekstu według pozycji w znakach (od 1, oba końce włącznie). Ujemne pozycje liczą od końca. Nie psuje polskich liter, w przeciwieństwie do `string.sub`.

#### Składnia

```lua
string utfSub(string theString [, int start = 1, int end = koniec])
```

#### Argumenty

- `theString` (string) - Tekst.
- `start` (int, opcjonalny = 1) - Pierwszy znak.
- `end` (int, opcjonalny = koniec) - Ostatni znak.

#### Zwraca

Fragment tekstu.

#### Przykład

```lua
local nick = "Żaneta_Kowalska"
outputServerLog(utfSub(nick, 1, 6))
```

#### Zobacz też

- [`utfLen`](https://trilogy-hub.com/docs/utfLen/)

### createObject

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Identyczna z MTA:SA*

Tworzy obiekt z modelu gry San Andreas (np. 1337 kosz, 3095 rampa, 1225 beczka wybuchowa) albo modelu podmienionego przez `engineReplaceModel`. Obiekt widzą wszyscy gracze w tym samym wnętrzu i wymiarze; stoi w miejscu i ma kolizję. Z `isBreakable = true` gra traktuje go jak zniszczalny i można go rozbić.

#### Składnia

```lua
object createObject(int modelid, float x, float y, float z [, float rx = 0, float ry = 0, float rz = 0, bool isBreakable = false])
```

#### Argumenty

- `modelid` (int) - Numer modelu obiektu.
- `x` (float) - X.
- `y` (float) - Y.
- `z` (float) - Z.
- `rx` (float, opcjonalny = 0) - Obrót wokół osi X (stopnie).
- `ry` (float, opcjonalny = 0) - Obrót wokół osi Y.
- `rz` (float, opcjonalny = 0) - Obrót wokół osi Z (kierunek).
- `isBreakable` (bool, opcjonalny = false) - `true` = obiekt zniszczalny.

#### Zwraca

Nowy obiekt albo `false`.

#### Przykład

```lua
local ramp = createObject(1634, 2495, -1660, 13.5, 0, 0, 90)
local barrel = createObject(1225, 2500, -1660, 13.5, 0, 0, 0, true)
```

#### Zobacz też

- [`moveObject`](https://trilogy-hub.com/docs/moveObject/)
- [`setObjectScale`](https://trilogy-hub.com/docs/setObjectScale/)
- [`destroyElement`](https://trilogy-hub.com/docs/destroyElement/)
- [`setElementPosition`](https://trilogy-hub.com/docs/setElementPosition/)

### getMapObjects

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Tylko Trilogy Hub*

Zwraca obiekty mapy San Andreas (hydranty, beczki, kartony, latarnie…), które gracze przesunęli albo uszkodzili. Na serwerze każdy wpis ma klucz wspólny dla wszystkich graczy, model, położenie, obrót (kwaternion), zdrowie, informację o rozbiciu i gracza, który ostatnio nim ruszał. Na kliencie zwraca obiekty mapy wczytane w tej grze z polem `moved`.

#### Składnia

```lua
table getMapObjects()
```

#### Zwraca

Serwer: `{ {key, model, x, y, z, qx, qy, qz, qw, health, broken, owner}, ... }`; klient: `{ {key, model, x, y, z, health, moved}, ... }`.

#### Przykład

```lua
addCommandHandler("balagan", function(player)
    local list = getMapObjects()
    outputChatBox("Przesunietych obiektow mapy: " .. #list, player)
end)
```

#### Zobacz też

- [`resetMapObjects`](https://trilogy-hub.com/docs/resetMapObjects/)
- [`setMapObjectSyncEnabled`](https://trilogy-hub.com/docs/setMapObjectSyncEnabled/)

### getObjectScale

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Identyczna z MTA:SA*

Zwraca skalę obiektu w trzech osiach (domyślnie 1, 1, 1).

#### Składnia

```lua
float, float, float getObjectScale(object theObject)
```

#### Argumenty

- `theObject` (object) - Obiekt.

#### Zwraca

sx, sy, sz.

#### Przykład

```lua
local obj = createObject(1337, 0, 0, 3)
local sx = getObjectScale(obj)
```

#### Zobacz też

- [`setObjectScale`](https://trilogy-hub.com/docs/setObjectScale/)

### isMapObjectSyncEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Tylko Trilogy Hub*

Zwraca, czy synchronizacja obiektów mapy jest włączona.

#### Składnia

```lua
bool isMapObjectSyncEnabled()
```

#### Zwraca

`true`, gdy włączona.

#### Przykład

```lua
outputDebugString(tostring(isMapObjectSyncEnabled()))
```

#### Zobacz też

- [`setMapObjectSyncEnabled`](https://trilogy-hub.com/docs/setMapObjectSyncEnabled/)

### isObjectBreakable

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Identyczna z MTA:SA*

Zwraca, czy obiekt można rozbić (`breakObject`). Domyślnie `true`, chyba że zmieniono to przez `setObjectBreakable`.

#### Składnia

```lua
bool isObjectBreakable(object theObject)
```

#### Argumenty

- `theObject` (object) - Obiekt.

#### Zwraca

`true`, gdy zniszczalny.

#### Przykład

```lua
local obj = createObject(1649, 0, 0, 3)
outputDebugString(tostring(isObjectBreakable(obj)))
```

#### Zobacz też

- [`setObjectBreakable`](https://trilogy-hub.com/docs/setObjectBreakable/)

### isObjectMoving

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Identyczna z MTA:SA*

Sprawdza, czy obiekt jest właśnie przesuwany przez `moveObject`.

#### Składnia

```lua
bool isObjectMoving(object theObject)
```

#### Argumenty

- `theObject` (object) - Obiekt.

#### Zwraca

`true` w trakcie ruchu.

#### Przykład

```lua
local gate = createObject(980, 0, 0, 3)
addCommandHandler("brama", function()
    if isObjectMoving(gate) then return end
    moveObject(gate, 2000, 0, 0, -3)
end)
```

#### Zobacz też

- [`moveObject`](https://trilogy-hub.com/docs/moveObject/)

### moveObject

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Zmodyfikowana względem MTA:SA*

Płynnie przesuwa obiekt do nowego miejsca w podanym czasie, opcjonalnie obracając go o podane kąty (względnie do obecnego obrotu) i z wybranym wygładzaniem ruchu. Ruch widzą wszyscy gracze; po zakończeniu obiekt zostaje w nowym miejscu. Służy do bram, wind, platform. Wygładzanie: `"Linear"`, `"InQuad"`, `"OutQuad"`, `"InOutQuad"`, `"OutInQuad"`, `"SineCurve"`, `"CosineCurve"`.

#### Składnia

```lua
bool moveObject(object theObject, int time, float targetx, float targety, float targetz [, float moverx = 0, float movery = 0, float moverz = 0, string strEasingType = "Linear"])
```

#### Argumenty

- `theObject` (object) - Obiekt.
- `time` (int) - Czas ruchu w ms (co najmniej 50).
- `targetx` (float) - Docelowe X.
- `targety` (float) - Docelowe Y.
- `targetz` (float) - Docelowe Z.
- `moverx` (float, opcjonalny = 0) - Obrót o tyle stopni wokół X.
- `movery` (float, opcjonalny = 0) - Obrót wokół Y.
- `moverz` (float, opcjonalny = 0) - Obrót wokół Z.
- `strEasingType` (string, opcjonalny = "Linear") - Rodzaj wygładzania.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `float fEasingPeriod`, `float fEasingAmplitude`, `float fEasingOvershoot`
- W MTA:SA: `moveObject(object theObject, int time, float targetx, float targety, float targetz, float moverx, float movery, float moverz, string strEasingType, float fEasingPeriod, float fEasingAmplitude, float fEasingOvershoot)`

#### Przykład

```lua
local gate = createObject(980, 2500, -1700, 15)
local open = false
addCommandHandler("brama", function()
    open = not open
    moveObject(gate, 3000, 2500, -1700, open and 9 or 15, 0, 0, 0, "InOutQuad")
end)
```

#### Zobacz też

- [`stopObject`](https://trilogy-hub.com/docs/stopObject/)
- [`isObjectMoving`](https://trilogy-hub.com/docs/isObjectMoving/)

### setObjectBreakable

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Identyczna z MTA:SA*

Ustawia, czy obiekt można rozbić przez `breakObject`.

#### Składnia

```lua
bool setObjectBreakable(object theObject, bool breakable)
```

#### Argumenty

- `theObject` (object) - Obiekt.
- `breakable` (bool) - `false` = nie do rozbicia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local glass = createObject(1649, 0, 0, 3, 0, 0, 0, true)
setObjectBreakable(glass, false)
```

#### Uwagi

> **Uwaga:** **Stan dla skryptów.** Steruje `breakObject`; fizyczne zachowanie obiektu w grze wyznacza `isBreakable` z `createObject`.

#### Zobacz też

- [`isObjectBreakable`](https://trilogy-hub.com/docs/isObjectBreakable/)
- [`breakObject`](https://trilogy-hub.com/docs/breakObject/)

### setObjectScale

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Identyczna z MTA:SA*

Zmienia wielkość obiektu (1 = normalna, 2 = dwa razy większy). Gra stosuje jedną skalę dla wszystkich osi - liczy się pierwsza liczba.

#### Składnia

```lua
bool setObjectScale(object theObject, float scale [, float scaleY = scale, float scaleZ = scale])
```

#### Argumenty

- `theObject` (object) - Obiekt.
- `scale` (float) - Skala.
- `scaleY` (float, opcjonalny = scale) - Skala Y (zgodność ze starszymi skryptami).
- `scaleZ` (float, opcjonalny = scale) - Skala Z (zgodność ze starszymi skryptami).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local giantBin = createObject(1337, 2495, -1660, 13)
setObjectScale(giantBin, 4)
```

#### Zobacz też

- [`getObjectScale`](https://trilogy-hub.com/docs/getObjectScale/)

### stopObject

*Funkcja · Strona: Serwer i klient · Kategoria: Obiekty · Identyczna z MTA:SA*

Zatrzymuje ruch rozpoczęty przez `moveObject`; obiekt zostaje tam, gdzie akurat był.

#### Składnia

```lua
bool stopObject(object theobject)
```

#### Argumenty

- `theobject` (object) - Obiekt.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local lift = createObject(3095, 0, 0, 3)
moveObject(lift, 10000, 0, 0, 30)
setTimer(function() stopObject(lift) end, 4000, 1)
```

#### Zobacz też

- [`moveObject`](https://trilogy-hub.com/docs/moveObject/)

### createFire

*Funkcja · Strona: Serwer i klient · Kategoria: Ogień · Zmodyfikowana względem MTA:SA*

Rozpala ogień. Na serwerze ogień widzą wszyscy gracze, także ci, którzy wejdą później, a funkcja zwraca numer ognia. Na kliencie ogień pali się tylko w tej jednej grze.

#### Składnia

*Serwer*

```lua
createFire(x, y, z [, size = 2, duration = 0, dimension = 0])
```

*Klient*

```lua
createFire(x, y, z [, size = 1.8])
```

#### Argumenty

- `x` (float) - Pozycja X.
- `y` (float) - Pozycja Y.
- `z` (float) - Pozycja Z.
- `size` (float, opcjonalny = 2) - Wielkość od 1 do 5 (na kliencie domyślnie 1.8).
- `duration` (int, opcjonalny = 0) - Tylko serwer: czas palenia w ms, 0 = do ugaszenia.
- `dimension` (int, opcjonalny = 0) - Tylko serwer: wymiar.

#### Zwraca

Serwer: numer ognia albo `false` (np. po przekroczeniu limitu ogni). Klient: `true` albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `createFire(float x, float y, float z, float size = 1.8)`

#### Przykład

Ognisko na 30 sekund w miejscu gracza.

```lua
addCommandHandler("ognisko", function(player)
    local x, y, z = getElementPosition(player)
    local id = createFire(x + 2, y, z - 0.5, 2, 30000)
    if id then
        outputChatBox("Rozpalono ogień nr " .. id, player)
    end
end)
```

#### Zobacz też

- [`extinguishFire`](https://trilogy-hub.com/docs/extinguishFire/)
- [`isFireBurning`](https://trilogy-hub.com/docs/isFireBurning/)
- [`onFireCreate`](https://trilogy-hub.com/docs/onFireCreate/)

### extinguishFire

*Funkcja · Strona: Serwer i klient · Kategoria: Ogień · Zmodyfikowana względem MTA:SA*

Gasi ogień. Na serwerze gasi u wszystkich: po numerze ognia, wszystkie w promieniu od punktu albo wszystkie naraz (bez argumentów). Na kliencie gasi tylko ognie rozpalone lokalnie.

#### Składnia

*Numer ognia (serwer)*

```lua
extinguishFire(fireId)
```

*Promień*

```lua
extinguishFire(x, y, z [, radius])
```

*Wszystkie*

```lua
extinguishFire()
```

#### Argumenty

- `x` (float, opcjonalny) - Pozycja X albo numer ognia.
- `y` (float, opcjonalny) - Pozycja Y.
- `z` (float, opcjonalny) - Pozycja Z.
- `radius` (float, opcjonalny = 5) - Promień (na kliencie domyślnie 1).

#### Zwraca

`true`, jeśli coś ugaszono.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `extinguishFire(float x = nil, float y = nil, float z = nil, float radius = 1.0)`

#### Przykład

```lua
addCommandHandler("gas", function(player)
    local x, y, z = getElementPosition(player)
    if not extinguishFire(x, y, z, 10) then
        outputChatBox("W pobliżu nic się nie pali.", player)
    end
end)
```

### bitAnd

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Iloczyn bitowy (AND) dwóch lub więcej liczb. Liczby są traktowane jako 32-bitowe bez znaku.

#### Składnia

```lua
int bitAnd(int a, int b)
```

#### Argumenty

- `a` (int) - Pierwsza liczba.
- `b` (int) - Druga liczba (można podać więcej).

#### Zwraca

Wynik.

#### Przykład

Flagi zapisane w jednej liczbie.

```lua
local FLAG_VIP, FLAG_ADMIN, FLAG_MUTED = 1, 2, 4
local flags = bitOr(FLAG_VIP, FLAG_MUTED)
if bitAnd(flags, FLAG_MUTED) ~= 0 then
    outputServerLog("Gracz jest wyciszony")
end
```

#### Zobacz też

- [`bitOr`](https://trilogy-hub.com/docs/bitOr/)
- [`bitTest`](https://trilogy-hub.com/docs/bitTest/)

### bitArShift

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Przesunięcie arytmetyczne w prawo: zachowuje najstarszy bit (znak liczby 32-bitowej).

#### Składnia

```lua
int bitArShift(int value, int count)
```

#### Argumenty

- `value` (int) - Liczba.
- `count` (int) - O ile miejsc.

#### Zwraca

Wynik jako 32 bity bez znaku.

#### Przykład

```lua
print(string.format("%08X", bitArShift(0x80000000, 4)))  -- F8000000
```

### bitExtract

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Wycina `count` bitów zaczynając od pozycji `start` (0 to najmłodszy bit). Pozycja i długość muszą mieścić się w 32 bitach.

#### Składnia

```lua
int bitExtract(int value, int start [, int count = 1])
```

#### Argumenty

- `value` (int) - Liczba.
- `start` (int) - Pozycja pierwszego bitu.
- `count` (int, opcjonalny = 1) - Liczba bitów.

#### Zwraca

Wycięte bity albo `false`.

#### Przykład

```lua
local packed = 0x00ABCDEF
print(string.format("%X", bitExtract(packed, 8, 8)))  -- CD
```

#### Zobacz też

- [`bitReplace`](https://trilogy-hub.com/docs/bitReplace/)

### bitLRotate

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Obraca bity w lewo: bity wychodzące z lewej wracają z prawej strony.

#### Składnia

```lua
int bitLRotate(int value, int count)
```

#### Argumenty

- `value` (int) - Liczba.
- `count` (int) - O ile miejsc.

#### Zwraca

Wynik.

#### Przykład

```lua
print(string.format("%08X", bitLRotate(0x80000001, 1)))  -- 00000003
```

### bitLShift

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Przesuwa bity w lewo o podaną liczbę miejsc. Bity wychodzące poza 32 znikają.

#### Składnia

```lua
int bitLShift(int value, int count)
```

#### Argumenty

- `value` (int) - Liczba.
- `count` (int) - O ile miejsc.

#### Zwraca

Wynik.

#### Przykład

```lua
print(bitLShift(1, 4))  -- 16
```

### bitNot

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Negacja bitowa (NOT) liczby 32-bitowej.

#### Składnia

```lua
int bitNot(int a)
```

#### Argumenty

- `a` (int) - Liczba.

#### Zwraca

Wynik.

#### Przykład

```lua
print(bitNot(0))                -- 4294967295
print(bitAnd(13, bitNot(4)))    -- 9: usuwa bit 4 / clears bit 4
```

### bitOr

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Suma bitowa (OR) dwóch lub więcej liczb.

#### Składnia

```lua
int bitOr(int a, int b)
```

#### Argumenty

- `a` (int) - Pierwsza liczba.
- `b` (int) - Druga liczba (można podać więcej).

#### Zwraca

Wynik.

#### Przykład

```lua
print(bitOr(1, 4, 8))  -- 13
```

### bitReplace

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Wstawia wartość `replace` w `count` bitów od pozycji `start`, zostawiając pozostałe bity bez zmian.

#### Składnia

```lua
int bitReplace(int value, int replace, int start [, int count = 1])
```

#### Argumenty

- `value` (int) - Liczba.
- `replace` (int) - Wstawiana wartość.
- `start` (int) - Pozycja pierwszego bitu.
- `count` (int, opcjonalny = 1) - Liczba bitów.

#### Zwraca

Wynik albo `false`.

#### Przykład

Pakowanie trzech liczb w jedną.

```lua
local packed = 0
packed = bitReplace(packed, 12, 0, 8)   -- poziom / level
packed = bitReplace(packed, 3, 8, 4)    -- ranga / rank
packed = bitReplace(packed, 1, 12, 1)   -- vip
print(bitExtract(packed, 8, 4))         -- 3
```

### bitRRotate

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Obraca bity w prawo: bity wychodzące z prawej wracają z lewej strony.

#### Składnia

```lua
int bitRRotate(int value, int count)
```

#### Argumenty

- `value` (int) - Liczba.
- `count` (int) - O ile miejsc.

#### Zwraca

Wynik.

#### Przykład

```lua
print(string.format("%08X", bitRRotate(3, 1)))  -- 80000001
```

### bitRShift

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Przesunięcie logiczne w prawo (bez znaku): z lewej wchodzą zera.

#### Składnia

```lua
int bitRShift(int value, int count)
```

#### Argumenty

- `value` (int) - Liczba.
- `count` (int) - O ile miejsc.

#### Zwraca

Wynik.

#### Przykład

Rozbicie koloru `0xAARRGGBB` na składowe.

```lua
local color = tocolor(255, 128, 0, 200)
local a = bitAnd(bitRShift(color, 24), 0xFF)
local r = bitAnd(bitRShift(color, 16), 0xFF)
local g = bitAnd(bitRShift(color, 8), 0xFF)
local b = bitAnd(color, 0xFF)
print(r, g, b, a)
```

#### Zobacz też

- [`bitArShift`](https://trilogy-hub.com/docs/bitArShift/)

### bitTest

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Sprawdza, czy iloczyn bitowy wszystkich argumentów jest różny od zera, czyli czy mają wspólny ustawiony bit.

#### Składnia

```lua
bool bitTest(int value, int ...)
```

#### Argumenty

- `value` (int) - Liczba.
- `...` (int) - Kolejne liczby (maski).

#### Zwraca

`true`, jeśli wynik nie jest zerem.

#### Przykład

```lua
local FLAG_ADMIN = 2
local flags = 3
if bitTest(flags, FLAG_ADMIN) then
    outputServerLog("Ma flagę admina")
end
```

### bitXor

*Funkcja · Strona: Serwer i klient · Kategoria: Operacje na bitach · Identyczna z MTA:SA*

Różnica symetryczna (XOR) dwóch lub więcej liczb. Przydaje się do przełączania flag.

#### Składnia

```lua
int bitXor(int a, int b)
```

#### Argumenty

- `a` (int) - Pierwsza liczba.
- `b` (int) - Druga liczba (można podać więcej).

#### Zwraca

Wynik.

#### Przykład

```lua
local flags = 5
flags = bitXor(flags, 4)  -- wyłącza bit 4 / clears bit 4
print(flags)              -- 1
```

### createPickup

*Funkcja · Strona: Serwer i klient · Kategoria: Pickupy · Identyczna z MTA:SA*

Tworzy pickup, czyli obracający się przedmiot do zebrania: apteczkę, kamizelkę, broń albo dowolny model (np. ikonę wejścia do budynku). Gracz zbiera go wchodząc w niego; serwer wywołuje wtedy `onPickupHit` (`cancelEvent()` w nim blokuje zebranie), a pickup chowa się na czas `respawnInterval` i wraca. Znaczenie `amount` zależy od typu: zdrowie lub pancerz do dodania, numer broni albo numer modelu.

#### Składnia

```lua
pickup createPickup(float x, float y, float z, int theType [, int amount = 0, int respawnInterval = 30000, int ammo = 0])
```

#### Argumenty

- `x` (float) - X miejsca.
- `y` (float) - Y miejsca.
- `z` (float) - Z miejsca.
- `theType` (int) - 0 = zdrowie, 1 = pancerz, 2 = broń, 3 = własny model.
- `amount` (int, opcjonalny = 0) - Typ 0/1: ile punktów dodać; typ 2: numer broni; typ 3: numer modelu (np. 1239 = ikona „i”, 1273 = domek).
- `respawnInterval` (int, opcjonalny = 30000) - Czas powrotu po zebraniu w ms.
- `ammo` (int, opcjonalny = 0) - Typ 2: liczba naboi.

#### Zwraca

Nowy pickup albo `false` przy złych argumentach.

#### Przykład

```lua
local health = createPickup(2495, -1660, 13.5, 0, 100, 60000)
local deagle = createPickup(2500, -1660, 13.5, 2, 24, 30000, 50)
local entrance = createPickup(2510, -1660, 13.5, 3, 1239, 0)

addEventHandler("onPickupHit", entrance, function(player)
    outputChatBox("Wpisz /wejdz, aby wejsc do budynku", player)
    cancelEvent()
end)
```

#### Zobacz też

- [`setPickupType`](https://trilogy-hub.com/docs/setPickupType/)
- [`getPickupType`](https://trilogy-hub.com/docs/getPickupType/)
- [`usePickup`](https://trilogy-hub.com/docs/usePickup/)
- [`onPickupHit`](https://trilogy-hub.com/docs/onPickupHit/)

### getPickupAmmo

*Funkcja · Strona: Serwer i klient · Kategoria: Pickupy · Identyczna z MTA:SA*

Zwraca liczbę naboi w pickupie z bronią.

#### Składnia

```lua
int getPickupAmmo(pickup thePickup)
```

#### Argumenty

- `thePickup` (pickup) - Pickup.

#### Zwraca

Liczba naboi (0 dla innych typów).

#### Przykład

```lua
local pickup = createPickup(0, 0, 3, 2, 31, 30000, 200)
outputDebugString("Naboje: " .. getPickupAmmo(pickup))
```

#### Zobacz też

- [`setPickupAmmo`](https://trilogy-hub.com/docs/setPickupAmmo/)
- [`getPickupWeapon`](https://trilogy-hub.com/docs/getPickupWeapon/)

### getPickupAmount

*Funkcja · Strona: Serwer i klient · Kategoria: Pickupy · Identyczna z MTA:SA*

Zwraca liczbę punktów zdrowia albo pancerza, które daje pickup typu 0 lub 1.

#### Składnia

```lua
int getPickupAmount(pickup thePickup)
```

#### Argumenty

- `thePickup` (pickup) - Pickup.

#### Zwraca

Liczba punktów albo `false`.

#### Przykład

```lua
local pickup = createPickup(0, 0, 3, 1, 50)
outputDebugString("Pancerz: " .. getPickupAmount(pickup))
```

#### Zobacz też

- [`createPickup`](https://trilogy-hub.com/docs/createPickup/)

### getPickupType

*Funkcja · Strona: Serwer i klient · Kategoria: Pickupy · Identyczna z MTA:SA*

Zwraca typ pickupu: 0 zdrowie, 1 pancerz, 2 broń, 3 własny model.

#### Składnia

```lua
int getPickupType(pickup thePickup)
```

#### Argumenty

- `thePickup` (pickup) - Pickup.

#### Zwraca

Typ 0-3 albo `false`.

#### Przykład

```lua
addEventHandler("onPickupHit", root, function(player)
    if getPickupType(source) == 2 then
        outputChatBox("Bron: " .. getWeaponNameFromID(getPickupWeapon(source)), player)
    end
end)
```

#### Zobacz też

- [`createPickup`](https://trilogy-hub.com/docs/createPickup/)
- [`setPickupType`](https://trilogy-hub.com/docs/setPickupType/)

### getPickupWeapon

*Funkcja · Strona: Serwer i klient · Kategoria: Pickupy · Identyczna z MTA:SA*

Zwraca numer broni pickupu typu 2.

#### Składnia

```lua
int getPickupWeapon(pickup thePickup)
```

#### Argumenty

- `thePickup` (pickup) - Pickup.

#### Zwraca

Numer broni albo `false`.

#### Przykład

```lua
local pickup = createPickup(0, 0, 3, 2, 31, 30000, 200)
outputDebugString(getWeaponNameFromID(getPickupWeapon(pickup)))
```

#### Zobacz też

- [`getPickupAmmo`](https://trilogy-hub.com/docs/getPickupAmmo/)
- [`createPickup`](https://trilogy-hub.com/docs/createPickup/)

### fileClose

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Zamyka plik i zapisuje bufor na dysk. Uchwyt przestaje być ważny.

#### Składnia

```lua
bool fileClose(file theFile)
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local file = fileCreate("test.txt")
fileWrite(file, "abc")
fileClose(file)
```

#### Zobacz też

- [`fileOpen`](https://trilogy-hub.com/docs/fileOpen/)
- [`fileFlush`](https://trilogy-hub.com/docs/fileFlush/)

### fileCopy

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Kopiuje plik pod nową ścieżkę. Istniejący plik docelowy zostanie nadpisany tylko z `overwrite = true`.

#### Składnia

```lua
bool fileCopy(string filePath, string copyToFilePath [, bool overwrite = false])
```

#### Argumenty

- `filePath` (string) - Plik źródłowy.
- `copyToFilePath` (string) - Ścieżka kopii.
- `overwrite` (bool, opcjonalny = false) - `true` = nadpisz istniejący.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
fileCopy("accounts.json", "backup/accounts.json", true)
```

#### Zobacz też

- [`fileRename`](https://trilogy-hub.com/docs/fileRename/)

### fileCreate

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Tworzy nowy plik albo czyści istniejący i otwiera go do zapisu. Na kliencie pliki trafiają do prywatnego folderu danego serwera na komputerze gracza (limit 64 MB na plik i 256 MB na serwer).

#### Składnia

```lua
file fileCreate(string filePath)
```

#### Argumenty

- `filePath` (string) - Ścieżka pliku.

#### Zwraca

Uchwyt pliku albo `false`.

#### Przykład

```lua
local file = fileCreate("settings.json")
if file then
    fileWrite(file, toJSON({ volume = 0.5, hud = true }))
    fileClose(file)
end
```

#### Zobacz też

- [`fileOpen`](https://trilogy-hub.com/docs/fileOpen/)
- [`fileWrite`](https://trilogy-hub.com/docs/fileWrite/)
- [`fileClose`](https://trilogy-hub.com/docs/fileClose/)

### fileDelete

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Usuwa plik. Plik nie może być w tym czasie otwarty.

#### Składnia

```lua
bool fileDelete(string filePath)
```

#### Argumenty

- `filePath` (string) - Ścieżka pliku.

#### Zwraca

`true`, gdy usunięto.

#### Przykład

```lua
if fileExists("temp.txt") then fileDelete("temp.txt") end
```

#### Zobacz też

- [`fileExists`](https://trilogy-hub.com/docs/fileExists/)
- [`fileRename`](https://trilogy-hub.com/docs/fileRename/)

### fileExists

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Sprawdza, czy plik o tej ścieżce istnieje.

#### Składnia

```lua
bool fileExists(string filePath)
```

#### Argumenty

- `filePath` (string) - Ścieżka pliku.

#### Zwraca

`true`, gdy istnieje.

#### Przykład

```lua
local file = fileExists("data.json") and fileOpen("data.json") or fileCreate("data.json")
fileClose(file)
```

#### Zobacz też

- [`fileOpen`](https://trilogy-hub.com/docs/fileOpen/)
- [`fileCreate`](https://trilogy-hub.com/docs/fileCreate/)

### fileFlush

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Zapisuje na dysk dane czekające w buforze pliku, bez zamykania go. Przydaje się przy logach, które mają przetrwać awarię.

#### Składnia

```lua
bool fileFlush(file theFile)
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local log = fileCreate("events.log")
addEventHandler("onPlayerJoin", root, function()
    fileWrite(log, getPlayerName(source) .. " wszedl\n")
    fileFlush(log)
end)
```

#### Zobacz też

- [`fileClose`](https://trilogy-hub.com/docs/fileClose/)

### fileGetContents

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Czyta cały plik jednym wywołaniem. Przyjmuje uchwyt pliku albo ścieżkę (wtedy sama otwiera i zamyka plik).

#### Składnia

```lua
string fileGetContents(file/string fileOrPath [, bool verifyContents = true])
```

#### Argumenty

- `fileOrPath` (file/string) - Uchwyt albo ścieżka.
- `verifyContents` (bool, opcjonalny = true) - Dla zgodności ze starszymi skryptami.

#### Zwraca

Treść pliku albo `false`.

#### Przykład

```lua
local json = fileGetContents("config.json")
local config = json and fromJSON(json) or {}
```

#### Zobacz też

- [`fileOpen`](https://trilogy-hub.com/docs/fileOpen/)
- [`fileRead`](https://trilogy-hub.com/docs/fileRead/)

### fileGetPath

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Zwraca ścieżkę otwartego pliku (taką, jak przy otwieraniu).

#### Składnia

```lua
string fileGetPath(file theFile)
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.

#### Zwraca

Ścieżka albo `false`.

#### Przykład

```lua
local file = fileCreate("out/report.txt")
outputDebugString(fileGetPath(file))
fileClose(file)
```

#### Zobacz też

- [`fileOpen`](https://trilogy-hub.com/docs/fileOpen/)

### fileGetPos

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Zwraca bieżącą pozycję w pliku (w bajtach od początku).

#### Składnia

```lua
int fileGetPos(file theFile)
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.

#### Zwraca

Pozycja albo `false`.

#### Przykład

```lua
local file = fileOpen("data.txt", true)
fileRead(file, 10)
outputDebugString(fileGetPos(file))
fileClose(file)
```

#### Zobacz też

- [`fileSetPos`](https://trilogy-hub.com/docs/fileSetPos/)

### fileGetSize

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Zwraca rozmiar pliku w bajtach.

#### Składnia

```lua
int fileGetSize(file theFile)
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.

#### Zwraca

Rozmiar albo `false`.

#### Przykład

```lua
local file = fileOpen("map.xml", true)
outputDebugString(fileGetSize(file) .. " bajtow")
fileClose(file)
```

#### Zobacz też

- [`fileGetPos`](https://trilogy-hub.com/docs/fileGetPos/)

### fileIsEOF

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Sprawdza, czy pozycja w pliku doszła do końca.

#### Składnia

```lua
bool fileIsEOF(file theFile)
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.

#### Zwraca

`true` na końcu pliku.

#### Przykład

```lua
local file = fileOpen("lines.txt", true)
local text = ""
while not fileIsEOF(file) do text = text .. fileRead(file, 1024) end
fileClose(file)
```

#### Zobacz też

- [`fileRead`](https://trilogy-hub.com/docs/fileRead/)

### fileOpen

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Otwiera istniejący plik do czytania i zapisu (albo tylko do czytania). Na serwerze ścieżka jest względna wobec folderu zasobu i nie może z niego wyjść. Na kliencie najpierw szuka własnych plików skryptu (zapisanych przez `fileCreate`), potem plików `<file>` przysłanych przez serwer - te są tylko do czytania; `":inny/plik"` wskazuje plik innego zasobu. Po pracy zamknij plik przez `fileClose`.

#### Składnia

```lua
file fileOpen(string filePath [, bool readOnly = false])
```

#### Argumenty

- `filePath` (string) - Ścieżka pliku.
- `readOnly` (bool, opcjonalny = false) - `true` = tylko czytanie.

#### Zwraca

Uchwyt pliku albo `false`, gdy pliku nie ma.

#### Przykład

```lua
local file = fileOpen("log.txt")
if file then
    fileSetPos(file, fileGetSize(file))
    fileWrite(file, os.date("[%H:%M] ") .. "Start zasobu\n")
    fileClose(file)
end
```

#### Zobacz też

- [`fileCreate`](https://trilogy-hub.com/docs/fileCreate/)
- [`fileRead`](https://trilogy-hub.com/docs/fileRead/)
- [`fileWrite`](https://trilogy-hub.com/docs/fileWrite/)
- [`fileClose`](https://trilogy-hub.com/docs/fileClose/)
- [`fileGetContents`](https://trilogy-hub.com/docs/fileGetContents/)

### fileRead

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Czyta podaną liczbę bajtów od bieżącej pozycji i przesuwa pozycję. Na końcu pliku zwraca pusty tekst. Dane binarne są zwracane bez zmian.

#### Składnia

```lua
string fileRead(file theFile, int count)
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.
- `count` (int) - Liczba bajtów.

#### Zwraca

Odczytane dane albo `false`.

#### Przykład

```lua
local file = fileOpen("data.bin", true)
if file then
    while not fileIsEOF(file) do
        local chunk = fileRead(file, 500)
        outputDebugString(#chunk .. " bajtow")
    end
    fileClose(file)
end
```

#### Zobacz też

- [`fileWrite`](https://trilogy-hub.com/docs/fileWrite/)
- [`fileGetContents`](https://trilogy-hub.com/docs/fileGetContents/)
- [`fileIsEOF`](https://trilogy-hub.com/docs/fileIsEOF/)

### fileRename

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Zmienia nazwę pliku albo przenosi go w obrębie folderu zasobu.

#### Składnia

```lua
bool fileRename(string filePath, string newFilePath)
```

#### Argumenty

- `filePath` (string) - Obecna ścieżka.
- `newFilePath` (string) - Nowa ścieżka.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
fileRename("log.txt", "logs/log_" .. os.date("%Y%m%d") .. ".txt")
```

#### Zobacz też

- [`fileCopy`](https://trilogy-hub.com/docs/fileCopy/)
- [`fileDelete`](https://trilogy-hub.com/docs/fileDelete/)

### fileSetPos

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Ustawia pozycję w pliku, od której będzie następny odczyt lub zapis (np. `fileGetSize` = dopisywanie na końcu).

#### Składnia

```lua
int fileSetPos(file theFile, int offset)
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.
- `offset` (int) - Pozycja w bajtach od początku.

#### Zwraca

Nowa pozycja albo `false`.

#### Przykład

```lua
local file = fileOpen("log.txt")
fileSetPos(file, fileGetSize(file))
fileWrite(file, "kolejna linia\n")
fileClose(file)
```

#### Zobacz też

- [`fileGetPos`](https://trilogy-hub.com/docs/fileGetPos/)
- [`fileGetSize`](https://trilogy-hub.com/docs/fileGetSize/)

### fileWrite

*Funkcja · Strona: Serwer i klient · Kategoria: Pliki · Identyczna z MTA:SA*

Zapisuje teksty od bieżącej pozycji (kolejne argumenty jeden po drugim) i przesuwa pozycję. Obsługuje dane binarne.

#### Składnia

```lua
int fileWrite(file theFile, string string1 [, string ...])
```

#### Argumenty

- `theFile` (file) - Uchwyt pliku.
- `string1` (string) - Pierwszy tekst.
- `...` (string, opcjonalny) - Kolejne teksty.

#### Zwraca

Liczba zapisanych bajtów albo `false` (np. plik tylko do czytania).

#### Przykład

```lua
local file = fileCreate("scores.csv")
fileWrite(file, "gracz;punkty\n", "Jan;150\n", "Ola;210\n")
fileClose(file)
```

#### Zobacz też

- [`fileRead`](https://trilogy-hub.com/docs/fileRead/)
- [`fileFlush`](https://trilogy-hub.com/docs/fileFlush/)

### addVehicleUpgrade

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Montuje w pojeździe część tuningu (spoiler, felgi, wydech, nitro, hydraulika, zderzaki…), widoczną i działającą u wszystkich graczy. Część musi pasować do modelu (listę daje `getVehicleCompatibleUpgrades`). Jeśli w tym samym slocie była już część, zostaje zastąpiona; ta sama część zamontowana drugi raz nic nie zmienia. Działają też nowe części dodane przez `engineRequestModel`.

#### Składnia

```lua
bool addVehicleUpgrade(vehicle vehicle, int upgrade)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `upgrade` (int) - ID części 1000-1193 (np. 1010 = nitro x10, 1080 = felgi Switch, 1087 = hydraulika) albo nowe ID z `engineRequestModel`.

#### Zwraca

`true`, gdy część zamontowano; `false` gdy nie pasuje do modelu albo ID jest złe.

#### Przykład

```lua
addCommandHandler("tuning", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    for _, part in ipairs({ 1010, 1080, 1087 }) do
        addVehicleUpgrade(vehicle, part)
    end
end)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta część tylko u tego gracza (inni jej nie widzą); trwały tuning - na serwerze.

#### Zobacz też

- [`removeVehicleUpgrade`](https://trilogy-hub.com/docs/removeVehicleUpgrade/)
- [`getVehicleUpgrades`](https://trilogy-hub.com/docs/getVehicleUpgrades/)
- [`getVehicleCompatibleUpgrades`](https://trilogy-hub.com/docs/getVehicleCompatibleUpgrades/)
- [`getVehicleUpgradeOnSlot`](https://trilogy-hub.com/docs/getVehicleUpgradeOnSlot/)

### areVehicleLightsOn

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy reflektory pojazdu świecą, czyli czy ustawiono `setVehicleOverrideLights(pojazd, 2)`. Działa po obu stronach.

#### Składnia

```lua
bool areVehicleLightsOn(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy światła świecą.

#### Przykład

```lua
local vehicle = getPedOccupiedVehicle(localPlayer)
if vehicle and not areVehicleLightsOn(vehicle) then
    outputChatBox("Wlacz swiatla, robi sie ciemno.")
end
```

#### Zobacz też

- [`setVehicleOverrideLights`](https://trilogy-hub.com/docs/setVehicleOverrideLights/)

### calculateEngineHandling

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Liczy, jakie pola handlingu dałby dany silnik w danym modelu, bez montowania go. Zwraca to samo, co `setVehicleEngine` wpisałby do pojazdu, więc nadaje się do podglądu w sklepie z silnikami.

#### Składnia

```lua
table calculateEngineHandling(int model, table spec [, float wear = 0, float extraMass = 0])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `spec` (table) - Tabela silnika jak w `setVehicleEngine`.
- `wear` (float, opcjonalny = 0) - Zużycie 0..1.
- `extraMass` (float, opcjonalny = 0) - Dodatkowa masa pojazdu w kg (np. ładunek).

#### Zwraca

Pola `mass`, `turnMass`, `maxVelocity`, `engineAcceleration`, `engineInertia`, `engineType`, `numberOfGears`, `tractionMultiplier`.

#### Przykład

```lua
local h = calculateEngineHandling(411, { power = 400 }, 0, 150)
outputDebugString("Vmax po swapie: " .. h.maxVelocity)
```

#### Zobacz też

- [`setVehicleEngine`](https://trilogy-hub.com/docs/setVehicleEngine/)
- [`getVehiclePerformance`](https://trilogy-hub.com/docs/getVehiclePerformance/)

### createVehicle

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Tworzy pojazd w świecie: model, pozycja, obrót i tekst tablicy rejestracyjnej.

#### Składnia

```lua
vehicle createVehicle(int model, float x, float y, float z [, float rx = 0, float ry = 0, float rz = 0, string plate, bool direction, int variant1, int variant2])
```

#### Argumenty

- `model` (int) - Numer modelu pojazdu z San Andreas, od `400` do `611`. Na przykład `411` to Infernus, `536` to Blade.
- `x, y, z` (float) - Pozycja w świecie.
- `rx, ry, rz` (float, opcjonalny = 0) - Obrót w stopniach. Zwykle wystarczy `rz`, czyli kierunek, w którym stoi auto.
- `plate` (string, opcjonalny) - Tekst tablicy rejestracyjnej. Bez niego gra losuje tablicę.
- `direction` (bool, opcjonalny) - Przyjmowany dla zgodności ze starszymi skryptami.
- `variant1, variant2` (int, opcjonalny) - Wariant nadwozia dla modeli, które je mają.

#### Zwraca

Utworzony pojazd albo `false`, gdy model albo pozycja są złe.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool synced = true`
- W MTA:SA: `createVehicle(int model, float x, float y, float z, float rx, float ry, float rz, string numberplate, bool bDirection, int variant1, int variant2, bool synced = true)`

#### Przykład

Komenda `/auto` stawia Infernusa obok gracza i od razu go do niego wsadza.

```lua
addCommandHandler("auto", function(gracz, _, model)
    local x, y, z = getElementPosition(gracz)
    local auto = createVehicle(tonumber(model) or 411, x + 3, y, z, 0, 0, 0, "GROVE 4L")
    if not auto then
        outputChatBox("Nie ma takiego modelu.", gracz, 255, 80, 80)
        return
    end
    warpPedIntoVehicle(gracz, auto)
end)
```

#### Uwagi

> **Uwaga:** **Kolory w RGB.** Kolor nadwozia ustawisz przez `setVehicleColor(auto, r1, g1, b1, r2, g2, b2)` pełnymi wartościami RGB, nie tylko numerami z palety gry.

> **Ostrzeżenie:** **Pojazd należy do zasobu.** Po `stop` albo `restart` zasobu wszystkie jego pojazdy znikają. Jeśli auta mają zostać, zapisz ich stan i utwórz je ponownie przy starcie.

#### Zobacz też

- [`getElementPosition`](https://trilogy-hub.com/docs/getElementPosition/)
- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)
- [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/)

### fixVehicle

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Naprawia pojazd do stanu fabrycznego: zdrowie 1000, wszystkie drzwi, panele karoserii, lampy i koła wracają do stanu nieuszkodzonego, a wrak przestaje być wrakiem. Anuluje też zaplanowane odrodzenie wraku. Przez sekundę po naprawie serwer ignoruje zgłoszenia uszkodzeń od gry, żeby stare uszkodzenia nie wróciły. Kolor, tuning i tablica zostają bez zmian.

#### Składnia

```lua
bool fixVehicle(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd do naprawy.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("napraw", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        fixVehicle(vehicle)
        outputChatBox("Pojazd naprawiony.", player, 0, 200, 0)
    end
end)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta naprawia pojazd w tej grze; pojazd, którym kieruje ten gracz, przekazuje stan dalej synchronizacją, więc inni też widzą naprawę.

#### Zobacz też

- [`blowVehicle`](https://trilogy-hub.com/docs/blowVehicle/)
- [`setElementHealth`](https://trilogy-hub.com/docs/setElementHealth/)
- [`setVehicleDoorState`](https://trilogy-hub.com/docs/setVehicleDoorState/)

### getHandlingLineName

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca nazwę wpisu w handling.cfg, z którego korzysta model, np. 411 → `INFERNUS`, 596 → `POLICE_LA`. Nowe modele z `engineRequestModel` korzystają z wpisu modelu bazowego.

#### Składnia

```lua
string getHandlingLineName(int model)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.

#### Zwraca

Nazwa wpisu albo `false`.

#### Przykład

```lua
outputDebugString(getHandlingLineName(411))
```

#### Zobacz też

- [`getOriginalHandling`](https://trilogy-hub.com/docs/getOriginalHandling/)

### getModelCompatibleUpgrades

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Jak `getVehicleCompatibleUpgrades`, ale dla numeru modelu, bez potrzeby tworzenia pojazdu. Przydaje się w sklepie, który pokazuje części przed zakupem auta.

#### Składnia

```lua
table getModelCompatibleUpgrades(int model [, int slot = nil])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `slot` (int, opcjonalny = nil) - Numer slotu 0-16.

#### Zwraca

Tablica ID części.

#### Przykład

```lua
local parts = getModelCompatibleUpgrades(562)
outputDebugString("Elegy ma " .. #parts .. " czesci tuningu")
```

#### Zobacz też

- [`getVehicleCompatibleUpgrades`](https://trilogy-hub.com/docs/getVehicleCompatibleUpgrades/)
- [`setModelCompatibleUpgrades`](https://trilogy-hub.com/docs/setModelCompatibleUpgrades/)

### getModelDefaultSeatPosition

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca fabryczne miejsce fotela z gry dla modelu (dla nowych modeli - modelu bazowego), bez zmian skryptów.

#### Składnia

```lua
float, float, float, float getModelDefaultSeatPosition(int model, int seat)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `seat` (int) - Fotel 0-7.

#### Zwraca

x, y, z, heading albo `false`, gdy model nie ma takiego fotela.

#### Przykład

```lua
local x, y, z = getModelDefaultSeatPosition(400, 1)
```

#### Zobacz też

- [`getModelSeatPosition`](https://trilogy-hub.com/docs/getModelSeatPosition/)

### getModelSeatPosition

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca aktualne miejsce fotela dla modelu oraz źródło tych danych: `script` (ustawione skryptem), `dummy` (z punktu pomocniczego modelu) albo `default` (fabryczne z gry).

#### Składnia

```lua
float, float, float, float, string getModelSeatPosition(int model, int seat)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `seat` (int) - Fotel 0-7.

#### Zwraca

x, y, z (metry, układ pojazdu), heading (stopnie), źródło; `false`, gdy nieznane.

#### Przykład

```lua
local x, y, z, heading, source = getModelSeatPosition(411, 0)
if x then outputDebugString(("Kierowca: %.2f %.2f %.2f (%s)"):format(x, y, z, source)) end
```

#### Zobacz też

- [`setModelSeatPosition`](https://trilogy-hub.com/docs/setModelSeatPosition/)
- [`getModelDefaultSeatPosition`](https://trilogy-hub.com/docs/getModelDefaultSeatPosition/)
- [`resetModelSeatPosition`](https://trilogy-hub.com/docs/resetModelSeatPosition/)

### getNearestVehiclePaletteColor

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Znajduje w palecie pojazdów gry (0-127) kolor najbardziej podobny do podanej barwy RGB. Przydaje się, gdy gracz wybiera kolor z dowolnego próbnika, a skrypt chce zapisać go jako numer palety.

#### Składnia

```lua
int getNearestVehiclePaletteColor(int r, int g, int b)
```

#### Argumenty

- `r` (int) - Czerwony 0-255.
- `g` (int) - Zielony 0-255.
- `b` (int) - Niebieski 0-255.

#### Zwraca

Numer koloru 0-127.

#### Przykład

```lua
local id = getNearestVehiclePaletteColor(200, 30, 30)
outputDebugString("Najblizszy kolor palety: " .. id)
```

#### Zobacz też

- [`getVehiclePaletteColor`](https://trilogy-hub.com/docs/getVehiclePaletteColor/)
- [`setVehicleColorId`](https://trilogy-hub.com/docs/setVehicleColorId/)

### getOriginalHandling

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Zmodyfikowana względem MTA:SA*

Zwraca fabryczny handling modelu prosto z plików gry (handling.cfg Definitive Edition), bez żadnych zmian skryptów. Działa po obu stronach.

#### Składnia

```lua
table/any getOriginalHandling(int model [, string property = nil])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `property` (string, opcjonalny = nil) - Nazwa jednego pola; bez niej cała tabela.

#### Zwraca

Tabela pól, wartość pola albo `false` dla nieznanego modelu lub pola.

#### Różnice względem MTA:SA

- W MTA:SA: `getOriginalHandling(int modelID)`

#### Przykład

```lua
local factory = getOriginalHandling(411)
outputDebugString("Infernus: masa " .. factory.mass .. ", Vmax " .. factory.maxVelocity)
```

#### Zobacz też

- [`getVehicleHandling`](https://trilogy-hub.com/docs/getVehicleHandling/)
- [`getHandlingLineName`](https://trilogy-hub.com/docs/getHandlingLineName/)

### getVehicleColor

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca kolory pojazdu. Bez drugiego argumentu daje cztery numery z palety gry (gdy auto ma kolory RGB, numery są najbliższymi kolorami palety). Z `rgb = true` zwraca dwanaście liczb: r, g, b kolejno dla kolorów 1-4, dokładnie takie, jakie widać w grze.

#### Składnia

```lua
int... getVehicleColor(vehicle vehicle [, bool rgb = false])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `rgb` (bool, opcjonalny = false) - `true` = zwróć wartości RGB zamiast numerów palety.

#### Zwraca

4 numery palety albo 12 składowych RGB.

#### Przykład

```lua
addCommandHandler("kolor", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    local r, g, b = getVehicleColor(vehicle, true)
    outputChatBox(("Lakier: %d, %d, %d"):format(r, g, b), player, r, g, b)
end)
```

#### Zobacz też

- [`setVehicleColor`](https://trilogy-hub.com/docs/setVehicleColor/)
- [`getVehicleColorId`](https://trilogy-hub.com/docs/getVehicleColorId/)

### getVehicleCompatibleUpgrades

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca części tuningu, które pasują do tego pojazdu, według danych gry (lista carmods oraz felgi dla zwykłych samochodów). Można zawęzić wynik do jednego slotu. Idealne do budowy menu warsztatu.

#### Składnia

```lua
table getVehicleCompatibleUpgrades(vehicle vehicle [, int slot = nil])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `slot` (int, opcjonalny = nil) - Numer slotu 0-16; bez niego wszystkie pasujące części.

#### Zwraca

Tablica ID części.

#### Przykład

```lua
addCommandHandler("felgi", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    local wheels = getVehicleCompatibleUpgrades(vehicle, 12)
    if #wheels > 0 then addVehicleUpgrade(vehicle, wheels[math.random(#wheels)]) end
end)
```

#### Zobacz też

- [`getModelCompatibleUpgrades`](https://trilogy-hub.com/docs/getModelCompatibleUpgrades/)
- [`addVehicleUpgrade`](https://trilogy-hub.com/docs/addVehicleUpgrade/)

### getVehicleComponents

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca części modelu pojazdu jako tabelę nazwa → czy widoczna. Na kliencie dla modelu z pliku (`engineReplaceModel`) to pełna lista ramek .dff (karoseria, drzwi, maska, zderzaki, koła `wheel_*_dummy`, warianty autora), dla aut z gry tylko części zmienione skryptem. Na serwerze tylko części zmienione skryptem.

#### Składnia

```lua
table getVehicleComponents(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tabela `{ [nazwa] = bool }`.

#### Przykład

```lua
addCommandHandler("czesci", function()
    local vehicle = getPedOccupiedVehicle(localPlayer)
    if not vehicle then return end
    for name, visible in pairs(getVehicleComponents(vehicle)) do
        outputChatBox(name .. (visible and "" or " (ukryta)"))
    end
end)
```

#### Zobacz też

- [`setVehicleComponentVisible`](https://trilogy-hub.com/docs/setVehicleComponentVisible/)

### getVehicleComponentVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy nazwana część modelu pojazdu jest widoczna. Na kliencie uwzględnia też lokalne ustawienia tego gracza.

#### Składnia

```lua
bool getVehicleComponentVisible(vehicle vehicle, string component)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części.

#### Zwraca

`true`, gdy widoczna (też dla części, której nikt nie zmieniał).

#### Przykład

```lua
local vehicle = getPedOccupiedVehicle(localPlayer)
if vehicle and not getVehicleComponentVisible(vehicle, "bonnet_dummy") then
    outputChatBox("Maska jest schowana.")
end
```

#### Zobacz też

- [`setVehicleComponentVisible`](https://trilogy-hub.com/docs/setVehicleComponentVisible/)
- [`resetVehicleComponentVisible`](https://trilogy-hub.com/docs/resetVehicleComponentVisible/)

### getVehicleController

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca kierowcę pojazdu (osobę na fotelu 0) albo `false`, gdy nikt nie prowadzi.

#### Składnia

```lua
player getVehicleController(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Kierowca (gracz albo postać) albo `false`.

#### Przykład

```lua
addEventHandler("onVehicleDamage", root, function(loss)
    local driver = getVehicleController(source)
    if driver and getElementType(driver) == "player" and loss > 100 then
        outputChatBox("Mocne uderzenie!", driver, 255, 120, 0)
    end
end)
```

#### Zobacz też

- [`getVehicleOccupant`](https://trilogy-hub.com/docs/getVehicleOccupant/)

### getVehicleCurrentGear

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Na serwerze: numer biegu zapisany przez `setVehicleCurrentGear` (domyślnie 0). W kliencie: aktualny bieg auta liczony jak skrzynia SA z prędkości i handlingu (0 = wsteczny/luz, 1-5).

#### Składnia

```lua
int getVehicleCurrentGear(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Bieg.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(getVehicleCurrentGear(vehicle))
```

#### Zobacz też

- [`setVehicleCurrentGear`](https://trilogy-hub.com/docs/setVehicleCurrentGear/)

### getVehicleDirtLevel

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca zabrudzenie karoserii pojazdu (0 czysta - 1 brudna).

#### Składnia

```lua
float getVehicleDirtLevel(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Wartość 0.0-1.0.

#### Przykład

```lua
addCommandHandler("brud", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        outputChatBox(("Brud: %d%%"):format(getVehicleDirtLevel(vehicle) * 100), player)
    end
end)
```

#### Zobacz też

- [`setVehicleDirtLevel`](https://trilogy-hub.com/docs/setVehicleDirtLevel/)

### getVehicleDoorOpenRatio

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca stopień otwarcia drzwi ustawiony przez `setVehicleDoorOpenRatio` (0 = zamknięte, 1 = otwarte).

#### Składnia

```lua
float getVehicleDoorOpenRatio(vehicle vehicle, int door)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `door` (int) - Numer drzwi 0-5.

#### Zwraca

Wartość 0.0-1.0.

#### Przykład

```lua
local vehicle = createVehicle(400, 2000, -1700, 13.5)
setVehicleDoorOpenRatio(vehicle, 1, 1)
outputDebugString("Bagaznik: " .. getVehicleDoorOpenRatio(vehicle, 1))
```

#### Zobacz też

- [`setVehicleDoorOpenRatio`](https://trilogy-hub.com/docs/setVehicleDoorOpenRatio/)

### getVehicleDoorState

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca stan jednych drzwi pojazdu (0 zamknięte, 1 uchylone, 2 zamknięte i uszkodzone, 3 uchylone i uszkodzone, 4 urwane). Numeracja drzwi jak w `setVehicleDoorState`.

#### Składnia

```lua
int getVehicleDoorState(vehicle vehicle, int door)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `door` (int) - Numer drzwi 0-5.

#### Zwraca

Stan 0-4.

#### Przykład

```lua
addCommandHandler("drzwi", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    for door = 0, 5 do
        outputChatBox("Drzwi " .. door .. ": " .. getVehicleDoorState(vehicle, door), player)
    end
end)
```

#### Zobacz też

- [`setVehicleDoorState`](https://trilogy-hub.com/docs/setVehicleDoorState/)

### getVehicleEngine

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca silnik pojazdu: zamontowany przez `setVehicleEngine` albo, gdy żadnego nie montowano, silnik fabryczny wyliczony z danych gry (z polem `factory = true`). Druga wartość to zużycie 0..1. Działa po obu stronach.

#### Składnia

```lua
table, float getVehicleEngine(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tabela silnika (pola jak w `setVehicleEngine`) i zużycie.

#### Przykład

```lua
addCommandHandler("silnikinfo", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    local engine, wear = getVehicleEngine(vehicle)
    outputChatBox(("%s kW, %s Nm, zuzycie %d%%"):format(engine.power, engine.torque, wear * 100), player)
end)
```

#### Zobacz też

- [`setVehicleEngine`](https://trilogy-hub.com/docs/setVehicleEngine/)
- [`getVehicleFactoryEngine`](https://trilogy-hub.com/docs/getVehicleFactoryEngine/)

### getVehicleEngineState

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy silnik pojazdu pracuje (ustawione przez `setVehicleEngineState`; zniszczenie pojazdu też gasi silnik).

#### Składnia

```lua
bool getVehicleEngineState(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy silnik pracuje.

#### Przykład

```lua
addEventHandler("onVehicleEnter", root, function(player, seat)
    if seat == 0 and not getVehicleEngineState(source) then
        outputChatBox("Wpisz /silnik, aby zapalic.", player)
    end
end)
```

#### Zobacz też

- [`setVehicleEngineState`](https://trilogy-hub.com/docs/setVehicleEngineState/)

### getVehicleFactoryEngine

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca silnik fabryczny modelu. Moc jest wyliczana z handlingu gry, a pozostałe dane (moment, pojemność, cylindry, masa) są realistycznym oszacowaniem, oznaczonym polem `estimated = true`. Daje punkt odniesienia dla systemów tuningu.

#### Składnia

```lua
table getVehicleFactoryEngine(int model)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.

#### Zwraca

Tabela: `power`, `torque`, `displacement`, `cylinders`, `fuel`, `mass`, `gears`, `estimated`, `factory`; `false` dla nieznanego modelu.

#### Przykład

```lua
local engine = getVehicleFactoryEngine(411)
outputDebugString(("Infernus: %s kW, %s l, %d cyl."):format(engine.power, engine.displacement, engine.cylinders))
```

#### Zobacz też

- [`getVehicleEngine`](https://trilogy-hub.com/docs/getVehicleEngine/)
- [`setVehicleEngine`](https://trilogy-hub.com/docs/setVehicleEngine/)

### getVehicleHandling

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca pełny handling pojazdu taki, jakiego używa gra: wartości fabryczne z handling.cfg, nadpisane ustawieniami modelu (`setModelHandling`), a na końcu zmianami tego pojazdu (`setVehicleHandling`, `setVehicleEngine`). Działa po obu stronach.

#### Składnia

```lua
table/any getVehicleHandling(vehicle vehicle [, string property = nil])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `property` (string, opcjonalny = nil) - Nazwa jednego pola; bez niej cała tabela.

#### Zwraca

Tabela wszystkich pól albo wartość jednego pola (`false`, gdy pole nie istnieje).

#### Przykład

```lua
addCommandHandler("vmax", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        outputChatBox("Vmax: " .. getVehicleHandling(vehicle, "maxVelocity") .. " km/h", player)
    end
end)
```

#### Zobacz też

- [`setVehicleHandling`](https://trilogy-hub.com/docs/setVehicleHandling/)
- [`getVehicleHandlingOverrides`](https://trilogy-hub.com/docs/getVehicleHandlingOverrides/)
- [`getOriginalHandling`](https://trilogy-hub.com/docs/getOriginalHandling/)

### getVehicleHandlingOverrides

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca tylko te pola handlingu, które zmieniono dla tego konkretnego pojazdu (`setVehicleHandling` i `setVehicleEngine`), bez wartości fabrycznych. Przydaje się do zapisania tuningu auta w bazie danych.

#### Składnia

```lua
table getVehicleHandlingOverrides(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tabela `{ pole = wartość }` (pusta, gdy nic nie zmieniono).

#### Przykład

```lua
addEventHandler("onVehicleExit", root, function()
    setElementData(source, "zapisanyHandling", toJSON(getVehicleHandlingOverrides(source)), false)
end)
```

#### Zobacz też

- [`getVehicleHandling`](https://trilogy-hub.com/docs/getVehicleHandling/)
- [`setVehicleHandling`](https://trilogy-hub.com/docs/setVehicleHandling/)

### getVehicleHeadLightColor

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca kolor światła reflektorów (domyślnie biały 255, 255, 255).

#### Składnia

```lua
int, int, int getVehicleHeadLightColor(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

r, g, b.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
local r, g, b = getVehicleHeadLightColor(vehicle)
outputDebugString(r .. ", " .. g .. ", " .. b)
```

#### Zobacz też

- [`setVehicleHeadLightColor`](https://trilogy-hub.com/docs/setVehicleHeadLightColor/)

### getVehicleHealthFloor

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca próg zdrowia pojazdu ustawiony przez setVehicleHealthFloor (0 = brak progu).

#### Składnia

```lua
number getVehicleHealthFloor(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Próg zdrowia.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString("Prog: " .. getVehicleHealthFloor(vehicle))
```

#### Zobacz też

- [`setVehicleHealthFloor`](https://trilogy-hub.com/docs/setVehicleHealthFloor/)

### getVehicleIndicators

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca stan kierunkowskazów: 0 wyłączone, 1 lewy, 2 prawy, 3 awaryjne. Działa po obu stronach.

#### Składnia

```lua
int getVehicleIndicators(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

0-3.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local vehicle = getPedOccupiedVehicle(localPlayer)
    local state = vehicle and getVehicleIndicators(vehicle) or 0
    if state == 1 or state == 3 then dxDrawText("<", 900, 900) end
    if state == 2 or state == 3 then dxDrawText(">", 1000, 900) end
end)
```

#### Zobacz też

- [`setVehicleIndicators`](https://trilogy-hub.com/docs/setVehicleIndicators/)

### getVehicleLampNames

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca listę nazw wszystkich dwunastu lamp, które przyjmuje `setVehicleLampState`, w kolejności numerów 0-11 (od `front_left` do `indicator_rear_right`). Grup (`front`, `all`…) lista nie zawiera.

#### Składnia

```lua
table getVehicleLampNames()
```

#### Zwraca

Tablica 12 napisów.

#### Przykład

```lua
for number, name in ipairs(getVehicleLampNames()) do
    outputDebugString((number - 1) .. ": " .. name)
end
```

#### Zobacz też

- [`setVehicleLampState`](https://trilogy-hub.com/docs/setVehicleLampState/)

### getVehicleLampState

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca stan lampy albo grupy lamp ustawiony przez `setVehicleLampState`: `'auto'`, `'on'` albo `'off'`. Gdy lampy w grupie mają różne stany, zwraca `'mixed'`.

#### Składnia

```lua
string getVehicleLampState(vehicle vehicle, string/int lamp)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `lamp` (string/int) - Nazwa lampy, grupy albo numer 0-11 (jak w `setVehicleLampState`).

#### Zwraca

`'auto'`, `'on'`, `'off'` albo `'mixed'`.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
setVehicleLampState(vehicle, "front_left", "off")
outputDebugString(getVehicleLampState(vehicle, "front"))
```

#### Zobacz też

- [`setVehicleLampState`](https://trilogy-hub.com/docs/setVehicleLampState/)
- [`getVehicleLampStates`](https://trilogy-hub.com/docs/getVehicleLampStates/)

### getVehicleLampStates

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca stan wszystkich dwunastu lamp pojazdu jako tabelę nazwa → `'auto'`/`'on'`/`'off'`.

#### Składnia

```lua
table getVehicleLampStates(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tabela `{ front_left = 'auto', ... }`.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
for name, state in pairs(getVehicleLampStates(vehicle)) do
    outputDebugString(name .. " = " .. state)
end
```

#### Zobacz też

- [`getVehicleLampState`](https://trilogy-hub.com/docs/getVehicleLampState/)
- [`getVehicleLampNames`](https://trilogy-hub.com/docs/getVehicleLampNames/)
- [`resetVehicleLampStates`](https://trilogy-hub.com/docs/resetVehicleLampStates/)

### getVehicleLightState

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca, czy lampa pojazdu jest cała (0) czy zbita (1). Numeracja jak w `setVehicleLightState`.

#### Składnia

```lua
int getVehicleLightState(vehicle vehicle, int light)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `light` (int) - Numer lampy 0-3.

#### Zwraca

0 albo 1.

#### Przykład

```lua
addCommandHandler("lampy", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    for light = 0, 3 do
        if getVehicleLightState(vehicle, light) == 1 then
            outputChatBox("Lampa " .. light .. " jest zbita.", player)
        end
    end
end)
```

#### Zobacz też

- [`setVehicleLightState`](https://trilogy-hub.com/docs/setVehicleLightState/)

### getVehicleMaxPassengers

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca liczbę miejsc pasażerskich pojazdu albo modelu (bez kierowcy): np. 1 dla dwuosobowego auta, 3 dla sedana. Dane pochodzą z gry, więc serwer zna je dopiero, gdy któryś klient je zgłosi (zwykle po pierwszym pojawieniu się modelu u gracza); wcześniej zwraca `false`.

#### Składnia

```lua
int getVehicleMaxPassengers(vehicle/int vehicleOrModel)
```

#### Argumenty

- `vehicleOrModel` (vehicle/int) - Pojazd albo ID modelu.

#### Zwraca

Liczba miejsc pasażerskich albo `false`.

#### Przykład

```lua
local vehicle = getPedOccupiedVehicle(localPlayer)
if vehicle then
    outputChatBox("Miejsc dla pasazerow: " .. tostring(getVehicleMaxPassengers(vehicle)))
end
```

#### Zobacz też

- [`getModelMaxPassengers`](https://trilogy-hub.com/docs/getModelMaxPassengers/)
- [`setModelMaxPassengers`](https://trilogy-hub.com/docs/setModelMaxPassengers/)
- [`getVehicleOccupants`](https://trilogy-hub.com/docs/getVehicleOccupants/)
- [`setVehicleMaxPassengers`](https://trilogy-hub.com/docs/setVehicleMaxPassengers/)

### getVehicleModelFromName

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zamienia nazwę pojazdu na numer modelu, bez względu na wielkość liter i spacje na brzegach, np. `"infernus"` → 411. Rozpoznaje też nazwy nowych modeli z `engineRequestModel`. Idealne do komend typu `/v infernus`.

#### Składnia

```lua
int getVehicleModelFromName(string name)
```

#### Argumenty

- `name` (string) - Nazwa pojazdu (angielska, jak w grze).

#### Zwraca

ID modelu albo `false`, gdy nazwa nieznana.

#### Przykład

```lua
addCommandHandler("v", function(player, _, ...)
    local model = getVehicleModelFromName(table.concat({ ... }, " "))
    if not model then return outputChatBox("Nie ma takiego pojazdu.", player) end
    local x, y, z = getElementPosition(player)
    createVehicle(model, x + 3, y, z + 0.5)
end)
```

#### Zobacz też

- [`getVehicleNameFromModel`](https://trilogy-hub.com/docs/getVehicleNameFromModel/)
- [`createVehicle`](https://trilogy-hub.com/docs/createVehicle/)

### getVehicleModelsOfType

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca numery wszystkich modeli danego rodzaju, np. wszystkie łodzie albo helikoptery. Przydaje się do losowania pojazdu konkretnego typu.

#### Składnia

```lua
table getVehicleModelsOfType(string typeName)
```

#### Argumenty

- `typeName` (string) - Typ jak w `getVehicleType`, np. `"Boat"`, `"Helicopter"`.

#### Zwraca

Tablica ID modeli (pusta dla nieznanego typu).

#### Przykład

```lua
local boats = getVehicleModelsOfType("Boat")
createVehicle(boats[math.random(#boats)], 2950, -2050, 1)
```

#### Zobacz też

- [`getVehicleTypeNames`](https://trilogy-hub.com/docs/getVehicleTypeNames/)
- [`getVehicleType`](https://trilogy-hub.com/docs/getVehicleType/)

### getVehicleModelWheelSize

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca średnicę kół modelu ustawioną przez `setVehicleModelWheelSize`. Na kliencie bez nazwy grupy zwraca tabelę `{ front_axle, rear_axle }`.

#### Składnia

```lua
float/table getVehicleModelWheelSize(int model [, string wheelGroup = nil])
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `wheelGroup` (string, opcjonalny = nil) - `"front_axle"`, `"rear_axle"` albo `"all_wheels"`.

#### Zwraca

Średnica w metrach, tabela obu osi albo `false`, gdy nie ustawiono.

#### Przykład

```lua
setVehicleModelWheelSize(411, "all_wheels", 0.75)
outputDebugString(tostring(getVehicleModelWheelSize(411, "front_axle")))
```

#### Zobacz też

- [`setVehicleModelWheelSize`](https://trilogy-hub.com/docs/setVehicleModelWheelSize/)

### getVehicleName

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca nazwę pojazdu na podstawie jego modelu, np. `"Infernus"`, `"Landstalker"`. Dla nowego modelu z `engineRequestModel` zwraca nazwę nadaną przy rejestracji albo nazwę modelu bazowego. Działa po obu stronach.

#### Składnia

```lua
string getVehicleName(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Nazwa albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerVehicleEnter", root, function(vehicle)
    outputChatBox("Wsiadasz do: " .. getVehicleName(vehicle), source)
end)
```

#### Zobacz też

- [`getVehicleNameFromModel`](https://trilogy-hub.com/docs/getVehicleNameFromModel/)
- [`getVehicleModelFromName`](https://trilogy-hub.com/docs/getVehicleModelFromName/)

### getVehicleNameFromModel

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca nazwę pojazdu dla numeru modelu, np. 411 → `"Infernus"`, bez tworzenia pojazdu. Dla numeru spoza 400-611, który nie jest nowym pojazdem, zwraca `false`.

#### Składnia

```lua
string getVehicleNameFromModel(int model)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.

#### Zwraca

Nazwa albo `false`.

#### Przykład

```lua
for model = 400, 405 do
    outputDebugString(model .. " = " .. getVehicleNameFromModel(model))
end
```

#### Zobacz też

- [`getVehicleName`](https://trilogy-hub.com/docs/getVehicleName/)
- [`getVehicleModelFromName`](https://trilogy-hub.com/docs/getVehicleModelFromName/)

### getVehicleNitroCount

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca liczbę ładunków nitro zapisaną przez `setVehicleNitroCount` (domyślnie 0, -1 = bez końca).

#### Składnia

```lua
int getVehicleNitroCount(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Liczba ładunków.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(getVehicleNitroCount(vehicle))
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta odczyt z gry; `false` = auto bez nitro.

#### Zobacz też

- [`setVehicleNitroCount`](https://trilogy-hub.com/docs/setVehicleNitroCount/)

### getVehicleNitroLevel

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca poziom nitro zapisany przez `setVehicleNitroLevel` (domyślnie 1).

#### Składnia

```lua
float getVehicleNitroLevel(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Poziom 0..1.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(getVehicleNitroLevel(vehicle))
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta odczyt z gry: przy włączonym nitro ile zostało, potem ładowanie od 0 do 1; `false` = auto bez nitro.

#### Zobacz też

- [`setVehicleNitroLevel`](https://trilogy-hub.com/docs/setVehicleNitroLevel/)

### getVehicleOccupant

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca gracza albo postać siedzącą na wskazanym fotelu pojazdu. Fotel 0 to kierowca, 1 przedni pasażer, 2 i 3 tylne fotele.

#### Składnia

```lua
player getVehicleOccupant(vehicle vehicle [, int seat = 0])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `seat` (int, opcjonalny = 0) - Numer fotela.

#### Zwraca

Gracz lub postać na fotelu albo `false`, gdy fotel jest pusty.

#### Przykład

```lua
addCommandHandler("kierowca", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    local driver = vehicle and getVehicleOccupant(vehicle, 0)
    if driver and getElementType(driver) == "player" then
        outputChatBox("Kierowca: " .. getPlayerName(driver), player)
    end
end)
```

#### Zobacz też

- [`getVehicleOccupants`](https://trilogy-hub.com/docs/getVehicleOccupants/)
- [`getVehicleController`](https://trilogy-hub.com/docs/getVehicleController/)
- [`getPedOccupiedVehicle`](https://trilogy-hub.com/docs/getPedOccupiedVehicle/)

### getVehicleOccupants

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wszystkie osoby (graczy i postacie) siedzące w pojeździe jako tabelę numer fotela → osoba. Puste fotele nie występują w tabeli, więc do przejścia po niej używaj `pairs`, nie `ipairs` (fotel 0 nie jest indeksem tablicy).

#### Składnia

```lua
table getVehicleOccupants(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tabela `{ [fotel] = gracz/postać }`.

#### Przykład

```lua
local function vehicleMessage(vehicle, text)
    for seat, occupant in pairs(getVehicleOccupants(vehicle)) do
        if getElementType(occupant) == "player" then outputChatBox(text, occupant) end
    end
end
```

#### Zobacz też

- [`getVehicleOccupant`](https://trilogy-hub.com/docs/getVehicleOccupant/)
- [`getVehicleMaxPassengers`](https://trilogy-hub.com/docs/getVehicleMaxPassengers/)

### getVehicleOverrideLights

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca wymuszony stan świateł: 0 bez wymuszenia, 1 zgaszone, 2 zapalone.

#### Składnia

```lua
int getVehicleOverrideLights(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

0, 1 albo 2.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local vehicle = getPedOccupiedVehicle(localPlayer)
    if vehicle and getVehicleOverrideLights(vehicle) == 2 then
        dxDrawText("Swiatla: ON", 20, 300)
    end
end)
```

#### Zobacz też

- [`setVehicleOverrideLights`](https://trilogy-hub.com/docs/setVehicleOverrideLights/)
- [`areVehicleLightsOn`](https://trilogy-hub.com/docs/areVehicleLightsOn/)

### getVehiclePaintjob

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca numer naklejki pojazdu: 0-2 albo 3, gdy pojazd nie ma naklejki. Działa po obu stronach.

#### Składnia

```lua
int getVehiclePaintjob(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

0-3.

#### Przykład

```lua
addCommandHandler("naklejka", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehiclePaintjob(vehicle, (getVehiclePaintjob(vehicle) + 1) % 4) end
end)
```

#### Zobacz też

- [`setVehiclePaintjob`](https://trilogy-hub.com/docs/setVehiclePaintjob/)

### getVehiclePaletteColor

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca barwę koloru o podanym numerze z palety pojazdów gry (0-127) oraz jego nazwę. Wartości RGB są dokładnie tymi, które rysuje Definitive Edition, więc nadają się np. do podglądu koloru w sklepie z lakierami.

#### Składnia

```lua
int, int, int, string getVehiclePaletteColor(int id)
```

#### Argumenty

- `id` (int) - Numer koloru 0-127.

#### Zwraca

r, g, b i nazwa koloru albo `false` dla złego numeru.

#### Przykład

```lua
for id = 0, 7 do
    local r, g, b, name = getVehiclePaletteColor(id)
    outputDebugString(("%d: %s (%d, %d, %d)"):format(id, name, r, g, b))
end
```

#### Zobacz też

- [`getNearestVehiclePaletteColor`](https://trilogy-hub.com/docs/getNearestVehiclePaletteColor/)
- [`setVehicleColorId`](https://trilogy-hub.com/docs/setVehicleColorId/)

### getVehiclePanelState

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca stopień uszkodzenia elementu karoserii (0 cały - 3 mocno zniszczony). Numeracja jak w `setVehiclePanelState`.

#### Składnia

```lua
int getVehiclePanelState(vehicle vehicle, int panel)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `panel` (int) - Numer elementu 0-6.

#### Zwraca

Stan 0-3.

#### Przykład

```lua
addCommandHandler("szyba", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle and getVehiclePanelState(vehicle, 4) > 0 then
        outputChatBox("Przednia szyba jest pęknięta.", player)
    end
end)
```

#### Zobacz też

- [`setVehiclePanelState`](https://trilogy-hub.com/docs/setVehiclePanelState/)

### getVehiclePerformance

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca osiągi pojazdu w formie przyjaznej graczowi: moc w kW i KM, moment obrotowy, masę, czas 0-100 km/h i prędkość maksymalną. Można podać pojazd (bierze jego silnik i zużycie) albo numer modelu, opcjonalnie z silnikiem do porównania.

#### Składnia

```lua
table getVehiclePerformance(vehicle/int vehicleOrModel [, table spec = nil, float wear = 0])
```

#### Argumenty

- `vehicleOrModel` (vehicle/int) - Pojazd albo ID modelu.
- `spec` (table, opcjonalny = nil) - Silnik do policzenia zamiast obecnego (jak w `setVehicleEngine`).
- `wear` (float, opcjonalny = 0) - Zużycie 0..1 (dla pojazdu bez `spec`: jego własne).

#### Zwraca

`powerKW`, `powerHP`, `torque`, `mass`, `accel100` (s), `topSpeed` (km/h), `engine`; `false` dla nieznanego modelu.

#### Przykład

```lua
addCommandHandler("osiagi", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    local p = getVehiclePerformance(vehicle)
    outputChatBox(("%d KM, 0-100 w %.1f s, Vmax %d km/h"):format(p.powerHP, p.accel100, p.topSpeed), player)
end)
```

#### Zobacz też

- [`getVehicleEngine`](https://trilogy-hub.com/docs/getVehicleEngine/)
- [`calculateEngineHandling`](https://trilogy-hub.com/docs/calculateEngineHandling/)

### getVehiclePlateText

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca tekst tablicy rejestracyjnej pojazdu.

#### Składnia

```lua
string getVehiclePlateText(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tekst tablicy (do 8 znaków).

#### Przykład

```lua
addEventHandler("onVehicleEnter", root, function(player, seat)
    if seat == 0 then
        outputChatBox("Rejestracja: " .. getVehiclePlateText(source), player)
    end
end)
```

#### Zobacz też

- [`setVehiclePlateText`](https://trilogy-hub.com/docs/setVehiclePlateText/)

### getVehicleProofs

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca tabelę odporności pojazdu ustawionych przez setVehicleProofs.

#### Składnia

```lua
table getVehicleProofs(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`{ bullets, fire, explosion, collisions, melee }` z wartościami `true`/`false`.

#### Przykład

```lua
local vehicle = getPedOccupiedVehicle(localPlayer)
if vehicle and getVehicleProofs(vehicle).bullets then
    outputChatBox("To auto jest kuloodporne")
end
```

#### Zobacz też

- [`setVehicleProofs`](https://trilogy-hub.com/docs/setVehicleProofs/)

### getVehicleSirensOn

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy syrena pojazdu jest włączona przez `setVehicleSirensOn`. Działa po obu stronach.

#### Składnia

```lua
bool getVehicleSirensOn(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy syrena włączona.

#### Przykład

```lua
setTimer(function()
    local vehicle = getPedOccupiedVehicle(localPlayer)
    if vehicle and getVehicleSirensOn(vehicle) then outputDebugString("Na sygnale") end
end, 5000, 0)
```

#### Zobacz też

- [`setVehicleSirensOn`](https://trilogy-hub.com/docs/setVehicleSirensOn/)

### getVehicleTailLightColor

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca kolor tylnych lamp (domyślnie 255, 0, 0).

#### Składnia

```lua
int, int, int getVehicleTailLightColor(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

r, g, b.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(table.concat({ getVehicleTailLightColor(vehicle) }, ", "))
```

#### Zobacz też

- [`setVehicleTailLightColor`](https://trilogy-hub.com/docs/setVehicleTailLightColor/)

### getVehicleType

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca rodzaj pojazdu (angielską nazwę): `Automobile`, `Bike`, `BMX`, `Quad`, `Monster Truck`, `Boat`, `Helicopter`, `Plane`, `Train`, `Trailer`. Przyjmuje pojazd albo numer modelu.

#### Składnia

```lua
string getVehicleType(vehicle/int vehicleOrModel)
```

#### Argumenty

- `vehicleOrModel` (vehicle/int) - Pojazd albo ID modelu.

#### Zwraca

Typ pojazdu albo `false`.

#### Przykład

```lua
addEventHandler("onVehicleEnter", root, function(player, seat)
    if seat == 0 and getVehicleType(source) == "Plane" then
        outputChatBox("Pamietaj o licencji pilota.", player)
    end
end)
```

#### Zobacz też

- [`getVehicleTypeFromModel`](https://trilogy-hub.com/docs/getVehicleTypeFromModel/)
- [`getVehicleModelsOfType`](https://trilogy-hub.com/docs/getVehicleModelsOfType/)

### getVehicleTypeFromModel

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca rodzaj pojazdu dla numeru modelu (jak `getVehicleType`). Nowy model z `engineRequestModel` ma typ swojego modelu bazowego.

#### Składnia

```lua
string getVehicleTypeFromModel(int model)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.

#### Zwraca

Typ albo `false`.

#### Przykład

```lua
outputDebugString(getVehicleTypeFromModel(520))
```

#### Zobacz też

- [`getVehicleType`](https://trilogy-hub.com/docs/getVehicleType/)

### getVehicleTypeNames

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca nazwy wszystkich rodzajów pojazdów, posortowane alfabetycznie.

#### Składnia

```lua
table getVehicleTypeNames()
```

#### Zwraca

Tablica nazw typów.

#### Przykład

```lua
for _, name in ipairs(getVehicleTypeNames()) do
    outputDebugString(name .. ": " .. #getVehicleModelsOfType(name))
end
```

#### Zobacz też

- [`getVehicleModelsOfType`](https://trilogy-hub.com/docs/getVehicleModelsOfType/)

### getVehicleUpgradeOnSlot

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca ID części zamontowanej w danym slocie tuningu albo 0, gdy slot jest pusty. Numery slotów 0-16 opisuje `getVehicleUpgradeSlotName`.

#### Składnia

```lua
int getVehicleUpgradeOnSlot(vehicle vehicle, int slot)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `slot` (int) - Numer slotu 0-16 (np. 2 spoiler, 8 nitro, 12 koła, 13 wydech).

#### Zwraca

ID części albo 0.

#### Przykład

```lua
addCommandHandler("manitro", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle and getVehicleUpgradeOnSlot(vehicle, 8) ~= 0 then
        outputChatBox("To auto ma nitro.", player)
    end
end)
```

#### Zobacz też

- [`getVehicleUpgrades`](https://trilogy-hub.com/docs/getVehicleUpgrades/)
- [`getVehicleUpgradeSlotName`](https://trilogy-hub.com/docs/getVehicleUpgradeSlotName/)

### getVehicleUpgrades

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca listę ID wszystkich części tuningu zamontowanych w pojeździe. Działa po obu stronach.

#### Składnia

```lua
table getVehicleUpgrades(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Tablica ID części (pusta, gdy brak tuningu).

#### Przykład

```lua
addCommandHandler("czesci", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    for _, part in ipairs(getVehicleUpgrades(vehicle)) do
        outputChatBox(part .. " (" .. getVehicleUpgradeSlotName(part) .. ")", player)
    end
end)
```

#### Zobacz też

- [`addVehicleUpgrade`](https://trilogy-hub.com/docs/addVehicleUpgrade/)
- [`getVehicleUpgradeOnSlot`](https://trilogy-hub.com/docs/getVehicleUpgradeOnSlot/)

### getVehicleUpgradeSlot

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca numer slotu tuningu (0-16), do którego należy część.

#### Składnia

```lua
int getVehicleUpgradeSlot(int upgrade)
```

#### Argumenty

- `upgrade` (int) - ID części 1000-1193.

#### Zwraca

Numer slotu albo `false` dla nieznanej części.

#### Przykład

```lua
outputDebugString("1010 jest w slocie " .. getVehicleUpgradeSlot(1010))
```

#### Zobacz też

- [`getVehicleUpgradeSlotName`](https://trilogy-hub.com/docs/getVehicleUpgradeSlotName/)
- [`getVehicleUpgradeOnSlot`](https://trilogy-hub.com/docs/getVehicleUpgradeOnSlot/)

### getVehicleUpgradeSlotName

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca angielską nazwę slotu tuningu, podając numer slotu albo ID części. Sloty: 0 Hood, 1 Vent, 2 Spoiler, 3 Sideskirt, 4 Front Bullbars, 5 Rear Bullbars, 6 Headlights, 7 Roof, 8 Nitro, 9 Hydraulics, 10 Stereo, 11 Unknown, 12 Wheels, 13 Exhaust, 14 Front Bumper, 15 Rear Bumper, 16 Misc.

#### Składnia

```lua
string getVehicleUpgradeSlotName(int slotOrUpgrade)
```

#### Argumenty

- `slotOrUpgrade` (int) - Numer slotu 0-16 albo ID części 1000-1193.

#### Zwraca

Nazwa slotu albo `false`.

#### Przykład

```lua
outputDebugString(getVehicleUpgradeSlotName(1087))
```

#### Zobacz też

- [`getVehicleUpgradeSlotNames`](https://trilogy-hub.com/docs/getVehicleUpgradeSlotNames/)
- [`getVehicleUpgradeSlot`](https://trilogy-hub.com/docs/getVehicleUpgradeSlot/)

### getVehicleUpgradeSlotNames

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca nazwy wszystkich 17 slotów tuningu w kolejności numerów (pierwszy element = slot 0).

#### Składnia

```lua
table getVehicleUpgradeSlotNames()
```

#### Zwraca

Tablica 17 napisów.

#### Przykład

```lua
for i, name in ipairs(getVehicleUpgradeSlotNames()) do
    outputDebugString((i - 1) .. " = " .. name)
end
```

#### Zobacz też

- [`getVehicleUpgradeSlotName`](https://trilogy-hub.com/docs/getVehicleUpgradeSlotName/)

### getVehicleVariant

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca dwa warianty wyglądu pojazdu (255 = brak). Działa po obu stronach.

#### Składnia

```lua
int, int getVehicleVariant(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Wariant 1 i 2.

#### Przykład

```lua
local vehicle = createVehicle(422, 2000, -1690, 13.5)
local v1, v2 = getVehicleVariant(vehicle)
outputDebugString("Warianty: " .. v1 .. ", " .. v2)
```

#### Zobacz też

- [`setVehicleVariant`](https://trilogy-hub.com/docs/setVehicleVariant/)

### getVehicleWheelGrip

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca mnożnik przyczepności kół pojazdu (iloczyn mnożników wszystkich zasobów, 1 = zwykła).

#### Składnia

```lua
number getVehicleWheelGrip(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Mnożnik przyczepności.

#### Przykład

```lua
local vehicle = getPedOccupiedVehicle(localPlayer)
if vehicle then outputChatBox("Przyczepnosc: " .. getVehicleWheelGrip(vehicle)) end
```

#### Zobacz też

- [`setVehicleWheelGrip`](https://trilogy-hub.com/docs/setVehicleWheelGrip/)

### getVehicleWheelStates

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca stan czterech kół pojazdu w kolejności: przednie lewe, tylne lewe, przednie prawe, tylne prawe (0 całe, 1 przebite, 2 odpadnięte).

#### Składnia

```lua
int, int, int, int getVehicleWheelStates(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Cztery stany kół.

#### Przykład

```lua
addCommandHandler("kola", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    local fl, rl, fr, rr = getVehicleWheelStates(vehicle)
    outputChatBox(("Kola: %d %d %d %d"):format(fl, rl, fr, rr), player)
end)
```

#### Zobacz też

- [`setVehicleWheelStates`](https://trilogy-hub.com/docs/setVehicleWheelStates/)

### getVehicleWindowTint

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Zwraca przyciemnienie szyb pojazdu w procentach (0 = zwykłe szyby), a jeśli ustawiono kolor - także jego składniki r, g, b.

#### Składnia

```lua
int[, int, int, int] getVehicleWindowTint(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Procent przyciemnienia, potem r, g, b, gdy kolor jest ustawiony.

#### Przykład

```lua
local vehicle = getPedOccupiedVehicle(localPlayer)
if vehicle then
    local darkness, r, g, b = getVehicleWindowTint(vehicle)
    outputChatBox("Szyby: " .. darkness .. "%" .. (r and (", kolor " .. r .. ", " .. g .. ", " .. b) or ""))
end
```

#### Zobacz też

- [`setVehicleWindowTint`](https://trilogy-hub.com/docs/setVehicleWindowTint/)

### isValidVehicleModel

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Tylko Trilogy Hub*

Sprawdza, czy numer jest modelem pojazdu: 400-611 z gry albo nowy pojazd zarejestrowany przez `engineRequestModel`.

#### Składnia

```lua
bool isValidVehicleModel(int model)
```

#### Argumenty

- `model` (int) - Numer do sprawdzenia.

#### Zwraca

`true` dla modelu pojazdu.

#### Przykład

```lua
addCommandHandler("model", function(player, _, id)
    id = tonumber(id)
    if not id or not isValidVehicleModel(id) then
        return outputChatBox("Zly numer pojazdu.", player)
    end
end)
```

#### Zobacz też

- [`getVehicleNameFromModel`](https://trilogy-hub.com/docs/getVehicleNameFromModel/)
- [`createVehicle`](https://trilogy-hub.com/docs/createVehicle/)

### isVehicleBlown

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy pojazd jest wrakiem, czyli został zniszczony (`blowVehicle` albo wybuch w grze) i jeszcze nie naprawiony ani odrodzony. Wraku nie da się prowadzić.

#### Składnia

```lua
bool isVehicleBlown(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd do sprawdzenia.

#### Zwraca

`true` dla wraku, w przeciwnym razie `false`.

#### Przykład

```lua
addCommandHandler("wraki", function(player)
    local count = 0
    for _, vehicle in ipairs(getElementsByType("vehicle")) do
        if isVehicleBlown(vehicle) then count = count + 1 end
    end
    outputChatBox("Wrakow na mapie: " .. count, player)
end)
```

#### Zobacz też

- [`blowVehicle`](https://trilogy-hub.com/docs/blowVehicle/)
- [`fixVehicle`](https://trilogy-hub.com/docs/fixVehicle/)
- [`respawnVehicle`](https://trilogy-hub.com/docs/respawnVehicle/)

### isVehicleLocked

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy drzwi pojazdu są zamknięte przez `setVehicleLocked`.

#### Składnia

```lua
bool isVehicleLocked(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy zamknięty.

#### Przykład

```lua
addEventHandler("onVehicleStartEnter", root, function(player)
    if isVehicleLocked(source) then
        outputChatBox("Ten pojazd jest zamkniety.", player, 255, 80, 80)
    end
end)
```

#### Zobacz też

- [`setVehicleLocked`](https://trilogy-hub.com/docs/setVehicleLocked/)

### isVehicleNitroActivated

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca, czy nitro zostało włączone przez `setVehicleNitroActivated`.

#### Składnia

```lua
bool isVehicleNitroActivated(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(tostring(isVehicleNitroActivated(vehicle)))
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta odczyt z gry.

#### Zobacz też

- [`setVehicleNitroActivated`](https://trilogy-hub.com/docs/setVehicleNitroActivated/)

### isVehicleNitroRecharging

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca, czy nitro się ładuje.

#### Składnia

```lua
bool isVehicleNitroRecharging(vehicle vehicle)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy nitro się ładuje.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(tostring(isVehicleNitroRecharging(vehicle)))
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta odczyt z gry.

> **Uwaga:** **Wartość zawsze domyślna.** Serwer nie dostaje jeszcze tej informacji z gry, więc funkcja zwraca `false`.

#### Zobacz też

- [`isVehicleNitroActivated`](https://trilogy-hub.com/docs/isVehicleNitroActivated/)

### isVehicleOnGround

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca, czy pojazd stoi kołami na ziemi.

#### Składnia

```lua
bool isVehicleOnGround(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy stoi na ziemi.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(tostring(isVehicleOnGround(vehicle)))
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta odczyt prosto z gry co klatkę (zawieszenie kół; motocykl, łódź, samolot - czy nie jest w powietrzu). Pojazd, którym ten gracz nie kieruje (stoi albo prowadzi go ktoś inny), nie liczy u niego fizyki - wtedy `true`. Na serwerze to stan zgłoszony skryptem - do sprawdzania jazdy używaj wersji klienta.

> **Uwaga:** **Wartość zawsze domyślna.** Serwer nie dostaje jeszcze tej informacji z gry, więc funkcja zwraca `true`. Do wykrywania lotu użyj np. prędkości pionowej z `getElementVelocity`.

#### Zobacz też

- [`isVehicleWheelOnGround`](https://trilogy-hub.com/docs/isVehicleWheelOnGround/)
- [`getElementVelocity`](https://trilogy-hub.com/docs/getElementVelocity/)

### isVehicleTaxiLightOn

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Sprawdza, czy lampka „TAXI” pojazdu jest zapalona. Działa po obu stronach.

#### Składnia

```lua
bool isVehicleTaxiLightOn(vehicle element)
```

#### Argumenty

- `element` (vehicle) - Pojazd.

#### Zwraca

`true`, gdy świeci.

#### Przykład

```lua
addCommandHandler("wolna", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleTaxiLightOn(vehicle, not isVehicleTaxiLightOn(vehicle)) end
end)
```

#### Zobacz też

- [`setVehicleTaxiLightOn`](https://trilogy-hub.com/docs/setVehicleTaxiLightOn/)

### isVehicleWheelOnGround

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zwraca, czy koło dotyka ziemi.

#### Składnia

```lua
bool isVehicleWheelOnGround(vehicle vehicle, int wheel)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `wheel` (int) - Numer koła 0-3.

#### Zwraca

`true`, gdy koło dotyka ziemi.

#### Przykład

```lua
local vehicle = createVehicle(411, 2000, -1690, 13.5)
outputDebugString(tostring(isVehicleWheelOnGround(vehicle, 0)))
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta odczyt z gry: kompresja zawieszenia koła (0 przód lewe, 1 tył lewe, 2 przód prawe, 3 tył prawe).

> **Uwaga:** **Wartość zawsze domyślna.** Serwer nie dostaje jeszcze tej informacji z gry, więc funkcja zwraca `true`.

#### Zobacz też

- [`isVehicleOnGround`](https://trilogy-hub.com/docs/isVehicleOnGround/)

### removeVehicleUpgrade

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zdejmuje z pojazdu zamontowaną część tuningu. Zdjęcie nitro kasuje też zapisane ładunki nitro.

#### Składnia

```lua
bool removeVehicleUpgrade(vehicle vehicle, int upgrade)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `upgrade` (int) - ID części do zdjęcia.

#### Zwraca

`true`, gdy część zdjęto; `false`, gdy nie była zamontowana.

#### Przykład

```lua
addCommandHandler("bezspojlera", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    local part = vehicle and getVehicleUpgradeOnSlot(vehicle, 2)
    if part and part ~= 0 then removeVehicleUpgrade(vehicle, part) end
end)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta tylko u tego gracza.

#### Zobacz też

- [`addVehicleUpgrade`](https://trilogy-hub.com/docs/addVehicleUpgrade/)
- [`getVehicleUpgrades`](https://trilogy-hub.com/docs/getVehicleUpgrades/)

### setVehicleColor

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Ustawia kolory lakieru pojazdu dowolnymi barwami RGB, widoczne u wszystkich graczy. Pojazd ma do czterech kolorów: 1 = główny lakier, 2 = drugi kolor (pasy, dach, felgi zależnie od modelu), 3 i 4 = dodatkowe elementy niektórych modeli. Podaj tylko pierwsze trzy liczby, a drugi kolor będzie taki sam jak pierwszy. Kolory, których nie ma w palecie gry, są rysowane dokładnie, bez zaokrąglania do palety.

#### Składnia

```lua
bool setVehicleColor(vehicle vehicle, int r1, int g1, int b1 [, int r2 = r1, int g2 = g1, int b2 = b1, int r3 = nil, int g3 = nil, int b3 = nil, int r4 = r3, int g4 = g3, int b4 = b3])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `r1` (int) - Czerwony składnik koloru 1 (0-255).
- `g1` (int) - Zielony składnik koloru 1 (0-255).
- `b1` (int) - Niebieski składnik koloru 1 (0-255).
- `r2` (int, opcjonalny = r1) - Czerwony koloru 2.
- `g2` (int, opcjonalny = g1) - Zielony koloru 2.
- `b2` (int, opcjonalny = b1) - Niebieski koloru 2.
- `r3` (int, opcjonalny = nil) - Czerwony koloru 3; bez niego kolory 3 i 4 wracają do ustawień modelu.
- `g3` (int, opcjonalny = nil) - Zielony koloru 3.
- `b3` (int, opcjonalny = nil) - Niebieski koloru 3.
- `r4` (int, opcjonalny = r3) - Czerwony koloru 4.
- `g4` (int, opcjonalny = g3) - Zielony koloru 4.
- `b4` (int, opcjonalny = b3) - Niebieski koloru 4.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("lakier", function(player, _, r, g, b)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then
        setVehicleColor(vehicle, tonumber(r) or 255, tonumber(g) or 255, tonumber(b) or 255)
    end
end)
```

#### Zobacz też

- [`getVehicleColor`](https://trilogy-hub.com/docs/getVehicleColor/)
- [`setVehicleColorId`](https://trilogy-hub.com/docs/setVehicleColorId/)

### setVehicleComponentVisible

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Pokazuje albo chowa nazwaną część modelu pojazdu. Na serwerze zmiana dotyczy wszystkich graczy na kliencie tylko lokalnego gracza i ma pierwszeństwo przed ustawieniem serwera. Działa na ramkach modelu z pliku (`engineReplaceModel`): warianty autora (`spoiler_1`, `extra1`…), drzwi, maska, zderzaki. Listę nazw dla danego pojazdu daje `getVehicleComponents` po stronie klienta.

#### Składnia

```lua
bool setVehicleComponentVisible(vehicle vehicle, string component, bool visible)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `component` (string) - Nazwa części (ramki .dff), bez względu na wielkość liter.
- `visible` (bool) - `true` = widoczna, `false` = ukryta.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("bezspojlera", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle then setVehicleComponentVisible(vehicle, "spoiler_1", false) end
end)
```

#### Zobacz też

- [`getVehicleComponentVisible`](https://trilogy-hub.com/docs/getVehicleComponentVisible/)
- [`getVehicleComponents`](https://trilogy-hub.com/docs/getVehicleComponents/)
- [`resetVehicleComponentVisible`](https://trilogy-hub.com/docs/resetVehicleComponentVisible/)

### setVehicleEngineState

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Włącza albo wyłącza silnik pojazdu u wszystkich graczy. Z wyłączonym silnikiem pojazd nie jedzie, nawet gdy kierowca wciska gaz (może się jedynie toczyć). Domyślnie silnik zapala się sam, gdy kierowca wsiada; po `setWorldSpecialPropertyEnabled("vehicle_engine_autostart", false)` tak się nie dzieje i serwer RP może zrobić własny zapłon pod klawiszem albo komendą.

#### Składnia

```lua
bool setVehicleEngineState(vehicle vehicle, bool state)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `state` (bool) - `true` = silnik pracuje, `false` = wyłączony.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("silnik", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle and getVehicleController(vehicle) == player then
        setVehicleEngineState(vehicle, not getVehicleEngineState(vehicle))
    end
end)
```

#### Zobacz też

- [`getVehicleEngineState`](https://trilogy-hub.com/docs/getVehicleEngineState/)
- [`setWorldSpecialPropertyEnabled`](https://trilogy-hub.com/docs/setWorldSpecialPropertyEnabled/)

### setVehicleHandling

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zmienia parametry jazdy (handling) jednego pojazdu u wszystkich graczy: masę, prędkość maksymalną, przyspieszenie, przyczepność, hamulce, skręt, zawieszenie i inne pola z handling.cfg. Gra dostaje własną kopię wpisu handlingu dla tego auta, więc inne pojazdy tego modelu się nie zmieniają. Można podać jedno pole z wartością, całą tabelę pól albo `nil`, żeby wrócić do handlingu fabrycznego (z uwzględnieniem `setModelHandling`). Nazwy pól, lista: `getHandlingFieldNames`.

#### Składnia

```lua
bool setVehicleHandling(vehicle vehicle [, string/table propertyOrTable = nil, any value = nil])
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `propertyOrTable` (string/table, opcjonalny = nil) - Nazwa pola (np. `"maxVelocity"`, `"engineAcceleration"`, `"tractionMultiplier"`, `"mass"`, `"suspensionLowerLimit"`), tabela `{ pole = wartość }` zastępująca wszystkie zmiany pojazdu, albo `nil` = handling fabryczny. Nieznane pola w tabeli są pomijane.
- `value` (any, opcjonalny = nil) - Nowa wartość pola (liczba; `centerOfMass` to tabela `{ x, y, z }`). `nil` usuwa zmianę tego pola.

#### Zwraca

`true` przy powodzeniu, `false` dla nieznanej nazwy pola.

#### Przykład

```lua
addCommandHandler("sport", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    -- skala jak w handling.cfg: liczymy od wartosci fabrycznych modelu
    local factory = getOriginalHandling(getElementModel(vehicle))
    setVehicleHandling(vehicle, "maxVelocity", factory.maxVelocity * 1.15)
    setVehicleHandling(vehicle, "engineAcceleration", factory.engineAcceleration * 1.3)
    setVehicleHandling(vehicle, "tractionMultiplier", factory.tractionMultiplier * 1.1)
    setVehicleHandling(vehicle, "driveType", "awd")
end)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta handling tylko u tego gracza. Jazdę liczy kierowca, więc na pojeździe, którym kieruje ten gracz, zmiana działa w jeździe; obowiązuje, dopóki serwer nie zmieni handlingu tego pojazdu.

> **Uwaga:** **Typy i skala pól.** Liczby mają tę samą skalę co w handling.cfg (to, co zwraca `getOriginalHandling`): np. Elegy (562) ma `engineAcceleration` = 28, radiowóz LS (596) = 25, więc 18 to auto SŁABSZE od fabrycznego. `maxVelocity` w km/h, `mass` w kg, `brakeDeceleration` jak w pliku (ok. 4-11), `tractionMultiplier` ok. 0,6-1,3. `driveType` to tekst: `"fwd"` (przód), `"rwd"` (tył), `"awd"` (4x4). `engineType`: `"petrol"`, `"diesel"`, `"electric"`. `ABS` to `true`/`false`. `handlingFlags` i `modelFlags` to liczby (bity jak szesnastkowo w handling.cfg, np. `0x4000000`). `centerOfMass` = `{ x, y, z }`. Zmiana `maxVelocity`, `engineAcceleration`, `numberOfGears`, `driveType` albo `dragCoeff` przelicza skrzynię biegów jak gra.

#### Zobacz też

- [`getVehicleHandling`](https://trilogy-hub.com/docs/getVehicleHandling/)
- [`setModelHandling`](https://trilogy-hub.com/docs/setModelHandling/)
- [`getHandlingFieldNames`](https://trilogy-hub.com/docs/getHandlingFieldNames/)
- [`getOriginalHandling`](https://trilogy-hub.com/docs/getOriginalHandling/)

### setVehicleLocked

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zamyka albo otwiera drzwi pojazdu u wszystkich graczy. Do zamkniętego pojazdu gracze nie mogą wsiąść (gra nie rozpocznie wsiadania). Osoby już siedzące w środku mogą normalnie wysiąść.

#### Składnia

```lua
bool setVehicleLocked(vehicle vehicle, bool locked)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `locked` (bool) - `true` = zamknięty, `false` = otwarty.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("zamek", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if not vehicle then return end
    local locked = not isVehicleLocked(vehicle)
    setVehicleLocked(vehicle, locked)
    outputChatBox(locked and "Zamknieto." or "Otwarto.", player)
end)
```

#### Zobacz też

- [`isVehicleLocked`](https://trilogy-hub.com/docs/isVehicleLocked/)

### setVehicleModelWheelSize

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zmienia średnicę kół modelu pojazdu. Na kliencie zmienia koła pojazdów z własnym modelem (`engineReplaceModel`) u tego gracza; koła aut z gry zostają bez zmian. Na serwerze tylko zapamiętuje wartość dla skryptów.

#### Składnia

```lua
bool setVehicleModelWheelSize(int model, string wheelGroup, float size)
```

#### Argumenty

- `model` (int) - ID modelu pojazdu.
- `wheelGroup` (string) - `"front_axle"` (przód), `"rear_axle"` (tył) albo `"all_wheels"` (wszystkie).
- `size` (float) - Średnica koła w metrach (jak w vehicles.ide, np. 0.7).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setVehicleModelWheelSize(411, "rear_axle", 0.8)
```

#### Zobacz też

- [`getVehicleModelWheelSize`](https://trilogy-hub.com/docs/getVehicleModelWheelSize/)
- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)

### setVehicleOverrideLights

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Wymusza stan świateł pojazdu u wszystkich graczy. W Trilogy Hub gra sama nie zapala świateł o zmroku, więc reflektory świecą tylko po ustawieniu 2. Pojedyncze lampy (stop, cofania, kierunkowskazy) ustawia `setVehicleLampState`.

#### Składnia

```lua
bool setVehicleOverrideLights(vehicle vehicle, int state)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `state` (int) - 0 = bez wymuszenia (światła zgaszone), 1 = zawsze zgaszone, 2 = zawsze zapalone.

#### Zwraca

`true` przy powodzeniu, `false` dla wartości spoza 0-2.

#### Przykład

```lua
addCommandHandler("swiatla", function(player)
    local vehicle = getPedOccupiedVehicle(player)
    if vehicle and getVehicleController(vehicle) == player then
        setVehicleOverrideLights(vehicle, getVehicleOverrideLights(vehicle) == 2 and 1 or 2)
    end
end)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta światła tylko u tego gracza, dopóki serwer nie ustawi ich temu pojazdowi.

#### Zobacz też

- [`getVehicleOverrideLights`](https://trilogy-hub.com/docs/getVehicleOverrideLights/)
- [`areVehicleLightsOn`](https://trilogy-hub.com/docs/areVehicleLightsOn/)
- [`setVehicleLampState`](https://trilogy-hub.com/docs/setVehicleLampState/)

### setVehiclePlateText

*Funkcja · Strona: Serwer i klient · Kategoria: Pojazdy · Identyczna z MTA:SA*

Zmienia tekst tablicy rejestracyjnej pojazdu, widoczny u wszystkich graczy. Tablica mieści najwyżej 8 znaków; dłuższy tekst zostanie obcięty. Używaj liter, cyfr i spacji, bo tylko takie znaki ma czcionka tablic w grze.

#### Składnia

```lua
bool setVehiclePlateText(vehicle vehicle, string text)
```

#### Argumenty

- `vehicle` (vehicle) - Pojazd.
- `text` (string) - Nowy tekst, do 8 znaków.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local vehicle = createVehicle(596, 1535, -1670, 13.4)
setVehiclePlateText(vehicle, "LSPD 01")
```

#### Zobacz też

- [`getVehiclePlateText`](https://trilogy-hub.com/docs/getVehiclePlateText/)
- [`setVehiclePlateDesign`](https://trilogy-hub.com/docs/setVehiclePlateDesign/)

### createPed

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Tworzy na serwerze nową postać NPC (pieszego sterowanego przez grę, nie przez gracza) i od razu pokazuje ją wszystkim graczom w pobliżu. Postać dostaje 100 punktów zdrowia, losowy wariant wyglądu (ubranie i kolor skóry, patrz `setPedVariant`) i należy do zasobu, który ją utworzył, więc znika razem z nim przy `stop`. Opcjonalnie można od razu uczynić ją agresywną albo kazać jej zaatakować wybrany cel.

#### Składnia

```lua
ped createPed(int model, float x, float y, float z [, float rot = 0, bool synced = true, bool aggressive = false, element target = nil])
```

#### Argumenty

- `model` (int) - ID modelu postaci (skin) z GTA San Andreas, np. 0 = CJ, 7 = mężczyzna w koszuli, 280 = policjant. Musi być poprawnym modelem pieszego (`isValidPedModel`). Skin -1 (strój z launchera) mają tylko gracze, dla NPC funkcja zwróci `false`.
- `x` (float) - Współrzędna X miejsca, w którym stanie postać (w metrach, układ świata gry).
- `y` (float) - Współrzędna Y miejsca.
- `z` (float) - Wysokość Z. Podaj poziom gruntu albo lekko nad nim; zbyt nisko postać wpadnie pod mapę.
- `rot` (float, opcjonalny = 0) - Obrót postaci wokół osi pionowej w stopniach (kierunek, w który jest zwrócona). 0 = północ.
- `synced` (bool, opcjonalny = true) - Przyjmowany dla zgodności ze starszymi skryptami i ignorowany: postacie w Trilogy Hub są zawsze synchronizowane między graczami.
- `aggressive` (bool, opcjonalny = false) - `true` = postać jest agresywna: kto ją zrani, tego zaatakuje (to samo co `setPedAggressive(ped, true)`).
- `target` (element, opcjonalny = nil) - Gracz albo inna postać, którą NPC ma od razu zaatakować (to samo co `setPedAttackTarget`).

#### Zwraca

Utworzona postać albo `false`, gdy model jest niepoprawny.

#### Różnice względem MTA:SA

- W MTA:SA: `createPed(int modelid, float x, float y, float z, float rot = 0.0, bool synced = true)`

#### Przykład

```lua
local guard = createPed(280, 1544.5, -1675.2, 13.56, 90)
setPedAggressive(guard, true)
setElementData(guard, "nazwa", "Ochroniarz")
```

#### Zobacz też

- [`destroyElement`](https://trilogy-hub.com/docs/destroyElement/)
- [`setPedVariant`](https://trilogy-hub.com/docs/setPedVariant/)
- [`setPedAggressive`](https://trilogy-hub.com/docs/setPedAggressive/)
- [`setPedAttackTarget`](https://trilogy-hub.com/docs/setPedAttackTarget/)
- [`isValidPedModel`](https://trilogy-hub.com/docs/isValidPedModel/)

### getPedAmmoInClip

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca liczbę naboi w bieżącym magazynku broni, czyli ile strzałów zostało do przeładowania. Bez slotu dotyczy broni w ręku, ze slotem broni z tego slotu ekwipunku. Na kliencie zawsze dotyczy broni w ręku.

#### Składnia

```lua
int getPedAmmoInClip(ped ped [, int slot = nil])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `slot` (int, opcjonalny = nil) - Slot 0-12. Pominięty = broń w ręku. Na kliencie ignorowany.

#### Zwraca

Naboje w magazynku (0, gdy broń nie używa magazynka).

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    dxDrawText("Magazynek: " .. getPedAmmoInClip(localPlayer), 20, 400)
end)
```

#### Zobacz też

- [`getPedTotalAmmo`](https://trilogy-hub.com/docs/getPedTotalAmmo/)
- [`reloadPedWeapon`](https://trilogy-hub.com/docs/reloadPedWeapon/)

### getPedAnimation

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca blok i nazwę animacji, którą postać odtwarza (ustawionej przez `setPedAnimation`). Na kliencie dla postaci w tej grze zwraca też postęp (0-1) i prędkość animacji z pliku IFP. Gdy postać nie gra żadnej animacji, zwraca `false`.

#### Składnia

```lua
string, string, float, float getPedAnimation(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Blok, nazwa, a na kliencie dla animacji z pliku także postęp 0-1 i prędkość; albo `false`.

#### Przykład

```lua
addCommandHandler("anim", function(player)
    local block, anim = getPedAnimation(player)
    outputChatBox(block and (block .. "/" .. anim) or "brak animacji", player)
end)
```

#### Zobacz też

- [`setPedAnimation`](https://trilogy-hub.com/docs/setPedAnimation/)

### getPedArmor

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca pancerz (kamizelkę) postaci w skali 0-100. Pancerz przyjmuje obrażenia przed zdrowiem, więc postać z pełnym pancerzem wytrzyma mniej więcej dwa razy więcej strzałów. Na serwerze wartość pochodzi z ostatniego stanu wysłanego przez grę gracza, na kliencie wprost z gry.

#### Składnia

```lua
float getPedArmor(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Pancerz 0-100 albo `false` przy złym argumencie.

#### Przykład

```lua
addCommandHandler("pancerz", function(player)
    outputChatBox("Twój pancerz: " .. math.floor(getPedArmor(player)), player)
end)
```

#### Zobacz też

- [`setPedArmor`](https://trilogy-hub.com/docs/setPedArmor/)
- [`getElementHealth`](https://trilogy-hub.com/docs/getElementHealth/)

### getPedBonePosition

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca położenie w świecie wybranej kości szkieletu postaci, np. głowy albo dłoni. Na kliencie położenie jest dokładne i podąża za animacją (kość czytana z gry). Na serwerze serwer nie zna pozy postaci, więc zwraca przybliżenie: stałe przesunięcie kości względem stojącej postaci, obrócone zgodnie z jej kierunkiem. Numer kości jest (np. 8 głowa, 25 prawa dłoń, 35 lewa dłoń); na kliencie działa też numer kości gry.

#### Składnia

```lua
float, float, float getPedBonePosition(ped ped, int bone)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `bone` (int) - Numer kości: 1-2 miednica, 3 kręgosłup, 4 klatka piersiowa, 5 szyja, 6-8 głowa (8 = środek głowy), 21-26 prawa ręka (22 bark, 23 łokieć, 24 nadgarstek, 25 dłoń), 31-36 lewa ręka (35 = dłoń), 41-44 lewa noga (44 = stopa), 51-54 prawa noga (54 = stopa). Na kliencie można też podać indeks kości gry.

#### Zwraca

Współrzędne x, y, z kości albo `false`.

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    local x, y, z = getPedBonePosition(localPlayer, 8)
    if x then
        local sx, sy = getScreenFromWorldPosition(x, y, z + 0.3)
        if sx then dxDrawText("Ja", sx, sy) end
    end
end)
```

#### Zobacz też

- [`getPedBoneRotation`](https://trilogy-hub.com/docs/getPedBoneRotation/)
- [`getPedBoneTransform`](https://trilogy-hub.com/docs/getPedBoneTransform/)
- [`getBoneName`](https://trilogy-hub.com/docs/getBoneName/)

### getPedFocus

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Tylko Trilogy Hub*

Zwraca element, na który NPC stale patrzy (ustawiony przez `setPedFocus`), oraz czy obraca przy tym głowę. Na kliencie najpierw zwraca ustawienie lokalne, a gdy go nie ma, ustawienie z serwera. Gdy NPC na nic nie patrzy, zwraca `false`.

#### Składnia

```lua
element, bool getPedFocus(ped ped)
```

#### Argumenty

- `ped` (ped) - NPC.

#### Zwraca

Cel i `true`/`false` (czy także głowa) albo `false`.

#### Przykład

```lua
local target, head = getPedFocus(ped)
```

#### Zobacz też

- [`setPedFocus`](https://trilogy-hub.com/docs/setPedFocus/)

### getPedOccupiedVehicle

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca pojazd, w którym siedzi postać (jako kierowca albo pasażer). Gdy postać idzie pieszo, zwraca `false`. To najprostszy sposób, żeby sprawdzić, czym jedzie gracz, i np. naprawić mu auto albo zmienić kolor.

#### Składnia

```lua
vehicle getPedOccupiedVehicle(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Pojazd albo `false`, gdy postać jest pieszo.

#### Przykład

```lua
addCommandHandler("napraw", function(player)
    local car = getPedOccupiedVehicle(player)
    if car then fixVehicle(car) end
end)
```

#### Zobacz też

- [`getPedOccupiedVehicleSeat`](https://trilogy-hub.com/docs/getPedOccupiedVehicleSeat/)
- [`isPedInVehicle`](https://trilogy-hub.com/docs/isPedInVehicle/)
- [`warpPedIntoVehicle`](https://trilogy-hub.com/docs/warpPedIntoVehicle/)

### getPedOccupiedVehicleSeat

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca numer fotela, na którym siedzi postać: 0 to kierowca, 1 przedni pasażer, 2 i 3 tylne fotele (w autobusach i pociągach także dalsze numery). Gdy postać jest pieszo, zwraca `false`. Przydaje się, gdy komenda ma działać tylko dla kierowcy.

#### Składnia

```lua
int getPedOccupiedVehicleSeat(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Numer fotela (0 = kierowca) albo `false`.

#### Przykład

```lua
addCommandHandler("silnik", function(player)
    local car = getPedOccupiedVehicle(player)
    if car and getPedOccupiedVehicleSeat(player) == 0 then
        setVehicleEngineState(car, not getVehicleEngineState(car))
    end
end)
```

#### Zobacz też

- [`getPedOccupiedVehicle`](https://trilogy-hub.com/docs/getPedOccupiedVehicle/)
- [`getVehicleOccupant`](https://trilogy-hub.com/docs/getVehicleOccupant/)

### getPedStat

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca wartość statystyki postaci z gry San Andreas, np. umiejętności strzelania, kondycji, siły czy umiejętności jazdy. Statystyki mają zakres 0-1000 i wpływają na grę (np. 69-79 to umiejętności broni, przy 999 postać strzela z dwóch pistoletów). Na kliencie dla własnej postaci wartość jest czytana z gry, dla innych z serwera.

#### Składnia

```lua
float getPedStat(ped ped, int stat)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `stat` (int) - Numer statystyki 0-342, np. 22 kondycja, 23 siła, 24 maksymalne zdrowie, 69 umiejętność pistoletu, 160 jazda samochodem, 229 jazda motocyklem, 230 rower.

#### Zwraca

Wartość 0-1000 (0, gdy nie ustawiona).

#### Przykład

```lua
addCommandHandler("staty", function(player)
    outputChatBox("Pistolet: " .. getPedStat(player, 69) .. ", jazda: " .. getPedStat(player, 160), player)
end)
```

#### Zobacz też

- [`setPedStat`](https://trilogy-hub.com/docs/setPedStat/)

### getPedTotalAmmo

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca całą amunicję broni (w magazynku i zapasie razem). Bez slotu dotyczy broni trzymanej w ręku, ze slotem broni z tego slotu ekwipunku. Na kliencie zawsze dotyczy broni w ręku.

#### Składnia

```lua
int getPedTotalAmmo(ped ped [, int slot = nil])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `slot` (int, opcjonalny = nil) - Slot 0-12. Pominięty = broń w ręku. Na kliencie ignorowany.

#### Zwraca

Łączna liczba naboi.

#### Przykład

```lua
addCommandHandler("amunicja", function(player)
    outputChatBox("Naboje: " .. getPedTotalAmmo(player), player)
end)
```

#### Zobacz też

- [`getPedAmmoInClip`](https://trilogy-hub.com/docs/getPedAmmoInClip/)
- [`getPedWeapon`](https://trilogy-hub.com/docs/getPedWeapon/)
- [`setWeaponAmmo`](https://trilogy-hub.com/docs/setWeaponAmmo/)

### getPedWeapon

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca ID broni, którą postać trzyma w ręku (0 = pięści), albo broni w podanym slocie ekwipunku. Sloty to grupy broni: 0 pięści, 1 broń biała, 2 pistolety, 3 strzelby, 4 pistolety maszynowe, 5 karabiny szturmowe, 6 karabiny, 7 ciężka broń, 8 granaty, 9 spraye i gaśnice, 10 prezenty, 11 gogle i spadochron, 12 detonator. Na kliencie zwraca tylko broń w ręku.

#### Składnia

```lua
int getPedWeapon(ped ped [, int slot = nil])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `slot` (int, opcjonalny = nil) - Slot 0-12. Pominięty = broń trzymana w ręku. Na kliencie ignorowany.

#### Zwraca

ID broni (0 = brak / pięści) albo `false` przy złym argumencie.

#### Przykład

```lua
addCommandHandler("bron", function(player)
    local id = getPedWeapon(player)
    outputChatBox("Trzymasz: " .. (getWeaponNameFromID(id) or "nic"), player)
end)
```

#### Zobacz też

- [`getPedTotalAmmo`](https://trilogy-hub.com/docs/getPedTotalAmmo/)
- [`getPedWeaponSlot`](https://trilogy-hub.com/docs/getPedWeaponSlot/)
- [`giveWeapon`](https://trilogy-hub.com/docs/giveWeapon/)
- [`getWeaponNameFromID`](https://trilogy-hub.com/docs/getWeaponNameFromID/)

### getValidPedModels

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Zwraca listę wszystkich poprawnych numerów modeli postaci, czyli skinów, które można podać do `createPed`, `setElementModel` albo `spawnPlayer`. Lista pomija numery, pod którymi gra nie ma pieszego. Domyślnie dołącza też nowe modele postaci dodane skryptem przez `engineRequestModel`. Przydaje się do losowania skina albo do budowy menu wyboru postaci.

#### Składnia

```lua
table getValidPedModels([bool includeCustom = true])
```

#### Argumenty

- `includeCustom` (bool, opcjonalny = true) - `true` dołącza nowe modele postaci z `engineRequestModel`; `false` zwraca tylko modele z gry.

#### Zwraca

Tablica liczb (ID modeli) posortowana rosnąco.

#### Różnice względem MTA:SA

- W MTA:SA: `getValidPedModels()`

#### Przykład

```lua
local models = getValidPedModels(false)
addCommandHandler("losujskin", function(player)
    setElementModel(player, models[math.random(#models)])
end)
```

#### Zobacz też

- [`isValidPedModel`](https://trilogy-hub.com/docs/isValidPedModel/)
- [`createPed`](https://trilogy-hub.com/docs/createPed/)
- [`setElementModel`](https://trilogy-hub.com/docs/setElementModel/)

### isPedDamageProof

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Tylko Trilogy Hub*

Sprawdza, czy gracz albo NPC jest nietykalny (`setPedDamageProof`).

#### Składnia

```lua
bool isPedDamageProof(ped thePed)
```

#### Argumenty

- `thePed` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy nietykalny.

#### Przykład

```lua
if isPedDamageProof(localPlayer) then dxDrawText("OCHRONA", 20, 300) end
```

#### Zobacz też

- [`setPedDamageProof`](https://trilogy-hub.com/docs/setPedDamageProof/)

### isPedDead

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy gracz albo NPC nie żyje, czyli ma zero zdrowia albo leży martwy i czeka na odrodzenie. Na serwerze bierze pod uwagę stan zgłoszony przez grę gracza, na kliencie zdrowie widoczne w tej grze. Martwego gracza ożywia dopiero `spawnPlayer`.

#### Składnia

```lua
bool isPedDead(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy postać nie żyje.

#### Przykład

```lua
addCommandHandler("lecz", function(player)
    if isPedDead(player) then
        outputChatBox("Najpierw musisz się odrodzić.", player)
        return
    end
    setElementHealth(player, 100)
end)
```

#### Zobacz też

- [`killPed`](https://trilogy-hub.com/docs/killPed/)
- [`getElementHealth`](https://trilogy-hub.com/docs/getElementHealth/)
- [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/)

### isPedDoingGangDriveby

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zwraca wartość ustawioną przez `setPedDoingGangDriveby`. Domyślnie `false`.

#### Składnia

```lua
bool isPedDoingGangDriveby(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

Zapisany stan.

#### Przykład

```lua
outputServerLog(tostring(isPedDoingGangDriveby(player)))
```

#### Zobacz też

- [`setPedDoingGangDriveby`](https://trilogy-hub.com/docs/setPedDoingGangDriveby/)

### isPedDucked

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy postać kuca (klawisz kucania). Na serwerze stan pochodzi z gry gracza, na kliencie wprost z gry. Kucająca postać jest mniejszym celem i porusza się wolniej.

#### Składnia

```lua
bool isPedDucked(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy kuca.

#### Przykład

```lua
if isPedDucked(player) then outputChatBox("Kucasz.", player) end
```

#### Zobacz też

- [`isPedOnGround`](https://trilogy-hub.com/docs/isPedOnGround/)

### isPedInVehicle

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy postać siedzi w jakimkolwiek pojeździe (na dowolnym fotelu). Zwraca `false` także w trakcie wsiadania, zanim postać zajmie fotel. Gdy potrzebujesz samego pojazdu, użyj `getPedOccupiedVehicle`.

#### Składnia

```lua
bool isPedInVehicle(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy postać jest w pojeździe.

#### Przykład

```lua
addCommandHandler("teleport", function(player)
    if isPedInVehicle(player) then
        outputChatBox("Najpierw wysiądź z pojazdu.", player)
        return
    end
    setElementPosition(player, 2495, -1687, 13.5)
end)
```

#### Zobacz też

- [`getPedOccupiedVehicle`](https://trilogy-hub.com/docs/getPedOccupiedVehicle/)
- [`removePedFromVehicle`](https://trilogy-hub.com/docs/removePedFromVehicle/)

### isPedOnFire

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy postać się pali. Na serwerze zwraca `true`, gdy skrypt ustawił to przez `setPedOnFire` albo gdy gra gracza zgłasza, że naprawdę płonie (np. wszedł w ogień albo trafił go miotacz ognia). Na kliencie odczytuje stan wprost z gry.

#### Składnia

```lua
bool isPedOnFire(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.

#### Zwraca

`true`, gdy płonie.

#### Przykład

```lua
setTimer(function()
    for _, p in ipairs(getElementsByType("player")) do
        if isPedOnFire(p) then outputChatBox("Płoniesz! Wskocz do wody.", p) end
    end
end, 1000, 0)
```

#### Zobacz też

- [`setPedOnFire`](https://trilogy-hub.com/docs/setPedOnFire/)
- [`createFire`](https://trilogy-hub.com/docs/createFire/)

### isPedWearingJetpack

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Sprawdza, czy gracz ma na sobie plecak odrzutowy. Stan pochodzi z gry gracza; przez 2 sekundy po `setPedWearingJetpack` serwer zwraca wartość, którą właśnie ustawił, zanim gra potwierdzi zmianę.

#### Składnia

```lua
bool isPedWearingJetpack(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz (dla NPC zawsze `false`).

#### Zwraca

`true`, gdy ma plecak.

#### Przykład

```lua
if isPedWearingJetpack(player) then outputChatBox("Latasz!", player) end
```

#### Zobacz też

- [`setPedWearingJetpack`](https://trilogy-hub.com/docs/setPedWearingJetpack/)

### isValidPedModel

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Tylko Trilogy Hub*

Sprawdza, czy podany numer modelu jest prawdziwym modelem postaci, którego można użyć w `createPed`, `setElementModel` albo `spawnPlayer`. Uznaje modele z gry (0-311 poza pustymi numerami) oraz nowe postacie dodane przez `engineRequestModel`. Warto wywołać ją przed ustawieniem skina, który podał gracz w komendzie.

#### Składnia

```lua
bool isValidPedModel(int model)
```

#### Argumenty

- `model` (int) - Numer modelu do sprawdzenia.

#### Zwraca

`true`, gdy to poprawny model postaci, w przeciwnym razie `false`.

#### Przykład

```lua
addCommandHandler("skin", function(player, _, id)
    id = tonumber(id)
    if not id or not isValidPedModel(id) then
        outputChatBox("Nie ma takiego skina.", player, 255, 80, 80)
        return
    end
    setElementModel(player, id)
end)
```

#### Zobacz też

- [`getValidPedModels`](https://trilogy-hub.com/docs/getValidPedModels/)
- [`createPed`](https://trilogy-hub.com/docs/createPed/)

### reloadPedWeapon

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Każe postaci przeładować broń, którą trzyma, tak jak po naciśnięciu klawisza przeładowania. Na serwerze polecenie trafia do gry gracza, a dla NPC zostaje zapisane jako prośba o przeładowanie. Na kliencie działa tylko dla gracza lokalnego.

#### Składnia

```lua
bool reloadPedWeapon(ped ped)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC. Na kliencie tylko `localPlayer`.

#### Zwraca

`true`, gdy polecenie zostało wysłane.

#### Przykład

```lua
addCommandHandler("przeladuj", function(player)
    reloadPedWeapon(player)
end)
```

#### Zobacz też

- [`getPedAmmoInClip`](https://trilogy-hub.com/docs/getPedAmmoInClip/)
- [`isPedReloadingWeapon`](https://trilogy-hub.com/docs/isPedReloadingWeapon/)

### setPedAnimation

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Odtwarza animację na postaci. Animacja pochodzi z bloku animacji gry (np. `ped`, `dancing`, `smoking`) albo z pliku IFP wczytanego przez `engineLoadIFP`. Wywołanie bez bloku przerywa animację. Na serwerze animacja trafia do wszystkich graczy. Na kliencie działa tylko w tej grze: dla gracza lokalnego inni widzą ją dzięki przesyłaniu pozy, dla zdalnego gracza funkcja zwraca `false`, bo jego wygląd przychodzi z jego gry.

#### Składnia

```lua
bool setPedAnimation(ped ped [, string block = nil, string anim = nil, int time = -1, bool loop = true, bool updatePosition = true, bool interruptable = true, bool freezeLastFrame = true, int blendTime = 250, bool retainPedState = false, bool movable = auto])
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `block` (string, opcjonalny = nil) - Nazwa bloku animacji, np. `"ped"`, `"dancing"`, `"BEACH"`, albo blok z `engineLoadIFP`. Pominięty = koniec animacji.
- `anim` (string, opcjonalny = nil) - Nazwa animacji w bloku, np. `"WEAPON_crouch"`, `"dnce_M_a"`.
- `time` (int, opcjonalny = -1) - Jak długo animacja ma trwać w ms; -1 = cała (albo bez końca przy pętli).
- `loop` (bool, opcjonalny = true) - `true` = animacja zapętlona.
- `updatePosition` (bool, opcjonalny = true) - `true` = animacja przesuwa postać (np. chodzenie), `false` = postać stoi w miejscu.
- `interruptable` (bool, opcjonalny = true) - `true` = gracz może przerwać animację ruchem.
- `freezeLastFrame` (bool, opcjonalny = true) - `true` = po końcu animacji postać zostaje w ostatniej klatce.
- `blendTime` (int, opcjonalny = 250) - Czas płynnego przejścia z poprzedniej pozy w ms.
- `retainPedState` (bool, opcjonalny = false) - `true` = postać zachowuje stan (np. broń w ręku) po animacji.
- `movable` (bool, opcjonalny = auto) - `true` = animacja gra tylko na górnej części ciała i postać dalej chodzi, biega i skręca (jak noszenie paczki `CARRY`/`crry_prtial` w grze). Pominięty = `true` dla animacji z `prtial` w nazwie, inaczej `false`.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setPedAnimation(ped thePed, string block = nil, string anim = nil, int time = -1, bool loop = true, bool updatePosition = true, bool interruptable = true, bool freezeLastFrame = true, int blendTime = 250, bool retainPedState = false)`

#### Przykład

```lua
addCommandHandler("tancz", function(player)
    setPedAnimation(player, "dancing", "dnce_M_a", -1, true, false)
end)
addCommandHandler("stop", function(player)
    setPedAnimation(player)
end)
```

#### Zobacz też

- [`getPedAnimation`](https://trilogy-hub.com/docs/getPedAnimation/)
- [`setPedAnimationProgress`](https://trilogy-hub.com/docs/setPedAnimationProgress/)
- [`setPedAnimationSpeed`](https://trilogy-hub.com/docs/setPedAnimationSpeed/)
- [`engineLoadIFP`](https://trilogy-hub.com/docs/engineLoadIFP/)

### setPedAnimationProgress

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Przewija bieżącą animację postaci do wybranego miejsca (0 = początek, 1 = koniec). Na serwerze dotyczy animacji ustawionej przez `setPedAnimation` serwera i trafia do wszystkich graczy. Na kliencie dotyczy animacji z pliku IFP odtwarzanej na postaci w tej grze, a nazwa animacji musi się zgadzać z bieżącą.

#### Składnia

```lua
bool setPedAnimationProgress(ped ped, string anim, float progress)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `anim` (string) - Nazwa animacji, która ma być przewinięta (musi być tą, która gra).
- `progress` (float) - Pozycja od 0 (początek) do 1 (koniec).

#### Zwraca

`true` przy powodzeniu, `false` gdy postać nie gra tej animacji.

#### Przykład

```lua
setPedAnimation(ped, "ped", "WALK_civi", -1, true, false)
setPedAnimationProgress(ped, "WALK_civi", 0.5)
```

#### Zobacz też

- [`setPedAnimation`](https://trilogy-hub.com/docs/setPedAnimation/)
- [`setPedAnimationSpeed`](https://trilogy-hub.com/docs/setPedAnimationSpeed/)

### setPedAnimationSpeed

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Zmodyfikowana względem MTA:SA*

Zmienia prędkość odtwarzania bieżącej animacji postaci: 1 = normalnie, 0.5 = dwa razy wolniej, 0 = zatrzymana. Na serwerze dotyczy animacji z `setPedAnimation` serwera, na kliencie animacji z pliku IFP na postaci w tej grze.

#### Składnia

```lua
bool setPedAnimationSpeed(ped ped, string anim, float speed)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `anim` (string) - Nazwa animacji, która gra.
- `speed` (float) - Prędkość 0-1 (1 = normalna).

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA: `setPedAnimationSpeed(ped thePed, string anim = "", float speed = 1.0)`

#### Przykład

```lua
setPedAnimation(ped, "dancing", "dnce_M_a")
setPedAnimationSpeed(ped, "dnce_M_a", 0.5)
```

#### Zobacz też

- [`setPedAnimation`](https://trilogy-hub.com/docs/setPedAnimation/)
- [`setPedAnimationProgress`](https://trilogy-hub.com/docs/setPedAnimationProgress/)

### setPedDamageProof

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Tylko Trilogy Hub*

Robi gracza albo NPC nietykalnym (albo zdejmuje nietykalność). Gracz nie dostaje obrażeń od innych graczy (strzały, ciosy, nóż od tyłu) ani z gry (upadek, ogień, wybuch, auto); obrażenia z gry są cofane i zdrowie wraca u gracza od razu. NPC nie dostaje obrażeń w żadnej grze, a serwer odrzuca jego trafienia. Stan widzą wszyscy (`isPedDamageProof` po obu stronach). Po stronie klienta działa tylko na NPC i tylko u tego gracza.

#### Składnia

*Serwer*

```lua
bool setPedDamageProof(ped thePed, bool enabled)
```

*Klient*

```lua
bool setPedDamageProof(ped thePed, bool enabled)
```

#### Argumenty

- `thePed` (ped) - Gracz albo NPC (na kliencie tylko NPC).
- `enabled` (bool) - `true` = nietykalny.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Tryb ochrony na spawnie przez 5 sekund.

```lua
addEventHandler("onPlayerSpawn", root, function()
    local player = source
    setPedDamageProof(player, true)
    setTimer(function()
        if isElement(player) then setPedDamageProof(player, false) end
    end, 5000, 1)
end)
```

#### Uwagi

> **Uwaga:** Jednorazowe blokowanie trafień: `cancelEvent()` w `onPlayerDamage` (NPC: `onClientPedDamage`). `setElementHealth` i `killPed` ze skryptu działają dalej, także na nietykalnym NPC.

#### Zobacz też

- [`isPedDamageProof`](https://trilogy-hub.com/docs/isPedDamageProof/)
- [`onPlayerDamage`](https://trilogy-hub.com/docs/onPlayerDamage/)
- [`setElementHealth`](https://trilogy-hub.com/docs/setElementHealth/)

### setPedEnterVehicle

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Każe postaci wsiąść do pojazdu w zwykły sposób, z podejściem i animacją otwierania drzwi. Po stronie klienta działa tylko dla gracza lokalnego: gracz sam podchodzi do pojazdu w promieniu 10 m i wsiada (inne postacie dają `false`). Po stronie serwera zapisuje zadanie postaci i wysyła wszystkim klientom zdarzenie `onClientPedEnterRequest` (postać, pojazd, fotel), które skrypt klienta może obsłużyć; sama postać na serwerze jeszcze nie podchodzi.

#### Składnia

```lua
bool setPedEnterVehicle(ped ped [, vehicle vehicle = nil, int/bool seat = 0])
```

#### Argumenty

- `ped` (ped) - Postać, która ma wsiąść. Na kliencie musi to być `localPlayer`.
- `vehicle` (vehicle, opcjonalny = nil) - Pojazd. Pominięty = najbliższy pojazd (klient: do 10 m, serwer: do 10 m).
- `seat` (int/bool, opcjonalny = 0) - Fotel: liczba 0-8 (0 = kierowca), `true` = najbliższy wolny fotel pasażera (tylko klient), `false`/pominięty = kierowca.

#### Zwraca

`true`, gdy polecenie zostało przyjęte.

#### Przykład

```lua
bindKey("g", "down", function()
    if not isPedInVehicle(localPlayer) then
        setPedEnterVehicle(localPlayer, nil, true)
    end
end)
```

#### Zobacz też

- [`warpPedIntoVehicle`](https://trilogy-hub.com/docs/warpPedIntoVehicle/)
- [`setPedExitVehicle`](https://trilogy-hub.com/docs/setPedExitVehicle/)

### setPedFocus

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Tylko Trilogy Hub*

Każe NPC stale patrzeć na wybrany element: postać obraca się całym ciałem w jego stronę, a opcjonalnie także głową, i podąża za nim, gdy się przesuwa. Na serwerze ustawienie widzą wszyscy gracze. Na kliencie działa tylko w tej grze i ma pierwszeństwo przed ustawieniem z serwera; `nil` przywraca to, co ustawił serwer. Przydaje się dla sprzedawców, strażników i NPC w scenkach.

#### Składnia

```lua
bool setPedFocus(ped ped, element target [, bool head = true])
```

#### Argumenty

- `ped` (ped) - NPC (element typu `ped`).
- `target` (element) - Element, na który ma patrzeć (gracz, pojazd, obiekt...), inny niż sam NPC. `nil` = koniec.
- `head` (bool, opcjonalny = true) - `true` = obraca także głowę, `false` = tylko ciało.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    setPedFocus(shopkeeper, source, true)
end)
```

#### Zobacz też

- [`getPedFocus`](https://trilogy-hub.com/docs/getPedFocus/)
- [`setPedLookAt`](https://trilogy-hub.com/docs/setPedLookAt/)

### setPedOnFire

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Podpala albo gasi postać. Gracz zaczyna płonąć w swojej grze naprawdę: widać ogień i traci zdrowie, aż ogień zgaśnie sam albo do `setPedOnFire(gracz, false)`. Dla NPC wartość jest zapamiętywana dla skryptów. `isPedOnFire` gracza pokazuje, czy jego postać naprawdę płonie.

#### Składnia

```lua
bool setPedOnFire(ped ped, bool value)
```

#### Argumenty

- `ped` (ped) - Gracz albo NPC.
- `value` (bool) - `true` = pali się, `false` = nie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("podpal", function(player)
    setPedOnFire(player, true)
end)
```

#### Uwagi

> **Uwaga:** **Ogień gaśnie sam.** Tak jak w grze, ogień na postaci po chwili gaśnie, więc `isPedOnFire` wraca potem do `false`. U klienta własną postać podpalisz tą samą funkcją.

#### Zobacz też

- [`isPedOnFire`](https://trilogy-hub.com/docs/isPedOnFire/)
- [`createFire`](https://trilogy-hub.com/docs/createFire/)

### setPedWearingJetpack

*Funkcja · Strona: Serwer i klient · Kategoria: Postacie · Identyczna z MTA:SA*

Zakłada graczowi plecak odrzutowy (jetpack) albo go zdejmuje. Polecenie trafia od razu do gry gracza, więc może on natychmiast wystartować. Działa tylko dla graczy (nie dla NPC); gdy gracz siedzi w pojeździe, nie da się założyć plecaka.

#### Składnia

```lua
bool setPedWearingJetpack(player ped, bool state)
```

#### Argumenty

- `ped` (player) - Gracz.
- `state` (bool) - `true` = załóż, `false` = zdejmij.

#### Zwraca

`true` przy powodzeniu, `false` dla NPC albo gracza w pojeździe.

#### Przykład

```lua
addCommandHandler("jetpack", function(player)
    setPedWearingJetpack(player, not isPedWearingJetpack(player))
end)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta tylko dla `localPlayer` (innym graczom i NPC - z serwera).

#### Zobacz też

- [`isPedWearingJetpack`](https://trilogy-hub.com/docs/isPedWearingJetpack/)

### attachElementToBone

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Przyczepia element (np. obiekt) do kości postaci, z przesunięciem i obrotem. Element porusza się z kością, np. czapka z głową albo broń w dłoni. Numery kości są takie same jak w `getBoneIDs` (np. 1 miednica, 8 głowa, 25 prawa dłoń, 35 lewa dłoń).

#### Składnia

```lua
bool attachElementToBone(element theElement, ped thePed, int bone [, float offX, offY, offZ = 0, float offRotX, offRotY, offRotZ = 0, bool follow = true])
```

#### Argumenty

- `theElement` (element) - Element do przyczepienia.
- `thePed` (ped) - Postać.
- `bone` (int) - Numer kości.
- `offX, offY, offZ` (float, opcjonalny = 0) - Przesunięcie.
- `offRotX, offRotY, offRotZ` (float, opcjonalny = 0) - Obrót w stopniach.
- `follow` (bool, opcjonalny = true) - Czy element ma trzymać się kości cały czas i podążać za nią, gdy postać biega i porusza się (domyślnie tak). `false` = element staje raz w miejscu kości i tam zostaje.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Gracz trzyma w prawej dłoni pudełko.

```lua
addCommandHandler("paczka", function(player)
    local box = createObject(1271, 0, 0, 0)
    attachElementToBone(box, player, 25, 0.05, 0.1, 0, 0, 0, 0)
end)
```

#### Uwagi

> **Uwaga:** Działa po obu stronach. Na serwerze widzą to wszyscy gracze, a w skrypcie klienta tylko ten gracz (np. lokalny obiekt w dłoni innego gracza).

> **Uwaga:** Przesunięcie i obrót zmienisz później bez ponownego przyczepiania: `setElementBonePositionOffset`, `setElementBoneRotationOffset`.

> **Uwaga:** **Osie przesunięcia.** `offX, offY, offZ` i obrót są w układzie kości - tym samym, który zwraca `getPedBoneMatrix` (wiersz 1 = oś X, 2 = Y, 3 = Z). Najprościej dobrać przesunięcie, rysując osie z `getPedBoneMatrix` przez `dxDrawLine3D`. Działa też dla obiektów z własnym modelem (`engineReplaceModel`). `getElementPosition` przyczepionego elementu daje pozycję z bieżącej klatki.

#### Zobacz też

- [`detachElementFromBone`](https://trilogy-hub.com/docs/detachElementFromBone/)
- [`setElementBonePositionOffset`](https://trilogy-hub.com/docs/setElementBonePositionOffset/)
- [`setElementBoneRotationOffset`](https://trilogy-hub.com/docs/setElementBoneRotationOffset/)
- [`attachElements`](https://trilogy-hub.com/docs/attachElements/)

### base64Decode

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Dekoduje tekst base64 z powrotem do danych.

#### Składnia

```lua
string base64Decode(string data)
```

#### Argumenty

- `data` (string) - Tekst base64.

#### Zwraca

Odkodowane dane.

#### Przykład

```lua
outputServerLog(base64Decode("R3JvdmUgU3RyZWV0")) -- Grove Street
```

#### Zobacz też

- [`base64Encode`](https://trilogy-hub.com/docs/base64Encode/)

### base64Encode

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Koduje tekst albo dane binarne w base64 (np. obrazek do przesłania jako tekst).

#### Składnia

```lua
string base64Encode(string data)
```

#### Argumenty

- `data` (string) - Dane.

#### Zwraca

Tekst base64.

#### Przykład

```lua
outputServerLog(base64Encode("Grove Street")) -- R3JvdmUgU3RyZWV0
```

#### Zobacz też

- [`base64Decode`](https://trilogy-hub.com/docs/base64Decode/)

### createExplosion

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Zmodyfikowana względem MTA:SA*

Robi wybuch w danym miejscu. Na serwerze wybuch widzą wszyscy gracze i rani tak jak w grze; u klienta wybuch jest tylko w tej grze (wywołuje `onClientExplosion`, które może go anulować). Typy 0-12: 0 granat, 1 mołotow, 2 rakieta, 3 słaba rakieta, 4 auto, 5 szybki wybuch auta, 6 łódź, 7 helikopter, 8 mina, 9 obiekt, 10 pocisk czołgu, 11 mały, 12 bardzo mały.

#### Składnia

*Serwer*

```lua
bool createExplosion(float x, float y, float z, int theType [, player creator])
```

*Klient*

```lua
bool createExplosion(float x, float y, float z, int theType [, bool makeSound, float camShake, bool damaging])
```

#### Argumenty

- `x, y, z` (float) - Miejsce wybuchu.
- `theType` (int) - Typ 0-12.
- `creator` (player, opcjonalny) - Kto „spowodował” wybuch (tylko serwer).

#### Zwraca

`true`, gdy wybuch powstał.

#### Różnice względem MTA:SA

- W MTA:SA: `createExplosion()`

#### Przykład

```lua
addCommandHandler("bum", function(player)
    local x, y, z = getElementPosition(player)
    createExplosion(x + 8, y, z, 2, player)
end)
```

#### Zobacz też

- [`onExplosion`](https://trilogy-hub.com/docs/onExplosion/)
- [`onClientExplosion`](https://trilogy-hub.com/docs/onClientExplosion/)
- [`createFire`](https://trilogy-hub.com/docs/createFire/)

### decodeString

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Odszyfrowuje, dekoduje albo rozpakowuje dane z `encodeString`, także zrobione na innym serwerze. Przy `aes128` podajesz klucz i `iv`, przy `rsa` klucz prywatny, przy `zlib` format można pominąć: gzip, zlib i raw są rozpoznawane po nagłówku. Znaki spoza alfabetu `base64` i `base32` są pomijane. Działa na serwerze i u gracza.

#### Składnia

```lua
string decodeString(string algorithm, string input [, table options, function callback])
```

#### Argumenty

- `algorithm` (string) - Jak w `encodeString`.
- `input` (string) - Dane.
- `options` (table, opcjonalny) - `{ key = "...", iv = "..." }`, `{ variant = "url" }`, `{ format = "gzip" }`.
- `callback` (function, opcjonalny) - Funkcja dostaje wynik w następnej klatce.

#### Zwraca

Wynik albo `false` i ostrzeżenie (np. `zlib error: -3` przy uszkodzonych danych).

#### Przykład

```lua
local private, public = generateKeyPair("rsa", { size = 2048 })
local secret = encodeString("rsa", "wiadomosc", { key = public })
outputServerLog(decodeString("rsa", secret, { key = private }))
```

#### Zobacz też

- [`encodeString`](https://trilogy-hub.com/docs/encodeString/)

### detachElementFromBone

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Odczepia element przyczepiony do kości przez `attachElementToBone`. Element wraca na swoją pozycję (tę z `setElementPosition`), więc jeśli ma zostać w miejscu dłoni, ustaw mu pozycję przed odczepieniem.

#### Składnia

```lua
bool detachElementFromBone(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
detachElementFromBone(box)
```

#### Zobacz też

- [`attachElementToBone`](https://trilogy-hub.com/docs/attachElementToBone/)

### encodeString

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Szyfruje, koduje albo kompresuje tekst. Działa na serwerze i u gracza. Algorytmy: `tea` (surowe bajty TEA, bez base64), `aes128` (klucz dokładnie 16 znaków; zwraca też losowy `iv`, potrzebny do odszyfrowania), `rsa` (klucz publiczny z `generateKeyPair`), `base64` (wariant `url`), `base32` (alfabet Crypto++, wariant `hex` = RFC 4648 base32hex), `zlib` (format `gzip`, `zlib` albo `raw`, stopień 0-9, strategia). Przy `base64`, `base32` i `zlib` tabela opcji może zostać pominięta. Z funkcją zwrotną wynik przychodzi do niej w następnej klatce, a funkcja zwraca `true`.

#### Składnia

```lua
string encodeString(string algorithm, string input [, table options, function callback])
```

#### Argumenty

- `algorithm` (string) - `"tea"`, `"aes128"`, `"rsa"`, `"base64"`, `"base32"` albo `"zlib"`.
- `input` (string) - Dane.
- `options` (table, opcjonalny) - `tea`/`aes128`/`rsa`: `{ key = "..." }`; `base64`: `{ variant = "url" }`; `base32`: `{ variant = "hex" }`; `zlib`: `{ format = "gzip"|"zlib"|"raw" albo windowBits, compression = 0-9, strategy = "default"|"filtered"|"huffman"|"rle"|"fixed" }` (domyślnie gzip, 9).
- `callback` (function, opcjonalny) - Funkcja dostaje wynik (przy `aes128` także `iv`).

#### Zwraca

Wynik (przy `aes128` także `iv`) albo `false` i ostrzeżenie.

#### Przykład

```lua
local key = "0123456789abcdef"
local data, iv = encodeString("aes128", "tajne dane", { key = key })
local plain = decodeString("aes128", data, { key = key, iv = iv })
```

```lua
-- duze dane przed wyslaniem na serwer
local packed = encodeString("zlib", toJSON(stats), { format = "zlib", compression = 6 })
triggerServerEvent("stats:save", localPlayer, packed)
```

#### Zobacz też

- [`decodeString`](https://trilogy-hub.com/docs/decodeString/)
- [`teaEncode`](https://trilogy-hub.com/docs/teaEncode/)
- [`generateKeyPair`](https://trilogy-hub.com/docs/generateKeyPair/)

### fromJSON

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Odczytuje tekst JSON i zwraca wartość Lua. Tablica najwyższego poziomu (tak zapisuje `toJSON`) rozpakowuje się na kilka wyników. Uszkodzony JSON daje `nil` i ostrzeżenie z pozycją błędu.

#### Składnia

```lua
mixed fromJSON(string json)
```

#### Argumenty

- `json` (string) - Tekst JSON.

#### Zwraca

Odczytane wartości albo `nil`.

#### Przykład

```lua
local data = fromJSON('[{"money":500}]')
outputServerLog(data.money) -- 500
```

#### Zobacz też

- [`toJSON`](https://trilogy-hub.com/docs/toJSON/)

### generateKeyPair

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Tworzy parę kluczy RSA: prywatny (PKCS#8) i publiczny (X.509), oba jako dane binarne DER. Do zapisu w pliku albo bazie zamień je na tekst, np. `base64Encode`. `encodeString`/`decodeString` przyjmują też klucze PEM. Rozmiar 512-8192 bitów (domyślnie 2048; u gracza wielokrotność 64). Z funkcją zwrotną klucze przychodzą do niej.

#### Składnia

```lua
string, string generateKeyPair(string algorithm, table options [, function callback])
```

#### Argumenty

- `algorithm` (string) - `"rsa"`.
- `options` (table) - `{ size = 2048 }`.
- `callback` (function, opcjonalny) - `function(privateKey, publicKey)`.

#### Zwraca

Klucz prywatny i publiczny albo `false`.

#### Przykład

```lua
local private, public = generateKeyPair("rsa", { size = 2048 })
local file = fileCreate("klucz_publiczny.txt")
fileWrite(file, base64Encode(public))
fileClose(file)
```

#### Zobacz też

- [`encodeString`](https://trilogy-hub.com/docs/encodeString/)
- [`decodeString`](https://trilogy-hub.com/docs/decodeString/)

### getAircraftMaxHeight

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca wysokość zapisaną przez `setAircraftMaxHeight` (domyślnie 800).

#### Składnia

```lua
float getAircraftMaxHeight()
```

#### Zwraca

Wysokość.

#### Przykład

```lua
outputServerLog(getAircraftMaxHeight())
```

#### Zobacz też

- [`setAircraftMaxHeight`](https://trilogy-hub.com/docs/setAircraftMaxHeight/)

### getAircraftMaxVelocity

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca prędkość zapisaną przez `setAircraftMaxVelocity` (domyślnie 1.5).

#### Składnia

```lua
float getAircraftMaxVelocity()
```

#### Zwraca

Prędkość.

#### Przykład

```lua
outputServerLog(getAircraftMaxVelocity())
```

#### Zobacz też

- [`setAircraftMaxVelocity`](https://trilogy-hub.com/docs/setAircraftMaxVelocity/)

### getAllElementData

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca wszystkie dane elementu ustawione przez `setElementData` jako tabelę klucz -> wartość.

#### Składnia

```lua
table getAllElementData(element theElement)
```

#### Argumenty

- `theElement` (element) - Element.

#### Zwraca

Tabela danych albo `false`.

#### Przykład

```lua
for key, value in pairs(getAllElementData(player)) do
    outputServerLog(key .. " = " .. tostring(value))
end
```

#### Zobacz też

- [`setElementData`](https://trilogy-hub.com/docs/setElementData/)
- [`getElementData`](https://trilogy-hub.com/docs/getElementData/)

### getBodyPartName

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca angielską nazwę części ciała po numerze z obrażeń (3-9): `Torso`, `Ass`, `Left Arm`, `Right Arm`, `Left Leg`, `Right Leg`, `Head`.

#### Składnia

```lua
string getBodyPartName(int bodyPartID)
```

#### Argumenty

- `bodyPartID` (int) - Numer części ciała.

#### Zwraca

Nazwa albo `false`.

#### Przykład

```lua
addEventHandler("onPlayerDamage", root, function(attacker, weapon, bodypart, loss)
    outputChatBox("Trafienie w: " .. tostring(getBodyPartName(bodypart)), source)
end)
```

#### Zobacz też

- [`onPlayerDamage`](https://trilogy-hub.com/docs/onPlayerDamage/)

### getCloudsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca ustawienie z `setCloudsEnabled` (domyślnie `true`).

#### Składnia

```lua
bool getCloudsEnabled()
```

#### Zwraca

`true`, gdy chmury są włączone.

#### Przykład

```lua
outputServerLog(tostring(getCloudsEnabled()))
```

#### Zobacz też

- [`setCloudsEnabled`](https://trilogy-hub.com/docs/setCloudsEnabled/)

### getDistanceBetweenPoints2D

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Liczy odległość między dwoma punktami na płaszczyźnie (bez wysokości).

#### Składnia

```lua
float getDistanceBetweenPoints2D(float x1, float y1, float x2, float y2)
```

#### Argumenty

- `x1` (float) - X pierwszego punktu.
- `y1` (float) - Y pierwszego punktu.
- `x2` (float) - X drugiego punktu.
- `y2` (float) - Y drugiego punktu.

#### Zwraca

Odległość w metrach.

#### Przykład

```lua
local x, y = getElementPosition(player)
if getDistanceBetweenPoints2D(x, y, 2495, -1687) < 50 then
    outputChatBox("Jesteś na Grove Street.", player)
end
```

#### Zobacz też

- [`getDistanceBetweenPoints3D`](https://trilogy-hub.com/docs/getDistanceBetweenPoints3D/)

### getDistanceBetweenPoints3D

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Liczy odległość między dwoma punktami w przestrzeni.

#### Składnia

```lua
float getDistanceBetweenPoints3D(float x1, float y1, float z1, float x2, float y2, float z2)
```

#### Argumenty

- `x1` (float) - X pierwszego punktu.
- `y1` (float) - Y pierwszego punktu.
- `z1` (float) - Z pierwszego punktu.
- `x2` (float) - X drugiego punktu.
- `y2` (float) - Y drugiego punktu.
- `z2` (float) - Z drugiego punktu.

#### Zwraca

Odległość w metrach.

#### Przykład

```lua
local function near(a, b, range)
    local x1, y1, z1 = getElementPosition(a)
    local x2, y2, z2 = getElementPosition(b)
    return getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) <= range
end
```

#### Zobacz też

- [`getDistanceBetweenPoints2D`](https://trilogy-hub.com/docs/getDistanceBetweenPoints2D/)
- [`getElementPosition`](https://trilogy-hub.com/docs/getElementPosition/)

### getEasingValue

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca wartość krzywej wygładzania dla postępu 0-1: `Linear`, `InQuad`, `OutQuad`, `InOutQuad`, `OutInQuad`, `InElastic`, `OutElastic`, `InOutElastic`, `OutInElastic`, `InBack`, `OutBack`, `InOutBack`, `OutInBack`, `InBounce`, `OutBounce`, `InOutBounce`, `OutInBounce`, `SineCurve`, `CosineCurve`. Przydaje się do płynnych animacji interfejsu.

#### Składnia

```lua
float getEasingValue(float fProgress, string strEasingType [, float fEasingPeriod, float fEasingAmplitude, float fEasingOvershoot])
```

#### Argumenty

- `fProgress` (float) - Postęp 0-1.
- `strEasingType` (string) - Rodzaj krzywej.
- `fEasingPeriod` (float, opcjonalny) - Okres (krzywe `Elastic`).
- `fEasingAmplitude` (float, opcjonalny) - Amplituda (krzywe `Elastic`).
- `fEasingOvershoot` (float, opcjonalny) - Przestrzał (krzywe `Back`).

#### Zwraca

Wartość krzywej.

#### Przykład

```lua
local start = getTickCount()
addEventHandler("onClientRender", root, function()
    local p = math.min(1, (getTickCount() - start) / 600)
    local x = 300 * getEasingValue(p, "OutBack")
    dxDrawRectangle(x, 200, 80, 30, tocolor(255, 122, 34))
end)
```

#### Zobacz też

- [`interpolateBetween`](https://trilogy-hub.com/docs/interpolateBetween/)

### getFarClipDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca zasięg rysowania zapisany przez `setFarClipDistance` (domyślnie 800).

#### Składnia

```lua
float getFarClipDistance()
```

#### Zwraca

Zasięg.

#### Przykład

```lua
outputServerLog(getFarClipDistance())
```

#### Zobacz też

- [`setFarClipDistance`](https://trilogy-hub.com/docs/setFarClipDistance/)
- [`resetFarClipDistance`](https://trilogy-hub.com/docs/resetFarClipDistance/)

### getFogDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca odległość mgły zapisaną przez `setFogDistance` (domyślnie 100).

#### Składnia

```lua
float getFogDistance()
```

#### Zwraca

Odległość.

#### Przykład

```lua
outputServerLog(getFogDistance())
```

#### Zobacz też

- [`setFogDistance`](https://trilogy-hub.com/docs/setFogDistance/)
- [`resetFogDistance`](https://trilogy-hub.com/docs/resetFogDistance/)

### getFPSLimit

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca limit zapisany przez `setFPSLimit` (domyślnie 36).

#### Składnia

```lua
int getFPSLimit()
```

#### Zwraca

Limit.

#### Przykład

```lua
outputServerLog(getFPSLimit())
```

#### Zobacz też

- [`setFPSLimit`](https://trilogy-hub.com/docs/setFPSLimit/)

### getGameSpeed

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca prędkość gry ustawioną przez `setGameSpeed` (domyślnie 1).

#### Składnia

```lua
float getGameSpeed()
```

#### Zwraca

Prędkość.

#### Przykład

```lua
outputServerLog("Prędkość gry: " .. getGameSpeed())
```

#### Zobacz też

- [`setGameSpeed`](https://trilogy-hub.com/docs/setGameSpeed/)

### getInteriorSoundsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca ustawienie z `setInteriorSoundsEnabled` (domyślnie `true`).

#### Składnia

```lua
bool getInteriorSoundsEnabled()
```

#### Zwraca

Ustawienie.

#### Przykład

```lua
outputServerLog(tostring(getInteriorSoundsEnabled()))
```

#### Zobacz też

- [`setInteriorSoundsEnabled`](https://trilogy-hub.com/docs/setInteriorSoundsEnabled/)

### getJetpackMaxHeight

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca wysokość zapisaną przez `setJetpackMaxHeight` (domyślnie 100).

#### Składnia

```lua
float getJetpackMaxHeight()
```

#### Zwraca

Wysokość.

#### Przykład

```lua
outputServerLog(getJetpackMaxHeight())
```

#### Zobacz też

- [`setJetpackMaxHeight`](https://trilogy-hub.com/docs/setJetpackMaxHeight/)

### getMinuteDuration

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca długość minuty zegara gry w milisekundach.

#### Składnia

```lua
int getMinuteDuration()
```

#### Zwraca

Milisekundy.

#### Przykład

```lua
outputServerLog("Minuta gry: " .. getMinuteDuration() .. " ms")
```

#### Zobacz też

- [`setMinuteDuration`](https://trilogy-hub.com/docs/setMinuteDuration/)
- [`resetMinuteDuration`](https://trilogy-hub.com/docs/resetMinuteDuration/)

### getMoonSize

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca rozmiar księżyca zapisany przez `setMoonSize` (domyślnie 3).

#### Składnia

```lua
int getMoonSize()
```

#### Zwraca

Rozmiar.

#### Przykład

```lua
outputServerLog(getMoonSize())
```

#### Zobacz też

- [`setMoonSize`](https://trilogy-hub.com/docs/setMoonSize/)
- [`resetMoonSize`](https://trilogy-hub.com/docs/resetMoonSize/)

### getOcclusionsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca ustawienie z `setOcclusionsEnabled` (domyślnie `true`).

#### Składnia

```lua
bool getOcclusionsEnabled()
```

#### Zwraca

Ustawienie.

#### Przykład

```lua
outputChatBox(tostring(getOcclusionsEnabled()))
```

#### Zobacz też

- [`setOcclusionsEnabled`](https://trilogy-hub.com/docs/setOcclusionsEnabled/)

### getRainLevel

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca siłę deszczu zapisaną przez `setRainLevel` (domyślnie 0). Działa na serwerze i u klienta.

#### Składnia

```lua
float getRainLevel()
```

#### Zwraca

Siła deszczu.

#### Przykład

```lua
outputChatBox("Deszcz: " .. getRainLevel())
```

#### Zobacz też

- [`setRainLevel`](https://trilogy-hub.com/docs/setRainLevel/)
- [`resetRainLevel`](https://trilogy-hub.com/docs/resetRainLevel/)

### getRealTime

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Zmodyfikowana względem MTA:SA*

Zwraca prawdziwą datę i godzinę serwera (albo komputera gracza) jako tabelę: `second`, `minute`, `hour`, `monthday`, `month` (0-11), `year` (lata od 1900), `weekday` (0 = niedziela), `yearday`, `isdst` i `timestamp`. Z argumentem rozkłada podany znacznik czasu.

#### Składnia

```lua
table getRealTime([int seconds])
```

#### Argumenty

- `seconds` (int, opcjonalny) - Znacznik czasu (sekundy od 1970).

#### Zwraca

Tabela z polami daty.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool localTime = true`
- W MTA:SA: `getRealTime(int seconds = current, bool localTime = true)`

#### Przykład

```lua
local t = getRealTime()
outputServerLog(("%02d.%02d.%d %02d:%02d"):format(t.monthday, t.month + 1, t.year + 1900, t.hour, t.minute))
```

#### Zobacz też

- [`getTickCount`](https://trilogy-hub.com/docs/getTickCount/)
- [`getTime`](https://trilogy-hub.com/docs/getTime/)

### getRootElement

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Zmodyfikowana względem MTA:SA*

Zwraca korzeń drzewa elementów: wszystkie elementy serwera są jego dziećmi. To samo co zmienna `root`. Zdarzenia podpięte do niego przychodzą od wszystkich elementów.

#### Składnia

```lua
element getRootElement()
```

#### Zwraca

Korzeń.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `getRootElement()`

#### Przykład

```lua
addEventHandler("onPlayerJoin", getRootElement(), function()
    outputChatBox(getPlayerName(source) .. " dołączył.", root)
end)
```

#### Zobacz też

- [`getResourceRootElement`](https://trilogy-hub.com/docs/getResourceRootElement/)

### getTickCount

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca liczbę milisekund od startu (zegar, który nie cofa się przy zmianie czasu systemowego). Do mierzenia odstępów: odejmij dwie wartości.

#### Składnia

```lua
int getTickCount()
```

#### Zwraca

Milisekundy.

#### Przykład

```lua
local t = getTickCount()
-- ... ciężka praca ...
outputServerLog("Trwało " .. (getTickCount() - t) .. " ms")
```

#### Zobacz też

- [`getRealTime`](https://trilogy-hub.com/docs/getRealTime/)
- [`setTimer`](https://trilogy-hub.com/docs/setTimer/)

### gettok

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zwraca jedną część tekstu (liczone od 1), dzieloną tak jak w `split`.

#### Składnia

```lua
string gettok(string input, int token, string|int separator)
```

#### Argumenty

- `input` (string) - Tekst.
- `token` (int) - Numer części od 1.
- `separator` (string|int) - Separator albo kod znaku.

#### Zwraca

Część albo `false`, gdy jej nie ma.

#### Przykład

```lua
outputServerLog(gettok("Jan Kowalski 25", 2, " ")) -- Kowalski
```

#### Zobacz też

- [`split`](https://trilogy-hub.com/docs/split/)

### hash

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Zmodyfikowana względem MTA:SA*

Liczy skrót tekstu wybranym algorytmem: `md5`, `sha1`, `sha224`, `sha256`, `sha384` albo `sha512`. Wynik jest szesnastkowy.

#### Składnia

```lua
string hash(string algorithm, string dataToHash)
```

#### Argumenty

- `algorithm` (string) - Nazwa algorytmu.
- `dataToHash` (string) - Tekst.

#### Zwraca

Skrót albo `false`.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `table options`
- W MTA:SA: `hash(string algorithm, string dataToHash, table options)`

#### Przykład

```lua
outputServerLog(hash("sha512", "trilogy"))
```

#### Zobacz też

- [`md5`](https://trilogy-hub.com/docs/md5/)
- [`sha256`](https://trilogy-hub.com/docs/sha256/)

### inspect

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Zamienia dowolną wartość na czytelny tekst: tabele są rozwijane, cykle wykrywane, a elementy pokazywane jako `element:typ[id]`. Przydaje się przy szukaniu błędów.

#### Składnia

```lua
string inspect(mixed value)
```

#### Argumenty

- `value` (mixed) - Wartość.

#### Zwraca

Opis wartości.

#### Przykład

```lua
outputServerLog(inspect({ hp = 100, pos = { 1, 2, 3 } }))
```

#### Zobacz też

- [`iprint`](https://trilogy-hub.com/docs/iprint/)
- [`outputDebugString`](https://trilogy-hub.com/docs/outputDebugString/)

### interpolateBetween

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Płynnie przechodzi od jednego trzyelementowego zestawu liczb do drugiego (np. pozycji albo koloru) według postępu 0-1 i krzywej jak w `getEasingValue`. Przyjmuje też dwa wektory `Vector3`.

#### Składnia

```lua
float, float, float interpolateBetween(float x1, float y1, float z1, float x2, float y2, float z2, float fProgress, string strEasingType [, float fEasingPeriod, float fEasingAmplitude, float fEasingOvershoot])
```

#### Argumenty

- `x1` (float) - Pierwsza liczba początku.
- `y1` (float) - Druga liczba początku.
- `z1` (float) - Trzecia liczba początku.
- `x2` (float) - Pierwsza liczba końca.
- `y2` (float) - Druga liczba końca.
- `z2` (float) - Trzecia liczba końca.
- `fProgress` (float) - Postęp 0-1.
- `strEasingType` (string) - Rodzaj krzywej.
- `fEasingPeriod` (float, opcjonalny) - Okres.
- `fEasingAmplitude` (float, opcjonalny) - Amplituda.
- `fEasingOvershoot` (float, opcjonalny) - Przestrzał.

#### Zwraca

Trzy liczby pośrednie.

#### Przykład

Kolor przechodzi z czerwonego w zielony w ciągu 2 sekund.

```lua
local start = getTickCount()
addEventHandler("onClientRender", root, function()
    local p = math.min(1, (getTickCount() - start) / 2000)
    local r, g, b = interpolateBetween(255, 0, 0, 0, 255, 0, p, "InOutQuad")
    dxDrawRectangle(20, 300, 120, 20, tocolor(r, g, b))
end)
```

#### Zobacz też

- [`getEasingValue`](https://trilogy-hub.com/docs/getEasingValue/)

### iprint

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Wypisuje wartości przez `inspect` do konsoli debugowania. Kilka argumentów jest rozdzielonych spacjami.

#### Składnia

```lua
nil iprint(mixed ...)
```

#### Argumenty

- `...` (mixed) - Wartości do wypisania.

#### Zwraca

Nic.

#### Przykład

```lua
addEventHandler("onPlayerChat", root, function(text, messageType)
    iprint(source, text, messageType)
end)
```

#### Zobacz też

- [`inspect`](https://trilogy-hub.com/docs/inspect/)
- [`outputDebugString`](https://trilogy-hub.com/docs/outputDebugString/)

### isCursorShowing

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Zmodyfikowana względem MTA:SA*

Sprawdza, czy kursor jest pokazany. U klienta: przez jakikolwiek zasób. Na serwerze: czy serwer pokazał go graczowi przez `showCursor`.

#### Składnia

*Serwer*

```lua
bool isCursorShowing(player thePlayer)
```

*Klient*

```lua
bool isCursorShowing()
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).

#### Zwraca

`true`, gdy kursor jest widoczny.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie serwera.
- W MTA:SA: `isCursorShowing(player playerElement)`

#### Przykład

```lua
addEventHandler("onClientRender", root, function()
    if isCursorShowing() then dxDrawText("Tryb kursora", 20, 360) end
end)
```

#### Zobacz też

- [`showCursor`](https://trilogy-hub.com/docs/showCursor/)

### isMapEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Sprawdza, czy mapa pod ESC jest dostępna (ustawia ją serwer).

#### Składnia

```lua
bool isMapEnabled()
```

#### Zwraca

`true`, gdy mapa jest dostępna.

#### Przykład

```lua
if not isMapEnabled() then
    outputChatBox("Na tym serwerze mapa jest wyłączona.")
end
```

#### Zobacz też

- [`setMapEnabled`](https://trilogy-hub.com/docs/setMapEnabled/)

### isSlowMotionEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Sprawdza, czy spowolnienie danego rodzaju jest włączone (`"all"` = oba).

#### Składnia

```lua
bool isSlowMotionEnabled([string kind = "all"])
```

#### Argumenty

- `kind` (string, opcjonalny = "all") - `"wheel"`, `"stunt"` albo `"all"`.

#### Zwraca

`true`, gdy włączone.

#### Przykład

```lua
if isSlowMotionEnabled("wheel") then
    outputChatBox("Koło broni spowalnia czas.")
end
```

#### Zobacz też

- [`setSlowMotionEnabled`](https://trilogy-hub.com/docs/setSlowMotionEnabled/)

### md5

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Liczy skrót MD5 tekstu (32 znaki szesnastkowe, wielkie litery). Nie używaj go do haseł; do nich jest `passwordHash`.

#### Składnia

```lua
string md5(string str)
```

#### Argumenty

- `str` (string) - Tekst.

#### Zwraca

Skrót albo `false`.

#### Przykład

```lua
outputServerLog(md5("trilogy"))
```

#### Zobacz też

- [`sha256`](https://trilogy-hub.com/docs/sha256/)
- [`hash`](https://trilogy-hub.com/docs/hash/)
- [`passwordHash`](https://trilogy-hub.com/docs/passwordHash/)

### resetFarClipDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Przywraca domyślny zasięg rysowania (800).

#### Składnia

```lua
bool resetFarClipDistance()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetFarClipDistance()
```

#### Zobacz też

- [`setFarClipDistance`](https://trilogy-hub.com/docs/setFarClipDistance/)
- [`getFarClipDistance`](https://trilogy-hub.com/docs/getFarClipDistance/)

### restoreAllWorldModels

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Przywraca wszystkie budynki i obiekty świata schowane przez `removeWorldModel`. Na serwerze dotyczy wszystkich graczy, u klienta tylko tego, co schował ten klient.

#### Składnia

```lua
bool restoreAllWorldModels()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addEventHandler("onResourceStop", resourceRoot, function()
    restoreAllWorldModels()
end)
```

#### Zobacz też

- [`removeWorldModel`](https://trilogy-hub.com/docs/removeWorldModel/)
- [`restoreWorldModel`](https://trilogy-hub.com/docs/restoreWorldModel/)

### setFarClipDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia zasięg rysowania świata. Dla zgodności z istniejącymi skryptami wartość jest zapamiętywana i zwracana przez `getFarClipDistance`, ale Trilogy Hub nie zmienia jeszcze zasięgu w grze.

#### Składnia

```lua
bool setFarClipDistance(float distance)
```

#### Argumenty

- `distance` (float) - Zasięg w metrach.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setFarClipDistance(1500)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta - wartość tylko u tego gracza (`resetFarClipDistance` wraca do serwera).

#### Zobacz też

- [`getFarClipDistance`](https://trilogy-hub.com/docs/getFarClipDistance/)
- [`resetFarClipDistance`](https://trilogy-hub.com/docs/resetFarClipDistance/)

### setMinuteDuration

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Ustawia, ile milisekund trwa jedna minuta zegara gry (domyślnie 1000, czyli doba gry trwa 24 minuty). Większa wartość = wolniej płynący dzień.

#### Składnia

```lua
bool setMinuteDuration(int milliseconds)
```

#### Argumenty

- `milliseconds` (int) - Długość minuty w ms (co najmniej 1).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Doba gry trwa tyle, co prawdziwa.

```lua
setMinuteDuration(60000)
local t = getRealTime()
setTime(t.hour, t.minute)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta - tempo zegara tylko u tego gracza (zegar liczy się wtedy lokalnie od bieżącej godziny). Powrót: `resetMinuteDuration`, albo `setTime` / `setMinuteDuration` na serwerze.

#### Zobacz też

- [`getMinuteDuration`](https://trilogy-hub.com/docs/getMinuteDuration/)
- [`setTime`](https://trilogy-hub.com/docs/setTime/)
- [`resetMinuteDuration`](https://trilogy-hub.com/docs/resetMinuteDuration/)

### setOcclusionsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Włącza albo wyłącza strefy zasłaniania z gry. W Trilogy Hub to, co jest zasłonięte, liczy Unreal Engine, więc wartość jest tylko zapamiętywana (`getOcclusionsEnabled`), żeby istniejące skrypty działały bez błędu.

#### Składnia

```lua
bool setOcclusionsEnabled(bool enabled)
```

#### Argumenty

- `enabled` (bool) - Ustawienie.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setOcclusionsEnabled(false)
```

#### Zobacz też

- [`getOcclusionsEnabled`](https://trilogy-hub.com/docs/getOcclusionsEnabled/)

### setSlowMotionEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Włącza albo wyłącza spowolnienie czasu z gry: przy kole wyboru broni (`"wheel"`) i przy skokach kaskaderskich (`"stunt"`). Domyślnie oba są wyłączone, bo w grze wieloosobowej spowolnienie u jednej osoby psuje rozgrywkę. Na serwerze ustawienie dotyczy wszystkich graczy, u klienta tylko tej gry.

#### Składnia

```lua
bool setSlowMotionEnabled(bool enabled [, string kind = "all"])
```

#### Argumenty

- `enabled` (bool) - `true` = spowolnienie działa.
- `kind` (string, opcjonalny = "all") - `"wheel"`, `"stunt"` albo `"all"`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setSlowMotionEnabled(true, "stunt")
```

#### Zobacz też

- [`isSlowMotionEnabled`](https://trilogy-hub.com/docs/isSlowMotionEnabled/)
- [`setPlayerSlowMotionEnabled`](https://trilogy-hub.com/docs/setPlayerSlowMotionEnabled/)
- [`setGameSpeed`](https://trilogy-hub.com/docs/setGameSpeed/)

### sha256

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Liczy skrót SHA-256 tekstu (64 znaki szesnastkowe, wielkie litery).

#### Składnia

```lua
string sha256(string str)
```

#### Argumenty

- `str` (string) - Tekst.

#### Zwraca

Skrót albo `false`.

#### Przykład

```lua
local sum = sha256(fileGetContents("mapa.map") or "")
```

#### Zobacz też

- [`md5`](https://trilogy-hub.com/docs/md5/)
- [`hash`](https://trilogy-hub.com/docs/hash/)

### showCursor

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Pokazuje albo chowa kursor myszy. Kursor jest pokazany, dopóki chce go choć jeden zasób, więc chowanie w jednym zasobie nie zamyka kursora innego. Domyślnie przy pokazanym kursorze sterowanie postacią jest zablokowane.

#### Składnia

*Serwer*

```lua
bool showCursor(player thePlayer, bool show [, bool toggleControls = true])
```

*Klient*

```lua
bool showCursor(bool show [, bool toggleControls = true])
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root` (tylko serwer).
- `show` (bool) - `true` = pokaż.
- `toggleControls` (bool, opcjonalny = true) - `true` = blokuj sterowanie, gdy kursor jest widoczny.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
bindKey("m", "down", function()
    showCursor(not isCursorShowing())
end)
```

#### Zobacz też

- [`isCursorShowing`](https://trilogy-hub.com/docs/isCursorShowing/)
- [`getCursorPosition`](https://trilogy-hub.com/docs/getCursorPosition/)

### split

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Dzieli tekst na części po separatorze i zwraca tablicę. Separator to napis (każdy jego znak dzieli tekst) albo kod znaku, np. `32` dla spacji. Puste części są pomijane.

#### Składnia

```lua
table split(string input, string|int separator)
```

#### Argumenty

- `input` (string) - Tekst.
- `separator` (string|int) - Separator albo kod znaku.

#### Zwraca

Tablica części.

#### Przykład

```lua
local parts = split("Grove Street,Ballas,Vagos", ",")
outputServerLog(#parts) -- 3
```

#### Zobacz też

- [`gettok`](https://trilogy-hub.com/docs/gettok/)

### teaDecode

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Odszyfrowuje tekst z `teaEncode` (także z innych serwerów) tym samym kluczem. Zły klucz nie daje błędu, tylko inne bajty.

#### Składnia

```lua
string teaDecode(string data, string key)
```

#### Argumenty

- `data` (string) - Zaszyfrowany tekst (base64).
- `key` (string) - Klucz.

#### Zwraca

Odszyfrowany tekst (z zerami dopełnienia).

#### Przykład

```lua
local plain = teaDecode(getAccountData(account, "sekret") or "", "klucz")
```

#### Zobacz też

- [`teaEncode`](https://trilogy-hub.com/docs/teaEncode/)
- [`decodeString`](https://trilogy-hub.com/docs/decodeString/)

### teaEncode

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Szyfruje tekst szyfrem TEA i zwraca wynik w base64, zgodnie ze standardowym TEA używanym przez istniejące skrypty, więc wcześniej zaszyfrowane teksty odczytasz tutaj. Z klucza liczy się pierwsze 16 bajtów. TEA nie jest mocnym szyfrem; do poważnych danych użyj `encodeString` z `aes128`.

#### Składnia

```lua
string teaEncode(string text, string key)
```

#### Argumenty

- `text` (string) - Tekst.
- `key` (string) - Klucz.

#### Zwraca

Zaszyfrowany tekst (base64); pusty tekst daje pusty wynik.

#### Przykład

```lua
local secret = teaEncode("kod 1234", "klucz")
outputServerLog(teaDecode(secret, "klucz")) -- kod 1234
```

#### Uwagi

> **Ostrzeżenie:** Szyfr dopełnia tekst zerami do wielokrotności 4 bajtów i `teaDecode` zwraca je razem z tekstem. Tekst o długości podzielnej przez 4 wraca bez zmian.

> **Ostrzeżenie:** Do wersji z 2026-10-09 Trilogy Hub szyfrował TEA niestandardowo. Tekstów zaszyfrowanych starą wersją nowa nie odczyta.

#### Zobacz też

- [`teaDecode`](https://trilogy-hub.com/docs/teaDecode/)
- [`encodeString`](https://trilogy-hub.com/docs/encodeString/)

### tocolor

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Składa kolor z czterech składowych w jedną liczbę ARGB, której używają funkcje `dx`.

#### Składnia

```lua
int tocolor(int red, int green, int blue [, int alpha = 255])
```

#### Argumenty

- `red` (int) - Czerwony 0-255.
- `green` (int) - Zielony 0-255.
- `blue` (int) - Niebieski 0-255.
- `alpha` (int, opcjonalny = 255) - Krycie 0-255.

#### Zwraca

Kolor ARGB.

#### Przykład

```lua
local orange = tocolor(255, 122, 34, 200)
addEventHandler("onClientRender", root, function()
    dxDrawRectangle(20, 20, 200, 40, orange)
end)
```

#### Zobacz też

- [`dxDrawRectangle`](https://trilogy-hub.com/docs/dxDrawRectangle/)
- [`dxDrawText`](https://trilogy-hub.com/docs/dxDrawText/)

### toJSON

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Identyczna z MTA:SA*

Zamienia wartość Lua (liczbę, napis, tabelę, element) na tekst JSON, np. do zapisu w pliku, bazie albo danych konta. Format jest taki: wynik jest zawsze tablicą JSON, a elementy są zapisywane tak, żeby `fromJSON` odczytał je z powrotem. Tabela, która pojawia się drugi raz (także tabela zawierająca samą siebie), jest zapisywana jako odwołanie `"^T^n"`, a `fromJSON` odtwarza ją jako tę samą tabelę.

#### Składnia

```lua
string toJSON(mixed value [, bool compact = false, string prettyType = "none"])
```

#### Argumenty

- `value` (mixed) - Wartość do zapisania.
- `compact` (bool, opcjonalny = false) - `true` = bez spacji.
- `prettyType` (string, opcjonalny = "none") - `"none"`, `"spaces"` albo `"tabs"` (wcięcia).

#### Zwraca

Tekst JSON albo `false`.

#### Przykład

```lua
local data = { money = 500, cars = { 411, 560 } }
local text = toJSON(data, true)
outputServerLog(text) -- [{"cars":[411,560],"money":500}]
```

#### Zobacz też

- [`fromJSON`](https://trilogy-hub.com/docs/fromJSON/)
- [`setAccountData`](https://trilogy-hub.com/docs/setAccountData/)

### utf8Len

*Funkcja · Strona: Serwer i klient · Kategoria: Pozostałe · Tylko Trilogy Hub*

Druga nazwa `utfLen`: liczy znaki w tekście UTF-8 (polskie litery liczą się jako jeden znak, a nie dwa bajty).

#### Składnia

```lua
int utf8Len(string input)
```

#### Argumenty

- `input` (string) - Tekst.

#### Zwraca

Liczba znaków.

#### Przykład

```lua
outputServerLog(utf8Len("żółw")) -- 4
```

#### Zobacz też

- [`utfLen`](https://trilogy-hub.com/docs/utfLen/)

### getMaxPlayers

*Funkcja · Strona: Serwer i klient · Kategoria: Serwer · Identyczna z MTA:SA*

Zwraca liczbę miejsc na serwerze (po zmianie przez `setMaxPlayers` - nową wartość).

#### Składnia

```lua
int getMaxPlayers()
```

#### Zwraca

Liczba miejsc.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputChatBox(("Graczy: %d/%d"):format(getPlayerCount(), getMaxPlayers()), source)
end)
```

#### Uwagi

> **Uwaga:** **Klient.** Działa też w skrypcie klienta.

#### Zobacz też

- [`setMaxPlayers`](https://trilogy-hub.com/docs/setMaxPlayers/)
- [`getPlayerCount`](https://trilogy-hub.com/docs/getPlayerCount/)

### getServerName

*Funkcja · Strona: Serwer i klient · Kategoria: Serwer · Identyczna z MTA:SA*

Zwraca nazwę serwera z pliku `server-config.json` (tę, którą gracze widzą na liście serwerów w launcherze).

#### Składnia

```lua
string getServerName()
```

#### Zwraca

Nazwa serwera.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputChatBox("Witaj na " .. getServerName() .. "!", source)
end)
```

#### Uwagi

> **Uwaga:** **Klient.** Działa też w skrypcie klienta (nazwa z chwili wejścia na serwer).

#### Zobacz też

- [`getServerPort`](https://trilogy-hub.com/docs/getServerPort/)
- [`getMaxPlayers`](https://trilogy-hub.com/docs/getMaxPlayers/)

### engineFreeModel

*Funkcja · Strona: Serwer i klient · Kategoria: Silnik gry · Zmodyfikowana względem MTA:SA*

Zwalnia model z `engineRequestModel`. Na serwerze model jest wspólny: obiekty, auta i postacie z nim dostają model rodzica; u klienta zwalnia lokalny model. Model z nazwą zachowuje numer w `model-ids.json`, chyba że `forgetName` = `true`.

#### Składnia

```lua
bool engineFreeModel(int modelID [, bool forgetName = false])
```

#### Argumenty

- `modelID` (int) - Numer modelu.
- `forgetName` (bool, opcjonalny = false) - `true` = zwolnij też numer przypisany do nazwy.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `engineFreeModel(int modelID)`

#### Przykład

```lua
local id = engineRequestModel("object", 1337)
engineFreeModel(id)
```

#### Zobacz też

- [`engineRequestModel`](https://trilogy-hub.com/docs/engineRequestModel/)

### engineGetModelIDFromName

*Funkcja · Strona: Serwer i klient · Kategoria: Silnik gry · Zmodyfikowana względem MTA:SA*

Zwraca numer modelu po nazwie. Na serwerze znajduje nowe modele z nazwą (`engineRequestModel`) i pojazdy; u klienta także modele gry po nazwie.

#### Składnia

```lua
int engineGetModelIDFromName(string modelName)
```

#### Argumenty

- `modelName` (string) - Nazwa modelu.

#### Zwraca

Numer albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `engineGetModelIDFromName(string modelName)`

#### Przykład

```lua
local id = engineGetModelIDFromName("elegy_drift")
if id then createVehicle(id, 0, 0, 3) end
```

#### Zobacz też

- [`engineGetModelNameFromID`](https://trilogy-hub.com/docs/engineGetModelNameFromID/)
- [`engineRequestModel`](https://trilogy-hub.com/docs/engineRequestModel/)

### engineGetModelNameFromID

*Funkcja · Strona: Serwer i klient · Kategoria: Silnik gry · Zmodyfikowana względem MTA:SA*

Zwraca nazwę modelu po numerze: nowego modelu z nazwą albo pojazdu.

#### Składnia

```lua
string engineGetModelNameFromID(int modelID)
```

#### Argumenty

- `modelID` (int) - Numer modelu.

#### Zwraca

Nazwa albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA ta funkcja jest tylko po stronie klienta.
- W MTA:SA: `engineGetModelNameFromID(int modelID)`

#### Przykład

```lua
outputServerLog(tostring(engineGetModelNameFromID(411)))
```

#### Zobacz też

- [`engineGetModelIDFromName`](https://trilogy-hub.com/docs/engineGetModelIDFromName/)

### engineGetModelParent

*Funkcja · Strona: Serwer i klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Zwraca model rodzica dla modelu z `engineRequestModel` (`false`, gdy to nie jest taki model).

#### Składnia

```lua
int engineGetModelParent(int modelID)
```

#### Argumenty

- `modelID` (int) - Numer modelu.

#### Zwraca

Rodzic albo `false`.

#### Przykład

```lua
local id = engineRequestModel("vehicle", 562)
outputServerLog(engineGetModelParent(id)) -- 562
```

#### Zobacz też

- [`engineRequestModel`](https://trilogy-hub.com/docs/engineRequestModel/)

### engineRequestModel

*Funkcja · Strona: Serwer i klient · Kategoria: Silnik gry · Tylko Trilogy Hub*

Tworzy nowy model pod nowym numerem, wspólny dla wszystkich graczy (także tych, którzy wejdą później). Obiekt (`"object"`/`"timed-object"`, rodzic domyślnie 1337) dostaje numer z puli 18631-19999 i jest kopią rodzica; wygląd i kolizję dają `engineReplaceModel` i `engineReplaceCOL`. Pojazd (`"vehicle"`, rodzic 400), postać (`"ped"`, rodzic 7) i część tuningu (`"upgrade"`, rodzic 1000-1193) dostają numer 20000-29999 i zachowują się jak rodzic (miejsca, dźwięk, handling, tuning), a wygląd daje `engineReplaceModel` w skrypcie klienta. Trzeci argument to konkretny numer albo nazwa (także dla obiektów): ta sama nazwa daje zawsze ten sam numer (zapis w `model-ids.json` serwera), więc auta i obiekty z bazy po restarcie dalej są tym modelem, a model z nazwą zostaje przy zatrzymaniu zasobu. U klienta nazwa modelu z serwera zwraca jego wspólny numer. Model wywołany u klienta, zanim gra wczyta swoje modele, dostaje numer od razu, a powstaje po wczytaniu.

#### Składnia

*Serwer*

```lua
int engineRequestModel(string elementType [, int parentID, int|string wantedIDOrName])
```

*Klient*

```lua
int engineRequestModel(string elementType [, int parentID, string name])
```

#### Argumenty

- `elementType` (string) - `"object"`, `"timed-object"`, `"vehicle"`, `"ped"` albo `"upgrade"`.
- `parentID` (int, opcjonalny) - Model rodzica.
- `wantedIDOrName` (int|string, opcjonalny) - Numer albo nazwa modelu (u klienta tylko nazwa).

#### Zwraca

Nowy numer modelu albo `false`.

#### Przykład

Nowe auto oparte na Elegy, z wyglądem z pliku.

```lua
local id = engineRequestModel("vehicle", 562, "elegy_drift")
local car = createVehicle(id, 2495, -1670, 13.3)
```

```lua
local id = engineGetModelIDFromName("elegy_drift")
local mesh = engineLoadMesh("modele/elegy_drift.dff")
if id and mesh then engineReplaceModel(mesh, id) end
```

#### Uwagi

> **Nowość:** **Wspólne modele.** Nowe modele są wspólne dla wszystkich graczy i mają stałe numery po nazwie. Działają też dla pojazdów, postaci i części tuningu.

#### Zobacz też

- [`engineReplaceModel`](https://trilogy-hub.com/docs/engineReplaceModel/)
- [`engineFreeModel`](https://trilogy-hub.com/docs/engineFreeModel/)
- [`engineGetModelIDFromName`](https://trilogy-hub.com/docs/engineGetModelIDFromName/)
- [`createVehicle`](https://trilogy-hub.com/docs/createVehicle/)

### createColCircle

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Tworzy strefę kolizji w kształcie koła na mapie - bez ograniczenia wysokości (obejmuje wszystko nad i pod kołem).

#### Składnia

```lua
colshape createColCircle(float fX, float fY, float radius)
```

#### Argumenty

- `fX` (float) - X środka.
- `fY` (float) - Y środka.
- `radius` (float) - Promień w metrach.

#### Zwraca

Nowa strefa.

#### Przykład

```lua
local area = createColCircle(2495, -1665, 50)
addEventHandler("onColShapeLeave", area, function(element)
    if getElementType(element) == "player" then outputChatBox("Opusciles teren", element) end
end)
```

#### Zobacz też

- [`createColSphere`](https://trilogy-hub.com/docs/createColSphere/)
- [`createColTube`](https://trilogy-hub.com/docs/createColTube/)

### createColCuboid

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Tworzy strefę kolizji w kształcie prostopadłościanu od rogu (x, y, z): szerokość wzdłuż X, głębokość wzdłuż Y i wysokość w górę.

#### Składnia

```lua
colshape createColCuboid(float fX, float fY, float fZ, float fWidth, float fDepth, float fHeight)
```

#### Argumenty

- `fX` (float) - X rogu.
- `fY` (float) - Y rogu.
- `fZ` (float) - Z rogu (dół).
- `fWidth` (float) - Rozmiar wzdłuż X.
- `fDepth` (float) - Rozmiar wzdłuż Y.
- `fHeight` (float) - Wysokość.

#### Zwraca

Nowa strefa.

#### Przykład

```lua
local room = createColCuboid(2490, -1670, 12, 10, 8, 4)
```

#### Zobacz też

- [`createColRectangle`](https://trilogy-hub.com/docs/createColRectangle/)
- [`createColBox`](https://trilogy-hub.com/docs/createColBox/)

### createColPolygon

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Tworzy strefę kolizji w kształcie dowolnego wielokąta na mapie (np. obrys dzielnicy gangu). Pierwsze dwie liczby to punkt środkowy (pozycja elementu), dalej pary x, y wierzchołków - co najmniej trzy. Domyślnie bez ograniczenia wysokości; zakres ustawia `setColPolygonHeight`.

#### Składnia

```lua
colshape createColPolygon(float fCenterX, float fCenterY, float fX1, float fY1, float fX2, float fY2, float fX3, float fY3 [, float ...])
```

#### Argumenty

- `fCenterX` (float) - X punktu środkowego.
- `fCenterY` (float) - Y punktu środkowego.
- `fX1` (float) - X pierwszego wierzchołka.
- `fY1` (float) - Y pierwszego wierzchołka.
- `fX2` (float) - X drugiego wierzchołka.
- `fY2` (float) - Y drugiego wierzchołka.
- `fX3` (float) - X trzeciego wierzchołka.
- `fY3` (float) - Y trzeciego wierzchołka.
- `...` (float, opcjonalny) - Kolejne pary x, y.

#### Zwraca

Nowa strefa albo `false` przy mniej niż 3 wierzchołkach.

#### Przykład

```lua
local grove = createColPolygon(2490, -1665, 2430, -1720, 2540, -1720, 2540, -1620, 2430, -1620)
addEventHandler("onColShapeHit", grove, function(element)
    if getElementType(element) == "player" then outputChatBox("Teren Grove Street Families", element) end
end)
```

#### Zobacz też

- [`addColPolygonPoint`](https://trilogy-hub.com/docs/addColPolygonPoint/)
- [`setColPolygonHeight`](https://trilogy-hub.com/docs/setColPolygonHeight/)
- [`getColPolygonPoints`](https://trilogy-hub.com/docs/getColPolygonPoints/)

### createColRectangle

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Tworzy prostokątną strefę kolizji od rogu (x, y) - bez ograniczenia wysokości. Rozmiar podaje się w metrach na osi X i Y.

#### Składnia

```lua
colshape createColRectangle(float fX, float fY, float fWidth, float fHeight)
```

#### Argumenty

- `fX` (float) - X rogu (najmniejsze X).
- `fY` (float) - Y rogu (najmniejsze Y).
- `fWidth` (float) - Rozmiar wzdłuż X.
- `fHeight` (float) - Rozmiar wzdłuż Y.

#### Zwraca

Nowa strefa.

#### Przykład

```lua
local parking = createColRectangle(2480, -1680, 30, 20)
```

#### Zobacz też

- [`createColCuboid`](https://trilogy-hub.com/docs/createColCuboid/)
- [`createColPolygon`](https://trilogy-hub.com/docs/createColPolygon/)

### createColSphere

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Tworzy strefę kolizji w kształcie kuli. Strefa jest niewidoczna; gdy gracz do niej wejdzie lub wyjdzie, wywołuje się `onColShapeHit` / `onColShapeLeave` (na serwerze) albo `onClientColShapeHit` / `onClientColShapeLeave` (na kliencie). Strefę można przyczepić do elementu (`attachElements`), żeby się z nim przesuwała.

#### Składnia

```lua
colshape createColSphere(float fX, float fY, float fZ, float fRadius)
```

#### Argumenty

- `fX` (float) - X środka.
- `fY` (float) - Y środka.
- `fZ` (float) - Z środka.
- `fRadius` (float) - Promień w metrach.

#### Zwraca

Nowa strefa.

#### Przykład

```lua
local safeZone = createColSphere(2495, -1665, 13, 30)
addEventHandler("onColShapeHit", safeZone, function(hitElement, matchingDimension)
    if getElementType(hitElement) == "player" and matchingDimension then
        outputChatBox("Jestes w strefie bezpiecznej", hitElement, 0, 255, 0)
    end
end)
```

#### Uwagi

> **Nowość:** Na serwerze strefy wykrywają graczy (nie postacie ani pojazdy bez gracza).

#### Zobacz też

- [`createColTube`](https://trilogy-hub.com/docs/createColTube/)
- [`isInsideColShape`](https://trilogy-hub.com/docs/isInsideColShape/)
- [`onColShapeHit`](https://trilogy-hub.com/docs/onColShapeHit/)

### createColTube

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Tworzy strefę kolizji w kształcie walca: koło o promieniu `radius` od wysokości `z` w górę o `height` metrów.

#### Składnia

```lua
colshape createColTube(float fX, float fY, float fZ, float fRadius, float fHeight)
```

#### Argumenty

- `fX` (float) - X środka podstawy.
- `fY` (float) - Y środka podstawy.
- `fZ` (float) - Z podstawy.
- `fRadius` (float) - Promień w metrach.
- `fHeight` (float) - Wysokość w metrach.

#### Zwraca

Nowa strefa.

#### Przykład

```lua
local tower = createColTube(1544, -1353, 0, 20, 330)
```

#### Zobacz też

- [`createColSphere`](https://trilogy-hub.com/docs/createColSphere/)
- [`createColCircle`](https://trilogy-hub.com/docs/createColCircle/)

### getColorFromString

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zamienia kod koloru `"#RRGGBB"` albo `"#RRGGBBAA"` (znak `#` opcjonalny) albo krótki `"#RGB"` / `"#RGBA"` (z `#`) na składowe r, g, b, a. Bez kanału alfa zwraca a = 255.

#### Składnia

```lua
int, int, int, int getColorFromString(string theColor)
```

#### Argumenty

- `theColor` (string) - Kod koloru.

#### Zwraca

r, g, b, a albo `false`, gdy tekst nie jest kodem koloru.

#### Przykład

```lua
addCommandHandler("kolor", function(player, _, code)
    local r, g, b = getColorFromString(code or "")
    if r then setPlayerNametagColor(player, r, g, b) end
end)
```

#### Zobacz też

- [`tocolor`](https://trilogy-hub.com/docs/tocolor/)

### getColShapeType

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Zwraca rodzaj strefy kolizji. Na kliencie liczba: 0 koło, 1 prostopadłościan (także `createColBox`/`createColCube`), 2 kula, 3 prostokąt, 4 wielokąt, 5 walec. Na serwerze nazwa: `"circle"`, `"cuboid"`, `"sphere"`, `"rectangle"`, `"polygon"`, `"tube"`.

#### Składnia

```lua
int/string getColShapeType(colshape shape)
```

#### Argumenty

- `shape` (colshape) - Strefa.

#### Zwraca

Rodzaj strefy albo `false`.

#### Przykład

```lua
local zone = createColSphere(0, 0, 0, 5)
outputDebugString(tostring(getColShapeType(zone)))
```

#### Zobacz też

- [`getColShapeSize`](https://trilogy-hub.com/docs/getColShapeSize/)

### isInsideColShape

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Sprawdza, czy punkt (x, y, z) leży w strefie. Nie wymaga, żeby ktoś w niej stał - liczy samą geometrię.

#### Składnia

```lua
bool isInsideColShape(colshape theShape, float posX, float posY [, float posZ = 0])
```

#### Argumenty

- `theShape` (colshape) - Strefa.
- `posX` (float) - X punktu.
- `posY` (float) - Y punktu.
- `posZ` (float, opcjonalny = 0) - Z punktu.

#### Zwraca

`true`, gdy punkt jest w strefie.

#### Przykład

```lua
local zone = createColRectangle(0, 0, 100, 100)
addCommandHandler("czywstrefie", function(player)
    local x, y, z = getElementPosition(player)
    outputChatBox(tostring(isInsideColShape(zone, x, y, z)), player)
end)
```

#### Zobacz też

- [`isElementWithinColShape`](https://trilogy-hub.com/docs/isElementWithinColShape/)

### setColPolygonHeight

*Funkcja · Strona: Serwer i klient · Kategoria: Strefy kolizji · Identyczna z MTA:SA*

Ogranicza strefę wielokątną w pionie: wykrywa tylko między wysokością `floor` i `ceil` (np. jedno piętro budynku). `false, false` usuwa ograniczenie. Kolejność liczb nie ma znaczenia.

#### Składnia

```lua
bool setColPolygonHeight(colshape shape, float floor, float ceil)
```

#### Argumenty

- `shape` (colshape) - Strefa wielokątna.
- `floor` (float) - Dolna wysokość albo `false`.
- `ceil` (float) - Górna wysokość albo `false`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local floor2 = createColPolygon(0, 0, -5, -5, 5, -5, 5, 5, -5, 5)
setColPolygonHeight(floor2, 16, 20)
```

#### Zobacz też

- [`getColPolygonHeight`](https://trilogy-hub.com/docs/getColPolygonHeight/)

### areTrafficLightsLocked

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wartość zapisaną przez `setTrafficLightsLocked` (domyślnie `false`).

#### Składnia

```lua
bool areTrafficLightsLocked()
```

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
outputDebugString(tostring(areTrafficLightsLocked()))
```

#### Zobacz też

- [`setTrafficLightsLocked`](https://trilogy-hub.com/docs/setTrafficLightsLocked/)

### getBirdsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wartość z `setBirdsEnabled` (domyślnie `true`).

#### Składnia

```lua
bool getBirdsEnabled()
```

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
outputDebugString(tostring(getBirdsEnabled()))
```

#### Zobacz też

- [`setBirdsEnabled`](https://trilogy-hub.com/docs/setBirdsEnabled/)
- [`resetBirdsEnabled`](https://trilogy-hub.com/docs/resetBirdsEnabled/)

### getBlurLevel

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zwraca wartość z `setBlurLevel` (domyślnie 36).

#### Składnia

```lua
int getBlurLevel()
```

#### Zwraca

Siła rozmycia.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `player thePlayer`
- W MTA:SA: `getBlurLevel(player thePlayer)`

#### Przykład

```lua
outputDebugString("Rozmycie: " .. getBlurLevel())
```

#### Zobacz też

- [`setBlurLevel`](https://trilogy-hub.com/docs/setBlurLevel/)
- [`resetBlurLevel`](https://trilogy-hub.com/docs/resetBlurLevel/)

### getCityName

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca nazwę regionu mapy w punkcie (`"Los Santos"`, `"San Fierro"`, `"Las Venturas"`, `"Red County"`, `"Flint County"`, `"Whetstone"`, `"Bone County"`, `"Tierra Robada"`); to samo co `getZoneName(x, y, z, true)`.

#### Składnia

```lua
string getCityName(float x, float y [, float z = 0])
```

#### Argumenty

- `x` (float) - Współrzędna X (albo wektor).
- `y` (float) - Współrzędna Y.
- `z` (float, opcjonalny = 0) - Wysokość Z.

#### Zwraca

Nazwa regionu albo `"Unknown"`.

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    local x, y, z = getElementPosition(source)
    outputChatBox("Witaj w " .. getCityName(x, y, z), source)
end)
```

#### Zobacz też

- [`getZoneName`](https://trilogy-hub.com/docs/getZoneName/)

### getColorFilter

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zwraca filtr koloru ustawiony przez `setColorFilter`. U klienta zwraca filtr lokalny, a bez niego filtr z serwera.

#### Składnia

```lua
int... getColorFilter()
```

#### Zwraca

Osiem składowych (r1, g1, b1, a1, r2, g2, b2, a2) albo `false`, gdy filtra nie ma.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool isOriginal`
- W MTA:SA: `getColorFilter(bool isOriginal)`

#### Przykład

```lua
local r, g, b, a = getColorFilter()
if r then outputDebugString(("Filtr %d %d %d %d"):format(r, g, b, a)) end
```

#### Zobacz też

- [`setColorFilter`](https://trilogy-hub.com/docs/setColorFilter/)
- [`resetColorFilter`](https://trilogy-hub.com/docs/resetColorFilter/)

### getCoronaReflectionsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wartość z `setCoronaReflectionsEnabled` (domyślnie `false`).

#### Składnia

```lua
bool getCoronaReflectionsEnabled()
```

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
outputDebugString(tostring(getCoronaReflectionsEnabled()))
```

#### Zobacz też

- [`setCoronaReflectionsEnabled`](https://trilogy-hub.com/docs/setCoronaReflectionsEnabled/)
- [`resetCoronaReflectionsEnabled`](https://trilogy-hub.com/docs/resetCoronaReflectionsEnabled/)

### getGrainLevel

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca wartość z `setGrainLevel` (domyślnie 0).

#### Składnia

```lua
int getGrainLevel()
```

#### Zwraca

Siła ziarna.

#### Przykład

```lua
outputDebugString("Ziarno: " .. getGrainLevel())
```

#### Zobacz też

- [`setGrainLevel`](https://trilogy-hub.com/docs/setGrainLevel/)
- [`resetGrainLevel`](https://trilogy-hub.com/docs/resetGrainLevel/)

### getGrainMultiplier

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca wartość z `setGrainMultiplier` (domyślnie 1).

#### Składnia

```lua
float getGrainMultiplier()
```

#### Zwraca

Mnożnik.

#### Przykład

```lua
outputDebugString("Mnoznik ziarna: " .. getGrainMultiplier())
```

#### Zobacz też

- [`setGrainMultiplier`](https://trilogy-hub.com/docs/setGrainMultiplier/)
- [`resetGrainMultiplier`](https://trilogy-hub.com/docs/resetGrainMultiplier/)

### getGravity

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca siłę grawitacji świata (domyślnie 0,008).

#### Składnia

```lua
float getGravity()
```

#### Zwraca

Grawitacja.

#### Przykład

```lua
outputDebugString("Grawitacja: " .. getGravity())
```

#### Zobacz też

- [`setGravity`](https://trilogy-hub.com/docs/setGravity/)

### getGroundPosition

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zwraca wysokość gruntu pod punktem. Na kliencie pyta grę (prawdziwy teren i budynki). Na serwerze serwer nie zna terenu mapy, więc bierze tylko obiekty skryptów i poziom wody; często zwraca `false`.

#### Składnia

```lua
float getGroundPosition(float x, float y, float z [, bool throughMapObjects = false])
```

#### Argumenty

- `x` (float) - Współrzędna X (albo wektor).
- `y` (float) - Współrzędna Y.
- `z` (float) - Wysokość, od której szukamy w dół.
- `throughMapObjects` (bool, opcjonalny = false) - `true`: przenika przez drzewa, krzaki i obiekty mapy (latarnie, ławki, płoty), a zatrzymuje się na terenie, budynkach i obiektach skryptów (np. podłogach z edytora map).

#### Zwraca

Wysokość gruntu albo `false`, gdy nieznana.

#### Różnice względem MTA:SA

- W MTA:SA: `getGroundPosition(float x, float y, float z)`

#### Przykład

Serwer stawia pickup na ziemi.

```lua
async(function()
    local ground = getGroundPosition(2495, -1665, 100)
    if ground then createPickup(2495, -1665, ground + 0.5, 3, 1240) end
end)
```

```lua
local x, y = 2495, -1665
local ground = getGroundPosition(x, y, 100)
if ground then setElementPosition(localPlayer, x, y, ground + 1) end
```

#### Uwagi

> **Nowość:** **Grunt pod drzewami.** Bez `throughMapObjects` punkt pod koroną drzewa albo w krzaku zwraca wierzch rośliny. Z `throughMapObjects = true` dostajesz ziemię pod nią, co przydaje się np. do linii albo znaczników rysowanych po terenie. Rośliny postawione skryptem też są przenikane.

> **Uwaga:** **Serwer.** Serwer nie ma kolizji mapy. Wywołane w `async(function() ... end)` pyta grę gracza najbliżej punktu (do 250 m, poza wnętrzami) i czeka na odpowiedź do 1,5 s - wtedy zwraca prawdziwy teren. Poza `async` albo bez gracza w pobliżu liczy tylko obiekty skryptów (`createObject`) i wodę, inaczej zwraca `false`.

#### Zobacz też

- [`getRoofPosition`](https://trilogy-hub.com/docs/getRoofPosition/)
- [`processLineOfSight`](https://trilogy-hub.com/docs/processLineOfSight/)

### getHeatHaze

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca ustawienia drgania powietrza zapisane przez `setHeatHaze`.

#### Składnia

```lua
int... getHeatHaze()
```

#### Zwraca

Dziewięć wartości w kolejności argumentów `setHeatHaze` albo `false`, gdy nie ustawiono.

#### Przykład

```lua
local intensity = getHeatHaze()
outputDebugString("Drganie: " .. tostring(intensity))
```

#### Zobacz też

- [`setHeatHaze`](https://trilogy-hub.com/docs/setHeatHaze/)
- [`resetHeatHaze`](https://trilogy-hub.com/docs/resetHeatHaze/)

### getInteriorFurnitureEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zwraca wartość z `setInteriorFurnitureEnabled` (domyślnie `true`).

#### Składnia

```lua
bool getInteriorFurnitureEnabled()
```

#### Zwraca

Zapisana wartość.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `int roomID`
- W MTA:SA: `getInteriorFurnitureEnabled(int roomID)`

#### Przykład

```lua
outputDebugString(tostring(getInteriorFurnitureEnabled()))
```

#### Zobacz też

- [`setInteriorFurnitureEnabled`](https://trilogy-hub.com/docs/setInteriorFurnitureEnabled/)
- [`resetInteriorFurnitureEnabled`](https://trilogy-hub.com/docs/resetInteriorFurnitureEnabled/)

### getNearClipDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wartość z `setNearClipDistance` (domyślnie 0,3).

#### Składnia

```lua
float getNearClipDistance()
```

#### Zwraca

Odległość.

#### Przykład

```lua
outputDebugString("Near clip: " .. getNearClipDistance())
```

#### Zobacz też

- [`setNearClipDistance`](https://trilogy-hub.com/docs/setNearClipDistance/)
- [`resetNearClipDistance`](https://trilogy-hub.com/docs/resetNearClipDistance/)

### getPedsLODDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wartość z `setPedsLODDistance` (domyślnie 60).

#### Składnia

```lua
float getPedsLODDistance()
```

#### Zwraca

Odległość.

#### Przykład

```lua
outputDebugString("LOD postaci: " .. getPedsLODDistance())
```

#### Zobacz też

- [`setPedsLODDistance`](https://trilogy-hub.com/docs/setPedsLODDistance/)
- [`resetPedsLODDistance`](https://trilogy-hub.com/docs/resetPedsLODDistance/)

### getSkyGradient

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca kolory nieba zapisane przez `setSkyGradient`.

#### Składnia

```lua
int... getSkyGradient()
```

#### Zwraca

Sześć składowych (góra RGB, dół RGB) albo `false`.

#### Przykład

```lua
local tr, tg, tb, br, bg, bb = getSkyGradient()
```

#### Zobacz też

- [`setSkyGradient`](https://trilogy-hub.com/docs/setSkyGradient/)
- [`resetSkyGradient`](https://trilogy-hub.com/docs/resetSkyGradient/)

### getSunColor

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca kolor słońca zapisany przez `setSunColor`.

#### Składnia

```lua
int... getSunColor()
```

#### Zwraca

Sześć składowych (rdzeń RGB, poświata RGB) albo `false`.

#### Przykład

```lua
local r, g, b = getSunColor()
```

#### Zobacz też

- [`setSunColor`](https://trilogy-hub.com/docs/setSunColor/)
- [`resetSunColor`](https://trilogy-hub.com/docs/resetSunColor/)

### getSunSize

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca rozmiar słońca zapisany przez `setSunSize` (domyślnie 1).

#### Składnia

```lua
float getSunSize()
```

#### Zwraca

Rozmiar.

#### Przykład

```lua
outputDebugString("Slonce: " .. getSunSize())
```

#### Zobacz też

- [`setSunSize`](https://trilogy-hub.com/docs/setSunSize/)
- [`resetSunSize`](https://trilogy-hub.com/docs/resetSunSize/)

### getTime

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca aktualną godzinę i minutę gry na serwerze (tę samą, którą widzą gracze).

#### Składnia

```lua
int, int getTime()
```

#### Zwraca

Godzina 0-23 i minuta 0-59.

#### Przykład

```lua
addCommandHandler("godzina", function(player)
    local hour, minute = getTime()
    outputChatBox(("Jest %02d:%02d"):format(hour, minute), player)
end)
```

#### Zobacz też

- [`setTime`](https://trilogy-hub.com/docs/setTime/)

### getTrafficLightState

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca stan sygnalizacji zapisany przez `setTrafficLightState` (domyślnie 0).

#### Składnia

```lua
int getTrafficLightState()
```

#### Zwraca

Stan 0-9.

#### Przykład

```lua
outputDebugString("Swiatla: " .. getTrafficLightState())
```

#### Zobacz też

- [`setTrafficLightState`](https://trilogy-hub.com/docs/setTrafficLightState/)

### getVehiclesLODDistance

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wartość z `setVehiclesLODDistance` (domyślnie 500).

#### Składnia

```lua
float getVehiclesLODDistance()
```

#### Zwraca

Odległość.

#### Przykład

```lua
outputDebugString("LOD pojazdow: " .. getVehiclesLODDistance())
```

#### Zobacz też

- [`setVehiclesLODDistance`](https://trilogy-hub.com/docs/setVehiclesLODDistance/)
- [`resetVehiclesLODDistance`](https://trilogy-hub.com/docs/resetVehiclesLODDistance/)

### getWaterColor

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca kolor wody zapisany przez `setWaterColor`.

#### Składnia

```lua
int, int, int, int getWaterColor()
```

#### Zwraca

r, g, b, a albo `false`.

#### Przykład

```lua
local r, g, b, a = getWaterColor()
```

#### Zobacz też

- [`setWaterColor`](https://trilogy-hub.com/docs/setWaterColor/)
- [`resetWaterColor`](https://trilogy-hub.com/docs/resetWaterColor/)

### getWaterLevel

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Zwraca poziom wody zapisany przez `setWaterLevel`; gdy nie ustawiono, dla podanego punktu zwraca 0 (poziom morza).

#### Składnia

```lua
float getWaterLevel([float x = nil, float y = nil, float z = nil])
```

#### Argumenty

- `x` (float, opcjonalny = nil) - Współrzędna X punktu.
- `y` (float, opcjonalny = nil) - Współrzędna Y.
- `z` (float, opcjonalny = nil) - Współrzędna Z.

#### Zwraca

Poziom wody albo `false` (bez punktu i bez ustawienia).

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool ignoreDistanceToWaterThreshold = false`
- W MTA:SA: `getWaterLevel(float posX, float posY, float posZ, bool ignoreDistanceToWaterThreshold = false)`

#### Przykład

```lua
local x, y, z = 2000, -1700, 5
if z < getWaterLevel(x, y, z) then outputDebugString("Pod woda") end
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta wysokość wody z gry (z falami, gdy `checkWaves` = `true`); `false`, gdy w tym miejscu nie ma wody albo punkt jest ponad 100 m nad nią.

#### Zobacz też

- [`setWaterLevel`](https://trilogy-hub.com/docs/setWaterLevel/)
- [`resetWaterLevel`](https://trilogy-hub.com/docs/resetWaterLevel/)

### getWaveHeight

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wysokość fal zapisaną przez `setWaveHeight`.

#### Składnia

```lua
float getWaveHeight()
```

#### Zwraca

Wysokość.

#### Przykład

```lua
outputDebugString("Fale: " .. getWaveHeight())
```

#### Zobacz też

- [`setWaveHeight`](https://trilogy-hub.com/docs/setWaveHeight/)

### getWeather

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca aktualną pogodę oraz pogodę, do której trwa płynna zmiana z `setWeatherBlended` (albo `nil`).

#### Składnia

```lua
int, int getWeather()
```

#### Zwraca

Aktualna pogoda i docelowa (albo `nil`).

#### Przykład

```lua
local current, target = getWeather()
outputDebugString("Pogoda: " .. current .. (target and (" -> " .. target) or ""))
```

#### Zobacz też

- [`setWeather`](https://trilogy-hub.com/docs/setWeather/)
- [`setWeatherBlended`](https://trilogy-hub.com/docs/setWeatherBlended/)

### getWindVelocity

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wiatr zapisany przez `setWindVelocity`. Na serwerze `false`, gdy nie ustawiono; na kliencie wtedy 0, 0, 0.

#### Składnia

```lua
float, float, float getWindVelocity()
```

#### Zwraca

x, y, z.

#### Przykład

```lua
local wx, wy = getWindVelocity()
outputDebugString(("Wiatr: %.2f %.2f"):format(wx, wy))
```

#### Zobacz też

- [`setWindVelocity`](https://trilogy-hub.com/docs/setWindVelocity/)
- [`resetWindVelocity`](https://trilogy-hub.com/docs/resetWindVelocity/)

### getZoneBounds

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca prostokąt obejmujący całą strefę (wszystkie jej części) o podanej nazwie: minimalne i maksymalne współrzędne. Gdy nie ma takiej dzielnicy, szuka regionu.

#### Składnia

```lua
float... getZoneBounds(string name)
```

#### Argumenty

- `name` (string) - Nazwa strefy lub regionu.

#### Zwraca

x1, y1, z1, x2, y2, z2 albo `false`.

#### Przykład

```lua
local x1, y1, z1, x2, y2, z2 = getZoneBounds("Idlewood")
outputDebugString(("Idlewood: %d..%d, %d..%d"):format(x1, x2, y1, y2))
```

#### Zobacz też

- [`getZoneCenter`](https://trilogy-hub.com/docs/getZoneCenter/)
- [`isInsideZone`](https://trilogy-hub.com/docs/isInsideZone/)

### getZoneCenter

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca środek prostokąta strefy z `getZoneBounds`. Przydaje się np. do postawienia znacznika „Idź do Idlewood”. Środek nie musi leżeć na ziemi ani w samej strefie, jeśli ma ona nieregularny kształt.

#### Składnia

```lua
float, float, float getZoneCenter(string name)
```

#### Argumenty

- `name` (string) - Nazwa strefy lub regionu.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local x, y = getZoneCenter("Ganton")
createBlip(x, y, 0, 41)
```

#### Zobacz też

- [`getZoneBounds`](https://trilogy-hub.com/docs/getZoneBounds/)

### getZoneCount

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca liczbę prostokątów stref (dzielnic) i regionów w danych mapy.

#### Składnia

```lua
int, int getZoneCount()
```

#### Zwraca

Liczba prostokątów stref i regionów.

#### Przykład

```lua
local zones, cities = getZoneCount()
outputDebugString(zones .. " stref, " .. cities .. " regionow")
```

#### Zobacz też

- [`getZoneNames`](https://trilogy-hub.com/docs/getZoneNames/)

### getZoneName

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca nazwę dzielnicy (strefy mapy) w podanym punkcie, np. `"Grove Street"`, `"Idlewood"`, `"Downtown Los Santos"`, czyli to, co gra pokazuje na ekranie po wjeździe w nową okolicę. Z `citiesOnly = true` zwraca nazwę regionu (`"Los Santos"`, `"San Fierro"`, `"Las Venturas"`, `"Red County"`…). Działa po obu stronach na danych 356 stref gry, bez pytania klienta.

#### Składnia

```lua
string getZoneName(float x, float y [, float z = 0, bool citiesOnly = false])
```

#### Argumenty

- `x` (float) - Współrzędna X (albo wektor zamiast x, y, z).
- `y` (float) - Współrzędna Y.
- `z` (float, opcjonalny = 0) - Wysokość Z (niektóre strefy zależą od wysokości).
- `citiesOnly` (bool, opcjonalny = false) - `true` = nazwa regionu zamiast dzielnicy.

#### Zwraca

Nazwa strefy albo `"Unknown"` poza mapą.

#### Przykład

```lua
addCommandHandler("gdzie", function(player)
    local x, y, z = getElementPosition(player)
    outputChatBox("Jestes w: " .. getZoneName(x, y, z) .. ", " .. getZoneName(x, y, z, true), player)
end)
```

#### Zobacz też

- [`getCityName`](https://trilogy-hub.com/docs/getCityName/)
- [`isInsideZone`](https://trilogy-hub.com/docs/isInsideZone/)
- [`getZoneNames`](https://trilogy-hub.com/docs/getZoneNames/)

### getZoneNames

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Zwraca posortowaną listę nazw wszystkich dzielnic (bez powtórzeń) albo, z `citiesOnly = true`, nazw regionów. Dobre do list wyboru w panelach.

#### Składnia

```lua
table getZoneNames([bool citiesOnly = false])
```

#### Argumenty

- `citiesOnly` (bool, opcjonalny = false) - `true` = nazwy regionów.

#### Zwraca

Tablica nazw.

#### Przykład

```lua
for _, name in ipairs(getZoneNames(true)) do outputDebugString(name) end
```

#### Zobacz też

- [`getZoneName`](https://trilogy-hub.com/docs/getZoneName/)
- [`getZoneBounds`](https://trilogy-hub.com/docs/getZoneBounds/)

### isAimAssistEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Sprawdza, czy wspomaganie celowania jest dozwolone (`setAimAssistEnabled` na serwerze). U klienta mówi, czy serwer na nie pozwala.

#### Składnia

```lua
bool isAimAssistEnabled()
```

#### Zwraca

`true`, gdy wspomaganie jest dozwolone.

#### Przykład

```lua
if not isAimAssistEnabled() then
    outputChatBox("Na tym serwerze celujesz bez wspomagania.")
end
```

#### Zobacz też

- [`setAimAssistEnabled`](https://trilogy-hub.com/docs/setAimAssistEnabled/)

### isGarageOpen

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca, czy garaż został oznaczony jako otwarty przez `setGarageOpen`. Działa po obu stronach.

#### Składnia

```lua
bool isGarageOpen(int garageID)
```

#### Argumenty

- `garageID` (int) - Numer garażu 0-49.

#### Zwraca

`true`, gdy otwarty.

#### Przykład

```lua
outputDebugString(tostring(isGarageOpen(8)))
```

#### Zobacz też

- [`setGarageOpen`](https://trilogy-hub.com/docs/setGarageOpen/)

### isInsideZone

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Tylko Trilogy Hub*

Sprawdza, czy punkt leży w strefie albo regionie o podanej nazwie (wielkość liter bez znaczenia). Strefa może składać się z wielu prostokątów; liczy się każdy z nich.

#### Składnia

```lua
bool isInsideZone(string name, float x, float y [, float z = 0])
```

#### Argumenty

- `name` (string) - Nazwa strefy lub regionu, np. `"Grove Street"`, `"Los Santos"`.
- `x` (float) - Współrzędna X (albo wektor).
- `y` (float) - Współrzędna Y.
- `z` (float, opcjonalny = 0) - Wysokość Z.

#### Zwraca

`true`, gdy punkt jest w strefie.

#### Przykład

```lua
setTimer(function()
    for _, player in ipairs(getElementsByType("player")) do
        local x, y, z = getElementPosition(player)
        if isInsideZone("Grove Street", x, y, z) then setElementData(player, "naGrove", true) end
    end
end, 5000, 0)
```

#### Zobacz też

- [`getZoneName`](https://trilogy-hub.com/docs/getZoneName/)
- [`getZoneBounds`](https://trilogy-hub.com/docs/getZoneBounds/)

### isLineOfSightClear

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Sprawdza, czy odcinek między dwoma punktami nie jest niczym zasłonięty. Na kliencie pyta grę (teren, budynki, obiekty, pojazdy, postacie, kolizje z plików .col). Na serwerze liczy na uproszczonym modelu: elementy skryptów jako kule, bez terenu i budynków mapy, więc służy tylko do przybliżonej oceny.

#### Składnia

```lua
bool isLineOfSightClear(float sx, float sy, float sz, float ex, float ey, float ez [, bool checkBuildings = true, bool checkVehicles = true, bool checkPeds = true, bool checkObjects = true, bool checkDummies = true, bool seeThroughStuff = false, bool ignoreSomeObjectsForCamera = false, element ignoredElement = nil])
```

#### Argumenty

- `sx` (float) - X początku.
- `sy` (float) - Y początku.
- `sz` (float) - Z początku.
- `ex` (float) - X końca.
- `ey` (float) - Y końca.
- `ez` (float) - Z końca.
- `checkBuildings` (bool, opcjonalny = true) - Uwzględnij budynki i teren.
- `checkVehicles` (bool, opcjonalny = true) - Uwzględnij pojazdy.
- `checkPeds` (bool, opcjonalny = true) - Uwzględnij postacie i graczy.
- `checkObjects` (bool, opcjonalny = true) - Uwzględnij obiekty.
- `checkDummies` (bool, opcjonalny = true) - Uwzględnij obiekty pomocnicze gry (klient).
- `seeThroughStuff` (bool, opcjonalny = false) - Przenikaj przez rzeczy przezroczyste, np. siatki i szyby (klient).
- `ignoreSomeObjectsForCamera` (bool, opcjonalny = false) - Pomiń obiekty, które kamera pomija (klient).
- `ignoredElement` (element, opcjonalny = nil) - Element pomijany w teście (np. sam gracz).

#### Zwraca

`true`, gdy nic nie zasłania odcinka.

#### Przykład

```lua
local function canSee(target)
    local x1, y1, z1 = getCameraMatrix()
    local x2, y2, z2 = getElementPosition(target)
    return isLineOfSightClear(x1, y1, z1, x2, y2, z2, true, false, false, true, true, false, false, localPlayer)
end
```

#### Uwagi

> **Uwaga:** **Serwer.** Serwer nie ma kolizji mapy. Wywołane w `async(function() ... end)` pyta grę gracza najbliżej środka odcinka (do 250 m, poza wnętrzami) i czeka na odpowiedź do 1,5 s - wtedy wynik uwzględnia teren i budynki. Poza `async` albo bez gracza w pobliżu sprawdza tylko elementy skryptów.

#### Zobacz też

- [`processLineOfSight`](https://trilogy-hub.com/docs/processLineOfSight/)

### isVolumetricShadowsEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wartość z `setVolumetricShadowsEnabled` (domyślnie `false`).

#### Składnia

```lua
bool isVolumetricShadowsEnabled()
```

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
outputDebugString(tostring(isVolumetricShadowsEnabled()))
```

#### Zobacz też

- [`setVolumetricShadowsEnabled`](https://trilogy-hub.com/docs/setVolumetricShadowsEnabled/)
- [`resetVolumetricShadowsEnabled`](https://trilogy-hub.com/docs/resetVolumetricShadowsEnabled/)

### isWaterDrawnLast

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca wartość z `setWaterDrawnLast` (domyślnie `false`).

#### Składnia

```lua
bool isWaterDrawnLast()
```

#### Zwraca

Zapisana wartość.

#### Przykład

```lua
outputDebugString(tostring(isWaterDrawnLast()))
```

#### Zobacz też

- [`setWaterDrawnLast`](https://trilogy-hub.com/docs/setWaterDrawnLast/)
- [`resetWaterDrawnLast`](https://trilogy-hub.com/docs/resetWaterDrawnLast/)

### isWorldSpecialPropertyEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zwraca, czy specjalna właściwość świata jest włączona: wartość z `setWorldSpecialPropertyEnabled` albo domyślną (np. `randomfoliage` i `vehicle_engine_autostart` domyślnie włączone, `hovercars` wyłączone).

#### Składnia

```lua
bool isWorldSpecialPropertyEnabled(string property)
```

#### Argumenty

- `property` (string) - Nazwa właściwości.

#### Zwraca

`true`, gdy włączona; `false` także dla nieznanej nazwy.

#### Przykład

```lua
if isWorldSpecialPropertyEnabled("vehicle_engine_autostart") then
    outputDebugString("Silniki zapalaja sie same")
end
```

#### Zobacz też

- [`setWorldSpecialPropertyEnabled`](https://trilogy-hub.com/docs/setWorldSpecialPropertyEnabled/)

### processLineOfSight

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Zmodyfikowana względem MTA:SA*

Szuka pierwszej przeszkody na odcinku między dwoma punktami i zwraca szczegóły trafienia. Na kliencie pyta grę (teren, budynki, obiekty, auta, postacie, kolizje z plików .col) i zwraca dużo danych: punkt trafienia, element, normalną powierzchni, materiał, oświetlenie, część ciała lub pojazdu, a na życzenie także model obiektu mapy z położeniem. Każde wywołanie czeka ok. jedną klatkę gry; gdy świat jeszcze się wczytuje (ekran ładowania), od razu zwraca `false`. Na serwerze liczy na uproszczonym modelu (kule elementów, bez terenu i budynków).

#### Składnia

```lua
bool, float... processLineOfSight(float sx, float sy, float sz, float ex, float ey, float ez [, bool checkBuildings = true, bool checkVehicles = true, bool checkPeds = true, bool checkObjects = true, bool checkDummies = true, bool seeThroughStuff = false, bool ignoreSomeObjectsForCamera = false, bool shootThroughStuff = false, element ignoredElement = nil, bool includeWorldModelInformation = false, bool throughMapObjects = false])
```

#### Argumenty

- `sx` (float) - X początku.
- `sy` (float) - Y początku.
- `sz` (float) - Z początku.
- `ex` (float) - X końca.
- `ey` (float) - Y końca.
- `ez` (float) - Z końca.
- `checkBuildings` (bool, opcjonalny = true) - Uwzględnij budynki i teren.
- `checkVehicles` (bool, opcjonalny = true) - Uwzględnij pojazdy.
- `checkPeds` (bool, opcjonalny = true) - Uwzględnij postacie.
- `checkObjects` (bool, opcjonalny = true) - Uwzględnij obiekty.
- `checkDummies` (bool, opcjonalny = true) - Uwzględnij obiekty pomocnicze (klient).
- `seeThroughStuff` (bool, opcjonalny = false) - Przenikaj przez rzeczy przezroczyste (klient).
- `ignoreSomeObjectsForCamera` (bool, opcjonalny = false) - Pomiń obiekty pomijane przez kamerę (klient).
- `shootThroughStuff` (bool, opcjonalny = false) - Przenikaj przez rzeczy, przez które przechodzą kule (klient).
- `ignoredElement` (element, opcjonalny = nil) - Element pomijany w teście.
- `includeWorldModelInformation` (bool, opcjonalny = false) - Zwróć też model obiektu mapy, jego położenie, obrót i model LOD (klient).
- `throughMapObjects` (bool, opcjonalny = false) - Przenikaj przez drzewa, krzaki i obiekty mapy (latarnie, ławki, płoty); teren, budynki, auta, postacie i obiekty skryptów nadal zatrzymują (klient).

#### Zwraca

`hit`, x, y, z trafienia, element, nx, ny, nz, materiał, oświetlenie, część, (model świata, x, y, z, rx, ry, rz, LOD); `false`, gdy nic nie trafiono.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `bool bIncludeExtraMateriaInfo = false`
- W MTA:SA: `processLineOfSight(float startX, float startY, float startZ, float endX, float endY, float endZ, bool checkBuildings = true, bool checkVehicles = true, bool checkPlayers = true, bool checkObjects = true, bool checkDummies = true, bool seeThroughStuff = false, bool ignoreSomeObjectsForCamera = false, bool shootThroughStuff = false, element ignoredElement = nil, bool includeWorldModelInformation = false, bool bIncludeCarTyres = false, bool bIncludeExtraMateriaInfo = false)`

#### Przykład

```lua
addCommandHandler("cel", function()
    local x1, y1, z1, x2, y2, z2 = getCameraMatrix()
    local hit, hx, hy, hz, element = processLineOfSight(x1, y1, z1, x1 + (x2 - x1) * 50, y1 + (y2 - y1) * 50, z1 + (z2 - z1) * 50)
    if hit then outputChatBox(("Celujesz w %.1f %.1f %.1f %s"):format(hx, hy, hz, element and getElementType(element) or "")) end
end)
```

#### Zobacz też

- [`isLineOfSightClear`](https://trilogy-hub.com/docs/isLineOfSightClear/)
- [`getGroundPosition`](https://trilogy-hub.com/docs/getGroundPosition/)

### removeWorldModel

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje usunięcie obiektów mapy San Andreas o danym modelu w kuli o podanym promieniu. Można wywołać wiele razy; każde wywołanie dodaje wpis. Wywołane, zanim gra wczyta swoje modele (np. przy wejściu gracza), czeka i działa po wczytaniu.

#### Składnia

```lua
bool removeWorldModel(int model, float radius, float x, float y, float z [, int interior = -1])
```

#### Argumenty

- `model` (int) - Numer modelu obiektu mapy.
- `radius` (float) - Promień w metrach.
- `x` (float) - X środka.
- `y` (float) - Y środka.
- `z` (float) - Z środka.
- `interior` (int, opcjonalny = -1) - Wnętrze, w którym działa usunięcie (-1 = każde).

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
removeWorldModel(1226, 20, 2495, -1665, 13)
```

#### Uwagi

> **Uwaga:** **Razem z kolizją.** Budynki i obiekty mapy znikają u wszystkich graczy razem z kolizją: można przez nie przejść, przejechać i strzelić. Budynki doczytywane później też znikają. Wpisy `<removeWorldObject>` z plików `.map` działają tak samo.

> **Uwaga:** **Rekwizyty bez nazwy.** Część rekwizytów dodanych w wersji DE ma numer modelu bez nazwy w tabeli gry (np. 6, 266, 329; taki numer zwraca `processLineOfSight`). Ich też można usunąć tym numerem: znikają rekwizyty tego modelu w podanej kuli.

> **Uwaga:** **Słupy, płoty, graffiti.** Obiekty, które gra trzyma jako osobne aktory poziomu (słupy telegraficzne, siatki `dyn_mesh`, graffiti, dystrybutory, rośliny), znikają tak samo jak budynki i nie wracają po chwili. Rekwizyty z numerem modelu bez nazwy (np. beczki, szafki i półki w magazynach) znikają razem z dekoracjami poziomu, które stoją w ich obrysie. Modele bez kolizji (graffiti, szczotki myjni) wskażesz kursorem funkcją `getWorldModelOnLine`.

> **Uwaga:** **Kilka zasobów.** Gdy dwa zasoby usuną ten sam budynek, zatrzymanie jednego z nich go nie przywraca. `restoreWorldModel` zdejmuje najpierw wpisy własnego zasobu. Tak samo po stronie serwera i klienta: usunięcie ze skryptu klienta zostaje, gdy inny zasób (np. edytor map) przywraca ten sam model w tym miejscu.

#### Zobacz też

- [`restoreWorldModel`](https://trilogy-hub.com/docs/restoreWorldModel/)
- [`removeGameWorld`](https://trilogy-hub.com/docs/removeGameWorld/)

### resetColorFilter

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zdejmuje filtr koloru. Na serwerze u wszystkich graczy; u klienta zdejmuje filtr lokalny, a filtr z serwera (jeśli jest) zostaje.

#### Składnia

```lua
bool resetColorFilter()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetColorFilter()
```

#### Zobacz też

- [`setColorFilter`](https://trilogy-hub.com/docs/setColorFilter/)
- [`getColorFilter`](https://trilogy-hub.com/docs/getColorFilter/)

### resetSkyGradient

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Kasuje kolory nieba z `setSkyGradient`.

#### Składnia

```lua
bool resetSkyGradient()
```

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
resetSkyGradient()
```

#### Zobacz też

- [`setSkyGradient`](https://trilogy-hub.com/docs/setSkyGradient/)
- [`getSkyGradient`](https://trilogy-hub.com/docs/getSkyGradient/)

### restoreWorldModel

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Usuwa wpisy `removeWorldModel` dla danego modelu, których kula styka się z podaną kulą. Bez współrzędnych usuwa wszystkie wpisy tego modelu. Najpierw zdejmuje wpisy zasobu, który ją wywołał; wpisy innych zasobów tylko wtedy, gdy własnych nie ma.

#### Składnia

```lua
bool restoreWorldModel(int model [, float radius = 0, float x = nil, float y = nil, float z = nil, int interior = -1])
```

#### Argumenty

- `model` (int) - Numer modelu.
- `radius` (float, opcjonalny = 0) - Promień w metrach.
- `x` (float, opcjonalny = nil) - X środka.
- `y` (float, opcjonalny = nil) - Y środka.
- `z` (float, opcjonalny = nil) - Z środka.
- `interior` (int, opcjonalny = -1) - Wnętrze (zgodność ze starszymi skryptami).

#### Zwraca

`true`, gdy coś przywrócono.

#### Przykład

```lua
restoreWorldModel(1226, 20, 2495, -1665, 13)
```

#### Zobacz też

- [`removeWorldModel`](https://trilogy-hub.com/docs/removeWorldModel/)

### setColorFilter

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Nakłada filtr koloru na obraz gry: dwie warstwy RGBA mnożą kolory świata, każda w stopniu swojej przezroczystości (alfa 0 = warstwa nic nie zmienia, 255 = pełny kolor warstwy). Na serwerze filtr dostają wszyscy gracze, u klienta tylko ten gracz (ma pierwszeństwo przed filtrem z serwera). Napisy i okna skryptów nie są barwione.

#### Składnia

```lua
bool setColorFilter(int r1, int g1, int b1, int a1, int r2, int g2, int b2, int a2)
```

#### Argumenty

- `r1` (int) - Czerwony pierwszej warstwy.
- `g1` (int) - Zielony pierwszej warstwy.
- `b1` (int) - Niebieski pierwszej warstwy.
- `a1` (int) - Krycie pierwszej warstwy.
- `r2` (int) - Czerwony drugiej warstwy.
- `g2` (int) - Zielony drugiej warstwy.
- `b2` (int) - Niebieski drugiej warstwy.
- `a2` (int) - Krycie drugiej warstwy.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setColorFilter(112, 66, 20, 60, 0, 0, 0, 0)
```

#### Zobacz też

- [`getColorFilter`](https://trilogy-hub.com/docs/getColorFilter/)
- [`resetColorFilter`](https://trilogy-hub.com/docs/resetColorFilter/)

### setSkyGradient

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zapisuje kolory nieba: górny (zenit) i dolny (przy horyzoncie), każdy RGB 0-255.

#### Składnia

```lua
bool setSkyGradient([int topRed = 0, int topGreen = 0, int topBlue = 0, int bottomRed = 0, int bottomGreen = 0, int bottomBlue = 0])
```

#### Argumenty

- `topRed` (int, opcjonalny = 0) - Czerwony u góry.
- `topGreen` (int, opcjonalny = 0) - Zielony u góry.
- `topBlue` (int, opcjonalny = 0) - Niebieski u góry.
- `bottomRed` (int, opcjonalny = 0) - Czerwony u dołu.
- `bottomGreen` (int, opcjonalny = 0) - Zielony u dołu.
- `bottomBlue` (int, opcjonalny = 0) - Niebieski u dołu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setSkyGradient(40, 0, 80, 255, 120, 40)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta - wartość tylko u tego gracza (`resetSkyGradient` wraca do serwera).

> **Uwaga:** **Stan dla skryptów.** Niebo w grze zależy od pory dnia i pogody; ta wartość jeszcze go nie zmienia.

#### Zobacz też

- [`getSkyGradient`](https://trilogy-hub.com/docs/getSkyGradient/)
- [`resetSkyGradient`](https://trilogy-hub.com/docs/resetSkyGradient/)

### setTime

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Ustawia godzinę w grze u wszystkich graczy. Od tej chwili zegar idzie dalej sam (o ile nie jest zatrzymany przez `setTimeFrozen`); jedna minuta gry trwa domyślnie sekundę (`setMinuteDuration`). Pora dnia zmienia oświetlenie, kolor nieba i to, czy jest ciemno.

#### Składnia

```lua
bool setTime(int hour [, int minute = 0])
```

#### Argumenty

- `hour` (int) - Godzina 0-23.
- `minute` (int, opcjonalny = 0) - Minuta 0-59.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("noc", function()
    setTime(0, 0)
end)
```

#### Uwagi

> **Uwaga:** **Klient.** `setTime` w skrypcie klienta zmienia godzinę tylko u tego gracza (np. każda arena z inną porą dnia); zegar płynie dalej w tempie serwera, a lokalna godzina obowiązuje, dopóki serwer sam nie wywoła `setTime`.

#### Zobacz też

- [`getTime`](https://trilogy-hub.com/docs/getTime/)
- [`setTimeFrozen`](https://trilogy-hub.com/docs/setTimeFrozen/)
- [`setMinuteDuration`](https://trilogy-hub.com/docs/setMinuteDuration/)
- [`setWeather`](https://trilogy-hub.com/docs/setWeather/)

### setWeather

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Natychmiast zmienia pogodę u wszystkich graczy. Numery 0-22 to pogody San Andreas, np. 0 bardzo słonecznie, 1-7 różne odmiany słońca i chmur, 8 burza, 9 mgła, 16 deszcz, 19 burza piaskowa. Przerywa płynną zmianę z `setWeatherBlended`.

#### Składnia

```lua
bool setWeather(int id)
```

#### Argumenty

- `id` (int) - Numer pogody 0-255 (sensowne 0-22).

#### Zwraca

`true` przy powodzeniu, `false` dla liczby spoza zakresu.

#### Przykład

```lua
addCommandHandler("pogoda", function(player, _, id)
    if tonumber(id) then setWeather(tonumber(id)) end
end)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta - pogoda tylko u tego gracza, do następnego `setWeather` na serwerze.

#### Zobacz też

- [`getWeather`](https://trilogy-hub.com/docs/getWeather/)
- [`setWeatherBlended`](https://trilogy-hub.com/docs/setWeatherBlended/)

### setWeatherBlended

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Zapowiada płynną zmianę pogody: serwer przełącza pogodę na nową po upływie około dwóch godzin gry.

#### Składnia

```lua
bool setWeatherBlended(int weather)
```

#### Argumenty

- `weather` (int) - Numer docelowej pogody 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
setWeatherBlended(8)
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta - przejście pogody tylko u tego gracza.

#### Zobacz też

- [`setWeather`](https://trilogy-hub.com/docs/setWeather/)
- [`getWeather`](https://trilogy-hub.com/docs/getWeather/)

### testLineAgainstWater

*Funkcja · Strona: Serwer i klient · Kategoria: Świat · Identyczna z MTA:SA*

Sprawdza, czy odcinek przecina powierzchnię wody (według poziomu z `getWaterLevel`) i zwraca punkt przecięcia.

#### Składnia

```lua
bool, float, float, float testLineAgainstWater(float sx, float sy, float sz, float ex, float ey, float ez)
```

#### Argumenty

- `sx` (float) - X początku.
- `sy` (float) - Y początku.
- `sz` (float) - Z początku.
- `ex` (float) - X końca.
- `ey` (float) - Y końca.
- `ez` (float) - Z końca.

#### Zwraca

`true` i punkt x, y, z albo `false`.

#### Przykład

```lua
local hit, x, y, z = testLineAgainstWater(2900, -2000, 10, 2900, -2000, -10)
if hit then outputDebugString("Woda na wysokosci " .. z) end
```

#### Uwagi

> **Uwaga:** **Klient.** W skrypcie klienta sprawdza wodę z gry.

#### Zobacz też

- [`getWaterLevel`](https://trilogy-hub.com/docs/getWaterLevel/)

### getSearchLightEndPosition

*Funkcja · Strona: Serwer i klient · Kategoria: Światła · Identyczna z MTA:SA*

Zwraca punkt, w który świeci reflektor.

#### Składnia

```lua
float, float, float getSearchLightEndPosition(element theLight)
```

#### Argumenty

- `theLight` (element) - Reflektor.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local light = createSearchLight(0, 0, 30, 0, 10, 0)
local x, y, z = getSearchLightEndPosition(light)
```

#### Zobacz też

- [`setSearchLightEndPosition`](https://trilogy-hub.com/docs/setSearchLightEndPosition/)

### getSearchLightEndRadius

*Funkcja · Strona: Serwer i klient · Kategoria: Światła · Identyczna z MTA:SA*

Zwraca promień plamy światła na końcu snopu (domyślnie 10).

#### Składnia

```lua
float getSearchLightEndRadius(element theLight)
```

#### Argumenty

- `theLight` (element) - Reflektor.

#### Zwraca

Promień w metrach.

#### Przykład

```lua
local light = createSearchLight(0, 0, 30, 0, 10, 0)
outputDebugString(getSearchLightEndRadius(light))
```

#### Zobacz też

- [`setSearchLightEndRadius`](https://trilogy-hub.com/docs/setSearchLightEndRadius/)

### getSearchLightStartPosition

*Funkcja · Strona: Serwer i klient · Kategoria: Światła · Identyczna z MTA:SA*

Zwraca punkt, z którego świeci reflektor.

#### Składnia

```lua
float, float, float getSearchLightStartPosition(element theLight)
```

#### Argumenty

- `theLight` (element) - Reflektor.

#### Zwraca

x, y, z albo `false`.

#### Przykład

```lua
local light = createSearchLight(0, 0, 30, 0, 10, 0)
local x, y, z = getSearchLightStartPosition(light)
```

#### Zobacz też

- [`setSearchLightStartPosition`](https://trilogy-hub.com/docs/setSearchLightStartPosition/)

### getSearchLightStartRadius

*Funkcja · Strona: Serwer i klient · Kategoria: Światła · Identyczna z MTA:SA*

Zwraca promień snopu przy źródle (domyślnie 1).

#### Składnia

```lua
float getSearchLightStartRadius(element theLight)
```

#### Argumenty

- `theLight` (element) - Reflektor.

#### Zwraca

Promień w metrach.

#### Przykład

```lua
local light = createSearchLight(0, 0, 30, 0, 10, 0)
outputDebugString(getSearchLightStartRadius(light))
```

#### Zobacz też

- [`setSearchLightStartRadius`](https://trilogy-hub.com/docs/setSearchLightStartRadius/)

### async

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Tylko Trilogy Hub*

Uruchamia funkcję jako zadanie (korutynę). Kod w zadaniu biegnie od razu, aż do pierwszego czekania (`sleep`, `await`, `waitForEvent`). Wtedy oddaje sterowanie, a serwer i gra działają dalej. Gdy czekanie się skończy, zadanie rusza od miejsca, w którym stanęło. Dzięki temu kroki rozłożone w czasie (odliczanie, zapytanie do bazy, odpowiedź HTTP, czekanie na gracza) piszesz po kolei, bez zagnieżdżonych callbacków i timerów.

#### Składnia

```lua
task async(function fn [, var ...])
```

#### Argumenty

- `fn` (function) - Funkcja zadania.
- `...` (var, opcjonalny = nil) - Argumenty przekazane do funkcji.

#### Zwraca

Zadanie (sprawdzisz je przez `getTaskStatus`), albo `false` przy złym argumencie.

#### Przykład

```lua
addCommandHandler("odliczanie", function(player)
    async(function()
        for i = 3, 1, -1 do
            outputChatBox(i .. "...", player)
            sleep(1000)
        end
        outputChatBox("Start!", player)
    end)
end)
```

#### Uwagi

> **Uwaga:** **Zadanie należy do zasobu.** Timery i uchwyty, na które czeka zadanie, należą do zasobu, który je uruchomił. Zatrzymanie zasobu kończy więc także jego czekające zadania.

> **Ostrzeżenie:** **Błąd w zadaniu nie wywraca skryptu.** Trafia do konsoli jako `async: ...`, a zadanie dostaje stan `failed`. Kod, który nie oddaje sterowania przez 5 sekund, zostaje przerwany (ochrona przed nieskończoną pętlą). Po stronie klienta nie liczy się czas, w którym funkcja czeka na grę (np. pod ekranem ładowania przy wejściu na serwer).

#### Zobacz też

- [`await`](https://trilogy-hub.com/docs/await/)
- [`sleep`](https://trilogy-hub.com/docs/sleep/)
- [`waitForEvent`](https://trilogy-hub.com/docs/waitForEvent/)
- [`getTaskStatus`](https://trilogy-hub.com/docs/getTaskStatus/)
- [`isTask`](https://trilogy-hub.com/docs/isTask/)

### await

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Tylko Trilogy Hub*

Czeka w zadaniu `async` na wynik. Przyjmuje dwie formy. Pierwsza to funkcja-starter: dostaje `resume` i uruchamia coś, co kończy się callbackiem (zapytanie `dbQuery`, `fetchRemote`, timer). Gdy callback wywoła `resume(...)`, `await` zwraca te same wartości. Druga forma to inne zadanie z `async`: `await` czeka, aż się skończy, i zwraca jego wyniki, a jeśli zadanie skończyło się błędem, rzuca ten błąd dalej (złapiesz go przez `pcall`).

#### Składnia

```lua
var await(function, task starter [, var ...])
```

#### Argumenty

- `starter` (function, task) - Funkcja `function(resume, ...)` albo zadanie z `async`.
- `...` (var, opcjonalny = nil) - Dodatkowe argumenty przekazane starterowi po `resume`.

#### Zwraca

Wartości przekazane do `resume` albo wyniki zadania.

#### Przykład

```lua
local db = dbConnect("sqlite", "gracze.db")

addCommandHandler("pieniadze", function(player)
    async(function()
        local qh = await(function(resume)
            dbQuery(resume, db, "SELECT money FROM gracze WHERE nick = ?", getPlayerName(player))
        end)
        local rows = dbPoll(qh, 0)
        local money = rows and rows[1] and rows[1].money or 0
        outputChatBox("Masz $" .. money, player)
    end)
end)
```

#### Uwagi

> **Uwaga:** **Tylko w zadaniu.** Poza `async` funkcja zgłasza błąd `only allowed inside async`. Kolejne wywołania tego samego `resume` są ignorowane, a `resume` wywołane od razu w starterze też działa.

#### Zobacz też

- [`async`](https://trilogy-hub.com/docs/async/)
- [`sleep`](https://trilogy-hub.com/docs/sleep/)
- [`waitForEvent`](https://trilogy-hub.com/docs/waitForEvent/)

### getTaskStatus

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Tylko Trilogy Hub*

Zwraca stan zadania z `async`: `"running"` (czeka albo działa), `"done"` (skończone) albo `"failed"` (błąd). Po stanie zwraca wyniki zwrócone przez funkcję zadania albo, przy `"failed"`, komunikat błędu.

#### Składnia

```lua
string, ... getTaskStatus(task task)
```

#### Argumenty

- `task` (task) - Zadanie z `async`.

#### Zwraca

Stan i wyniki zadania.

#### Przykład

```lua
local task = async(function()
    sleep(500)
    return 42
end)
setTimer(function()
    print(getTaskStatus(task))  -- done  42
end, 1000, 1)
```

#### Zobacz też

- [`async`](https://trilogy-hub.com/docs/async/)
- [`isTask`](https://trilogy-hub.com/docs/isTask/)

### getTimerDetails

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Identyczna z MTA:SA*

Zwraca czas do najbliższego wywołania timera, liczbę pozostałych powtórzeń i interwał.

#### Składnia

```lua
int, int, int getTimerDetails(timer timer)
```

#### Argumenty

- `timer` (timer) - Timer z `setTimer`.

#### Zwraca

Pozostałe ms, pozostałe powtórzenia (0 = bez końca), interwał w ms; `false`, gdy timer nie istnieje.

#### Przykład

```lua
local t = setTimer(function() end, 5000, 3)
local left, repeats, interval = getTimerDetails(t)
print(left, repeats, interval)  -- ok. 5000, 3, 5000
```

#### Zobacz też

- [`getTimerInfo`](https://trilogy-hub.com/docs/getTimerInfo/)
- [`setTimer`](https://trilogy-hub.com/docs/setTimer/)

### getTimerInfo

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Tylko Trilogy Hub*

Zwraca opis timera jako tablicę: `remaining`, `repeats`, `interval`, `paused` i `resource`.

#### Składnia

```lua
table getTimerInfo(timer timer)
```

#### Argumenty

- `timer` (timer) - Timer.

#### Zwraca

Tablica opisu albo `false`.

#### Przykład

```lua
local t = setTimer(function() end, 1000, 0)
setTimerPaused(t, true)
local info = getTimerInfo(t)
print(info.paused, info.remaining, info.interval)
```

### getTimers

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Identyczna z MTA:SA*

Zwraca aktywne timery zasobu, który pyta. Z argumentem tylko te, których interwał nie przekracza podanej liczby ms.

#### Składnia

```lua
table getTimers([int maxInterval = nil])
```

#### Argumenty

- `maxInterval` (int, opcjonalny = nil) - Największy interwał w ms.

#### Zwraca

Tablica timerów.

#### Przykład

```lua
addCommandHandler("timery", function(player)
    outputChatBox("Aktywnych timerów: " .. #getTimers(), player)
end)
```

### isTask

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Tylko Trilogy Hub*

Sprawdza, czy wartość jest zadaniem zwróconym przez `async`.

#### Składnia

```lua
bool isTask(var value)
```

#### Argumenty

- `value` (var) - Dowolna wartość.

#### Zwraca

`true` dla zadania.

#### Przykład

```lua
local task = async(function() sleep(100) end)
print(isTask(task), isTask({}))  -- true  false
```

#### Zobacz też

- [`async`](https://trilogy-hub.com/docs/async/)
- [`getTaskStatus`](https://trilogy-hub.com/docs/getTaskStatus/)

### isTimer

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Identyczna z MTA:SA*

Sprawdza, czy wartość jest aktywnym timerem. Timer jednorazowy przestaje być aktywny po wywołaniu.

#### Składnia

```lua
bool isTimer(mixed timer)
```

#### Argumenty

- `timer` (mixed) - Wartość.

#### Zwraca

`true` dla aktywnego timera.

#### Przykład

```lua
local respawnTimer
addEventHandler("onPlayerWasted", root, function()
    if isTimer(respawnTimer) then killTimer(respawnTimer) end
    local player = source
    respawnTimer = setTimer(function()
        spawnPlayer(player, 0, 0, 3)
    end, 5000, 1)
end)
```

#### Zobacz też

- [`killTimer`](https://trilogy-hub.com/docs/killTimer/)
- [`setTimer`](https://trilogy-hub.com/docs/setTimer/)
- [`resetTimer`](https://trilogy-hub.com/docs/resetTimer/)

### isTimerPaused

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Identyczna z MTA:SA*

Sprawdza, czy timer jest zatrzymany przez `setTimerPaused`.

#### Składnia

```lua
bool isTimerPaused(timer timer)
```

#### Argumenty

- `timer` (timer) - Timer.

#### Zwraca

`true`, jeśli zatrzymany.

#### Przykład

```lua
if isTimerPaused(t) then setTimerPaused(t, false) end
```

#### Zobacz też

- [`setTimerPaused`](https://trilogy-hub.com/docs/setTimerPaused/)

### killTimer

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Identyczna z MTA:SA*

Zatrzymuje timer na stałe. Funkcja już się nie wywoła.

#### Składnia

```lua
bool killTimer(timer timer)
```

#### Argumenty

- `timer` (timer) - Timer.

#### Zwraca

`true` przy powodzeniu, `false`, gdy timera już nie ma.

#### Przykład

```lua
local countdown = 10
local t
t = setTimer(function()
    countdown = countdown - 1
    outputChatBox("Start za " .. countdown)
    if countdown <= 0 then killTimer(t) end
end, 1000, 0)
```

### resetTimer

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Identyczna z MTA:SA*

Odlicza interwał timera od nowa, od tej chwili.

#### Składnia

```lua
bool resetTimer(timer timer)
```

#### Argumenty

- `timer` (timer) - Timer.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Wyrzuca gracza po 5 minutach bezczynności; każda wiadomość odlicza od nowa.

```lua
local afk = {}
addEventHandler("onPlayerJoin", root, function()
    local player = source
    afk[player] = setTimer(function() kickPlayer(player, "AFK") end, 300000, 1)
end)
addEventHandler("onPlayerChat", root, function()
    if isTimer(afk[source]) then resetTimer(afk[source]) end
end)
addEventHandler("onPlayerQuit", root, function()
    if isTimer(afk[source]) then killTimer(afk[source]) end
    afk[source] = nil
end)
```

#### Zobacz też

- [`setTimer`](https://trilogy-hub.com/docs/setTimer/)
- [`isTimer`](https://trilogy-hub.com/docs/isTimer/)

### setTimer

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Identyczna z MTA:SA*

Wywołuje funkcję po podanym czasie, raz, kilka razy albo bez końca.

#### Składnia

```lua
timer setTimer(function fn, int interval, int repeats [, ...])
```

#### Argumenty

- `fn` (function) - Funkcja do wywołania.
- `interval` (int) - Odstęp w milisekundach. Najmniej `50`, krótszy czas jest podnoszony do `50`.
- `repeats` (int) - Ile razy wywołać funkcję. `0` oznacza bez końca.
- `...` (any, opcjonalny) - Argumenty przekazywane do funkcji przy każdym wywołaniu.

#### Zwraca

Uchwyt timera. Zatrzymasz go przez `killTimer(timer)`.

#### Przykład

Ogłoszenie na czacie co 10 minut i odliczanie przed startem wyścigu.

```lua
-- bez końca, co 10 minut
setTimer(function()
    outputChatBox("Dołącz do naszego Discorda!", root, 255, 122, 34)
end, 10 * 60 * 1000, 0)

-- 3 razy co sekundę, z argumentem
local zostalo = 3
setTimer(function(nazwa)
    outputChatBox(nazwa .. ": start za " .. zostalo .. "...")
    zostalo = zostalo - 1
end, 1000, 3, "Wyścig")
```

#### Uwagi

> **Uwaga:** **Timer należy do zasobu.** Po zatrzymaniu zasobu wszystkie jego timery są usuwane, nie trzeba ich sprzątać ręcznie.

> **Ostrzeżenie:** **Nie rysuj na timerze.** Do rysowania na ekranie używaj `onClientRender`, a nie timera co 50 ms. Timer nie jest zsynchronizowany z klatkami gry.

#### Zobacz też

- [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/)
- [`getElementPosition`](https://trilogy-hub.com/docs/getElementPosition/)
- [`isTimer`](https://trilogy-hub.com/docs/isTimer/)
- [`resetTimer`](https://trilogy-hub.com/docs/resetTimer/)

### setTimerDelay

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Tylko Trilogy Hub*

Ustawia czas do najbliższego wywołania timera, nie zmieniając jego interwału.

#### Składnia

```lua
bool setTimerDelay(timer timer, int delay)
```

#### Argumenty

- `timer` (timer) - Timer.
- `delay` (int) - Czas w ms.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local t = setTimer(function() outputChatBox("Tick") end, 60000, 0)
setTimerDelay(t, 1000)  -- pierwszy raz po sekundzie / first call after a second
```

### setTimerPaused

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Identyczna z MTA:SA*

Zatrzymuje albo wznawia timer. Pozostały czas jest zachowany.

#### Składnia

```lua
bool setTimerPaused(timer timer, bool paused)
```

#### Argumenty

- `timer` (timer) - Timer.
- `paused` (bool) - `true` zatrzymuje, `false` wznawia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

Pauza odliczania rundy.

```lua
local roundTimer = setTimer(function() outputChatBox("Koniec rundy!") end, 600000, 1)
addCommandHandler("pauza", function(player)
    setTimerPaused(roundTimer, not isTimerPaused(roundTimer))
end)
```

#### Zobacz też

- [`isTimerPaused`](https://trilogy-hub.com/docs/isTimerPaused/)

### sleep

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Tylko Trilogy Hub*

Wstrzymuje zadanie `async` na podany czas. W tym czasie reszta skryptów, serwer i gra działają normalnie. `sleep(0)` czeka do następnej klatki serwera (tak jak `setTimer` z interwałem 0).

#### Składnia

```lua
bool sleep(int ms)
```

#### Argumenty

- `ms` (int) - Czas w milisekundach.

#### Zwraca

`true` po upływie czasu.

#### Przykład

```lua
async(function()
    outputChatBox("Za 2 sekundy pojawi się napis")
    sleep(2000)
    outputChatBox("Gotowe")
end)
```

#### Uwagi

> **Uwaga:** **Tylko w zadaniu.** Poza `async` zgłasza błąd zamiast zatrzymywać cały serwer.

#### Zobacz też

- [`async`](https://trilogy-hub.com/docs/async/)
- [`await`](https://trilogy-hub.com/docs/await/)
- [`setTimer`](https://trilogy-hub.com/docs/setTimer/)

### waitForEvent

*Funkcja · Strona: Serwer i klient · Kategoria: Timery · Tylko Trilogy Hub*

Wstrzymuje zadanie `async` do chwili, gdy zajdzie zdarzenie. Zwraca element `source` zdarzenia i jego argumenty. Z limitem czasu zwraca `false`, gdy zdarzenie nie zaszło na czas. Uchwyt i timer limitu są usuwane po zakończeniu czekania.

#### Składnia

```lua
element, ... waitForEvent(string eventName [, element attachedTo = root, int timeoutMs = nil])
```

#### Argumenty

- `eventName` (string) - Nazwa zdarzenia.
- `attachedTo` (element, opcjonalny = root) - Element, na którym słuchać (z dziećmi).
- `timeoutMs` (int, opcjonalny = nil) - Limit czasu w ms; bez niego czeka bez końca.

#### Zwraca

`source` i argumenty zdarzenia, albo `false` po czasie.

#### Przykład

```lua
addCommandHandler("wyzwanie", function(player)
    async(function()
        outputChatBox("Masz 10 sekund, żeby wejść do auta!", player)
        local who = waitForEvent("onPlayerVehicleEnter", player, 10000)
        if who then
            outputChatBox("Udało się!", player)
        else
            outputChatBox("Za późno.", player)
        end
    end)
end)
```

#### Zobacz też

- [`async`](https://trilogy-hub.com/docs/async/)
- [`addEventHandler`](https://trilogy-hub.com/docs/addEventHandler/)
- [`triggerEvent`](https://trilogy-hub.com/docs/triggerEvent/)

### getClothesTypeId

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca numer części ubioru po nazwie. Przyjmuje nazwy angielskie i polskie, np. `"hat"`, `"czapka"`, `"spodnie"`, `"tattoo3"`.

#### Składnia

```lua
int getClothesTypeId(string name)
```

#### Argumenty

- `name` (string) - Nazwa części.

#### Zwraca

Numer 0-17 albo `false`.

#### Przykład

```lua
outputServerLog(getClothesTypeId("okulary")) -- 15
```

#### Zobacz też

- [`getClothesTypeName`](https://trilogy-hub.com/docs/getClothesTypeName/)

### getClothesTypeName

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Identyczna z MTA:SA*

Zwraca nazwę części ubioru po numerze 0-17: `shirt`, `head`, `trousers`, `shoes`, `tattoo1`-`tattoo9`, `necklace`, `watch`, `glasses`, `hat`, `extra`.

#### Składnia

```lua
string getClothesTypeName(int clothesType)
```

#### Argumenty

- `clothesType` (int) - Numer części 0-17.

#### Zwraca

Nazwa albo `false`.

#### Przykład

```lua
outputServerLog(getClothesTypeName(16)) -- hat
```

#### Zobacz też

- [`getClothesTypeId`](https://trilogy-hub.com/docs/getClothesTypeId/)
- [`getClothesTypes`](https://trilogy-hub.com/docs/getClothesTypes/)

### getClothesTypeNames

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca opisowe nazwy części ubioru (np. `[0] = "Shirt"`, `[4] = "Tattoos Left upper arm"`, `[16] = "Hats"`).

#### Składnia

```lua
table getClothesTypeNames()
```

#### Zwraca

Tabela `{ [0..17] = nazwa }`.

#### Przykład

```lua
local names = getClothesTypeNames()
outputServerLog(names[15]) -- Glasses
```

#### Zobacz też

- [`getClothesTypes`](https://trilogy-hub.com/docs/getClothesTypes/)
- [`getClothesTypeName`](https://trilogy-hub.com/docs/getClothesTypeName/)

### getClothesTypes

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca wszystkie części ubioru jako tabelę numer -> nazwa (np. `[16] = "hat"`).

#### Składnia

```lua
table getClothesTypes()
```

#### Zwraca

Tabela `{ [0..17] = nazwa }`.

#### Przykład

```lua
for id, name in pairs(getClothesTypes()) do
    outputServerLog(id .. " = " .. name)
end
```

#### Zobacz też

- [`getClothesTypeName`](https://trilogy-hub.com/docs/getClothesTypeName/)
- [`getClothesTypeNames`](https://trilogy-hub.com/docs/getClothesTypeNames/)

### getPedTattoos

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca tatuaże postaci: tabelę gniazdo -> `{ name, texture, place }` (na serwerze też `image` dla tatuaży z `addPedTattooImage`).

#### Składnia

```lua
table getPedTattoos(ped thePed)
```

#### Argumenty

- `thePed` (ped) - Postać.

#### Zwraca

Tabela tatuaży albo `false`.

#### Przykład

```lua
for slot, tattoo in pairs(getPedTattoos(player)) do
    outputChatBox(slot .. ": " .. tattoo.name .. " (" .. tattoo.place .. ")", player)
end
```

#### Zobacz też

- [`addPedTattoo`](https://trilogy-hub.com/docs/addPedTattoo/)
- [`getTattooPlaceName`](https://trilogy-hub.com/docs/getTattooPlaceName/)

### getPlayerClothes

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca, co gracz ma na danej części ciała: teksturę, model i kolor. Działa na serwerze i u klienta.

#### Składnia

```lua
string, string, string getPlayerClothes(player thePlayer, int|string clothesType)
```

#### Argumenty

- `thePlayer` (player) - Gracz.
- `clothesType` (int|string) - Część ubioru 0-17 albo nazwa.

#### Zwraca

Tekstura, model i kolor albo `false`.

#### Przykład

```lua
local texture, model, color = getPlayerClothes(localPlayer, "shirt")
if texture then outputChatBox("Koszulka: " .. model .. " " .. tostring(color)) end
```

#### Zobacz też

- [`setPlayerClothes`](https://trilogy-hub.com/docs/setPlayerClothes/)
- [`getPlayerClothesAll`](https://trilogy-hub.com/docs/getPlayerClothesAll/)
- [`removePlayerClothes`](https://trilogy-hub.com/docs/removePlayerClothes/)
- [`resetPlayerClothes`](https://trilogy-hub.com/docs/resetPlayerClothes/)

### getPlayerClothesAll

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca cały ubiór gracza ustawiony przez skrypty: tabelę część -> `{ texture, model, color, name }`.

#### Składnia

```lua
table getPlayerClothesAll(player thePlayer)
```

#### Argumenty

- `thePlayer` (player) - Gracz.

#### Zwraca

Tabela `{ [część] = { texture, model, color, name } }` albo `false`.

#### Przykład

Zapis stroju gracza do danych konta.

```lua
addEventHandler("onPlayerQuit", root, function()
    local account = getPlayerAccount(source)
    if not isGuestAccount(account) then
        setAccountData(account, "stroj", toJSON(getPlayerClothesAll(source)))
    end
end)
```

#### Zobacz też

- [`getPlayerClothes`](https://trilogy-hub.com/docs/getPlayerClothes/)
- [`resetPlayerClothes`](https://trilogy-hub.com/docs/resetPlayerClothes/)

### getTattooPlaceName

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Zwraca, gdzie na ciele jest gniazdo tatuażu 1-9 (np. `"lewe ramie"`, `"plecy"`, `"brzuch"`).

#### Składnia

```lua
string getTattooPlaceName(int slot)
```

#### Argumenty

- `slot` (int) - Gniazdo 1-9.

#### Zwraca

Miejsce albo `false`.

#### Przykład

```lua
for slot = 1, 9 do
    outputServerLog(slot .. ": " .. getTattooPlaceName(slot))
end
```

#### Zobacz też

- [`addPedTattoo`](https://trilogy-hub.com/docs/addPedTattoo/)
- [`getPedTattoos`](https://trilogy-hub.com/docs/getPedTattoos/)

### isClothesTypeTattoo

*Funkcja · Strona: Serwer i klient · Kategoria: Ubrania · Tylko Trilogy Hub*

Sprawdza, czy część ubioru jest gniazdem tatuażu (numery 4-12).

#### Składnia

```lua
bool isClothesTypeTattoo(int|string clothesType)
```

#### Argumenty

- `clothesType` (int|string) - Numer albo nazwa części.

#### Zwraca

`true` dla tatuażu.

#### Przykład

```lua
outputServerLog(tostring(isClothesTypeTattoo(8))) -- true
```

#### Zobacz też

- [`getClothesTypeName`](https://trilogy-hub.com/docs/getClothesTypeName/)
- [`addPedTattoo`](https://trilogy-hub.com/docs/addPedTattoo/)

### addCommandHandler

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Zmodyfikowana względem MTA:SA*

Rejestruje komendę czatu i konsoli (np. `/auto`). Gdy gracz ją wpisze, wywoływana jest funkcja. Na serwerze funkcja dostaje gracza, nazwę komendy i kolejne słowa jako osobne argumenty; u klienta nazwę komendy i słowa. Ta sama komenda może mieć kilka funkcji, także z różnych zasobów. Komenda znika razem z zasobem, który ją dodał.

#### Składnia

*Serwer*

```lua
bool addCommandHandler(string commandName, function handler [, bool restricted = false, bool caseSensitive = false])
```

*Klient*

```lua
bool addCommandHandler(string commandName, function handler)
```

#### Argumenty

- `commandName` (string) - Nazwa komendy bez ukośnika.
- `handler` (function) - Serwer: `function(player, commandName, ...)`, klient: `function(commandName, ...)`.
- `restricted` (bool, opcjonalny = false) - Przyjmowany dla zgodności ze starszymi skryptami. Uprawnienia sprawdzaj w funkcji, np. przez `hasObjectPermissionTo`.
- `caseSensitive` (bool, opcjonalny = false) - `true` = `/Auto` i `/auto` to różne komendy (tylko serwer).

#### Zwraca

`true`, gdy komenda została dodana.

#### Różnice względem MTA:SA

- W MTA:SA: `addCommandHandler()`

#### Przykład

Komenda `/hp 50` ustawia zdrowie gracza; liczba przychodzi jako tekst.

```lua
addCommandHandler("hp", function(player, command, value)
    local hp = tonumber(value)
    if not hp then
        outputChatBox("Użycie: /" .. command .. " <0-100>", player, 255, 80, 80)
        return
    end
    setElementHealth(player, math.max(0, math.min(100, hp)))
end)
```

#### Zobacz też

- [`removeCommandHandler`](https://trilogy-hub.com/docs/removeCommandHandler/)
- [`executeCommandHandler`](https://trilogy-hub.com/docs/executeCommandHandler/)
- [`getCommandHandlers`](https://trilogy-hub.com/docs/getCommandHandlers/)
- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)

### bindKey

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Podpina funkcję albo komendę pod klawisz gracza. Funkcja dostaje (na serwerze także gracza) nazwę klawisza, stan i dodatkowe argumenty z `bindKey`. Zamiast funkcji możesz podać nazwę komendy: klawisz wykona ją jak `/komenda`. Na serwerze klawisz obserwuje gra gracza i zgłasza wciśnięcie serwerowi.

#### Składnia

*Serwer*

```lua
bool bindKey(player thePlayer, string key, string keyState, function|string handler, ...)
```

*Klient*

```lua
bool bindKey(string key, string keyState, function|string handler, ...)
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `key` (string) - Klawisz: `"a"`, `"F2"`, `"enter"`, `"mouse1"`, `"num_5"`...
- `keyState` (string) - `"down"` (wciśnięcie), `"up"` (puszczenie) albo `"both"`.
- `handler` (function|string) - Funkcja albo nazwa komendy.
- `...` (any, opcjonalny) - Argumenty przekazywane do funkcji.

#### Zwraca

`true`, gdy klawisz został podpięty (ta sama funkcja drugi raz zwraca `false`).

#### Przykład

F2 otwiera i zamyka menu z kursorem.

```lua
local open = false
bindKey("F2", "down", function()
    open = not open
    showCursor(open)
end)
```

#### Zobacz też

- [`unbindKey`](https://trilogy-hub.com/docs/unbindKey/)
- [`isKeyBound`](https://trilogy-hub.com/docs/isKeyBound/)
- [`getKeyState`](https://trilogy-hub.com/docs/getKeyState/)
- [`addCommandHandler`](https://trilogy-hub.com/docs/addCommandHandler/)

### executeCommandHandler

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Uruchamia komendę zarejestrowaną przez `addCommandHandler` tak, jakby ją wpisał gracz. Na serwerze podajesz gracza (albo `nil`) i argumenty: jeden napis jest dzielony na słowa jak w czacie. U klienta wywołuje komendy klienta.

#### Składnia

*Serwer*

```lua
bool executeCommandHandler(string commandName, player thePlayer [, string args])
```

*Klient*

```lua
bool executeCommandHandler(string commandName [, string args])
```

#### Argumenty

- `commandName` (string) - Nazwa komendy.
- `thePlayer` (player) - Gracz, który „wpisał” komendę (tylko serwer).
- `args` (string, opcjonalny) - Argumenty komendy.

#### Zwraca

`true`, gdy komenda istnieje i została wykonana.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    executeCommandHandler("pomoc", source)
end)
```

#### Zobacz też

- [`addCommandHandler`](https://trilogy-hub.com/docs/addCommandHandler/)
- [`executeCommand`](https://trilogy-hub.com/docs/executeCommand/)

### getControlGroup

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Tylko Trilogy Hub*

Mówi, czy sterowanie dotyczy postaci pieszo (`"foot"`), czy pojazdu (`"vehicle"`).

#### Składnia

```lua
string getControlGroup(string control)
```

#### Argumenty

- `control` (string) - Nazwa sterowania.

#### Zwraca

`"foot"`, `"vehicle"` albo `false` dla nieznanej nazwy.

#### Przykład

```lua
outputServerLog(getControlGroup("handbrake")) -- vehicle
```

#### Zobacz też

- [`getControlNames`](https://trilogy-hub.com/docs/getControlNames/)
- [`isValidControlName`](https://trilogy-hub.com/docs/isValidControlName/)

### getControlNames

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Tylko Trilogy Hub*

Zwraca nazwy sterowania gry, które przyjmują `toggleControl`, `setControlState` i `isControlEnabled`.

#### Składnia

```lua
table getControlNames([string group])
```

#### Argumenty

- `group` (string, opcjonalny) - `"foot"` (pieszo), `"vehicle"` (w pojeździe); bez niego wszystkie.

#### Zwraca

Tablica nazw, np. `fire`, `jump`, `accelerate`.

#### Przykład

```lua
for _, name in ipairs(getControlNames("vehicle")) do
    outputServerLog(name)
end
```

#### Zobacz też

- [`getControlGroup`](https://trilogy-hub.com/docs/getControlGroup/)
- [`isValidControlName`](https://trilogy-hub.com/docs/isValidControlName/)
- [`toggleControl`](https://trilogy-hub.com/docs/toggleControl/)

### getFunctionsBoundToKey

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Zmodyfikowana względem MTA:SA*

Zwraca funkcje (i nazwy komend) podpięte pod klawisz.

#### Składnia

*Serwer*

```lua
table getFunctionsBoundToKey(player thePlayer, string key)
```

*Klient*

```lua
table getFunctionsBoundToKey(string key)
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `key` (string) - Klawisz.

#### Zwraca

Tablica funkcji.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `string keyState`
- W MTA:SA: `getFunctionsBoundToKey(player thePlayer, string key, string keyState)`

#### Przykład

```lua
outputChatBox("Pod F2: " .. #getFunctionsBoundToKey("F2") .. " funkcji")
```

#### Zobacz też

- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)
- [`getKeyBoundToFunction`](https://trilogy-hub.com/docs/getKeyBoundToFunction/)

### getKeyBoundToFunction

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Zwraca pierwszy klawisz, pod który podpięta jest funkcja.

#### Składnia

*Serwer*

```lua
string getKeyBoundToFunction(player thePlayer, function handler)
```

*Klient*

```lua
string getKeyBoundToFunction(function handler)
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `handler` (function) - Funkcja.

#### Zwraca

Klawisz albo `false`.

#### Przykład

```lua
local function toggleMenu() end
bindKey("F4", "down", toggleMenu)
outputChatBox("Menu: " .. tostring(getKeyBoundToFunction(toggleMenu)))
```

#### Zobacz też

- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)
- [`getFunctionsBoundToKey`](https://trilogy-hub.com/docs/getFunctionsBoundToKey/)

### isControlEnabled

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Sprawdza, czy sterowanie gry jest włączone (nie zablokowane przez `toggleControl` albo `toggleAllControls`).

#### Składnia

*Serwer*

```lua
bool isControlEnabled(player thePlayer, string control)
```

*Klient*

```lua
bool isControlEnabled(string control)
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `control` (string) - Nazwa sterowania.

#### Zwraca

`true`, gdy sterowanie działa.

#### Przykład

```lua
if not isControlEnabled("fire") then
    dxDrawText("Tu nie wolno strzelać", 20, 340)
end
```

#### Zobacz też

- [`toggleControl`](https://trilogy-hub.com/docs/toggleControl/)
- [`toggleAllControls`](https://trilogy-hub.com/docs/toggleAllControls/)

### isKeyBound

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Sprawdza, czy pod klawiszem jest podpięta funkcja (konkretna albo jakakolwiek).

#### Składnia

*Serwer*

```lua
bool isKeyBound(player thePlayer, string key [, string keyState, function handler])
```

*Klient*

```lua
bool isKeyBound(string key [, string keyState, function handler])
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `key` (string) - Klawisz.
- `keyState` (string, opcjonalny) - `"down"`, `"up"` albo `"both"`.
- `handler` (function, opcjonalny) - Konkretna funkcja.

#### Zwraca

`true`, gdy coś jest podpięte.

#### Przykład

```lua
if not isKeyBound("F3") then
    bindKey("F3", "down", function() outputChatBox("F3") end)
end
```

#### Zobacz też

- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)
- [`unbindKey`](https://trilogy-hub.com/docs/unbindKey/)

### isValidControlName

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Tylko Trilogy Hub*

Sprawdza, czy nazwa sterowania jest znana grze.

#### Składnia

```lua
bool isValidControlName(string control)
```

#### Argumenty

- `control` (string) - Nazwa sterowania.

#### Zwraca

`true` dla poprawnej nazwy.

#### Przykład

```lua
addCommandHandler("zablokuj", function(player, _, control)
    if not isValidControlName(control or "") then
        outputChatBox("Nie ma takiego sterowania.", player)
        return
    end
    toggleControl(player, control, false)
end)
```

#### Zobacz też

- [`getControlNames`](https://trilogy-hub.com/docs/getControlNames/)
- [`toggleControl`](https://trilogy-hub.com/docs/toggleControl/)

### removeCommandHandler

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Usuwa komendę dodaną przez `addCommandHandler`. Z funkcją usuwa tylko tę jedną obsługę, bez funkcji wszystkie obsługi tej komendy.

#### Składnia

```lua
bool removeCommandHandler(string commandName [, function handler])
```

#### Argumenty

- `commandName` (string) - Nazwa komendy.
- `handler` (function, opcjonalny) - Funkcja do odpięcia.

#### Zwraca

`true`, gdy coś zostało usunięte.

#### Przykład

```lua
local function startRace(player)
    outputChatBox("Start!", root)
    removeCommandHandler("start", startRace)
end
addCommandHandler("start", startRace)
```

#### Zobacz też

- [`addCommandHandler`](https://trilogy-hub.com/docs/addCommandHandler/)

### toggleAllControls

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Włącza albo wyłącza całe sterowanie gry naraz (np. na czas cutscenki albo zamrożenia gracza). Czat, konsola i klawisze z `bindKey` dalej działają.

#### Składnia

*Serwer*

```lua
bool toggleAllControls(player thePlayer, bool enabled [, bool gtaControls = true, bool mtaControls = true])
```

*Klient*

```lua
bool toggleAllControls(bool enabled [, bool gtaControls = true, bool mtaControls = true])
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root` (tylko serwer).
- `enabled` (bool) - `false` = sterowanie zablokowane.
- `gtaControls` (bool, opcjonalny = true) - Przyjmowany dla zgodności ze starszymi skryptami.
- `mtaControls` (bool, opcjonalny = true) - Przyjmowany dla zgodności ze starszymi skryptami.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
addCommandHandler("zamroz", function(admin, _, name)
    local target = getPlayerFromName(name or "")
    if target then toggleAllControls(target, false) end
end)
```

#### Zobacz też

- [`toggleControl`](https://trilogy-hub.com/docs/toggleControl/)
- [`isControlEnabled`](https://trilogy-hub.com/docs/isControlEnabled/)

### toggleControl

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Włącza albo wyłącza jedno sterowanie gry, np. strzelanie (`fire`), skok (`jump`) albo wsiadanie (`enter_exit`). Wyłączone sterowanie nie reaguje na klawisze gracza. Na serwerze podajesz gracza albo `root`.

#### Składnia

*Serwer*

```lua
bool toggleControl(player thePlayer, string control, bool enabled)
```

*Klient*

```lua
bool toggleControl(string control, bool enabled)
```

#### Argumenty

- `thePlayer` (player) - Gracz albo `root` (tylko serwer).
- `control` (string) - Nazwa sterowania (`getControlNames`).
- `enabled` (bool) - `false` = zablokowane.

#### Zwraca

Na kliencie `true`, gdy gra blokuje to sterowanie, `false` dla nazwy spoza listy niżej.

#### Przykład

Strefa bez strzelania przy spawnie.

```lua
local safe = createColSphere(2495, -1687, 13.5, 30)
addEventHandler("onColShapeHit", safe, function(el)
    if getElementType(el) == "player" then toggleControl(el, "fire", false) end
end)
addEventHandler("onColShapeLeave", safe, function(el)
    if getElementType(el) == "player" then toggleControl(el, "fire", true) end
end)
```

#### Zobacz też

- [`toggleAllControls`](https://trilogy-hub.com/docs/toggleAllControls/)
- [`isControlEnabled`](https://trilogy-hub.com/docs/isControlEnabled/)
- [`getControlNames`](https://trilogy-hub.com/docs/getControlNames/)

### unbindKey

*Funkcja · Strona: Serwer i klient · Kategoria: Wejście i sterowanie · Identyczna z MTA:SA*

Odpina funkcję albo komendę od klawisza. Bez funkcji zdejmuje wszystko z klawisza w danym stanie, a bez stanu w obu stanach.

#### Składnia

*Serwer*

```lua
bool unbindKey(player thePlayer, string key [, string keyState, function|string handler])
```

*Klient*

```lua
bool unbindKey(string key [, string keyState, function|string handler])
```

#### Argumenty

- `thePlayer` (player) - Gracz (tylko serwer).
- `key` (string) - Klawisz.
- `keyState` (string, opcjonalny) - `"down"`, `"up"` albo `"both"`.
- `handler` (function|string, opcjonalny) - Funkcja albo komenda do odpięcia.

#### Zwraca

`true`, gdy coś zostało odpięte.

#### Przykład

```lua
local function jump() outputChatBox("Hop!") end
bindKey("space", "down", jump)
setTimer(unbindKey, 10000, 1, "space", "down", jump)
```

#### Zobacz też

- [`bindKey`](https://trilogy-hub.com/docs/bindKey/)
- [`isKeyBound`](https://trilogy-hub.com/docs/isKeyBound/)

### xmlCopyFile

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Kopiuje węzeł (razem z dziećmi i atrybutami) do nowego dokumentu pod nową ścieżką. Kopiowany węzeł staje się węzłem głównym nowego dokumentu, który trzeba zapisać przez `xmlSaveFile`.

#### Składnia

```lua
xmlnode xmlCopyFile(xmlnode nodeToCopy, string newFilePath)
```

#### Argumenty

- `nodeToCopy` (xmlnode) - Węzeł do skopiowania.
- `newFilePath` (string) - Ścieżka nowego pliku.

#### Zwraca

Węzeł główny kopii albo `false`.

#### Przykład

```lua
local root = xmlLoadFile("config.xml")
local backup = xmlCopyFile(root, "config_backup.xml")
xmlSaveFile(backup)
xmlUnloadFile(backup)
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlCreateFile`](https://trilogy-hub.com/docs/xmlCreateFile/)
- [`xmlSaveFile`](https://trilogy-hub.com/docs/xmlSaveFile/)

### xmlCreateChild

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Dodaje nowy węzeł-dziecko o podanej nazwie na końcu listy dzieci rodzica.

#### Składnia

```lua
xmlnode xmlCreateChild(xmlnode parentNode, string tagName)
```

#### Argumenty

- `parentNode` (xmlnode) - Rodzic.
- `tagName` (string) - Nazwa nowego znacznika.

#### Zwraca

Nowy węzeł albo `false`.

#### Przykład

```lua
local root = xmlCreateFile("players.xml", "players")
for _, player in ipairs(getElementsByType("player")) do
    local node = xmlCreateChild(root, "player")
    xmlNodeSetAttribute(node, "name", getPlayerName(player))
end
xmlSaveFile(root)
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlDestroyNode`](https://trilogy-hub.com/docs/xmlDestroyNode/)
- [`xmlNodeSetAttribute`](https://trilogy-hub.com/docs/xmlNodeSetAttribute/)

### xmlCreateFile

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Tworzy nowy dokument XML z węzłem głównym o podanej nazwie. Dokument jest w pamięci; na dysk trafia dopiero po `xmlSaveFile`. Istniejący plik zostanie nadpisany przy zapisie.

#### Składnia

```lua
xmlnode xmlCreateFile(string filePath, string rootNodeName)
```

#### Argumenty

- `filePath` (string) - Ścieżka pliku w folderze zasobu.
- `rootNodeName` (string) - Nazwa węzła głównego (litery, cyfry, `_`, `-`, `.`, `:`).

#### Zwraca

Węzeł główny albo `false`.

#### Przykład

```lua
local root = xmlCreateFile("bans.xml", "bans")
local ban = xmlCreateChild(root, "ban")
xmlNodeSetAttribute(ban, "serial", "ABC123")
xmlNodeSetAttribute(ban, "reason", "Cheaty")
xmlSaveFile(root)
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlSaveFile`](https://trilogy-hub.com/docs/xmlSaveFile/)
- [`xmlCreateChild`](https://trilogy-hub.com/docs/xmlCreateChild/)

### xmlDestroyNode

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Usuwa węzeł razem z jego dziećmi. Węzła głównego nie da się usunąć.

#### Składnia

```lua
bool xmlDestroyNode(xmlnode theXMLNode)
```

#### Argumenty

- `theXMLNode` (xmlnode) - Węzeł do usunięcia.

#### Zwraca

`true`, gdy usunięto.

#### Przykład

```lua
local root = xmlLoadFile("bans.xml")
for _, ban in ipairs(xmlNodeGetChildren(root)) do
    if xmlNodeGetAttribute(ban, "serial") == "ABC123" then xmlDestroyNode(ban) end
end
xmlSaveFile(root)
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlCreateChild`](https://trilogy-hub.com/docs/xmlCreateChild/)

### xmlFindChild

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Szuka dziecka o podanej nazwie znacznika. `index` wybiera, które z kolei (od 0) wśród dzieci o tej nazwie.

#### Składnia

```lua
xmlnode xmlFindChild(xmlnode parent, string tagName [, int index = 0])
```

#### Argumenty

- `parent` (xmlnode) - Rodzic.
- `tagName` (string) - Nazwa znacznika.
- `index` (int, opcjonalny = 0) - Numer od 0 wśród dzieci o tej nazwie.

#### Zwraca

Węzeł albo `false`, gdy go nie ma.

#### Przykład

```lua
local root = xmlLoadString("<cfg><color r='255' g='0' b='0'/></cfg>")
local color = xmlFindChild(root, "color", 0)
outputDebugString(xmlNodeGetAttribute(color, "r"))
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeGetChildren`](https://trilogy-hub.com/docs/xmlNodeGetChildren/)

### xmlLoadFile

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Wczytuje plik XML i zwraca jego węzeł główny, od którego można czytać dzieci i atrybuty. Na serwerze ścieżka jest względna wobec folderu zasobu (nie można wyjść poza niego). Na kliencie czyta własne pliki skryptu, a potem pliki `<file>` przysłane przez serwer; ścieżka `":inny/plik.xml"` wskazuje plik innego zasobu. Pamiętaj o `xmlUnloadFile`, gdy dokument nie jest już potrzebny.

#### Składnia

```lua
xmlnode xmlLoadFile(string filePath [, bool readOnly = false])
```

#### Argumenty

- `filePath` (string) - Ścieżka do pliku.
- `readOnly` (bool, opcjonalny = false) - `true` = tylko do czytania (zapis odrzucony).

#### Zwraca

Węzeł główny albo `false`, gdy pliku nie ma lub jest uszkodzony.

#### Przykład

```lua
local root = xmlLoadFile("spawns.xml", true)
if root then
    for _, node in ipairs(xmlNodeGetChildren(root)) do
        local x = tonumber(xmlNodeGetAttribute(node, "x"))
        local y = tonumber(xmlNodeGetAttribute(node, "y"))
        local z = tonumber(xmlNodeGetAttribute(node, "z"))
        createPickup(x, y, z, 0, 100)
    end
    xmlUnloadFile(root)
end
```

#### Zobacz też

- [`xmlUnloadFile`](https://trilogy-hub.com/docs/xmlUnloadFile/)
- [`xmlNodeGetChildren`](https://trilogy-hub.com/docs/xmlNodeGetChildren/)
- [`xmlCreateFile`](https://trilogy-hub.com/docs/xmlCreateFile/)
- [`xmlLoadString`](https://trilogy-hub.com/docs/xmlLoadString/)

### xmlLoadString

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Wczytuje dokument XML wprost z tekstu (np. odebranego z `fetchRemote`), tylko do czytania. Zwraca węzeł główny.

#### Składnia

```lua
xmlnode xmlLoadString(string xmlString)
```

#### Argumenty

- `xmlString` (string) - Treść XML.

#### Zwraca

Węzeł główny albo `false` dla błędnego XML.

#### Przykład

```lua
local root = xmlLoadString('<config><setting name="maxPlayers" value="64"/></config>')
local setting = xmlFindChild(root, "setting", 0)
outputDebugString(xmlNodeGetAttribute(setting, "value"))
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlLoadFile`](https://trilogy-hub.com/docs/xmlLoadFile/)
- [`xmlUnloadFile`](https://trilogy-hub.com/docs/xmlUnloadFile/)

### xmlNodeGetAttribute

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Zwraca wartość atrybutu węzła jako tekst (liczby trzeba zamienić przez `tonumber`).

#### Składnia

```lua
string xmlNodeGetAttribute(xmlnode node, string name)
```

#### Argumenty

- `node` (xmlnode) - Węzeł.
- `name` (string) - Nazwa atrybutu.

#### Zwraca

Wartość albo `false`, gdy atrybutu nie ma.

#### Przykład

```lua
local root = xmlLoadString('<car model="411" price="150000"/>')
local price = tonumber(xmlNodeGetAttribute(root, "price"))
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeSetAttribute`](https://trilogy-hub.com/docs/xmlNodeSetAttribute/)
- [`xmlNodeGetAttributes`](https://trilogy-hub.com/docs/xmlNodeGetAttributes/)

### xmlNodeGetAttributes

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Zwraca wszystkie atrybuty węzła jako tabelę nazwa → wartość.

#### Składnia

```lua
table xmlNodeGetAttributes(xmlnode node)
```

#### Argumenty

- `node` (xmlnode) - Węzeł.

#### Zwraca

Tabela atrybutów albo `false`.

#### Przykład

```lua
local root = xmlLoadString('<spawn x="1" y="2" z="3" skin="0"/>')
for name, value in pairs(xmlNodeGetAttributes(root)) do outputDebugString(name .. "=" .. value) end
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeGetAttribute`](https://trilogy-hub.com/docs/xmlNodeGetAttribute/)

### xmlNodeGetChildren

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Bez indeksu zwraca tablicę wszystkich dzieci węzła; z indeksem (od 0) - jedno dziecko.

#### Składnia

```lua
table xmlNodeGetChildren(xmlnode parent [, int index = nil])
```

#### Argumenty

- `parent` (xmlnode) - Węzeł.
- `index` (int, opcjonalny = nil) - Numer dziecka od 0.

#### Zwraca

Tablica węzłów (albo jeden węzeł, albo `false`).

#### Przykład

```lua
local root = xmlLoadString("<list><a/><b/><c/></list>")
for i, child in ipairs(xmlNodeGetChildren(root)) do
    outputDebugString(i .. ": " .. xmlNodeGetName(child))
end
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlFindChild`](https://trilogy-hub.com/docs/xmlFindChild/)
- [`xmlNodeGetParent`](https://trilogy-hub.com/docs/xmlNodeGetParent/)

### xmlNodeGetName

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Zwraca nazwę znacznika węzła (np. `"spawn"` dla `<spawn/>`).

#### Składnia

```lua
string xmlNodeGetName(xmlnode node)
```

#### Argumenty

- `node` (xmlnode) - Węzeł.

#### Zwraca

Nazwa albo `false`.

#### Przykład

```lua
local root = xmlLoadString("<config/>")
outputDebugString(xmlNodeGetName(root))
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeSetName`](https://trilogy-hub.com/docs/xmlNodeSetName/)

### xmlNodeGetParent

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Zwraca rodzica węzła.

#### Składnia

```lua
xmlnode xmlNodeGetParent(xmlnode node)
```

#### Argumenty

- `node` (xmlnode) - Węzeł.

#### Zwraca

Rodzic albo `false` dla węzła głównego.

#### Przykład

```lua
local root = xmlLoadString("<a><b/></a>")
local b = xmlFindChild(root, "b", 0)
outputDebugString(xmlNodeGetName(xmlNodeGetParent(b)))
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeGetChildren`](https://trilogy-hub.com/docs/xmlNodeGetChildren/)

### xmlNodeGetValue

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Zwraca tekst wewnątrz węzła (np. `"Witaj"` dla `<msg>Witaj</msg>`).

#### Składnia

```lua
string xmlNodeGetValue(xmlnode theXMLNode)
```

#### Argumenty

- `theXMLNode` (xmlnode) - Węzeł.

#### Zwraca

Tekst albo `false`.

#### Przykład

```lua
local root = xmlLoadString("<motd>Witaj na serwerze!</motd>")
outputChatBox(xmlNodeGetValue(root))
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeSetValue`](https://trilogy-hub.com/docs/xmlNodeSetValue/)

### xmlNodeSetAttribute

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Ustawia atrybut węzła; liczby i inne wartości są zamieniane na tekst. `nil` albo `false` usuwa atrybut.

#### Składnia

```lua
bool xmlNodeSetAttribute(xmlnode node, string name, string value)
```

#### Argumenty

- `node` (xmlnode) - Węzeł.
- `name` (string) - Nazwa atrybutu.
- `value` (string) - Wartość albo `nil`/`false` do usunięcia.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local root = xmlCreateFile("pos.xml", "pos")
local x, y, z = 2495, -1665, 13
xmlNodeSetAttribute(root, "x", x)
xmlNodeSetAttribute(root, "y", y)
xmlNodeSetAttribute(root, "z", z)
xmlSaveFile(root)
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeGetAttribute`](https://trilogy-hub.com/docs/xmlNodeGetAttribute/)

### xmlNodeSetName

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Zmienia nazwę znacznika węzła.

#### Składnia

```lua
bool xmlNodeSetName(xmlnode node, string name)
```

#### Argumenty

- `node` (xmlnode) - Węzeł.
- `name` (string) - Nowa nazwa.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local root = xmlCreateFile("x.xml", "old")
xmlNodeSetName(root, "new")
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeGetName`](https://trilogy-hub.com/docs/xmlNodeGetName/)

### xmlNodeSetValue

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Zmodyfikowana względem MTA:SA*

Ustawia tekst wewnątrz węzła (zastępuje poprzedni).

#### Składnia

```lua
bool xmlNodeSetValue(xmlnode theXMLNode, string value)
```

#### Argumenty

- `theXMLNode` (xmlnode) - Węzeł.
- `value` (string) - Nowy tekst.

#### Zwraca

`true` przy powodzeniu.

#### Różnice względem MTA:SA

- Tych argumentów z MTA:SA tu nie ma: `boolean setCDATA = false`
- W MTA:SA: `xmlNodeSetValue(xmlnode node, string value, boolean setCDATA = false)`

#### Przykład

```lua
local root = xmlCreateFile("motd.xml", "motd")
xmlNodeSetValue(root, "Nowy event w sobote!")
xmlSaveFile(root)
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlNodeGetValue`](https://trilogy-hub.com/docs/xmlNodeGetValue/)

### xmlSaveFile

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Zapisuje cały dokument (do którego należy węzeł) do jego pliku. Nie zadziała dla dokumentów tylko do czytania i z `xmlLoadString`.

#### Składnia

```lua
bool xmlSaveFile(xmlnode rootNode)
```

#### Argumenty

- `rootNode` (xmlnode) - Dowolny węzeł dokumentu (zwykle główny).

#### Zwraca

`true`, gdy zapisano.

#### Przykład

```lua
local root = xmlLoadFile("settings.xml") or xmlCreateFile("settings.xml", "settings")
xmlNodeSetAttribute(root, "lastStart", os.date("%Y-%m-%d %H:%M"))
xmlSaveFile(root)
xmlUnloadFile(root)
```

#### Zobacz też

- [`xmlCreateFile`](https://trilogy-hub.com/docs/xmlCreateFile/)
- [`xmlLoadFile`](https://trilogy-hub.com/docs/xmlLoadFile/)

### xmlUnloadFile

*Funkcja · Strona: Serwer i klient · Kategoria: XML · Identyczna z MTA:SA*

Zwalnia dokument z pamięci. Wszystkie jego węzły przestają być ważne. Niezapisane zmiany przepadają.

#### Składnia

```lua
bool xmlUnloadFile(xmlnode node)
```

#### Argumenty

- `node` (xmlnode) - Węzeł główny dokumentu.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local root = xmlLoadFile("data.xml", true)
if root then xmlUnloadFile(root) end
```

#### Zobacz też

- [`xmlLoadFile`](https://trilogy-hub.com/docs/xmlLoadFile/)
- [`xmlSaveFile`](https://trilogy-hub.com/docs/xmlSaveFile/)

### call

*Funkcja · Strona: Serwer i klient · Kategoria: Zasoby · Identyczna z MTA:SA*

Wywołuje funkcję wyeksportowaną przez inny zasób (`<export function="nazwa"/>` w jego `meta.xml`) i zwraca jej wyniki. To samo robi zapis `exports.zasob:funkcja(...)`. Gdy zasób nie istnieje albo nie działa, w konsoli pojawia się jasny komunikat.

#### Składnia

```lua
mixed call(resource theResource, string functionName [, any ...])
```

#### Argumenty

- `theResource` (resource) - Zasób (uchwyt albo nazwa).
- `functionName` (string) - Nazwa wyeksportowanej funkcji.
- `...` (any, opcjonalny) - Argumenty funkcji.

#### Zwraca

Wyniki funkcji albo `false`.

#### Przykład

```lua
local money = call(getResourceFromName("bank"), "getBalance", player)
-- to samo krócej:
local same = exports.bank:getBalance(player)
```

#### Zobacz też

- [`getResourceFromName`](https://trilogy-hub.com/docs/getResourceFromName/)
- [`getResourceExportedFunctions`](https://trilogy-hub.com/docs/getResourceExportedFunctions/)

### getResourceExportedFunctions

*Funkcja · Strona: Serwer i klient · Kategoria: Zasoby · Zmodyfikowana względem MTA:SA*

Zwraca nazwy funkcji, które zasób eksportuje w `meta.xml` (`<export function="..."/>`). W obecnej wersji serwera lista jest pusta.

#### Składnia

```lua
table getResourceExportedFunctions(resource theResource)
```

#### Argumenty

- `theResource` (resource) - Zasób.

#### Zwraca

Tablica nazw (obecnie pusta).

#### Różnice względem MTA:SA

- W MTA:SA: `getResourceExportedFunctions(resource theResource = getThisResource())`

#### Przykład

```lua
for _, name in ipairs(getResourceExportedFunctions(getResourceFromName("baza"))) do
    outputServerLog(name)
end
```

#### Zobacz też

- [`call`](https://trilogy-hub.com/docs/call/)

### addEvent

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Zmodyfikowana względem MTA:SA*

Rejestruje własne zdarzenie o podanej nazwie, żeby można było je wywoływać (`triggerEvent`, `triggerClientEvent`, `triggerServerEvent`) i obsługiwać (`addEventHandler`). Z `allowRemoteTrigger = true` zdarzenie może przyjść z drugiej strony sieci: na serwerze - od klienta przez `triggerServerEvent`, na kliencie - od serwera przez `triggerClientEvent`. Bez tego zdarzenia przychodzące z sieci są odrzucane, co chroni serwer przed podrabianiem zdarzeń przez klientów.

#### Składnia

```lua
bool addEvent(string eventName [, bool allowRemoteTrigger = false, bool isPrivate = false])
```

#### Argumenty

- `eventName` (string) - Nazwa zdarzenia (np. `"onPlayerBuyCar"`).
- `allowRemoteTrigger` (bool, opcjonalny = false) - `true` = można je wywołać z drugiej strony sieci.
- `isPrivate` (bool, opcjonalny = false) - `true` = zdarzenie prywatne: `triggerEvent` działa tylko z zasobu, który je zarejestrował; wywołanie z innego zasobu zwraca `false` i wypisuje błąd, a inny zasób nie może zarejestrować go ponownie.

#### Zwraca

`true` przy powodzeniu, `false`, gdy inny zasób próbuje przejąć zdarzenie prywatne.

#### Różnice względem MTA:SA

- W MTA:SA: `addEvent(string eventName, bool allowRemoteTrigger = false)`

#### Przykład

```lua
addEvent("onPlayerBuyCar", true)
addEventHandler("onPlayerBuyCar", root, function(model)
    if client ~= source then return end
    if getPlayerMoney(client) < 10000 then return end
    takePlayerMoney(client, 10000)
    local x, y, z = getElementPosition(client)
    createVehicle(model, x + 3, y, z)
end)
```

```lua
-- zdarzenie tylko dla tego zasobu: inne zasoby nie wyplaca sobie pieniedzy
addEvent("bank:payout", false, true)
addEventHandler("bank:payout", resourceRoot, function(player, amount)
    givePlayerMoney(player, amount)
end)
triggerEvent("bank:payout", resourceRoot, getRandomPlayer(), 100)
```

#### Uwagi

> **Ostrzeżenie:** W obsłudze zdarzenia wywołanego przez `triggerEvent` zmienne `sourceResource` i `sourceResourceRoot` wskazują zasób, który je wywołał (przy zdarzeniach od gry i od klienta są `nil`). Prywatność nie blokuje klienta: o nim decyduje `allowRemoteTrigger`.

> **Ostrzeżenie:** Na serwerze zawsze sprawdzaj w obsłudze zdarzenia z sieci zmienną `client` (gracz, który je wysłał), a nie tylko `source`, bo klient może podać dowolny element jako źródło.

#### Zobacz też

- [`addEventHandler`](https://trilogy-hub.com/docs/addEventHandler/)
- [`triggerServerEvent`](https://trilogy-hub.com/docs/triggerServerEvent/)
- [`triggerClientEvent`](https://trilogy-hub.com/docs/triggerClientEvent/)
- [`isEventAdded`](https://trilogy-hub.com/docs/isEventAdded/)

### addEventHandler

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Podpina funkcję pod zdarzenie. Tak reagujesz na wejście gracza, śmierć, klawisz, każdą klatkę i własne zdarzenia.

#### Składnia

```lua
bool addEventHandler(string name, element attachedTo, function fn [, bool propagate = true, string priority = "normal"])
```

#### Argumenty

- `name` (string) - Nazwa zdarzenia, np. `onPlayerJoin` albo własnego z `addEvent`.
- `attachedTo` (element) - Element, którego zdarzenia łapiesz. `root` łapie wszystkie, `resourceRoot` tylko elementy tego zasobu.
- `fn` (function) - Funkcja obsługi. W środku dostępne są `source` i `eventName`.
- `propagate` (bool, opcjonalny = true) - Czy łapać też zdarzenia elementów niżej w drzewie.
- `priority` (string, opcjonalny = normal) - `high`, `normal` albo `low`. Decyduje o kolejności, gdy kilka funkcji obsługuje to samo zdarzenie.

#### Zwraca

`true`, gdy funkcja została podpięta, albo `false`, gdy ta sama funkcja jest już podpięta pod to zdarzenie i element.

#### Przykład

```lua
local function powitanie()
    outputChatBox("Cześć, " .. getPlayerName(source) .. "!", source)
end
addEventHandler("onPlayerJoin", root, powitanie)

-- ta sama funkcja drugi raz: zwraca false
addEventHandler("onPlayerJoin", root, powitanie)
```

#### Uwagi

> **Uwaga:** **Warto wiedzieć.** Funkcję odepniesz przez `removeEventHandler` z tymi samymi argumentami. Zdarzenie możesz zatrzymać przez `cancelEvent()`, jeśli opis zdarzenia na to pozwala.

#### Zobacz też

- [`onPlayerJoin`](https://trilogy-hub.com/docs/onPlayerJoin/)
- [`onClientRender`](https://trilogy-hub.com/docs/onClientRender/)
- [`triggerServerEvent`](https://trilogy-hub.com/docs/triggerServerEvent/)
- [`triggerClientEvent`](https://trilogy-hub.com/docs/triggerClientEvent/)
- [`removeEventHandler`](https://trilogy-hub.com/docs/removeEventHandler/)

### cancelEvent

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Zmodyfikowana względem MTA:SA*

Anuluje bieżące zdarzenie z wnętrza jego obsługi. Dla zdarzeń, które na to pozwalają, blokuje domyślne działanie, np. `onPlayerChat` (wiadomość nie pojawi się na czacie), `onPickupHit` (pickup nie zostanie zebrany), `onVehicleStartEnter` (gracz nie wsiądzie). Pozostałe obsługi nadal się wywołują i mogą sprawdzić stan przez `wasEventCancelled`. Na serwerze można podać powód, który odczyta `getCancelReason`.

#### Składnia

```lua
bool cancelEvent([bool cancel = true, string reason = ""])
```

#### Argumenty

- `cancel` (bool, opcjonalny = true) - Tylko serwer: `false` = nic nie rób.
- `reason` (string, opcjonalny = "") - Tylko serwer: powód anulowania.

#### Zwraca

`true`, gdy wywołano w trakcie zdarzenia.

#### Różnice względem MTA:SA

- W MTA:SA: `cancelEvent()`

#### Przykład

```lua
addEventHandler("onPlayerChat", root, function(message)
    if message:find("http") then
        cancelEvent()
        outputChatBox("Linki sa zablokowane", source, 255, 0, 0)
    end
end)
```

#### Zobacz też

- [`wasEventCancelled`](https://trilogy-hub.com/docs/wasEventCancelled/)
- [`getCancelReason`](https://trilogy-hub.com/docs/getCancelReason/)

### getEventHandlerCount

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Tylko Trilogy Hub*

Zwraca łączną liczbę funkcji podpiętych pod zdarzenie na wszystkich elementach. Przydaje się do szukania wycieków (np. ktoś dokłada `onClientRender` co sekundę).

#### Składnia

```lua
int getEventHandlerCount(string eventName)
```

#### Argumenty

- `eventName` (string) - Nazwa zdarzenia.

#### Zwraca

Liczba obsług.

#### Przykład

```lua
setTimer(function()
    outputDebugString("onClientRender: " .. getEventHandlerCount("onClientRender"))
end, 10000, 0)
```

#### Zobacz też

- [`getEventHandlers`](https://trilogy-hub.com/docs/getEventHandlers/)

### getEventHandlers

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Zwraca listę funkcji podpiętych pod zdarzenie bezpośrednio na danym elemencie (bez obsług na rodzicach).

#### Składnia

```lua
table getEventHandlers(string eventName, element attachedTo)
```

#### Argumenty

- `eventName` (string) - Nazwa zdarzenia.
- `attachedTo` (element) - Element.

#### Zwraca

Tablica funkcji (pusta, gdy nic nie podpięto).

#### Przykład

```lua
for _, fn in ipairs(getEventHandlers("onPlayerJoin", root)) do
    removeEventHandler("onPlayerJoin", root, fn)
end
```

#### Zobacz też

- [`getEventHandlerCount`](https://trilogy-hub.com/docs/getEventHandlerCount/)
- [`removeEventHandler`](https://trilogy-hub.com/docs/removeEventHandler/)

### getEventNames

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Tylko Trilogy Hub*

Zwraca posortowaną listę nazw wszystkich znanych zdarzeń: wbudowanych i zarejestrowanych przez `addEvent`.

#### Składnia

```lua
table getEventNames()
```

#### Zwraca

Tablica nazw.

#### Przykład

```lua
for _, name in ipairs(getEventNames()) do outputDebugString(name) end
```

#### Zobacz też

- [`isEventAdded`](https://trilogy-hub.com/docs/isEventAdded/)

### isEventAdded

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Tylko Trilogy Hub*

Sprawdza, czy zdarzenie o tej nazwie istnieje (jest wbudowane albo dodane przez `addEvent`).

#### Składnia

```lua
bool isEventAdded(string eventName)
```

#### Argumenty

- `eventName` (string) - Nazwa zdarzenia.

#### Zwraca

`true`, gdy istnieje.

#### Przykład

```lua
if not isEventAdded("onJobFinished") then addEvent("onJobFinished") end
```

#### Zobacz też

- [`addEvent`](https://trilogy-hub.com/docs/addEvent/)
- [`getEventNames`](https://trilogy-hub.com/docs/getEventNames/)

### removeEventHandler

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Odpina funkcję od zdarzenia. Trzeba podać tę samą nazwę, element i tę samą funkcję (tę samą zmienną), co przy `addEventHandler` - funkcja anonimowa wpisana ponownie to inna funkcja.

#### Składnia

```lua
bool removeEventHandler(string eventName, element attachedTo, function functionVar)
```

#### Argumenty

- `eventName` (string) - Nazwa zdarzenia.
- `attachedTo` (element) - Element, do którego podpięto funkcję.
- `functionVar` (function) - Ta sama funkcja.

#### Zwraca

`true`, gdy odpięto; `false`, gdy nie była podpięta.

#### Przykład

```lua
local function drawSpeed()
    dxDrawText("Predkosc", 20, 20)
end
addEventHandler("onClientRender", root, drawSpeed)
setTimer(function() removeEventHandler("onClientRender", root, drawSpeed) end, 10000, 1)
```

#### Zobacz też

- [`addEventHandler`](https://trilogy-hub.com/docs/addEventHandler/)

### triggerEvent

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Wywołuje zdarzenie na elemencie po tej samej stronie (serwer → serwer, klient → klient). Obsługi wywołują się od razu, zanim funkcja zwróci wynik. Zdarzenie musi być zarejestrowane przez `addEvent` albo być wbudowane.

#### Składnia

```lua
bool triggerEvent(string eventName, element baseElement [, any ...])
```

#### Argumenty

- `eventName` (string) - Nazwa zdarzenia.
- `baseElement` (element) - Element, który będzie `source`.
- `...` (any, opcjonalny) - Argumenty przekazane do obsług.

#### Zwraca

`false`, gdy któraś obsługa wywołała `cancelEvent`; inaczej `true`.

#### Przykład

```lua
addEvent("onJobFinished")
addEventHandler("onJobFinished", root, function(pay)
    givePlayerMoney(source, pay)
end)

addCommandHandler("koniec", function(player)
    triggerEvent("onJobFinished", player, 500)
end)
```

#### Zobacz też

- [`addEvent`](https://trilogy-hub.com/docs/addEvent/)
- [`cancelEvent`](https://trilogy-hub.com/docs/cancelEvent/)
- [`triggerClientEvent`](https://trilogy-hub.com/docs/triggerClientEvent/)

### wasEventCancelled

*Funkcja · Strona: Serwer i klient · Kategoria: Zdarzenia · Identyczna z MTA:SA*

Sprawdza, czy bieżące zdarzenie zostało anulowane przez `cancelEvent` we wcześniejszej obsłudze; poza zdarzeniem - czy ostatnie zdarzenie zostało anulowane.

#### Składnia

```lua
bool wasEventCancelled()
```

#### Zwraca

`true`, gdy anulowano.

#### Przykład

```lua
addEventHandler("onPlayerChat", root, function(message)
    if wasEventCancelled() then return end
    outputServerLog("CZAT: " .. getPlayerName(source) .. ": " .. message)
end, true, "low")
```

#### Zobacz też

- [`cancelEvent`](https://trilogy-hub.com/docs/cancelEvent/)

### createMarker

*Funkcja · Strona: Serwer i klient · Kategoria: Znaczniki · Zmodyfikowana względem MTA:SA*

Tworzy znacznik w świecie: kolorowy walec do wchodzenia (np. wejście do pracy), strzałkę nad punktem, koronę albo pierścień. Gdy gracz wejdzie w znacznik, serwer wywołuje `onMarkerHit` z graczem jako pierwszym argumentem, a przy wyjściu `onMarkerLeave`. Typy: `"cylinder"` (walec), `"checkpoint"` (punkt kontrolny), `"arrow"` (strzałka), `"corona"` (miękka kula światła zwrócona do kamery), `"ring"` (pierścień). Rozmiar to średnica w metrach.

#### Składnia

```lua
marker createMarker(float x, float y, float z [, string markerType = "checkpoint", float size = 4, int r = 0, int g = 0, int b = 255, int a = 180])
```

#### Argumenty

- `x` (float) - X miejsca.
- `y` (float) - Y miejsca.
- `z` (float) - Z miejsca (dla walca - poziom ziemi).
- `markerType` (string, opcjonalny = "checkpoint") - Typ znacznika (patrz wyżej).
- `size` (float, opcjonalny = 4) - Średnica w metrach.
- `r` (int, opcjonalny = 0) - Czerwony 0-255 albo cały kolor z `tocolor` (wtedy bez g, b, a).
- `g` (int, opcjonalny = 0) - Zielony 0-255.
- `b` (int, opcjonalny = 255) - Niebieski 0-255.
- `a` (int, opcjonalny = 180) - Krycie 0-255.

#### Zwraca

Nowy znacznik albo `false`.

#### Różnice względem MTA:SA

- W MTA:SA: `createMarker(float x, float y, float z, string theType = "checkpoint")`

#### Przykład

```lua
local job = createMarker(2495, -1670, 12.5, "cylinder", 1.5, 255, 200, 0, 150)
addEventHandler("onMarkerHit", job, function(hitElement, matchingDimension)
    if getElementType(hitElement) == "player" and matchingDimension then
        outputChatBox("Praca kuriera: wpisz /praca", hitElement)
    end
end)
```

#### Uwagi

> **Nowość:** Walce i punkty kontrolne korzystają z tych samych modeli co znaczniki fabularne gry; korona to miękka poświata o średnicy około `size`, w kolorze i z przezroczystością z argumentów, zasłaniana przez budynki; pierścień jest rysowany jako poświata gry.

> **Nowość:** **Kolor z `tocolor`.** Zamiast czterech liczb można podać jeden kolor: `createMarker(x, y, z, "cylinder", 1, tocolor(255, 0, 0, 150))`.

#### Zobacz też

- [`setMarkerType`](https://trilogy-hub.com/docs/setMarkerType/)
- [`setMarkerColor`](https://trilogy-hub.com/docs/setMarkerColor/)
- [`onMarkerHit`](https://trilogy-hub.com/docs/onMarkerHit/)
- [`onMarkerLeave`](https://trilogy-hub.com/docs/onMarkerLeave/)

### getMarkerColor

*Funkcja · Strona: Serwer i klient · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zwraca kolor znacznika.

#### Składnia

```lua
int, int, int, int getMarkerColor(marker theMarker)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.

#### Zwraca

r, g, b, a albo `false`.

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "cylinder", 2, 255, 0, 0)
local r, g, b, a = getMarkerColor(marker)
```

#### Zobacz też

- [`setMarkerColor`](https://trilogy-hub.com/docs/setMarkerColor/)

### getMarkerCount

*Funkcja · Strona: Serwer i klient · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zwraca liczbę wszystkich znaczników na serwerze.

#### Składnia

```lua
int getMarkerCount()
```

#### Zwraca

Liczba znaczników.

#### Przykład

```lua
outputDebugString("Znacznikow: " .. getMarkerCount())
```

#### Zobacz też

- [`createMarker`](https://trilogy-hub.com/docs/createMarker/)

### getMarkerSize

*Funkcja · Strona: Serwer i klient · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zwraca rozmiar (średnicę w metrach) znacznika.

#### Składnia

```lua
float getMarkerSize(marker theMarker)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.

#### Zwraca

Rozmiar albo `false`.

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "cylinder", 2)
outputDebugString("Rozmiar: " .. getMarkerSize(marker))
```

#### Zobacz też

- [`setMarkerSize`](https://trilogy-hub.com/docs/setMarkerSize/)

### getMarkerType

*Funkcja · Strona: Serwer i klient · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zwraca typ znacznika (`"cylinder"`, `"checkpoint"`, `"arrow"`, `"corona"`, `"ring"`).

#### Składnia

```lua
string getMarkerType(marker theMarker)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.

#### Zwraca

Typ albo `false`.

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "arrow")
outputDebugString(getMarkerType(marker))
```

#### Zobacz też

- [`setMarkerType`](https://trilogy-hub.com/docs/setMarkerType/)

### setMarkerColor

*Funkcja · Strona: Serwer i klient · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zmienia kolor i krycie znacznika, np. na zielony, gdy praca jest dostępna, i czerwony, gdy nie.

#### Składnia

```lua
bool setMarkerColor(marker theMarker, int r, int g, int b [, int a = 255])
```

#### Argumenty

- `theMarker` (marker) - Znacznik.
- `r` (int) - Czerwony 0-255 albo cały kolor z `tocolor` (wtedy bez g, b, a).
- `g` (int) - Zielony 0-255.
- `b` (int) - Niebieski 0-255.
- `a` (int, opcjonalny = 255) - Krycie 0-255.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local marker = createMarker(2495, -1670, 12.5, "cylinder", 1.5)
setMarkerColor(marker, 0, 255, 0, 150)
```

#### Zobacz też

- [`getMarkerColor`](https://trilogy-hub.com/docs/getMarkerColor/)

### setMarkerSize

*Funkcja · Strona: Serwer i klient · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zmienia rozmiar (średnicę w metrach) znacznika. Strefa wejścia (`onMarkerHit`) zmienia się razem z nim.

#### Składnia

```lua
bool setMarkerSize(marker theMarker, float size)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.
- `size` (float) - Nowa średnica.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "corona", 1)
local size = 1
setTimer(function()
    size = size % 5 + 1
    setMarkerSize(marker, size)
end, 500, 0)
```

#### Zobacz też

- [`getMarkerSize`](https://trilogy-hub.com/docs/getMarkerSize/)

### setMarkerType

*Funkcja · Strona: Serwer i klient · Kategoria: Znaczniki · Identyczna z MTA:SA*

Zmienia typ znacznika bez tworzenia go od nowa (np. walec zamienia się w strzałkę).

#### Składnia

```lua
bool setMarkerType(marker theMarker, string markerType)
```

#### Argumenty

- `theMarker` (marker) - Znacznik.
- `markerType` (string) - `"cylinder"`, `"checkpoint"`, `"arrow"`, `"corona"` albo `"ring"`.

#### Zwraca

`true` przy powodzeniu.

#### Przykład

```lua
local marker = createMarker(0, 0, 3, "cylinder")
setMarkerType(marker, "arrow")
```

#### Zobacz też

- [`getMarkerType`](https://trilogy-hub.com/docs/getMarkerType/)
- [`createMarker`](https://trilogy-hub.com/docs/createMarker/)

---

## Zdarzenia serwera

Zdarzenia wywoływane na serwerze. Podpinasz je przez addEventHandler w skrypcie serwera.

### onPlayerWeaponFire

*Zdarzenie · Strona: Serwer · Kategoria: Bronie · Zmodyfikowane względem MTA:SA*

Gracz oddał strzał z broni palnej. Przychodzi raz na każdy pocisk, z punktem, z którego padł strzał, i punktem, w który trafił (ściana, ziemia, postać albo koniec zasięgu). Gra zgłasza strzały tylko wtedy, gdy któryś zasób nasłuchuje tego zdarzenia, więc bez nasłuchu nic nie kosztuje.

#### Obsługa

```lua
addEventHandler("onPlayerWeaponFire", root, function(weapon, endX, endY, endZ, startX, startY, startZ)

end)
```

#### Parametry

- `weapon` (int) - Numer broni.
- `endX, endY, endZ` (float) - Punkt trafienia pocisku.
- `startX, startY, startZ` (float) - Wylot lufy.

#### Źródło

`source` to gracz, który strzelił.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `float startZ`
- W MTA:SA: `function(int weaponID, float endX, float endY, float endZ, element hitElement, float startX, float startY, float startZ)`

#### Przykład

```lua
addEventHandler("onPlayerWeaponFire", root, function(weapon, ex, ey, ez, sx, sy, sz)
    local dist = getDistanceBetweenPoints3D(sx, sy, sz, ex, ey, ez)
    outputServerLog(("%s strzela z %d na %.1f m"):format(getPlayerName(source), weapon, dist))
end)
```

#### Uwagi

> **Uwaga:** **Tylko broń z natychmiastowym trafieniem.** Pistolety, strzelby, pistolety maszynowe, karabiny, snajperki (22-34) i minigun (38). Granaty, rakiety i miotacz ognia nie wywołują zdarzenia.

#### Zobacz też

- [`onClientPlayerWeaponFire`](https://trilogy-hub.com/docs/onClientPlayerWeaponFire/)
- [`onPlayerDamage`](https://trilogy-hub.com/docs/onPlayerDamage/)

### onWeaponFire

*Zdarzenie · Strona: Serwer · Kategoria: Bronie · Zmodyfikowane względem MTA:SA*

Broń skryptowa (`createWeapon`) oddała strzał przez `fireWeapon`.

#### Obsługa

```lua
addEventHandler("onWeaponFire", root, function(x, y, z, targetX, targetY, targetZ)

end)
```

#### Parametry

- `x, y, z` (float) - Pozycja broni.
- `targetX, targetY, targetZ` (float) - Punkt celu.

#### Źródło

`source` to broń.

#### Różnice względem MTA:SA

- W MTA:SA: `function()`

#### Przykład

```lua
addEventHandler("onWeaponFire", root, function(x, y, z, tx, ty, tz)
    outputServerLog(("Strzał z %.0f, %.0f w %.0f, %.0f"):format(x, y, tx, ty))
end)
```

#### Zobacz też

- [`createWeapon`](https://trilogy-hub.com/docs/createWeapon/)
- [`fireWeapon`](https://trilogy-hub.com/docs/fireWeapon/)

### onChatMessage

*Zdarzenie · Strona: Serwer · Kategoria: Czat i konsola · Identyczne z MTA:SA*

Na czat idzie wiadomość (od gracza albo ze skryptu). Możesz ją wstrzymać.

#### Obsługa

```lua
addEventHandler("onChatMessage", root, function(theMessage, theElement)

end)
```

#### Parametry

- `theMessage` (string) - Treść.
- `theElement` (element) - Nadawca albo zasób.

#### Źródło

`source` to źródło wiadomości albo `root`.

`cancelEvent()` wstrzymuje wiadomość.

#### Przykład

```lua
addEventHandler("onChatMessage", root, function(message)
    outputServerLog("[czat] " .. message)
end)
```

#### Zobacz też

- [`onPlayerChat`](https://trilogy-hub.com/docs/onPlayerChat/)
- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)

### onConsole

*Zdarzenie · Strona: Serwer · Kategoria: Czat i konsola · Identyczne z MTA:SA*

Ktoś wpisał tekst w konsoli: gracz w konsoli gry (F8) albo administrator w konsoli serwera.

#### Obsługa

```lua
addEventHandler("onConsole", root, function(theMessage)

end)
```

#### Parametry

- `theMessage` (string) - Wpisany tekst.

#### Źródło

`source` to gracz albo `root` (konsola serwera).

#### Przykład

```lua
addEventHandler("onConsole", root, function(text)
    outputServerLog("konsola: " .. text)
end)
```

#### Zobacz też

- [`addCommandHandler`](https://trilogy-hub.com/docs/addCommandHandler/)

### onDebugMessage

*Zdarzenie · Strona: Serwer · Kategoria: Czat i konsola · Identyczne z MTA:SA*

Pojawił się komunikat debugowania (błąd, ostrzeżenie albo `outputDebugString`). Przydaje się do zbierania błędów skryptów w jednym miejscu.

#### Obsługa

```lua
addEventHandler("onDebugMessage", root, function(message, level, file, line, r, g, b)

end)
```

#### Parametry

- `message` (string) - Treść.
- `level` (int) - Poziom: 1 błąd, 2 ostrzeżenie, 3 informacja.
- `file` (string) - Plik.
- `line` (int) - Linia.
- `r` (int) - Kolor czerwony.
- `g` (int) - Kolor zielony.
- `b` (int) - Kolor niebieski.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onDebugMessage", root, function(message, level, file, line)
    if level == 1 then
        local f = fileExists("bledy.log") and fileOpen("bledy.log") or fileCreate("bledy.log")
        fileSetPos(f, fileGetSize(f))
        fileWrite(f, ("%s:%s %s\n"):format(tostring(file), tostring(line), message))
        fileClose(f)
    end
end)
```

#### Zobacz też

- [`outputDebugString`](https://trilogy-hub.com/docs/outputDebugString/)

### onPlayerChat

*Zdarzenie · Strona: Serwer · Kategoria: Czat i konsola · Identyczne z MTA:SA*

Gracz napisał wiadomość na czacie (zwykłą albo `/me`). Możesz ją zablokować, np. żeby wysłać własną, sformatowaną.

#### Obsługa

```lua
addEventHandler("onPlayerChat", root, function(message, messageType)

end)
```

#### Parametry

- `message` (string) - Treść.
- `messageType` (int) - `0` zwykła, `1` akcja `/me`.

#### Źródło

`source` to gracz.

`cancelEvent()` blokuje wiadomość.

#### Przykład

Czat z kolorem drużyny przed nickiem.

```lua
addEventHandler("onPlayerChat", root, function(message, messageType)
    if messageType ~= 0 then return end
    cancelEvent()
    local r, g, b = getPlayerNametagColor(source)
    outputChatBox(getPlayerName(source) .. ": #FFFFFF" .. message, root, r, g, b, true)
end)
```

#### Zobacz też

- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)
- [`onPlayerPrivateMessage`](https://trilogy-hub.com/docs/onPlayerPrivateMessage/)

### onPlayerCommand

*Zdarzenie · Strona: Serwer · Kategoria: Czat i konsola · Identyczne z MTA:SA*

Gracz wpisał komendę (zanim wykona ją `addCommandHandler`). Możesz ją zablokować.

#### Obsługa

```lua
addEventHandler("onPlayerCommand", root, function(command, ...)

end)
```

#### Parametry

- `command` (string) - Nazwa komendy.
- `...` (string) - Słowa po komendzie.

#### Źródło

`source` to gracz.

`cancelEvent()` blokuje komendę.

#### Przykład

```lua
addEventHandler("onPlayerCommand", root, function(command)
    if command == "kill" and getElementData(source, "wiezien") then cancelEvent() end
end)
```

#### Zobacz też

- [`addCommandHandler`](https://trilogy-hub.com/docs/addCommandHandler/)

### onPlayerPrivateMessage

*Zdarzenie · Strona: Serwer · Kategoria: Czat i konsola · Zmodyfikowane względem MTA:SA*

Gracz wysłał prywatną wiadomość do innego gracza.

#### Obsługa

```lua
addEventHandler("onPlayerPrivateMessage", root, function(message, recipient)

end)
```

#### Parametry

- `message` (string) - Treść.
- `recipient` (player) - Odbiorca.

#### Źródło

`source` to nadawca.

`cancelEvent()` blokuje wiadomość.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `string content`
- W MTA:SA: `function(string fullMessage, player recipient, string content)`

#### Przykład

```lua
addEventHandler("onPlayerPrivateMessage", root, function(message, recipient)
    outputServerLog(getPlayerName(source) .. " -> " .. getPlayerName(recipient) .. ": " .. message)
end)
```

#### Zobacz też

- [`onPlayerChat`](https://trilogy-hub.com/docs/onPlayerChat/)

### onElementDataChange

*Zdarzenie · Strona: Serwer · Kategoria: Elementy · Identyczne z MTA:SA*

Zmieniły się dane elementu (`setElementData` albo `removeElementData`), także od klienta.

#### Obsługa

```lua
addEventHandler("onElementDataChange", root, function(theKey, oldValue, newValue)

end)
```

#### Parametry

- `theKey` (string) - Klucz.
- `oldValue` (mixed) - Poprzednia wartość (`false`, jeśli jej nie było).
- `newValue` (mixed) - Nowa wartość (`false` po `removeElementData`).

#### Źródło

`source` to element.

#### Przykład

Ochrona: klient nie może sam zmienić pieniędzy.

```lua
addEventHandler("onElementDataChange", root, function(key, old)
    if key == "pieniadze" and client then
        setElementData(source, key, old)
    end
end)
```

#### Zobacz też

- [`setElementData`](https://trilogy-hub.com/docs/setElementData/)
- [`getElementData`](https://trilogy-hub.com/docs/getElementData/)

### onElementDestroy

*Zdarzenie · Strona: Serwer · Kategoria: Elementy · Identyczne z MTA:SA*

Element zaraz zostanie usunięty (jeszcze istnieje).

#### Obsługa

```lua
addEventHandler("onElementDestroy", root, function()

end)
```

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onElementDestroy", root, function()
    if getElementType(source) == "vehicle" then outputServerLog("Usuwam " .. getVehicleName(source)) end
end)
```

#### Zobacz też

- [`destroyElement`](https://trilogy-hub.com/docs/destroyElement/)

### onElementDimensionChange

*Zdarzenie · Strona: Serwer · Kategoria: Elementy · Identyczne z MTA:SA*

Element przeszedł do innego wymiaru.

#### Obsługa

```lua
addEventHandler("onElementDimensionChange", root, function(oldDimension, newDimension)

end)
```

#### Parametry

- `oldDimension` (int) - Stary wymiar.
- `newDimension` (int) - Nowy wymiar.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onElementDimensionChange", root, function(old, new)
    if getElementType(source) == "player" then outputChatBox("Wymiar " .. new, source) end
end)
```

#### Zobacz też

- [`setElementDimension`](https://trilogy-hub.com/docs/setElementDimension/)
- [`onElementInteriorChange`](https://trilogy-hub.com/docs/onElementInteriorChange/)

### onElementInteriorChange

*Zdarzenie · Strona: Serwer · Kategoria: Elementy · Identyczne z MTA:SA*

Element przeszedł do innego wnętrza.

#### Obsługa

```lua
addEventHandler("onElementInteriorChange", root, function(oldInterior, newInterior)

end)
```

#### Parametry

- `oldInterior` (int) - Stare wnętrze.
- `newInterior` (int) - Nowe wnętrze.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onElementInteriorChange", root, function(old, new)
    if getElementType(source) == "player" and new == 0 then outputChatBox("Jesteś na zewnątrz", source) end
end)
```

#### Zobacz też

- [`setElementInterior`](https://trilogy-hub.com/docs/setElementInterior/)
- [`onElementDimensionChange`](https://trilogy-hub.com/docs/onElementDimensionChange/)

### onElementModelChange

*Zdarzenie · Strona: Serwer · Kategoria: Elementy · Identyczne z MTA:SA*

Zmienił się model elementu (np. skin gracza albo model auta).

#### Obsługa

```lua
addEventHandler("onElementModelChange", root, function(oldModel, newModel)

end)
```

#### Parametry

- `oldModel` (int) - Stary model.
- `newModel` (int) - Nowy model.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onElementModelChange", root, function(old, new)
    if getElementType(source) == "player" then outputChatBox("Nowy skin: " .. new, source) end
end)
```

#### Zobacz też

- [`setElementModel`](https://trilogy-hub.com/docs/setElementModel/)

### onElementStartSync

*Zdarzenie · Strona: Serwer · Kategoria: Elementy · Identyczne z MTA:SA*

Gracz zaczął liczyć fizykę pojazdu albo obiektu (został jego synchronizatorem).

#### Obsługa

```lua
addEventHandler("onElementStartSync", root, function(newSyncer)

end)
```

#### Parametry

- `newSyncer` (player) - Nowy synchronizator.

#### Źródło

`source` to pojazd albo obiekt.

#### Przykład

```lua
addEventHandler("onElementStartSync", root, function(syncer)
    outputServerLog(getPlayerName(syncer) .. " liczy " .. getElementType(source))
end)
```

#### Zobacz też

- [`onElementStopSync`](https://trilogy-hub.com/docs/onElementStopSync/)
- [`getElementSyncer`](https://trilogy-hub.com/docs/getElementSyncer/)

### onElementStopSync

*Zdarzenie · Strona: Serwer · Kategoria: Elementy · Identyczne z MTA:SA*

Gracz przestał liczyć fizykę elementu.

#### Obsługa

```lua
addEventHandler("onElementStopSync", root, function(oldSyncer)

end)
```

#### Parametry

- `oldSyncer` (player) - Poprzedni synchronizator albo `false`, gdy już wyszedł.

#### Źródło

`source` to pojazd albo obiekt.

#### Przykład

```lua
addEventHandler("onElementStopSync", root, function(old)
    if not old then outputServerLog("Synchronizator wyszedł") end
end)
```

#### Zobacz też

- [`onElementStartSync`](https://trilogy-hub.com/docs/onElementStartSync/)

### onPlayerACInfo

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Przychodzi zaraz po `onPlayerJoin` z informacjami o modyfikacjach gry gracza. Lista wykrytych modyfikacji jest pusta, bo klient ich jeszcze nie wykrywa.

#### Obsługa

```lua
addEventHandler("onPlayerACInfo", root, function(detectedACList, d3d9Size, d3d9MD5, d3d9SHA256)

end)
```

#### Parametry

- `detectedACList` (table) - Wykryte modyfikacje (obecnie pusta).
- `d3d9Size` (int) - Dla zgodności ze starszymi skryptami.
- `d3d9MD5` (string) - Dla zgodności ze starszymi skryptami.
- `d3d9SHA256` (string) - Dla zgodności ze starszymi skryptami.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerACInfo", root, function(list)
    if #list > 0 then outputServerLog(getPlayerName(source) .. " ma modyfikacje") end
end)
```

#### Zobacz też

- [`onPlayerModInfo`](https://trilogy-hub.com/docs/onPlayerModInfo/)
- [`onPlayerJoin`](https://trilogy-hub.com/docs/onPlayerJoin/)

### onPlayerChangeNick

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Zmodyfikowane względem MTA:SA*

Gracz zmienił nick (np. `setPlayerName`).

#### Obsługa

```lua
addEventHandler("onPlayerChangeNick", root, function(oldNick, newNick)

end)
```

#### Parametry

- `oldNick` (string) - Stary nick.
- `newNick` (string) - Nowy nick.

#### Źródło

`source` to gracz.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `bool changedByUser`
- W MTA:SA: `function(string oldNick, string newNick, bool changedByUser)`

#### Przykład

```lua
addEventHandler("onPlayerChangeNick", root, function(old, new)
    outputChatBox(old .. " to teraz " .. new, root)
end)
```

#### Zobacz też

- [`setPlayerName`](https://trilogy-hub.com/docs/setPlayerName/)

### onPlayerChangesProtectedData

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Zmodyfikowane względem MTA:SA*

Skrypt klienta próbował zmienić chroniony klucz danych elementu: klucz ustawiony przez serwer z `setElementData(..., "deny")` albo każdy klucz, gdy `server-config.json` ma `"element_data_client_changes": "deny"`. Zmiana jest odrzucona, a gracz dostaje z powrotem wartość serwera.

#### Obsługa

```lua
addEventHandler("onPlayerChangesProtectedData", root, function(element, key, value)

end)
```

#### Parametry

- `element` (element) - Element, którego dane próbowano zmienić.
- `key` (string) - Klucz.
- `value` (mixed) - Wartość, którą wysłał klient (`nil` przy próbie usunięcia).

#### Źródło

`source` to gracz, który wysłał zmianę.

#### Różnice względem MTA:SA

- W MTA:SA: `function()`

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    setElementData(source, "money", 0, true, "deny")
end)
addEventHandler("onPlayerChangesProtectedData", root, function(element, key, value)
    outputServerLog(getPlayerName(source) .. " probowal zmienic " .. key)
end)
```

#### Zobacz też

- [`setElementData`](https://trilogy-hub.com/docs/setElementData/)
- [`onElementDataChange`](https://trilogy-hub.com/docs/onElementDataChange/)

### onPlayerConnect

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz łączy się z serwerem, zanim powstanie jego element. Możesz odrzucić połączenie, np. za nick albo bana.

#### Obsługa

```lua
addEventHandler("onPlayerConnect", root, function(playerNick, playerIP, playerUsername, playerSerial, playerVersionNumber, playerVersionString)

end)
```

#### Parametry

- `playerNick` (string) - Nick.
- `playerIP` (string) - Adres IP.
- `playerUsername` (string) - Nazwa konta launchera.
- `playerSerial` (string) - Numer seryjny gracza.
- `playerVersionNumber` (int) - Numer wersji klienta.
- `playerVersionString` (string) - Wersja klienta jako tekst.

#### Źródło

`source` to `root`.

`cancelEvent(true, "powód")` odrzuca połączenie; gracz widzi powód.

#### Przykład

Zakaz nicków z ukośnikiem.

```lua
addEventHandler("onPlayerConnect", root, function(nick)
    if nick:find("/", 1, true) then
        cancelEvent(true, "Nick nie może mieć ukośnika.")
    end
end)
```

#### Zobacz też

- [`onPlayerJoin`](https://trilogy-hub.com/docs/onPlayerJoin/)
- [`getCancelReason`](https://trilogy-hub.com/docs/getCancelReason/)
- [`cancelEvent`](https://trilogy-hub.com/docs/cancelEvent/)

### onPlayerContact

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Zmienił się element pod stopami gracza (pojazd albo obiekt, na którym stoi).

#### Obsługa

```lua
addEventHandler("onPlayerContact", root, function(previous, current)

end)
```

#### Parametry

- `previous` (element) - Poprzedni element albo `false`.
- `current` (element) - Obecny element albo `false`.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerContact", root, function(_, current)
    if current and getElementType(current) == "vehicle" then
        outputChatBox("Stoisz na pojeździe.", source)
    end
end)
```

#### Zobacz też

- [`getPedContactElement`](https://trilogy-hub.com/docs/getPedContactElement/)

### onPlayerDamage

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz dostał obrażenia: od broni, upadku, pojazdu albo wybuchu. Przy wybuchu granatu albo rakiety `attacker` to gracz, który go spowodował.

#### Obsługa

```lua
addEventHandler("onPlayerDamage", root, function(attacker, damageCauseID, bodypart, loss)

end)
```

#### Parametry

- `attacker` (element) - Atakujący (gracz, pojazd) albo `false`.
- `damageCauseID` (int) - Broń albo powód obrażeń.
- `bodypart` (int) - Część ciała 3-9 (`getBodyPartName`).
- `loss` (float) - Utracone zdrowie.

#### Źródło

`source` to gracz, który dostał obrażenia.

#### Przykład

Strzał w głowę od razu zabija.

```lua
addEventHandler("onPlayerDamage", root, function(attacker, weapon, bodypart)
    if bodypart == 9 and attacker and getElementType(attacker) == "player" then
        killPed(source, attacker, weapon, bodypart)
    end
end)
```

#### Uwagi

> **Uwaga:** **Blokowanie.** Zdarzenie przychodzi PRZED zadaniem obrażeń: `cancelEvent()` blokuje trafienie od gracza, cios nożem od tyłu i obrażenia z gry (zdrowie wraca u gracza). Stała nietykalność: `setPedDamageProof`.

#### Zobacz też

- [`onPlayerWasted`](https://trilogy-hub.com/docs/onPlayerWasted/)
- [`getBodyPartName`](https://trilogy-hub.com/docs/getBodyPartName/)
- [`onPedDamage`](https://trilogy-hub.com/docs/onPedDamage/)

### onPlayerJoin

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz wszedł na serwer. Dobre miejsce na powitanie, logowanie i pierwsze odrodzenie.

#### Obsługa

```lua
addEventHandler("onPlayerJoin", root, function()

end)
```

#### Źródło

`source` to gracz, który wszedł na serwer.

#### Przykład

```lua
addEventHandler("onPlayerJoin", root, function()
    outputChatBox(getPlayerName(source) .. " dołączył do gry.", root, 140, 196, 232)
    spawnPlayer(source, 2495.3, -1687.0, 13.5)
end)
```

#### Uwagi

> **Uwaga:** **Gracz jeszcze poza światem.** Zdarzenie przychodzi, gdy gracz jest już elementem na serwerze, ale jeszcze nie ma go w świecie. Żeby odrzucić połączenie przed wejściem (np. zły nick), użyj `onPlayerConnect` i `cancelEvent(true, powod)`.

#### Zobacz też

- [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/)
- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)
- [`addEventHandler`](https://trilogy-hub.com/docs/addEventHandler/)

### onPlayerModInfo

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Przychodzi po `onPlayerACInfo`, tylko gdy klient znalazł w katalogu gry pliki spoza gry: paczki `.pak`/`.utoc`/`.ucas` w `Content/Paks` inne niż `pakchunk0` i `pakchunk1` albo wtyczki `.asi`. Możesz na tej podstawie wyrzucić gracza.

#### Obsługa

```lua
addEventHandler("onPlayerModInfo", root, function(filename, itemList)

end)
```

#### Parametry

- `filename` (string) - Zawsze `"gameface"`.
- `itemList` (table) - Lista `{ id, name, length }` znalezionych plików.

#### Źródło

`source` to gracz.

#### Przykład

Serwer bez modów: wyrzuca gracza z dodatkowymi paczkami.

```lua
addEventHandler("onPlayerModInfo", root, function(filename, items)
    local names = {}
    for _, item in ipairs(items) do names[#names + 1] = item.name end
    kickPlayer(source, "Usuń mody: " .. table.concat(names, ", "))
end)
```

#### Zobacz też

- [`onPlayerACInfo`](https://trilogy-hub.com/docs/onPlayerACInfo/)
- [`kickPlayer`](https://trilogy-hub.com/docs/kickPlayer/)

### onPlayerMute

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz został wyciszony (`setPlayerMuted`). Wyciszony gracz nie pisze na czacie.

#### Obsługa

```lua
addEventHandler("onPlayerMute", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerMute", root, function()
    outputChatBox("Zostałeś wyciszony.", source, 255, 80, 80)
end)
```

#### Zobacz też

- [`onPlayerUnmute`](https://trilogy-hub.com/docs/onPlayerUnmute/)
- [`setPlayerMuted`](https://trilogy-hub.com/docs/setPlayerMuted/)

### onPlayerNetworkStatus

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Połączenie gracza się zacięło (status `0`, brak danych ponad 12 sekund) albo wróciło (`1`).

#### Obsługa

```lua
addEventHandler("onPlayerNetworkStatus", root, function(status, ticks)

end)
```

#### Parametry

- `status` (int) - `0` przerwa, `1` powrót.
- `ticks` (int) - Czas zdarzenia.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerNetworkStatus", root, function(status)
    if status == 0 then setElementFrozen(source, true) else setElementFrozen(source, false) end
end)
```

#### Zobacz też

- [`getPlayerPing`](https://trilogy-hub.com/docs/getPlayerPing/)

### onPlayerQuit

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Zmodyfikowane względem MTA:SA*

Gracz opuścił serwer. Element gracza jeszcze istnieje, więc możesz zapisać jego dane. Powody są po polsku, np. `"rozlaczony"` albo `"przekroczony czas oczekiwania"`.

#### Obsługa

```lua
addEventHandler("onPlayerQuit", root, function(reason)

end)
```

#### Parametry

- `reason` (string) - Powód wyjścia.

#### Źródło

`source` to gracz.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `string reason`, `element responsibleElement`
- W MTA:SA: `function(string quitType, string reason, element responsibleElement)`

#### Przykład

```lua
addEventHandler("onPlayerQuit", root, function(reason)
    outputChatBox(getPlayerName(source) .. " wyszedł (" .. reason .. ").", root)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Powody po polsku.** Nie ma `"Quit"`, `"Kicked"` ani `"Timed out"`; porównuj z polskimi napisami serwera.

#### Zobacz też

- [`onPlayerJoin`](https://trilogy-hub.com/docs/onPlayerJoin/)
- [`setAccountData`](https://trilogy-hub.com/docs/setAccountData/)

### onPlayerReady

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Gracz wczytał grę i pierwszy raz pojawił się w świecie. To dobre miejsce na powitanie, bo gracz już widzi ekran.

#### Obsługa

```lua
addEventHandler("onPlayerReady", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerReady", root, function()
    outputChatBox("Miłej gry, " .. getPlayerName(source) .. "!", source, 255, 122, 34)
end)
```

#### Zobacz też

- [`onPlayerJoin`](https://trilogy-hub.com/docs/onPlayerJoin/)
- [`onPlayerSpawn`](https://trilogy-hub.com/docs/onPlayerSpawn/)

### onPlayerResourceStart

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Zasób wystartował u gracza (po jego `onClientResourceStart`), raz na start zasobu. Od tej chwili możesz wysyłać do niego `triggerClientEvent` z tego zasobu.

#### Obsługa

```lua
addEventHandler("onPlayerResourceStart", root, function(loadedResource)

end)
```

#### Parametry

- `loadedResource` (resource) - Zasób.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerResourceStart", root, function(res)
    if res == getThisResource() then
        triggerClientEvent(source, "pokazMenu", resourceRoot)
    end
end)
```

#### Zobacz też

- [`triggerClientEvent`](https://trilogy-hub.com/docs/triggerClientEvent/)
- [`onClientResourceStart`](https://trilogy-hub.com/docs/onClientResourceStart/)

### onPlayerScreenShot

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Przychodzi wynik `takePlayerScreenShot`: obraz JPEG klatki gry gracza (bez nakładki skryptów) albo informacja, że się nie udało.

#### Obsługa

```lua
addEventHandler("onPlayerScreenShot", root, function(theResource, status, imageData, timestamp, tag)

end)
```

#### Parametry

- `theResource` (resource) - Zasób, który prosił.
- `status` (string) - `"ok"`, `"minimized"` albo `"error"`.
- `imageData` (string) - Dane JPEG.
- `timestamp` (int) - Czas zrobienia.
- `tag` (string) - Znacznik z `takePlayerScreenShot`.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerScreenShot", root, function(_, status, data, _, tag)
    if status == "ok" then
        local f = fileCreate("zrzuty/" .. getPlayerName(source) .. ".jpg")
        fileWrite(f, data)
        fileClose(f)
    end
end)
```

#### Zobacz też

- [`takePlayerScreenShot`](https://trilogy-hub.com/docs/takePlayerScreenShot/)

### onPlayerSpawn

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Zmodyfikowane względem MTA:SA*

Gracz pojawił się w świecie (pierwszy raz albo po śmierci), np. po `spawnPlayer`.

#### Obsługa

```lua
addEventHandler("onPlayerSpawn", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `float posX`, `float posY`, `float posZ`, `float spawnRotation`, `team theTeam`, `int theSkin`, `int theInterior`, `int theDimension`
- W MTA:SA: `function(float posX, float posY, float posZ, float spawnRotation, team theTeam, int theSkin, int theInterior, int theDimension)`

#### Przykład

```lua
addEventHandler("onPlayerSpawn", root, function()
    giveWeapon(source, 22, 60)
end)
```

#### Zobacz też

- [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/)
- [`onPlayerWasted`](https://trilogy-hub.com/docs/onPlayerWasted/)

### onPlayerStealthKill

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz zabija kogoś po cichu nożem od tyłu. Możesz zablokować zabójstwo; inaczej ofiara dostaje `onPlayerWasted` z `stealth` = `true`.

#### Obsługa

```lua
addEventHandler("onPlayerStealthKill", root, function(targetPlayer)

end)
```

#### Parametry

- `targetPlayer` (player) - Ofiara.

#### Źródło

`source` to zabójca.

`cancelEvent()` = ofiara żyje.

#### Przykład

```lua
addEventHandler("onPlayerStealthKill", root, function(target)
    if getElementData(target, "admin") then cancelEvent() end
end)
```

#### Zobacz też

- [`onPlayerWasted`](https://trilogy-hub.com/docs/onPlayerWasted/)

### onPlayerSuspiciousMove

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Gracz poruszył się w sposób niemożliwy w grze (teleport albo zbyt duża prędkość). Teleporty skryptem, spawn i wejścia do wnętrz się nie liczą. Działa tylko, gdy w konfiguracji serwera jest `"anticheat": true`. Serwer sam nic nie cofa i nikogo nie wyrzuca, o karze decyduje skrypt (automatyczne wyrzucanie po progu włącza `"anticheat_kick": true`).

#### Obsługa

```lua
addEventHandler("onPlayerSuspiciousMove", root, function(kind, distance, speed, inVehicle)

end)
```

#### Parametry

- `kind` (string) - `"teleport"` albo `"speed"`.
- `distance` (float) - Odległość w metrach.
- `speed` (float) - Prędkość.
- `inVehicle` (bool) - `true` w pojeździe.

#### Źródło

`source` to gracz.

`cancelEvent()` = zgłoszenie się nie liczy do progu.

#### Przykład

```lua
addEventHandler("onPlayerSuspiciousMove", root, function(kind, distance)
    outputServerLog(("%s: %s %.0f m"):format(getPlayerName(source), kind, distance))
end)
```

#### Zobacz też

- [`kickPlayer`](https://trilogy-hub.com/docs/kickPlayer/)

### onPlayerTarget

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz celuje w coś innego: gracza, postać, obiekt, pojazd albo w nic. Sprawdzane co 250 ms.

#### Obsługa

```lua
addEventHandler("onPlayerTarget", root, function(targettedElement)

end)
```

#### Parametry

- `targettedElement` (element) - Cel albo `false`.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerTarget", root, function(target)
    if target and getElementType(target) == "ped" then
        outputChatBox("Celujesz w NPC", source)
    end
end)
```

#### Zobacz też

- [`getPedTarget`](https://trilogy-hub.com/docs/getPedTarget/)

### onPlayerTeamChange

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz zmienił drużynę (`setPlayerTeam`).

#### Obsługa

```lua
addEventHandler("onPlayerTeamChange", root, function(oldTeam, newTeam)

end)
```

#### Parametry

- `oldTeam` (team) - Poprzednia drużyna albo `false`.
- `newTeam` (team) - Nowa drużyna albo `false`.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerTeamChange", root, function(old, new)
    if new then outputChatBox("Witaj w drużynie " .. getTeamName(new), source) end
end)
```

#### Zobacz też

- [`setPlayerTeam`](https://trilogy-hub.com/docs/setPlayerTeam/)
- [`getPlayerTeam`](https://trilogy-hub.com/docs/getPlayerTeam/)

### onPlayerTriggerEventThreshold

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz wysyła za dużo zdarzeń i akcji (ponad 100 na sekundę). Może to być błąd skryptu klienta albo próba zalania serwera.

#### Obsługa

```lua
addEventHandler("onPlayerTriggerEventThreshold", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerTriggerEventThreshold", root, function()
    kickPlayer(source, "Za dużo zdarzeń")
end)
```

#### Zobacz też

- [`onPlayerTriggerInvalidEvent`](https://trilogy-hub.com/docs/onPlayerTriggerInvalidEvent/)
- [`triggerServerEvent`](https://trilogy-hub.com/docs/triggerServerEvent/)

### onPlayerTriggerInvalidEvent

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz wywołał zdarzenie, którego serwer nie zna albo które nie pozwala na wywołanie od klienta (`addEvent(nazwa, true)`).

#### Obsługa

```lua
addEventHandler("onPlayerTriggerInvalidEvent", root, function(eventName, isAdded, isRemote)

end)
```

#### Parametry

- `eventName` (string) - Nazwa zdarzenia.
- `isAdded` (bool) - Czy zdarzenie istnieje.
- `isRemote` (bool) - Czy pozwala na wywołanie od klienta.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerTriggerInvalidEvent", root, function(name)
    outputServerLog(getPlayerName(source) .. " wywołał nieznane " .. name)
end)
```

#### Zobacz też

- [`addEvent`](https://trilogy-hub.com/docs/addEvent/)
- [`onPlayerTriggerEventThreshold`](https://trilogy-hub.com/docs/onPlayerTriggerEventThreshold/)

### onPlayerUnmute

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz został odciszony.

#### Obsługa

```lua
addEventHandler("onPlayerUnmute", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerUnmute", root, function()
    outputChatBox("Możesz znowu pisać.", source)
end)
```

#### Zobacz też

- [`onPlayerMute`](https://trilogy-hub.com/docs/onPlayerMute/)
- [`setPlayerMuted`](https://trilogy-hub.com/docs/setPlayerMuted/)

### onPlayerVoiceStart

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz zaczął mówić przez czat głosowy (początek wypowiedzi). Możesz ją zablokować: wtedy nikt nie usłyszy tej wypowiedzi, aż gracz przestanie mówić.

#### Obsługa

```lua
addEventHandler("onPlayerVoiceStart", root, function()

end)
```

#### Źródło

`source` to gracz.

`cancelEvent()` blokuje tę wypowiedź u wszystkich.

#### Przykład

```lua
addEventHandler("onPlayerVoiceStart", root, function()
    if isPedDead(source) then cancelEvent() end
end)
```

#### Zobacz też

- [`onPlayerVoiceStop`](https://trilogy-hub.com/docs/onPlayerVoiceStop/)
- [`isPlayerTalking`](https://trilogy-hub.com/docs/isPlayerTalking/)
- [`setPlayerVoiceMuted`](https://trilogy-hub.com/docs/setPlayerVoiceMuted/)

### onPlayerVoiceStop

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Identyczne z MTA:SA*

Gracz skończył mówić przez czat głosowy. Zachodzi też, gdy głos gracza przestał dochodzić (np. utrata połączenia). Nie zachodzi dla wypowiedzi zablokowanej w `onPlayerVoiceStart`.

#### Obsługa

```lua
addEventHandler("onPlayerVoiceStop", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerVoiceStop", root, function()
    outputServerLog(getPlayerName(source) .. " skończył mówić")
end)
```

#### Zobacz też

- [`onPlayerVoiceStart`](https://trilogy-hub.com/docs/onPlayerVoiceStart/)
- [`isPlayerTalking`](https://trilogy-hub.com/docs/isPlayerTalking/)

### onPlayerWasted

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Zmodyfikowane względem MTA:SA*

Gracz zginął: od broni, w wypadku, w wybuchu albo przez skrypt.

#### Obsługa

```lua
addEventHandler("onPlayerWasted", root, function(ammo, killer, weapon, bodypart, stealth)

end)
```

#### Parametry

- `ammo` (int) - Ile amunicji miał gracz w chwili śmierci.
- `killer` (element) - Kto zabił: gracz, pojazd albo `false`, gdy nikt.
- `weapon` (int) - Numer broni albo powodu śmierci.
- `bodypart` (int) - Część ciała, w którą trafił ostatni strzał.
- `stealth` (bool) - `true` przy cichym zabójstwie nożem od tyłu.

#### Źródło

`source` to gracz, który zginął.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `int animGroup`, `int animID`
- W MTA:SA: `function(int totalAmmo, element killer, int killerWeapon, int bodypart, bool stealth, int animGroup, int animID)`

#### Przykład

Informacja o zabójstwie na czacie i powrót do gry po 5 sekundach.

```lua
addEventHandler("onPlayerWasted", root, function(amunicja, zabojca, bron)
    local ofiara = getPlayerName(source)
    if zabojca and getElementType(zabojca) == "player" and zabojca ~= source then
        outputChatBox(getPlayerName(zabojca) .. " zabił " .. ofiara .. ".")
        givePlayerMoney(zabojca, 100)
    else
        outputChatBox(ofiara .. " zginął.")
    end
    setTimer(spawnPlayer, 5000, 1, source, 2495.3, -1687.0, 13.5)
end)
```

#### Uwagi

> **Uwaga:** **Też po śmierci ze skryptu.** Zdarzenie przychodzi również po `killPed(gracz)` i `setElementHealth(gracz, 0)`.

#### Zobacz też

- [`spawnPlayer`](https://trilogy-hub.com/docs/spawnPlayer/)
- [`setTimer`](https://trilogy-hub.com/docs/setTimer/)
- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)

### onPlayerWaypointRemove

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Znacznik GPS gracza zniknął: zdjęty na mapie, skryptem albo gracz dojechał na miejsce.

#### Obsługa

```lua
addEventHandler("onPlayerWaypointRemove", root, function(how)

end)
```

#### Parametry

- `how` (string) - `"map"`, `"script"` albo `"reached"`.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerWaypointRemove", root, function(how)
    if how == "reached" then givePlayerMoney(source, 50) end
end)
```

#### Zobacz też

- [`onPlayerWaypointSet`](https://trilogy-hub.com/docs/onPlayerWaypointSet/)

### onPlayerWaypointSet

*Zdarzenie · Strona: Serwer · Kategoria: Gracze · Tylko Trilogy Hub*

Gracz ma nowy znacznik GPS gry (potwierdzony przez jego grę): postawiony prawym kliknięciem na mapie ESC albo skryptem.

#### Obsługa

```lua
addEventHandler("onPlayerWaypointSet", root, function(x, y, how)

end)
```

#### Parametry

- `x` (float) - X.
- `y` (float) - Y.
- `how` (string) - `"map"` albo `"script"`.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerWaypointSet", root, function(x, y, how)
    if how == "map" then outputChatBox(("Cel: %.0f, %.0f"):format(x, y), source) end
end)
```

#### Zobacz też

- [`onPlayerWaypointRemove`](https://trilogy-hub.com/docs/onPlayerWaypointRemove/)
- [`setPlayerWaypoint`](https://trilogy-hub.com/docs/setPlayerWaypoint/)

### onAccountDataChange

*Zdarzenie · Strona: Serwer · Kategoria: Konta · Identyczne z MTA:SA*

Zmieniły się dane konta (`setAccountData`).

#### Obsługa

```lua
addEventHandler("onAccountDataChange", root, function(account, key, value)

end)
```

#### Parametry

- `account` (account) - Konto.
- `key` (string) - Klucz.
- `value` (mixed) - Poprzednia wartość.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onAccountDataChange", root, function(account, key)
    outputServerLog(getAccountName(account) .. ": zmiana " .. key)
end)
```

#### Zobacz też

- [`setAccountData`](https://trilogy-hub.com/docs/setAccountData/)

### onPlayerLogin

*Zdarzenie · Strona: Serwer · Kategoria: Konta · Identyczne z MTA:SA*

Gracz zalogował się na konto serwera (`logIn`).

#### Obsługa

```lua
addEventHandler("onPlayerLogin", root, function(thePreviousAccount, theCurrentAccount)

end)
```

#### Parametry

- `thePreviousAccount` (account) - Poprzednie konto (gość).
- `theCurrentAccount` (account) - Nowe konto.

#### Źródło

`source` to gracz.

`cancelEvent()` blokuje logowanie.

#### Przykład

```lua
addEventHandler("onPlayerLogin", root, function(_, account)
    setPlayerMoney(source, tonumber(getAccountData(account, "pieniadze")) or 0)
end)
```

#### Zobacz też

- [`onPlayerLogout`](https://trilogy-hub.com/docs/onPlayerLogout/)
- [`logIn`](https://trilogy-hub.com/docs/logIn/)
- [`getAccountData`](https://trilogy-hub.com/docs/getAccountData/)

### onPlayerLogout

*Zdarzenie · Strona: Serwer · Kategoria: Konta · Identyczne z MTA:SA*

Gracz wylogował się z konta.

#### Obsługa

```lua
addEventHandler("onPlayerLogout", root, function(thePreviousAccount, theCurrentAccount)

end)
```

#### Parametry

- `thePreviousAccount` (account) - Konto, z którego wyszedł.
- `theCurrentAccount` (account) - Konto gościa.

#### Źródło

`source` to gracz.

`cancelEvent()` blokuje wylogowanie.

#### Przykład

```lua
addEventHandler("onPlayerLogout", root, function(account)
    setAccountData(account, "pieniadze", getPlayerMoney(source))
end)
```

#### Zobacz też

- [`onPlayerLogin`](https://trilogy-hub.com/docs/onPlayerLogin/)

### onMapObjectBreak

*Zdarzenie · Strona: Serwer · Kategoria: Obiekty · Tylko Trilogy Hub*

Obiekt mapy gry został uszkodzony (np. urwany hydrant).

#### Obsługa

```lua
addEventHandler("onMapObjectBreak", root, function(key, model, x, y, z)

end)
```

#### Parametry

- `key` (string) - Klucz obiektu mapy.
- `model` (int) - Model.
- `x, y, z` (float) - Pozycja.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onMapObjectBreak", root, function(_, model)
    outputChatBox("Zniszczyłeś mienie miasta (model " .. model .. ")", source)
end)
```

#### Zobacz też

- [`onMapObjectMove`](https://trilogy-hub.com/docs/onMapObjectMove/)

### onMapObjectMove

*Zdarzenie · Strona: Serwer · Kategoria: Obiekty · Tylko Trilogy Hub*

Gracz ruszył obiekt mapy gry (np. hydrant albo beczkę), a nie obiekt stworzony skryptem.

#### Obsługa

```lua
addEventHandler("onMapObjectMove", root, function(key, model, x, y, z)

end)
```

#### Parametry

- `key` (string) - Klucz obiektu mapy.
- `model` (int) - Model.
- `x, y, z` (float) - Pozycja.

#### Źródło

`source` to gracz, który ruszył obiekt.

#### Przykład

```lua
addEventHandler("onMapObjectMove", root, function(key, model, x, y, z)
    outputServerLog(("Model %d ruszony na %.0f, %.0f"):format(model, x, y))
end)
```

#### Zobacz też

- [`onMapObjectBreak`](https://trilogy-hub.com/docs/onMapObjectBreak/)

### onObjectBreak

*Zdarzenie · Strona: Serwer · Kategoria: Obiekty · Tylko Trilogy Hub*

Obiekt stworzony skryptem został zniszczony w grze (np. rozbity płot). Beczka wybuchowa przy tym wybucha dla wszystkich.

#### Obsługa

```lua
addEventHandler("onObjectBreak", root, function(attacker)

end)
```

#### Parametry

- `attacker` (player) - Gracz, którego gra zgłosiła zniszczenie.

#### Źródło

`source` to obiekt.

#### Przykład

```lua
addEventHandler("onObjectBreak", root, function()
    setTimer(respawnObject, 30000, 1, source)
end)
```

#### Zobacz też

- [`onObjectRespawn`](https://trilogy-hub.com/docs/onObjectRespawn/)
- [`setObjectBreakable`](https://trilogy-hub.com/docs/setObjectBreakable/)
- [`respawnObject`](https://trilogy-hub.com/docs/respawnObject/)

### onObjectRespawn

*Zdarzenie · Strona: Serwer · Kategoria: Obiekty · Tylko Trilogy Hub*

Obiekt wrócił na miejsce i jest naprawiony (`respawnObject`).

#### Obsługa

```lua
addEventHandler("onObjectRespawn", root, function()

end)
```

#### Źródło

`source` to obiekt.

#### Przykład

```lua
addEventHandler("onObjectRespawn", root, function()
    outputServerLog("Obiekt naprawiony")
end)
```

#### Zobacz też

- [`respawnObject`](https://trilogy-hub.com/docs/respawnObject/)
- [`onObjectBreak`](https://trilogy-hub.com/docs/onObjectBreak/)

### onExplosion

*Zdarzenie · Strona: Serwer · Kategoria: Ogień · Identyczne z MTA:SA*

Nastąpił wybuch (zgłoszony przez grę gracza albo ze skryptu).

#### Obsługa

```lua
addEventHandler("onExplosion", root, function(x, y, z, theType)

end)
```

#### Parametry

- `x, y, z` (float) - Miejsce.
- `theType` (int) - Typ wybuchu 0-12.

#### Źródło

`source` to twórca wybuchu albo `root`.

#### Przykład

```lua
addEventHandler("onExplosion", root, function(x, y, z, kind)
    outputServerLog(("Wybuch typu %d w %.0f, %.0f"):format(kind, x, y))
end)
```

#### Zobacz też

- [`createExplosion`](https://trilogy-hub.com/docs/createExplosion/)

### onFireCreate

*Zdarzenie · Strona: Serwer · Kategoria: Ogień · Tylko Trilogy Hub*

Powstał ogień (skryptem albo w grze).

#### Obsługa

```lua
addEventHandler("onFireCreate", root, function(fireId, x, y, z, size)

end)
```

#### Parametry

- `fireId` (int) - Numer ognia.
- `x, y, z` (float) - Miejsce.
- `size` (float) - Wielkość.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onFireCreate", root, function(id, x, y, z)
    outputServerLog(("Ogień %d w %.0f, %.0f"):format(id, x, y))
end)
```

#### Zobacz też

- [`onFireExtinguished`](https://trilogy-hub.com/docs/onFireExtinguished/)
- [`createFire`](https://trilogy-hub.com/docs/createFire/)

### onFireExtinguished

*Zdarzenie · Strona: Serwer · Kategoria: Ogień · Tylko Trilogy Hub*

Ogień zgasł albo został ugaszony.

#### Obsługa

```lua
addEventHandler("onFireExtinguished", root, function(fireId, x, y, z)

end)
```

#### Parametry

- `fireId` (int) - Numer ognia.
- `x, y, z` (float) - Miejsce.

#### Źródło

`source` to gracz, który ugasił ogień, albo `root`.

#### Przykład

```lua
addEventHandler("onFireExtinguished", root, function()
    if getElementType(source) == "player" then givePlayerMoney(source, 20) end
end)
```

#### Zobacz też

- [`onFireCreate`](https://trilogy-hub.com/docs/onFireCreate/)
- [`extinguishFire`](https://trilogy-hub.com/docs/extinguishFire/)

### onPickupHit

*Zdarzenie · Strona: Serwer · Kategoria: Pickupy · Zmodyfikowane względem MTA:SA*

Gracz wszedł w pickup. Możesz zablokować zebranie.

#### Obsługa

```lua
addEventHandler("onPickupHit", root, function(thePlayer, matchingDimension)

end)
```

#### Parametry

- `thePlayer` (player) - Gracz.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to pickup.

`cancelEvent()` blokuje zebranie.

#### Różnice względem MTA:SA

- W MTA:SA: `function(player thePlayer)`

#### Przykład

```lua
addEventHandler("onPickupHit", root, function(player)
    if getPedOccupiedVehicle(player) then cancelEvent() end
end)
```

#### Zobacz też

- [`onPickupUse`](https://trilogy-hub.com/docs/onPickupUse/)
- [`createPickup`](https://trilogy-hub.com/docs/createPickup/)

### onPickupSpawn

*Zdarzenie · Strona: Serwer · Kategoria: Pickupy · Identyczne z MTA:SA*

Pickup pojawił się ponownie po czasie odnowienia.

#### Obsługa

```lua
addEventHandler("onPickupSpawn", root, function()

end)
```

#### Źródło

`source` to pickup.

#### Przykład

```lua
addEventHandler("onPickupSpawn", root, function()
    outputServerLog("Pickup znowu dostępny")
end)
```

#### Zobacz też

- [`onPickupUse`](https://trilogy-hub.com/docs/onPickupUse/)
- [`createPickup`](https://trilogy-hub.com/docs/createPickup/)

### onPickupUse

*Zdarzenie · Strona: Serwer · Kategoria: Pickupy · Identyczne z MTA:SA*

Gracz zebrał pickup (dostał zdrowie, pancerz albo broń).

#### Obsługa

```lua
addEventHandler("onPickupUse", root, function(thePlayer)

end)
```

#### Parametry

- `thePlayer` (player) - Gracz.

#### Źródło

`source` to pickup.

#### Przykład

```lua
addEventHandler("onPickupUse", root, function(player)
    outputChatBox("Zebrano!", player)
end)
```

#### Zobacz też

- [`onPickupHit`](https://trilogy-hub.com/docs/onPickupHit/)
- [`onPickupSpawn`](https://trilogy-hub.com/docs/onPickupSpawn/)
- [`onPlayerPickupUse`](https://trilogy-hub.com/docs/onPlayerPickupUse/)

### onPlayerPickupHit

*Zdarzenie · Strona: Serwer · Kategoria: Pickupy · Zmodyfikowane względem MTA:SA*

Gracz wszedł w pickup (wersja od strony gracza).

#### Obsługa

```lua
addEventHandler("onPlayerPickupHit", root, function(thePickup, matchingDimension)

end)
```

#### Parametry

- `thePickup` (pickup) - Pickup.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to gracz.

#### Różnice względem MTA:SA

- W MTA:SA: `function(pickup pickupHit)`

#### Przykład

```lua
addEventHandler("onPlayerPickupHit", root, function(pickup)
    outputServerLog(getPlayerName(source) .. " przy pickupie " .. getPickupType(pickup))
end)
```

#### Zobacz też

- [`onPickupHit`](https://trilogy-hub.com/docs/onPickupHit/)

### onPlayerPickupUse

*Zdarzenie · Strona: Serwer · Kategoria: Pickupy · Identyczne z MTA:SA*

Gracz zebrał pickup (wersja od strony gracza).

#### Obsługa

```lua
addEventHandler("onPlayerPickupUse", root, function(thePickup)

end)
```

#### Parametry

- `thePickup` (pickup) - Pickup.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerPickupUse", root, function(pickup)
    givePlayerMoney(source, 10)
end)
```

#### Zobacz też

- [`onPickupUse`](https://trilogy-hub.com/docs/onPickupUse/)

### onProjectileCreation

*Zdarzenie · Strona: Serwer · Kategoria: Pociski · Tylko Trilogy Hub*

Powstał pocisk utworzony przez `createProjectile` na serwerze (pocisków rzucanych przez graczy w grze nie zgłasza).

#### Obsługa

```lua
addEventHandler("onProjectileCreation", root, function(creator)

end)
```

#### Parametry

- `creator` (element) - Twórca pocisku.

#### Źródło

`source` to pocisk.

#### Przykład

```lua
addEventHandler("onProjectileCreation", root, function(creator)
    outputServerLog("Pocisk od " .. tostring(creator))
end)
```

#### Zobacz też

- [`createProjectile`](https://trilogy-hub.com/docs/createProjectile/)

### onPlayerEnterVehicle

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Inna nazwa `onPlayerVehicleEnter`: gracz wsiadł do pojazdu.

#### Obsługa

```lua
addEventHandler("onPlayerEnterVehicle", root, function(theVehicle, seat, jacked)

end)
```

#### Parametry

- `theVehicle` (vehicle) - Pojazd.
- `seat` (int) - Miejsce.
- `jacked` (player) - Wyciągnięty gracz albo `false`.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerEnterVehicle", root, function(veh)
    setVehicleEngineState(veh, true)
end)
```

#### Zobacz też

- [`onPlayerVehicleEnter`](https://trilogy-hub.com/docs/onPlayerVehicleEnter/)

### onPlayerExitVehicle

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Tylko Trilogy Hub*

Inna nazwa `onPlayerVehicleExit`: gracz wysiadł z pojazdu.

#### Obsługa

```lua
addEventHandler("onPlayerExitVehicle", root, function(theVehicle, seat, jacker, forcedByScript)

end)
```

#### Parametry

- `theVehicle` (vehicle) - Pojazd.
- `seat` (int) - Miejsce.
- `jacker` (player) - Kto go wyciągnął albo `false`.
- `forcedByScript` (bool) - Czy skryptem.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerExitVehicle", root, function(veh)
    setVehicleEngineState(veh, false)
end)
```

#### Zobacz też

- [`onPlayerVehicleExit`](https://trilogy-hub.com/docs/onPlayerVehicleExit/)

### onPlayerVehicleEnter

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Gracz wsiadł do pojazdu.

#### Obsługa

```lua
addEventHandler("onPlayerVehicleEnter", root, function(theVehicle, seat, jacked)

end)
```

#### Parametry

- `theVehicle` (vehicle) - Pojazd.
- `seat` (int) - Miejsce (0 = kierowca).
- `jacked` (player) - Wyciągnięty gracz albo `false`.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerVehicleEnter", root, function(veh, seat)
    if seat == 0 then outputChatBox("Jedziesz " .. getVehicleName(veh), source) end
end)
```

#### Zobacz też

- [`onPlayerVehicleExit`](https://trilogy-hub.com/docs/onPlayerVehicleExit/)
- [`onVehicleEnter`](https://trilogy-hub.com/docs/onVehicleEnter/)
- [`onPlayerEnterVehicle`](https://trilogy-hub.com/docs/onPlayerEnterVehicle/)

### onPlayerVehicleExit

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Gracz wysiadł z pojazdu (sam, wyciągnięty albo skryptem).

#### Obsługa

```lua
addEventHandler("onPlayerVehicleExit", root, function(theVehicle, seat, jacker, forcedByScript)

end)
```

#### Parametry

- `theVehicle` (vehicle) - Pojazd.
- `seat` (int) - Miejsce.
- `jacker` (player) - Kto go wyciągnął albo `false`.
- `forcedByScript` (bool) - `true`, gdy wysadził go skrypt.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerVehicleExit", root, function(veh, seat, jacker)
    if jacker then outputChatBox(getPlayerName(jacker) .. " ukradł ci auto!", source) end
end)
```

#### Zobacz też

- [`onPlayerVehicleEnter`](https://trilogy-hub.com/docs/onPlayerVehicleEnter/)
- [`onVehicleExit`](https://trilogy-hub.com/docs/onVehicleExit/)
- [`onPlayerExitVehicle`](https://trilogy-hub.com/docs/onPlayerExitVehicle/)

### onTrailerAttach

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Przyczepa albo naczepa została doczepiona do pojazdu.

#### Obsługa

```lua
addEventHandler("onTrailerAttach", root, function(theTruck)

end)
```

#### Parametry

- `theTruck` (vehicle) - Pojazd ciągnący.

#### Źródło

`source` to przyczepa.

`cancelEvent()` blokuje doczepienie.

#### Przykład

```lua
addEventHandler("onTrailerAttach", root, function(truck)
    local driver = getVehicleController(truck)
    if driver then outputChatBox("Naczepa doczepiona.", driver) end
end)
```

#### Zobacz też

- [`onTrailerDetach`](https://trilogy-hub.com/docs/onTrailerDetach/)
- [`attachTrailerToVehicle`](https://trilogy-hub.com/docs/attachTrailerToVehicle/)

### onTrailerDetach

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Przyczepa została odczepiona.

#### Obsługa

```lua
addEventHandler("onTrailerDetach", root, function(theTruck)

end)
```

#### Parametry

- `theTruck` (vehicle) - Pojazd, który ją ciągnął.

#### Źródło

`source` to przyczepa.

#### Przykład

```lua
addEventHandler("onTrailerDetach", root, function(truck)
    outputServerLog("Odczepiono przyczepę od " .. getVehicleName(truck))
end)
```

#### Zobacz też

- [`onTrailerAttach`](https://trilogy-hub.com/docs/onTrailerAttach/)

### onVehicleDamage

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Pojazd stracił zdrowie (zgłasza to gra jego kierowcy albo właściciela).

#### Obsługa

```lua
addEventHandler("onVehicleDamage", root, function(loss)

end)
```

#### Parametry

- `loss` (float) - Utracone zdrowie.

#### Źródło

`source` to pojazd.

#### Przykład

```lua
addEventHandler("onVehicleDamage", root, function(loss)
    if loss > 200 then outputServerLog(getVehicleName(source) .. " mocno uszkodzony") end
end)
```

#### Zobacz też

- [`getElementHealth`](https://trilogy-hub.com/docs/getElementHealth/)
- [`onVehicleExplode`](https://trilogy-hub.com/docs/onVehicleExplode/)

### onVehicleEnter

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Ktoś wsiadł do pojazdu (wersja widziana od strony pojazdu).

#### Obsługa

```lua
addEventHandler("onVehicleEnter", root, function(thePlayer, seat, jacked)

end)
```

#### Parametry

- `thePlayer` (player) - Gracz.
- `seat` (int) - Miejsce.
- `jacked` (player) - Wyciągnięty gracz albo `false`.

#### Źródło

`source` to pojazd.

#### Przykład

```lua
addEventHandler("onVehicleEnter", root, function(player, seat)
    if seat == 0 then setVehicleOverrideLights(source, 2) end
end)
```

#### Zobacz też

- [`onPlayerVehicleEnter`](https://trilogy-hub.com/docs/onPlayerVehicleEnter/)
- [`onVehicleExit`](https://trilogy-hub.com/docs/onVehicleExit/)

### onVehicleExit

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Ktoś wysiadł z pojazdu (wersja widziana od strony pojazdu).

#### Obsługa

```lua
addEventHandler("onVehicleExit", root, function(thePlayer, seat, jacker, forcedByScript)

end)
```

#### Parametry

- `thePlayer` (player) - Gracz.
- `seat` (int) - Miejsce.
- `jacker` (player) - Wyciągający albo `false`.
- `forcedByScript` (bool) - Czy skryptem.

#### Źródło

`source` to pojazd.

#### Przykład

```lua
addEventHandler("onVehicleExit", root, function(player, seat)
    if seat == 0 then setVehicleOverrideLights(source, 1) end
end)
```

#### Zobacz też

- [`onVehicleEnter`](https://trilogy-hub.com/docs/onVehicleEnter/)

### onVehicleExplode

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowane względem MTA:SA*

Pojazd wybuchł.

#### Obsługa

```lua
addEventHandler("onVehicleExplode", root, function(withExplosion)

end)
```

#### Parametry

- `withExplosion` (bool) - `true`, gdy z wybuchem (nie po cichu).

#### Źródło

`source` to pojazd.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `player player`
- W MTA:SA: `function(bool withExplosion, player player)`

#### Przykład

```lua
addEventHandler("onVehicleExplode", root, function()
    setTimer(respawnVehicle, 10000, 1, source)
end)
```

#### Zobacz też

- [`blowVehicle`](https://trilogy-hub.com/docs/blowVehicle/)
- [`onVehicleRespawn`](https://trilogy-hub.com/docs/onVehicleRespawn/)

### onVehicleRespawn

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Pojazd odrodził się (`respawnVehicle` albo automatycznie).

#### Obsługa

```lua
addEventHandler("onVehicleRespawn", root, function(exploded)

end)
```

#### Parametry

- `exploded` (bool) - `true`, gdy przed odrodzeniem wybuchł.

#### Źródło

`source` to pojazd.

#### Przykład

```lua
addEventHandler("onVehicleRespawn", root, function()
    setVehicleColor(source, 255, 255, 255)
end)
```

#### Zobacz też

- [`respawnVehicle`](https://trilogy-hub.com/docs/respawnVehicle/)

### onVehicleStartEnter

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Zmodyfikowane względem MTA:SA*

Gracz zaczyna wsiadać do pojazdu (podchodzi do drzwi). Możesz go zatrzymać, np. przy zamkniętym aucie frakcji.

#### Obsługa

```lua
addEventHandler("onVehicleStartEnter", root, function(enteringPlayer, seat, jacked)

end)
```

#### Parametry

- `enteringPlayer` (player) - Gracz.
- `seat` (int) - Miejsce.
- `jacked` (player) - Gracz do wyciągnięcia albo `false`.

#### Źródło

`source` to pojazd.

`cancelEvent()` wyprowadza gracza.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `int door`
- W MTA:SA: `function(ped enteringPed, int seat, ped jacked, int door)`

#### Przykład

```lua
addEventHandler("onVehicleStartEnter", root, function(player, seat)
    if seat == 0 and getElementData(source, "policja") and getElementData(player, "frakcja") ~= "policja" then
        cancelEvent()
        outputChatBox("To auto policji.", player, 255, 80, 80)
    end
end)
```

#### Zobacz też

- [`onVehicleEnter`](https://trilogy-hub.com/docs/onVehicleEnter/)
- [`setVehicleLocked`](https://trilogy-hub.com/docs/setVehicleLocked/)

### onVehicleStartExit

*Zdarzenie · Strona: Serwer · Kategoria: Pojazdy · Identyczne z MTA:SA*

Gracz zaczyna wysiadać (około 2 sekundy przed `onVehicleExit`); przy wyciąganiu `jacker` to wyciągający. Możesz go zatrzymać w aucie.

#### Obsługa

```lua
addEventHandler("onVehicleStartExit", root, function(exitingPlayer, seat, jacker, door)

end)
```

#### Parametry

- `exitingPlayer` (player) - Gracz.
- `seat` (int) - Miejsce.
- `jacker` (player) - Wyciągający albo `false`.
- `door` (int) - Drzwi.

#### Źródło

`source` to pojazd.

`cancelEvent()` zostawia gracza w aucie.

#### Przykład

```lua
addEventHandler("onVehicleStartExit", root, function(player)
    if getElementData(player, "zakuty") then cancelEvent() end
end)
```

#### Zobacz też

- [`onVehicleExit`](https://trilogy-hub.com/docs/onVehicleExit/)

### onPedDamage

*Zdarzenie · Strona: Serwer · Kategoria: Postacie · Zmodyfikowane względem MTA:SA*

Postać (NPC) dostała obrażenia.

#### Obsługa

```lua
addEventHandler("onPedDamage", root, function(attacker, weapon, bodypart, loss)

end)
```

#### Parametry

- `attacker` (element) - Atakujący albo `false`.
- `weapon` (int) - Broń albo powód.
- `bodypart` (int) - Część ciała.
- `loss` (float) - Utracone zdrowie.

#### Źródło

`source` to postać.

#### Różnice względem MTA:SA

- W MTA:SA: `function(float loss)`

#### Przykład

```lua
addEventHandler("onPedDamage", root, function(attacker)
    if attacker and getElementType(attacker) == "player" then
        outputChatBox("Nie bij przechodniów!", attacker)
    end
end)
```

#### Zobacz też

- [`onPedWasted`](https://trilogy-hub.com/docs/onPedWasted/)
- [`onPlayerDamage`](https://trilogy-hub.com/docs/onPlayerDamage/)

### onPedWasted

*Zdarzenie · Strona: Serwer · Kategoria: Postacie · Zmodyfikowane względem MTA:SA*

Postać (NPC) zginęła.

#### Obsługa

```lua
addEventHandler("onPedWasted", root, function(totalAmmo, killer, killerWeapon, bodypart, stealth)

end)
```

#### Parametry

- `totalAmmo` (int) - Amunicja.
- `killer` (element) - Zabójca albo `false`.
- `killerWeapon` (int) - Broń.
- `bodypart` (int) - Część ciała.
- `stealth` (bool) - Ciche zabójstwo.

#### Źródło

`source` to postać.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `int animGroup`, `int animID`
- W MTA:SA: `function(int totalAmmo, element killer, int killerWeapon, int bodypart, bool stealth, int animGroup, int animID)`

#### Przykład

```lua
addEventHandler("onPedWasted", root, function(_, killer)
    if killer and getElementType(killer) == "player" then givePlayerMoney(killer, 25) end
    setTimer(destroyElement, 5000, 1, source)
end)
```

#### Zobacz też

- [`onPedDamage`](https://trilogy-hub.com/docs/onPedDamage/)
- [`createPed`](https://trilogy-hub.com/docs/createPed/)

### onColShapeHit

*Zdarzenie · Strona: Serwer · Kategoria: Strefy kolizji · Identyczne z MTA:SA*

Element wszedł do strefy kolizji.

#### Obsługa

```lua
addEventHandler("onColShapeHit", root, function(hitElement, matchingDimension)

end)
```

#### Parametry

- `hitElement` (element) - Element.
- `matchingDimension` (bool) - Czy jest w tym samym wymiarze.

#### Źródło

`source` to strefa.

#### Przykład

```lua
local zone = createColCircle(2495, -1687, 25)
addEventHandler("onColShapeHit", zone, function(el, dim)
    if dim and getElementType(el) == "player" then outputChatBox("Witaj na Grove Street", el) end
end)
```

#### Zobacz też

- [`onColShapeLeave`](https://trilogy-hub.com/docs/onColShapeLeave/)
- [`createColSphere`](https://trilogy-hub.com/docs/createColSphere/)

### onColShapeLeave

*Zdarzenie · Strona: Serwer · Kategoria: Strefy kolizji · Identyczne z MTA:SA*

Element wyszedł ze strefy kolizji.

#### Obsługa

```lua
addEventHandler("onColShapeLeave", root, function(leaveElement, matchingDimension)

end)
```

#### Parametry

- `leaveElement` (element) - Element.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to strefa.

#### Przykład

```lua
addEventHandler("onColShapeLeave", zone, function(el)
    if getElementType(el) == "player" then outputChatBox("Opuszczasz Grove Street", el) end
end)
```

#### Zobacz też

- [`onColShapeHit`](https://trilogy-hub.com/docs/onColShapeHit/)

### onElementColShapeHit

*Zdarzenie · Strona: Serwer · Kategoria: Strefy kolizji · Identyczne z MTA:SA*

Element wszedł do strefy kolizji (wersja od strony elementu).

#### Obsługa

```lua
addEventHandler("onElementColShapeHit", root, function(theShape, matchingDimension)

end)
```

#### Parametry

- `theShape` (colshape) - Strefa.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onElementColShapeHit", root, function(shape, dim)
    if getElementType(source) == "vehicle" and dim then setElementData(source, "wStrefie", true) end
end)
```

#### Zobacz też

- [`onElementColShapeLeave`](https://trilogy-hub.com/docs/onElementColShapeLeave/)
- [`onColShapeHit`](https://trilogy-hub.com/docs/onColShapeHit/)

### onElementColShapeLeave

*Zdarzenie · Strona: Serwer · Kategoria: Strefy kolizji · Identyczne z MTA:SA*

Element wyszedł ze strefy kolizji (wersja od strony elementu).

#### Obsługa

```lua
addEventHandler("onElementColShapeLeave", root, function(theShape, matchingDimension)

end)
```

#### Parametry

- `theShape` (colshape) - Strefa.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onElementColShapeLeave", root, function()
    if getElementType(source) == "vehicle" then setElementData(source, "wStrefie", false) end
end)
```

#### Zobacz też

- [`onElementColShapeHit`](https://trilogy-hub.com/docs/onElementColShapeHit/)

### onElementClicked

*Zdarzenie · Strona: Serwer · Kategoria: Wejście i sterowanie · Identyczne z MTA:SA*

Gracz kliknął w element (przy widocznym kursorze).

#### Obsługa

```lua
addEventHandler("onElementClicked", root, function(theButton, theState, thePlayer, clickPosX, clickPosY, clickPosZ)

end)
```

#### Parametry

- `theButton` (string) - Przycisk.
- `theState` (string) - `"down"` albo `"up"`.
- `thePlayer` (player) - Kto kliknął.
- `clickPosX, clickPosY, clickPosZ` (float) - Punkt w świecie.

#### Źródło

`source` to kliknięty element.

#### Przykład

```lua
addEventHandler("onElementClicked", root, function(button, state, player)
    if state == "down" and getElementType(source) == "ped" then
        outputChatBox("Rozmowa z NPC...", player)
    end
end)
```

#### Zobacz też

- [`onPlayerClick`](https://trilogy-hub.com/docs/onPlayerClick/)

### onPlayerClick

*Zdarzenie · Strona: Serwer · Kategoria: Wejście i sterowanie · Identyczne z MTA:SA*

Gracz kliknął myszą przy widocznym kursorze, poza oknami GUI. `clickedElement` to kliknięty element albo `nil`, gdy kliknięto w świat.

#### Obsługa

```lua
addEventHandler("onPlayerClick", root, function(mouseButton, buttonState, clickedElement, worldX, worldY, worldZ, screenX, screenY)

end)
```

#### Parametry

- `mouseButton` (string) - `"left"`, `"right"`, `"middle"`.
- `buttonState` (string) - `"down"` albo `"up"`.
- `clickedElement` (element) - Element albo `nil`.
- `worldX, worldY, worldZ` (float) - Punkt w świecie.
- `screenX, screenY` (float) - Punkt na ekranie.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerClick", root, function(button, state, el)
    if button == "left" and state == "down" and el and getElementType(el) == "vehicle" then
        outputChatBox("Kliknięto " .. getVehicleName(el), source)
    end
end)
```

#### Zobacz też

- [`onElementClicked`](https://trilogy-hub.com/docs/onElementClicked/)
- [`showCursor`](https://trilogy-hub.com/docs/showCursor/)

### onResourceLoadStateChange

*Zdarzenie · Strona: Serwer · Kategoria: Zasoby · Identyczne z MTA:SA*

W czasie działania serwera pojawił się nowy folder zasobu (`unloaded` -> `loaded`) albo zniknął (`loaded` -> `unloaded`).

#### Obsługa

```lua
addEventHandler("onResourceLoadStateChange", root, function(loadedResource, oldState, newState)

end)
```

#### Parametry

- `loadedResource` (resource) - Zasób.
- `oldState` (string) - Stary stan.
- `newState` (string) - Nowy stan.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onResourceLoadStateChange", root, function(res, old, new)
    if new == "loaded" then outputServerLog("Nowy zasób: " .. getResourceName(res)) end
end)
```

#### Zobacz też

- [`getResources`](https://trilogy-hub.com/docs/getResources/)

### onResourcePreStart

*Zdarzenie · Strona: Serwer · Kategoria: Zasoby · Identyczne z MTA:SA*

Zasób zaraz wystartuje. Możesz wstrzymać start.

#### Obsługa

```lua
addEventHandler("onResourcePreStart", root, function(startingResource)

end)
```

#### Parametry

- `startingResource` (resource) - Zasób.

#### Źródło

`source` to korzeń zasobu.

`cancelEvent()` wstrzymuje start.

#### Przykład

```lua
addEventHandler("onResourcePreStart", root, function(res)
    if getResourceName(res) == "stary_tryb" then cancelEvent() end
end)
```

#### Zobacz też

- [`onResourceStart`](https://trilogy-hub.com/docs/onResourceStart/)

### onResourceStart

*Zdarzenie · Strona: Serwer · Kategoria: Zasoby · Identyczne z MTA:SA*

Zasób wystartował. Podpięte do `resourceRoot` przychodzi tylko dla własnego zasobu, do `root` dla każdego.

#### Obsługa

```lua
addEventHandler("onResourceStart", root, function(startedResource)

end)
```

#### Parametry

- `startedResource` (resource) - Zasób.

#### Źródło

`source` to korzeń zasobu.

#### Przykład

```lua
addEventHandler("onResourceStart", resourceRoot, function()
    outputServerLog(getResourceName(getThisResource()) .. " gotowy")
end)
```

#### Zobacz też

- [`onResourceStop`](https://trilogy-hub.com/docs/onResourceStop/)
- [`startResource`](https://trilogy-hub.com/docs/startResource/)

### onResourceStateChange

*Zdarzenie · Strona: Serwer · Kategoria: Zasoby · Identyczne z MTA:SA*

Zasób zmienił stan: `loaded` -> `starting` -> `running` -> `stopping` -> `loaded`.

#### Obsługa

```lua
addEventHandler("onResourceStateChange", root, function(changedResource, oldState, newState)

end)
```

#### Parametry

- `changedResource` (resource) - Zasób.
- `oldState` (string) - Stary stan.
- `newState` (string) - Nowy stan.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onResourceStateChange", root, function(res, old, new)
    outputServerLog(getResourceName(res) .. ": " .. old .. " -> " .. new)
end)
```

#### Zobacz też

- [`getResourceState`](https://trilogy-hub.com/docs/getResourceState/)

### onResourceStop

*Zdarzenie · Strona: Serwer · Kategoria: Zasoby · Zmodyfikowane względem MTA:SA*

Zasób się zatrzymuje. Dobre miejsce na zapis danych.

#### Obsługa

```lua
addEventHandler("onResourceStop", root, function(stoppedResource)

end)
```

#### Parametry

- `stoppedResource` (resource) - Zasób.

#### Źródło

`source` to korzeń zasobu.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `boolean wasDeleted`
- W MTA:SA: `function(resource stoppedResource, boolean wasDeleted)`

#### Przykład

```lua
addEventHandler("onResourceStop", resourceRoot, function()
    for _, player in ipairs(getElementsByType("player")) do
        local acc = getPlayerAccount(player)
        if not isGuestAccount(acc) then setAccountData(acc, "pieniadze", getPlayerMoney(player)) end
    end
end)
```

#### Zobacz też

- [`onResourceStart`](https://trilogy-hub.com/docs/onResourceStart/)
- [`stopResource`](https://trilogy-hub.com/docs/stopResource/)

### onSettingChange

*Zdarzenie · Strona: Serwer · Kategoria: Zasoby · Identyczne z MTA:SA*

Zmieniło się ustawienie zasobu (`set` albo panel administratora).

#### Obsługa

```lua
addEventHandler("onSettingChange", root, function(setting, oldValue, newValue)

end)
```

#### Parametry

- `setting` (string) - Nazwa ustawienia.
- `oldValue` (string) - Stara wartość (JSON).
- `newValue` (string) - Nowa wartość (JSON).

#### Źródło

`source` to korzeń zasobu.

#### Przykład

```lua
addEventHandler("onSettingChange", root, function(setting, old, new)
    outputServerLog(setting .. ": " .. tostring(old) .. " -> " .. tostring(new))
end)
```

#### Zobacz też

- [`onResourceStart`](https://trilogy-hub.com/docs/onResourceStart/)

### onMarkerHit

*Zdarzenie · Strona: Serwer · Kategoria: Znaczniki · Identyczne z MTA:SA*

Element wszedł w znacznik (marker).

#### Obsługa

```lua
addEventHandler("onMarkerHit", root, function(hitElement, matchingDimension)

end)
```

#### Parametry

- `hitElement` (element) - Element.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to znacznik.

#### Przykład

```lua
local shop = createMarker(2500, -1660, 12.5, "cylinder", 1.5, 255, 122, 34)
addEventHandler("onMarkerHit", shop, function(el, dim)
    if dim and getElementType(el) == "player" then outputChatBox("Sklep: wpisz /kup", el) end
end)
```

#### Zobacz też

- [`onMarkerLeave`](https://trilogy-hub.com/docs/onMarkerLeave/)
- [`createMarker`](https://trilogy-hub.com/docs/createMarker/)

### onMarkerLeave

*Zdarzenie · Strona: Serwer · Kategoria: Znaczniki · Identyczne z MTA:SA*

Element wyszedł ze znacznika.

#### Obsługa

```lua
addEventHandler("onMarkerLeave", root, function(leftElement, matchingDimension)

end)
```

#### Parametry

- `leftElement` (element) - Element.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to znacznik.

#### Przykład

```lua
addEventHandler("onMarkerLeave", shop, function(el)
    if getElementType(el) == "player" then outputChatBox("Do zobaczenia!", el) end
end)
```

#### Zobacz też

- [`onMarkerHit`](https://trilogy-hub.com/docs/onMarkerHit/)

### onPlayerMarkerHit

*Zdarzenie · Strona: Serwer · Kategoria: Znaczniki · Identyczne z MTA:SA*

Gracz wszedł w znacznik (wersja od strony gracza).

#### Obsługa

```lua
addEventHandler("onPlayerMarkerHit", root, function(markerHit, matchingDimension)

end)
```

#### Parametry

- `markerHit` (marker) - Znacznik.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerMarkerHit", root, function(marker, dim)
    if dim and getElementData(marker, "meta") then outputChatBox("Meta!", source) end
end)
```

#### Zobacz też

- [`onPlayerMarkerLeave`](https://trilogy-hub.com/docs/onPlayerMarkerLeave/)
- [`onMarkerHit`](https://trilogy-hub.com/docs/onMarkerHit/)

### onPlayerMarkerLeave

*Zdarzenie · Strona: Serwer · Kategoria: Znaczniki · Identyczne z MTA:SA*

Gracz wyszedł ze znacznika (wersja od strony gracza).

#### Obsługa

```lua
addEventHandler("onPlayerMarkerLeave", root, function(markerLeft, matchingDimension)

end)
```

#### Parametry

- `markerLeft` (marker) - Znacznik.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onPlayerMarkerLeave", root, function(marker)
    outputServerLog(getPlayerName(source) .. " wyszedł ze znacznika")
end)
```

#### Zobacz też

- [`onPlayerMarkerHit`](https://trilogy-hub.com/docs/onPlayerMarkerHit/)

---

## Zdarzenia klienta

Zdarzenia wywoływane w grze gracza. Podpinasz je przez addEventHandler w skrypcie klienta.

### onClientWeaponFire

*Zdarzenie · Strona: Klient · Kategoria: Bronie · Zmodyfikowane względem MTA:SA*

Broń skryptowa oddała strzał (`fireWeapon` na serwerze). Argumenty: numer broni, pozycja broni i punkt celu.

#### Obsługa

```lua
addEventHandler("onClientWeaponFire", root, function(weapon, x, y, z, targetX, targetY, targetZ)

end)
```

#### Parametry

- `weapon` (int) - Numer broni.
- `x, y, z` (float) - Pozycja broni.
- `targetX, targetY, targetZ` (float) - Punkt celu.

#### Źródło

`source` to broń skryptowa.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `int materialType`, `float lighting`, `int pieceHit`
- W MTA:SA: `function(element hitElement, float posX, float posY, float posZ, float normalX, float normalY, float normalZ, int materialType, float lighting, int pieceHit)`

#### Przykład

```lua
addEventHandler("onClientWeaponFire", root, function(weapon, x, y, z, tx, ty, tz)
    fxAddBulletImpact(tx, ty, tz, 0, 0, 1)
end)
```

#### Uwagi

> **Ostrzeżenie:** **Bez trafionego elementu.** Zdarzenie nie dostaje trafionego elementu, punktu trafienia ani normalnej.

#### Zobacz też

- [`onWeaponFire`](https://trilogy-hub.com/docs/onWeaponFire/)
- [`fireWeapon`](https://trilogy-hub.com/docs/fireWeapon/)

### onClientChatMessage

*Zdarzenie · Strona: Klient · Kategoria: Czat i konsola · Zmodyfikowane względem MTA:SA*

Na czacie gracza pojawia się wiadomość. Możesz ją ukryć.

#### Obsługa

```lua
addEventHandler("onClientChatMessage", root, function(text, r, g, b)

end)
```

#### Parametry

- `text` (string) - Treść.
- `r` (int) - Kolor czerwony.
- `g` (int) - Kolor zielony.
- `b` (int) - Kolor niebieski.

#### Źródło

`source` to `root`.

`cancelEvent()` ukrywa wiadomość. Zdarzenie przychodzi też dla `outputChatBox` ze skryptu klienta.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `int messageType`
- W MTA:SA: `function(string text, int r, int g, int b, int messageType)`

#### Przykład

```lua
addEventHandler("onClientChatMessage", root, function(text)
    if text:find("reklama", 1, true) then cancelEvent() end
end)
```

#### Zobacz też

- [`outputChatBox`](https://trilogy-hub.com/docs/outputChatBox/)

### onClientConsole

*Zdarzenie · Strona: Klient · Kategoria: Czat i konsola · Identyczne z MTA:SA*

Gracz wpisał tekst w konsoli gry (F8).

#### Obsługa

```lua
addEventHandler("onClientConsole", root, function(theMessage)

end)
```

#### Parametry

- `theMessage` (string) - Wpisany tekst.

#### Źródło

`source` to lokalny gracz.

#### Przykład

```lua
addEventHandler("onClientConsole", localPlayer, function(text)
    if text == "pomoc" then outputConsole("Komendy: /auto, /hp") end
end)
```

#### Zobacz też

- [`onConsole`](https://trilogy-hub.com/docs/onConsole/)

### onClientSoundStopped

*Zdarzenie · Strona: Klient · Kategoria: Dźwięk (klient) · Identyczne z MTA:SA*

Dźwięk przestał grać: skończył się albo został zatrzymany lub usunięty.

#### Obsługa

```lua
addEventHandler("onClientSoundStopped", root, function(reason)

end)
```

#### Parametry

- `reason` (string) - `"finished"` (skończył się) albo `"destroyed"` (zatrzymany albo usunięty).

#### Źródło

`source` to dźwięk.

#### Przykład

```lua
local radio = playSound("muzyka/intro.mp3")
addEventHandler("onClientSoundStopped", radio, function(reason)
    if reason == "finished" then outputChatBox("Koniec utworu") end
end)
```

#### Zobacz też

- [`playSound`](https://trilogy-hub.com/docs/playSound/)
- [`stopSound`](https://trilogy-hub.com/docs/stopSound/)

### onClientElementDataChange

*Zdarzenie · Strona: Klient · Kategoria: Elementy · Identyczne z MTA:SA*

Zmieniły się dane elementu - przez setElementData na serwerze albo w skrypcie klienta.

#### Obsługa

```lua
addEventHandler("onClientElementDataChange", root, function(key, oldValue, newValue)

end)
```

#### Parametry

- `key` (string) - Nazwa klucza.
- `oldValue` (any) - Poprzednia wartość (`nil`, gdy klucza nie było).
- `newValue` (any) - Nowa wartość (`nil` po usunięciu klucza).

#### Źródło

`source` to element, którego dane się zmieniły.

#### Przykład

```lua
addEventHandler("onClientElementDataChange", localPlayer, function(key, old, new)
    if key == "money" then outputChatBox("Pieniądze: " .. tostring(new)) end
end)
```

#### Zobacz też

- [`onElementDataChange`](https://trilogy-hub.com/docs/onElementDataChange/)
- [`setElementData`](https://trilogy-hub.com/docs/setElementData/)
- [`getElementData`](https://trilogy-hub.com/docs/getElementData/)

### onClientElementDimensionChange

*Zdarzenie · Strona: Klient · Kategoria: Elementy · Identyczne z MTA:SA*

Element przeszedł do innego wymiaru.

#### Obsługa

```lua
addEventHandler("onClientElementDimensionChange", root, function(oldDimension, newDimension)

end)
```

#### Parametry

- `oldDimension` (int) - Stary wymiar.
- `newDimension` (int) - Nowy wymiar.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onClientElementDimensionChange", localPlayer, function(old, new)
    outputChatBox("Wymiar: " .. new)
end)
```

#### Zobacz też

- [`onElementDimensionChange`](https://trilogy-hub.com/docs/onElementDimensionChange/)
- [`onClientElementInteriorChange`](https://trilogy-hub.com/docs/onClientElementInteriorChange/)

### onClientElementInteriorChange

*Zdarzenie · Strona: Klient · Kategoria: Elementy · Identyczne z MTA:SA*

Element przeszedł do innego wnętrza.

#### Obsługa

```lua
addEventHandler("onClientElementInteriorChange", root, function(oldInterior, newInterior)

end)
```

#### Parametry

- `oldInterior` (int) - Stare wnętrze.
- `newInterior` (int) - Nowe wnętrze.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onClientElementInteriorChange", localPlayer, function(old, new)
    outputChatBox("Wnętrze: " .. new)
end)
```

#### Zobacz też

- [`onElementInteriorChange`](https://trilogy-hub.com/docs/onElementInteriorChange/)
- [`onClientElementDimensionChange`](https://trilogy-hub.com/docs/onClientElementDimensionChange/)

### onClientElementStreamIn

*Zdarzenie · Strona: Klient · Kategoria: Elementy · Identyczne z MTA:SA*

Element pojawił się w pobliżu gracza (gra go wczytała i rysuje).

#### Obsługa

```lua
addEventHandler("onClientElementStreamIn", root, function()

end)
```

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onClientElementStreamIn", root, function()
    if getElementType(source) == "player" then outputChatBox(getPlayerName(source) .. " jest blisko") end
end)
```

#### Zobacz też

- [`onClientElementStreamOut`](https://trilogy-hub.com/docs/onClientElementStreamOut/)
- [`isElementStreamedIn`](https://trilogy-hub.com/docs/isElementStreamedIn/)

### onClientElementStreamOut

*Zdarzenie · Strona: Klient · Kategoria: Elementy · Identyczne z MTA:SA*

Element oddalił się i gra przestała go rysować.

#### Obsługa

```lua
addEventHandler("onClientElementStreamOut", root, function()

end)
```

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onClientElementStreamOut", root, function()
    if getElementType(source) == "vehicle" then outputConsole("Auto poza zasięgiem") end
end)
```

#### Zobacz też

- [`onClientElementStreamIn`](https://trilogy-hub.com/docs/onClientElementStreamIn/)

### onClientPlayerAnim

*Zdarzenie · Strona: Klient · Kategoria: Gracze · Tylko Trilogy Hub*

Animacja innego gracza. Zdarzenie jest zarejestrowane, ale obecny klient nie wysyła jeszcze tych meldunków, więc na razie nie przychodzi.

#### Obsługa

```lua
addEventHandler("onClientPlayerAnim", root, function(data)

end)
```

#### Parametry

- `data` (table) - Dane animacji.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onClientPlayerAnim", root, function(data)
    iprint(data)
end)
```

#### Zobacz też

- [`setPedAnimation`](https://trilogy-hub.com/docs/setPedAnimation/)

### onClientPlayerHit

*Zdarzenie · Strona: Klient · Kategoria: Gracze · Tylko Trilogy Hub*

Gra innego gracza zgłosiła trafienie: tabela `data` z numerem elementu celu (`target`), obrażeniami (`damage`), bronią (`w`) i częścią ciała (`bp`).

#### Obsługa

```lua
addEventHandler("onClientPlayerHit", root, function(data)

end)
```

#### Parametry

- `data` (table) - `{ target, damage, w, bp }`.

#### Źródło

`source` to gracz, który trafił.

#### Przykład

```lua
addEventHandler("onClientPlayerHit", root, function(data)
    outputChatBox(getPlayerName(source) .. " trafił za " .. tostring(data.damage))
end)
```

#### Zobacz też

- [`onPlayerDamage`](https://trilogy-hub.com/docs/onPlayerDamage/)

### onClientPlayerJoin

*Zdarzenie · Strona: Klient · Kategoria: Gracze · Identyczne z MTA:SA*

Inny gracz dołączył do serwera.

#### Obsługa

```lua
addEventHandler("onClientPlayerJoin", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onClientPlayerJoin", root, function()
    outputChatBox(getPlayerName(source) .. " dołączył.", 150, 150, 150)
end)
```

#### Zobacz też

- [`onClientPlayerQuit`](https://trilogy-hub.com/docs/onClientPlayerQuit/)

### onClientPlayerQuit

*Zdarzenie · Strona: Klient · Kategoria: Gracze · Identyczne z MTA:SA*

Inny gracz wyszedł z serwera.

#### Obsługa

```lua
addEventHandler("onClientPlayerQuit", root, function(reason)

end)
```

#### Parametry

- `reason` (string) - Powód.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onClientPlayerQuit", root, function(reason)
    outputChatBox(getPlayerName(source) .. " wyszedł.", 150, 150, 150)
end)
```

#### Zobacz też

- [`onClientPlayerJoin`](https://trilogy-hub.com/docs/onClientPlayerJoin/)

### onClientPlayerSpawn

*Zdarzenie · Strona: Klient · Kategoria: Gracze · Zmodyfikowane względem MTA:SA*

Gracz (lokalny albo inny) pojawił się w świecie.

#### Obsługa

```lua
addEventHandler("onClientPlayerSpawn", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `team hisTeam`
- W MTA:SA: `function(team hisTeam)`

#### Przykład

```lua
addEventHandler("onClientPlayerSpawn", localPlayer, function()
    setCameraTarget(localPlayer)
end)
```

#### Zobacz też

- [`onPlayerSpawn`](https://trilogy-hub.com/docs/onPlayerSpawn/)

### onClientPlayerWasted

*Zdarzenie · Strona: Klient · Kategoria: Gracze · Zmodyfikowane względem MTA:SA*

Gracz (lokalny albo inny) zginął.

#### Obsługa

```lua
addEventHandler("onClientPlayerWasted", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `element killer`, `int weapon`, `int bodypart`, `bool stealth`, `int animGroup`, `int animID`
- W MTA:SA: `function(element killer, int weapon, int bodypart, bool stealth, int animGroup, int animID)`

#### Przykład

```lua
addEventHandler("onClientPlayerWasted", localPlayer, function()
    outputChatBox("Zginąłeś. Odrodzenie za chwilę.")
end)
```

#### Zobacz też

- [`onPlayerWasted`](https://trilogy-hub.com/docs/onPlayerWasted/)

### onClientPlayerWeaponFire

*Zdarzenie · Strona: Klient · Kategoria: Gracze · Zmodyfikowane względem MTA:SA*

Gracz oddał strzał z broni palnej: Ty albo inny gracz w pobliżu, którego strzały widać w Twojej grze. Przychodzi raz na każdy pocisk, z punktem wylotu i punktem trafienia. Gra zbiera strzały tylko wtedy, gdy któryś skrypt nasłuchuje tego zdarzenia.

#### Obsługa

```lua
addEventHandler("onClientPlayerWeaponFire", root, function(weapon, endX, endY, endZ, startX, startY, startZ)

end)
```

#### Parametry

- `weapon` (int) - Numer broni.
- `endX, endY, endZ` (float) - Punkt trafienia pocisku.
- `startX, startY, startZ` (float) - Wylot lufy.

#### Źródło

`source` to gracz, który strzelił.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `float startX`, `float startY`, `float startZ`
- W MTA:SA: `function(int weapon, int ammo, int ammoInClip, float hitX, float hitY, float hitZ, element hitElement, float startX, float startY, float startZ)`

#### Przykład

```lua
addEventHandler("onClientPlayerWeaponFire", root, function(weapon, ex, ey, ez, sx, sy, sz)
    if source ~= localPlayer then
        local d = getDistanceBetweenPoints3D(sx, sy, sz, getElementPosition(localPlayer))
        outputChatBox(("%s strzela %.0f m od Ciebie"):format(getPlayerName(source), d))
    end
end)
```

#### Uwagi

> **Uwaga:** **Tylko broń z natychmiastowym trafieniem.** Bronie 22-34 i minigun (38). Strzały dalekich graczy nie przychodzą, bo Twoja gra ich nie pokazuje.

#### Zobacz też

- [`onPlayerWeaponFire`](https://trilogy-hub.com/docs/onPlayerWeaponFire/)
- [`onClientPlayerHit`](https://trilogy-hub.com/docs/onClientPlayerHit/)

### onClientGUIAccepted

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowane względem MTA:SA*

Gracz zatwierdził pole edycji GUI klawiszem Enter.

#### Obsługa

```lua
addEventHandler("onClientGUIAccepted", root, function()

end)
```

#### Źródło

`source` to kontrolka.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `element editBox`
- W MTA:SA: `function(element editBox)`

#### Przykład

```lua
local edit = guiCreateEdit(20, 20, 200, 30, "", false)
addEventHandler("onClientGUIAccepted", edit, function()
    triggerServerEvent("wiadomosc", localPlayer, guiGetText(edit))
end)
```

#### Zobacz też

- [`onClientGUIChanged`](https://trilogy-hub.com/docs/onClientGUIChanged/)

### onClientGUIBlur

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczne z MTA:SA*

Kontrolka GUI straciła fokus.

#### Obsługa

```lua
addEventHandler("onClientGUIBlur", root, function()

end)
```

#### Źródło

`source` to kontrolka.

#### Przykład

```lua
addEventHandler("onClientGUIBlur", root, function()
    outputConsole("Koniec fokusu")
end)
```

#### Zobacz też

- [`onClientGUIFocus`](https://trilogy-hub.com/docs/onClientGUIFocus/)

### onClientGUIChanged

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowane względem MTA:SA*

Zmienił się tekst w polu edycji albo notatce GUI.

#### Obsługa

```lua
addEventHandler("onClientGUIChanged", root, function()

end)
```

#### Źródło

`source` to kontrolka.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `element theElement`
- W MTA:SA: `function(element theElement)`

#### Przykład

```lua
local edit = guiCreateEdit(20, 20, 200, 30, "", false)
addEventHandler("onClientGUIChanged", edit, function()
    outputConsole("Tekst: " .. guiGetText(edit))
end)
```

#### Zobacz też

- [`guiCreateEdit`](https://trilogy-hub.com/docs/guiCreateEdit/)
- [`guiGetText`](https://trilogy-hub.com/docs/guiGetText/)
- [`onClientGUIAccepted`](https://trilogy-hub.com/docs/onClientGUIAccepted/)

### onClientGUIClick

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczne z MTA:SA*

Gracz kliknął kontrolkę GUI (przycisk, pole, listę).

#### Obsługa

```lua
addEventHandler("onClientGUIClick", root, function(button, state, absoluteX, absoluteY)

end)
```

#### Parametry

- `button` (string) - `"left"`, `"right"`, `"middle"`.
- `state` (string) - `"up"`.
- `absoluteX` (int) - X na ekranie.
- `absoluteY` (int) - Y na ekranie.

#### Źródło

`source` to kontrolka.

#### Przykład

```lua
local btn = guiCreateButton(20, 200, 120, 30, "Spawn", false)
addEventHandler("onClientGUIClick", btn, function()
    triggerServerEvent("prosbaSpawn", localPlayer)
end, false)
```

#### Zobacz też

- [`guiCreateButton`](https://trilogy-hub.com/docs/guiCreateButton/)
- [`onClientGUIDoubleClick`](https://trilogy-hub.com/docs/onClientGUIDoubleClick/)

### onClientGUIClose

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Tylko Trilogy Hub*

Gracz zamknął okno GUI krzyżykiem.

#### Obsługa

```lua
addEventHandler("onClientGUIClose", root, function()

end)
```

#### Źródło

`source` to okno.

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 300, 200, "Panel", false)
addEventHandler("onClientGUIClose", win, function()
    showCursor(false)
end)
```

#### Zobacz też

- [`guiCreateWindow`](https://trilogy-hub.com/docs/guiCreateWindow/)
- [`onClientGUIMove`](https://trilogy-hub.com/docs/onClientGUIMove/)
- [`onClientGUISize`](https://trilogy-hub.com/docs/onClientGUISize/)

### onClientGUIComboBoxAccepted

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowane względem MTA:SA*

Gracz wybrał pozycję z listy rozwijanej GUI.

#### Obsługa

```lua
addEventHandler("onClientGUIComboBoxAccepted", root, function()

end)
```

#### Źródło

`source` to lista rozwijana.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `element theElement`
- W MTA:SA: `function(element theElement)`

#### Przykład

```lua
local combo = guiCreateComboBox(20, 20, 200, 120, "Broń", false)
guiComboBoxAddItem(combo, "M4")
addEventHandler("onClientGUIComboBoxAccepted", combo, function()
    outputChatBox("Wybrano " .. guiComboBoxGetItemText(combo, guiComboBoxGetSelected(combo)))
end)
```

#### Zobacz też

- [`guiCreateComboBox`](https://trilogy-hub.com/docs/guiCreateComboBox/)
- [`guiComboBoxGetSelected`](https://trilogy-hub.com/docs/guiComboBoxGetSelected/)

### onClientGUIDoubleClick

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczne z MTA:SA*

Gracz kliknął dwukrotnie kontrolkę GUI (np. wiersz listy).

#### Obsługa

```lua
addEventHandler("onClientGUIDoubleClick", root, function(button, state, absoluteX, absoluteY)

end)
```

#### Parametry

- `button` (string) - Przycisk.
- `state` (string) - Stan.
- `absoluteX` (int) - X.
- `absoluteY` (int) - Y.

#### Źródło

`source` to kontrolka.

#### Przykład

```lua
local list = guiCreateGridList(20, 20, 200, 200, false)
addEventHandler("onClientGUIDoubleClick", list, function()
    outputChatBox("Wybrano wiersz " .. guiGridListGetSelectedItem(list))
end, false)
```

#### Zobacz też

- [`onClientGUIClick`](https://trilogy-hub.com/docs/onClientGUIClick/)
- [`guiCreateGridList`](https://trilogy-hub.com/docs/guiCreateGridList/)

### onClientGUIFocus

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczne z MTA:SA*

Kontrolka GUI dostała fokus (np. pole edycji, w które klika gracz).

#### Obsługa

```lua
addEventHandler("onClientGUIFocus", root, function()

end)
```

#### Źródło

`source` to kontrolka.

#### Przykład

```lua
addEventHandler("onClientGUIFocus", root, function()
    outputConsole("Fokus: " .. getElementType(source))
end)
```

#### Zobacz też

- [`onClientGUIBlur`](https://trilogy-hub.com/docs/onClientGUIBlur/)

### onClientGUIMouseDown

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczne z MTA:SA*

Gracz wcisnął przycisk myszy nad kontrolką GUI.

#### Obsługa

```lua
addEventHandler("onClientGUIMouseDown", root, function(button, absoluteX, absoluteY)

end)
```

#### Parametry

- `button` (string) - Przycisk.
- `absoluteX` (int) - X.
- `absoluteY` (int) - Y.

#### Źródło

`source` to kontrolka.

#### Przykład

```lua
addEventHandler("onClientGUIMouseDown", root, function(button)
    outputConsole("Wciśnięto " .. button)
end)
```

#### Zobacz też

- [`onClientGUIMouseUp`](https://trilogy-hub.com/docs/onClientGUIMouseUp/)

### onClientGUIMouseUp

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczne z MTA:SA*

Gracz puścił przycisk myszy nad kontrolką GUI.

#### Obsługa

```lua
addEventHandler("onClientGUIMouseUp", root, function(button, absoluteX, absoluteY)

end)
```

#### Parametry

- `button` (string) - Przycisk.
- `absoluteX` (int) - X.
- `absoluteY` (int) - Y.

#### Źródło

`source` to kontrolka.

#### Przykład

```lua
addEventHandler("onClientGUIMouseUp", root, function(button)
    outputConsole("Puszczono " .. button)
end)
```

#### Zobacz też

- [`onClientGUIMouseDown`](https://trilogy-hub.com/docs/onClientGUIMouseDown/)

### onClientGUIMove

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczne z MTA:SA*

Gracz przesunął okno GUI.

#### Obsługa

```lua
addEventHandler("onClientGUIMove", root, function()

end)
```

#### Źródło

`source` to okno.

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 300, 200, "Panel", false)
addEventHandler("onClientGUIMove", win, function()
    local x, y = guiGetPosition(win, false)
    outputConsole(("Okno na %d, %d"):format(x, y))
end)
```

#### Zobacz też

- [`guiGetPosition`](https://trilogy-hub.com/docs/guiGetPosition/)
- [`onClientGUISize`](https://trilogy-hub.com/docs/onClientGUISize/)
- [`onClientGUIClose`](https://trilogy-hub.com/docs/onClientGUIClose/)

### onClientGUIScroll

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowane względem MTA:SA*

Przesunięto pasek przewijania GUI.

#### Obsługa

```lua
addEventHandler("onClientGUIScroll", root, function()

end)
```

#### Źródło

`source` to kontrolka.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `element scrolled`
- W MTA:SA: `function(element scrolled)`

#### Przykład

```lua
local bar = guiCreateScrollBar(20, 20, 200, 20, true, false)
addEventHandler("onClientGUIScroll", bar, function()
    outputConsole("Pozycja: " .. guiScrollBarGetScrollPosition(bar))
end)
```

#### Zobacz też

- [`guiCreateScrollBar`](https://trilogy-hub.com/docs/guiCreateScrollBar/)
- [`guiScrollBarGetScrollPosition`](https://trilogy-hub.com/docs/guiScrollBarGetScrollPosition/)

### onClientGUISize

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Identyczne z MTA:SA*

Gracz zmienił rozmiar okna GUI.

#### Obsługa

```lua
addEventHandler("onClientGUISize", root, function()

end)
```

#### Źródło

`source` to okno.

#### Przykład

```lua
local win = guiCreateWindow(100, 100, 300, 200, "Panel", false)
addEventHandler("onClientGUISize", win, function()
    local w, h = guiGetSize(win, false)
    outputConsole(("Rozmiar %dx%d"):format(w, h))
end)
```

#### Zobacz też

- [`guiGetSize`](https://trilogy-hub.com/docs/guiGetSize/)
- [`onClientGUIMove`](https://trilogy-hub.com/docs/onClientGUIMove/)
- [`onClientGUIClose`](https://trilogy-hub.com/docs/onClientGUIClose/)

### onClientGUITabSwitched

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowane względem MTA:SA*

Gracz przełączył zakładkę w panelu zakładek GUI.

#### Obsługa

```lua
addEventHandler("onClientGUITabSwitched", root, function()

end)
```

#### Źródło

`source` to wybrana zakładka.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `element theElement`
- W MTA:SA: `function(element theElement)`

#### Przykład

```lua
addEventHandler("onClientGUITabSwitched", root, function()
    outputConsole("Zakładka: " .. guiGetText(source))
end)
```

#### Zobacz też

- [`guiCreateTab`](https://trilogy-hub.com/docs/guiCreateTab/)

### onClientMouseEnter

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowane względem MTA:SA*

Kursor najechał na kontrolkę GUI. Przydaje się do podświetleń i podpowiedzi.

#### Obsługa

```lua
addEventHandler("onClientMouseEnter", root, function(absoluteX, absoluteY)

end)
```

#### Parametry

- `absoluteX` (int) - X.
- `absoluteY` (int) - Y.

#### Źródło

`source` to kontrolka.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `element leftGUI`
- W MTA:SA: `function(int absoluteX, int absoluteY, element leftGUI)`

#### Przykład

```lua
local btn = guiCreateButton(20, 200, 120, 30, "Kup", false)
addEventHandler("onClientMouseEnter", btn, function()
    guiSetAlpha(btn, 1)
end, false)
```

#### Zobacz też

- [`onClientMouseLeave`](https://trilogy-hub.com/docs/onClientMouseLeave/)

### onClientMouseLeave

*Zdarzenie · Strona: Klient · Kategoria: Interfejs (GUI) · Zmodyfikowane względem MTA:SA*

Kursor zjechał z kontrolki GUI.

#### Obsługa

```lua
addEventHandler("onClientMouseLeave", root, function(absoluteX, absoluteY)

end)
```

#### Parametry

- `absoluteX` (int) - X.
- `absoluteY` (int) - Y.

#### Źródło

`source` to kontrolka.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `element enteredGUI`
- W MTA:SA: `function(int absoluteX, int absoluteY, element enteredGUI)`

#### Przykład

```lua
local btn = guiCreateButton(20, 200, 120, 30, "Kup", false)
addEventHandler("onClientMouseLeave", btn, function()
    guiSetAlpha(btn, 0.7)
end, false)
```

#### Zobacz też

- [`onClientMouseEnter`](https://trilogy-hub.com/docs/onClientMouseEnter/)

### onClientObjectBreak

*Zdarzenie · Strona: Klient · Kategoria: Obiekty · Zmodyfikowane względem MTA:SA*

Gra innego gracza zgłosiła zniszczenie obiektu stworzonego skryptem: tabela `data` z numerem elementu obiektu (`object`).

#### Obsługa

```lua
addEventHandler("onClientObjectBreak", root, function(data)

end)
```

#### Parametry

- `data` (table) - `{ object }`.

#### Źródło

`source` to gracz, który zniszczył obiekt.

#### Różnice względem MTA:SA

- W MTA:SA: `function(element attacker)`

#### Przykład

```lua
addEventHandler("onClientObjectBreak", root, function(data)
    outputConsole(getPlayerName(source) .. " zniszczył obiekt " .. tostring(data.object))
end)
```

#### Zobacz też

- [`onObjectBreak`](https://trilogy-hub.com/docs/onObjectBreak/)

### onClientExplosion

*Zdarzenie · Strona: Klient · Kategoria: Ogień · Identyczne z MTA:SA*

Za chwilę w grze gracza będzie wybuch. Możesz go anulować tylko u siebie.

#### Obsługa

```lua
addEventHandler("onClientExplosion", root, function(x, y, z, theType)

end)
```

#### Parametry

- `x, y, z` (float) - Miejsce.
- `theType` (int) - Typ 0-12.

#### Źródło

`source` to twórca wybuchu albo `root`.

`cancelEvent()` = bez wybuchu w tej grze.

#### Przykład

```lua
addEventHandler("onClientExplosion", root, function(x, y, z)
    if getDistanceBetweenPoints3D(x, y, z, 2495, -1687, 13.5) < 30 then cancelEvent() end
end)
```

#### Zobacz też

- [`createExplosion`](https://trilogy-hub.com/docs/createExplosion/)
- [`onExplosion`](https://trilogy-hub.com/docs/onExplosion/)

### onClientVehicleDamage

*Zdarzenie · Strona: Klient · Kategoria: Pojazdy · Zmodyfikowane względem MTA:SA*

Pojazd stracił zdrowie w Twojej grze: od zderzenia, strzałów, wybuchu, ognia albo zmiany zdrowia ze skryptu. Dotyczy każdego pojazdu, który Twoja gra zna, także aut innych graczy. Gra sprawdza zdrowie pojazdów 10 razy na sekundę i tylko wtedy, gdy któryś skrypt nasłuchuje tego zdarzenia; kilka szybkich uszkodzeń w tym czasie przychodzi jako jedna strata.

#### Obsługa

```lua
addEventHandler("onClientVehicleDamage", root, function(loss, health)

end)
```

#### Parametry

- `loss` (float) - Ile zdrowia ubyło.
- `health` (float) - Zdrowie pojazdu po uszkodzeniu (1000 = całe, poniżej 250 pojazd się pali).

#### Źródło

`source` to pojazd.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `float loss`, `float damagePosX`, `float damagePosY`, `float damagePosZ`, `int tireID`
- W MTA:SA: `function(element theAttacker, int theWeapon, float loss, float damagePosX, float damagePosY, float damagePosZ, int tireID)`

#### Przykład

```lua
addEventHandler("onClientVehicleDamage", root, function(loss, health)
    if source == getPedOccupiedVehicle(localPlayer) and health < 400 then
        outputChatBox(("Auto mocno uszkodzone: %.0f%%"):format(health / 10))
    end
end)
```

#### Zobacz też

- [`onVehicleDamage`](https://trilogy-hub.com/docs/onVehicleDamage/)
- [`getElementHealth`](https://trilogy-hub.com/docs/getElementHealth/)

### onClientVehicleExplode

*Zdarzenie · Strona: Klient · Kategoria: Pojazdy · Identyczne z MTA:SA*

Pojazd wybuchł (`blowVehicle` albo wybuch zgłoszony przez jego właściciela). Przychodzi w tej samej chwili u wszystkich, tuż przed `onClientExplosion`.

#### Obsługa

```lua
addEventHandler("onClientVehicleExplode", root, function()

end)
```

#### Źródło

`source` to pojazd.

#### Przykład

```lua
addEventHandler("onClientVehicleExplode", root, function()
    if getPedOccupiedVehicle(localPlayer) == source then outputChatBox("Twoje auto wybuchło!") end
end)
```

#### Zobacz też

- [`onVehicleExplode`](https://trilogy-hub.com/docs/onVehicleExplode/)

### onClientBrowserConsoleMessage

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Zmodyfikowane względem MTA:SA*

Strona wypisała coś w konsoli JavaScript (`console.log`). Przydaje się do szukania błędów strony.

#### Obsługa

```lua
addEventHandler("onClientBrowserConsoleMessage", root, function(message, level, line, source)

end)
```

#### Parametry

- `message` (string) - Treść.
- `level` (int) - Poziom.
- `line` (int) - Linia.
- `source` (string) - Plik źródłowy.

#### Źródło

`source` to przeglądarka.

#### Różnice względem MTA:SA

- W MTA:SA: `function(string message, string source, int line, int level)`

#### Przykład

```lua
addEventHandler("onClientBrowserConsoleMessage", root, function(message, level, line, file)
    outputConsole(("[strona] %s (%s:%d)"):format(message, file, line))
end)
```

#### Zobacz też

- [`executeBrowserJavascript`](https://trilogy-hub.com/docs/executeBrowserJavascript/)

### onClientBrowserCrashed

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Proces strony padł. Przeglądarka uruchamia go sama ponownie.

#### Obsługa

```lua
addEventHandler("onClientBrowserCrashed", root, function(reason)

end)
```

#### Parametry

- `reason` (string) - Powód.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserCrashed", root, function(reason)
    outputChatBox("Strona padła (" .. reason .. "), wczytuję ponownie...")
end)
```

#### Zobacz też

- [`onClientBrowserCreated`](https://trilogy-hub.com/docs/onClientBrowserCreated/)

### onClientBrowserCreated

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Przeglądarka jest gotowa (proces stron wystartował) i można w niej ładować adres.

#### Obsługa

```lua
addEventHandler("onClientBrowserCreated", root, function()

end)
```

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
local browser = createBrowser(1280, 720, false)
addEventHandler("onClientBrowserCreated", browser, function()
    loadBrowserURL(source, "https://trilogy-hub.com")
end)
```

#### Zobacz też

- [`createBrowser`](https://trilogy-hub.com/docs/createBrowser/)
- [`loadBrowserURL`](https://trilogy-hub.com/docs/loadBrowserURL/)

### onClientBrowserCursorChange

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Strona zmieniła kształt kursora (np. łapka nad linkiem).

#### Obsługa

```lua
addEventHandler("onClientBrowserCursorChange", root, function(cursor)

end)
```

#### Parametry

- `cursor` (int) - Rodzaj kursora.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserCursorChange", root, function(cursor)
    outputConsole("Kursor: " .. cursor)
end)
```

#### Zobacz też

- [`injectBrowserMouseMove`](https://trilogy-hub.com/docs/injectBrowserMouseMove/)

### onClientBrowserDocumentReady

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Strona w przeglądarce się wczytała. Dobre miejsce na `executeBrowserJavascript`.

#### Obsługa

```lua
addEventHandler("onClientBrowserDocumentReady", root, function(url)

end)
```

#### Parametry

- `url` (string) - Adres.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserDocumentReady", root, function(url)
    executeBrowserJavascript(source, "document.body.style.background = 'transparent'")
end)
```

#### Zobacz też

- [`executeBrowserJavascript`](https://trilogy-hub.com/docs/executeBrowserJavascript/)
- [`onClientBrowserLoadingStart`](https://trilogy-hub.com/docs/onClientBrowserLoadingStart/)

### onClientBrowserInputFocusChanged

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Pole tekstowe na stronie dostało albo straciło fokus. Przydaje się do włączania klawiatury dla przeglądarki.

#### Obsługa

```lua
addEventHandler("onClientBrowserInputFocusChanged", root, function(gainedFocus)

end)
```

#### Parametry

- `gainedFocus` (bool) - `true` = pole aktywne.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserInputFocusChanged", root, function(focused)
    guiSetInputEnabled(focused)
end)
```

#### Zobacz też

- [`focusBrowser`](https://trilogy-hub.com/docs/focusBrowser/)
- [`guiSetInputEnabled`](https://trilogy-hub.com/docs/guiSetInputEnabled/)

### onClientBrowserLoadingFailed

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Nie udało się wczytać strony.

#### Obsługa

```lua
addEventHandler("onClientBrowserLoadingFailed", root, function(url, errorCode, errorDescription)

end)
```

#### Parametry

- `url` (string) - Adres.
- `errorCode` (int) - Kod błędu.
- `errorDescription` (string) - Opis błędu.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserLoadingFailed", root, function(url, code, desc)
    outputChatBox("Nie wczytano strony: " .. desc)
end)
```

#### Zobacz też

- [`onClientBrowserDocumentReady`](https://trilogy-hub.com/docs/onClientBrowserDocumentReady/)

### onClientBrowserLoadingStart

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Przeglądarka zaczyna ładować stronę.

#### Obsługa

```lua
addEventHandler("onClientBrowserLoadingStart", root, function(url, isMainFrame)

end)
```

#### Parametry

- `url` (string) - Adres.
- `isMainFrame` (bool) - `true` dla głównej ramki.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserLoadingStart", root, function(url)
    outputConsole("Ładuję " .. url)
end)
```

#### Zobacz też

- [`onClientBrowserDocumentReady`](https://trilogy-hub.com/docs/onClientBrowserDocumentReady/)

### onClientBrowserNavigate

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Przeglądarka przechodzi pod nowy adres (np. po kliknięciu linku). `isBlocked` mówi, czy adres jest zablokowany.

#### Obsługa

```lua
addEventHandler("onClientBrowserNavigate", root, function(targetURL, isBlocked, isMainFrame)

end)
```

#### Parametry

- `targetURL` (string) - Adres.
- `isBlocked` (bool) - Czy zablokowany.
- `isMainFrame` (bool) - Główna ramka.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserNavigate", root, function(url, blocked)
    if blocked then outputChatBox("Adres zablokowany: " .. url) end
end)
```

#### Zobacz też

- [`onClientBrowserResourceBlocked`](https://trilogy-hub.com/docs/onClientBrowserResourceBlocked/)

### onClientBrowserPopup

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Strona próbuje otworzyć nowe okno (popup). Nowe okna nie są otwierane; możesz za to załadować adres w tej samej przeglądarce.

#### Obsługa

```lua
addEventHandler("onClientBrowserPopup", root, function(targetURL, openerURL, isPopup)

end)
```

#### Parametry

- `targetURL` (string) - Adres okna.
- `openerURL` (string) - Adres strony.
- `isPopup` (bool) - Czy to popup.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserPopup", root, function(target)
    loadBrowserURL(source, target)
end)
```

#### Zobacz też

- [`loadBrowserURL`](https://trilogy-hub.com/docs/loadBrowserURL/)

### onClientBrowserResourceBlocked

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Strona chciała wczytać coś z zablokowanego adresu. Powód: `0` domena bez zgody gracza, `1` czarna lista albo sieć lokalna, `2` niedozwolony protokół albo adres.

#### Obsługa

```lua
addEventHandler("onClientBrowserResourceBlocked", root, function(url, domain, reason)

end)
```

#### Parametry

- `url` (string) - Adres.
- `domain` (string) - Domena.
- `reason` (int) - Powód 0-2.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
addEventHandler("onClientBrowserResourceBlocked", root, function(url, domain, reason)
    if reason == 0 then requestBrowserDomains({ domain }) end
end)
```

#### Zobacz też

- [`requestBrowserDomains`](https://trilogy-hub.com/docs/requestBrowserDomains/)
- [`onClientBrowserWhitelistChange`](https://trilogy-hub.com/docs/onClientBrowserWhitelistChange/)

### onClientBrowserTooltip

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Strona chce pokazać podpowiedź (atrybut `title`).

#### Obsługa

```lua
addEventHandler("onClientBrowserTooltip", root, function(text)

end)
```

#### Parametry

- `text` (string) - Treść podpowiedzi.

#### Źródło

`source` to przeglądarka.

#### Przykład

```lua
local tip = ""
addEventHandler("onClientBrowserTooltip", root, function(text) tip = text end)
```

#### Zobacz też

- [`createBrowser`](https://trilogy-hub.com/docs/createBrowser/)

### onClientBrowserWhitelistChange

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Gracz zgodził się na nowe domeny dla przeglądarki (po `requestBrowserDomains`).

#### Obsługa

```lua
addEventHandler("onClientBrowserWhitelistChange", root, function(newDomains)

end)
```

#### Parametry

- `newDomains` (table) - Nowe domeny.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientBrowserWhitelistChange", root, function(domains)
    outputChatBox("Zgoda na: " .. table.concat(domains, ", "))
end)
```

#### Zobacz też

- [`requestBrowserDomains`](https://trilogy-hub.com/docs/requestBrowserDomains/)

### onClientCursorMove

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Kursor się poruszył (tylko gdy jest widoczny; najwyżej raz na klatkę).

#### Obsługa

```lua
addEventHandler("onClientCursorMove", root, function(cursorX, cursorY, absoluteX, absoluteY, worldX, worldY, worldZ)

end)
```

#### Parametry

- `cursorX, cursorY` (float) - Pozycja względna 0-1.
- `absoluteX, absoluteY` (float) - Pozycja w pikselach ekranu.
- `worldX, worldY, worldZ` (float) - Punkt świata 300 m w głąb ekranu pod kursorem.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientCursorMove", root, function(_, _, x, y)
    hovered = x > 100 and x < 300 and y > 100 and y < 140
end)
```

#### Zobacz też

- [`getCursorPosition`](https://trilogy-hub.com/docs/getCursorPosition/)
- [`onClientClick`](https://trilogy-hub.com/docs/onClientClick/)

### onClientMarkerHit

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Element wszedł w znacznik (marker), w tej grze. Działa dla znaczników z serwera i stworzonych u klienta. Sprawdzane są gracze, pojazdy, postacie, obiekty, pickupy i inne znaczniki, co 100 ms. Znacznik `checkpoint` to koło bez limitu wysokości, pozostałe typy to kula o promieniu równym rozmiarowi znacznika.

#### Obsługa

```lua
addEventHandler("onClientMarkerHit", root, function(hitElement, matchingDimension)

end)
```

#### Parametry

- `hitElement` (element) - Element, który wszedł.
- `matchingDimension` (bool) - Czy element i znacznik są w tym samym wymiarze.

#### Źródło

`source` to znacznik.

#### Przykład

```lua
local shop = createMarker(2500, -1660, 12.5, "cylinder", 1.5, 255, 122, 34)
addEventHandler("onClientMarkerHit", shop, function(el, dim)
    if el == localPlayer and dim then outputChatBox("Sklep: wpisz /kup") end
end)
```

#### Zobacz też

- [`onClientMarkerLeave`](https://trilogy-hub.com/docs/onClientMarkerLeave/)
- [`onClientPlayerMarkerHit`](https://trilogy-hub.com/docs/onClientPlayerMarkerHit/)
- [`createMarker`](https://trilogy-hub.com/docs/createMarker/)

### onClientMarkerLeave

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Element wyszedł ze znacznika (marker), w tej grze. Zachodzi też, gdy element zniknie albo zostanie przeniesiony poza znacznik.

#### Obsługa

```lua
addEventHandler("onClientMarkerLeave", root, function(leftElement, matchingDimension)

end)
```

#### Parametry

- `leftElement` (element) - Element, który wyszedł.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to znacznik.

#### Przykład

```lua
addEventHandler("onClientMarkerLeave", root, function(el)
    if el == localPlayer then outputChatBox("Wyszedłeś ze znacznika") end
end)
```

#### Zobacz też

- [`onClientMarkerHit`](https://trilogy-hub.com/docs/onClientMarkerHit/)
- [`onClientPlayerMarkerLeave`](https://trilogy-hub.com/docs/onClientPlayerMarkerLeave/)

### onClientMinimize

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Okno gry zostało zminimalizowane albo straciło pierwszy plan (np. Alt+Tab).

#### Obsługa

```lua
addEventHandler("onClientMinimize", root, function()

end)
```

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientMinimize", root, function()
    triggerServerEvent("afk", localPlayer, true)
end)
```

```lua
addEvent("afk", true)
addEventHandler("afk", root, function(away)
    setElementData(client, "afk", away)
end)
```

#### Zobacz też

- [`onClientRestore`](https://trilogy-hub.com/docs/onClientRestore/)

### onClientPedDamage

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

NPC dostał obrażenia w Twojej grze (np. od Twojej broni), zanim trafienie pójdzie na serwer. `cancelEvent()` blokuje trafienie: nie idzie na serwer, a zdrowie NPC wraca do wartości z serwera.

#### Obsługa

```lua
addEventHandler("onClientPedDamage", root, function(attacker, weapon, bodypart, loss)

end)
```

#### Parametry

- `attacker` (element) - Gracz albo NPC, który trafił, albo `false`.
- `weapon` (int) - Broń trzymana przez atakującego (`false`, gdy nieznana).
- `bodypart` (int) - Część ciała (3-9).
- `loss` (float) - Utracone zdrowie (0-100).

#### Źródło

`source` to trafiony NPC.

#### Przykład

Strefa bez walki dla botów.

```lua
addEventHandler("onClientPedDamage", root, function(attacker, weapon, bodypart, loss)
    if getElementData(source, "safe") then cancelEvent() end
end)
```

#### Zobacz też

- [`onClientPlayerDamage`](https://trilogy-hub.com/docs/onClientPlayerDamage/)
- [`onPlayerDamage`](https://trilogy-hub.com/docs/onPlayerDamage/)
- [`setPedDamageProof`](https://trilogy-hub.com/docs/setPedDamageProof/)

### onClientPedsProcessed

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Co klatkę, zaraz po przeliczeniu animacji i kości wszystkich postaci, a przed `onClientPreRender`. Tu `getPedBonePosition` i `getPedBoneMatrix` dają pozycje z bieżącej klatki, więc przyczepiane ręcznie obiekty i efekty nie zostają klatkę w tyle.

#### Obsługa

```lua
addEventHandler("onClientPedsProcessed", root, function()

end)
```

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientPedsProcessed", root, function()
    local x, y, z = getPedBonePosition(localPlayer, 8)
    if x then setElementPosition(halo, x, y, z + 0.3) end
end)
```

#### Zobacz też

- [`getPedBoneMatrix`](https://trilogy-hub.com/docs/getPedBoneMatrix/)
- [`onClientPreRender`](https://trilogy-hub.com/docs/onClientPreRender/)

### onClientPlayerDamage

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Własna postać dostała obrażenia: trafienie od innego gracza albo z gry (upadek, ogień, wybuch, auto, utonięcie). Zdarzenie informacyjne - o obrażeniach decyduje serwer, więc `cancelEvent()` tu niczego nie blokuje; do blokowania służą `cancelEvent()` w `onPlayerDamage` na serwerze i `setPedDamageProof`.

#### Obsługa

```lua
addEventHandler("onClientPlayerDamage", root, function(attacker, weapon, bodypart, loss)

end)
```

#### Parametry

- `attacker` (element) - Gracz, który trafił, albo `false`.
- `weapon` (int) - Broń albo przyczyna (`false`, gdy nieznana).
- `bodypart` (int) - `3` przy trafieniu od gracza, `false` przy obrażeniach z gry.
- `loss` (float) - Utracone zdrowie.

#### Źródło

`source` to `localPlayer`.

#### Przykład

```lua
addEventHandler("onClientPlayerDamage", localPlayer, function(attacker, weapon, bodypart, loss)
    flashUntil = getTickCount() + 300 -- czerwony błysk ekranu
end)
```

#### Zobacz też

- [`onPlayerDamage`](https://trilogy-hub.com/docs/onPlayerDamage/)
- [`setPedDamageProof`](https://trilogy-hub.com/docs/setPedDamageProof/)
- [`onClientPlayerWasted`](https://trilogy-hub.com/docs/onClientPlayerWasted/)

### onClientPlayerMarkerHit

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Gracz wszedł w znacznik (marker), w tej grze. To samo co `onClientMarkerHit`, ale źródłem jest gracz, więc obsługę możesz podpiąć do `localPlayer`.

#### Obsługa

```lua
addEventHandler("onClientPlayerMarkerHit", root, function(markerHit, matchingDimension)

end)
```

#### Parametry

- `markerHit` (marker) - Znacznik.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onClientPlayerMarkerHit", localPlayer, function(marker, dim)
    if dim then outputChatBox("Znacznik typu " .. getMarkerType(marker)) end
end)
```

#### Zobacz też

- [`onClientPlayerMarkerLeave`](https://trilogy-hub.com/docs/onClientPlayerMarkerLeave/)
- [`onClientMarkerHit`](https://trilogy-hub.com/docs/onClientMarkerHit/)

### onClientPlayerMarkerLeave

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Gracz wyszedł ze znacznika (marker), w tej grze. Źródłem jest gracz.

#### Obsługa

```lua
addEventHandler("onClientPlayerMarkerLeave", root, function(markerLeft, matchingDimension)

end)
```

#### Parametry

- `markerLeft` (marker) - Znacznik.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onClientPlayerMarkerLeave", localPlayer, function(marker)
    outputChatBox("Opuściłeś znacznik")
end)
```

#### Zobacz też

- [`onClientPlayerMarkerHit`](https://trilogy-hub.com/docs/onClientPlayerMarkerHit/)
- [`onClientMarkerLeave`](https://trilogy-hub.com/docs/onClientMarkerLeave/)

### onClientPlayerVoiceStart

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Gracz zaczął mówić przez czat głosowy (dla lokalnego gracza: jego mikrofon zaczął nadawać). Możesz zablokować wypowiedź innego gracza: wtedy ten gracz nie słyszy jej, aż tamten przestanie mówić.

#### Obsługa

```lua
addEventHandler("onClientPlayerVoiceStart", root, function()

end)
```

#### Źródło

`source` to mówiący gracz.

`cancelEvent()` wycisza tę wypowiedź tylko u tego gracza.

#### Przykład

```lua
local blocked = {}
addCommandHandler("ignoruj", function(_, nick)
    local p = nick and getPlayerFromName(nick)
    if p then blocked[p] = true end
end)
addEventHandler("onClientPlayerVoiceStart", root, function()
    if blocked[source] then cancelEvent() end
end)
```

#### Zobacz też

- [`onClientPlayerVoiceStop`](https://trilogy-hub.com/docs/onClientPlayerVoiceStop/)
- [`isPlayerTalking`](https://trilogy-hub.com/docs/isPlayerTalking/)
- [`getPlayerVoiceLevel`](https://trilogy-hub.com/docs/getPlayerVoiceLevel/)

### onClientPlayerVoiceStop

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Gracz skończył mówić przez czat głosowy.

#### Obsługa

```lua
addEventHandler("onClientPlayerVoiceStop", root, function()

end)
```

#### Źródło

`source` to gracz.

#### Przykład

```lua
addEventHandler("onClientPlayerVoiceStop", root, function()
    if source == localPlayer then outputChatBox("Mikrofon wyłączony") end
end)
```

#### Zobacz też

- [`onClientPlayerVoiceStart`](https://trilogy-hub.com/docs/onClientPlayerVoiceStart/)

### onClientRestore

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Okno gry wróciło na pierwszy plan po minimalizacji albo Alt+Tab.

#### Obsługa

```lua
addEventHandler("onClientRestore", root, function(didClearRenderTargets)

end)
```

#### Parametry

- `didClearRenderTargets` (bool) - Zawsze `false`: render targety (`dxCreateRenderTarget`) są trzymane w pamięci programu i nic z nich nie znika, więc nie trzeba ich rysować od nowa.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientRestore", root, function(cleared)
    if cleared then
        -- tutaj odrysowanie render targetow (w Trilogy Hub nie bywa potrzebne)
    end
    triggerServerEvent("afk", localPlayer, false)
end)
```

```lua
addEvent("afk", true)
addEventHandler("afk", root, function(away)
    setElementData(client, "afk", away)
end)
```

#### Zobacz też

- [`onClientMinimize`](https://trilogy-hub.com/docs/onClientMinimize/)
- [`dxCreateRenderTarget`](https://trilogy-hub.com/docs/dxCreateRenderTarget/)

### onClientVehicleCollision

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Identyczne z MTA:SA*

Pojazd, którym kieruje ten gracz, w coś uderzył (nagła zmiana prędkości, co najmniej 2,5 m/s w jednej klatce). Teleport i `setElementVelocity` ze skryptu się nie liczą.

#### Obsługa

```lua
addEventHandler("onClientVehicleCollision", root, function(theHitElement, force, bodyPart, collisionX, collisionY, collisionZ, normalX, normalY, normalZ, hitElementForce, model)

end)
```

#### Parametry

- `theHitElement` (element) - Uderzony element albo `false` (ściana, teren, budynek).
- `force` (float) - Siła uderzenia: zmiana prędkości × masa / 50.
- `bodyPart` (int) - Zawsze `0`.
- `collisionX, collisionY, collisionZ` (float) - Punkt uderzenia.
- `normalX, normalY, normalZ` (float) - Normalna powierzchni.
- `hitElementForce` (float) - Prędkość uderzonego elementu (m/s).
- `model` (int) - Model uderzonego elementu albo `0`.

#### Źródło

`source` to pojazd.

#### Przykład

```lua
addEventHandler("onClientVehicleCollision", root, function(hit, force)
    if force > 500 then playSoundFrontEnd(4) end
end)
```

#### Zobacz też

- [`onClientVehicleDamage`](https://trilogy-hub.com/docs/onClientVehicleDamage/)
- [`getElementVelocity`](https://trilogy-hub.com/docs/getElementVelocity/)

### onClientWaypointRouteUpdate

*Zdarzenie · Strona: Klient · Kategoria: Przeglądarka · Tylko Trilogy Hub*

Gra wyliczyła od nowa trasę GPS do znacznika (linia na radarze) albo trasa zniknęła. Punkty trasy daje `getPlayerWaypointRoute`.

#### Obsługa

```lua
addEventHandler("onClientWaypointRouteUpdate", root, function(hasRoute, length)

end)
```

#### Parametry

- `hasRoute` (bool) - `true`, gdy trasa jest.
- `length` (float) - Długość trasy w metrach albo `false`.

#### Źródło

`source` to lokalny gracz.

#### Przykład

```lua
addEventHandler("onClientWaypointRouteUpdate", localPlayer, function(hasRoute, length)
    if hasRoute then outputChatBox(("Do celu %.1f km"):format(length / 1000)) end
end)
```

#### Zobacz też

- [`getPlayerWaypointRoute`](https://trilogy-hub.com/docs/getPlayerWaypointRoute/)
- [`onClientWaypointSet`](https://trilogy-hub.com/docs/onClientWaypointSet/)

### onClientPreRender

*Zdarzenie · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczne z MTA:SA*

Przychodzi co klatkę przed `onClientRender`, bez rysowania. Dostaje czas od poprzedniej klatki, więc nadaje się do płynnego ruchu (kamery, animacje).

#### Obsługa

```lua
addEventHandler("onClientPreRender", root, function(timeSlice)

end)
```

#### Parametry

- `timeSlice` (float) - Milisekundy od poprzedniej klatki.

#### Źródło

`source` to `root`.

#### Przykład

```lua
local angle = 0
addEventHandler("onClientPreRender", root, function(dt)
    angle = (angle + dt * 0.05) % 360
end)
```

#### Zobacz też

- [`onClientRender`](https://trilogy-hub.com/docs/onClientRender/)

### onClientRender

*Zdarzenie · Strona: Klient · Kategoria: Rysowanie (dx) · Identyczne z MTA:SA*

Wywoływane w każdej klatce gry. Tu rysujesz wszystko, co ma być stale na ekranie: HUD, liczniki, napisy.

#### Obsługa

```lua
addEventHandler("onClientRender", root, function()

end)
```

#### Źródło

`source` to `root`.

#### Przykład

Zegar z prawdziwą godziną w prawym górnym rogu ekranu.

```lua
local sw = guiGetScreenSize()

addEventHandler("onClientRender", root, function()
    local czas = getRealTime()
    dxDrawText(("%02d:%02d"):format(czas.hour, czas.minute), 0, 20, sw - 30, 60, tocolor(255, 255, 255), 1.6, "pricedown", "right")
end)
```

#### Uwagi

> **Ostrzeżenie:** **Liczy się każda milisekunda.** Funkcja obsługi działa przy każdej klatce, np. 60 razy na sekundę. Nie twórz w niej czcionek, tekstur ani tabel. Przygotuj je raz, poza zdarzeniem.

#### Zobacz też

- [`dxDrawText`](https://trilogy-hub.com/docs/dxDrawText/)
- [`addEventHandler`](https://trilogy-hub.com/docs/addEventHandler/)

### onClientScreenSizeChange

*Zdarzenie · Strona: Klient · Kategoria: Rysowanie (dx) · Tylko Trilogy Hub*

Zmieniła się rozdzielczość albo rozmiar okna gry. Przelicz wtedy pozycje interfejsu.

#### Obsługa

```lua
addEventHandler("onClientScreenSizeChange", root, function(width, height, oldWidth, oldHeight)

end)
```

#### Parametry

- `width` (int) - Nowa szerokość.
- `height` (int) - Nowa wysokość.
- `oldWidth` (int) - Stara szerokość.
- `oldHeight` (int) - Stara wysokość.

#### Źródło

`source` to `root`.

#### Przykład

```lua
local sw, sh = guiGetScreenSize()
addEventHandler("onClientScreenSizeChange", root, function(w, h)
    sw, sh = w, h
end)
```

#### Zobacz też

- [`guiGetScreenSize`](https://trilogy-hub.com/docs/guiGetScreenSize/)

### onClientColShapeHit

*Zdarzenie · Strona: Klient · Kategoria: Strefy kolizji · Identyczne z MTA:SA*

Element wszedł do strefy stworzonej u klienta. Obsługę podepnij do tej strefy albo do `root` (zdarzenie nie przechodzi przez rodziców).

#### Obsługa

```lua
addEventHandler("onClientColShapeHit", root, function(theElement, matchingDimension)

end)
```

#### Parametry

- `theElement` (element) - Element.
- `matchingDimension` (bool) - Zawsze `true`.

#### Źródło

`source` to strefa.

#### Przykład

```lua
local zone = createColSphere(2495, -1687, 13.5, 10)
addEventHandler("onClientColShapeHit", zone, function(el)
    if el == localPlayer then outputChatBox("Jesteś przy domu CJ") end
end)
```

#### Zobacz też

- [`onClientColShapeLeave`](https://trilogy-hub.com/docs/onClientColShapeLeave/)
- [`createColSphere`](https://trilogy-hub.com/docs/createColSphere/)

### onClientColShapeLeave

*Zdarzenie · Strona: Klient · Kategoria: Strefy kolizji · Identyczne z MTA:SA*

Element wyszedł ze strefy stworzonej u klienta.

#### Obsługa

```lua
addEventHandler("onClientColShapeLeave", root, function(theElement, matchingDimension)

end)
```

#### Parametry

- `theElement` (element) - Element.
- `matchingDimension` (bool) - Zawsze `true`.

#### Źródło

`source` to strefa.

#### Przykład

```lua
local zone = createColSphere(2495, -1687, 13.5, 10)
addEventHandler("onClientColShapeLeave", zone, function(el)
    if el == localPlayer then outputChatBox("Odchodzisz od domu") end
end)
```

#### Zobacz też

- [`onClientColShapeHit`](https://trilogy-hub.com/docs/onClientColShapeHit/)

### onClientElementColShapeHit

*Zdarzenie · Strona: Klient · Kategoria: Strefy kolizji · Identyczne z MTA:SA*

Element wszedł do strefy kolizji (wersja od strony elementu, u klienta).

#### Obsługa

```lua
addEventHandler("onClientElementColShapeHit", root, function(theShape, matchingDimension)

end)
```

#### Parametry

- `theShape` (colshape) - Strefa.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onClientElementColShapeHit", localPlayer, function(shape)
    if getElementData(shape, "strefa") then outputChatBox("Wszedłeś do strefy") end
end)
```

#### Zobacz też

- [`onClientElementColShapeLeave`](https://trilogy-hub.com/docs/onClientElementColShapeLeave/)

### onClientElementColShapeLeave

*Zdarzenie · Strona: Klient · Kategoria: Strefy kolizji · Identyczne z MTA:SA*

Element wyszedł ze strefy kolizji (wersja od strony elementu, u klienta).

#### Obsługa

```lua
addEventHandler("onClientElementColShapeLeave", root, function(theShape, matchingDimension)

end)
```

#### Parametry

- `theShape` (colshape) - Strefa.
- `matchingDimension` (bool) - Czy w tym samym wymiarze.

#### Źródło

`source` to element.

#### Przykład

```lua
addEventHandler("onClientElementColShapeLeave", localPlayer, function()
    outputChatBox("Wyszedłeś ze strefy")
end)
```

#### Zobacz też

- [`onClientElementColShapeHit`](https://trilogy-hub.com/docs/onClientElementColShapeHit/)

### onClientMapEnabledChange

*Zdarzenie · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Serwer włączył albo wyłączył mapę pod ESC (`setMapEnabled`, `setPlayerMapEnabled`).

#### Obsługa

```lua
addEventHandler("onClientMapEnabledChange", root, function(enabled)

end)
```

#### Parametry

- `enabled` (bool) - `true` = mapa dostępna.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientMapEnabledChange", root, function(enabled)
    if not enabled then outputChatBox("Mapa została wyłączona.") end
end)
```

#### Zobacz też

- [`isMapEnabled`](https://trilogy-hub.com/docs/isMapEnabled/)

### onClientPlayerNetworkStatus

*Zdarzenie · Strona: Klient · Kategoria: Świat · Identyczne z MTA:SA*

Połączenie z serwerem się zacięło albo wróciło. Gdy przez 2,5 s nie przychodzą żadne dane, gra pokazuje na środku ekranu „NETWORK TROUBLE”, postać staje w miejscu i przychodzi `status` = `0`; gdy dane wrócą, przychodzi `status` = `1`.

#### Obsługa

```lua
addEventHandler("onClientPlayerNetworkStatus", root, function(status, ticks)

end)
```

#### Parametry

- `status` (int) - `0` = przerwa się zaczęła, `1` = przerwa się skończyła.
- `ticks` (int) - Ile milisekund trwa (albo trwała) przerwa.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientPlayerNetworkStatus", root, function(status, ticks)
    if status == 0 then
        outputDebugString("Problem z połączeniem")
    else
        outputDebugString("Połączenie wróciło po " .. ticks .. " ms")
    end
end)
```

### onClientWaypointRemove

*Zdarzenie · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Znacznik GPS lokalnego gracza zniknął: zdjęty na mapie, skryptem albo gracz dojechał.

#### Obsługa

```lua
addEventHandler("onClientWaypointRemove", root, function(how)

end)
```

#### Parametry

- `how` (string) - `"map"`, `"script"` albo `"reached"`.

#### Źródło

`source` to lokalny gracz.

#### Przykład

```lua
addEventHandler("onClientWaypointRemove", localPlayer, function(how)
    if how == "reached" then outputChatBox("Jesteś na miejscu.") end
end)
```

#### Zobacz też

- [`onClientWaypointSet`](https://trilogy-hub.com/docs/onClientWaypointSet/)

### onClientWaypointSet

*Zdarzenie · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Lokalny gracz ma nowy znacznik GPS gry: z mapy (`"map"`) albo ze skryptu (`"script"`).

#### Obsługa

```lua
addEventHandler("onClientWaypointSet", root, function(x, y, how)

end)
```

#### Parametry

- `x` (float) - X.
- `y` (float) - Y.
- `how` (string) - `"map"` albo `"script"`.

#### Źródło

`source` to lokalny gracz.

#### Przykład

```lua
addEventHandler("onClientWaypointSet", localPlayer, function(x, y)
    outputChatBox(("Jedziesz do %.0f, %.0f"):format(x, y))
end)
```

#### Zobacz też

- [`onClientWaypointRemove`](https://trilogy-hub.com/docs/onClientWaypointRemove/)
- [`onPlayerWaypointSet`](https://trilogy-hub.com/docs/onPlayerWaypointSet/)

### onClientWorldLoaded

*Zdarzenie · Strona: Klient · Kategoria: Świat · Tylko Trilogy Hub*

Świat został odsłonięty po ekranie wczytywania. Od tej chwili gracz widzi grę.

#### Obsługa

```lua
addEventHandler("onClientWorldLoaded", root, function()

end)
```

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientWorldLoaded", root, function()
    fadeCamera(true, 2)
end)
```

#### Zobacz też

- [`onClientResourceStart`](https://trilogy-hub.com/docs/onClientResourceStart/)
- [`onPlayerReady`](https://trilogy-hub.com/docs/onPlayerReady/)

### onClientWorldSound

*Zdarzenie · Strona: Klient · Kategoria: Świat · Zmodyfikowane względem MTA:SA*

Dźwięk świata od innego gracza. Zdarzenie jest zarejestrowane, ale obecny klient nie wysyła jeszcze tych meldunków, więc na razie nie przychodzi.

#### Obsługa

```lua
addEventHandler("onClientWorldSound", root, function(data)

end)
```

#### Parametry

- `data` (table) - Dane dźwięku.

#### Źródło

`source` to gracz.

#### Różnice względem MTA:SA

- Tych parametrów z MTA:SA tu nie ma: `int index`, `float x`, `float y`, `float z`
- W MTA:SA: `function(int group, int index, float x, float y, float z)`

#### Przykład

```lua
addEventHandler("onClientWorldSound", root, function(data)
    iprint(data)
end)
```

#### Zobacz też

- [`playSound3D`](https://trilogy-hub.com/docs/playSound3D/)

### onClientCharacter

*Zdarzenie · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczne z MTA:SA*

Gracz wpisał znak (litera z uwzględnieniem układu klawiatury i polskich znaków). Do własnych pól tekstowych rysowanych przez `dx`.

#### Obsługa

```lua
addEventHandler("onClientCharacter", root, function(character)

end)
```

#### Parametry

- `character` (string) - Znak.

#### Źródło

`source` to `root`.

#### Przykład

```lua
local typed = ""
addEventHandler("onClientCharacter", root, function(ch)
    typed = typed .. ch
end)
```

#### Zobacz też

- [`onClientKey`](https://trilogy-hub.com/docs/onClientKey/)

### onClientClick

*Zdarzenie · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczne z MTA:SA*

Gracz kliknął myszą przy widocznym kursorze (poza oknami GUI).

#### Obsługa

```lua
addEventHandler("onClientClick", root, function(button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement)

end)
```

#### Parametry

- `button` (string) - `"left"`, `"right"`, `"middle"`.
- `state` (string) - `"down"` albo `"up"`.
- `absoluteX` (int) - X na ekranie.
- `absoluteY` (int) - Y na ekranie.
- `worldX, worldY, worldZ` (float) - Punkt w świecie.
- `clickedElement` (element) - Kliknięty element albo `nil`.

#### Źródło

`source` to `root`.

#### Przykład

```lua
addEventHandler("onClientClick", root, function(button, state, x, y, wx, wy, wz, el)
    if state == "down" and el then outputChatBox("Kliknięto " .. getElementType(el)) end
end)
```

#### Zobacz też

- [`showCursor`](https://trilogy-hub.com/docs/showCursor/)
- [`onPlayerClick`](https://trilogy-hub.com/docs/onPlayerClick/)

### onClientKey

*Zdarzenie · Strona: Klient · Kategoria: Wejście i sterowanie · Identyczne z MTA:SA*

Gracz wcisnął albo puścił klawisz. Zdarzenie widzi każdy klawisz, także te, których gra używa.

#### Obsługa

```lua
addEventHandler("onClientKey", root, function(key, pressed)

end)
```

#### Parametry

- `key` (string) - Nazwa klawisza, np. `a`, `enter`, `mouse1`, `F2`.
- `pressed` (bool) - `true` przy wciśnięciu, `false` przy puszczeniu.

#### Źródło

`source` to `root`.

Klawisz dociera do skryptu, gdy gra już go dostała, więc `cancelEvent()` nie zatrzymuje akcji gry (strzału, zmiany broni Q / E / kółkiem, skoku). Do tego służy `toggleControl` (np. `fire`, `next_weapon`, `previous_weapon`) albo `toggleAllControls`. `cancelEvent()` zatrzymuje tylko wsiadanie jako pasażer pod `g`. Gdy gracz pisze w polu tekstowym (edit lub memo GUI przy kursorze albo przeglądarka z klawiaturą), `escape` trafia tylko do skryptu i strony, a menu ESC się nie otwiera; drugi ESC w ciągu 0,6 s otwiera menu.

#### Przykład

Gdy menu jest otwarte, lewy przycisk myszy nie strzela.

```lua
local menuOtwarte = false

bindKey("F3", "down", function()
    menuOtwarte = not menuOtwarte
    showCursor(menuOtwarte)
    toggleControl("fire", not menuOtwarte)
end)

addEventHandler("onClientKey", root, function(klawisz, wcisniety)
    if menuOtwarte and wcisniety then
        outputConsole("Klawisz w menu: " .. klawisz)
    end
end)
```

#### Uwagi

> **Uwaga:** **Jeden klawisz, jedna akcja?** Gdy chcesz tylko wywołać funkcję pod klawiszem, prościej użyć `bindKey`. `onClientKey` przydaje się, gdy chcesz widzieć wszystkie klawisze.

#### Zobacz też

- [`triggerServerEvent`](https://trilogy-hub.com/docs/triggerServerEvent/)
- [`addEventHandler`](https://trilogy-hub.com/docs/addEventHandler/)
- [`toggleControl`](https://trilogy-hub.com/docs/toggleControl/)

### onClientFileDownloadComplete

*Zdarzenie · Strona: Klient · Kategoria: Zasoby · Identyczne z MTA:SA*

Skończyło się pobieranie pliku z `downloadFile` (plik `<file download="false">`). Przychodzi zawsze asynchronicznie, także gdy plik był już pobrany.

#### Obsługa

```lua
addEventHandler("onClientFileDownloadComplete", root, function(fileName, success, requestResource)

end)
```

#### Parametry

- `fileName` (string) - Plik.
- `success` (bool) - `true` przy powodzeniu.
- `requestResource` (resource) - Zasób, który prosił.

#### Źródło

`source` to korzeń zasobu pliku.

#### Przykład

```lua
addEventHandler("onClientFileDownloadComplete", resourceRoot, function(name, ok)
    if ok then outputChatBox("Pobrano " .. name) end
end)
```

#### Zobacz też

- [`downloadFile`](https://trilogy-hub.com/docs/downloadFile/)

### onClientResourceStart

*Zdarzenie · Strona: Klient · Kategoria: Zasoby · Identyczne z MTA:SA*

Zasób wystartował w grze gracza (skrypty klienta są wczytane). Podpięte do `resourceRoot` przychodzi tylko dla własnego zasobu.

#### Obsługa

```lua
addEventHandler("onClientResourceStart", root, function(startedResource)

end)
```

#### Parametry

- `startedResource` (resource) - Zasób.

#### Źródło

`source` to korzeń zasobu.

#### Przykład

```lua
addEventHandler("onClientResourceStart", resourceRoot, function()
    outputChatBox("Skrypty serwera wczytane.")
end)
```

#### Zobacz też

- [`onClientResourceStop`](https://trilogy-hub.com/docs/onClientResourceStop/)
- [`onPlayerResourceStart`](https://trilogy-hub.com/docs/onPlayerResourceStart/)

### onClientResourceStop

*Zdarzenie · Strona: Klient · Kategoria: Zasoby · Identyczne z MTA:SA*

Zasób zatrzymuje się w grze gracza.

#### Obsługa

```lua
addEventHandler("onClientResourceStop", root, function(stoppedResource)

end)
```

#### Parametry

- `stoppedResource` (resource) - Zasób.

#### Źródło

`source` to korzeń zasobu.

#### Przykład

```lua
addEventHandler("onClientResourceStop", resourceRoot, function()
    showCursor(false)
end)
```

#### Zobacz też

- [`onClientResourceStart`](https://trilogy-hub.com/docs/onClientResourceStart/)

### onClientTransferBoxProgressChange

*Zdarzenie · Strona: Klient · Kategoria: Zasoby · Identyczne z MTA:SA*

Postęp pobierania plików (start zasobu albo `downloadFile`), najwyżej około 10 razy na sekundę. Przydaje się do własnego paska pobierania.

#### Obsługa

```lua
addEventHandler("onClientTransferBoxProgressChange", root, function(downloadedSizeTotal, downloadTotalBytes)

end)
```

#### Parametry

- `downloadedSizeTotal` (int) - Pobrane bajty.
- `downloadTotalBytes` (int) - Wszystkie bajty.

#### Źródło

`source` to `root`.

#### Przykład

```lua
local done, total = 0, 0
addEventHandler("onClientTransferBoxProgressChange", root, function(d, t) done, total = d, t end)
addEventHandler("onClientRender", root, function()
    if total > 0 and done < total then
        dxDrawRectangle(20, 20, 300 * done / total, 10, tocolor(255, 122, 34))
    end
end)
```

#### Zobacz też

- [`isTransferBoxActive`](https://trilogy-hub.com/docs/isTransferBoxActive/)
- [`downloadFile`](https://trilogy-hub.com/docs/downloadFile/)
