RU/GetPedBonePosition

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Функция возвращает координаты положения определённой части тела персонажа в формате 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
)

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