Saltar al contenido
  • Global

    Global

    Chatroom Rules

    • NO SE DA SOPORTE EN CHATBOX
    • NO SPAM
    • NO FLOOD

Problema de posiciones (dxDrawImageSection)


Publicaciones recomendadas

  • Usuario
Publicado
¡Buenas! quisiera saber como puedo sacar el calculo para las posiciones de mi usuario, en mi radar de GTA V. Yo hice los cálculos así (con un poco de ayuda de otros scripts):




function calculate()
scrX, scrY = guiGetScreenSize()
imgSize = 3072
width = 223
height = 157
x = scrX * 130 / 2560
y = scrY - height - scrY * 73 / 1440
---
zoom = 0.9
size = 300 / zoom
markerSize = 25
posX, posY = x + 5, y + 5
width, height = width - 10, height - 20
markerX, markerY = posX + width / 2 - markerSize / 2, posY + 100
centerX, centerY = imgSize / 2 - width / 2 + markerSize / 2 - 54, imgSize / 2 - 100 - 63 + markerSize / 2
startX, startY = -size / 2 + width / 2, -size / 2 + 100 + markerSize / 2
val2x = x + 5
val2y = y + 144
val2width = 105
val2height = 9
renderTarget = dxCreateRenderTarget(width, height, true)
return true
end


function dxDrawRadar()
playerX = centerX + getElementPosition(localPlayer) * imgSize / 6000
playerY = centerY - getElementPosition(localPlayer) * imgSize / 6000
dxSetRenderTarget(renderTarget, true)
--- Posiciones no se como calcularlas:
dxDrawImageSection(startX, startY, size, size, playerX, playerY, 300, 300, "world.png", -getPedCameraRotation(localPlayer)) --<--[[ LAS POSICIONES ]] ---
--------------------------------------------------
dxSetRenderTarget()
dxDrawImage(posX, posY, width, height, renderTarget)
--- ... el codigo sigue ... pero el error esta en la linea señalada ... ---
end



Como esta alli, me queda asi el radar:


GTAVRadarProblem.png


- Gracias de antemano! ^_^

  • Usuario
Publicado (editado)

Ya Lo Solucione, el problema que tenia era que ponia asi en la localizacion:

 

  ---- Posiciones ----
  playerX = centerX + getElementPosition(getLocalPlayer())* imgSize / 6000
  playerY = centerY - getElementPosition(getLocalPlayer())* imgSize / 6000

lo cual localizaba TODAS Las posiciones, X, Y, Z. y Solo queria X y Y, por lo cual hise esto:

  px, py, pz = getElementPosition(getLocalPlayer())
  ---- EDITAR ----
  playerX = centerX + px * imgSize / 6000
  playerY = centerY - py * imgSize / 6000

:D

 

Sin Embargo aun sigo teniendo este problema:

 

Cuando salgo del mapa, no se termina la imagen, si no que se repite. ¿que puedo hacer ante esto?

 

es decir...

 

mta-screen_2014-07-02_19-40-08.png

Editado por Sergioks
  • Ex-Staff
Publicado

addEventHandler activa el evento

removeEventHandler desactiva el evento

 

El evento que debes usar para todos los elementos dxDraw es "onClientRender" o "onClientPreRender", ya sea un dxDrawText, dxDrawRectangle, dxDrawImageSection, dxDrawLine etc

y podría seguir agregando elementos hasta el infinito.

El caso es que tu script debería ser algo así

 

function asd()

dxDrawImageSection(...) -- Uso los puntos porque supone que ahí van los argumentos

end

addEventHandler("onClientRender",root,asd) -- Activamos el evento y por consecuencia la función

 

addCommandHandler("noimg",function()

removeEventHandler("onClientRender",root,asd) -- Desactivamos el evento

end)

  • Usuario
Publicado (editado)

¿no hay ninguna forma de hacer que la imagen no se repita? es decir, que solo aparezca una vez?, Sin necesidad de un removeEventHandler?

Editado por Sergioks
  • Usuario
Publicado (editado)

El mapa del radar es un mapa con las resoluciones de 3072x3072 del GTA San Andreas con el estilo de GTA V.. el mapa en si es uno normal, solo que con el estilo de GTA V.. cuando salgo del mapa, osea.. me voy por el monte chiliad y me pierdo en el mar, el mapa en el radar se repite... aqui una imagen:

 

http://spectral-gamers.tk/RadarProblem.png

 

Yo lo que quiero solucionar es ese problema de repeticion, que no se repita la imagen y quede el fondo azul que le puse abajo, ( con un dxDrawRectangle ).. mi codigo lua es este:


addEventHandler("onClientResourceStart", root,
function()
radarTexture = dxCreateTexture("images/world.png")
radar = dxCreateRenderTarget( s[1]*width*3/1440, s[2]*height*3/900 )
mapRadar = dxCreateRenderTarget( s[1]*width*3/1440, s[2]*height*3/900,true ) 

 local MimgW,MimgH    = dxGetMaterialSize(mapRadar)
addEventHandler ("onClientPreRender",root,
function()
dxSetRenderTarget( mapRadar,true )   
dxDrawRectangle((s[1]*50/1440)+5, (s[2]*650/900)+35, 253-10, 187-23, tocolor(67,86,88,255)) --- FONDO
dxDrawImage (0,0,(MimgW),(MimgH), radarTexture)
dxSetRenderTarget()dxDrawImageSection((s[1]*50/1440)+5, (s[2]*650/900)+35, 253-10, 187-23, 450-355,490-355, 300, 200,radar, 0, -90, 0, tocolor(255, 255, 255, 255),false) end end
Editado por Sergioks

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invitado
Responder a este tema...

×   Pegar como texto enriquecido.   Pegar como texto sin formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incrustado automáticamente..   Mostrar como un enlace en su lugar

×   Se ha restaurado el contenido anterior.   Limpiar editor

×   No se pueden pegar imágenes directamente. Carga o inserta imágenes desde la URL.

  • Explorando recientemente   0 miembros

    • No hay usuarios registrados viendo esta página.
×
×
  • Crear nuevo...