HU/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.

Visszaadja az adott ped meghatározott csontjának 3D-s koordinátáit.

[[{{{image}}}|link=|]] Tipp: Ha egy elemet szeretne a csonthoz kapcsolni, használja a [bone_attach] resource-t

Szintaxis

float, float, float getPedBonePosition ( ped thePed, int bone )

OOP Syntax Help! I don't understand this!

Method: ped:getBonePosition(...)


Kötelező paraméterek

  • thePed: a ped, akit szeretne vizsgálni.
  • bone: a csontok száma, hogy megkapja a pozícióját.
Bone numbers
  • 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

Visszatérési érték

Visszaadja a csont x, y, z pozícióját.

Példa

Ez a példa kiírja a játékos nevét a feje fölött.

addEventHandler( "onClientRender",root,
   function( )
      local px, py, pz, tx, ty, tz, dist
      px, py, pz = getCameraMatrix( )
      for _, 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, false,localPlayer ) then
               local sx, sy, sz = getPedBonePosition( v, 5 )
               local x,y = getScreenFromWorldPosition( sx, sy, sz + 0.3 )
               if x then -- getScreenFromWorldPosition returns false if the point isn't on screen
                dxDrawText( getPlayerName( v ), x, y, x, y, tocolor(150, 50, 0), 0.85 + ( 15 - dist ) * 0.02, "bankgothic" )
               end
            end
         end
      end
   end
)

Példa 2

Ez pedig kiírja az összes játékos csontját

addEventHandler('onClientRender', root, function()
	for bone = 1, 54 do
	 local bonePos = {getPedBonePosition(localPlayer, bone)}
		if bonePos[1] then
		 local screen = {getScreenFromWorldPosition(unpack(bonePos))}
			if screen[1] then
			 dxDrawText(''..bone, screen[1], screen[2])
			end
		end
	end
end)

Lásd még

Fordította