Доброго времени суток.

Сегодня я хотел бы рассказать вам о очень удобной вещи в MTA, такой как Дерево элементов ( Element tree )
Для начала взгляните на картинку:

https://wiki.multitheftauto.com/images/b/b3/Tre.png

На этой картинке представлено дерево элементов.
Как вы можете увидеть, родительский элемент - root ( getRootElement() )
Т.е всё древо исходит от него, т.е это все объекты, ресурсы, автомобили, игроки на сервере.

Итак, начнём с освоения и переваривания примеров:

Код:
setElementModel(source, 19)

○ source - игрок [тут должен быть указан элемент]
○ 19 - ID модели [тут должна быть указана модель]

Этой функцией мы установим игроку source (т.е исполняемому) скин на 19.

Итак, теперь сменим модель автомобилю:

Код:
local veh = createVehicle(411, 0.0, 0.0, 0.0)
setElementModel(veh, 522)

Удобно, правда?
Итак, таким образом мы меняем Infernus на NRG.
Поскольку первый аргумент в функции - the Element, то можно менять модель любому элементу, в том числе и объектам.

Так, теперь приведём более сложный пример.

Код:
n_el = createElement ( "need" ) -- Создадим элемент "need"
 
local veh = createVehicle ( 411, 0.0, 0.0, 0.0)
setElementParent(veh, n_el) -- Присвоим созданному автомобилю элемент "need"
 
guiCreateButton ( 0.0, 0.0, 0.0, 0.0, "Test", false, n_el ) -- Создадим кнопку и присвоим ей элемент n_el  ("need")

И в нужном месте вставим:

Код:
destroyElement ( n_el )

В нашем случае удалиться и кнопка, и автомобиль, потому, что мы привязали их к созданному элементу "need" (который тоже удалиться).
Опять же, этой функцией ( destroyElement() ) удалиться любой указанный нами элемент, будь то автомобиль, пед, gui, объект и пр.

Все функции элементов можно посмотреть здесь: https://wiki.multitheftauto.com/wiki/Element

Автор урока: Doc_Slove

Теги: MTA,Element tree