Jump to content

dxDrawRectangle widht


aka Blue

Recommended Posts

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

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

algo como esto ? :arrowdown:

  
    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

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
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
  • Recently Browsing   0 members

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