aKL Posted October 12, 2022 Share Posted October 12, 2022 Queria saber como faz para bloquear uma bind em um setTimer Link to comment
Vampire Posted October 12, 2022 Share Posted October 12, 2022 Olá @aKL, seja bem vindo! Movi seu tópico para a seção de Programação em Português do fórum para que você possa obter uma melhor assistência em seu idioma nativo. Lembre-se de sempre escrever em Inglês ao postar fora desta seção. Link to comment
aKL Posted October 12, 2022 Author Share Posted October 12, 2022 1 minute ago, Vampire said: Olá @aKL, seja bem vindo! Movi seu tópico para a seção de Programação em Português do fórum para que você possa obter uma melhor assistência em seu idioma nativo. Lembre-se de sempre escrever em Inglês ao postar fora desta seção. Olá Vampire, obrigado! Sou novo, e não sei mexer muito aqui mas obrigado pela dica tmj! Se puder me ajudar também eu agradeço! Link to comment
Other Languages Moderators Lord Henry Posted October 12, 2022 Other Languages Moderators Share Posted October 12, 2022 Mostre o código que você está tentando fazer. Sua pergunta é muito vaga. O bloqueio é para todo mundo ou só para quem está fazendo spam de bind? (bloquear somente pra quem acabou de usar a bind e depois de um tempo desbloquear) O bloqueio da bind é de uma tecla única? Ou uma combinação de teclas? Se refere a bloquear um controle do jogador (andar, atirar, correr) ou a um comando bindado? (bind de /say, bind de /repair) Link to comment
aKL Posted October 14, 2022 Author Share Posted October 14, 2022 On 12/10/2022 at 11:19, Lord Henry said: Mostre o código que você está tentando fazer. Sua pergunta é muito vaga. O bloqueio é para todo mundo ou só para quem está fazendo spam de bind? (bloquear somente pra quem acabou de usar a bind e depois de um tempo desbloquear) O bloqueio da bind é de uma tecla única? Ou uma combinação de teclas? Se refere a bloquear um controle do jogador (andar, atirar, correr) ou a um comando bindado? (bind de /say, bind de /repair) Ola, bom dia. estou fazendo um sistema de assalto! Eu queria que quando o player que está hitando o marker perdesse a bind que assalta. Exemplo: A bind é a "Q". Vou assaltar e clico a bind varias vezes mas já estou assaltando. Espero que entenda, não sou muito bom nas explicações mas vou mandar o um pouco do meu codigo assalt = function(p) if getPedWeapon(p) ~= 0 then local myIndex = markerInformation[p] local assaltado = getElementData(p, 'Assaltando') local accName = getAccountName(getPlayerAccount(p)) if isObjectInACLGroup ("user."..accName, aclGetGroup(config['Gerais']['aclPm'])) then message(p, event, p, 'Você não pode assaltar sendo um policial', 'error') return false wadw end message(p, event, p, 'Você está assaltando essa loja!', 'warning') setPedAnimation(p, 'SHOP', 'ROB_Loop', -1, false) setTimer(function() local quantidade = math.random(config['Gerais']['randomQuantidade'][1], config['Gerais']['randomQuantidade'][2]) givePlayerMoney(p, quantidade) setPedAnimation(p) message(p, event, p, 'Você assaltou essa loja e recebeu R$'..quantidade..' de recompensa', 'success') end, config['Gerais']['tempoAssaltar']*1000,1 ) else message(p, event, p, 'Para assaltar essa loja você precisa de uma arma!', 'error') end end 2 minutes ago, aKL said: Link to comment
Other Languages Moderators Lord Henry Posted October 14, 2022 Other Languages Moderators Share Posted October 14, 2022 (edited) Se a bind pertencer ao mesmo resource do assalto onde está o marker, você poderia apenas adicionar o jogador como índice de uma tabela e depois de um tempo remover ele da tabela. Enquanto o jogador estiver nessa tabela, ele não conseguirá assaltar novamente. Exemplo: local assaltantes = {} -- Tabela vazia, onde os jogadores que estão assaltando ficam e depois de um tempo somem. local theMarker = createMarker (0, 0, 4) -- Aqui é onde você coloca o marker do assalto. Onde o jogador precisa estar para usar a bind. -- setElementInterior(theMarker, 0) -- setElementDimension(theMarker, 0) function assaltar(keyPresser) if (assaltantes[keyPresser]) then return end -- Se o jogador já ativou essa função, nada acontece e não executa o resto da função. if (isElementWithinMarker(keyPresser, theMarker)) then -- Se o jogador que ativou essa função está dentro do marker theMarker, então: assaltantes[keyPresser] = true -- Adiciona o jogador como índice na tabela de assaltantes. assalt(keyPresser) -- Ativa a função que faz o assalto. setTimer(function() -- Depois que o assalto é concluído, remove o jogador da tabela. Permitindo que ele assalte novamente. assaltantes[keyPresser] = nil end, config["Gerais"]["tempoAssaltar"]*1000, 1) -- Você também pode aumentar esse tempo, assim o jogador precisará esperar mais tempo depois de concluir o assalto, além do próprio tempo de duração do assalto. end end bindKey (root, "q", "down", assaltar) -- Binda a função assaltar na tecla Q. OBS: Você ainda terá um bug de que vários jogadores conseguem assaltar o mesmo lugar ao mesmo tempo. Mas dai essa parte é com vc. Edited October 14, 2022 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