- Dokumentacja
- Pozostałe
Kategoria
Pozostałe
Wszystkie funkcje i zdarzenia Lua z kategorii Pozostałe, po stronie serwera i klienta.
Funkcje serwera 39
addPodpina funkcję pod zdarzenia albo wywołania funkcji, do śledzenia i profilowania.Debug Hook preEventipostEventdziałają dla zdarzeń,preFunctionipostFunctiondla funkcji z listy nazw (lista jest wtedy wymagana). Funkcja wpreEventalbopreFunctionmoże zwrócić"skip", żeby zablokować zdarzenie albo wywołanie.clearUsuwa ograniczenia widoczności ustawione przezElement Visible To setElementVisibleTo, więc element znowu widzą wszyscy.createTworzy prostokątny obszar radaru (np. teren gangu) w kolorze RGBA. Obszar istnieje na serwerze: ma kolor, rozmiar, miganie iRadar Area isInsideRadarArea, ale w obecnej wersji klienta nie jest jeszcze rysowany na radarze.derefZwraca wartość zapamiętaną przezrefpod danym numerem.getZwraca powód podany wCancel Reason cancelEvent(true, powod)przez ostatnie anulowanie zdarzenia, np. powód odrzucenia połączenia wonPlayerConnect.getZwraca obiekt LOD przypisany przezLow LODElement setLowLODElement.getZwraca statystyki sieci serwera albo jednego gracza: wysłane i odebrane bajty oraz pakiety. Pola strat pakietów i buforów są na razie zerami.Network Stats getZwraca kolor obszaru radaru.Radar Area Color getZwraca szerokość i wysokość obszaru radaru.Radar Area Size getZwraca, ile kosztuje synchronizacja graczy od ostatniego wywołania: liczbę cykli (Sync Cost ticks), średni i najdłuższy czas cyklu w ms (avgMs,maxMs), stany na cykl (statesPerTick) i czas pomiaru (seconds). Pomaga znaleźć przycięcia serwera.getMówi, jakiego rodzaju jest uchwyt:Userdata Type element,lua-timer,resource-data,xml-node,text-displayi inne.isSprawdza, czy punkt (x, y) leży w obszarze radaru.Inside Radar Area isSprawdza, czy zasób ma składnię obiektową (OOPEnabled <oop>true</oop>, np.player:getName()). W Trilogy Hub zawsze zwracafalse; pisz funkcjami (getPlayerName(player)).isSprawdza, czy obszar radaru miga.Radar Area Flashing passwordTworzy bezpieczny skrót hasła (scrypt, wynik zaczyna się odHash $scrypt$) do zapisania w bazie zamiast hasła. Ten sam tekst daje za każdym razem inny skrót; sprawdzasz go przezpasswordVerify. Z funkcją zwrotną skrót przychodzi do niej.passwordSprawdza, czy hasło pasuje do skrótu zVerify passwordHash. Z funkcją zwrotną wynik przychodzi do niej.refZwraca liczbę, pod którą zapamiętana jest wartość (np. element), żeby przekazać ją dalej jako liczbę.derefzamienia ją z powrotem. Ta sama wartość ma zawsze ten sam numer.removeOdpina funkcję dodaną przezDebug Hook addDebugHook.resetPrzywraca domyślną odległość mgły (100).Fog Distance resetPrzywraca domyślny rozmiar księżyca (3).Moon Size resetPrzywraca domyślną siłę deszczu (0).Rain Level setUstawia maksymalną wysokość lotu samolotów i helikopterów (0-10000). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Aircraft Max Height getAircraftMaxHeight), ale nie zmienia jeszcze limitu w grze.setUstawia maksymalną prędkość samolotów (0-100, domyślnie 1.5). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Aircraft Max Velocity getAircraftMaxVelocity), ale nie zmienia jeszcze limitu w grze.setWłącza albo wyłącza chmury. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Clouds Enabled getCloudsEnabled), ale nie zmienia jeszcze nieba w grze.setDaje postaci do ręki broń, którą już ma (numer broni, np. 31 = M4; 0 = pięści). Druga nazwa:Current Weapon setPedWeaponSlot.setUstawia odległość mgły (-1000 do 1000). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Fog Distance getFogDistance), ale Trilogy Hub nie zmienia jeszcze mgły w grze.setUstawia limit klatek na sekundę (0-32767). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (FPSLimit getFPSLimit), ale nie ogranicza jeszcze klatek w grze; limit ustawia gracz w opcjach gry.setZmienia prędkość gry u wszystkich graczy:Game Speed 1to normalnie,0.5zwolnione tempo,2dwa razy szybciej (najwyżej 10). Działa na ruch, animacje i fizykę.setWłącza albo wyłącza dźwięki wnętrz (muzyka i gwar w budynkach). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Interior Sounds Enabled getInteriorSoundsEnabled), ale nie zmienia jeszcze dźwięku w grze.setUstawia, jak wysoko można polecieć plecakiem odrzutowym. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Jetpack Max Height getJetpackMaxHeight), ale nie zmienia jeszcze limitu w grze.setPrzypisuje do obiektu jego uproszczoną wersję widoczną z daleka (LOD). W Trilogy Hub odległości rysowania liczy Unreal Engine, więc przypisanie jest zapamiętywane dla zgodności ze starszymi skryptami (Low LODElement getLowLODElement), ale nie zmienia wyglądu w grze.setWłącza albo wyłącza mapę pod ESC dla całego serwera. Pojedynczemu graczowi ustawisz ją przezMap Enabled setPlayerMapEnabled.setUstawia rozmiar księżyca 0-100. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Moon Size getMoonSize), ale nie zmienia jeszcze nieba w grze.setZmienia kolor obszaru radaru, np. gdy teren przejmuje inny gang.Radar Area Color setWłącza albo wyłącza miganie obszaru radaru (np. podczas walki o teren).Radar Area Flashing setZmienia rozmiar obszaru radaru.Radar Area Size setUstawia siłę deszczu 0-10. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Rain Level getRainLevel), ale nie zmienia deszczu w grze; deszcz daje pogoda (setWeather).showDruga nazwaPlayer Hud Component setPlayerHudComponentVisible: pokazuje albo chowa graczowi składnik HUD gry (np."radar","money","health","all").warnStandardowa funkcja Lua 5.4: wysyła ostrzeżenie złożone z argumentów. Ostrzeżenia Lua są domyślnie wyłączone (warn("@on")je włącza) i trafiają na wyjście błędów procesu serwera. Do komunikatów dla twórców skryptów używajoutputDebugString.
Funkcje klienta 15
areSprawdza, czy wbudowane tabliczki nad głowami są u siebie włączone.Nametags Enabled downloadPobiera plik zasobu oznaczony wFile meta.xmljako<file src="..." download="false"/>dopiero wtedy, gdy jest potrzebny (np. duża muzyka). Wynik przychodzi w zdarzeniuonClientFileDownloadComplete, zawsze asynchronicznie, także gdy plik był już pobrany.":zasob/plik"pobiera plik innego zasobu.getZamienia punkt na ekranie (np. kursor) na piksel strony przeglądarki narysowanej w świecie przezBrowser Position From Screen dxDrawMaterialLine3DalbodxDrawMaterialPrimitive3D. Dzięki temu da się klikać w ekrany i billboardy z przeglądarką stojące w świecie.getZwraca pozycję kursora jako ułamek ekranu 0-1 (x, y). Działa tylko, gdy kursor jest pokazany. Trzy kolejne wyniki (punkt w świecie) są na razie zerami; punkt w świecie pod kursorem daCursor Position getWorldFromScreenPosition.getZwraca pozycję kursora w pikselach ekranu (gdy kursor jest pokazany).Cursor Position Absolute getZwraca aktualny wygląd wbudowanych tabliczek u siebie (tabela z polami jak wNametag Style setNametagStyle).getZamienia punkt w świecie na punkt na ekranie (piksele). ZwracaScreen From World Position false, gdy punkt jest za kamerą albo poza ekranem. Trzeci wynik to odległość od kamery. Przydaje się do napisów nad głowami.getZwraca rozmiar ekranu gry w pikselach. To samo coScreen Size guiGetScreenSize.isSprawdza, czy gracz właśnie pisze na czacie.Chat Box Input Active isSprawdza, czy konsola gry jest otwarta.Console Active isSprawdza, czy menu gry (pauza) jest otwarte.Main Menu Active isSprawdza, czy klient właśnie pobiera pliki zasobów (start zasobu alboTransfer Box Active downloadFile).setPrzesuwa kursor w podane miejsce okna gry (piksele). ZwracaCursor Position false, gdy okno gry nie jest aktywne albo jest zminimalizowane.setWłącza albo wyłącza u siebie wbudowane tabliczki nad głowami innych graczy. Skrót dlaNametags Enabled setNametagStyle({ enabled = ... }); przydaje się, gdy zasób rysuje własne tabliczki.setUstawia u siebie wygląd wbudowanych tabliczek nad głowami innych graczy. Pola jak wNametag Style setPlayerNametagStyle:enabled,distance,showDistance,scale,color,background; podajesz tylko te do zmiany.
Funkcje wspólne 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).