Jump to content

[Ayuda]Rotación de imagen


Ryuto

Recommended Posts

Buenas gente, necesito ayuda con esto pues hace poco intente hacer un poder para Mta, me fue bien pero necesito que la imagen tenga rotación por ejemplo en este vídeo

Dejare imágenes del mismo poder del vídeo, pero necesito saber como puedo hacer para que gire como en el vídeo x'D

http://www.subeimagenes.com/img/1118229 ... 373643.jpg

Dejare mi lua aquí.

  
local white = tocolor(255,255,255,255) 
local x, y,  z = 1964.216796875, -2365.044921875, 13 
local zdj = dxCreateTexture("test.png") 
  
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 
  
addEventHandler("onClientRender", root, 
function() 
dxDrawImage3D(x, y,  z , 6, 6, zdj, tocolor(255,255,255,255),0, x, y,  z +0.5) 
end) 

Muchas gracias por leer este post :D

Link to comment
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 
  
addEventHandler("onClientRender", root, 
    function() 
        rotation = rotation < 360 and rotation + 10 or 0 
        dxSetRenderTarget(target, true) 
        dxDrawImage ( 0, 0, 100, 100, "test.png", rotation ) 
        dxSetRenderTarget() 
    end 
) 
  
addEventHandler("onClientPreRender", root, 
function() 
    local gx, gy, gz = getPedBonePosition(localPlayer, 25) 
    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) 

Lo hice utilizando esta imagen: ps_wind_release_rasenshuriken_by_rizzyrama-d4c0di3.png

Pero si usas otra imagen, debes acomodar las posiciones de la anteúltima línea.

Link to comment
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 
  
addEventHandler("onClientRender", root, 
    function() 
        rotation = rotation < 360 and rotation + 10 or 0 
        dxSetRenderTarget(target, true) 
        dxDrawImage ( 0, 0, 100, 100, "test.png", rotation ) 
        dxSetRenderTarget() 
    end 
) 
  
addEventHandler("onClientPreRender", root, 
function() 
    local gx, gy, gz = getPedBonePosition(localPlayer, 25) 
    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) 

Lo hice utilizando esta imagen: ps_wind_release_rasenshuriken_by_rizzyrama-d4c0di3.png

Pero si usas otra imagen, debes acomodar las posiciones de la anteúltima línea.

Ya funciono quedo igual al vídeo, muchas gracias n.n, oye otra duda, con la función del set timer, ¿se puede hacer que quede pase 5 segundos y luego de esos 5 segundos desaparezca?

Link to comment
Si recibes un pequeño daño, se detiene
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 < 360 and rotation + 10 or 0 
            dxSetRenderTarget(target, true) 
            dxDrawImage ( 0, 0, 100, 100, "test.png", rotation ) 
            dxSetRenderTarget() 
        end 
    addEventHandler("onClientRender", root, rotationImg) 
      
     
    function positionPed () 
        local gx, gy, gz = getPedBonePosition(localPlayer, 25) 
        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 
    addEventHandler("onClientPreRender", root, positionPed) 
  
function Damage ( attacker, weapon, bodypart ) 
  
    removeEventHandler("onClientRender", root, rotationImg) 
    removeEventHandler("onClientPreRender", root, positionPed) 
  
end 
addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), Damage ) 

Genial, me también me podría servir pero, ¿se puede hacer que inicie con el comando /test y cuando aparezca, desaparezca a los 5 segundos?

Link to comment

Genial, me también me podría servir pero, ¿se puede hacer que inicie con el comando /test y cuando aparezca, desaparezca a los 5 segundos?

  
  
  
  
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 < 360 and rotation + 10 or 0 
            dxSetRenderTarget(target, true) 
            dxDrawImage ( 0, 0, 100, 100, "test.png", rotation ) 
            dxSetRenderTarget() 
        end 
      
    
    function positionPed () 
        local gx, gy, gz = getPedBonePosition(localPlayer, 25) 
        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) 
setTimer(function() 
    removeEventHandler("onClientRender", root, rotationImg) 
    removeEventHandler("onClientPreRender", root, positionPed) 
end, 5000, 1) 
end 
addCommandHandler("test", testing) 
  
  

Link to comment

Genial, me también me podría servir pero, ¿se puede hacer que inicie con el comando /test y cuando aparezca, desaparezca a los 5 segundos?

  
  
  
  
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 < 360 and rotation + 10 or 0 
            dxSetRenderTarget(target, true) 
            dxDrawImage ( 0, 0, 100, 100, "test.png", rotation ) 
            dxSetRenderTarget() 
        end 
      
    
    function positionPed () 
        local gx, gy, gz = getPedBonePosition(localPlayer, 25) 
        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) 
setTimer(function() 
    removeEventHandler("onClientRender", root, rotationImg) 
    removeEventHandler("onClientPreRender", root, positionPed) 
end, 5000, 1) 
end 
addCommandHandler("test", testing) 
  
  

Disculpa pero cuando pongo /test, no aparece nada :/

Link to comment

Que yo recuerde, 'test' ya es un comando definido en MTA, por lo que yo sé, cualquier función que se ejecute con 'test' no funcionará, sólo cambia 'test' por otra palabra

Link to comment

Genial, me también me podría servir pero, ¿se puede hacer que inicie con el comando /test y cuando aparezca, desaparezca a los 5 segundos?

  
  
  
  
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 < 360 and rotation + 10 or 0 
            dxSetRenderTarget(target, true) 
            dxDrawImage ( 0, 0, 100, 100, "test.png", rotation ) 
            dxSetRenderTarget() 
        end 
      
    
    function positionPed () 
        local gx, gy, gz = getPedBonePosition(localPlayer, 25) 
        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) 
setTimer(function() 
    removeEventHandler("onClientRender", root, rotationImg) 
    removeEventHandler("onClientPreRender", root, positionPed) 
end, 5000, 1) 
end 
addCommandHandler("test", testing) 
  
  

Disculpa pero cuando pongo /test, no aparece nada :/

Tranquilo, el error fue mio, olvide que no se puede poner "test" como comando, en la función "addCommandHandler".

Prueba así:

  
function testing () 
    addEventHandler("onClientRender", root, rotationImg) 
addEventHandler("onClientPreRender", root, positionPed) 
setTimer(function() 
    removeEventHandler("onClientRender", root, rotationImg) 
    removeEventHandler("onClientPreRender", root, positionPed) 
end, 5000, 1) 
end 
addCommandHandler("lol", testing) 
  

Que yo recuerde, 'test' ya es un comando definido en MTA, por lo que yo sé, cualquier función que se ejecute con 'test' no funcionará, sólo cambia 'test' por otra palabra

Exactamente, tienes la razón polluelo, ni "test", ni "list".

Link to comment
'list' no es un comando definido

Pero no se puede usar.

"Note: You cannot use "list" or "test" as command name."

Muchas gracias ya quedo igual al vídeo, ahora solo me falta hacer que cause daño y es muy simple, no sabía eso del "test" ni del "list", ahora lo sé para futuros scripts, muchas gracias por ayudarme :D

Link to comment
  • Recently Browsing   0 members

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