zW1Z4RD Posted December 24, 2018 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
#DaNiLiN Posted December 24, 2018 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
Other Languages Moderators Lord Henry Posted December 24, 2018 Other Languages Moderators 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
zW1Z4RD Posted December 24, 2018 Author 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
DNL291 Posted December 25, 2018 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
Other Languages Moderators Lord Henry Posted December 25, 2018 Other Languages Moderators 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
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