SerweryWłasny serwerDla twórcówForumFAQDokumentacjaBezpieczeństwo
Pobierz launcher
  1. Dokumentacja
  2. Funkcje wspólne
  3. isLineOfSightClear

Funkcja

isLineOfSightClear

Serwer i klientŚwiatIdentyczna z MTA:SA

Sprawdza, 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.

Składnia

bool isLineOfSightClear(float sx, float sy, float sz, float ex, float ey, float ez [, bool checkBuildings = true, bool checkVehicles = true, bool checkPeds = true, bool checkObjects = true, bool checkDummies = true, bool seeThroughStuff = false, bool ignoreSomeObjectsForCamera = false, element ignoredElement = nil])

Argumenty

sxfloat
X początku.
syfloat
Y początku.
szfloat
Z początku.
exfloat
X końca.
eyfloat
Y końca.
ezfloat
Z końca.
checkBuildingsbool, opcjonalny = true
Uwzględnij budynki i teren.
checkVehiclesbool, opcjonalny = true
Uwzględnij pojazdy.
checkPedsbool, opcjonalny = true
Uwzględnij postacie i graczy.
checkObjectsbool, opcjonalny = true
Uwzględnij obiekty.
checkDummiesbool, opcjonalny = true
Uwzględnij obiekty pomocnicze gry (klient).
seeThroughStuffbool, opcjonalny = false
Przenikaj przez rzeczy przezroczyste, np. siatki i szyby (klient).
ignoreSomeObjectsForCamerabool, opcjonalny = false
Pomiń obiekty, które kamera pomija (klient).
ignoredElementelement, opcjonalny = nil
Element pomijany w teście (np. sam gracz).

Zwraca

true, gdy nic nie zasłania odcinka.

Przykład

local function canSee(target)
    local x1, y1, z1 = getCameraMatrix()
    local x2, y2, z2 = getElementPosition(target)
    return isLineOfSightClear(x1, y1, z1, x2, y2, z2, true, false, false, true, true, false, false, localPlayer)
end

Uwagi

Serwer. Serwer nie ma kolizji mapy. Wywołane w async(function() ... end) pyta grę gracza najbliżej środka odcinka (do 250 m, poza wnętrzami) i czeka na odpowiedź do 1,5 s - wtedy wynik uwzględnia teren i budynki. Poza async albo bez gracza w pobliżu sprawdza tylko elementy skryptów.

Zobacz też