Ansu Posted December 5, 2020 Share Posted December 5, 2020 Quero criar um temporizador para poder funcionar o comando novamente, Tenho esse codigo, alguem poderia me ajudar? Ja tenho a marca feita temporizador = false function EscolherAssassino() if temporizador == true then outputChatBox ( "#B22222[#B22222ERROR#B22222] O Assassino já foi escolhido! ", source, 100,255,100,true ) else local temporizador = true if temporizador == false then local randomPlayer = getRandomPlayer ( ) setElementPosition(randomPlayer, -2405.6630859375, -2171.0009765625, 33.2890625) setTimer( function(escolhidoassassino) temporizador = false end, 45000, 1) end end end addEventHandler("onMarkerHit", mrk, EscolherAssassino) Link to comment
Boechat Posted December 7, 2020 Share Posted December 7, 2020 local temporizador = getTickCount() local tempo = 5000 --Selecione aqui o intervalo em milisegundos function EscolherAssassino() if temporizador + tempo <= getTickCount() then local randomPlayer = getRandomPlayer ( ) temporizador = getTickCount() setElementPosition(randomPlayer, -2405.6630859375, -2171.0009765625, 33.2890625) setTimer( function(escolhidoassassino) temporizador = false end, 45000, 1) else outputChatBox ( "#B22222[#B22222ERROR#B22222] O Assassino já foi escolhido! ", source, 100,255,100,true ) end end addEventHandler("onMarkerHit", mrk, EscolherAssassino) Veja se funciona, qualquer dúvida fique a vontade pra perguntar 1 Link to comment
Ansu Posted December 12, 2020 Author Share Posted December 12, 2020 mrkvipAP = createMarker ( -2295.298828125, -2641.6328125, 59.416213989258 -1, "cylinder", 45, 0, 0, 0, 0, root) cdr = true -- variavel para setar o time no futuro function itensvip(thePlayer) local coletevip = getPedArmor(thePlayer) local vidavip = getElementHealth(thePlayer) if isObjectInACLGroup ( "user." ..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup ("VIP")) then if cdr == true then -- checando a variavel se é verdadeira giveWeapon(thePlayer, 24, 5, true) giveWeapon(thePlayer, 25, 5, true) giveWeapon(thePlayer, 33, 10, true) giveWeapon(thePlayer, 4, 1, true) setElementHealth (thePlayer, vidavip + 100) setPedArmor(thePlayer, coletevip + 100) outputChatBox("[SEXTA-FEIRA 13]Você pegou com sucesso seu KitVip!", thePlayer, 255, 215, 0, true) outputChatBox("[SEXTA-FEIRA 13]Armas, Colete e Vida recebidos, obrigado por nos apoiar ^^", thePlayer, 255, 215, 0, true) cdr = false -- setando a variavel para falsa local recarga = setTimer (function (NoAbuse) cdr = true -- depois de 10 segundos a variavel se torna verdadeira e ele pode usar comando denovo end, 10000, 1) -- timer de 10 segundos para usar o comando novamente end else outputChatBox("[SEXTA-FEIRA 13]Confira nosso discord para adquirir #FFD700VIP, #64FF64aperte F2!", thePlayer, 100, 255, 100, true) -- se o player nao for vip e digitar o comando end end addEventHandler("onMarkerHit", mrkvipAP, itensvip) addCommandHandler("kitvip", itensvip, thePlayer) Eu consegui com esse script, bom tenho alguma duvida em algo, queria por uma mensagem mandando ele esperar caso ele use o comando enquanto a variavel está falsa é so eu colocar no script... if cdr == false then outputChatBox("[ERRO] Espere alguns segundos até usar isso novamente", thePlayer, 200, 35, 35, true) end poderia me tirar essa duvida? e muito obrigado pela ajuda Fiz o teste e foi isso mesmo, muito obrigado amigo ^^ com seu exemplo consegui ter ideia para fazer isso Link to comment
Angelo Pereira Posted December 12, 2020 Share Posted December 12, 2020 local tempo_bloqueado = 5 --/> 5 Segundos local marker_vip = createMarker ( -2295.298828125, -2641.6328125, 59.416213989258 -1, "cylinder", 45, 0, 0, 0, 0) local bloquear_comando = false function itensvip ( thePlayer ) if isElement(thePlayer) and getElementType(thePlayer) == "player" then --/> Adicionado if isObjectInACLGroup ( "user." ..getAccountName (getPlayerAccount (thePlayer) ), aclGetGroup ("VIP")) then if bloquear_comando == true then --/> AQUI, Você irá Verificar Sua Várivel, então se ela for IGUAL a true, então : return outputChatBox("Este Comando Esta Bloqueado, AGUARDE!", thePlayer, 255, 255, 255, true) --/> Retorna e informa. end bloquear_comando = true setTimer ( function ( ) bloquear_comando = false end, tempo_bloqueado*1000, 1) giveWeapon(thePlayer, 24, 5, true) giveWeapon(thePlayer, 25, 5, true) giveWeapon(thePlayer, 33, 10, true) giveWeapon(thePlayer, 4, 1, true) setElementHealth (thePlayer, 100) setPedArmor(thePlayer, 100) outputChatBox("[SEXTA-FEIRA 13] Você pegou com sucesso seu KitVip!", thePlayer, 255, 215, 0, true) outputChatBox("[SEXTA-FEIRA 13] Armas, Colete e Vida recebidos, obrigado por nos apoiar ^^", thePlayer, 255, 215, 0, true) else outputChatBox("[SEXTA-FEIRA 13] Confira nosso discord para adquirir #FFD700VIP, #64FF64aperte F2!", thePlayer, 100, 255, 100, true) end end end addEventHandler("onMarkerHit", marker_vip, itensvip) addCommandHandler("kitvip", itensvip) Linha 4, e 5 te ajudará a entender. Retirando o return, o script apenas irá informar, e continua lendo o código, utilizando o return, ele vai praticamente pausar onde você o utilizou. Link to comment
ber Posted December 13, 2020 Share Posted December 13, 2020 Use um simples setTimer para isso, exemplo: tempo = {} function teste(playerSource) if not isTimer(tempo[playerSource]) then tempo[playerSource] = setTimer(function() end, 1000, 1) outputChatBox("ok", playerSource) else outputChatBox("aguarde para usar o comando novamente", playerSource) end end addCommandHandler("teste", teste) 1 Link to comment
Boechat Posted December 16, 2020 Share Posted December 16, 2020 On 07/12/2020 at 09:30, Boechat said: local temporizador = getTickCount() local tempo = 5000 --Selecione aqui o intervalo em milisegundos function EscolherAssassino() if temporizador + tempo <= getTickCount() then local randomPlayer = getRandomPlayer ( ) temporizador = getTickCount() setElementPosition(randomPlayer, -2405.6630859375, -2171.0009765625, 33.2890625) setTimer( function(escolhidoassassino) temporizador = false end, 45000, 1) else outputChatBox ( "#B22222[#B22222ERROR#B22222] O Assassino já foi escolhido! ", source, 100,255,100,true ) end end addEventHandler("onMarkerHit", mrk, EscolherAssassino) Veja se funciona, qualquer dúvida fique a vontade pra perguntar Na verdade pode tirar o setTimer que eu havia colocado, ele é desnecessário. Eu prefiro fazer "timer" utilizando o getTickCount pois eu acredito que muitos setTimer no servidor puxa muito processamento. local temporizador = getTickCount() local tempo = 5000 --Selecione aqui o intervalo em milisegundos function EscolherAssassino() if temporizador + tempo <= getTickCount() then local randomPlayer = getRandomPlayer ( ) temporizador = getTickCount() setElementPosition(randomPlayer, -2405.6630859375, -2171.0009765625, 33.2890625) else outputChatBox ( "#B22222[#B22222ERROR#B22222] O Assassino já foi escolhido! ", source, 100,255,100,true ) end end addEventHandler("onMarkerHit", mrk, EscolherAssassino) Link to comment
Other Languages Moderators Lord Henry Posted December 17, 2020 Other Languages Moderators Share Posted December 17, 2020 (edited) On 16/12/2020 at 10:31, Boechat said: eu acredito que muitos setTimer no servidor puxa muito processamento Sim, eles pesam mais no processamento. Além de dependerem do framerate. O getTickCount é mais leve. Edited December 17, 2020 by Lord Henry 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