- Dokumentacja
- Funkcje wspólne
- engineRequestModel
Funkcja
engineRequestModel
Tworzy nowy model pod nowym numerem, wspólny dla wszystkich graczy (także tych, którzy wejdą później). Obiekt ("object"/"timed-object", rodzic domyślnie 1337) dostaje numer z puli 18631-19999 i jest kopią rodzica; wygląd i kolizję dają engineReplaceModel i engineReplaceCOL. 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 daje engineReplaceModel w skrypcie klienta. Trzeci argument to konkretny numer albo nazwa (także dla obiektów): ta sama nazwa daje zawsze ten sam numer (zapis w model-ids.json serwera), 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.
Składnia
Serwer
int engineRequestModel(string elementType [, int parentID, int|string wantedIDOrName])Klient
int engineRequestModel(string elementType [, int parentID, string name])Argumenty
elementTypestring"object","timed-object","vehicle","ped"albo"upgrade".parentIDint, opcjonalny- Model rodzica.
wantedIDOrNameint|string, opcjonalny- Numer albo nazwa modelu (u klienta tylko nazwa).
Zwraca
Nowy numer modelu albo false.
Przykład
Nowe auto oparte na Elegy, z wyglądem z pliku.
local id = engineRequestModel("vehicle", 562, "elegy_drift")
local car = createVehicle(id, 2495, -1670, 13.3)
local id = engineGetModelIDFromName("elegy_drift")
local mesh = engineLoadMesh("modele/elegy_drift.dff")
if id and mesh then engineReplaceModel(mesh, id) end
Uwagi
Wspólne modele. Nowe modele są wspólne dla wszystkich graczy i mają stałe numery po nazwie. Działają też dla pojazdów, postaci i części tuningu.
Zobacz też
engineReplaceModelPodmienia wygląd modelu o danym numerze: na zasób silnika (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.engineFreeModelZwalnia model zengineRequestModel. 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.engineGetModelIDFromNameZwraca numer modelu po nazwie. Na serwerze znajduje nowe modele z nazwą (engineRequestModel) i pojazdy; u klienta także modele gry po nazwie.createVehicleTworzy pojazd w świecie: model, pozycja, obrót i tekst tablicy rejestracyjnej.