Ryuto Posted March 21, 2016 Share Posted March 21, 2016 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 * Link to comment
Ryuto Posted March 21, 2016 Author Share Posted March 21, 2016 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. Link to comment
Ryuto Posted March 21, 2016 Author Share Posted March 21, 2016 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
Ryuto Posted March 22, 2016 Author Share Posted March 22, 2016 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
Ryuto Posted March 24, 2016 Author Share Posted March 24, 2016 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
Ryuto Posted March 24, 2016 Author Share Posted March 24, 2016 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
Recommended Posts