Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 27/01/21 in all areas

  1. É possível sim. Você precisa de alguma SDK, para criar a conexão entre o seu app (bot) e o servidor MTA. Aqui estão algumas SDKs feitas pelos próprios administradores/staff do MTA: https://github.com/botder/mtasa-discord-bot - por botder https://github.com/4O4/node-mtasa - por 4O4 Você precisa ter um pouco de conhecimento em relação aos módulos/pacotes do Node.js. Está tudo explicado em ambos links. Particularmente, eu acho os dois muito bons, apesar de que o primeiro, feito pelo botder, possa ser um pouco mais complicado configurar, porém é o mais completo. Irei explicar sobre a SDK feita pelo 4O4. Ao abrir o link, você irá se deparar com esta página: https://prnt.sc/xpky0k - deixei em formato de link, pois a imagem é grande. Desça um pouco a página, terá as instruções sobre como usar. Lembrando que o seu app (bot) deve ser em JavaScript, utilizando o framework Discord.js. Este é o comando que você irá utilizar para adicionar o pacote ao seu projeto: Aqui, é onde você irá carregar o pacote e logo em seguida instanciar a classe Client: Feito isso, agora você deve configurar o IP do seu servidor, porta (HTTP), nome de usuário e senha - lembrando que eles, nome de usuário e senha, devem possuir acesso admin ao servidor. Sugiro criar uma conta dentro do seu servidor só para esse propósito. Insira uma senha forte. Você fará o procedimento acima desta forma: - a ordem dos parâmetros é a mesma que eu citei acima. IP, Porta (HTTP), usuário e senha. Finalmente, você está apto para criar uma comunicação com o seu servidor MTA através de comandos do seu app (bot). A imagem abaixo mostra duas opções de implementação. (lembrando que o código deve estar dentro de um bloco de comando, não irei me estender muito, mas você pode voltar aqui para retirar suas dúvidas. ?) A primeira implementação é feita baseada em Async/Await, ou seja, de forma bem resumida, o seu código será assíncrono. O app (bot) irá esperar uma resposta do servidor para continuar a execução do código por completo, uma vez que o await é chamado para alguma função. Já a segunda, é um pouco mais antiga, feita através de Promises. Sobre o código mostrado acima, vou explicar um pouco mais sobre ele. Uma vez que a conexão está aberta (no caso, armazenada na variável mta), nós podemos obter os resources do servidor, através da propriedade resources, como mostrado no código abaixo - leve em consideração, a partir daqui, o segundo método, sem async/await. mta.resources Quando nós obtemos os resources, é possível buscar algum em específico, da mesma forma, usando a notação ponto. Em nosso caso, o código está buscando pelo resource nomeado de test_resource. Finalmente, quando buscamos por ele, você pode usar qualquer função que esteja dentro dele - a função deve ser exportada, com o atributo http definido como true. Então, vamos criar um exemplo de código, usado no MTA. Arquivo discord.lua onde ficará suas funções que farão alguma ação dentro do jogo: Arquivo meta.xml, no qual você exportará as funções do arquivo acima: Sobre o arquivo discord.lua: tudo o que está retornando, aparecerá como um feedback em result, aqui: Recomendo fortemente que você retorne qualquer feedback, para facilitar a sua visualização, se um comando foi efetuado ou não com sucesso dentro do servidor.
    3 points
  2. Hi. You have to use onClientObjectDamage, check the example on wiki.
    2 points
  3. There are 2 events: https://wiki.multitheftauto.com/wiki/Client_Scripting_Events#Object_events
    2 points
  4. Olá pessoal, hoje vamos falar de algo que destrói a cabeça de novatos no MTA: Quando e onde devo usar source? Então vamos a primeira pergunta que surge, mas o que diabos é source no MTA? source nada mais é do que: parâmetro determinado por uma função ou evento. Você agora você deve estar perguntando o que é parâmetro. É muito simples, pense comigo na função addCommandHandler. Ela tem 2 parâmetros predeterminados que são (Quem_Executou, Nome_Do_Comando), como na imagem abaixo: Como você pode ver na imagem, ela tem os 2 parâmetros citados acima. Lembrando que: a própria wiki fala sobre os parâmetros. playerSource: O jogador que acionou o comando ou o console do servidor. Se não for acionado por um jogador (por exemplo, por administrador) ou console de servidor, isso será falso. commandName: O nome do comando que foi acionado. Isso é útil se vários comandos passarem por uma mesma função. Mesmo o parâmetro sendo predeterminado, você pode botar o nome que você quiser, por ex: O parâmetro de quem executou o comando é playerSource, mas você pode botar qualquer nome como: p, player, sujeito, shuppinga e etc.... da mesma maneira o commandName (nome do comando), você pode botar (nome_do_comando, comando). Como você prefere. (mas é claro, siga um padrão a qual os outros programadores possam entender seu código !!) _____________________________________________________________ Mas quando devo usar source então? Simples, quando não existe o parâmetro que indique o sujeito. Por exemplo, o evento onPlayerWasted. O evento onPlayerWasted tem o seguintes parâmetros: totalAmmo - A munição total que a vitima tinha quando morreu, killer - O assassino que matou a vitima, killerWeapon - O id da arma do assassino, bodyPart - A parte do corpo da vítima que foi atingida quando ela morreu, stealth - Um valor booleano representando se esta foi ou não uma morte furtiva. Note que não existe o parâmetro vítima. Então aqui que entra o source. Mas como saber o que é o source? A própria wiki diz, basta ler A source deste evento é o jogador que morreu ou foi morto. Então o tutorial fica por aqui :), bye bye. (lembrando que essas fontes são próprias, então pode ser um conteúdo incorreto, mas espero ter ajudado a tirar a dúvida, lembrando que ela pode ser corrigida por alguém de bom conhecimento sobre do conteúdo.)
    1 point
  5. Obrigado. ? Exatamente. O nome da função no código do 4O4 é testProcedure, no qual estou substituindo por discordGiveMoney. Você pode encontrar a função em questão dentro do arquivo discord.lua. Essas funções devem ser exportadas, server-side, como mostrei no código do arquivo meta.xml. Sobre a sua recomendação, eu mesmo irei criar um tutorial, com mais informações e mais código. Mas não por agora.
    1 point
  6. 1 point
  7. наверно нужно сначала отсортировать список rowTable по нужному тебе параметру, а потом уже заполнять гридлист
    1 point
×
×
  • Create New...