Jump to content

[Ayuda] DX Relative


aka Blue

Recommended Posts

Bueno, pues estaba intentando poner el modo relativo a un panel DX y pues no puedo entender por qué no sale.

PD: Salen solo los DXDrawRectangle y el texto pero no sale la barrita. Encima, los rectángulos y el texto salen arriba en mi pantalla, casi en el medio.

scX, scY = guiGetScreenSize() 
      local screenX = 1365 
      local screenY = 1024 
      local sx = 1/screenX 
      local sy = 1/screenY 
      local sed = getElementData(localPlayer,"sed") 
      local anchototal = 120 * sx 
      local anchototal2 = (sed*anchototal)/maxResistencia 
      dxDrawRectangle(scX * (842*sx), scY * (185*sy), scX * (138*sx), scY * (86*sy), tocolor(0, 0, 0, 90), false) 
      dxDrawText("Sed", scX * (890*sx), scY * (184*sy), scX * (845*sx), scY * (213*sy), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
      dxDrawRectangle(scX * (848*sx), scY (198*sy), scX * (124*sx), scY * (14*sy), tocolor(0, 0, 0, 255), false) 
      dxDrawRectangle(scX * (850*sx), scY * (200*sy), scX * (anchototal), scY * (10*sy), tocolor(0, 0, 0, 90), false) 
      dxDrawRectangle(scX * (850*sx), scY * (200*sy), scX * (anchototal2), scY * (10*sy), tocolor(0, 255, 0, 200), false) 
  

Link to comment

Prueba con esto.

    scX, scY = guiGetScreenSize()    
     
    screenX = 1365 
    screenY = 1024 
  
    scX, scY = ( scX / screenX ), ( scY / screenY ) 
     
     
    local sed = getElementData(localPlayer,"sed") 
    local anchototal = 120 * sx 
    local anchototal2 = (sed*anchototal)/maxResistencia 
    dxDrawRectangle(scX*305, scY*218, 435, 70, tocolor(255, 0, 0, 255), false) 
         
    dxDrawRectangle(scX * (842), scY * (185), scX * (138), scY * (86), tocolor(0, 0, 0, 90), false) 
    dxDrawText("Sed", scX * (890), scY * (184), scX * (845), scY * (213), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
    dxDrawRectangle(scX * (848), scY (198), scX * (124), scY * (14), tocolor(0, 0, 0, 255), false) 
    dxDrawRectangle(scX * (850), scY * (200), scX * (anchototal), scY * (10), tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle(scX * (850), scY * (200), scX * (anchototal2), scY * (10), tocolor(0, 255, 0, 200), false) 

Link to comment
para ver tu resolucion de MTA ve a configuracion / video / y en resolucion lo primero que te salga sin hacer nada es tu resolucion de pantalla
En vez de repetir la aritmética en cada línea, re-escribe la función y agregalo ahí

Si. Además esta colocando una resolución que no existe.

Link to comment
para ver tu resolucion de MTA ve a configuracion / video / y en resolucion lo primero que te salga sin hacer nada es tu resolucion de pantalla
En vez de repetir la aritmética en cada línea, re-escribe la función y agregalo ahí

Si. Además esta colocando una resolución que no existe.

Si que existe.. quizás tu no la puedes usar porque tu monitor no llega a ese tamaño (testeado con uno que alcanza 1920x1368)

Link to comment
para ver tu resolucion de MTA ve a configuracion / video / y en resolucion lo primero que te salga sin hacer nada es tu resolucion de pantalla
En vez de repetir la aritmética en cada línea, re-escribe la función y agregalo ahí

Si. Además esta colocando una resolución que no existe.

Si que existe.. quizás tu no la puedes usar porque tu monitor no llega a ese tamaño (testeado con uno que alcanza 1920x1368)

Yo hice la prueba al quitar la casilla de "mostrar resoluciones no seguras" en opciones pero no aparece una igual, en fin.

Link to comment
¿Pero es la resolución de mi MTA o de mi monitor?

PD: Mi monitor es pequeño xD.

La de MTA. El monitor no tiene nada que ver con la resolución del mta, pero eso si, si tu monitor es muy pequeño, algunas resoluciones no te saldrán en las opciones de igual manera se pueden mostrar todas al hacer lo que escribí arriba, pero es algo que mta trae desactivado por defecto.

Link to comment

Na, tampoco es muy pequeño. La resolución que uso en MTA es ésta:

1024 x 768 x 32

PD: El código que tengo de momento:

scX, scY = guiGetScreenSize() 
screenX = 1024 
screenY = 768 
scX, scY = ( scX / screenX ), ( scY / screenY ) 
function mostrarsed () 
    local sed = getElementData(localPlayer,"sed") 
    local anchototal = 120 * sx 
    local anchototal2 = (sed*anchototal)/maxResistencia 
     
    dxDrawRectangle(scX*305, scY*218, 435, 70, tocolor(255, 0, 0, 255), false) 
    dxDrawRectangle(scX * (842), scY * (185), scX * (138), scY * (86), tocolor(0, 0, 0, 90), false) 
    dxDrawText("Sed", scX * (890), scY * (184), scX * (845), scY * (213), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
    dxDrawRectangle(scX * (848), scY (198), scX * (124), scY * (14), tocolor(0, 0, 0, 255), false) 
    dxDrawRectangle(scX * (850), scY * (200), scX * (anchototal), scY * (10), tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle(scX * (850), scY * (200), scX * (anchototal2), scY * (10), tocolor(0, 255, 0, 200), false) 
  
end 

Link to comment
Na, tampoco es muy pequeño. La resolución que uso en MTA es ésta:

1024 x 768 x 32

PD: El código que tengo de momento:

scX, scY = guiGetScreenSize() 
screenX = 1024 
screenY = 768 
scX, scY = ( scX / screenX ), ( scY / screenY ) 
function mostrarsed () 
    local sed = getElementData(localPlayer,"sed") 
    local anchototal = 120 * sx 
    local anchototal2 = (sed*anchototal)/maxResistencia 
     
    dxDrawRectangle(scX*305, scY*218, 435, 70, tocolor(255, 0, 0, 255), false) 
    dxDrawRectangle(scX * (842), scY * (185), scX * (138), scY * (86), tocolor(0, 0, 0, 90), false) 
    dxDrawText("Sed", scX * (890), scY * (184), scX * (845), scY * (213), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
    dxDrawRectangle(scX * (848), scY (198), scX * (124), scY * (14), tocolor(0, 0, 0, 255), false) 
    dxDrawRectangle(scX * (850), scY * (200), scX * (anchototal), scY * (10), tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle(scX * (850), scY * (200), scX * (anchototal2), scY * (10), tocolor(0, 255, 0, 200), false) 
  
end 

y el error xD?

Link to comment

Donde esta definida 'sx', 'maxResistencia'? si no aparece nada es por que hay error en esas dos variables.

Na, tampoco es muy pequeño. La resolución que uso en MTA es ésta:

1024 x 768 x 32

PD: El código que tengo de momento:

scX, scY = guiGetScreenSize() 
screenX = 1024 
screenY = 768 
scX, scY = ( scX / screenX ), ( scY / screenY ) 
function mostrarsed () 
    local sed = getElementData(localPlayer,"sed") 
    local anchototal = 120 * sx 
    local anchototal2 = (sed*anchototal)/maxResistencia 
     
    dxDrawRectangle(scX*305, scY*218, 435, 70, tocolor(255, 0, 0, 255), false) 
    dxDrawRectangle(scX * (842), scY * (185), scX * (138), scY * (86), tocolor(0, 0, 0, 90), false) 
    dxDrawText("Sed", scX * (890), scY * (184), scX * (845), scY * (213), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
    dxDrawRectangle(scX * (848), scY (198), scX * (124), scY * (14), tocolor(0, 0, 0, 255), false) 
    dxDrawRectangle(scX * (850), scY * (200), scX * (anchototal), scY * (10), tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle(scX * (850), scY * (200), scX * (anchototal2), scY * (10), tocolor(0, 255, 0, 200), false) 
  
end 

y el error xD?

y en la linea 13 no está la aritmética en " scY (198) "

    dxDrawRectangle(scX * (848), scY (198), scX * (124), scY * (14), tocolor(0, 0, 0, 255), false) 

Link to comment

aca tienes @Blue Pie me habia equivocado en lo que te dije por skype :lol:

PD : ya lo probe y funciona

   
  local sx, sy = guiGetScreenSize() 
  local screenX = 1024 
  local screenY = 768 
  local scX, scY = ( 1 / screenX  ), ( 1 / screenY ) 
  
    function mostrarsed () 
       local sed = getElementData(localPlayer,"sed") or 100 
       local anchototal = 120  
       local anchototal2 = (sed*anchototal)/100 
       dxDrawRectangle2( 842 , 185,  138,  86, tocolor(0, 0, 0, 90), false) 
       dxDrawRectangle2(848, 198, 124, 14, tocolor(0, 0, 0, 255), false) 
       dxDrawRectangle2(850, 200, anchototal, 10, tocolor(0, 0, 0, 90), false) 
       dxDrawRectangle2(850, 200, anchototal2, 10, tocolor(0, 255, 0, 200), false) 
       dxDrawText("Sed", sx * ( 890 * scX ), sy * ( 184 * scY), sx * ( 845 * scX ), sy * ( 213* scY), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
    end 
        addEventHandler("onClientRender", root, mostrarsed) 
  
    function dxDrawRectangle2(posX, posY, ancho, largo, color,posGui) 
         local x, y, w, h = sx * ( posX * scX ), sy * ( posY * scY), sx * ( ancho * scX ), sy * ( largo * scY)  
  
         dxDrawRectangle(sx * ( posX * scX ), sy * ( posY * scY), sx * ( ancho * scX ), sy * ( largo * scY) , color,posGui) 
  
    end 

Link to comment

Sigue sin mostrármelo :c

function dxDrawRectangle2(posX, posY, ancho, largo, color,posGui) 
    local x, y, w, h = sx * ( posX * scX ), sy * ( posY * scY), sx * ( ancho * scX ), sy * ( largo * scY)  
        dxDrawRectangle(sx * ( posX * scX ), sy * ( posY * scY), sx * ( ancho * scX ), sy * ( largo * scY) , color,posGui) 
end 
  
local sx, sy = guiGetScreenSize() 
local screenX = 1024 
local screenY = 768 
local scX, scY = ( 1 / screenX  ), ( 1 / screenY ) 
  
function mostrarsed () 
    local sed = getElementData(localPlayer,"sed") or 100 
    local anchototal = 120  
    local anchototal2 = (sed*anchototal)/100 
    dxDrawRectangle2( 842 , 185,  138,  86, tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle2(848, 198, 124, 14, tocolor(0, 0, 0, 255), false) 
    dxDrawRectangle2(850, 200, anchototal, 10, tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle2(850, 200, anchototal2, 10, tocolor(0, 255, 0, 200), false) 
    dxDrawText("Sed", sx * ( 890 * scX ), sy * ( 184 * scY), sx * ( 845 * scX ), sy * ( 213* scY), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
end 
function abrirsed() 
addEventHandler ( "onClientRender", getRootElement(), mostrarsed ) 
end 
addEvent( "onSed", true ) 
addEventHandler( "onSed", getRootElement(), abrirsed ) 

Link to comment

Sigue igual :c

sx, sy = guiGetScreenSize() 
screenX = 1024 
screenY = 768 
scX, scY = ( sx / screenX  ), ( sy / screenY ) 
function dxDrawRectangle2(posX, posY, ancho, largo, color,posGui) 
    local x, y, w, h = sx * ( posX * scX ), sy * ( posY * scY), sx * ( ancho * scX ), sy * ( largo * scY)  
        dxDrawRectangle(sx * ( posX * scX ), sy * ( posY * scY), sx * ( ancho * scX ), sy * ( largo * scY) , color,posGui) 
end 
function mostrarsed () 
    local sed = getElementData(localPlayer,"sed") or 100 
    local anchototal = 120  
    local anchototal2 = (sed*anchototal)/100 
    dxDrawRectangle2( 842 , 185,  138,  86, tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle2(848, 198, 124, 14, tocolor(0, 0, 0, 255), false) 
    dxDrawRectangle2(850, 200, anchototal, 10, tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle2(850, 200, anchototal2, 10, tocolor(0, 255, 0, 200), false) 
    dxDrawText("Sed", sx * ( 890 * scX ), sy * ( 184 * scY), sx * ( 845 * scX ), sy * ( 213* scY), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
end 
function abrirsed() 
addEventHandler ( "onClientRender", getRootElement(), mostrarsed ) 
end 
addEvent( "onSed", true ) 
addEventHandler( "onSed", getRootElement(), abrirsed ) 

Link to comment
local sx, sy = guiGetScreenSize() 
local screenX = 1024 
local screenY = 768 
local scX, scY = ( 1 / screenX  ), ( 1 / screenY ) 
local _dxDrawRectangle = dxDrawRectangle 
  
function dxDrawRectangle(posX, posY, ancho, largo, ...) 
    local x, y, w, h = sx * ( posX * scX ), sy * ( posY * scY), sx * ( ancho * scX ), sy * ( largo * scY) 
    _dxDrawRectangle(x, y, w, h, ...) 
end 
  
function mostrarsed () 
    local sed = getElementData(localPlayer,"sed") or 100 
    local anchototal = 120 
    local anchototal2 = (sed*anchototal)/100 
    dxDrawRectangle( 842 , 185,  138,  86, tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle( 848, 198, 124, 14, tocolor(0, 0, 0, 255), false) 
    dxDrawRectangle( 850, 200, anchototal, 10, tocolor(0, 0, 0, 90), false) 
    dxDrawRectangle( 850, 200, anchototal2, 10, tocolor(0, 255, 0, 200), false) 
    dxDrawText("Sed", sx * ( 890 * scX ), sy * ( 184 * scY), sx * ( 845 * scX ), sy * ( 213* scY), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
end 
  
function abrirsed() 
addEventHandler ( "onClientRender", getRootElement(), mostrarsed ) 
end 
addEvent( "onSed", true ) 
addEventHandler( "onSed", getRootElement(), abrirsed ) 

Link to comment

De hecho, hice que el dxDrawRectangle pase a llamarse _dxDrawRectangle asi pudiera crear una funcion con el nombre del dxDrawRectangle pero que este se diferencie en que los valores absolutos de los primeros cuatro argumentos los convierta en valores relativos. Despues lo demás no cambie nada, asi que no me lo agredezcas a mí, tan solo ordené un poco el script.

Link to comment

Cuando abrí el servidor hoy en la versión "mini-beta" me han dicho que las necesidades se ven raras. Dejo el código pero no entiendo la verdad.

local sx, sy = guiGetScreenSize() 
local screenX = 1024 
local screenY = 768 
local scX, scY = ( 1 / screenX  ), ( 1 / screenY ) 
local _dxDrawRectangle = dxDrawRectangle 
  
function dxDrawRectangle(posX, posY, ancho, largo, ...) 
    local x, y, w, h = sx * ( posX * scX ), sy * ( posY * scY), sx * ( ancho * scX ), sy * ( largo * scY) 
    _dxDrawRectangle(x, y, w, h, ...) 
end 
function mostrarsed () 
    local sed = getElementData(localPlayer,"sed") or 100 
    local anchototal = 120 
    local anchototal2 = (sed*anchototal)/100 
    _dxDrawRectangle( 848, 198, 124, 14, tocolor(0, 0, 0, 255), false) 
    _dxDrawRectangle( 850, 200, anchototal2, 10, tocolor(0, 255, 0, 200), false) 
    dxDrawText("Sed", sx * ( 890 * scX ), sy * ( 184 * scY), sx * ( 845 * scX ), sy * ( 213* scY), tocolor(255, 255, 255, 255), 0.40, "bankgothic", "left", "top", false, false, false, false, false) 
end 
function abrirsed() 
addEventHandler ( "onClientRender", getRootElement(), mostrarsed ) 
end 
addEvent( "onSed", true ) 
addEventHandler( "onSed", getRootElement(), abrirsed ) 

Link to comment
  • Recently Browsing   0 members

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