Jump to content

Una duda sobre dibujado de niveles


miniatur

Recommended Posts

Que tal a todos

tengo un reciente problema sobre dibujar los niveles en la pantalla bueno yo estoy usando el exp system de castillo la cuestion es que en un script aparte añadi cosas para que los niveles y la experiencia se pudiera ver en la pantalla pero a la hora de iniciar el script no hace draw según el problema me dice: attempt concatenate local "lvl" (a booleam value)

a continuacion les muestro parte del script:

addEventHandler("onClientRender", root, 
    function() 
    local lvl = getElementData(getLocalPlayer(),"level") 
    local r,g,b = getPlayerNametagColor(getLocalPlayer()) 
    local ex = getElementData(getLocalPlayer(),"exp") 
    local text = "" 
    local UP = tonumber ( getElementData ( localPlayer, "level" ) ) or 0 
   sWidth, sHeight = guiGetScreenSize() 
   if ( UP == 1 ) then 
        text = "250" 
    elseif ( UP == 2 ) then 
        text = "500" 
        elseif ( UP == 3 ) then 
        text = "800" 
        elseif ( UP == 4 ) then 
        text = "1000" 
        elseif ( UP == 5 ) then 
        text = "1300"   end 
        dxDrawText("Nivel: ["..lvl.."]", sWidth-147, sHeight-95,sWidth-97, sHeight-99, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top") 
        dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top 
end 
) 
  
 

si alguien me pudiera dar la mano con eso seria de gran ayuda.

Link to comment

Intenta con esto:

  
addEventHandler("onClientRender", root, 
    function() 
    local lvl = getElementData(getLocalPlayer(),"level") or "0" 
    local r,g,b = getPlayerNametagColor(getLocalPlayer()) 
    local ex = getElementData(getLocalPlayer(),"exp") or "0" 
    local text = "" 
    local UP = tonumber ( getElementData ( localPlayer, "level" ) ) or 0 
   sWidth, sHeight = guiGetScreenSize() 
   if ( UP == 1 ) then 
        text = "250" 
    elseif ( UP == 2 ) then 
        text = "500" 
        elseif ( UP == 3 ) then 
        text = "800" 
        elseif ( UP == 4 ) then 
        text = "1000" 
        elseif ( UP == 5 ) then 
        text = "1300"   end 
        dxDrawText("Nivel: ["..lvl.."]", sWidth-147, sHeight-95,sWidth-97, sHeight-99, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top") 
        dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top 
end 
) 
  
 

Link to comment

Yo sólo agregué un 'or' (operador lógico), lo que hace el 'or' es returnar al siguiente argumento si el primero es 'false', 'nil'.

Entonces el problema que tiene tu código es que no puede detectar el nivel y la experiencia.

¿El script está 'started' ? Checa eso.

Link to comment

no se si copiaste mal tu codigo pero prueva completando bien esta ultima parte que no terminaste de completar los argumentos

        dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top --  aca -- 
end 
) 
  
  
 

Link to comment
no se si copiaste mal tu codigo pero prueva completando bien esta ultima parte que no terminaste de completar los argumentos
        dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top --  aca -- 
end 
) 
  
  
  
 

Son argumentos opcionales, no son necesarios.

Link to comment

me refiero a que no termino de cerrar las comillas y el parentesis

lo iso asi

dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top 
 

debio terminarlo asi

dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top") 

 

Link to comment
me refiero a que no termino de cerrar las comillas y el parentesis

lo iso asi

dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top 
  
 

debio terminarlo asi

dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top") 

 

Ahh ya, aunque igual no era ese el problema xD

Link to comment

lo se pero eso es un error que es importante

pruebalo así @miniatur lo acabo de probar y me funciona bien

addEventHandler("onClientRender", root, 
    function() 
    sWidth, sHeight = guiGetScreenSize() 
    local lvl = getElementData(getLocalPlayer(),"level") or "0" 
    local r,g,b = getPlayerNametagColor(getLocalPlayer()) 
    local ex = getElementData(getLocalPlayer(),"exp") or "0" 
    local text = "" 
   if ( lvl == 1 ) then 
        text = "250" 
    elseif ( lvl == 2 ) then 
        text = "500" 
        elseif ( lvl == 3 ) then 
        text = "800" 
        elseif ( lvl == 4 ) then 
        text = "1000" 
        elseif ( lvl == 5 ) then 
        text = "1300"   end 
        dxDrawText("Nivel: ["..lvl.."]", sWidth-147, sHeight-95,sWidth-97, sHeight-99, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top") 
        dxDrawText("Experiencia: ["..ex.."]", sWidth-272, sHeight-79,sWidth-97, sHeight-100, tocolor(0, 0, 0, 255), 1, "default-bold", "right", "top") 
end 
) 

Link to comment
  • Recently Browsing   0 members

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