> ## Documentation Index
> Fetch the complete documentation index at: https://docs.humalike.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Systemy rozgrywki

> Akcje NPC, podążanie, pojazdy, rany, prace, ekwipunek, dyspozytornia, akcje zdefiniowane przez serwer i lada sklepowa.

Humalike zamienia decyzje z rozmowy w zwalidowane akcje FiveM. Wbudowane
akcje obejmują typowe zachowanie postaci; dostawcy podłączają specyficzne dla serwera
systemy ekwipunku, dyspozytorni i rozgrywki.

## Wbudowane akcje

| Akcja                 | Rezultat                                                                                                                        |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `wave`                | Odegraj krótkie machnięcie ręką.                                                                                                |
| `start_dancing`       | Zacznij podtrzymywany taniec.                                                                                                   |
| `interrupt_animation` | Przerwij bieżącą animację.                                                                                                      |
| `kneel`               | Przyjmij podtrzymywaną pozę klęczącą.                                                                                           |
| `hands_up`            | Podnieś ręce.                                                                                                                   |
| `punch`               | Spróbuj uderzyć pięścią z bliska.                                                                                               |
| `stand_up`            | Wyjdź ze stanu siedzącego lub powalonego.                                                                                       |
| `follow_player`       | Podążaj za graczem, który o to prosi.                                                                                           |
| `stop_following`      | Przestań podążać.                                                                                                               |
| `hold_position`       | Pozostań w bieżącej pozycji.                                                                                                    |
| `release_movement`    | Przywróć kontrolę nad ruchem zwykłemu zachowaniu AI.                                                                            |
| `enter_vehicle`       | Wsiądź na wolne miejsce w cudzym pojeździe: gracza albo najbliższym w zasięgu.                                                  |
| `enter_own_vehicle`   | Wróć do pojazdu, którym NPC przyjechał, zajmij miejsce kierowcy i odjedź. Oferowane tylko wtedy, gdy ten pojazd stoi w pobliżu. |
| `exit_vehicle`        | Opuść bieżący pojazd.                                                                                                           |
| `walk_away`           | Odejdź i zatrzymaj się w bezpiecznej odległości.                                                                                |
| `run_away`            | Uciekaj sprintem od tej osoby i poza scenę.                                                                                     |

`give_item` staje się dostępne, gdy wybrany jest dostawca ekwipunku. Własni
dostawcy akcji mogą dodawać specyficzne dla serwera klucze akcji.

## Podążanie i pojazdy

Przy priorytetyzowaniu podążającego NPC używana jest tylko odpowiednia relacja
z graczem. NPC dostosowuje tempo, gdy zostaje w tyle, i może wsiadać do pojazdów
oraz z nich wysiadać przez jawne akcje. Stan podążania i pojazdu wpływa też na
[wybór rozmówcy głosowego](/pl/ai-npc/voice).

## Ekwipunek

Dostawcy ekwipunku implementują autorytatywne po stronie serwera dostarczanie
przedmiotów. Humalike waliduje akcję i deleguje końcową operację na przedmiocie
do wybranego dostawcy. Własny dostawca ekwipunku musi zwrócić `true` dopiero po
przyjęciu przedmiotu.

Nigdy nie ufaj nazwom przedmiotów, ilościom ani metadanym z niezwalidowanego zdarzenia
klienta. W razie potrzeby stosuj w swoim moście specyficzne dla serwera listy dozwolonych.

## Rany i śmierć

Gdy funkcja jest włączona, obrażenia NPC tworzą ustrukturyzowane rany. NPC może wejść
w stan rannego, wymagać leczenia lub umrzeć zgodnie z konfiguracją serwera. Uprawnione
prace medyka i policji otrzymują interakcje przez wybranego dostawcę
interakcji.

Leczenie jest walidowane na serwerze na podstawie tożsamości gracza, pracy, stanu służby,
odległości i bieżącego stanu NPC. Z dostawcą gracza `standalone`
prace są uprawnieniami ACE (`humalike.job.<name>`); własny dostawca gracza ocenia
prace samodzielnie. Zobacz
[Prace bez frameworka](/pl/ai-npc/configuration#prace-bez-frameworka).

## Dyspozytornia

Incydenty medyczne mogą wywołać wybranego dostawcę dyspozytorni po skonfigurowanym
opóźnieniu i z określoną szansą. Humalike dostarcza neutralny rodzaj i ładunek; most
tłumaczy je na zasób dyspozytorni serwera.

## Akcje zdefiniowane przez serwer

Zasób integracji może deklarować własne akcje, każdą uzależnioną od faktów, które
serwer zgłasza. Kontrakt znajduje się w
[Akcjach zdefiniowanych przez serwer](/pl/ai-npc/integrations/custom-actions).

* Akcję odblokowują tylko zgłoszone obserwacje i tylko dla gracza, któremu NPC
  odpowiada. To, co gracz mówi, się nie liczy.
* Dopóki warunek nie jest spełniony, akcja pozostaje na liście, tag nie jest przyjmowany,
  a NPC dowiaduje się, co musi się najpierw wydarzyć. Nic nie dociera do serwera.
* Warunki są sprawdzane ponownie, gdy model zapisuje tag, więc fakt, który
  wygasł w trakcie odpowiadania, nie prześlizgnie się.
* Wykonany czyn jest zapisywany w transkrypcji NPC jako zdarzenie świata wymieniające
  fakty, które zużył. Zużyte fakty znikają dla każdego innego czynu i dla
  lady sklepowej.
* Bramka czyta ostatnią rozmowę NPC oraz jego najnowsze zdarzenia świata z przestrzeni
  nazw serwera niezależnie od ich wieku, więc zajęty NPC nie zapomina
  ani o nieopłaconym zamówieniu, ani o zużytym fakcie.
* Odrzucony czyn (`RunAction` zwróciło `false`) nie jest ponawiany. Model może
  zapisać tag ponownie w późniejszej odpowiedzi jako nowy czyn z nowym id wywołania.

## Lada sklepowa

Dostawca akcji z `Catalog` zamienia NPC w sklep. Humalike przyjmuje
zamówienie, wycenia je, śledzi płatność i wywołuje serwer, aby wydać towar lub
zwrócić pieniądze. Model nigdy nie ustala ceny, wydanej ilości ani
zwracanej kwoty.

1. Model zamawia jednym tagiem: `[myserver:order water=10 pistol=1]`.
   Humalike sprawdza zapasy i limity na przedmiot, wycenia zamówienie i podaje
   NPC sumę.
2. Płatność to zgłoszona obserwacja płatności w walucie katalogu, w
   pełnych jednostkach.
3. Gdy pieniądze pokryją sumę, Humalike wywołuje `deliver` przy następnej
   odpowiedzi NPC dla tego gracza, rejestruje sprzedaż i usuwa pozycje z zapasów.
4. `[myserver:cancel_order]` wywołuje `refund` z tym, co leży na ladzie. Ma
   pierwszeństwo przed oczekującym wydaniem w tej samej odpowiedzi.

| Przypadek                                                                         | Rezultat                                                                                                        |
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Niedopłata                                                                        | Nic się nie dzieje. NPC dowiaduje się, ile brakuje.                                                             |
| Zamówienie odrzucone (przedmiot niesprzedawany, brak zapasów, przekroczony limit) | Rejestrowane z powodem. NPC odczytuje go w następnej turze.                                                     |
| `deliver` zwraca `false`                                                          | Nic nie jest rejestrowane. Zamówienie i pieniądze zostają. Ponawiane przy następnej odpowiedzi dla tego gracza. |
| Zapasy skończyły się przed `deliver`                                              | Brak próby. NPC dowiaduje się o tym i może anulować w celu zwrotu.                                              |
| `refund` zwraca `false`                                                           | Ponawiane przy następnej odpowiedzi. Towar w tym czasie nie jest wydawany.                                      |
| `deliver` lub `refund` bez odpowiedzi                                             | Brak ponowienia i anulowania, dopóki nie odpowie. NPC dowiaduje się, że wydanie oczekuje.                       |
| Nowe zamówienie, gdy jedno jest otwarte                                           | Zastępuje je. Pieniądze na ladzie liczą się do nowej sumy.                                                      |
| Zamówienie starsze niż godzina                                                    | Wygasa. Pieniądze zostają na ladzie, dopóki `deliver` lub `refund` ich nie zużyje.                              |
| Zamówienie z menu (`PlaceOrder`), gdy opłacone zamówienie czeka na wydanie        | Odrzucone i zarejestrowane jako `order_refused` z powodem `order_open`.                                         |

Ponowienia `deliver` zachowują to samo id wywołania, dopóki obowiązuje to samo zamówienie,
nawet po dopłacie. `refund` jest identyfikowany przez zamówienie, które anuluje, lub przez
płatności, gdy żadne zamówienie nie jest otwarte. Panel pokazuje bieżące zapasy NPC
w trybie tylko do odczytu.

## Własne zachowanie

Nagrody, zmiany w ekonomii, specyficzne dla serwera animacje, kody dyspozytorni i
zasady prac trzymaj w osobnym zasobie integracji. Zobacz
[API dostawców](/pl/ai-npc/integrations/provider-api).

## Dalej

* [Skonfiguruj rozgrywkę medyczną](/pl/ai-npc/configuration#rozgrywka-z-rannymi-i-medyczna).
* [Zbuduj własny most](/pl/ai-npc/integrations/custom-bridge).
* [Dodaj własnego dostawcę akcji](/pl/ai-npc/integrations/provider-api#deskryptor-akcji).
* [Zadeklaruj akcje zdefiniowane przez serwer i ladę sklepową](/pl/ai-npc/integrations/custom-actions).
