RU/attachElements
Эта функция прикрепляет один элемент к другому, так что первый элемент следует за вторым при каждом его перемещении.
Если делается попытка прикрепить два элемента, которые уже прикреплены противоположным образом (например, theElement становится theAttachToElement и наоборот), 1-й порядок присоединения автоматически отключается в пользу 2-го порядка присоединения. Например, если carA был привязан к carB, теперь carB привязан к carA. Кроме того, элемент не может быть прикреплен к двум отдельным элементам одновременно. Например, две машины могут быть прикреплены к одной машине, но одна отдельная машина не может быть прикреплена к двум отдельным машинам. Если вы попытаетесь это сделать, существующее вложение будет автоматически удалено и заменено новым. Например, если carA предлагается прикрепить к carB, а затем carC, он присоединяется только к carC.
Эта функция совместима не со всеми элементами. Совместимы следующие элементы:
Примечание:
  | 
Синтаксис
bool attachElements( element theElement, element theAttachToElement, [float xPosOffset = 0, float yPosOffset = 0, float zPosOffset = 0, float xRotOffset = 0, float yRotOffset = 0, float zRotOffset = 0] )
Синтаксис ООП Помогите! Я не понимаю, что это!
- Метод: element:attach(...)
 - Парная функция: detachElements
 
Обязательные аргументы
- theElement: Элемент, который вы хотите прикрепить.
 - theAttachToElement: Элемент, к которому вы хотите прикрепить первый.
 
Необязательные аргументы
Примечание. При использовании необязательных аргументов Вам может потребоваться предоставить все аргументы перед тем аргументом, который Вы хотите использовать. Для более подробной информации ознакомьтесь с необязательными аргументами.
- xPosOffset: Смещение по оси X, если вы хотите, чтобы элементы находились на определенном расстоянии друг от друга (по умолчанию 0).
 - yPosOffset: Смещение по оси Y (по умолчанию 0).
 - zPosOffset: Смещение по оси Z (по умолчанию 0).
 - xRotOffset: Смещение поворота по оси X (по умолчанию 0).
 - yRotOffset: Смещение поворота по оси Y (по умолчанию 0).
 - zRotOffset: Смещение поворота по оси Z (по умолчанию 0).
 
Возвращаемые значения
Пример использования
Пример 1: В этом примере маркер прикрепляется к игроку, укравшему мистера Вупи:
local vehicleMrWhoopee = createVehicle( 423, 237.472, -54.225, 1.518, 0, 354.488, 0 ) -- создаёт автомобиль
function onMrWhoopeeEnter( thePlayer, seat, jackedPlayer )
    outputChatBox( getPlayerName( thePlayer ) .. " украл Вупи!", root, 255, 0, 0 ) -- выводит сообщение в чат
    local arrowMarker = createMarker( 0, 0, 0, "arrow", .75, 255, 0, 0, 170 ) -- создаёт маркер для прикрепления
    attachElements( arrowMarker, thePlayer, 0, 0, 2 ) -- прикрепляет маркер к игроку с вертикальным смещением 2 единицы
end
addEventHandler( "onVehicleEnter", vehicleMrWhoopee, onMrWhoopeeEnter ) -- прикрепляет функцию 'onMrWhoopeeEnter' к обработчику события "onVehicleEnter"
Пример 2: В этом примере добавляется танк поверх игрока (для дополнительной защиты) при помощи команды /hat:
function tankHat( source, commandName )
      local x, y, z = getElementPosition( source ) -- получает позицию игрока
      local tank = createVehicle( 432, x, y, z + 5 ) -- создаёт танк
      attachElements( tank, source, 0, 0, 5 ) -- прикрепляет танк к игроку
end
addCommandHandler( "hat", tankHat ) -- прикрепляет функцию 'tankHat' к обработчику команды "hat"
Пример 3: В этом примере добавляется танк поверх игрока (для дополнительной защиты) со стороны клиента при помощи команды /hat. Это означает, что он будет невидим для других игроков.
function tankHat(commandName) local position = Vector3( getElementPosition(localPlayer) ) -- получает позицию локального игрока local tank = createVehicle( 432, position.x, position.y, position.z + 5 ) -- создаёт танк attachElements(tank,localPlayer, 0, 0, 5 ) -- прикрепляет танк к игроку end addCommandHandler( "hat", tankHat ) -- прикрепляет функцию 'tankHat' к обработчику команды "hat"
Смотрите также
Серверные функции
- addElementDataSubscriber
 - hasElementDataSubscriber
 - removeElementDataSubscriber
 - clearElementVisibleTo
 - cloneElement
 - getAllElementData
 - getElementByIndex
 - getElementSyncer
 - getElementZoneName
 - removeElementData
 - isElementVisibleTo
 - setElementSyncer
 - setElementVisibleTo
 
Клиентские функции
- getElementBoundingBox
 - getElementDistanceFromCentreOfMassToBaseOfModel
 - getElementRadius
 - isElementCollidableWith
 - isElementOnScreen
 - isElementStreamable
 - isElementStreamedIn
 - isElementSyncer
 - isElementWaitingForGroundToLoad
 - setElementCollidableWith
 - setElementStreamable
 
- getElementBoneMatrix
 - getElementBonePosition
 - getElementBoneRotation
 - setElementBoneMatrix
 - setElementBonePosition
 - setElementBoneRotation
 - updateElementRpHAnim
 
Общие функции
- attachElements
 - createElement
 - destroyElement
 - detachElements
 - getAttachedElements
 - getElementAlpha
 - getElementAttachedOffsets
 - getElementAttachedTo
 - getElementCollisionsEnabled
 - getElementByID
 - getElementChild
 - getElementChildren
 - getElementChildrenCount
 - getElementColShape - получает связанную с элементом форму коллизии
 - getElementData
 - getElementDimension
 - getElementHealth
 - getElementID
 - getElementInterior
 - getElementModel
 - getElementMatrix
 - setElementMatrix
 - getElementParent
 - getElementPosition
 - getElementRotation
 - getElementType
 - getElementVelocity
 - getElementsByType
 - getElementsWithinColShape - получает список всех элементов связанных с формой коллизии указанного типа
 - getLowLODElement
 - isElementLowLOD
 - setLowLODElement
 - getPedContactElement
 - getResourceDynamicElementRoot
 - getResourceRootElement
 - getRootElement
 - hasElementData
 - isElement
 - isElementAttached
 - isElementCallPropagationEnabled
 - isElementDoubleSided
 - isElementFrozen
 - isElementInWater
 - isElementWithinColShape - определяет, находится ли элемент в пределах формы коллизии
 - isElementWithinMarker
 - setElementAlpha
 - setElementAngularVelocity
 - getElementAngularVelocity
 - setElementAttachedOffsets
 - setElementCallPropagationEnabled
 - setElementCollisionsEnabled
 - setElementData
 - setElementDimension
 - setElementDoubleSided
 - setElementFrozen
 - setElementHealth
 - setElementID
 - setElementInterior
 - setElementModel
 - setElementParent
 - setElementPosition
 - setElementRotation
 - setElementVelocity