- Dokumentacja
- Silnik gry
Kategoria
Silnik gry
Wszystkie funkcje i zdarzenia Lua z kategorii Silnik gry, po stronie serwera i klienta.
Funkcje serwera 1
Funkcje klienta 82
callWywołuje komendę skryptową gry po numerze i zwraca wynik oraz zmienne. Tylko w trybie deweloperskim; u graczy zwracaGame Command false.createTworzy podgląd elementu (pojazd, gracz, postać, obiekt, obiekt modelu) jako obraz doElement Preview dxDrawImage, np. do sklepu z autami albo garderoby.falsejako cel = scena z kamery. Kamera domyślnie krąży wokół celu tak, żeby był cały w kadrze.createStawia model zMesh Object engineLoadMeshw świecie, tylko u tego gracza: pozycja, obrót i skala. Obiektem sterujesz funkcjamisetMeshObject*.destroyUsuwa podgląd zElement Preview createElementPreview.destroyUsuwa obiekt modelu ze świata.Mesh Object engineZwalnia model zFree Mesh engineLoadMesh; obiekty postawione z niego znikają.engineTworzy kolizję COL3 z modelu zGenerate COL engineLoadMesh, gdy autor nie dał pliku.col. Ustawiasz liczbę trójkątów (upraszczanie QEM zachowuje kształt), tryb (siatka, otoczka wypukła, pudełka, kula) i powierzchnię. Wynik podajesz doengineReplaceCOL.engineZwraca dane kolizji zGet COLInfo engineLoadCOL: wersję, nazwę, liczbę kul, prostopadłościanów, ścian i wierzchołków oraz obrysbox.engineZwraca spis animacji wczytanego bloku IFP: tablicęGet IFPAnimations { name, duration, bones }(czas w sekundach, liczba kości).engineZwraca formaty plików modeli, które wczytujeGet Mesh Formats engineLoadMesh.engineZwraca prostopadłościan kolizji modelu: najmniejsze i największe x, y, z względem środka modelu, a na końcu promień kuli kolizji. Dane pochodzą z kolizji wczytanej przez grę, więc działają dla aut, postaci i obiektów. Przydaje się do ustawiania rzeczy na ziemi, liczenia rozmiaru i kadrowania kamery.Get Model Bounding Box engineZwraca flagi modelu ustawione przezGet Model Flags engineSetModelFlagjako tabelę nazwa ->true/false.engineZwraca zasięg rysowania modelu w metrach: ustawiony przezGet Model LODDistance engineSetModelLODDistancealbo z plików San Andreas.engineZwraca nazwy tekstur San Andreas modelu (numer albo nazwa), także kół pojazdu. Niewczytany model jest na chwilę dociągany. Przydaje się do shaderów podmieniających tekstury.Get Model Texture Names engineZwraca godziny widoczności modelu ustawione przezGet Model Visible Time engineSetModelVisibleTime(domyślnie 0 i 24).engineZwraca, jak kości modelu z pliku łączą się z kośćmi szkieletu gry: listęGet Ped Model Bones { hid, bone, occurrence }. Animacje gry sterują modelem przez te kości.engineZwraca pojemność puli gry, np.Get Pool Capacity "building","ped","object","vehicle","col-model","task". Trilogy Hub powiększa pule przy starcie gry.engineZwraca domyślną pojemność puli w Definitive Edition, przed powiększeniem przez Trilogy Hub.Get Pool Default Capacity engineZwraca, ile miejsc puli gry jest teraz zajętych.Get Pool Used Capacity engineZwraca wszystkie podmienione modele: tabelę numer -> ścieżka zasobu.Get Replaced Models enginePrzypisuje tekstury zImport TXD engineLoadTXDdo modelu o danym numerze.engineWczytuje zasób silnika gry (Unreal) po ścieżce, np. model albo materiał z plików gry. Uchwyt podajesz doLoad Asset engineReplaceModel.engineWczytuje kolizję z pliku zasobu (formaty COLL, COL2, COL3, COL4; z archiwum bierze pierwszy model) albo z bajtów pliku.Load COL enginewczytuje model z plikuLoad DFF .dffzasobu (jakengineLoadMesh). Tekstury bierze z.txdprzypisanego wcześniej przezengineImportTXDdla tego numeru albo z.txdo tej samej nazwie. Inna ścieżka niż plik.dffoznacza zasób silnika.engineWczytuje bibliotekę animacji IFP (ANPK z Vice City, ANP2/ANP3 z San Andreas) z pliku albo danych pod własną nazwą bloku (najlepiejLoad IFP "zasob.blok"). Animacje odtwarzasz przezsetPedAnimation(ped, blok, animacja)albo podstawiasz przezengineReplaceAnimation. Zatrzymanie zasobu zwalnia blok.engineWczytuje model 3D z pliku zasobu:Load Mesh .obj,.stl,.ply,.gltf,.glb,.fbx,.3dsoraz.dffz GTA SA (tekstury z.txdobok). Model stawiasz przezcreateMeshObjectalbo podstawiasz pod numer przezengineReplaceModel.enginewczytuje plikLoad TXD .txdzasobu z teksturami dlaengineImportTXDiengineLoadDFF. Inna ścieżka oznacza teksturę jako zasób silnika.engineSprawia, że na tej postaci animacja gry (blok i nazwa) gra się jako animacja z wczytanego pliku IFP. Działa tylko u tego gracza; jeśli to własna postać, inni widzą efekt w przesyłanej pozie.Replace Animation enginePodmienia obraz ikony blipa gry (numer 0-63, np. 40) na własny obraz. Obraz to plik z zasobu (PNG, JPG, BMP albo GIF, wpisany wReplace Blip Icon meta.xmljako<file>, także:zasob/plik.png) albo dane obrazu, np. odczytane przezfileRead. Nowa ikona pojawia się wszędzie, gdzie gra rysuje ten numer: na radarze, na mapie w menu ESC i w jej legendzie. Blipy z tą ikoną działają dalej tak samo (najechanie myszą, nazwy, kolejność). Najlepiej kwadratowy obraz z przezroczystym tłem; większy niż 256 px jest zmniejszany. Po zatrzymaniu zasobu wraca ikona gry.enginePodmienia kolizję modelu obiektu na kolizję zReplace COL engineLoadCOLalboengineGenerateCOL(także obiektów mapy o tym numerze i modelu pary dzień/noc). Tylko obiekty, nie postacie i pojazdy. Jeśli model jeszcze nie powstał w grze (nowy model zengineRequestModelprzy wejściu gracza albo restarcie zasobu), kolizja czeka i wchodzi, gdy tylko model się pojawi; numer modelu, którego nie ma, dajefalse.enginePodmienia wygląd modelu o danym numerze: na zasób silnika (Replace Model engineLoadAsset) albo model z pliku (engineLoadMesh). Obiekty, pojazdy i postacie (skiny 0-312; model z pliku bez szkieletu jest statyczny) o tym numerze pokazują nowy model. Obiekt bez własnej kolizji dostaje kolizję z.dffalbo z trójkątów modelu; własną kolizję dajeengineReplaceCOL. Działa u tego gracza, więc wywołuj w skrypcie klienta. Podmiana nowego modelu zengineRequestModel, który jeszcze nie powstał w grze (gracz właśnie wchodzi, restart zasobu), czeka na niego; numer modelu, którego nie ma, dajefalse.engineKasuje wszystkie flagi modelu ustawione przezReset Model Flags engineSetModelFlag.enginePrzywraca zasięg rysowania obiektów modelu ustawiony przez grę.Reset Model LODDistance engineCofa podmiany animacji zRestore Animation engineReplaceAnimationna postaci: wszystkie, z jednego bloku gry albo jedną animację.enginePrzywraca ikonę gry poRestore Blip Icon engineReplaceBlipIcon. Bez argumentu przywraca wszystkie ikony podmienione przez ten zasób.enginePrzywraca oryginalną kolizję modelu.Restore COL enginePrzywraca oryginalny wygląd modelu o danym numerze.Restore Model enginePrzywraca oryginalne tekstury modelu.Restore TXD engineDruga nazwaRestream engineRestreamWorld: wczytuje świat wokół gracza od nowa.engineKaże grze wczytać świat wokół gracza od nowa, np. po podmianie wielu modeli.Restream World engineWczytywanie modeli w tle. W Definitive Edition jest zawsze włączone (strumieniowanie Unreala):Set Asynchronous Loading trueniczego nie zmienia,falsezwracafalsez ostrzeżeniem.engineUstawia flagę modelu (Set Model Flag is_road,draw_last,additive,is_treei inne). W Definitive Edition rysuje Unreal, więc flaga jest tylko zapamiętywana (odczyt przezengineGetModelFlags) i nie zmienia obrazu.engineUstawia, od jakiej odległości (0-1400 m) obiekty tego modelu zSet Model LODDistance createObjectprzestają być rysowane, także krótszej niż domyślnie. Zmienia zasięg modelu w grze (jak zasięg z plików IDE San Andreas, domyślnie 40-300 m), więc mapy z edytora widać z daleka; zasięg ponad 300 m wydłuża też wczytywanie tych obiektów. Obiektów mapy (budynki, rośliny) nie zmienia, bo są częścią poziomów Unreala.engineUstawia godziny gry (0-24), w których obiekty tego modelu zSet Model Visible Time createObjectsą widoczne; poza nimi są schowane. Od > do oznacza przez północ (np. 20 i 6 = nocą), 0 i 24 = zawsze.engineW Trilogy Hub zawsze zwracaSet Pool Capacity false: pule gry są powiększane przy starcie gry, a ich rozmiaru nie da się bezpiecznie zmienić w trakcie.engineProsi grę o zwolnienie pamięci strumieniowania.Streaming Free Up Memory engineMówi, czy model jest wczytany:Streaming Get Model Load State "loaded","loading"albo"notloaded".engineZwraca, ile pamięci zajmują wczytane modele (bajty).Streaming Get Used Memory engineMówi grze, że model nie jest już potrzebny i może zwolnić pamięć.Streaming Release Model engineProsi grę o wczytanie modelu do pamięci (np. przed stworzeniem wielu obiektów naraz).Streaming Request Model engineSprawdza, czy model z pliku (Validate Ped Model .dffpostaci) nadaje się na skin: wagi kości, hierarchię i wymagane kości. Zwraca wynik i raport z błędami i ostrzeżeniami albofalse, gdy model nie ma szkieletu (będzie statyczny).findSzuka obiektów silnika gry po fragmencie nazwy albo ścieżki i zwraca listę trafień. Tylko w trybie deweloperskim; u graczy zwracaEngine Object false.getZwraca ścieżkę zdjęcia zapisanego w trwałej pamięci podglądów przezElement Preview Cache setElementPreviewCacheKey. Ścieżkę podasz dodxDrawImagealbodxCreateTexture. Zdjęcie zostaje między sesjami gry.getZwraca ścieżkę pliku PNG podglądu (dlaElement Preview Image dxDrawImageidxCreateTexture) albofalse, gdy nie ma jeszcze pierwszego zdjęcia.getZwraca stan podglądu (Element Preview State "czeka","gotowy","czeka na cel","blad: ...") i liczbę zrobionych zdjęć.getZwraca, co klient wie o silniku gry: wersję, adresy i gotowość refleksji. Tylko w trybie deweloperskim; u graczy zwracaEngine Info false.getZwraca dane modelu zMesh Info engineLoadMesh: format, liczbę wierzchołków i trójkątów oraz obrys{ minX, minY, minZ, maxX, maxY, maxZ }w metrach.getZwraca kolor obiektu modelu alboMesh Object Color false, gdy ma materiał domyślny.getZwraca położenie obiektu modelu.Mesh Object Position getZwraca obrót obiektu modelu w stopniach.Mesh Object Rotation getZwraca skalę obiektu modelu w trzech osiach.Mesh Object Scale getZwraca stan obiektu w grze:Mesh Object State "czeka","gotowy"albo"blad:...".getZwraca ścieżkę zasobu podstawionego pod model (Model Asset false= oryginalny).isSprawdza, czy ikona blipa o tym numerze ma własny obraz zBlip Icon Replaced engineReplaceBlipIcon.isSprawdza, czy wartość to istniejący podgląd zElement Preview createElementPreview.isSprawdza, czy klient może wywoływać komendy skryptowe gry (podstawa części funkcji, np.Game Script Available dxDrawModel3DicreateExplosionu klienta).isSprawdza, czy wartość to istniejący obiekt zMesh Object createMeshObject.isSprawdza, czy obiekt modelu jest widoczny.Mesh Object Visible setNastępne zdjęcie podglądu zapisuje też w trwałej pamięci podglądów pod podanym kluczem. Pamięć zostaje po wyjściu z gry, więc przy następnym wejściu możesz od razu pokazać obraz przezElement Preview Cache Key getElementPreviewCache, bez tworzenia podglądu. Zapis dotyczy jednego zdjęcia; po nim klucz jest czyszczony. Pusty klucz wyłącza zapis.setUstawia stałą kamerę podglądu: pozycję, cel i pole widzenia (metry San Andreas).Element Preview Camera setPodgląd postaci pokazuje tylko to, co postać trzyma w ręce (broń), bez ciała. Kamera krąży wokół samego przedmiotu, np. w sklepie z bronią.Element Preview Held Only setUstawia podgląd modelu bez elementu w świecie (np. lista aut albo skinów w sklepie): rodzaj (Element Preview Model "vehicle","ped","object") i numer modelu. Model stoi tylko u tego gracza, do zdjęć.setUstawia kamerę krążącą wokół celu: kąt w poziomie (Element Preview Orbit yaw, 0 = z północy), kąt w pionie (pitch), odległość (0 = cały cel w kadrze), wysokość i pole widzenia.setUstawia, co ile milisekund podgląd robi nowe zdjęcie (najmniej 50; 0 = tylko po zmianie iElement Preview Refresh updateElementPreview). Jedno zdjęcie kosztuje około 10 ms klatki.setZmienia cel podglądu (element, obiekt modelu alboElement Preview Target false= scena).setNadaje obiektowi modelu jednolity kolor (r, g, b 0-255) z oświetleniem; bez koloru wraca materiał domyślny.Mesh Object Color setPrzestawia obiekt modelu (metry).Mesh Object Position setObraca obiekt modelu (stopnie, kolejność Z, X, Y).Mesh Object Rotation setSkaluje obiekt modelu: jedną liczbą albo osobno w trzech osiach.Mesh Object Scale setKładzie obraz PNG/JPG z zasobu na obiekt modelu (według współrzędnych UV z pliku);Mesh Object Texture falsezdejmuje obraz.setPokazuje albo chowa obiekt modelu.Mesh Object Visible updateZleca nowe zdjęcie podglądu w najbliższej klatce.Element Preview
Funkcje wspólne 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.