Hallo, hier mal wieder ich. Derzeit stellt mich MTA vor ein Problem: Ich möchte 3D-Bilder an ein Fahrzeug attachen, bei denen ich allerdings kein attachElements verwenden kann. Dazu habe ich mir folgenden Code geschrieben (mit Marker statt Bild):
Lua
--aus dem Beispiel von createSearchLight
function getPositionFromElementOffset(uElement, iOffX, iOffY, iOffZ)
if isElement(uElement) then
local mElement = getElementMatrix(uElement)
local pos = Vector3(mElement[4][1] + mElement[2][1] * 3, mElement[4][2] + mElement[2][2] * 3, mElement[4][3] + mElement[2][3] * 3)
return pos.x, pos.y, pos.z
end
return false
end
local m = createMarker(0,0,0,"cylinder", 0.5)
addEventHandler("onClientRender", root, function()
local uVeh = getPedOccupiedVehicle(localPlayer)
if uVeh then
local iX, iY, iZ = getPositionFromElementOffset(uVeh, 0, 1, 0)
setElementPosition(m, iX, iY, iZ)
end
end)
Alles anzeigen
Die funktioniert auch, aber der Marker behält die Position nicht und "springt" einfach hinterher. Ich hatte es damals hinbekommen, indem ich ein Element attached und die Position davon verwendet habe. Das möchte ich aber hier vermeiden, da ich im schlimmsten Fall ein Objekt nur für einen Frame brauche.