RU/GetPedBonePosition

From Multi Theft Auto: Wiki
Jump to navigation Jump to search

Функция возвращает координаты положения определённой части тела персонажа в формате 3D.

Синтаксис

float float float getPedBonePosition ( ped thePed, int bone )

Обязательные атрибуты

  • thePed: Персонаж, положение части тела которого требуется определить.
  • bone: Часть тела, положение которой нужно определить.
Номера частей тела
  • 1: BONE_PELVIS1 - тазобедренная часть (чуть ниже пупка)
  • 2: BONE_PELVIS - тазобедренная часть (чуть выше пупка)
  • 3: BONE_SPINE1 - позвоночник
  • 4: BONE_UPPERTORSO - верхня часть тела (начало шеи)
  • 5: BONE_NECK - шейная часть
  • 6: BONE_HEAD2 - голова
  • 7: BONE_HEAD1 - голова
  • 8: BONE_HEAD - голова
  • 21: BONE_RIGHTUPPERTORSO - правая верхняя часть тела (чуть правее шеи)
  • 22: BONE_RIGHTSHOULDER - правое плечо
  • 23: BONE_RIGHTELBOW - локоть правой руки
  • 24: BONE_RIGHTWRIST - запястье правой руки
  • 25: BONE_RIGHTHAND - кисть правой руки
  • 26: BONE_RIGHTTHUMB - большой палец правой руки
  • 31: BONE_LEFTUPPERTORSO - левая верхняя часть тела (чуть левее шеи)
  • 32: BONE_LEFTSHOULDER - левое плечо
  • 33: BONE_LEFTELBOW - локоть левой руки
  • 34: BONE_LEFTWRIST - запястье левой руки
  • 35: BONE_LEFTHAND - кисть левой руки
  • 36: BONE_LEFTTHUMB - большой палец левой руки
  • 41: BONE_LEFTHIP - часть бедра левой ноги
  • 42: BONE_LEFTKNEE - колено левой ноги
  • 43: BONE_LEFTANKLE - лодыжка левой ноги
  • 44: BONE_LEFTFOOT - ступня левой ноги
  • 51: BONE_RIGHTHIP - часть бедра правой ноги
  • 52: BONE_RIGHTKNEE - колено правой ноги
  • 53: BONE_RIGHTANKLE - лодыжка правой ноги
  • 54: BONE_RIGHTFOOT - ступня правой ноги

Данные подлежащие возвращению

Возвращаются координаты положения x, y, z определённой части тела персонажа.

Пример

Этот пример скрипта показывает имена/ники над головами игроков.

addEventHandler("onClientRender",getRootElement(),
   function()
      local px, py, pz, tx, ty, tz, dist
      px, py, pz = getCameraMatrix()
      for k, v in ipairs(getElementsByType("player")) do
         tx, ty, tz = getElementPosition(v)
         dist = math.sqrt((px - tx) ^ 2 + (py - ty) ^ 2 + (pz - tz) ^ 2)
         if dist < 30.0 then
            if isLineOfSightClear(px, py, pz, tx, ty, tz, true, false, false, true, false, false, getLocalPlayer()) then
               local sx, sy, sz = getPedBonePosition(v, 5)
               local x,y = getScreenFromWorldPosition(sx, sy, sz + 0.3)
               if x then -- getScreenFromWorldPosition возвращает false(ложь), если персонаж (координата Х) не виден на экране
                  dxDrawText(getPlayerName(v), x, y, x, y, tocolor(150, 50, 0), 0.85 + (15 - dist) * 0.02, "bankgothic")
               end
            end
         end
      end
   end
)

Другие функции