PL/DestroyElement
Ta funkcja "niszczy" element i wszystkie elementy w nim zawarte w hierarchii (elementy dziedziczące, itp.). Za pomocą tej funkcji nie można zniszczyć elementów Gracza. Gracz może zostać usunięty z hierarchii tylko wtedy, gdy wyjdzie z serwera lub zostanie wyrzucony. Elementu głównego root również nie można zniszczyć, jednak przekazanie roota jako argumentu spowoduje wymazanie wszystkich elementów z serwera, z wyjątkiem graczy i klientów, którzy staną się bezpośrednimi potomkami węzła głównego oraz innych elementów, których nie można zniszczyć, np. jako elementy katalogu głównego zasobów.
Uwaga: Podczas próby zniszczenia przeglądarki internetowej (Element/Browser), która wróciła z funkcji guiGetBrowser, występuje błąd, więc zamiast tego zniszcz element gui, który został zwrócony z guiCreateBrowser w przeciwnym razie gra się zawiesi (Przez Master_MTA). |
Uwaga: Ponieważ identyfikatory elementów są ostatecznie odtwarzane, zawsze upewnij się, że po wywołaniu tej funkcji nie ma zmiennych zawierających element |
Gracze to nie jedyne elementy, których nie można usunąć. Ta lista zawiera również klientów zdalnych i elementy konsoli.
Syntax
bool destroyElement ( element elementDoUsuniecia )
OOP Syntax Help! I don't understand this!
- Method: element:destroy(...)
Wymagane argumenty
- elementDoUsuniecia: Element, który chcesz "zniszczyć".
Zwraca
Zwraca true (prawda) jeżeli element został usunięty pomyślnie, false (fałsz) jeśli przekazany do niego element był nieprawidłowy lub nie można go było zniszczyć z innego powodu (Na przykład zniszczenie elementu po stronie klienta nie może zniszczyć elementów po stronie serwera).
Przykłady
Przykład 1: Ten przykład zniszczy każdy element na mapie, z wyjątkiem graczy i samego elementu głównego.
-- Zniszcz wszystkie jego potomki, z wyjątkiem graczy. destroyElement ( root )
Przykład 2: Ten przykład niszczy wszystkie pojazdy określonego modelu:
function zniszczWszystkiePojazdyOID(idModelu) -- zadeklaruj tabelę wszystkich istniejących pojazdów i użyj pętli local pojazdy = getElementsByType("vehicle") for i,v in ipairs(pojazdy) do -- jeśli identyfikator pojazdu jest taki sam co id podanego modelu, zniszcz go if (getElementModel(v) == idModelu) then destroyElement(v) end end end destroyVehiclesOfModel(445)
Przykład 3: Ten przykład pozwala na tworzenie claymorów. Kiedy eksplodują, colshape i obiekt Claymore zostaną zniszczone.
function stworzClaymore ( x,y,z, kreator ) local objektClaymore = createObject ( 1945, x, y, z - 1, 0, 0, 90 ) -- stwórz obiekt, który wygląda jak claymore local kolizjeClaymore = createColSphere ( x, y, z, 1 ) -- utwórz kolizje o kształcie kuli o promieniu 1 setElementData ( kolizjeClaymore, "objekt", objektClaymore ) -- przechowaj objekt claymore setElementData ( kolizjeClaymore, "kreator", kreator ) -- przechowaj osobę która stworzyła ten obiekt addEventHandler ( "onColShapeHit", kolizjeClaymore, wejscie ) -- dodaj obsługę zdarzeń do kolizji obiektu end function wejscieWKolizjeClaymore ( gracz, wymiar ) -- pobierz obiekt powiązany z obiektem claymore i kto go stworzył local obiektClaymore = getElementData ( source, "objekt" ) local kreatorClaymore = getElementData ( source, "kreator" ) - zdobądź pozycję obiektu local x,y,z = getElementPosition ( source ) createExplosion ( x,y,z, 12, kreatorClaymore ) -- stwórz eksplozję o niewielkich rozmiarach, skojarzoną z kreatorem na obszarze kolizji -- usuń obsługę zdarzeń dla kolizji removeEventHandler ( "onColShapeHit", source, wejscieWKolizjeClaymore ) -- zniszcz obiekt claymore i kolizje, aby nie został ponownie uruchomiony. destroyElement ( obiektClaymore ) destroyElement ( source ) end