Jump to content

Search the Community

Showing results for tags 'lua'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Multi Theft Auto: San Andreas 1.x
    • Support for MTA:SA 1.x
    • User Guides
    • Open Source Contributors
    • Suggestions
    • Ban appeals
  • General MTA
    • News
    • Media
    • Site/Forum/Discord/Mantis/Wiki related
    • MTA Chat
    • Other languages
  • MTA Community
    • Scripting
    • Maps
    • Resources
    • Other Creations & GTA modding
    • Competitive gameplay
    • Servers
  • Other
    • General
    • Multi Theft Auto 0.5r2
    • Third party GTA mods
  • Archive
    • Archived Items
    • Trash

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


Member Title


Gang


Location


Occupation


Interests

  1. Estou tentando por o addcommandhandler mas não consigo de forma nenhuma, se alguém tiver a solução para algum dos 3 scripts a baixo me avisa fznd o favor estou tentando abrir painel DX por comando ao em vez de por bindkey porem não consigo, já tentei de vários jeitos e formas porem nn vai, já pesquisei aqui no fórum, no YouTube porem nn vai function Pdx ( ) dxDrawRectangle(504, 197, 314, 397, tocolor(255, 0, 0, 100), false) dxDrawRectangle(554, 238, 218, 72, tocolor(255, 255, 255, 255), false) dxDrawRectangle(554, 347, 218, 72, tocolor(255, 255, 255, 255), false) dxDrawRectangle(554, 455, 218, 72, tocolor(255, 255, 255, 255), false) end function abrir (_,state) if painel == false then showCursor(true) addEventHandler("onClientRender", root, Pdx) painel = true else showCursor(false) removeEventHandler("onClientRender", root, Pdx) painel = false end end addCommandHandler("disappear", abrir) addCommandHandler("v", abrir) tabem tentei fazer uma versão para uma bussola: --2017 ~ Mark Gyori https://markgyori.eu/ --Contact: [email protected] local sx, sy = guiGetScreenSize() local top = 30 local font1 = dxCreateFont("font.otf", 11) local font2 = dxCreateFont("font.otf", 10) local exibir_bulssola = false local cords = { {0, "N"}, {15, 15}, {30, 30}, {45, "NE"}, {60, 60}, {75, 75}, {90, "E"}, {105, 105}, {120, 120}, {135, "SE"}, {150, 150}, {165, 165}, {170, "S"}, {195, 195}, {210, 210}, {225, "SW"}, {240, 240}, {255, 255}, {270, "W"}, {285, 285}, {300, 300}, {315, "NW"}, {330, 330}, {345, 345} } function draw ( ) local show = 15 local center = math.ceil(show / 2) - 1 local _, _, r = getElementRotation(getCamera()) local pos = math.floor(r / 15) local slotwidth = 40 local smooth = ((r - (pos * 15)) / 15) * slotwidth local left = sx / 2 - ((show + 2) * slotwidth)/2 for i=1, show do local id = i + pos - center if(id > #cords)then id = id - #cords end if(id <= 0)then id = #cords - math.abs(id) end if(cords[id])then local alpha = (tonumber(cords[id][2]) or 0 > 0) and 175 or 255 if(i < center)then alpha = alpha * (i/center) end if(i > center)then alpha = alpha * ((show-i)/center) end dxDrawRectangle(left + slotwidth * i - smooth + (slotwidth / 2 - 1) + 1, top + 10 + 1, 2, 10, tocolor(0, 0, 0, alpha * 0.5)) dxDrawRectangle(left + slotwidth * i - smooth + (slotwidth / 2 - 1), top + 10, 2, 10, tocolor(255, 255, 255, alpha)) dxDrawText(cords[id][2], left + slotwidth * i - smooth + 1, top + 20, left + slotwidth * (i+1) - smooth + 2, top + 40, tocolor(0, 0, 0, alpha * 0.5), 1, font2, "center", "center") dxDrawText(cords[id][2], left + slotwidth * i - smooth, top + 20, left + slotwidth * (i+1) - smooth, top + 40, tocolor(255, 255, 255, alpha), 1, font2, "center", "center") end end dxDrawText("➤", left + 4, top + 26 + 2, left + ((show + 3) * slotwidth) + 30, 0, tocolor(0, 0, 0, 160), 1, font1, "center", "top", false, false, false, false, false, 90) dxDrawText("➤", left, top + 26, left + ((show + 3) * slotwidth) + 30, 0, tocolor(255, 255, 255, 255), 1, font1, "center", "top", false, false, false, false, false, 90) end addCommandHandler("m1", function() if exibir_bulssola = false then addEventHandler("onClientRender", getRootElement(), draw) exibir_bulssola = true else removeEventHandler("onClientRender", getRootElement(), draw) exibir_bulssola = false end end) --->--->--->---> (inclusive tentei mudar a direção a qual ele gira não consegui se alguém souber como avisa)<---<---<---<--- e também tentei para ativar e desativar primeira pessoa na arma através de comando: function zoomarma (thePlayer) setWeaponProperty ( 30 , "poor" , "flag_aim_1st_person" , true ) setWeaponProperty ( 30 , "std" , "flag_aim_1st_person" , true ) setWeaponProperty ( 30 , "pro" , "flag_aim_1st_person" , true ) end addCommandHandeler ("m1", zoomarma ) esse addCommandHandeler não funciona de jeito nenhum
  2. Hello my friends I want the player near the car to use the CMD when the car breaks down(exploded) and the car to be repaired( respawnVehicle() ) Please help me in this matter?
  3. How i can make a inventory system !:)
  4. Hello guys I recently had ideas for setting up a server in MTA. I heard a bit about lua and its characteristics. I wanted to know what programming languages are needed to set up a game server in MTA and manage it from beginner to professional. thank you.
  5. Olá pessoal tenho aqui um script de Trancar veiculo porem se eu sair do veiculo e deixar ele trancado e entrar noutro veiculo e trancar ficam os dois trancados e tenho acesso para destrancar os dois, mas todos os player tambem tenhem ou seja eles podem destrancar os veiculos que eu tranquei alguem pode ajudar? Client Side function processLockUnlock(vehicle) local locked = isVehicleLocked(vehicle) if isPedInVehicle(localPlayer) then if locked then playSounds("lockin") triggerServerEvent("vehicleLock", localPlayer,localPlayer, vehicle, false) else playSounds("lockin") triggerServerEvent("vehicleLock", localPlayer,localPlayer, vehicle, true) end else if locked then playSounds("lockout") triggerServerEvent("vehicleLock", localPlayer,localPlayer, vehicle, false) setVehicleOverrideLights ( vehicle, 2 ) setTimer ( setVehicleOverrideLights, 1000, 1, vehicle, 1 ) outputChatBox ( "\n#ff8c00✘ #ffffffINFO #ff8c00✘➺ #ffffffVeiculo Destrancado!\n", 255, 165, 0, true ) else playSounds("lockout") triggerServerEvent("vehicleLock", localPlayer,localPlayer, vehicle, true) setVehicleOverrideLights ( vehicle, 2 ) setTimer ( setVehicleOverrideLights, 1000, 1, vehicle, 1 ) setTimer ( setVehicleOverrideLights, 1500, 1, vehicle, 2 ) setTimer ( setVehicleOverrideLights, 2000, 1, vehicle, 1 ) outputChatBox ( "\n#ff8c00✘ #ffffffINFO #ff8c00✘➺ #ffffffVeiculo Trancado!\n", 255, 165, 0, true ) end end end local klikkTimer = false function setVehicleLockState() --Função trancar o carro if klikkTimer then return end if isTimer(klikkTimerRun) then return end klikkTimer = true klikkTimerRun = setTimer(function() klikkTimer = false end,500,1) local vehicle = getPedOccupiedVehicle ( localPlayer ) if vehicle then processLockUnlock(vehicle) else local int2 = getElementInterior(localPlayer) local dim2 = getElementDimension(localPlayer) local mx,my,mz = getElementPosition(localPlayer) for k,v in ipairs(getElementsByType("vehicle")) do local x,y,z = getElementPosition(v) local int = getElementInterior(v) local dim = getElementDimension(v) local dist = getDistanceBetweenPoints3D(x,y,z,mx,my,mz) if dist <= 10 and int2 == int and dim2 == dim then processLockUnlock(v) return end end end end bindKey("l", "down", setVehicleLockState)
  6. function cancel(source) local emprego = getElementData(source, "Emprego") if emprego == "Carnicero" then if isKeyBound(source, "fire", "down", cortarCarne) then hits[source] = nil tick[source] = nil removeEventHandler("onElementClicked", caixa[source], onClick) removeEventHandler("onPlayerQuit", source, reset) removeEventHandler("onPlayerWasted", source, reset) if isElement(carne[source]) then destroyElement(carne[source]) carne[source] = nil end if isElement(caixa[source]) then destroyElement(caixa[source]) caixa[source] = nil end if isTimer(timerEsteira[source]) then killTimer(timerEsteira[source]) timerEsteira[source] = nil end if isTimer(timerEntregar[source]) then killTimer(timerEntregar[source]) timerEntregar[source] = nil end toggleAllControls(source, true) unbindKey(source, "fire", "down", cortarCarne) setPedAnimation(source, "CARRY", "liftup", 0.0, false, false, false, false) setElementVisibleTo(empacotar, source, false) setElementVisibleTo(entregar, source, false) end end end addCommandHandler("cancelar", cancel) Do you have any idea why I get this waring, and how to solve it? Thank you very much gentlemen WARNING: Bad argument @ 'removeEventHandler' [Expected element at argument 2, got nil]
  7. Introdução O conteúdo deste tópico será separado por seções, ensinando passo-a-passo cada detalhe - desde criar um BOT no site do Discord Developers, até finalmente ligá-lo e executar os comandos, que serão enviados para o seu servidor MTA. Siga todos os passos para que tudo dê certo. Configurando o ambiente Bom, para que nós possamos iniciar, é necessário instalar duas coisas no seu computador: Node.js e Visual Studio Code. Só um adendo: não é estritamente necessário usar o VSCode, estou apenas sugerindo-o, e também é a IDE que irei utilizar neste tutorial. Após instalá-los, seguiremos a próxima seção. Como criar um BOT no Discord Developers Acesse este link: https://discord.com/developers/applications - se você não estiver com uma sessão do Discord aberta no navegador, faça o login para que você possa acessar as funcionalidades desse site. Provavelmente, após entrar numa sessão, uma página como esta irá surgir: Ignore as minhas aplicações. O seu estará vazio - eu acho. Para iniciarmos a criação de uma nova aplicação, clique no botão que está no canto superior direito: Escolha o nome que desejar, isso não importa muito para este tutorial. Uma vez criada, uma outra página aparecerá, com mais informações. Primeiramente, vá até a aba Bot. O botão fica ao lado esquerdo: Agora, para que criemos de fato o BOT, clique no botão ao lado direito: Um pop-up irá aparecer, basta clicar em Yes, do it! Mais uma vez, irá carregar, na mesma aba, mais informações, agora sobre o seu BOT. Não compartilhe nada do que estiver escrito na página, com ênfase no seu token, que faz o seu BOT ficar online. Agora, voltemos para a aba principal: Nessa aba, você possui o Client ID da sua aplicação. Esse ID não é o token, você não precisa se preocupar caso compartilhe com alguém: Copie-o e acesse este link para que possamos dar continuidade: https://discordapi.com/permissions.html. Nesse site, nós podemos gerar o link de convite, no qual você irá precisar para adicionar o BOT no seu servidor do Discord. Cole o ID que você copiou neste campo: Também, selecione a permissão de administrador, que fica logo acima: Feito todos os passos, copie o link, abra uma nova aba no seu navegador e acesse o link gerado. Ele é parecido com este: Assim que você acessar, selecione o servidor no qual você quer adicionar o BOT e confirme tudo o que é pedido. Caso você tenha feito corretamente, o seu BOT já está no seu servidor. Vamos a próxima seção. Clonando o repositório do BOT Optei por criar um repositório no GitHub para que fique mais fácil este tutorial. Se você não sabe o que é clonar, apenas clique no botão de baixar, ao invés de clonar. Ele é assim: Clique em Download ZIP. Uma vez que temos o repositório no computador, descompacte-o na área de trabalho mesmo. Feito isso, uma pasta será criada. Agora, abriremos o VSCode. Siga estas instruções: Você irá selecionar a sub-pasta, que está dentro do pasta descompactada. Preste atenção ao selecionar. Há uma outra pasta dentro daquela que extraímos, abra a pasta correta. O resultado deve ser este: Ignore os ícones, fonte, cor de fundo. São extensões que eu uso. Vamos a próxima seção. Como instalar os pacotes da aplicação Ainda no VSCode, pressione CTRL + ' (aspas simples). O terminal irá abrir. Com ele aberto, digite o comando npm install. Os pacotes serão instalados - uma nova pasta e arquivo serão gerados. Não se preocupe com isso, não faz parte deste tutorial. Próxima seção! Como habilitar o Modo Desenvolvedor no Discord Para que nós possamos avançar a próxima seção, nós precisamos habilitar o modo desenvolvedor, para obter os IDs de canais, servidor, usuário, cargos e outros. É simples. Acesse as configurações da sua conta, clique na aba Aparência, desça tudo e irá se deparar com isto: O meu já está ativado. Caso o seu não esteja, ative-o. Next... Configurando as variáveis do BOT Agora que nós já podemos copiar o ID de alguns elementos do Discord, iremos configurar os arquivos que estão dentro da pasta config, abra-a. Os arquivos são estes: Primeiramente, crie um canal no seu servidor do Discord e copie o ID dele. Basta clicar com o botão direito em cima e copiá-lo. Abra o arquivo channel.js e apenas altere o valor que está lá. Salve o arquivo e abra o próximo, guild.js. Para eu não me estender muito, você fará os mesmos passos acima, copiando o ID e substituindo. Para copiar o ID do seu servidor, basta clicar com o botão direito em cima do nome dele. Já no arquivo mta.js, você deve alterar as informações de acordo com o seu servidor. Veja a explicação abaixo. ip - do seu servidor. httpPort - a porta HTTP do seu servidor, você pode consultá-la aqui neste site. username - crie um usuário no seu servidor e dê permissões administrativas para ele. password - a senha que você colocou no usuário. ATENÇÃO: USE UM USUÁRIO E SENHA QUE NÃO SEJA FÁCIL DE DESCOBRIR, LOGO NÃO COMPARTILHE COM NINGUÉM. Em relação ao outro arquivo, prefix.js, é apenas o prefixo que você usará nos comandos, altere se quiser. O arquivo token.js fala por si só, você irá pegar o token de acesso do seu BOT, lá no site do Discord Developers e substituir dentro do arquivo. Acompanhe na imagem abaixo. Bom, já disse na seção passada que você não deve compartilhar o token. Seguiremos a próxima. Clonando o repositório do resource Assim como no repositório do BOT, o resource também está no GitHub. Baixe-o, da mesma forma do BOT, mas agora adicione no seu servidor MTA, na pasta resources. Lembrando que deve-se extrair e colocar a pasta correta, verifique bem a sub-pasta. Uma vez adicionado no seu servidor, use o comando refresh para atualizar a lista de resources e inicie-o. Ah, e também dê permissões administrativas para ele! Pronto. Já podemos prosseguir. Iniciando o BOT Estamos quase ao ponto de executar os comandos. Vamos iniciar o BOT. Agora no VSCode, naquele mesmo terminal, use o comando npm start. Se tudo foi feito corretamente, ele irá se iniciar sem erros e uma mensagem dizendo que o BOT foi ligado deve aparecer. Testando os comandos Lembra que nós criamos um canal para executar os comandos? Pois é agora que iremos utilizá-lo. Lembre-se: o seu servidor deve estar ligado - entre nele também para que você possa ver as mensagens no chat. Alguns comandos que eu fiz, apenas para exemplificar. Você pode adicionar mais comandos se quiser. Se você não alterou o prefixo, aqui estão os comandos que fiz. (Você deve ser ADMINISTRADOR do seu servidor para executá-los) $settime <hora> <minuto> - $settime 12 00 | Irá alterar o clima no servidor. $text <mensagem> - $text opa, jogadores, tudo bem? | A mensagem será enviada no chat do servidor. $status | Mostrará algumas informações do servidor no chat do Discord. $mute <jogador> - $mute andr0xy | O jogador ficará mutado até se reconectar. $givemoney <jogador> <quantia> - $givemoney andr0xy 15000 | Dá dinheiro ao jogador. $cgroup <nome> - $cgroup VIP | Cria um grupo na ACL. Apenas uma observação: é possível sim, nos comandos que envolvem jogadores, executá-los pelo ID. Basta você editar o resource - não irei explicar como faz isso, pois não tem relação ao tutorial. Agradecimento & Informações Muito obrigado por seguir o tutorial. Fiz com o ❤ para toda a comunidade. Espero que vocês evoluam ambos códigos e que isso se torne muito maior dentro do servidor de vocês. Lembre-se que tudo é possível no MTA, contribuam sempre de alguma forma para que outros também possam evoluir. A união é importante nessa área. Busquem conhecimento! Crédito ao autor da SDK, o que faz ser possível conectar-se ao servidor MTA. 4O4 - GitHub Edições neste tutorial 28.01.2021 - AVISO: renomeie o resource para discordapp. 29.01.2021 - CORREÇÃO: texto confuso na seção Clonando o repositório do BOT. 29.01.2021 - AVISO: código do resource refatorado, sendo mais fácil adicionar novos comandos.
  8. Olá, estou tentando por uma animaçao para andar, já tirei os movimentos das pernas, mas o ped só fica girando no eixo, nao anda
  9. Opa, sou recente jogador de mta e, tenho uma grande dúvida sobre a linguagem .lua, eu sou especializado na linguagem Python e, não sei nada sobre a linguagem .lua que é a linguagem usada no app de vocês. A linguagem .lua é uma linguagem única ou pode colocar códigos em Python dentro da linguagem .lua? Desde já agradeço.
  10. Queria fazer uma animação do player varrendo. queria saber se é possivel e como. agradeço des de já <3
  11. Quero que ele gire! local gate = createObject(13831, 1401.72900, -806.37512, 84.99246, 0, 0, 0) function girar () moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 10) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 20) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 30) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 40) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 50) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 60) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 70) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 80) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 90) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 100) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 110) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 120) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 130) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 140) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 150) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 160) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 170) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 180) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 190) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 200) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 210) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 220) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 230) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 240) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 250) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 260) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 270) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 280) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 290) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 300) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 310) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 320) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 330) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 340) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 350) moveObject(gate, 6000, 1401.72900, -806.37512, 84.99246, 0, 0, 360) end addEventHandler("onResourceStart", root, girar)
  12. Hello, i'm trying to make a script that when a player clicks on the keypad, local screenW, screenH = guiGetScreenSize() function keypad () dxDrawRectangle(screenW * 0.3772, screenH * 0.2500, screenW * 0.2390, screenH * 0.5156, tocolor(52, 52, 52, 255), false) dxDrawRectangle(screenW * 0.3846, screenH * 0.2734, screenW * 0.2243, screenH * 0.0404, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4110, screenH * 0.3477, screenW * 0.0500, screenH * 0.0781, tocolor(254, 254, 254, 255), false) dxDrawRectangle(screenW * 0.4110, screenH * 0.6693, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4713, screenH * 0.6693, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.5331, screenH * 0.6693, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4110, screenH * 0.4388, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4110, screenH * 0.5299, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4713, screenH * 0.5299, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.5331, screenH * 0.5299, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.5331, screenH * 0.3477, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4713, screenH * 0.4388, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.4713, screenH * 0.3477, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawRectangle(screenW * 0.5331, screenH * 0.4388, screenW * 0.0500, screenH * 0.0781, tocolor(255, 255, 255, 255), false) dxDrawText("1", screenW * 0.4110, screenH * 0.3477, screenW * 0.4610, screenH * 0.4258, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("2", screenW * 0.4713, screenH * 0.3477, screenW * 0.5213, screenH * 0.4258, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("3", screenW * 0.5331, screenH * 0.3477, screenW * 0.5831, screenH * 0.4258, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("4", screenW * 0.4110, screenH * 0.4388, screenW * 0.4610, screenH * 0.5169, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("5", screenW * 0.4713, screenH * 0.4388, screenW * 0.5213, screenH * 0.5169, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("6", screenW * 0.5331, screenH * 0.4388, screenW * 0.5831, screenH * 0.5169, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("7", screenW * 0.4110, screenH * 0.5299, screenW * 0.4610, screenH * 0.6081, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("8", screenW * 0.4713, screenH * 0.5299, screenW * 0.5213, screenH * 0.6081, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("9", screenW * 0.5331, screenH * 0.5299, screenW * 0.5831, screenH * 0.6081, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("ESC", screenW * 0.4110, screenH * 0.6693, screenW * 0.4610, screenH * 0.7474, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("OK", screenW * 0.4713, screenH * 0.6693, screenW * 0.5213, screenH * 0.7474, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, false, false, false) end function toggleCursor () showCursor(not isCursorShowing()) end bindKey("m", "down", toggleCursor) function keypadClick(button, state, wx, wy, wz, clickedElement) if button == "left" and state == "down" then if (clickedElement == keypad) then local x, y, z = getElementPosition(localPlayer) if (getDistanceBetweenPoints3D(x, y, z, wx, wy, wz) <=5) then triggerEvent ("keypad_panel", root) end end end end addEventHandler("onClientClicked", getRootElement(), keypadClick) function renderPanel () if panel == false then addEventHandler ("onClientRender", root, keypad) panel = true end end addEvent ("keypad_panel", true) addEventHandler ("keypad_panel", root, renderPanel) function isCursorOnElement ( x, y, w, h ) local mx, my = getCursorPosition () local fullx, fully = guiGetScreenSize () cursorx, cursory = mx*fullx, my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end it shows a dxGui, but, it dosen't show any errors and dosen't work, can someone help me?
  13. Estou começando a programar agora e estou tentando desenvolver um comando de ''Auxilio Emergencial'' que pode pegar R$600 a cada um dia (ou um determinado tempo) Só que eu não consigo de jeito nenhum colocar um timer function dinheiro(player, commandName, quantidade) givePlayerMoney(player, 600) exports.InfoBox:addBox(player, "success", "Seu Auxílio foi pago!") end addCommandHandler("auxilio", dinheiro)
  14. I wanted to ask if you can access variable x from scrip1.lua in script2.lua. The thing is that I have a special variable in a script that loads an XML file, and I wanted to create another script specifically for commands, and in it I wanted to acces the special variable.
  15. Oi, estou a bastante tempo tentando solucionar um problema em um script e não estou conseguindo. O script é de contagem regressiva, e eu estou tentando por para que somente "X" acl possa utilizar o comando, que até então, o script está permitindo que todos utilizem. este é o script virgem, sem as minhas modificações falhas; countdRunning = false function conteoTick (thePlayer) se restante == 0 then killTimer (conteoTimer) playSoundFrontEnd (root, 45) outputChatBox ("VAI VAI VAI!", root, 0,188,0) countdRunning = false else playSoundFrontEnd (root, 44) local factorGreen = 255 / (countdStart-1) local resultadoGreen = factorGreen * restante-factorGreen local factorSpaces = 12 / (countdStart-1) local resultSpaces = math.floor (factorSpaces * restante-factorSpaces) local permanentStr = "" para i = 0, resultSpaces do restanteStr = restanteStr .. "" end restanteStr = restanteStr .. restante outputChatBox (restanteStr, root, 255, resultadoGreen, 0) restante = restante - 1 end end addCommandHandler ("contar", função (thePlayer, cmd, startArg) --addCommandHandler ("countd", função (thePlayer , cmd, startArg) --addCommandHandler ("contagem regressiva", função (thePlayer, cmd, startArg) --addCommandHandler ("conteo", função (thePlayer, cmd, startArg) se countdRunning then outputChatBox ("Já existe uma contagem regressiva atual" , thePlayer) return else if startArg and tonumber (startArg) then countdStart = tonumber (startArg) else countdStart = 3 end if countdStart ~ = 3 and countdStart ~ = 4 then outputChatBox ("Disponível apenas: 3 e 4", thePlayer, 255,0,0) return end restante = countdStart outputChatBox (getPlayerName (thePlayer) .. "# FF8C00começouçou uma contagem regressiva ", root, 255.255.255 , true) conteoTick (thePlayer) conteoTimer = setTimer (conteoTick, 1000,0, thePlayer) countdRunning = true end end)
  16. addEventHandler("onResourceStart", resourceRoot, function(res) local resourceName = getResourceName(resourceRoot) local commandsList = {} --table to store commands for _, subtable in pairs( getCommandHandlers() ) do local commandName = subtable[1] local theResource = subtable[2] if not commandsList[theResource] then commandsList[theResource] = {} end table.insert( commandsList[theResource], commandName ) local commands = getCommandHandlers( theResource ) for _, command in pairs( commands ) do commandFound = command if commandFound then outputDebugString("Commands found in "..resourceName..": "..commandFound, 3, 255, 0, 0) end end end end) I'm trying to get all commands found in some resource, i'm trying to use this code, but doesnt works! any kind of help? please? How i want to work: On resource starts > Get Resource Name > Get Resource Commands > return (resName, Commands).
  17. I want to do this: Using webhook, something like this: -- created by zsenel local discordWebhookURL = "https://discord.com/api/webhooks/835103134270488596/FY5*********EXAMPLE************yKEaRsKJp4" function sendDiscordMessage(message) sendOptions = { formFields = { content = "Example:", username = "webhook - Example", embed = { description= "```Some user have typed \"help\" command.```", color= null, author= { name= "Webhook - Example" }, footer = { text = "I want to do this..." }, }, }, } fetchRemote ( discordWebhookURL, sendOptions, WebhookCallback ) end function WebhookCallback(responseData) outputDebugString("(Discord webhook callback): responseData: "..responseData) end function SendDiscordTestMessage(player, command, ...) local msg = table.concat({...}," ") -- for multiple words sendDiscordMessage(msg) end Return < Thats only a example do i want to do, any kind of help please?
  18. local gate = createObject(980, 1001.5, -1096.9000244141, 25.60000038147, 0, 0, 110) local marker = createMarker(1001.5, -1096.9000244141, 25.60000038147, "cylinder", 8, 0, 0, 0, 0) function moveGate(thePlayer) if isObjectInACLGroup("user." .. nomeAcc, aclGetGroup("TDF")) then moveObject(gate, 3000, 1001.5, -1096.9000244141, 20) end end addEventHandler("onMarkerHit", marker, moveGate) function move_back_gate() moveObject(gate, 3000, 1001.5, -1096.9000244141, 25.60000038147) end addEventHandler("onMarkerLeave", marker, move_back_gate) I think its all ok with this code, but... ERROR. I wrongly have deleted a wrong line on my code, thats all ok now guys, i think. local nomeAcc = getAccountName (getPlayerAccount (source))
  19. Hi guys, this is my first topic and I hope to get my answer soon :D The question I had was, can the cmd be entered into MTA:SA Server through Discord Bot? for example: Inside the discord: !kill <playerid> Then inside the MTA:SA: function kill(player) { setElementHealth(player, 0) } I just wanted to know if this is done or not. In that case, I'm glad you taught me a solution :D
  20. Hi friends, I have a small problem In the console it gives this warning Bad argument @ 'setElementModel' [Expected element at argument 1, got number '100'] Which corresponds to the following line setElementModel (tonumber(getElementData(accSys:getPlayerAcc(thePlayer), "cSkin"))) cods ---- admin duty skin ---- addCommandHandler("a209", function ( thePlayer, command ) if tonumber(getElementData(accSys:getPlayerAcc(thePlayer), "pAdmin")) < 10 then return false end setElementData(accSys:getPlayerAcc(thePlayer), "dSkin", 209) setElementModel (thePlayer, 209) end) --- admin off skin ---- addCommandHandler("o209", function ( thePlayer, command ) if tonumber(getElementData(accSys:getPlayerAcc(thePlayer), "pAdmin")) < 10 then return false end setElementModel (tonumber(getElementData(accSys:getPlayerAcc(thePlayer), "cSkin"))) end) in part of ---- admin duty skin ---- There is no problem in the ---- admin duty skin ---- part but In the second part, --- admin off skin ----, when I order, Warning comes The second part must set the player model from the part of cSkin But it does not and gives high warning Sorry for the bad English language Please help me, my only hope is you
  21. Mas não consigo, algo da errado no 'isElementInRange', alguém poderia me ajudar? addCommandHandler("car", function(thePlayer,veh) local x, y, z = getElementPosition (thePlayer) local veh = getElementsByType('vehicle') if isElementInRange(veh, x, y, z, 25) then outputChatBox("teste",thePlayer,255,255,255,true) end end end ) Print do erro: https://prnt.sc/12bhy03
  22. Пытались уже таблицой сделать не чего не вышло Очень странно! Что же не так?
  23. Anyone can send me a working yt mp3 converter API? Or how to create one, to play music from youtube on my server?
  24. Eu sou novo no fórum e novo em script em lua, queria saber qual o problema que o meu script de limpar chat não funciona, o que eu quero fazer é com que a ACL Staff consiga usar o comando... ( esse é o server side ) function limpar(player) local accountname = getAccountName(getPlayerAccount(player)) if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)) , aclGetGroup("Staff")) then outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") outputChatBox(" ") triggerClientEvent(root, "limparchat", root, getPlayerName( player ) ) else outputChatBox("Você não tem acessa a este comando !", player, 255, 100, 100, true) end end addCommandHandler("chat", limpar) (EDIT) O Erro do debug é este abaixo
×
×
  • Create New...