Ari Alves Posted June 16, 2021 Share Posted June 16, 2021 To criando um sistema de emprego e tals. quando o player entra no marker ele digita /minerar e voce deve ja estar imaginando oque acontece, ele faz uma animaçao por alguns segundos e depois recebe os itens, más dai tem como o cara floodar no f8, ja dei freeze e toogleallcomandos false. podem me ajudar? function coletarminerios(source) if isElementWithinMarker (source, Minerador1) then local Minerio1 = math.random(1, 7) local Minerio2 = math.random(0, 5) local Minerio3 = math.random(0, 2) local Minerio4 = math.random(0, 1) local next = exports.n3xt_inventario local next = exports.n3xt_inventario local item = next:getItem(source, "Picareta") if (item) and (item >= 1) then next:takeItem(source, "Picareta", 1) setPedAnimation(source, "medic", "cpr", 1, true, true, true, true) setElementFrozen(source, true) toggleAllControls (source, false ) message(source, "[#9400D3Minerador#ffffff] Aguarde enquanto voce #9400D3minera#ffffff.", "info") exports.ORGAOSBarraProgresso:barra(source, 10, true) setTimer(function() next:giveItem(source, "CobreMin", Minerio1) next:giveItem(source, "Ouro", Minerio2) next:giveItem(source, "Diamante", Minerio3) next:giveItem(source, "Safira", Minerio4) setElementFrozen(source, false) toggleAllControls (source, true ) message(source, "[#9400D3Minerador#ffffff] Voce acaba de coletar #9400D3minerios#ffffff.!.", "info") setPedAnimation(source, "medic", "cpr", 1, false, false, false, false) end, 10000, 1) end end end addCommandHandler("minerar", coletarminerios) Link to comment
Boechat Posted June 17, 2021 Share Posted June 17, 2021 (edited) Veja se funciona, eu não testei local CMD_INTERVALO = 5000 --Intervalo entre um comando e outro em milisegundos. local tick = {} --Tabela para armazenar o momento do uso do comando para a verificação a proxima vez que usar o comando. addEventHandler('onPlayerCommand', root, function (cmd) if cmd == 'minerar' and CMD_INTERVALO + (tick[source] or 0) > getTickCount () then cancelEvent () else outputChatBox('Aguarde '..CMD_INTERVALO/1000..' segundos para usar o comando novamente!') tick[source] = getTickCount () end end) Edited June 17, 2021 by Boechat Link to comment
Ari Alves Posted June 17, 2021 Author Share Posted June 17, 2021 1 hour ago, Boechat said: Veja se funciona, eu não testei local CMD_INTERVALO = 5000 --Intervalo entre um comando e outro em milisegundos. local tick = {} --Tabela para armazenar o momento do uso do comando para a verificação a proxima vez que usar o comando. addEventHandler('onPlayerCommand', root, function (cmd) if cmd == 'minerar' and CMD_INTERVALO + (tick[source] or 0) > getTickCount () then cancelEvent () else outputChatBox('Aguarde '..CMD_INTERVALO/1000..' segundos para usar o comando novamente!') tick[source] = getTickCount () end end) Mano, não intendi como aplicar isso na minha funçao Link to comment
Boechat Posted June 18, 2021 Share Posted June 18, 2021 (edited) 22 hours ago, Ari Alves said: Mano, não intendi como aplicar isso na minha funçao Você não coloca isso na função coletarminerios. Coloque no arquivo server-side, porém fora de qualquer função! Teste assim: Spoiler function coletarminerios(source) if isElementWithinMarker (source, Minerador1) then local Minerio1 = math.random(1, 7) local Minerio2 = math.random(0, 5) local Minerio3 = math.random(0, 2) local Minerio4 = math.random(0, 1) local next = exports.n3xt_inventario local next = exports.n3xt_inventario local item = next:getItem(source, "Picareta") if (item) and (item >= 1) then next:takeItem(source, "Picareta", 1) setPedAnimation(source, "medic", "cpr", 1, true, true, true, true) setElementFrozen(source, true) toggleAllControls (source, false ) message(source, "[#9400D3Minerador#ffffff] Aguarde enquanto voce #9400D3minera#ffffff.", "info") exports.ORGAOSBarraProgresso:barra(source, 10, true) setTimer(function() next:giveItem(source, "CobreMin", Minerio1) next:giveItem(source, "Ouro", Minerio2) next:giveItem(source, "Diamante", Minerio3) next:giveItem(source, "Safira", Minerio4) setElementFrozen(source, false) toggleAllControls (source, true ) message(source, "[#9400D3Minerador#ffffff] Voce acaba de coletar #9400D3minerios#ffffff.!.", "info") setPedAnimation(source, "medic", "cpr", 1, false, false, false, false) end, 10000, 1) end end end addCommandHandler("minerar", coletarminerios) local CMD_INTERVALO = 5000 --Intervalo entre um comando e outro em milisegundos. local tick = {} --Tabela para armazenar o momento do uso do comando para a verificação a proxima vez que usar o comando. addEventHandler('onPlayerCommand', root, function (cmd) if cmd == 'minerar' and CMD_INTERVALO + (tick[source] or 0) > getTickCount () then cancelEvent () else outputChatBox('Aguarde '..CMD_INTERVALO/1000..' segundos para usar o comando novamente!') tick[source] = getTickCount () end end) Edited June 18, 2021 by Boechat Link to comment
Ari Alves Posted June 18, 2021 Author Share Posted June 18, 2021 16 minutes ago, Boechat said: Você não coloca isso na função coletarminerios. Coloque no arquivo server-side, porém fora de qualquer função! Teste assim: Hide contents function coletarminerios(source) if isElementWithinMarker (source, Minerador1) then local Minerio1 = math.random(1, 7) local Minerio2 = math.random(0, 5) local Minerio3 = math.random(0, 2) local Minerio4 = math.random(0, 1) local next = exports.n3xt_inventario local next = exports.n3xt_inventario local item = next:getItem(source, "Picareta") if (item) and (item >= 1) then next:takeItem(source, "Picareta", 1) setPedAnimation(source, "medic", "cpr", 1, true, true, true, true) setElementFrozen(source, true) toggleAllControls (source, false ) message(source, "[#9400D3Minerador#ffffff] Aguarde enquanto voce #9400D3minera#ffffff.", "info") exports.ORGAOSBarraProgresso:barra(source, 10, true) setTimer(function() next:giveItem(source, "CobreMin", Minerio1) next:giveItem(source, "Ouro", Minerio2) next:giveItem(source, "Diamante", Minerio3) next:giveItem(source, "Safira", Minerio4) setElementFrozen(source, false) toggleAllControls (source, true ) message(source, "[#9400D3Minerador#ffffff] Voce acaba de coletar #9400D3minerios#ffffff.!.", "info") setPedAnimation(source, "medic", "cpr", 1, false, false, false, false) end, 10000, 1) end end end addCommandHandler("minerar", coletarminerios) local CMD_INTERVALO = 5000 --Intervalo entre um comando e outro em milisegundos. local tick = {} --Tabela para armazenar o momento do uso do comando para a verificação a proxima vez que usar o comando. addEventHandler('onPlayerCommand', root, function (cmd) if cmd == 'minerar' and CMD_INTERVALO + (tick[source] or 0) > getTickCount () then cancelEvent () else outputChatBox('Aguarde '..CMD_INTERVALO/1000..' segundos para usar o comando novamente!') tick[source] = getTickCount () end end) Ta funfando não man, ta dando um erro na função do output e da um bug que toda vez que da o comando o tempo reinicia Link to comment
Boechat Posted June 18, 2021 Share Posted June 18, 2021 (edited) 7 minutes ago, Ari Alves said: Ta funfando não man, ta dando um erro na função do output e da um bug que toda vez que da o comando o tempo reinicia Dá o comando /debugscript 3 e posta aí o que tá aparecendo. E o comando outputChatBox deixe assim: outputChatBox('Aguarde '..math.ceil(CMD_INTERVALO/1000)..' segundos para usar o comando novamente!', source) Edited June 18, 2021 by Boechat Link to comment
Ari Alves Posted June 18, 2021 Author Share Posted June 18, 2021 2 minutes ago, Boechat said: Dá o comando /debugscript 3 e posta aí o que tá aparecendo. E o comando outputChatBox deixe assim: outputChatBox('Aguarde '..(CMD_INTERVALO/1000)..' segundos para usar o comando novamente!', source) Te mandei solicitaçao no discord vou te mandar 1 video! Link to comment
Boechat Posted June 18, 2021 Share Posted June 18, 2021 (edited) Como ficou o código final, caso outra pessoa queira fazer algo parecido: local CMD_INTERVALO = 20000 --Intervalo entre um comando e outro em milisegundos. local tick = {} --Tabela para armazenar o momento do uso do comando para a verificação a proxima vez que usar o comando. addEventHandler('onPlayerCommand', root, function (cmd) if cmd ~= 'minerador' then return end if not tick[source] then tick[source] = 0 end if CMD_INTERVALO + tick[source] > getTickCount () then cancelEvent () outputChatBox('Aguarde '..math.ceil(CMD_INTERVALO/1000)..' segundos para usar o comando novamente!', source) else tick[source] = getTickCount () end end) Edited June 18, 2021 by Boechat 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