Tony Scripter Posted April 19, 2021 Share Posted April 19, 2021 (edited) Estou com um problema com a tentar fazer uma progress bar Spoiler local tick = getTickCount() local temp = nil function Hud() local progresso = interpolateBetween(x*0, 0, 0, x*100, 0, 0, (getTickCount()-tick)/temp, "Linear") dxDrawCircle(x*1317, y*862, 18, progresso/100, progresso/100*360, tocolor(128, 128, 128, 255)) end function progress(temp) tick = getTickCount() addEventHandler("onClientRender", root, Hud) setTimer(function() removeEventHandler("onClientRender", root, Hud) end, temp, 1) end addEvent("Progress:bar", true) addEventHandler("Progress:bar", root, progress) No debugscript esta dizendo 16: attempt to perform arithmetic on upvalue 'temp' (a nil value) Queria fazer a exportação de time no triggerEvent para assim não precisar ficar recriando a progress bar Edited April 19, 2021 by Tony Scripter Link to comment
Boechat Posted April 19, 2021 Share Posted April 19, 2021 (edited) A variável temp declarada no começo do código com o valor nulo é diferente da passada por argumento que só vale dentro da função, então o que está passando como parâmetro no interpolate between tem o valor nulo. O temp é em ms né? Veja se funciona dessa forma: local temp = nil function Hud() local progresso = interpolateBetween(0, 0, 0, x*100, 0, 0, (getTickCount()-tick) / temp, "Linear") if temp + tick <= getTickCount() then removeEventHandler("onClientRender", root, Hud) end dxDrawCircle(x*1317, y*862, 18, progresso/100, progresso/100*360, tocolor(128, 128, 128, 255)) end function progress(tempoms) temp = tempoms tick = getTickCount() addEventHandler("onClientRender", root, Hud) end addEvent("Progress:bar", true) addEventHandler("Progress:bar", root, progress) Edited April 19, 2021 by Boechat Link to comment
Tony Scripter Posted April 19, 2021 Author Share Posted April 19, 2021 (edited) 15 minutes ago, Boechat said: A variável temp declarada no começo do código com o valor nulo é diferente da passada por argumento que só vale dentro da função, então o que está passando como parâmetro no interpolate between tem o valor nulo. O temp é em ms né? Veja se funciona dessa forma: local temp = nil function Hud() local progresso = interpolateBetween(0, 0, 0, x*100, 0, 0, (getTickCount()-tick) / temp, "Linear") if temp + tick <= getTickCount() then removeEventHandler("onClientRender", root, Hud) end dxDrawCircle(x*1317, y*862, 18, progresso/100, progresso/100*360, tocolor(128, 128, 128, 255)) end function progress(tempoms) temp = tempoms tick = getTickCount() addEventHandler("onClientRender", root, Hud) end addEvent("Progress:bar", true) addEventHandler("Progress:bar", root, progress) Sim o codigo e em ms, testei aqui porem ainda continuou dando o mesmo error será que tem mais alguma coisa errada ? Edited April 19, 2021 by Tony Scripter Link to comment
Boechat Posted April 19, 2021 Share Posted April 19, 2021 53 minutes ago, Tony Scripter said: Sim o codigo e em ms, testei aqui porem ainda continuou dando o mesmo error será que tem mais alguma coisa errada ? Me mostra a parte que vc da um trigger no evento "Progress:bar", talvez você esteja passando um valor nulo como parâmetro. Link to comment
Tony Scripter Posted April 19, 2021 Author Share Posted April 19, 2021 4 hours ago, Boechat said: Me mostra a parte que vc da um trigger no evento "Progress:bar", talvez você esteja passando um valor nulo como parâmetro. function Progress(sourceElement, tempoms) triggerClientEvent(sourceElement, "Progress:bar", sourceElement, tempoms) end addEvent("Progress:bar", true) addEventHandler("Progress:bar", root, Progress) function teste(source) triggerClientEvent(source, "Progress:bar", root, 5000) end addCommandHandler("teste", teste) Link to comment
Boechat Posted April 20, 2021 Share Posted April 20, 2021 (edited) E aonde está sendo chamado a função Progress? Testa com esse comando aqui para ver se funciona: function Progress(playerSource, tempoms) triggerClientEvent(playerSource, "Progress:bar", playerSource, tempoms) end addEvent("Progress:bar", true) addEventHandler("Progress:bar", root, Progress) function teste(playerSource) Progress(playerSource, 5000) end addCommandHandler("teste", teste) Edited April 20, 2021 by Boechat 1 Link to comment
Tony Scripter Posted April 20, 2021 Author Share Posted April 20, 2021 29 minutes ago, Boechat said: E aonde está sendo chamado a função Progress? Testa com esse comando aqui para ver se funciona: function Progress(playerSource, tempoms) triggerClientEvent(playerSource, "Progress:bar", playerSource, tempoms) end addEvent("Progress:bar", true) addEventHandler("Progress:bar", root, Progress) function teste(playerSource) Progress(playerSource, 5000) end addCommandHandler("teste", teste) Infelizmente ainda nao foi continua printando a mesma coisa no debug ERROR: 16: attempt to perform arithmetic on upvalue 'temp' (a nil value) Consegui fazer ir, obrigado pela ajuda amigo Link to comment
Boechat Posted April 20, 2021 Share Posted April 20, 2021 5 minutes ago, Tony Scripter said: Infelizmente ainda nao foi continua printando a mesma coisa no debug ERROR: 16: attempt to perform arithmetic on upvalue 'temp' (a nil value) Consegui fazer ir, obrigado pela ajuda amigo Por nada, qualquer coisa posta aí no fórum 1 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now