zW1Z4RD Posted December 24, 2018 Share Posted December 24, 2018 (edited) Gostaria de Por um tempo de 5 minutos para o blip sumir function Chamado (splayer) local players = getElementsByType ("player") local blip = createBlipAttachedTo (splayer, 62) setElementVisibleTo (blip, root, false) -- oculta o blip para todos elementos for _, driver in ipairs (players) do local account = getAccountName (getPlayerAccount(driver)) if isObjectInACLGroup ("user."..account, aclGetGroup ("Policia")) then setElementVisibleTo (blip, driver, true) -- mostra o blip para todos do grupo "Policia" end end end addCommandHandler ("190", Chamado) Edited December 24, 2018 by zW1Z4RD Link to comment
#DaNiLiN Posted December 24, 2018 Share Posted December 24, 2018 function Chamado (splayer) local players = getElementsByType ("player") local blip = createBlipAttachedTo (splayer, 62) setElementVisibleTo (blip, root, false) -- oculta o blip para todos elementos for _, driver in ipairs (players) do local account = getAccountName (getPlayerAccount(driver)) if isObjectInACLGroup ("user."..account, aclGetGroup ("Policia")) then setElementVisibleTo (blip, driver, true) -- mostra o blip para todos do grupo "Policia" Timer = setTimer (function() -- Timer setElementVisibleTo (blip, driver, false) -- oculta o blip para todos elementos end,10000,1) -- Tempo pra tudo isso acima acontecer end end end addCommandHandler ("190", Chamado) Tente isso. 1 Link to comment
Other Languages Moderators Lord Henry Posted December 24, 2018 Other Languages Moderators Share Posted December 24, 2018 Estou prevendo os seguintes erros neste código: O timer irá bugar se o usuário ficar usando /190 várias vezes. Pois não existe nenhuma verificação que impede o spam do comando. O timer irá duplicar, pois não há nenhuma verificação se ele já existe antes de criá-lo novamente. Um timer de 5 minutos não é 10000 milissegundos, isso é só 10 segundos. 5 minutos são 300000 milissegundos. Erros de indentação no código. 2 Link to comment
zW1Z4RD Posted December 24, 2018 Author Share Posted December 24, 2018 9 hours ago, Lord Henry said: Estou prevendo os seguintes erros neste código: O timer irá bugar se o usuário ficar usando /190 várias vezes. Pois não existe nenhuma verificação que impede o spam do comando. O timer irá duplicar, pois não há nenhuma verificação se ele já existe antes de criá-lo novamente. Um timer de 5 minutos não é 10000 milissegundos, isso é só 10 segundos. 5 minutos são 300000 milissegundos. Erros de indentação no código. Como posso fazer essa verificação Link to comment
DNL291 Posted December 25, 2018 Share Posted December 25, 2018 (edited) Adiciona o timer numa tabela com o jogador no índice/chave e verifica no inicio do comando se ele já existe. Já existem vários tópicos pelo fórum com esse mesmo tipo de assunto, só dar uma garimpada pelo fórum. Edited December 25, 2018 by DNL291 Link to comment
Other Languages Moderators Lord Henry Posted December 25, 2018 Other Languages Moderators Share Posted December 25, 2018 (edited) Para verificar se um timer já existe, use a função isTimer. Exemplo: timers = {} function verificar (thePlayer) if not isTimer (timers[thePlayer]) then -- Se não existe o timer, então: timers[thePlayer] = setTimer (outputChatBox, 5000, 1, "Timer concluído.", thePlayer) -- Cria o timer, que irá mandar uma mensagem daqui a 5 segundos. else -- Se existe o timer, então: outputChatBox ("Já existe um timer criado.", thePlayer) -- Manda isso pro jogador que executou o comando. end end addCommandHandler ("eae", verificar) Edited December 25, 2018 by Lord Henry 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