- Dokumentacja
- Funkcje wspólne
Funkcje wspólne
Funkcje, które działają po obu stronach. Możesz ich używać w skryptach serwera, klienta i shared.
Blipy 28
areSprawdza, czy ikony graczy na mapie są włączone.Player Blips Visible createTworzy blip, czyli ikonę na radarze i mapie, w podanym punkcie.Blip createTworzy blip przyczepiony do elementu. Blip porusza się razem z nim, na przykład z pojazdem albo graczem.Blip Attached To getZwraca kolor blipa.Blip Color getZwraca numer ikony blipa.Blip Icon getZwraca nazwę blipa ustawioną przez setBlipName alboBlip Name false, gdy blip nie ma własnej nazwy.getZwraca kolejność rysowania blipa. Blipy z wyższą wartością są rysowane na wierzchu.Blip Ordering getZwraca rozmiar blipa.Blip Size getZwraca zasięg, z jakiego blip widać na radarze.Blip Visible Distance getZwraca nazwę ikony z legendy mapy.Map Blip Name getZwraca całą legendę mapy: wszystkie nazwy ikon ustawione przez skrypty.Map Blip Names getZwraca wszystkie napisy miejsc dodane przez skrypty na mapie.Map Zone Names getZwraca kolor ikony gracza na mapie.Player Blip Color getZwraca rozmiar ikony gracza na mapie (0-25).Player Blip Size getZwraca punkt GPS gracza, czyli cel, który zaznaczył na mapie albo ustawił skrypt. Na serwerze to ostatni punkt potwierdzony przez grę gracza.Player Waypoint isSprawdza, czy ikona gracza jest widoczna na mapie.Player Blip Visible removeZdejmuje graczowi punkt GPS.Player Waypoint setZmienia kolor blipa. Kolor widać na zwykłym kwadracie (ikonaBlip Color 0).setZmienia ikonę blipa.Blip Icon setUstawia nazwę jednego blipa, widoczną w dymku po najechaniu na niego na mapie ESC. Pusta nazwa (alboBlip Name nil) wraca do nazwy ikony z addMapBlipName. Najwyżej 64 bajty.setUstawia kolejność rysowania blipa. Blip z wyższą wartością przykrywa inne.Blip Ordering setZmienia rozmiar blipa (kwadratu, ikonaBlip Size 0).setUstawia, z jakiej odległości blip jest widoczny na radarze.Blip Visible Distance setZmienia kolor ikony gracza na mapie (domyślnie czerwony). Na serwerze kolor widzą wszyscy, u klienta zmiana dotyczy tylko tego gracza.Player Blip Color setZmienia rozmiar ikony gracza na mapie.Player Blip Size 0ukrywa ikonę.setWłącza albo wyłącza ikony wszystkich graczy na mapie. Domyślnie są włączone.Player Blips Visible setPokazuje albo chowa ikonę jednego gracza na mapie.Player Blip Visible setUstawia graczowi punkt GPS gry: cel na radarze i mapie, a w pojeździe także trasę po drogach. Grę potwierdza zdarzeniemPlayer Waypoint onPlayerWaypointSet.
Bronie 7
getZwraca slot ekwipunku (0-12), do którego trafia broń o podanym ID.Slot From Weapon getZwraca ID broni na podstawie jej nazwy. Wielkość liter nie ma znaczenia, a tekst z samą liczbą (Weapon IDFrom Name "30") też działa.getZwraca listę wszystkich ID broni używanych w grze, posortowaną rosnąco.Weapon IDs getZwraca ID modelu, który postać trzyma w ręce dla danej broni.Weapon Model From ID getZwraca nazwę broni z GTA San Andreas dla podanego ID (0-46).Weapon Name From ID getZwraca listę ID broni należących do slotu ekwipunku.Weapons In Slot isSprawdza, czy ID odpowiada broni używanej w grze (0-46, bez nieużywanych numerów).Valid Weapon ID
Czat i konsola 7
clearCzyści okno czatu. Na serwerze czyści czat jednemu graczowi albo, bez argumentu, wszystkim.Chat Box isSprawdza, czy okno czatu jest widoczne. Na serwerze podajesz gracza.Chat Visible outputPisze wiadomość na czacie. Na serwerze do jednego gracza albo do wszystkich, u klienta na czacie lokalnego gracza.Chat Box outputWypisuje linię w konsoli F8. Na serwerze bez celu linia trafia do wszystkich graczy.Console outputDodaje wpis do dziennika debugowania (Debug String /debugscript). Poziomy 1-3 dopisują plik i linię skryptu.printWypisuje 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.showPokazuje albo chowa okno czatu. Na serwerze podajesz gracza (alboChat rootdla wszystkich).
Cząsteczki 10
burstWypuszcza od razu podaną liczbę cząsteczek, niezależnie odParticles rate: wybuch, trafienie, salwa konfetti.createEfekt 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.Particle Effect createTworzy 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 elementParticle Emitter "particle", który da się przesuwać, przyczepiać i niszczyć jak każdy inny. Wywołany na serwerze tworzy emiter widoczny dla wszystkich graczy.getZwraca kopię ustawień emitera. Można ją zmienić i podać z powrotem doParticle Emitter Settings setParticleEmitterSettings.getZwraca gotowe efekty cząsteczek jako tabelęParticle Presets { nazwa = opis }.getZwraca kopię pełnych ustawień gotowego efektu, jako punkt wyjścia do własnego.Particle Preset Settings getZwraca nazwy wbudowanych kształtów cząsteczek (poleParticle Sprites sprite).isSprawdza, czy emiter wypuszcza nowe cząsteczki.Particle Emitter Enabled setWłącza albo wstrzymuje wypuszczanie nowych cząsteczek. Wyłączony emiter pozwala dożyć cząsteczkom już wypuszczonym; ponowne włączenie zaczyna od nowa czasParticle Emitter Enabled duration.setZmienia wybrane ustawienia działającego emitera (te same pola co wParticle Emitter Settings createParticleEmitter), reszta zostaje. Żywe cząsteczki od razu dostają nowy kolor i wielkość.
Elementy 58
attachPrzyczepia 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. Dotyczy to też obiektów z modelem z pliku (np. tablic na autobusie).Elements createTworzy element własnego typu, na przykładElement "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.destroyUsuwa element razem z jego dziećmi. Na kliencie usuwa też elementy GUI.Element detachOdczepia element od tego, do którego był przyczepiony.Elements getZwraca elementy przyczepione do elementu.Attached Elements getZwraca odległość między dwoma elementami w metrach. ZDistance Between Elements flat = truepomija różnicę wysokości.getZwraca przezroczystość elementu (0 niewidoczny, 255 pełny).Element Alpha getZwraca przesunięcie i obrót przyczepionego elementu względem tego, do którego go przyczepiono.Element Attached Offsets getZwraca element, do którego ten jest przyczepiony.Element Attached To getZwraca dane przyczepienia elementu do kości postaci.Element Bone Attachment getZwraca przesunięcie elementu przyczepionego do kości.Element Bone Position Offset getZwraca obrót elementu przyczepionego do kości (w stopniach).Element Bone Rotation Offset getSzuka elementu po identyfikatorze tekstowym (z mapyElement By ID .mapalbo zsetElementID).getSprawdza, czy element ma włączone kolizje (domyślnie tak).Element Collisions Enabled getZwraca wartość danych elementu pod kluczem. Dane ustawiaElement Data setElementData; dane rozsyłane widać też na kliencie.getZwraca wymiar elementu. Elementy w różnych wymiarach się nie widzą.Element Dimension getZwraca zdrowie elementu: postaci 0-100 (do 176 z pełną wytrzymałością), pojazdu 0-1000 (poniżej 250 się pali).Element Health getZwraca identyfikator tekstowy elementu.Element ID getZwraca numer interioru elementu (0 to świat zewnętrzny).Element Interior getZwraca macierz elementu (pozycja i obrót). Domyślnie tablicę 4x4, a zElement Matrix legacy = falseobiektMatrix.getZwraca model elementu. Dla graczaElement Model -1oznacza CJ-a w stroju wybranym w launcherze, a0czystego CJ-a.getZwraca pozycję elementu w świecie: gracza, pojazdu, obiektu albo znacznika.Element Position getZwraca promień bryły elementu (domyślny dla typu, gdy nie został ustawiony).Element Radius getZwraca obrót elementu w stopniach.Element Rotation getZwraca wszystkie elementy danego typu, opcjonalnie tylko pod wskazanym elementem (np.Elements By Type resourceRoot).getZwraca prędkość elementu w km/h, mph albo m/s.Element Speed getZwraca elementy w strefie kolizji, opcjonalnie tylko jednego typu.Elements Within Col Shape getZwraca elementy, które są teraz w znaczniku (marker): gracze, pojazdy, postacie, obiekty, pickupy i inne znaczniki. ZnacznikElements Within Marker checkpointto koło bez limitu wysokości, pozostałe typy to kula o promieniu równym rozmiarowi znacznika. Można ograniczyć wynik do jednego typu.getZwraca elementy w promieniu od punktu, opcjonalnie tylko danego typu i wymiaru.Elements Within Range getZwraca typ elementu, np.Element Type "player","vehicle","ped","object". Elementy GUI mają typy z przedrostkiem"gui-".getZwraca prędkość elementu. Jednostka: 1 to 50 m/s, więc km/h to długość wektora razy 180.Element Velocity hasSprawdza, czy element ma ustawioną wartość pod kluczem. W odróżnieniu odElement Data getElementDataodróżnia brak wartości odfalse.isSprawdza, czy wartość jest istniejącym elementem. Używaj przed działaniem na elemencie, który mógł zostać usunięty.Element isSprawdza, czy element jest przyczepiony do innego.Element Attached isSprawdza, czy element jest przyczepiony do kości postaci.Element Attached To Bone isSprawdza, czy element jest zamrożony (nie rusza się).Element Frozen isSprawdza, czy element jest w wodzie.Element In Water isSprawdza, czy element jest w promieniu od innego elementu albo od punktu. Dla elementu-celu sprawdza też wymiar i wnętrze.Element Near isSprawdza, czy element jest teraz w strefie kolizji.Element Within Col Shape isSprawdza, czy element jest w znaczniku.Element Within Marker removeUsuwa wartość danych elementu pod kluczem (u wszystkich graczy).Element Data setUstawia przezroczystość elementu (0 niewidoczny, 255 pełny). Działa na graczach, pedach, obiektach i pojazdach (pojazd razem z kołami).Element Alpha setZmienia przesunięcie i obrót przyczepionego elementu.Element Attached Offsets setZmienia przesunięcie elementu przyczepionego do kości, bez ponownego przyczepiania. Element od razu przesuwa się względem kości.Element Bone Position Offset setZmienia obrót elementu przyczepionego do kości, bez ponownego przyczepiania.Element Bone Rotation Offset setWłącza albo wyłącza kolizje elementu.Element Collisions Enabled setZapisuje wartość pod kluczem w elemencie. Domyślnie wartość trafia do wszystkich graczy, co wywołujeElement Data onElementDataChange.setPrzenosi element do innego wymiaru. Elementy w różnych wymiarach się nie widzą.Element Dimension setZamraża albo odmraża element. Zamrożony element nie rusza się.Element Frozen setUstawia zdrowie elementu.Element Health 0zabija gracza albo NPC i wywołujeonPlayerWasted/onPedWasted.setUstawia identyfikator tekstowy elementu.Element ID setPrzenosi element do interioru. Gracz w interiorze widzi tylko budynki i elementy z tego samego numeru.Element Interior setUstawia pozycję i obrót elementu z macierzy (tablica 4x4 albo obiektElement Matrix Matrix).setZmienia 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.Element Model setPrzenosi 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,Element Position getElementPositionod 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ę wonClientPreRenderstoi w nowym miejscu na tym samym obrazie.setUstawia obrót elementu w stopniach. Na kliencie obraca własną postać w tej samej klatce (bez teleportu) oraz obiekty klienta.Element Rotation setUstawia prędkość elementu z zachowaniem kierunku ruchu. Gdy element stoi, rusza go do przodu.Element Speed setUstawia 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.Element Velocity
Gracze 19
getZwraca gracza, na którego komputerze działa skrypt. To samo daje zmiennaLocal Player localPlayer. Na serwerze zwracafalse.getSzuka gracza po nicku. Na kliencie wielkość liter nie ma znaczenia.Player From Name getZwraca pieniądze gracza. Stan trzyma serwer, licznik w grze go tylko pokazuje.Player Money getZwraca nick gracza.Player Name getZwraca tekst tabliczki z nickiem (domyślnie nick).Player Nametag Text getZwraca ping gracza w milisekundach.Player Ping getZwraca wszystkich graczy. To samo coPlayers getElementsByType("player").getZwraca poziom poszukiwania gracza (0-6 gwiazdek). Gwiazdki nadaje tylko serwer, gra sama ich nie daje.Player Wanted Level getZwraca wszystkie ustawienia rozmowy głosowej serwera jako tabelę. Klucze:Voice Settings 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) imutedByDefault(nowi gracze wyciszeni). Klient dostaje tę samą tabelę co serwer.isSprawdza, czy podpowiedzi i poradniki z gry są u gracza włączone (Player Help Texts Enabled setPlayerHelpTextsEnabled). U klienta sprawdza lokalnego gracza.isSprawdza, czy składnik interfejsu gry jest u gracza widoczny (według ustawień zPlayer Hud Component Visible setPlayerHudComponentVisible). Składnik bez własnego ustawienia ma stan"all".isSprawdza, czy tabliczka z nickiem gracza jest widoczna.Player Nametag Showing isSprawdza, 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.Player Talking isSprawdza, czy gracz jest wyciszony na czacie głosowym: przezPlayer Voice Muted setPlayerVoiceMutedalbo, jeśli tej funkcji nie użyto, przez ustawienie serweramutedByDefault. Działa też u klienta.isSprawdza, czy gracz widzi po śmierci ekran WASTED z gry.Player Wasted Screen Enabled isSprawdza, czy rozmowa głosowa jest na serwerze włączona.Voice Enabled setWłą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 alboPlayer Help Texts Enabled root(wszyscy), u klienta zmiana dotyczy tylko tego gracza.setPokazuje 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.Player Hud Component Visible "all"dotyczy wszystkich naraz (razem z radarem i celownikiem) i kasuje wcześniejsze ustawienia pojedynczych składników. Składniki:ammo,armour(alboarmor),breath,clock,health,money,weapon,wanted,area_name,vehicle_name,radio,radar,crosshair,all."crosshair"chowa sam celownik, również snajperki i aparatu. Ustawienie zostaje po śmierci i odrodzeniu; po ponownym wejściu na serwer ustaw je od nowa (np. wonPlayerJoin).setWłącza ekran WASTED z gry (napis i czerwona zasłona) po śmierci gracza. Domyślnie wyłączony.Player Wasted Screen Enabled
Kamera 7
fadeŚciemnia albo rozjaśnia ekran w podanym kolorze. Przydaje się przy teleportach, wejściu do gry i przerywnikach.Camera getZwraca interior, w którym rysowana jest kamera.Camera Interior getZwraca pozycję kamery, punkt, na który patrzy, przechylenie i pole widzenia.Camera Matrix getZwraca element, za którym podąża kamera, alboCamera Target false, gdy kamera stoi w miejscu.setUstawia interior kamery, czyli które budynki są rysowane wokół. Używaj razem zCamera Interior setCameraMatrixprzy podglądzie wnętrz.setUstawia kamerę w punkcie i kieruje ją na cel. Kamera przestaje podążać za graczem do czasuCamera Matrix setCameraTarget.setUstawia kamerę za graczem albo każe jej śledzić inny element (np. przy obserwowaniu).Camera Target
Matematyka, wektory i macierze 8
findZwraca kąt obrotu z punktu 1 w stronę punktu 2, w stopniach, w tej samej konwencji coRotation setElementRotation(0 = północ).getZwraca 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).Angle Difference getZamienia kierunek (heading, jak obrót Z w GTA) i pochylenie w stopniach na wektor kierunku o długości 1.Direction From Rotation getZwraca punkt oddalony odPoint From Distance Rotation (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.interpolateWyznacza kąt pośredni między dwoma kątami, idąc krótszą drogą. Wynik jest w zakresie 0-360.Angle isSprawdza, czy wartość jest macierzą (obiektemMatrix Matrix).isSprawdza, czy wartość jest wektorem (Vector Vector2,Vector3alboVector4).math.clampObcina liczbę do zakresu odlodohi.
Narzędzia 14
formatZwraca datę jako tekst według maski. ObsługujeDate %d,%m,%Y,%y,%H,%M,%Si%%. Bez znacznika czasu bierze aktualny czas.formatZamienia liczbę sekund na czytelny zapis:Duration "45s","3m 05s","1h 02m 05s". Ułamki są obcinane, ujemne dają"0s".formatZapisuje liczbę całkowitą z separatorem co trzy cyfry (domyślnie spacja): 1500000 →Number "1 500 000". Ułamki są obcinane.fromcolorRozkłada kolor w postaci jednej liczby (np. ztocolor) na składowe r, g, b, a - odwrotnośćtocolor.getZwraca, czy tryb deweloperski jest włączony (Development Mode setDevelopmentMode).getZwracaTick Count Seconds getTickCount()w sekundach, z ułamkiem - wygodniejsze przy liczeniu prędkości i animacji.isZwraca, czy okienko postępu pobierania jest włączone.Transfer Box Visible setWłącza tryb deweloperski. Na kliencie drugi argument odblokowuje narzędzia deweloperskie stron w przeglądarkach skryptów. Na serwerze zapisuje flagę odczytywaną przezDevelopment Mode getDevelopmentMode(np. do włączania komend testowych).setPokazuje 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.Transfer Box Visible utfZwraca znak o podanym kodzie Unicode, np.Char utfChar(261)→"ą".utfZwraca kod Unicode pierwszego znaku tekstu, np.Code utfCode("ą")→ 261.utfZwraca długość tekstu w znakach (a nie bajtach). Ważne dla polskich liter:Len #"żółw"to 7 bajtów, autfLen("żółw")to 4.utfZwraca pozycję bajtową w tekście przesuniętą o podaną liczbę znaków od pozycji startowej - przydaje się, gdy trzeba łączyć funkcje UTF zSeek string.find.utfWycina 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 doSub string.sub.
Obiekty 10
createTworzy obiekt z modelu gry San Andreas (np. 1337 kosz, 3095 rampa, 1225 beczka wybuchowa) albo modelu podmienionego przezObject engineReplaceModel. Obiekt widzą wszyscy gracze w tym samym wnętrzu i wymiarze; stoi w miejscu i ma kolizję. ZisBreakable = truegra traktuje go jak zniszczalny i można go rozbić.getZwraca 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 polemMap Objects moved.getZwraca skalę obiektu w trzech osiach (domyślnie 1, 1, 1).Object Scale isZwraca, czy synchronizacja obiektów mapy jest włączona.Map Object Sync Enabled isZwraca, czy obiekt można rozbić (Object Breakable breakObject). Domyślnietrue, chyba że zmieniono to przezsetObjectBreakable.isSprawdza, czy obiekt jest właśnie przesuwany przezObject Moving moveObject.movePł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:Object "Linear","InQuad","OutQuad","InOutQuad","OutInQuad","SineCurve","CosineCurve".setUstawia, czy obiekt można rozbić przezObject Breakable breakObject.setZmienia wielkość obiektu (1 = normalna, 2 = dwa razy większy). Gra stosuje jedną skalę dla wszystkich osi - liczy się pierwsza liczba.Object Scale stopZatrzymuje ruch rozpoczęty przezObject moveObject; obiekt zostaje tam, gdzie akurat był.
Ogień 2
createRozpala 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.Fire extinguishGasi 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.Fire
Operacje na bitach 12
bitIloczyn bitowy (AND) dwóch lub więcej liczb. Liczby są traktowane jako 32-bitowe bez znaku.And bitPrzesunięcie arytmetyczne w prawo: zachowuje najstarszy bit (znak liczby 32-bitowej).Ar Shift bitWycinaExtract countbitów zaczynając od pozycjistart(0 to najmłodszy bit). Pozycja i długość muszą mieścić się w 32 bitach.bitObraca bity w lewo: bity wychodzące z lewej wracają z prawej strony.LRotate bitPrzesuwa bity w lewo o podaną liczbę miejsc. Bity wychodzące poza 32 znikają.LShift bitNegacja bitowa (NOT) liczby 32-bitowej.Not bitSuma bitowa (OR) dwóch lub więcej liczb.Or bitWstawia wartośćReplace replacewcountbitów od pozycjistart, zostawiając pozostałe bity bez zmian.bitObraca bity w prawo: bity wychodzące z prawej wracają z lewej strony.RRotate bitPrzesunięcie logiczne w prawo (bez znaku): z lewej wchodzą zera.RShift bitSprawdza, czy iloczyn bitowy wszystkich argumentów jest różny od zera, czyli czy mają wspólny ustawiony bit.Test bitRóżnica symetryczna (XOR) dwóch lub więcej liczb. Przydaje się do przełączania flag.Xor
Pickupy 5
createTworzy 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 wtedyPickup onPickupHit(cancelEvent()w nim blokuje zebranie), a pickup chowa się na czasrespawnIntervali wraca. Znaczenieamountzależy od typu: zdrowie lub pancerz do dodania, numer broni albo numer modelu.getZwraca liczbę naboi w pickupie z bronią.Pickup Ammo getZwraca liczbę punktów zdrowia albo pancerza, które daje pickup typu 0 lub 1.Pickup Amount getZwraca typ pickupu: 0 zdrowie, 1 pancerz, 2 broń, 3 własny model.Pickup Type getZwraca numer broni pickupu typu 2.Pickup Weapon
Pliki 16
fileZamyka plik i zapisuje bufor na dysk. Uchwyt przestaje być ważny.Close fileKopiuje plik pod nową ścieżkę. Istniejący plik docelowy zostanie nadpisany tylko zCopy overwrite = true.fileTworzy 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).Create fileUsuwa plik. Plik nie może być w tym czasie otwarty.Delete fileSprawdza, czy plik o tej ścieżce istnieje.Exists fileZapisuje na dysk dane czekające w buforze pliku, bez zamykania go. Przydaje się przy logach, które mają przetrwać awarię.Flush fileCzyta cały plik jednym wywołaniem. Przyjmuje uchwyt pliku albo ścieżkę (wtedy sama otwiera i zamyka plik).Get Contents fileZwraca ścieżkę otwartego pliku (taką, jak przy otwieraniu).Get Path fileZwraca bieżącą pozycję w pliku (w bajtach od początku).Get Pos fileZwraca rozmiar pliku w bajtach.Get Size fileSprawdza, czy pozycja w pliku doszła do końca.Is EOF fileOtwiera 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 przezOpen fileCreate), potem plików<file>przysłanych przez serwer - te są tylko do czytania;":inny/plik"wskazuje plik innego zasobu. Po pracy zamknij plik przezfileClose.fileCzyta podaną liczbę bajtów od bieżącej pozycji i przesuwa pozycję. Na końcu pliku zwraca pusty tekst. Dane binarne są zwracane bez zmian.Read fileZmienia nazwę pliku albo przenosi go w obrębie folderu zasobu.Rename fileUstawia pozycję w pliku, od której będzie następny odczyt lub zapis (np.Set Pos fileGetSize= dopisywanie na końcu).fileZapisuje teksty od bieżącej pozycji (kolejne argumenty jeden po drugim) i przesuwa pozycję. Obsługuje dane binarne.Write
Pojazdy 82
addMontuje 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ę dajeVehicle Upgrade 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 przezengineRequestModel.areSprawdza, czy reflektory pojazdu świecą, czyli czy ustawionoVehicle Lights On setVehicleOverrideLights(pojazd, 2). Działa po obu stronach.calculateLiczy, jakie pola handlingu dałby dany silnik w danym modelu, bez montowania go. Zwraca to samo, coEngine Handling setVehicleEnginewpisałby do pojazdu, więc nadaje się do podglądu w sklepie z silnikami.createTworzy pojazd w świecie: model, pozycja, obrót i tekst tablicy rejestracyjnej.Vehicle fixNaprawia 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.Vehicle getZwraca nazwę wpisu w handling.cfg, z którego korzysta model, np. 411 →Handling Line Name INFERNUS, 596 →POLICE_LA. Nowe modele zengineRequestModelkorzystają z wpisu modelu bazowego.getJakModel Compatible Upgrades getVehicleCompatibleUpgrades, ale dla numeru modelu, bez potrzeby tworzenia pojazdu. Przydaje się w sklepie, który pokazuje części przed zakupem auta.getZwraca fabryczne miejsce fotela z gry dla modelu (dla nowych modeli - modelu bazowego), bez zmian skryptów.Model Default Seat Position getZwraca aktualne miejsce fotela dla modelu oraz źródło tych danych:Model Seat Position script(ustawione skryptem),dummy(z punktu pomocniczego modelu) albodefault(fabryczne z gry).getZnajduje 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.Nearest Vehicle Palette Color getZwraca fabryczny handling modelu prosto z plików gry (handling.cfg Definitive Edition), bez żadnych zmian skryptów. Działa po obu stronach.Original Handling getZwraca kolory pojazdu. Bez drugiego argumentu daje cztery numery z palety gry (gdy auto ma kolory RGB, numery są najbliższymi kolorami palety). ZVehicle Color rgb = truezwraca dwanaście liczb: r, g, b kolejno dla kolorów 1-4, dokładnie takie, jakie widać w grze.getZwraca 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.Vehicle Compatible Upgrades getZwraca części modelu pojazdu jako tabelę nazwa → czy widoczna. Na kliencie dla modelu z pliku (Vehicle Components engineReplaceModel) to pełna lista ramek .dff (karoseria, drzwi, maska, zderzaki, koławheel_*_dummy, warianty autora), dla aut z gry tylko części zmienione skryptem. Na serwerze tylko części zmienione skryptem.getSprawdza, czy nazwana część modelu pojazdu jest widoczna. Na kliencie uwzględnia też lokalne ustawienia tego gracza.Vehicle Component Visible getZwraca kierowcę pojazdu (osobę na fotelu 0) alboVehicle Controller false, gdy nikt nie prowadzi.getNa serwerze: numer biegu zapisany przezVehicle Current Gear setVehicleCurrentGear(domyślnie 0). W kliencie: aktualny bieg auta liczony jak skrzynia SA z prędkości i handlingu (0 = wsteczny/luz, 1-5).getZwraca zabrudzenie karoserii pojazdu (0 czysta - 1 brudna).Vehicle Dirt Level getZwraca przebieg pojazdu w metrach. Serwer liczy go z ruchu kierowcy, teleporty się nie liczą. Klient widzi wartość zaokrągloną do 100 m.Vehicle Distance Travelled getZwraca stopień otwarcia drzwi ustawiony przezVehicle Door Open Ratio setVehicleDoorOpenRatio(0 = zamknięte, 1 = otwarte).getZwraca stan jednych drzwi pojazdu (0 zamknięte, 1 uchylone, 2 zamknięte i uszkodzone, 3 uchylone i uszkodzone, 4 urwane). Numeracja drzwi jak wVehicle Door State setVehicleDoorState.getZwraca silnik pojazdu: zamontowany przezVehicle Engine setVehicleEnginealbo, gdy żadnego nie montowano, silnik fabryczny wyliczony z danych gry (z polemfactory = true). Druga wartość to zużycie 0..1. Działa po obu stronach.getSprawdza, czy silnik pojazdu pracuje (ustawione przezVehicle Engine State setVehicleEngineState; zniszczenie pojazdu też gasi silnik).getZwraca silnik fabryczny modelu. Moc jest wyliczana z handlingu gry, a pozostałe dane (moment, pojemność, cylindry, masa) są realistycznym oszacowaniem, oznaczonym polemVehicle Factory Engine estimated = true. Daje punkt odniesienia dla systemów tuningu.getZwraca pełny handling pojazdu taki, jakiego używa gra: wartości fabryczne z handling.cfg, nadpisane ustawieniami modelu (Vehicle Handling setModelHandling), a na końcu zmianami tego pojazdu (setVehicleHandling,setVehicleEngine). Działa po obu stronach.getZwraca tylko te pola handlingu, które zmieniono dla tego konkretnego pojazdu (Vehicle Handling Overrides setVehicleHandlingisetVehicleEngine), bez wartości fabrycznych. Przydaje się do zapisania tuningu auta w bazie danych.getZwraca kolor światła reflektorów (domyślnie biały 255, 255, 255).Vehicle Head Light Color getZwraca próg zdrowia pojazdu ustawiony przez setVehicleHealthFloor (0 = brak progu).Vehicle Health Floor getZwraca stan kierunkowskazów: 0 wyłączone, 1 lewy, 2 prawy, 3 awaryjne. Działa po obu stronach.Vehicle Indicators getZwraca listę nazw wszystkich dwunastu lamp, które przyjmujeVehicle Lamp Names setVehicleLampState, w kolejności numerów 0-11 (odfront_leftdoindicator_rear_right). Grup (front,all…) lista nie zawiera.getZwraca stan lampy albo grupy lamp ustawiony przezVehicle Lamp State setVehicleLampState:'auto','on'albo'off'. Gdy lampy w grupie mają różne stany, zwraca'mixed'.getZwraca stan wszystkich dwunastu lamp pojazdu jako tabelę nazwa →Vehicle Lamp States 'auto'/'on'/'off'.getZwraca, czy lampa pojazdu jest cała (0) czy zbita (1). Numeracja jak wVehicle Light State setVehicleLightState.getZwraca 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 zwracaVehicle Max Passengers false.getZamienia nazwę pojazdu na numer modelu, bez względu na wielkość liter i spacje na brzegach, np.Vehicle Model From Name "infernus"→ 411. Rozpoznaje też nazwy nowych modeli zengineRequestModel. Idealne do komend typu/v infernus.getZwraca numery wszystkich modeli danego rodzaju, np. wszystkie łodzie albo helikoptery. Przydaje się do losowania pojazdu konkretnego typu.Vehicle Models Of Type getZwraca średnicę kół modelu ustawioną przezVehicle Model Wheel Size setVehicleModelWheelSize. Na kliencie bez nazwy grupy zwraca tabelę{ front_axle, rear_axle }.getZwraca nazwę pojazdu na podstawie jego modelu, np.Vehicle Name "Infernus","Landstalker". Dla nowego modelu zengineRequestModelzwraca nazwę nadaną przy rejestracji albo nazwę modelu bazowego. Działa po obu stronach.getZwraca nazwę pojazdu dla numeru modelu, np. 411 →Vehicle Name From Model "Infernus", bez tworzenia pojazdu. Dla numeru spoza 400-611, który nie jest nowym pojazdem, zwracafalse.getZwraca liczbę ładunków nitro zapisaną przezVehicle Nitro Count setVehicleNitroCount(domyślnie 0, -1 = bez końca).getZwraca poziom nitro zapisany przezVehicle Nitro Level setVehicleNitroLevel(domyślnie 1).getZwraca gracza albo postać siedzącą na wskazanym fotelu pojazdu. Fotel 0 to kierowca, 1 przedni pasażer, 2 i 3 tylne fotele.Vehicle Occupant getZwraca 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żywajVehicle Occupants pairs, nieipairs(fotel 0 nie jest indeksem tablicy).getZwraca wymuszony stan świateł: 0 bez wymuszenia, 1 zgaszone, 2 zapalone.Vehicle Override Lights getZwraca numer naklejki pojazdu: 0-2 albo 3, gdy pojazd nie ma naklejki. Działa po obu stronach.Vehicle Paintjob getZwraca 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.Vehicle Palette Color getZwraca stopień uszkodzenia elementu karoserii (0 cały - 3 mocno zniszczony). Numeracja jak wVehicle Panel State setVehiclePanelState.getZwraca 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.Vehicle Performance getZwraca tekst tablicy rejestracyjnej pojazdu.Vehicle Plate Text getZwraca tabelę odporności pojazdu ustawionych przez setVehicleProofs.Vehicle Proofs getSprawdza, czy syrena pojazdu jest włączona przezVehicle Sirens On setVehicleSirensOn. Działa po obu stronach.getZwraca kolor tylnych lamp (domyślnie 255, 0, 0).Vehicle Tail Light Color getZwraca rodzaj pojazdu (angielską nazwę):Vehicle Type Automobile,Bike,BMX,Quad,Monster Truck,Boat,Helicopter,Plane,Train,Trailer. Przyjmuje pojazd albo numer modelu.getZwraca rodzaj pojazdu dla numeru modelu (jakVehicle Type From Model getVehicleType). Nowy model zengineRequestModelma typ swojego modelu bazowego.getZwraca nazwy wszystkich rodzajów pojazdów, posortowane alfabetycznie.Vehicle Type Names getZwraca ID części zamontowanej w danym slocie tuningu albo 0, gdy slot jest pusty. Numery slotów 0-16 opisujeVehicle Upgrade On Slot getVehicleUpgradeSlotName.getZwraca listę ID wszystkich części tuningu zamontowanych w pojeździe. Działa po obu stronach.Vehicle Upgrades getZwraca numer slotu tuningu (0-16), do którego należy część.Vehicle Upgrade Slot getZwraca 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.Vehicle Upgrade Slot Name getZwraca nazwy wszystkich 17 slotów tuningu w kolejności numerów (pierwszy element = slot 0).Vehicle Upgrade Slot Names getZwraca dwa warianty wyglądu pojazdu (255 = brak). Działa po obu stronach.Vehicle Variant getZwraca mnożnik przyczepności kół pojazdu (iloczyn mnożników wszystkich zasobów, 1 = zwykła).Vehicle Wheel Grip getZwraca stan czterech kół pojazdu w kolejności: przednie lewe, tylne lewe, przednie prawe, tylne prawe (0 całe, 1 przebite, 2 odpadnięte).Vehicle Wheel States getZwraca przyciemnienie szyb pojazdu w procentach (0 = zwykłe szyby), a jeśli ustawiono kolor - także jego składniki r, g, b.Vehicle Window Tint isSprawdza, czy numer jest modelem pojazdu: 400-611 z gry albo nowy pojazd zarejestrowany przezValid Vehicle Model engineRequestModel.isSprawdza, czy pojazd jest wrakiem, czyli został zniszczony (Vehicle Blown blowVehiclealbo wybuch w grze) i jeszcze nie naprawiony ani odrodzony. Wraku nie da się prowadzić.isSprawdza, czy drzwi pojazdu są zamknięte przezVehicle Locked setVehicleLocked.isZwraca, czy nitro zostało włączone przezVehicle Nitro Activated setVehicleNitroActivated.isZwraca, czy nitro się ładuje.Vehicle Nitro Recharging isZwraca, czy pojazd stoi kołami na ziemi.Vehicle On Ground isSprawdza, czy lampka „TAXI” pojazdu jest zapalona. Działa po obu stronach.Vehicle Taxi Light On isZwraca, czy koło dotyka ziemi.Vehicle Wheel On Ground removeZdejmuje z pojazdu zamontowaną część tuningu. Zdjęcie nitro kasuje też zapisane ładunki nitro.Vehicle Upgrade setUstawia 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.Vehicle Color setPokazuje 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 (Vehicle Component Visible engineReplaceModel): warianty autora (spoiler_1,extra1…), drzwi, maska, zderzaki. Listę nazw dla danego pojazdu dajegetVehicleComponentspo stronie klienta.setWłą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; poVehicle Engine State setWorldSpecialPropertyEnabled("vehicle_engine_autostart", false)tak się nie dzieje i serwer RP może zrobić własny zapłon pod klawiszem albo komendą.setZmienia 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 alboVehicle Handling nil, żeby wrócić do handlingu fabrycznego (z uwzględnieniemsetModelHandling). Nazwy pól, lista:getHandlingFieldNames.setZmienia 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.Vehicle Head Light Color setZamyka 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ąść.Vehicle Locked setZmienia średnicę kół modelu pojazdu. Na kliencie zmienia koła pojazdów z własnym modelem (Vehicle Model Wheel Size engineReplaceModel) u tego gracza; koła aut z gry zostają bez zmian. Na serwerze tylko zapamiętuje wartość dla skryptów.setWymusza 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) ustawiaVehicle Override Lights setVehicleLampState.setZmienia 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.Vehicle Plate Text
Postacie 29
createTworzy 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, patrzPed setPedVariant) i należy do zasobu, który ją utworzył, więc znika razem z nim przystop. Opcjonalnie można od razu uczynić ją agresywną albo kazać jej zaatakować wybrany cel.getZwraca 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.Ped Ammo In Clip getZwraca blok i nazwę animacji, którą postać odtwarza (ustawionej przezPed Animation 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, zwracafalse.getZwraca 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.Ped Armor getZwraca 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.Ped Bone Position getZwraca element, na który NPC stale patrzy (ustawiony przezPed Focus 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, zwracafalse.getZwraca pojazd, w którym siedzi postać (jako kierowca albo pasażer). Gdy postać idzie pieszo, zwracaPed Occupied Vehicle false. To najprostszy sposób, żeby sprawdzić, czym jedzie gracz, i np. naprawić mu auto albo zmienić kolor.getZwraca 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, zwracaPed Occupied Vehicle Seat false. Przydaje się, gdy komenda ma działać tylko dla kierowcy.getZwraca 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.Ped Stat getZwraca 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.Ped Total Ammo getZwraca 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.Ped Weapon getZwraca listę wszystkich poprawnych numerów modeli postaci, czyli skinów, które można podać doValid Ped Models createPed,setElementModelalbospawnPlayer. Lista pomija numery, pod którymi gra nie ma pieszego. Domyślnie dołącza też nowe modele postaci dodane skryptem przezengineRequestModel. Przydaje się do losowania skina albo do budowy menu wyboru postaci.isSprawdza, czy gracz albo NPC jest nietykalny (Ped Damage Proof setPedDamageProof).isSprawdza, 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 dopieroPed Dead spawnPlayer.isZwraca wartość ustawioną przezPed Doing Gang Driveby setPedDoingGangDriveby. Domyślniefalse.isSprawdza, 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.Ped Ducked isSprawdza, czy postać siedzi w jakimkolwiek pojeździe (na dowolnym fotelu). ZwracaPed In Vehicle falsetakże w trakcie wsiadania, zanim postać zajmie fotel. Gdy potrzebujesz samego pojazdu, użyjgetPedOccupiedVehicle.isSprawdza, czy postać się pali. Na serwerze zwracaPed On Fire true, gdy skrypt ustawił to przezsetPedOnFirealbo 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.isSprawdza, czy gracz ma na sobie plecak odrzutowy. Stan pochodzi z gry gracza; przez 2 sekundy poPed Wearing Jetpack setPedWearingJetpackserwer zwraca wartość, którą właśnie ustawił, zanim gra potwierdzi zmianę.isSprawdza, czy podany numer modelu jest prawdziwym modelem postaci, którego można użyć wValid Ped Model createPed,setElementModelalbospawnPlayer. Uznaje modele z gry (0-311 poza pustymi numerami) oraz nowe postacie dodane przezengineRequestModel. Warto wywołać ją przed ustawieniem skina, który podał gracz w komendzie.reloadKaż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.Ped Weapon setOdtwarza animację na postaci. Animacja pochodzi z bloku animacji gry (np.Ped Animation ped,dancing,smoking) albo z pliku IFP wczytanego przezengineLoadIFP. 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 zwracafalse, bo jego wygląd przychodzi z jego gry.setPrzewija bieżącą animację postaci do wybranego miejsca (0 = początek, 1 = koniec). Na serwerze dotyczy animacji ustawionej przezPed Animation Progress setPedAnimationserwera 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ą.setZmienia prędkość odtwarzania bieżącej animacji postaci: 1 = normalnie, 0.5 = dwa razy wolniej, 0 = zatrzymana. Na serwerze dotyczy animacji zPed Animation Speed setPedAnimationserwera, na kliencie animacji z pliku IFP na postaci w tej grze.setRobi 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 (Ped Damage Proof isPedDamageProofpo obu stronach). Po stronie klienta działa tylko na NPC i tylko u tego gracza.setKaż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ąPed Enter Vehicle false). Po stronie serwera zapisuje zadanie postaci i wysyła wszystkim klientom zdarzenieonClientPedEnterRequest(postać, pojazd, fotel), które skrypt klienta może obsłużyć; sama postać na serwerze jeszcze nie podchodzi.setKaż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;Ped Focus nilprzywraca to, co ustawił serwer. Przydaje się dla sprzedawców, strażników i NPC w scenkach.setPodpala albo gasi postać. Gracz zaczyna płonąć w swojej grze naprawdę: widać ogień i traci zdrowie, aż ogień zgaśnie sam albo doPed On Fire setPedOnFire(gracz, false). Dla NPC wartość jest zapamiętywana dla skryptów.isPedOnFiregracza pokazuje, czy jego postać naprawdę płonie.setZakł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.Ped Wearing Jetpack
Pozostałe 53
attachPrzyczepia 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 wElement To Bone getBoneIDs(np. 1 miednica, 8 głowa, 25 prawa dłoń, 35 lewa dłoń).base64Dekoduje tekst base64 z powrotem do danych.Decode base64Koduje tekst albo dane binarne w base64 (np. obrazek do przesłania jako tekst).Encode createRobi 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łujeExplosion 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.decodeOdszyfrowuje, dekoduje albo rozpakowuje dane zString encodeString, także zrobione na innym serwerze. Przyaes128podajesz klucz iiv, przyrsaklucz prywatny, przyzlibformat można pominąć: gzip, zlib i raw są rozpoznawane po nagłówku. Znaki spoza alfabetubase64ibase32są pomijane. Działa na serwerze i u gracza.detachOdczepia element przyczepiony do kości przezElement From Bone attachElementToBone. Element wraca na swoją pozycję (tę zsetElementPosition), więc jeśli ma zostać w miejscu dłoni, ustaw mu pozycję przed odczepieniem.encodeSzyfruje, koduje albo kompresuje tekst. Działa na serwerze i u gracza. Algorytmy:String tea(surowe bajty TEA, bez base64),aes128(klucz dokładnie 16 znaków; zwraca też losowyiv, potrzebny do odszyfrowania),rsa(klucz publiczny zgenerateKeyPair),base64(warianturl),base32(alfabet Crypto++, warianthex= RFC 4648 base32hex),zlib(formatgzip,zlibalboraw, stopień 0-9, strategia). Przybase64,base32izlibtabela opcji może zostać pominięta. Z funkcją zwrotną wynik przychodzi do niej w następnej klatce, a funkcja zwracatrue.fromOdczytuje tekst JSON i zwraca wartość Lua. Tablica najwyższego poziomu (tak zapisujeJSON toJSON) rozpakowuje się na kilka wyników. Uszkodzony JSON dajenili ostrzeżenie z pozycją błędu.generateTworzy 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.Key Pair base64Encode.encodeString/decodeStringprzyjmują też klucze PEM. Rozmiar 512-8192 bitów (domyślnie 2048; u gracza wielokrotność 64). Z funkcją zwrotną klucze przychodzą do niej.getZwraca wysokość zapisaną przezAircraft Max Height setAircraftMaxHeight(domyślnie 800).getZwraca prędkość zapisaną przezAircraft Max Velocity setAircraftMaxVelocity(domyślnie 1.5).getZwraca wszystkie dane elementu ustawione przezAll Element Data setElementDatajako tabelę klucz -> wartość.getZwraca angielską nazwę części ciała po numerze z obrażeń (3-9):Body Part Name Torso,Ass,Left Arm,Right Arm,Left Leg,Right Leg,Head.getZwraca ustawienie zClouds Enabled setCloudsEnabled(domyślnietrue).getLiczy odległość między dwoma punktami na płaszczyźnie (bez wysokości).Distance Between Points2 D getLiczy odległość między dwoma punktami w przestrzeni.Distance Between Points3 D getZwraca wartość krzywej wygładzania dla postępu 0-1:Easing Value 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.getZwraca zasięg rysowania zapisany przezFar Clip Distance setFarClipDistance(domyślnie 800).getZwraca odległość mgły zapisaną przezFog Distance setFogDistance(domyślnie 100).getZwraca limit zapisany przezFPSLimit setFPSLimit(domyślnie 36).getZwraca prędkość gry ustawioną przezGame Speed setGameSpeed(domyślnie 1).getZwraca ustawienie zInterior Sounds Enabled setInteriorSoundsEnabled(domyślnietrue).getZwraca wysokość zapisaną przezJetpack Max Height setJetpackMaxHeight(domyślnie 100).getZwraca długość minuty zegara gry w milisekundach.Minute Duration getZwraca rozmiar księżyca zapisany przezMoon Size setMoonSize(domyślnie 3).getZwraca ustawienie zOcclusions Enabled setOcclusionsEnabled(domyślnietrue).getZwraca siłę deszczu zapisaną przezRain Level setRainLevel(domyślnie 0). Działa na serwerze i u klienta.getZwraca prawdziwą datę i godzinę serwera (albo komputera gracza) jako tabelę:Real Time second,minute,hour,monthday,month(0-11),year(lata od 1900),weekday(0 = niedziela),yearday,isdstitimestamp. Z argumentem rozkłada podany znacznik czasu.getZwraca korzeń drzewa elementów: wszystkie elementy serwera są jego dziećmi. To samo co zmiennaRoot Element root. Zdarzenia podpięte do niego przychodzą od wszystkich elementów.getZwraca liczbę milisekund od startu (zegar, który nie cofa się przy zmianie czasu systemowego). Do mierzenia odstępów: odejmij dwie wartości.Tick Count gettokZwraca jedną część tekstu (liczone od 1), dzieloną tak jak wsplit.hashLiczy skrót tekstu wybranym algorytmem:md5,sha1,sha224,sha256,sha384albosha512. Wynik jest szesnastkowy.inspectZamienia dowolną wartość na czytelny tekst: tabele są rozwijane, cykle wykrywane, a elementy pokazywane jakoelement:typ[id]. Przydaje się przy szukaniu błędów.interpolatePłynnie przechodzi od jednego trzyelementowego zestawu liczb do drugiego (np. pozycji albo koloru) według postępu 0-1 i krzywej jak wBetween getEasingValue. Przyjmuje też dwa wektoryVector3.iprintWypisuje wartości przezinspectdo konsoli debugowania. Kilka argumentów jest rozdzielonych spacjami.isSprawdza, czy kursor jest pokazany. U klienta: przez jakikolwiek zasób. Na serwerze: czy serwer pokazał go graczowi przezCursor Showing showCursor.isSprawdza, czy mapa pod ESC jest dostępna (ustawia ją serwer).Map Enabled isSprawdza, czy spowolnienie danego rodzaju jest włączone (Slow Motion Enabled "all"= oba).md5Liczy skrót MD5 tekstu (32 znaki szesnastkowe, wielkie litery). Nie używaj go do haseł; do nich jestpasswordHash.resetPrzywraca domyślny zasięg rysowania (800).Far Clip Distance restorePrzywraca wszystkie budynki i obiekty świata schowane przezAll World Models removeWorldModel. Na serwerze dotyczy wszystkich graczy, u klienta tylko tego, co schował ten klient.setUstawia zasięg rysowania świata. Dla zgodności z istniejącymi skryptami wartość jest zapamiętywana i zwracana przezFar Clip Distance getFarClipDistance, ale Trilogy Hub nie zmienia jeszcze zasięgu w grze.setUstawia, ile milisekund trwa jedna minuta zegara gry (domyślnie 1000, czyli doba gry trwa 24 minuty). Większa wartość = wolniej płynący dzień.Minute Duration setWłą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 (Occlusions Enabled getOcclusionsEnabled), żeby istniejące skrypty działały bez błędu.setWłącza albo wyłącza spowolnienie czasu z gry: przy kole wyboru broni (Slow Motion Enabled "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.sha256Liczy skrót SHA-256 tekstu (64 znaki szesnastkowe, wielkie litery).showPokazuje 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.Cursor splitDzieli tekst na części po separatorze i zwraca tablicę. Separator to napis (każdy jego znak dzieli tekst) albo kod znaku, np.32dla spacji. Puste części są pomijane.teaOdszyfrowuje tekst zDecode teaEncode(także z innych serwerów) tym samym kluczem. Zły klucz nie daje błędu, tylko inne bajty.teaSzyfruje 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żyjEncode encodeStringzaes128.tocolorSkłada kolor z czterech składowych w jedną liczbę ARGB, której używają funkcjedx.toZamienia 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, żebyJSON fromJSONodczytał je z powrotem. Tabela, która pojawia się drugi raz (także tabela zawierająca samą siebie), jest zapisywana jako odwołanie"^T^n", afromJSONodtwarza ją jako tę samą tabelę.utf8Druga nazwaLen utfLen: liczy znaki w tekście UTF-8 (polskie litery liczą się jako jeden znak, a nie dwa bajty).
Rysowanie (dx) 4
createTworzy stały napis 3D (elementWorld Label "worldlabel"), rysowany przez grę gracza bez kodu Lua w każdej klatce. Z serwera widzą go wszyscy, z klienta tylko ten gracz. Widać go tylko w zasięgu i w tym samym wymiarze i wnętrzu.getZwraca tekst napisu 3D.World Label Text setZmienia opcje napisu 3D (te same co wWorld Label Options createWorldLabel). Pominięte opcje zostają bez zmian,attachTo = falseodczepia napis.setZmienia tekst napisu 3D.World Label Text
Serwer 2
Silnik gry 5
engineZwalnia model zFree Model 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 wmodel-ids.json, chyba żeforgetName=true.engineZwraca numer modelu po nazwie. Na serwerze znajduje nowe modele z nazwą (Get Model IDFrom Name engineRequestModel) i pojazdy; u klienta także modele gry po nazwie.engineZwraca nazwę modelu po numerze: nowego modelu z nazwą albo pojazdu.Get Model Name From ID engineZwraca model rodzica dla modelu zGet Model Parent engineRequestModel(false, gdy to nie jest taki model).engineTworzy nowy model pod nowym numerem, wspólny dla wszystkich graczy (także tych, którzy wejdą później). Obiekt (Request Model "object"/"timed-object", rodzic domyślnie 1337) dostaje numer z puli 18631-19999 i jest kopią rodzica; wygląd i kolizję dająengineReplaceModeliengineReplaceCOL. 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 dajeengineReplaceModelw skrypcie klienta. Trzeci argument to konkretny numer albo nazwa (także dla obiektów): ta sama nazwa daje zawsze ten sam numer (zapis wmodel-ids.jsonserwera), 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.
Strefy kolizji 10
createTworzy strefę kolizji w kształcie koła na mapie - bez ograniczenia wysokości (obejmuje wszystko nad i pod kołem).Col Circle createTworzy 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ę.Col Cuboid createTworzy 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 ustawiaCol Polygon setColPolygonHeight.createTworzy prostokątną strefę kolizji od rogu (x, y) - bez ograniczenia wysokości. Rozmiar podaje się w metrach na osi X i Y.Col Rectangle createTworzy strefę kolizji w kształcie kuli. Strefa jest niewidoczna; gdy gracz do niej wejdzie lub wyjdzie, wywołuje sięCol Sphere onColShapeHit/onColShapeLeave(na serwerze) alboonClientColShapeHit/onClientColShapeLeave(na kliencie). Strefę można przyczepić do elementu (attachElements), żeby się z nim przesuwała.createTworzy strefę kolizji w kształcie walca: koło o promieniuCol Tube radiusod wysokościzw górę oheightmetrów.getZamienia kod koloruColor From String "#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.getZwraca rodzaj strefy kolizji. Na kliencie liczba: 0 koło, 1 prostopadłościan (takżeCol Shape Type createColBox/createColCube), 2 kula, 3 prostokąt, 4 wielokąt, 5 walec. Na serwerze nazwa:"circle","cuboid","sphere","rectangle","polygon","tube".isSprawdza, czy punkt (x, y, z) leży w strefie. Nie wymaga, żeby ktoś w niej stał - liczy samą geometrię.Inside Col Shape setOgranicza strefę wielokątną w pionie: wykrywa tylko między wysokościąCol Polygon Height flooriceil(np. jedno piętro budynku).false, falseusuwa ograniczenie. Kolejność liczb nie ma znaczenia.
Świat 53
areZwraca wartość zapisaną przezTraffic Lights Locked setTrafficLightsLocked(domyślniefalse).clearUsuwa linię zPlayer Route Line setPlayerRouteLine. Mapa ESC wraca do trasy GPS gry.getZwraca wartość zBirds Enabled setBirdsEnabled(domyślnietrue).getZwraca wartość zBlur Level setBlurLevel(domyślnie 36).getZwraca nazwę regionu mapy w punkcie (City Name "Los Santos","San Fierro","Las Venturas","Red County","Flint County","Whetstone","Bone County","Tierra Robada"); to samo cogetZoneName(x, y, z, true).getZwraca filtr koloru ustawiony przezColor Filter setColorFilter. U klienta zwraca filtr lokalny, a bez niego filtr z serwera.getZwraca wartość zCorona Reflections Enabled setCoronaReflectionsEnabled(domyślniefalse).getZwraca wartość zGrain Level setGrainLevel(domyślnie 0).getZwraca wartość zGrain Multiplier setGrainMultiplier(domyślnie 1).getZwraca siłę grawitacji świata (domyślnie 0,008).Gravity getZwraca 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 zwracaGround Position false.getZwraca ustawienia drgania powietrza zapisane przezHeat Haze setHeatHaze.getZwraca wartość zInterior Furniture Enabled setInteriorFurnitureEnabled(domyślnietrue).getZwraca wymiary modelu bez tworzenia elementu: najmniejsze i największe x, y, z względem środka (z kolizji gry) oraz promień. Serwer pyta grę gracza, więc wModel Bounding Box asyncczeka do 1,5 s i zapamiętuje wynik.getZwraca wartość zNear Clip Distance setNearClipDistance(domyślnie 0,3).getZwraca najbliższy punkt drogi aut do podanego miejsca. Na kliencie działa tylko wNearest Vehicle Node async.getZwraca wartość zPeds LODDistance setPedsLODDistance(domyślnie 60).getZwraca kolory nieba zapisane przezSky Gradient setSkyGradient.getZwraca kolor słońca zapisany przezSun Color setSunColor.getZwraca rozmiar słońca zapisany przezSun Size setSunSize(domyślnie 1).getZwraca aktualną godzinę i minutę gry na serwerze (tę samą, którą widzą gracze).Time getZwraca stan sygnalizacji zapisany przezTraffic Light State setTrafficLightState(domyślnie 0).getWyznacza trasę autem po drogach gry między dwoma punktami, z kierunkiem ulic jednokierunkowych i pasów autostrad. Na serwerze działa od razu, bez graczy w pobliżu. Klient pyta serwer, więc działa tylko wVehicle Route asynci czeka do 3 s.getZwraca wartość zVehicles LODDistance setVehiclesLODDistance(domyślnie 500).getZwraca kolor wody zapisany przezWater Color setWaterColor.getZwraca poziom wody zapisany przezWater Level setWaterLevel; gdy nie ustawiono, dla podanego punktu zwraca 0 (poziom morza).getZwraca wysokość fal zapisaną przezWave Height setWaveHeight.getZwraca aktualną pogodę oraz pogodę, do której trwa płynna zmiana zWeather setWeatherBlended(albonil).getZwraca wiatr zapisany przezWind Velocity setWindVelocity. Na serwerzefalse, gdy nie ustawiono; na kliencie wtedy 0, 0, 0.getZwraca 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.Zone Bounds getZwraca środek prostokąta strefy zZone Center 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.getZwraca liczbę prostokątów stref (dzielnic) i regionów w danych mapy.Zone Count getZwraca nazwę dzielnicy (strefy mapy) w podanym punkcie, np.Zone Name "Grove Street","Idlewood","Downtown Los Santos", czyli to, co gra pokazuje na ekranie po wjeździe w nową okolicę. ZcitiesOnly = truezwraca nazwę regionu ("Los Santos","San Fierro","Las Venturas","Red County"…). Działa po obu stronach na danych 356 stref gry, bez pytania klienta.getZwraca posortowaną listę nazw wszystkich dzielnic (bez powtórzeń) albo, zZone Names citiesOnly = true, nazw regionów. Dobre do list wyboru w panelach.isSprawdza, czy wspomaganie celowania jest dozwolone (Aim Assist Enabled setAimAssistEnabledna serwerze). U klienta mówi, czy serwer na nie pozwala.isZwraca, czy garaż został oznaczony jako otwarty przezGarage Open setGarageOpen. Działa po obu stronach.isSprawdza, 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.Inside Zone isSprawdza, 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.Line Of Sight Clear isZwraca wartość zVolumetric Shadows Enabled setVolumetricShadowsEnabled(domyślniefalse).isZwraca wartość zWater Drawn Last setWaterDrawnLast(domyślniefalse).isZwraca, czy specjalna właściwość świata jest włączona: wartość zWorld Special Property Enabled setWorldSpecialPropertyEnabledalbo domyślną (np.randomfoliageivehicle_engine_autostartdomyślnie włączone,hovercarswyłączone).processSzuka 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 zwracaLine Of Sight false. Na serwerze liczy na uproszczonym modelu (kule elementów, bez terenu i budynków).removeZapisuje 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.World Model resetZdejmuje filtr koloru. Na serwerze u wszystkich graczy; u klienta zdejmuje filtr lokalny, a filtr z serwera (jeśli jest) zostaje.Color Filter resetKasuje kolory nieba zSky Gradient setSkyGradient.restoreUsuwa wpisyWorld Model removeWorldModeldla 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.setNakł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.Color Filter setRysuje własną linię trasy na mapie ESC gracza zamiast trasy GPS gry, np. zPlayer Route Line getVehicleRoutealbo trasę pieszą. Nie zmienia celu GPS ani blipów. Linia znika poclearPlayerRouteLinei przy zatrzymaniu zasobu.setZapisuje kolory nieba: górny (zenit) i dolny (przy horyzoncie), każdy RGB 0-255.Sky Gradient setUstawia godzinę w grze u wszystkich graczy. Od tej chwili zegar idzie dalej sam (o ile nie jest zatrzymany przezTime setTimeFrozen); jedna minuta gry trwa domyślnie sekundę (setMinuteDuration). Pora dnia zmienia oświetlenie, kolor nieba i to, czy jest ciemno.setNatychmiast 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ę zWeather setWeatherBlended.setZapowiada płynną zmianę pogody: serwer przełącza pogodę na nową po upływie około dwóch godzin gry.Weather Blended testSprawdza, czy odcinek przecina powierzchnię wody (według poziomu zLine Against Water getWaterLevel) i zwraca punkt przecięcia.
Światła 4
Timery 17
asyncUruchamia 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.awaitCzeka w zadaniuasyncna wynik. Przyjmuje dwie formy. Pierwsza to funkcja-starter: dostajeresumei uruchamia coś, co kończy się callbackiem (zapytaniedbQuery,fetchRemote, timer). Gdy callback wywołaresume(...),awaitzwraca te same wartości. Druga forma to inne zadanie zasync:awaitczeka, 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 przezpcall).getZwraca stan zadania zTask Status 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.getZwraca czas do najbliższego wywołania timera, liczbę pozostałych powtórzeń i interwał.Timer Details getZwraca opis timera jako tablicę:Timer Info remaining,repeats,interval,pausediresource.getZwraca aktywne timery zasobu, który pyta. Z argumentem tylko te, których interwał nie przekracza podanej liczby ms.Timers isSprawdza, czy kod działa w zadaniuAsync async, czyli czy może czekać przezawaitalbosleepbez blokowania.isSprawdza, czy wartość jest zadaniem zwróconym przezTask async.isSprawdza, czy wartość jest aktywnym timerem. Timer jednorazowy przestaje być aktywny po wywołaniu.Timer isSprawdza, czy timer jest zatrzymany przezTimer Paused setTimerPaused.killZatrzymuje timer na stałe. Funkcja już się nie wywoła.Timer resetOdlicza interwał timera od nowa, od tej chwili.Timer setWywołuje funkcję po podanym czasie, raz, kilka razy albo bez końca.Timer setUstawia czas do najbliższego wywołania timera, nie zmieniając jego interwału.Timer Delay setZatrzymuje albo wznawia timer. Pozostały czas jest zachowany.Timer Paused sleepWstrzymuje zadanieasyncna podany czas. W tym czasie reszta skryptów, serwer i gra działają normalnie.sleep(0)czeka do następnej klatki serwera (tak jaksetTimerz interwałem 0).waitWstrzymuje zadanieFor Event asyncdo chwili, gdy zajdzie zdarzenie. Zwraca elementsourcezdarzenia i jego argumenty. Z limitem czasu zwracafalse, gdy zdarzenie nie zaszło na czas. Uchwyt i timer limitu są usuwane po zakończeniu czekania.
Ubrania 9
getZwraca numer części ubioru po nazwie. Przyjmuje nazwy angielskie i polskie, np.Clothes Type Id "hat","czapka","spodnie","tattoo3".getZwraca nazwę części ubioru po numerze 0-17:Clothes Type Name shirt,head,trousers,shoes,tattoo1-tattoo9,necklace,watch,glasses,hat,extra.getZwraca opisowe nazwy części ubioru (np.Clothes Type Names [0] = "Shirt",[4] = "Tattoos Left upper arm",[16] = "Hats").getZwraca wszystkie części ubioru jako tabelę numer -> nazwa (np.Clothes Types [16] = "hat").getZwraca tatuaże postaci: tabelę gniazdo ->Ped Tattoos { name, texture, place }(na serwerze teżimagedla tatuaży zaddPedTattooImage).getZwraca, co gracz ma na danej części ciała: teksturę, model i kolor. Działa na serwerze i u klienta.Player Clothes getZwraca cały ubiór gracza ustawiony przez skrypty: tabelę część ->Player Clothes All { texture, model, color, name }.getZwraca, gdzie na ciele jest gniazdo tatuażu 1-9 (np.Tattoo Place Name "lewe ramie","plecy","brzuch").isSprawdza, czy część ubioru jest gniazdem tatuażu (numery 4-12).Clothes Type Tattoo
Wejście i sterowanie 17
addRejestruje komendę czatu i konsoli (np.Command Handler /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ł.bindPodpina funkcję albo komendę pod klawisz gracza. Funkcja dostaje (na serwerze także gracza) nazwę klawisza, stan i dodatkowe argumenty zKey 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.executeUruchamia komendę zarejestrowaną przezCommand Handler addCommandHandlertak, jakby ją wpisał gracz. Na serwerze podajesz gracza (albonil) i argumenty: jeden napis jest dzielony na słowa jak w czacie. U klienta wywołuje komendy klienta.getMówi, czy sterowanie dotyczy postaci pieszo (Control Group "foot"), czy pojazdu ("vehicle").getZwraca listę blokad kontrolki w postaciControl Locks "zasób:właściciel", do diagnostyki. Serwer i klient mają osobne blokady.getZwraca nazwy sterowania gry, które przyjmująControl Names toggleControl,setControlStateiisControlEnabled.getZwraca funkcje (i nazwy komend) podpięte pod klawisz.Functions Bound To Key getZwraca pierwszy klawisz, pod który podpięta jest funkcja.Key Bound To Function isSprawdza, czy sterowanie gry jest włączone (nie zablokowane przezControl Enabled toggleControlalbotoggleAllControls).isSprawdza, czy pod klawiszem jest podpięta funkcja (konkretna albo jakakolwiek).Key Bound isSprawdza, czy nazwa sterowania jest znana grze.Valid Control Name lockBlokuje kontrolki w imieniu właściciela. Kontrolka wraca dopiero, gdy zwolni ją ostatni właściciel, więc kilka zasobów może ją blokować bez wzajemnego odblokowywania. Blokady zasobu znikają przy jego zatrzymaniu.Controls removeUsuwa komendę dodaną przezCommand Handler addCommandHandler. Z funkcją usuwa tylko tę jedną obsługę, bez funkcji wszystkie obsługi tej komendy.toggleWłącza albo wyłącza całe sterowanie gry naraz (np. na czas cutscenki albo zamrożenia gracza). Czat, konsola i klawisze zAll Controls bindKeydalej działają.toggleWłącza albo wyłącza jedno sterowanie gry, np. strzelanie (Control fire), skok (jump) albo wsiadanie (enter_exit). Wyłączone sterowanie nie reaguje na klawisze gracza. Na serwerze podajesz gracza alboroot.unbindOdpina funkcję albo komendę od klawisza. Bez funkcji zdejmuje wszystko z klawisza w danym stanie, a bez stanu w obu stanach.Key unlockZwalnia blokady właściciela: wskazane kontrolki albo wszystkie, gdy lista jest pominięta.Controls
XML 18
xmlKopiuje 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ć przezCopy File xmlSaveFile.xmlDodaje nowy węzeł-dziecko o podanej nazwie na końcu listy dzieci rodzica.Create Child xmlTworzy nowy dokument XML z węzłem głównym o podanej nazwie. Dokument jest w pamięci; na dysk trafia dopiero poCreate File xmlSaveFile. Istniejący plik zostanie nadpisany przy zapisie.xmlUsuwa węzeł razem z jego dziećmi. Węzła głównego nie da się usunąć.Destroy Node xmlSzuka dziecka o podanej nazwie znacznika.Find Child indexwybiera, które z kolei (od 0) wśród dzieci o tej nazwie.xmlWczytuje 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 plikiLoad File <file>przysłane przez serwer; ścieżka":inny/plik.xml"wskazuje plik innego zasobu. Pamiętaj oxmlUnloadFile, gdy dokument nie jest już potrzebny.xmlWczytuje dokument XML wprost z tekstu (np. odebranego zLoad String fetchRemote), tylko do czytania. Zwraca węzeł główny.xmlZwraca wartość atrybutu węzła jako tekst (liczby trzeba zamienić przezNode Get Attribute tonumber).xmlZwraca wszystkie atrybuty węzła jako tabelę nazwa → wartość.Node Get Attributes xmlBez indeksu zwraca tablicę wszystkich dzieci węzła; z indeksem (od 0) - jedno dziecko.Node Get Children xmlZwraca nazwę znacznika węzła (np.Node Get Name "spawn"dla<spawn/>).xmlZwraca rodzica węzła.Node Get Parent xmlZwraca tekst wewnątrz węzła (np.Node Get Value "Witaj"dla<msg>Witaj</msg>).xmlUstawia atrybut węzła; liczby i inne wartości są zamieniane na tekst.Node Set Attribute nilalbofalseusuwa atrybut.xmlZmienia nazwę znacznika węzła.Node Set Name xmlUstawia tekst wewnątrz węzła (zastępuje poprzedni).Node Set Value xmlZapisuje cały dokument (do którego należy węzeł) do jego pliku. Nie zadziała dla dokumentów tylko do czytania i zSave File xmlLoadString.xmlZwalnia dokument z pamięci. Wszystkie jego węzły przestają być ważne. Niezapisane zmiany przepadają.Unload File
Zasoby 5
callWywołuje funkcję wyeksportowaną przez inny zasób (<export function="nazwa"/>w jegometa.xml) i zwraca jej wyniki. To samo robi zapisexports.zasob:funkcja(...). Gdy zasób nie istnieje albo nie działa, w konsoli pojawia się jasny komunikat.callWywołuje eksport innego zasobu bez ostrzeżeń, gdy zasobu albo funkcji nie ma. Najpierw zwraca, czy wywołanie się udało.Export getZwraca nazwy funkcji, które zasób eksportuje wResource Exported Functions meta.xml(<export function="..."/>). W obecnej wersji serwera lista jest pusta.getZwraca uchwyt zasobu o podanej nazwie (nazwa folderu wResource From Name resources/), także gdy zasób nie działa. Uchwyt przekażesz dostartResource,getResourceState,calli innych funkcji zasobów.getZwraca stan zasobu:Resource State "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"albofalse.
Zdarzenia 10
addRejestruje własne zdarzenie o podanej nazwie, żeby można było je wywoływać (Event triggerEvent,triggerClientEvent,triggerServerEvent) i obsługiwać (addEventHandler). ZallowRemoteTrigger = truezdarzenie może przyjść z drugiej strony sieci: na serwerze - od klienta przeztriggerServerEvent, na kliencie - od serwera przeztriggerClientEvent. Bez tego zdarzenia przychodzące z sieci są odrzucane, co chroni serwer przed podrabianiem zdarzeń przez klientów.addPodpina funkcję pod zdarzenie. Tak reagujesz na wejście gracza, śmierć, klawisz, każdą klatkę i własne zdarzenia.Event Handler cancelAnuluje bieżące zdarzenie z wnętrza jego obsługi. Dla zdarzeń, które na to pozwalają, blokuje domyślne działanie, np.Event 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 przezwasEventCancelled. Na serwerze można podać powód, który odczytagetCancelReason.getZwraca łączną liczbę funkcji podpiętych pod zdarzenie na wszystkich elementach. Przydaje się do szukania wycieków (np. ktoś dokładaEvent Handler Count onClientRenderco sekundę).getZwraca listę funkcji podpiętych pod zdarzenie bezpośrednio na danym elemencie (bez obsług na rodzicach).Event Handlers getZwraca posortowaną listę nazw wszystkich znanych zdarzeń: wbudowanych i zarejestrowanych przezEvent Names addEvent.isSprawdza, czy zdarzenie o tej nazwie istnieje (jest wbudowane albo dodane przezEvent Added addEvent).removeOdpina funkcję od zdarzenia. Trzeba podać tę samą nazwę, element i tę samą funkcję (tę samą zmienną), co przyEvent Handler addEventHandler- funkcja anonimowa wpisana ponownie to inna funkcja.triggerWywoł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 przezEvent addEventalbo być wbudowane.wasSprawdza, czy bieżące zdarzenie zostało anulowane przezEvent Cancelled cancelEventwe wcześniejszej obsłudze; poza zdarzeniem - czy ostatnie zdarzenie zostało anulowane.
Znaczniki 8
createTworzy 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łujeMarker onMarkerHitz graczem jako pierwszym argumentem, a przy wyjściuonMarkerLeave. 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.getZwraca kolor znacznika.Marker Color getZwraca liczbę wszystkich znaczników na serwerze.Marker Count getZwraca rozmiar (średnicę w metrach) znacznika.Marker Size getZwraca typ znacznika (Marker Type "cylinder","checkpoint","arrow","corona","ring").setZmienia kolor i krycie znacznika, np. na zielony, gdy praca jest dostępna, i czerwony, gdy nie.Marker Color setZmienia rozmiar (średnicę w metrach) znacznika. Strefa wejścia (Marker Size onMarkerHit) zmienia się razem z nim.setZmienia typ znacznika bez tworzenia go od nowa (np. walec zamienia się w strzałkę).Marker Type