Maaster Posted July 19, 2023 Posted July 19, 2023 Qual função poderia estar utilizando pra bloquear um comando especifico de ser bindado? não quero bloquear todas as binds ou bloquear a tecla, quero bloquear apenas binds com comandos especificos que eu definir
Moderators Lord Henry Posted July 19, 2023 Moderators Posted July 19, 2023 (edited) local comandos = {"login", "logout", "testando"} -- Lista de comandos que não podem ser bindados. function playerPressedKey(button, press) if (press) then -- Se o jogador apertou a tecla, então: local bindados = getCommandsBoundToKey(button, "down") -- Obtém uma lista de comandos bindados a essa tecla que o jogador acabou de apertar. O comando é o índice e o argumento é o valor. if table.size(bindados) == 0 then return end -- Se não há nada bindado nesta tecla (a função acima retornou uma tabela vazia), então nada acontece. for cmd,v in pairs(bindados) do -- Para cada comando bindado nesta tecla, faça: for _,cmds in pairs(comandos) do -- Para cada comando que não pode ser bindado, faça: if cmd == cmds then -- Se o comando bindado nesta tecla está na lista de comandos proibidos, então: outputChatBox("O comando '"..cmd.."' não pode ser bindado.") cancelEvent() return end end end end end addEventHandler("onClientKey", root, playerPressedKey) addCommandHandler("testando", function(cmd) -- Comando genérico só para saber se ele está sendo executado ou não. outputChatBox("Você está testando.") end) function table.size(theTable) -- Função útil que conta quantos elementos tem uma tabela. Quando usar #tabela não funcionaria. local size = 0 for _, v in pairs(theTable) do size = size + 1 end return size end Os comandos continuam funcionando fora da bind (digitados manualmente). Edited July 19, 2023 by Lord Henry 1 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
Maaster Posted July 20, 2023 Author Posted July 20, 2023 (edited) 18 hours ago, Lord Henry said: local comandos = {"login", "logout", "testando"} -- Lista de comandos que não podem ser bindados. function playerPressedKey(button, press) if (press) then -- Se o jogador apertou a tecla, então: local bindados = getCommandsBoundToKey(button, "down") -- Obtém uma lista de comandos bindados a essa tecla que o jogador acabou de apertar. O comando é o índice e o argumento é o valor. if table.size(bindados) == 0 then return end -- Se não há nada bindado nesta tecla (a função acima retornou uma tabela vazia), então nada acontece. for cmd,v in pairs(bindados) do -- Para cada comando bindado nesta tecla, faça: for _,cmds in pairs(comandos) do -- Para cada comando que não pode ser bindado, faça: if cmd == cmds then -- Se o comando bindado nesta tecla está na lista de comandos proibidos, então: outputChatBox("O comando '"..cmd.."' não pode ser bindado.") cancelEvent() return end end end end end addEventHandler("onClientKey", root, playerPressedKey) addCommandHandler("testando", function(cmd) -- Comando genérico só para saber se ele está sendo executado ou não. outputChatBox("Você está testando.") end) function table.size(theTable) -- Função útil que conta quantos elementos tem uma tabela. Quando usar #tabela não funcionaria. local size = 0 for _, v in pairs(theTable) do size = size + 1 end return size end Os comandos continuam funcionando fora da bind (digitados manualmente). Valeeu, era isso mesmo que tava precisando, ainda não conhecia o getCommandBoundToKey. Edited July 20, 2023 by Maaster
Recommended Posts