Enargy, Posted September 14, 2015 Share Posted September 14, 2015 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 ) Raras en que sentido? Explícate mejor. Link to comment
aka Blue Posted September 14, 2015 Author Share Posted September 14, 2015 Uno me dijo por PM en el servidor que le salía el texto en medio de la pantalla, el otro que le salía en la barra de vida... Les dije que cambien de resolución pero es que hasta donde yo sé, no debería. Link to comment
UserToDelete Posted September 14, 2015 Share Posted September 14, 2015 La teoria de la relatividad es ancho por uno y viceversa con el alto screenX * relativeValue (0-1) Osea que si tienes 1024x600 Y quieres centrarlo.. (SX-(anchoDX))*0,5 Y lo mismo con SY (SY-(altoDX))*0,5 Link to comment
aka Blue Posted September 14, 2015 Author Share Posted September 14, 2015 Lo que quiero hacer es que sea compatible con todas las resoluciones. Son dos rectángulos y un texto... Link to comment
Razor64 Posted September 14, 2015 Share Posted September 14, 2015 Creo que con esto se solucionara en parte tu problema... local sx, sy = guiGetScreenSize() function mostrarsed () local sed = getElementData(localPlayer,"sed") or 100 local anchototal = 120*(sed/100) dxDrawRectangle((848/1024)*sx, (198/768)*sy, (124/1024)*sx, (14/768)*sy, tocolor(0, 0, 0, 255), false) dxDrawRectangle((850/1024)*sx, (200/768)*sy, (120/1024)*sx, (10/768)*sy, tocolor(0, 57, 0, 255), false) dxDrawRectangle((850/1024)*sx, (200/768)*sy, (anchototal/1024)*sx, (10/768)*sy, tocolor(0, 200, 0, 255), false) dxDrawText("Sed", (892/1024)*sx, (200/768)*sy, (925/1024)*sx, (212/768)*sy, tocolor(0, 0, 0, 255), (0.40/1024)*sx, (0.40/768)*sy, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("Sed", (891/1024)*sx, (199/768)*sy, (924/1024)*sx, (211/768)*sy, tocolor(255, 255, 255, 255), (0.40/1024)*sx, (0.40/768)*sy, "bankgothic", "center", "center", false, false, false, false, false) end function abrirsed() addEventHandler ( "onClientRender", getRootElement(), mostrarsed ) end addEvent( "onSed", true ) addEventHandler( "onSed", getRootElement(), abrirsed ) Usandolo de esa manera los dx quedaran en la misma posicion en cualquier tipo de resolucion no importa si es muy baja o alta y el el texto tambien se ajusta, pero el problema esta en el HUD el cual si cambia de tamaño segun la resolucion por ejemplo en la resolucion de 1024x768 el HUD queda arriba de la barra de Sed, pero en 1366x768 esta queda encima, te recomendaria ponerla un poco mas abajo o en otro sitio donde no estorbe, eso en caso de que uses el HUD default si usas uno hecho por ti y que use dx podrias usar las mismas variables para que mantenga la misma posicion en cualquier resolucion, bueno espero que te sirva. Link to comment
Sasu Posted September 15, 2015 Share Posted September 15, 2015 Los dxDrawRectangle dejalos como yo te los pase o modifica el nombre de la funcion de la linea 7 Link to comment
UserToDelete Posted September 15, 2015 Share Posted September 15, 2015 Los dxDrawRectangle dejalos como yo te los pase o modifica el nombre de la funcion de la linea 7 Si mutliplicas X o Y por el relative que tu quieres, automaticamente sale el valor. O almenos, asi lo estuve haciendo todos estes meses Link to comment
aka Blue Posted September 15, 2015 Author Share Posted September 15, 2015 Na, ya está arreglado. Gracias a todos Link to comment
aka Blue Posted September 15, 2015 Author Share Posted September 15, 2015 Revivo. A la mayoría de los que están en el servidor se les ve bien pero a un usuario hoy, me dijo que se le veía en la barra de dinero. Link to comment
Tomas Posted September 15, 2015 Share Posted September 15, 2015 Revivo. A la mayoría de los que están en el servidor se les ve bien pero a un usuario hoy, me dijo que se le veía en la barra de dinero. Eso es un problema que puede pasar.. tu lo que haces con eso es que quede dentro de sus dimensiones de la pantalla, que superponga a otra gui, objeto etc es una posibilidad. Probablemente usa una resolución más pequeña que la tuya. Link to comment
starksZ Posted September 15, 2015 Share Posted September 15, 2015 Bueno, ayer entre al servidor de @Blue Pie y todo bien perfecto esta todo, Pero el bug es este para que lo vean: http://i.imgur.com/FW2818G.jpg Link to comment
UserToDelete Posted September 15, 2015 Share Posted September 15, 2015 Bueno, ayer entre al servidor de @Blue Pie y todo bien perfecto esta todo, Pero el bug es este para que lo vean: http://i.imgur.com/FW2818G.jpg Que coño, entonces que use las mismas dimensiones que el texto, no?, si el texto y la barra pertenece al mismo script, es solo control CV Link to comment
Sasu Posted September 15, 2015 Share Posted September 15, 2015 No entendieron mi codigo anterior pero bueno lo dejo como antes, intenta esto: local sx, sy = guiGetScreenSize() local screenX = 1024 local screenY = 768 local scX, scY = ( 1 / screenX ), ( 1 / screenY ) 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
Recommended Posts