Mixters Posted November 12, 2012 Share Posted November 12, 2012 Hola, alguien me dice como puedo hacer que se repita un proceso, como por ejemplo una imagen. Así al menos sera como una imagen gif. ¿Ayudan? function Gif ( source ) guiSetVisible ( imagenGif, false ) imagenGif = guiCreateStaticImage(2,480,160,135,"images/1.png",false) setTimer ( Gif, 1000, 1 ) end function Gif2 ( source ) guiSetVisible ( imagenGif, false ) imagenGif = guiCreateStaticImage(305,119,250,190,"images/2.png",false) setTimer ( Gif2, 1000, 1 ) end function Gif3 ( source ) guiSetVisible ( imagenGif, false ) imagenGif = guiCreateStaticImage(305,119,250,190,"images/3.png",false) setTimer ( Gif3, 1000, 1 ) end function Gif4 ( source ) guiSetVisible ( imagenGif, false ) imagenGif = guiCreateStaticImage(305,119,320,81,"images/4.png",false) setTimer ( Gif4, 3000, 1 ) end function StopGif( source ) guiSetVisible ( Gif, false ) end addCommandHandler ( "pararGif", Gif) Lo que quiero es que inicie en 1.png y termine en 4.png Link to comment
Castillo Posted November 12, 2012 Share Posted November 12, 2012 Usa mi funcion: https://wiki.multitheftauto.com/wiki/DxDrawGifImage Acordate de copiar el codigo fuente, ya que no es una funcion nativa del MTA. Link to comment
Mixters Posted November 12, 2012 Author Share Posted November 12, 2012 Usa mi funcion: https://wiki.multitheftauto.com/wiki/DxDrawGifImageAcordate de copiar el codigo fuente, ya que no es una funcion nativa del MTA. Algún ejemplo en Español ? Link to comment
Castillo Posted November 12, 2012 Share Posted November 12, 2012 No son necesarios, el ejemplo es entendible. Link to comment
NodZen Posted November 12, 2012 Share Posted November 12, 2012 Bueno mira , el ejemplo si se entiende , es asi: sWidth, sHeight = guiGetScreenSize() function dxDrawGifImage ( x, y, w, h, path, iStart, iType, effectSpeed ) local gifElement = createElement ( "dx-gif" ) if ( gifElement ) then setElementData ( gifElement, "gifData", { x = x, y = y, w = w, h = h, imgPath = path, startID = iStart, imgID = iStart, imgType = iType, speed = effectSpeed, tick = getTickCount ( ) } ) return gifElement else return false end end addEventHandler ( "onClientRender", root, function ( ) local currentTick = getTickCount ( ) for index, gif in ipairs ( getElementsByType ( "dx-gif" ) ) do local gifData = getElementData ( gif, "gifData" ) if ( gifData ) then if ( currentTick - gifData.tick >= gifData.speed ) then gifData.tick = currentTick gifData.imgID = ( gifData.imgID + 1 ) if ( fileExists ( gifData.imgPath .."".. gifData.imgID ..".".. gifData.imgType ) ) then gifData.imgID = gifData.imgID setElementData ( gif, "gifData", gifData ) else gifData.imgID = gifData.startID setElementData ( gif, "gifData", gifData ) end end dxDrawImage ( gifData.x, gifData.y, gifData.w, gifData.h, gifData.imgPath .."".. gifData.imgID ..".".. gifData.imgType ) end end end ) gif = dxDrawGifImage ( 1200, 5, 70, 80, "images/Frame", 0, "png", 50 )-- Esto Si probà. El 50 es la velocidad , cuanto menos es mas rapida. Link to comment
Bc# Posted November 13, 2012 Share Posted November 13, 2012 Tuve el mismo problema que tu mira este post quizás te ayude algo. https://forum.multitheftauto.com/viewtopic.php?f=145&t=49665 Si no te queda claro te dejo esto function dxDrawGifImage ( x, y, w, h, path, iStart, iType, effectSpeed ) local gifElement = createElement ( "dx-gif" ) if ( gifElement ) then setElementData ( gifElement, "gifData", { x = x, y = y, w = w, h = h, imgPath = path, startID = iStart, imgID = iStart, imgType = iType, speed = effectSpeed, tick = getTickCount ( ) } ) return gifElement else return false end end addEventHandler ( "onClientRender", root, function ( ) local currentTick = getTickCount ( ) for index, gif in ipairs ( getElementsByType ( "dx-gif" ) ) do local gifData = getElementData ( gif, "gifData" ) if ( gifData ) then if ( currentTick - gifData.tick >= gifData.speed ) then gifData.tick = currentTick gifData.imgID = ( gifData.imgID + 1 ) if ( fileExists ( gifData.imgPath .."".. gifData.imgID ..".".. gifData.imgType ) ) then gifData.imgID = gifData.imgID setElementData ( gif, "gifData", gifData ) else gifData.imgID = gifData.startID setElementData ( gif, "gifData", gifData ) end end dxDrawImage ( gifData.x, gifData.y, gifData.w, gifData.h, gifData.imgPath .."".. gifData.imgID ..".".. gifData.imgType ) end end end ) gif = dxDrawGifImage ( 769, 175, 193, 145, "images/img", 1, "png", 120 ) Prueba con eso pero renombra las imagenes dentro de la carpeta o no funcionara. Ponles: img1 img2 img3 img4 PD: Tus imagenes deven ser de igual tamaño o se vera mal. Link to comment
Mixters Posted November 14, 2012 Author Share Posted November 14, 2012 algún ejemplo que visualice 2 imágenes al menos ?, creo que solo así lograre entender. Link to comment
Bc# Posted November 14, 2012 Share Posted November 14, 2012 algún ejemplo que visualice 2 imágenes al menos ?, creo que solo así lograre entender. Ese ejemplo te sirve para la cantidad de imágenes que quieras. Lo único que tienes que tener en cuenta es que devén llamarse: img1 img2 .. .. .. .. img100 o hasta la cantidad de imagenes que tengas. PD: Almenos, ¿has probado el script? Link to comment
Mixters Posted November 15, 2012 Author Share Posted November 15, 2012 Pero pongo el ejemplo asi de simple? no tengo que especificar las imagenes ni la cantidad de imagenes ? Link to comment
Castillo Posted November 15, 2012 Share Posted November 15, 2012 No, el script lo hace solo, nada mas le pones el numero de imagen que queres que cargue primero. Link to comment
Mixters Posted November 15, 2012 Author Share Posted November 15, 2012 No, el script lo hace solo, nada mas le pones el numero de imagen que queres que cargue primero. wa, no esta tan difícil, no entendía porque normalmente se hay que especificar las imagenes.. Link to comment
Recommended Posts