aka Blue Posted August 8, 2015 Share Posted August 8, 2015 Buenas, pues quiero hacer dos rectángulos que indiquen fuerza y resistencia digamos de un jugador. Uno que sea una sombra por así decirlo y el otro, el progreso. Lo que quiero hacer es que cada x tiempo asignado por un setTimer, ese progreso se reduzca y que al usar x comando se rellene. Me dijeron que se hacía modificando el width o widht. ¿Me podrían dar un ejemplo?. Salu2. Link to comment
alex17 Posted August 8, 2015 Share Posted August 8, 2015 es algo muy sencillo te pondre un ejemplo de una barra pero de vida function dxhealth () local health = getElementHealth(localPlayer) local maxhealth = 100 local anchototal = 250 local anchototal2 = (health*anchototal)/maxhealth dxDrawRectangle(100, 200, anchototal, 20, tocolor(0, 0, 0, 200), false) dxDrawRectangle(100, 200, anchototal2, 20, tocolor(0, 255, 0, 200), false) end ahora tu quieres de fuerza y resistencia mm como manejas esos dos datos con getElementData o que ? Link to comment
aka Blue Posted August 8, 2015 Author Share Posted August 8, 2015 Querría que bueno, al pasar x tiempo, se le vaya agotando y le ponga una animación y que al poner un comando, le ponga la resistencia y fuerza al máximo de nuevo. Link to comment
alex17 Posted August 8, 2015 Share Posted August 8, 2015 algo como esto ? local maxResistencia = 100 setElementData(localPlayer,"resistencia",maxResistencia) setTimer( function () if resistencia > 0 then local resistencia = getElementData(localPlayer,"resistencia") setElementData(localPlayer,"resistencia", resistencia-1) end end end, 1000,0) function addresistencia() setElementData(localPlayer,"resistencia",maxResistencia) end addCommandHandler ( "resistencia", addresistencia ) addEventHandler("onClientRender", root function () local resistencia = getElementData(localPlayer,"resistencia") local anchototal = 250 local anchototal2 = (resistencia*anchototal)/maxResistencia dxDrawRectangle(100, 200, anchototal, 20, tocolor(0, 0, 0, 200), false) dxDrawRectangle(100, 200, anchototal2, 20, tocolor(0, 255, 0, 200), false) end ) Link to comment
aka Blue Posted August 8, 2015 Author Share Posted August 8, 2015 ¿Se podrían poner los comandos server-side? Link to comment
alex17 Posted August 8, 2015 Share Posted August 8, 2015 ¿Se podrían poner los comandos server-side? si pero lo pones asi function addresistencia(player) setElementData(player,"resistencia",100) end addCommandHandler ( "resistencia", addresistencia ) Link to comment
El_Zorro Posted August 8, 2015 Share Posted August 8, 2015 Debes poner 2 cuadrados, uno más grande de color negro y el otro de color rojo. El widht es para aumentar o disminuir la altura, según lo que tú quieras. Mira este video, al lado izquierdo hay una barra como la que tú quieres. Link to comment
DBY Posted August 8, 2015 Share Posted August 8, 2015 Debes poner 2 cuadrados, uno más grande de color negro y el otro de color rojo. El widht es para aumentar o disminuir la altura, según lo que tú quieras. El width es el ancho no el alto. Link to comment
aka Blue Posted August 8, 2015 Author Share Posted August 8, 2015 Si no entendí mal, sería algo así, ¿me equivoco? --Server-Side function addresistencia(player) setElementData(player,"resistencia",100) end addCommandHandler ( "resistencia", addresistencia ) --Cliente local maxResistencia = 100 setElementData(localPlayer,"resistencia",maxResistencia) setTimer( function () if resistencia > 0 then local resistencia = getElementData(localPlayer,"resistencia") setElementData(localPlayer,"resistencia", resistencia-1) end end end, 1000,0) addEventHandler("onClientRender", root function () local resistencia = getElementData(localPlayer,"resistencia") local anchototal = 250 local anchototal2 = (resistencia*anchototal)/maxResistencia dxDrawRectangle(100, 200, anchototal, 20, tocolor(0, 0, 0, 200), false) dxDrawRectangle(100, 200, anchototal2, 20, tocolor(0, 255, 0, 200), false) end ) Link to comment
El_Zorro Posted August 8, 2015 Share Posted August 8, 2015 Debes poner 2 cuadrados, uno más grande de color negro y el otro de color rojo. El widht es para aumentar o disminuir la altura, según lo que tú quieras. El width es el ancho no el alto. Cierto, debe ser el Height, el que debes tomar. Link to comment
El_Zorro Posted August 8, 2015 Share Posted August 8, 2015 Si no entendí mal, sería algo así, ¿me equivoco? --Server-Side function addresistencia(player) setElementData(player,"resistencia",100) end addCommandHandler ( "resistencia", addresistencia ) --Cliente local maxResistencia = 100 setElementData(localPlayer,"resistencia",maxResistencia) setTimer( function () if resistencia > 0 then local resistencia = getElementData(localPlayer,"resistencia") setElementData(localPlayer,"resistencia", resistencia-1) end end end, 1000,0) addEventHandler("onClientRender", root function () local resistencia = getElementData(localPlayer,"resistencia") local anchototal = 250 local anchototal2 = (resistencia*anchototal)/maxResistencia dxDrawRectangle(100, 200, anchototal, 20, tocolor(0, 0, 0, 200), false) dxDrawRectangle(100, 200, anchototal2, 20, tocolor(0, 255, 0, 200), false) end ) Te recomiendo varias cosas: 1) Establece un sistema para aumentar o disminuir la resistencia de tu jugador, eso deberías hacer primero. Y las restricciones que resistencia no puede ser menor que 0 y mayor que 100. 2) Ya luego con ese sistema, puedes obtener tu valor de resistencia. 3) Usa un comando y con su respectiva función, usa un triggerClientEvent, para enviar el dato de resistencia desde server side a client side y directamente al jugador que usa el comando. 4) Con el dato, crea los dos rectangulos, el primero más grande, de color negro, el segundo de color rojo, que quede dentro del primer rectangulo. 5) El height que varíe según "PORCENTAJE", si es 100, entonces el height debe estar en el máximo, si es 0, entonces, debe estar en el mínimo que es 0. 6) El tercer y cuarto Argumento de dxDrawRectangle indica las "profundidades", pero debes usar el Cuarto para el Height, entonces, esto debes utilizar: height * resistencia / 100 Link to comment
aka Blue Posted August 9, 2015 Author Share Posted August 9, 2015 Pueden cerrar, ya está solucionado. Gracias Alex Link to comment
Recommended Posts