miniatur Posted August 24, 2014 Share Posted August 24, 2014 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
Tomas Posted August 24, 2014 Share Posted August 24, 2014 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
miniatur Posted August 25, 2014 Author Share Posted August 25, 2014 lo eh colocado de esa forma pero el nivel y la exp se queda en 0 y no pasa de ahi Link to comment
Tomas Posted August 25, 2014 Share Posted August 25, 2014 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
alex17 Posted August 25, 2014 Share Posted August 25, 2014 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
Tomas Posted August 25, 2014 Share Posted August 25, 2014 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
alex17 Posted August 25, 2014 Share Posted August 25, 2014 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
Tomas Posted August 25, 2014 Share Posted August 25, 2014 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 Link to comment
alex17 Posted August 26, 2014 Share Posted August 26, 2014 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
Recommended Posts