AI Core
Świat i narzędziaai-exitsleeping

ai-exitsleeping

Gracz, który się wyloguje, zostaje w świecie jako śpiące ciało, które inni mogą nosić i wkładać do pojazdów.

ai-exitsleeping zatrzymuje wylogowane postacie w świecie. Gdy gracz wychodzi z serwera lub wraca do ekranu postaci, jego postać kładzie się jako śpiące ciało tam, gdzie stała. Inni gracze mogą je nosić, włożyć do pojazdu i z powrotem wyjąć, a właściciel budzi się tam, gdzie ciało się znalazło.

Co robi w grze

  • Śpiące ciała. Ciało ma wygląd postaci (przez warstwę wyglądu AI Core, więc działa każdy obsługiwany skrypt ubrań) i jedną z pozycji leżących z panelu. Każdy gracz widzi tę samą pozycję.
  • Noszenie. Podejdź do ciała i naciśnij klawisz interakcji przy Carry Sleeping Player. X (lub Stop Carrying) odkłada je tam, gdzie stoisz. Nie możesz nosić w pojeździe, będąc powalonym lub skutym.
  • Pojazdy. Podczas noszenia Put in Vehicle przy pojeździe sadza ciało na miejscu pasażera. Take Out Sleeping Player przy pojeździe z ciałem w środku je wyjmuje (wtedy je niesiesz).
  • Budzenie. Następny spawn właściciela jest tam, gdzie teraz jest ciało: na ziemi, na ramieniu niosącego albo na miejscu w pojeździe, w którym zostało posadzone.
  • Wygasanie. Ciała graczy, którzy wylogowali się dawniej niż liczba dni z panelu, są usuwane.
  • Ukryte obszary i prywatne światy. W ukrytym obszarze (panel) nie zostaje żadne ciało, a ciała tam odłożone są ukryte. Przy włączonym Ignore private worlds gracze we wnętrzu domu lub motelu nie zostawiają ciała i żadnego nie widzą.

Instalacja

Instalowany przez przepis AI Core. Ręcznie: ensure ai-exitsleeping po ai-core. Tabela ai_exitsleeping_sleepers jest tworzona przy pierwszym starcie.

Jeśli twój skrypt spawnu sam umieszcza gracza po spawnie ai-core, ustaw Wake up on na PlayerLoaded export (spawn script) i wywołaj z niego exports['ai-exitsleeping']:PlayerLoaded() (zobacz stronę dla deweloperów).

Ustawienia w panelu

Panel administratora > Exit Sleeping.

Zakładka: General

Jak długo zostają śpiące ciała, z jakiej odległości są rysowane i co gracze mogą z nimi robić.

Sleeping bodies: gracz, który się wyloguje, zostaje w świecie jako śpiące ciało tam, gdzie wyszedł, i budzi się tam, gdzie ciało się znalazło.

UstawienieCo zmieniaJednostkaDomyślnie
Keep bodies forCiała graczy, którzy wylogowali się dawniej, są usuwane. 1-365.dni3
Draw distanceŚpiące ciała pojawiają się, gdy gracz podejdzie tak blisko, i znikają dalej. 5-60, co 0,5.m25
Ignore private worldsGracze w prywatnym świecie (wnętrze domu lub pokoju motelowego) nie zostawiają ciała przy wylogowaniu i nie widzą ciał, gdy są w środku.wł. / wył.wł.
Wake up onCharacter spawn (ai-core) lub PlayerLoaded export (spawn script). Zostaw wartość domyślną, chyba że skrypt spawnu wywołuje exports['ai-exitsleeping']:PlayerLoaded() po własnym spawnie.Character spawn (ai-core)

Carrying and vehicles: gracze mogą nosić śpiące ciało, posadzić je na miejscu w pojeździe i z powrotem wyjąć.

UstawienieCo zmieniaJednostkaDomyślnie
Interaction distanceJak blisko musi stać gracz, aby nieść ciało lub sięgnąć pojazdu. 1-10, co 0,5.m2.5
Server distance checkSerwer odrzuca noszenie lub akcję z pojazdem z większej odległości (przeciw oszustom). 2-30, co 0,5.m6
Position checkJak często serwer aktualizuje, gdzie są noszone ciała i ciała w pojazdach, aby właściciel obudził się we właściwym miejscu. 1-60.s5
Debug messagesWypisuje w konsolach serwera i klienta, co robi skrypt.wł. / wył.wył.

Zakładka: Animations

Pozycje leżące śpiących ciał i animacja noszenia. Każda animacja to Animation dictionary, Animation name i Animation flags (flagi animacji GTA, 0-65535: 1 pętla, 49 pętla górnej części ciała podczas chodzenia, 33 pętla przy przyczepieniu).

KartaCo zmieniaDomyślnie
Lying posesKażde ciało losuje jedną z nich; każdy gracz widzi tę samą pozycję. Do 20.amb@world_human_bum_slumped@male@laying_on_left_side@idle_a / idle_b, flagi 1
Carrying playerAnimacja gracza, który niesie ciało.missfinale_c2mcs_1 / fin_c2_mcs_1_camman, flagi 49
Carried bodyAnimacja ciała na ramieniu niosącego.nm / firemans_carry, flagi 33

Carry position: gdzie noszone ciało jest umieszczone na niosącym.

UstawienieCo zmieniaJednostkaDomyślnie
Bone indexIndeks kości niosącego, do której przyczepione jest ciało (0 = korzeń peda).0
Offset rightOd -5 do 5, co 0,01.m0.2
Offset forwardOd -5 do 5.m0.15
Offset upOd -5 do 5.m0.63
Rotation XOd -360 do 360, co 0,5.°0.5
Rotation YOd -360 do 360.°0.5
Rotation ZOd -360 do 360.°5

Zakładka: Hidden areas

Miejsca, w których nie jest pokazywane żadne śpiące ciało, takie jak wnętrza lub strefy bezpieczne. Jeden rekord na obszar (New area / Delete area). Usunięcie obszaru sprawia, że śpiące ciała w środku znowu są widoczne. Żaden nie jest gotowy domyślnie.

Area: gracze, którzy wylogują się w środku, nie zostawiają ciała; ciała odłożone w środku są ukryte (właściciel i tak się tam budzi).

UstawienieCo zmieniaJednostkaDomyślnie dla nowych
NameNazwa obszaru.
ShapeBall, Cylinder lub Polygon: kula lub walec wokół punktu środkowego albo wielokąt z punktów wierzchołków.Ball
CentreŚrodek obszaru (kula i walec).punkt
RadiusMetry od środka do krawędzi (kula i walec). 1-2000.m25
HeightIle metrów w górę i w dół sięga obszar (walec: od środka; wielokąt: poza jego najniższy i najwyższy wierzchołek). 0.5-1000.m10

Polygon corners (tylko wielokąt): dodaj wierzchołek na każdym zakręcie granicy, po kolei (wolna kamera lub twoja pozycja); wielokąt potrzebuje co najmniej trzech, do 64. Kształt jest rysowany w świecie, gdy to pole jest na ekranie.

Komendy

KomendaArgumentyKtoCo robi
/exitsleeptestbrakadministratorzy (ai.admin)Przełącz własne śpiące ciało (test): tworzy ciało tam, gdzie stoisz, albo je usuwa.

Klawisze

Domyślny klawiszCo robi
XOdłóż noszonego śpiącego gracza

Znane ograniczenia

  • Ciała istnieją tylko we wspólnym świecie: we wnętrzu z instancją noszone ciało jest odkładane w ostatniej pozycji na zewnątrz.
  • Po restarcie serwera każde ciało leży na ziemi w ostatniej zapisanej pozycji (stany noszenia i siedzenia nie są zachowywane).
  • Gracz, który obudzi się w ciągu kilku sekund od zniknięcia niosącego lub pojazdu, może pojawić się w ostatnim zapisanym miejscu (odstęp Position check).

Na tej stronie