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
Other Languages Moderators Lord Henry Posted July 19, 2023 Other Languages 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
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