Lalalu Posted June 11, 2017 Share Posted June 11, 2017 Holaaaaaa, qué tal, hago este post con el siguiente motivo: Quisiera saber como debo hacer para que se cree otro tipo de llamas distintas a la del fuego, no sé explicar muy bien, a ver: Cómo ven en este vídeo, se crean unas llamas con otra textura por separado del fuego normal, pude lograr conseguir ese efecto de las llamas reemplazando "bullethitsmoke" , osea el nombre de la textura que reemplaza el fuego, o al menos es así en mi script, al reemplazar dicha imagen funciona bien, salen las llamas negras, el problema es que se reemplazan todas las llamas del gta, hasta las explosiones, en el particle objects hay .dff de llamas por separado, quería saber sí se le puede aplicar un shader o una textura a uno de esos dff, o si siquiera es posible, ya que necesito que estas llamas se creen aparte, individualmente, no que reemplazen todas las llamas, también había pensado que se activarán al colocar el comando con que saldrán dichas llamas negras y que al pasar un tiempo específico vuelva al shader común del fuego, osea de modo que las llamas negras se activen con el comando y con un tiempo específico desaparezca este shader y el común del fuego vuelva, no sé si algo de esto es posible ya que no sé mucho de script, pero espero que me den alguna opción o me digan que debería usar, o si acaso sólo digo locuras y nada de esto es posible, espero sus respuesas, no sé si me supe explicar bien Link to comment
alex17" Posted June 11, 2017 Share Posted June 11, 2017 para eso no debes reemplazar las texturas de las llamas , debes crear tus propias llamas utilizando dxDrawMaterialLine3D Link to comment
Lalalu Posted June 11, 2017 Author Share Posted June 11, 2017 Gracias, debería usar el ejemplo de la wiki para empezar? Link to comment
alex17" Posted June 11, 2017 Share Posted June 11, 2017 43 minutes ago, Lalalu said: Gracias, debería usar el ejemplo de la wiki para empezar? si , para que puedas ver como funciona dicha función y aplicarlo a tu script Link to comment
Rose Posted June 11, 2017 Share Posted June 11, 2017 Just now, alex17" said: para eso no debes reemplazar las texturas de las llamas , debes crear tus propias llamas utilizando dxDrawMaterialLine3D Cómo se crearían llamas con eso? te refieres a hacer algo como un gif? Link to comment
Lalalu Posted June 11, 2017 Author Share Posted June 11, 2017 Trate de usar el ejemplo de la wiki , pero no logré nada, sólo hice un desastre local activado = { } local players = getElementsByType( 'player' ) local img = dxCreateTexture("test.png") local x, y, z = getElementPosition(player) addEventHandler("onClientRender", root, function() -- x,y,z, targetx,targety,targetz,texture,width,color dxDrawMaterialLine3D( x+1, y+1, z+1, x, y+v, z , img, v, TextColor, x, y, z) end) function removeEffect( player ) if activado[ player ] == true then activado[ player ] = nil end end addEvent( "naruto:activarEfecto", true ) addEventHandler( "naruto:activarEfecto", getRootElement( ), function( player ) if not activado[ player ] or activado[ player ] == nil then activado[ player ] = true setTimer( removeEffect, 5000, 1, player ) end end ) no sé que hice ahí, pero seguiré intentando Link to comment
alex17" Posted June 12, 2017 Share Posted June 12, 2017 estaba aburrido así que te realice un ejemplo para que te ayudes. para esto utilice 6 img {1,png , 2 png , 3.png} ... para que simule las llamas en movimiento texturas = {} for i = 1, 6 do texturas[i] = dxCreateTexture(i..".png") width, height = dxGetMaterialSize( texturas[i] ) end function start_anim() if anim then return end img = 1 cx, cy, cz = getPositionFromElementOffset(localPlayer,0, 5, 0) cx2, cy2, cz2 = getPositionFromElementOffset(localPlayer,2, 7, 0) cx3, cy3, cz3 = getPositionFromElementOffset(localPlayer,-2, 7, 0) cx4, cy4, cz4 = getPositionFromElementOffset(localPlayer,1, 9, 0) cx5, cy5, cz5 = getPositionFromElementOffset(localPlayer,-1, 9, 0) addEventHandler("onClientRender", root, dx_amateratsu) setTimer(stop_anim, 3000, 1,"onClientRender") end addCommandHandler("jutsu", start_anim) function stop_anim () removeEventHandler("onClientRender", root, dx_amateratsu) anim = false end function dx_amateratsu() dxDrawMaterialLine3D (cx, cy, cz, cx , cy , cz - 1,texturas[math.ceil(img)], 4, tocolor(255,255,255,255)) dxDrawMaterialLine3D (cx2, cy2, cz2, cx2, cy2, cz2 - 1,texturas[math.ceil(img)], 4, tocolor(255,255,255,255)) dxDrawMaterialLine3D (cx3, cy3, cz3, cx3, cy3, cz3 - 1,texturas[math.ceil(img)], 4, tocolor(255,255,255,255)) dxDrawMaterialLine3D (cx4, cy4, cz4, cx4, cy4, cz4 - 1,texturas[math.ceil(img)], 4, tocolor(255,255,255,255)) dxDrawMaterialLine3D (cx5, cy5, cz5, cx5, cy5, cz5 - 1,texturas[math.ceil(img)], 4, tocolor(255,255,255,255)) if math.ceil(img) < 6 then img = img + 0.1 else img = 1 end end function getPositionFromElementOffset(element,offX,offY,offZ) local m = getElementMatrix ( element ) local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1] local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] return x, y, z end Link to comment
Lalalu Posted June 12, 2017 Author Share Posted June 12, 2017 Muchas gracias, seguiré probando n.n Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now