# Пользовательские дополнения

На главную

## object.GetProjectedInfo( objectId )

Возвращает для объекта информацию об его 2D проекции на экран, если он есть в списке для проецирования в 2D координаты.

Точка (0, 0) - центр экрана. (-1, -1) - левый верхний угол. (1, 1) - правый нижний угол.

Если какая-либо возвращаемая координата равна 1 или -1, то объект находится за зоной видимости. Если обе координаты в промежутке (-1, 1), то проецируемая точка видна на экране.

    -- библиотека
    object

    -- семантика
    function GetProjectedInfo( objectId )

    -- входные параметры:
    objectId: ObjectId - идентификатор объекта

    -- возвращаемое значение:
    table or nil - если объект найден и он в списке для проецирования, то таблица с полями:
      posX: number - 2D экранная координата в интервале [-1, 1]
      posY: number - 2D экранная координата в интервале [-1, 1]
      playerDistance: number - дистанция от объекта до главного игрока в метрах
      cameraDistance: number - дистанция от объекта до камеры в метрах
      isLos: boolean - false, если на линии видимости до объекта какое-то препятствие.
      canProject: boolean - false, если объект не может быть спроецирован. например изменились условия, и он теперь не детектируется детекторами. В обычной ситуации всегда true.

    -- пример
    local show = true

    local projectedInfo =object.GetProjectedInfo( avatar.GetTarget() )
    if projectedInfo then

      local position = {} -- экранные координаты в пикселях
      position.x = projectedInfo.posX * width / 2
      position.y = projectedInfo.posY * height / 2

      -- попадание 3D точки в зону видимости
      if ( math.abs( projectedInfo.posX ) ~= 1 ) and ( math.abs( projectedInfo.posY ) ~= 1 ) then
        if projectedInfo.isLos then
          show = false -- точка видна на экране - не показываем
        else
          position.y = -height / 2 -- точка за препятствием - показываем сверху
        end
      end
    end

#### Search: "CategoryLuaApi" "CategoryProjectedObject"

EnumAttachedObjectPos
EventProjectedObjectsChanged
FunctionObjectAddToProjected
FunctionObjectGetProjectedInfo
FunctionObjectRemoveFromProjected
FunctionObjectSetControl3DForProjected

#### Search: "CategoryLuaApi" "CategoryObject"

CategoryObject
EnumVendor
EventCannotAttachWidget3D
EventObjectCombatStatusChanged
EventObjectDetectFinished
EventObjectDetectorListChanged
EventObjectDetectStarted
EventObjectHealthChanged
EventObjectNameChanged
EventObjectSelectableChanged
EventObjectUiinfoChanged
EventPickObject
EventProjectedObjectsChanged
EventQuestMarkUpdated
EventSecretFinisherStatusChanged
FunctionAvatarEnableClientDetector
FunctionAvatarGetDetectedObjects
FunctionAvatarIsClientDetectorEnabled
FunctionObjectAddToProjected
FunctionObjectAttachWidget2D
FunctionObjectAttachWidget3D
FunctionObjectDetachAllWidgets3D
FunctionObjectDetachWidget2D
FunctionObjectDetachWidget3D
FunctionObjectGetBuffInfo
FunctionObjectGetBuffInstances
FunctionObjectGetBuffs
FunctionObjectGetDetectors
FunctionObjectGetHealthInfo
FunctionObjectGetInteractorInfo
FunctionObjectGetInteractorQuests
FunctionObjectGetName
FunctionObjectGetPos
FunctionObjectGetProjectedInfo
FunctionObjectGetUIInfo
FunctionObjectGetWorldSecrets
FunctionObjectHasQuest
FunctionObjectHasWorldSecret
FunctionObjectHighlight
FunctionObjectIsAstralUnit
FunctionObjectIsDead
FunctionObjectIsDetected
FunctionObjectIsDevice
FunctionObjectIsEnemy
FunctionObjectIsExist
FunctionObjectIsFar
FunctionObjectIsFriend
FunctionObjectIsInCombat
FunctionObjectIsInUsageRange
FunctionObjectIsTransport
FunctionObjectIsUnit
FunctionObjectIsUsable
FunctionObjectIsVendor
FunctionObjectRemoveBuff
FunctionObjectRemoveFromProjected
FunctionObjectSetControl3DForProjected
FunctionObjectSetCutTerrainArea
FunctionObjectStartVisualAction
FunctionObjectStopVisualAction

CategoryLuaApi CategoryFunction CategoryObject CategoryProjectedObject

На главную