Rakashy Posted April 8, 2021 Share Posted April 8, 2021 Como o próprio título sugere, gostaria de saber se é possível alterar commandHandler via arquivo de config. Eu criei um sistema de expediente aonde o jogador digita em um marker "/expedientesamu" e então começa seu expediente, porém se um cliente deseja alterar este comando para por exemplo "/expedientepolicia", existe alguma maneira de fazer por arquivo de config compartilhado ? pois meus scripts são criptografados. Tentei da seguinte forma: No arquivo config.lua coloquei ComandoNome = expedientesamu e no meu server.lua na parte do commandHandler deixei assim: addCommandHandler(ComandoNome, função) Porém não funciona como deveria, então minha pergunta é, no caso do commandHandler, como eu poderia fazer para conseguir alterar o comando a hora que quisesse por um arquivo de config ? Link to comment
KronoS Lettify Posted April 8, 2021 Share Posted April 8, 2021 @Rakashy a lógica está correta, mas talvez você não tenha feito corretamente. O processo - ao meu ver - para fazer isso que você quer, seria da seguinte forma: Spoiler 1) Criar o resource com os determinados arquivos. 2) No meta.xml declarar os arquivos do script. De preferência, na ordem, deixe o arquivo do tipo shared antes dos demais. 3) No restante dos arquivos, só fazer o trabalho lógico. 1 Link to comment
Rakashy Posted April 8, 2021 Author Share Posted April 8, 2021 6 hours ago, KronoS Lettify said: @Rakashy a lógica está correta, mas talvez você não tenha feito corretamente. O processo - ao meu ver - para fazer isso que você quer, seria da seguinte forma: Hide contents 1) Criar o resource com os determinados arquivos. 2) No meta.xml declarar os arquivos do script. De preferência, na ordem, deixe o arquivo do tipo shared antes dos demais. 3) No restante dos arquivos, só fazer o trabalho lógico. Então mano, eu faço exatamente assim, deixo os arquivos como shared, como eu disse no post, o arquivo de config já está compartilhado, porém não funciona no addCommandHandler... por isso recorri ao forum Link to comment
KronoS Lettify Posted April 8, 2021 Share Posted April 8, 2021 42 minutes ago, Rakashy said: Então mano, eu faço exatamente assim, deixo os arquivos como shared, como eu disse no post, o arquivo de config já está compartilhado, porém não funciona no addCommandHandler... por isso recorri ao forum Me mostra os arquivos que você tem no seu resource, e o seu meta.xml, por favor. Link to comment
Rakashy Posted April 8, 2021 Author Share Posted April 8, 2021 Just now, KronoS Lettify said: Me mostra os arquivos que você tem no seu resource, e o seu meta.xml, por favor. Então mano, o erro foi meu... eu estava colocando assim "Comando = "comandosamu" "quando na verdade era "Comando = 'comandosamu' " com apenas 1 aspas.. Obrigado pela dica mesmo assim, ja dei um thnks ai Link to comment
KronoS Lettify Posted April 8, 2021 Share Posted April 8, 2021 Just now, Rakashy said: Então mano, o erro foi meu... eu estava colocando assim "Comando = "comandosamu" "quando na verdade era "Comando = 'comandosamu' " com apenas 1 aspas.. Obrigado pela dica mesmo assim, ja dei um thnks ai Não há diferença entre as áspas duplas e simples no MTA. Link to comment
Rakashy Posted April 8, 2021 Author Share Posted April 8, 2021 Just now, KronoS Lettify said: Não há diferença entre as áspas duplas e simples no MTA. Bom, eu alterei as aspas duplas pra aspas simples e simplesmente funcionou kkk, não sei ao certo o motivo, mas n vou reclamar... 1 Link to comment
Other Languages Moderators Lord Henry Posted April 8, 2021 Other Languages Moderators Share Posted April 8, 2021 De nada adianta vc proteger seu resource se você deixa algum script dele desprotegido, no caso o seu config.lua. Os caras vão criar códigos para quebrar sua proteção dentro do seu config.lua, então prefira utilizar um XML onde só terão os valores a ser configurados em vez de códigos. No caso, crie um config.xml Link to comment
Rakashy Posted April 10, 2021 Author Share Posted April 10, 2021 On 08/04/2021 at 13:21, Lord Henry said: De nada adianta vc proteger seu resource se você deixa algum script dele desprotegido, no caso o seu config.lua. Os caras vão criar códigos para quebrar sua proteção dentro do seu config.lua, então prefira utilizar um XML onde só terão os valores a ser configurados em vez de códigos. No caso, crie um config.xml Disso eu não sabia cara, é possível quebrar a criptografia com o config ? Pode me explicar melhor sobre isso ? Link to comment
Other Languages Moderators Lord Henry Posted April 12, 2021 Other Languages Moderators Share Posted April 12, 2021 Eles não necessariamente quebram sua criptografia, eles apenas burlam sua proteção criando códigos maliciosos por fora. Link to comment
Rakashy Posted April 12, 2021 Author Share Posted April 12, 2021 E como eu poderia fazer este config.xml ? poderia me dar algum exemplo ? Link to comment
XXII Posted April 13, 2021 Share Posted April 13, 2021 Quote Tentei da seguinte forma: No arquivo config.lua coloquei ComandoNome = expedientesamu A variável ComandoNome deve ser uma string "Isso é uma string." 'Isso é uma string.' Link to comment
Other Languages Moderators androksi Posted April 14, 2021 Other Languages Moderators Share Posted April 14, 2021 On 12/04/2021 at 16:20, Rakashy said: E como eu poderia fazer este config.xml ? poderia me dar algum exemplo ? Você pode configurar no próprio meta.xml. <settings> <setting name="*command" value="abrir" /> </settings> E lá no arquivo compilado (presumo que esteja), você busca pela informação das configurações com a função get, de acordo com o nome dela. No exemplo acima, é command. local commandHandler = tostring(get("command")) Link to comment
Other Languages Moderators Lord Henry Posted April 15, 2021 Other Languages Moderators Share Posted April 15, 2021 On 12/04/2021 at 16:20, Rakashy said: E como eu poderia fazer este config.xml ? poderia me dar algum exemplo ? Exemplo de um config.xml: <config version="2.0"> <!-- É opcional ter parâmetros aqui. O nó principal não precisa ter o mesmo nome do arquivo.xml --> <info>Nó com parâmetro único.</info> <setting name="Nome qualquer" value="0"/> <!-- Nó com múltiplos parâmetros. --> <setting name="Outra configuração" value="true"/> </config> Como declarar este arquivo no meta.xml: <config src="config.xml" type="client"/> <!-- O tipo pode ser "client" ou "server". Não existe tipo "shared" --> Como obter os valores do config.xml no script: local configs = {} -- Uma table vazia que será usada para armazenar os valores das configurações no script, para não ser necessário ficar obtendo novamente do XML o tempo todo. addCommandHandler ("eae", function (cmd) -- Comando para ativar isso: /eae local rootNode = getResourceConfig ("config.xml") -- Obtém o nó principal do XML. local subNodes = xmlNodeGetChildren (rootNode) -- Obtém todos os nós que estão dentro do nó principal. No caso é o nó info e os nós setting. configs["version"] = xmlNodeGetAttribute(rootNode, "version") -- Obtém o valor do parâmetro version que está junto do nó principal. configs["information"] = xmlNodeGetValue (subNodes[0]) -- Obtém o valor do primeiro nó que está dentro do nó principal do XML, no caso o valor do nó info. Essa função só funciona para nós de atributo único. Se o nó tiver vários atributos, faça como abaixo. configs["conf01"] = { -- Você pode obter todos os parâmetros da configuração se achar necessário, incluindo o name dela. ["nome"] = xmlNodeGetAttribute(subNodes[1], "name") -- Obtém o parâmetro name do nó setting que vem logo abaixo do nó info. ["valor"] = xmlNodeGetAttribute(subNodes[1], "value") -- Mesma coisa só que com o parâmetro value. } configs["Outra configuração"] = xmlNodeGetAttribute(subNodes[2], "value") -- Se quiser ignorar o nome da configuração do XML, vc pode obter o value direto e declarar o nome no próprio script. outputChatBox ("Version: "..configs["version"]) -- Mostra no chat o valor de configs["version"] outputChatBox ("Info: "..configs["information"]) -- O mesmo com configs["information"] outputChatBox (configs["conf01"]["nome"]..": "..configs["conf01"]["valor"]) -- Mostra no chat o nome da primeira configuração seguido pelo seu valor. outputChatBox ("Outra configuração: "..configs["Outra configuração"]) -- Mostra no chat o valor da segunda configuração. end) 1 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