Maaster Posted July 19, 2023 Share 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 Link to comment
Other Languages Moderators Lord Henry Posted July 19, 2023 Other Languages Moderators Share 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 Link to comment
Maaster Posted July 20, 2023 Author Share 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 Link to comment
Recommended Posts