Jump to content

[Ayuda] Movimiento de imagen


Ryuto

Recommended Posts

Hola gente del grupo, he tenido unos problemas con una imagen o efecto que he querido hacer para el mta, pues, mi problema es que la imagen siempre se queda acostada en el suelo, y he intentado varias formas para que quede levantada, pero ninguna me sirvió útil, aquí dejo unas imágenes de lo que me refiero.

Imagen 1:

http://oi67.tinypic.com/1zwm5iq.jpg

*Como podrán ver el efecto o imagen quedo acostada en el suelo, y no he encontrado forma alguna de levantarla*

Imagen 2:

http://oi67.tinypic.com/4uucle.jpg

*Algo así me gustaria que quede, pero no he cambiado muchas cosas en el lua pero ninguna me funciono*

Aqui dejare mi lua

  
  
  
  
local white = tocolor(255,255,255,255) 
    local target = dxCreateRenderTarget(100, 100, true) 
    local rotation = 0 
      
    function dxDrawImage3D(x,y,z,w,h,m,c,r,...) 
            local lx, ly, lz = x+w, y+h, (z+tonumber(r or 0)) or z 
        return dxDrawMaterialLine3D(x,y,z, lx, ly, lz, m, h, c or white, ...) 
    end 
      
  
        function rotationImg() 
            rotation = rotation < 4 and rotation + 2 or 0 
            dxSetRenderTarget(target, true) 
            dxDrawImage ( 0, 0, 100, 100, "test.png", rotation ) 
            dxSetRenderTarget() 
        end 
      
    
    function positionPed () 
        local gx, gy, gz = getPedBonePosition(localPlayer, 44) 
        dxDrawImage3D( gx-1.5, gy-1.5, gz+.1, 3, 3, target, tocolor(255,255,255,255), 0, gx-1.5, gy-1.5, gz+100) 
    end 
  
  
function testing () 
    addEventHandler("onClientRender", root, rotationImg) 
addEventHandler("onClientPreRender", root, positionPed) 
end 
addCommandHandler("lol", testing) 
  
  
  

Por favor, vengo intentar resolver esto de hace tiempo pero no he encontrado alguna solución :|

*Gracias por su atención :D *

Link to comment
Depende de las coordenadas en dónde colocas tu imagen.

Lo sé, pero el script me habían ayudado a hacerlo en una publicación anterior, pero no he intentando cambiar las coordenadas y no se ha levantado por nada.

Sube la imagen para probarlo en mi editor. Si me funciona lo publico aqui el script.

Claro, tuve que subir la imagen por mediafire, ya que tuve problemas con el subidor de imagenes :?

http://www.mediafire.com/view/1bjaubfo3hzh7r3/test.png

*Gracias por la ayuda*

Link to comment
    function dxDrawImageOnElement(TheElement,Image,distance,height,width,R,G,B,alpha) 
                local px, py, pz = getPedBonePosition(TheElement, 1) 
                local x, y, z = px, py, pz-1.5 
                local x2, y2, z2 = getElementPosition(localPlayer) 
                local distance = distance or 20 
                local height = height or 1 
                local width = width or 1 
                if (isLineOfSightClear(x, y, z, x2, y2, z2, false, false, false, false, false, false, false, false)) then 
                        local distanceBetweenPoints = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) 
                        if(distanceBetweenPoints < distance) then 
                            dxDrawMaterialLine3D(x, y, z, x, y, z+3.5*(distanceBetweenPoints/distance), Image, width-(distanceBetweenPoints/distance), tocolor(R or 255, G or 255, B or 255, alpha or 255)) 
                        end 
                end 
    end 
  
    local target = dxCreateTexture("test.png") 
    function drawToPed () 
        dxDrawImageOnElement(getLocalPlayer(), target, 20, 1, 3) 
    end 
  
    function testing () 
        addEventHandler("onClientPreRender", root, drawToPed) 
    end 
    addCommandHandler("lol", testing) 

Nota: la imagen test.png girala 180° y listo.

Pero estem.. ¿en que linea o parte del lua se puede configurar así se puede cambiar la posición del efecto o de la imagen?, es para evitar futuros post de este tema con otros efectos, porque de seguro haré mas con otras posiciones :?

Link to comment
    function dxDrawImageOnElement(TheElement,Image,distance,height,width,R,G,B,alpha) 
                local px, py, pz = getPedBonePosition(TheElement, 1) 
                local x, y, z = px, py, pz-1.5 
                local x2, y2, z2 = getElementPosition(localPlayer) 
                local distance = distance or 20 
                local height = height or 1 
                local width = width or 1 
                if (isLineOfSightClear(x, y, z, x2, y2, z2, false, false, false, false, false, false, false, false)) then 
                        local distanceBetweenPoints = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) 
                        if(distanceBetweenPoints < distance) then 
                            dxDrawMaterialLine3D(x, y, z, x, y, z+3.5*(distanceBetweenPoints/distance), Image, width-(distanceBetweenPoints/distance), tocolor(R or 255, G or 255, B or 255, alpha or 255)) 
                        end 
                end 
    end 
  
    local target = dxCreateTexture("test.png") 
    function drawToPed () 
        dxDrawImageOnElement(getLocalPlayer(), target, 20, 1, 3) 
    end 
  
    function testing () 
        addEventHandler("onClientPreRender", root, drawToPed) 
    end 
    addCommandHandler("lol", testing) 

Nota: la imagen test.png girala 180° y listo.

Tuve un nuevo problema, el efecto quedo muy pequeño en la altura, ya he intentado cambiar la linea 6 agregando numeros al azar pero nada, también he agregado números al azar en la linea 18 pero tampoco sucedió nada.

http://i.imgur.com/mG2hk41.png?1

*Muchas gracias por ayudarme hasta ahora*

Link to comment
El valor que vas aumentar es en z+2.5, en la función dxDrawMaterialLine3D, puedes aumentarlo a z+3 o z+5, el que tu quieras. Es el 6to argumento de la función.

Éste script está cambiado y mejorado comparado con el anterior que puse.

function dxDrawImageOnElement(TheElement,Image,distance,height,width,R,G,B,alpha) 
                local px, py, pz = getPedBonePosition(TheElement, 1) 
                local x, y, z = px, py, pz 
                local x2, y2, z2 = getElementPosition(localPlayer) 
                local distance = distance or 20 
                local height = height or 1 
                local width = width or 1 
                local distanceBetweenPoints = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) 
                if(distanceBetweenPoints < distance) then 
                    dxDrawMaterialLine3D(x, y, z-1.8, x, y, z+2.5, Image, width-(distanceBetweenPoints/distance), tocolor(R or 255, G or 255, B or 255, alpha or 255)) 
                end 
    end 
  
    local target = dxCreateTexture("test.png") 
    function drawToPed () 
        dxDrawImageOnElement(getLocalPlayer(), target, 20, 1, 3) 
    end 
  
    function testing () 
        addEventHandler("onClientPreRender", root, drawToPed) 
    end 
    addCommandHandler("lol", testing) 

Muchas gracias, ya quedo bien :)

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...