- Dokumentacja
- Funkcje wspólne
- getGroundPosition
Funkcja
getGroundPosition
Zwraca 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 zwraca false.
Składnia
float getGroundPosition(float x, float y, float z [, bool throughMapObjects = false])Argumenty
xfloat- Współrzędna X (albo wektor).
yfloat- Współrzędna Y.
zfloat- Wysokość, od której szukamy w dół.
throughMapObjectsbool, opcjonalny = falsetrue: przenika przez drzewa, krzaki i obiekty mapy (latarnie, ławki, płoty), a zatrzymuje się na terenie, budynkach i obiektach skryptów (np. podłogach z edytora map).Nie ma go w MTA:SA
Różnice względem MTA:SA
- Argumenty zaznaczone innym kolorem różnią się od MTA:SA.
W MTA:SA
getGroundPosition(float x, float y, float z)Zwraca
Wysokość gruntu albo false, gdy nieznana.
Przykład
Serwer stawia pickup na ziemi.
async(function()
local ground = getGroundPosition(2495, -1665, 100)
if ground then createPickup(2495, -1665, ground + 0.5, 3, 1240) end
end)
local x, y = 2495, -1665
local ground = getGroundPosition(x, y, 100)
if ground then setElementPosition(localPlayer, x, y, ground + 1) end
Uwagi
Grunt pod drzewami. Bez throughMapObjects punkt pod koroną drzewa albo w krzaku zwraca wierzch rośliny. Z throughMapObjects = true dostajesz ziemię pod nią, co przydaje się np. do linii albo znaczników rysowanych po terenie. Rośliny postawione skryptem też są przenikane.
Serwer. Serwer nie ma kolizji mapy. Wywołane w async(function() ... end) pyta grę gracza najbliżej punktu (do 250 m, poza wnętrzami) i czeka na odpowiedź do 1,5 s - wtedy zwraca prawdziwy teren. Poza async albo bez gracza w pobliżu liczy tylko obiekty skryptów (createObject) i wodę, inaczej zwraca false.
Zobacz też
getRoofPositionZwraca wysokość najniższej przeszkody nad punktem (czy nad głową jest dach), według modelu serwera: tylko obiekty skryptów, bez budynków mapy.processLineOfSightSzuka 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 zwracafalse. Na serwerze liczy na uproszczonym modelu (kule elementów, bez terenu i budynków).