Доброго времени суток.
Сегодня я хотел бы рассказать вам о очень удобной вещи в MTA, такой как Дерево элементов ( Element tree )
Для начала взгляните на картинку:
На этой картинке представлено дерево элементов.
Как вы можете увидеть, родительский элемент - root ( getRootElement() )
Т.е всё древо исходит от него, т.е это все объекты, ресурсы, автомобили, игроки на сервере.
Итак, начём с освоения и переваривания примеров:
PHP код:
setElementModel(source, 19)
○ source - игрок [тут должен быть указан элемент]
○ 19 - ID модеели [тут должна быть указана модель]
Этой функцией мы установим игроку source (т.е исполняемому) скин на 19.
Итак, теперь сменим модель автомобилю:
PHP код:
local veh = createVehicle(411, 0.0, 0.0, 0.0)
setElementModel(veh, 522)
Итак, таким образом мы меняем Infernus на NRG.
Удобно, правда?
В SA-MP на сколько я знаю (!) нужно узнавать кастомными функциями кол-во пассажиров и их места, поворот кватернионами (?), цвет и пересоздавать автомобиль с новыми значениями.
Поскольку первый аргумент в функции - the Element, то можно менять модель любому элементу, в том числе и объектам.
Так, теперь приведём более сложный пример.
PHP код:
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")
И в нужном месте вставим:
PHP код:
destroyElement ( n_el )
В нашем случае удалиться и кнопка, и автомобиль, потому, что мы привязали их к созданному элементу "need" (который тоже удалиться).
Опять же, этой функцией ( destroyElement() ) удалиться любой указанный нами элемент, будь то автомобиль, пед, gui, объект и пр.
В принципе сказать мне больше нечего, если остались вопросы - задавайте.
Все функции элементов можно посмотреть здесь: https://wiki.multitheftauto.com/wiki/Element
Так же рекомендую урок от пользователя Essle:
•[урок] ElementData
Удачного дня
P.S: При размещении темы на других порталах просьба указывать автора: RastaOrecha