-
Posts
3,981 -
Joined
-
Last visited
-
Days Won
181
Everything posted by Lord Henry
-
Coloque os timers dentro de variáveis e então vc pode usar killTimer nas variáveis. local TheTimers = {} -- Tabela vazia, onde ficarão os timers. function DelayMessage(thePlayer) outputChatBox ("Instant text!") TheTimers[1] = setTimer(function() -- Cria o primeiro timer e coloca ele na 1 posição da tabela. outputChatBox("5 seconds delay text!") end, 5000, 2) TheTimers[2] = setTimer(function() -- Cria o segundo timer e coloca ele na 2 posição da tabela. outputChatBox("Final text") end, 10001, 1) end addCommandHandler("msg", DelayMessage) addCommandHandler("parar", StopMsg() for i,v in pairs (TheTimers) do -- Para cada item da tabela TheTimers, faça: if (isTimer(v)) then -- Se o item é um timer ativo, então: killTimer(v) -- Cancela esse timer. TheTimers[i] = nil -- Anula a variável dele para desocupar memória. end end end)
-
Corrija a indentação. function TheHud() setPlayerHudComponentVisible("all", not isPlayerHudComponentVisible("clock")) end addCommandHandler("hud", TheHud) Obs: Client-side
-
Compare o valor que está na variável ip com a variável authorizedIP. function authorizeResource () authorizedIP = "000.000.000.000" local ip = exports["serverIP"]:getServerIP () -- ip recebe o valor que está na variável Server_IP do resource de segurança. print ("IP = "..tostring(ip).." | authorizedIP = "..authorizedIP) -- Mostra no /debugscript 3 as duas variáveis para saber qual delas está errada. if (ip ~= authorizedIP) then -- Se o IP que recebeu do resource de segurança for diferente do IP configurado neste resource cancelEvent(true, "This resource was not purchased by this IP.") -- Cancela a ativação deste resource print ("Incorrect Server IP from: "..getResourceName(getThisResource()).." (REASON: "..getCancelReason ()..")") end end addEventHandler ("onResourceStart", resourceRoot, authorizeResource)
-
Condição caso player esteja em modo "Duck"
Lord Henry replied to Doongogar's topic in Programação em Lua
Anexe o objeto ao osso do personagem, não ao elemento. Use a função útil AttachElementToBone -
@IiFEROZnão é possível aumentar o nível de procurado para além de 6. Ele só permite de 0 até 6, com a função mencionada acima.
-
Para fazer pegar fogo constantemente vc tem que ficar setando o fogo nele novamente quando detectar que ele não está mais pegando fogo. function BotarFogo() -- Vai executar isso a cada frame. if not (isPedOnFire(localPlayer)) then -- Se o localPlayer não estiver em chamas, então: setPedOnFire(localPlayer, true) -- Coloca fogo no localPlayer. end end addCommandHandler("fogo", function(cmd) -- Comando para iniciar o teste. addEventHandler("onClientRender", root, BotarFogo) -- Começa a verificar o fogo a cada frame. end) Obs: Este exemplo é client-side.
-
setGameSpeed Setar Velocidade Apenas Em Player
Lord Henry replied to Doongogar's topic in Programação em Lua
Olá. Não é possível mudar a velocidade de um jogador individual de maneira legítima, isso seria hack. Sobre o horário, é que a função faz justamente isso, torna o jogo mais rápido, tudo fica mais rápido inclusive o tempo. Se você quer deixar o jogo mais rápido sem aparecer os jogadores bugados, tem que aumentar a velocidade server-side, ou seja, para todo mundo. Mas o relógio continuará avançando depressa, pois faz parte do que essa função faz. Para tentar corrigir isso, você pode mudar a duração de cada minuto de jogo, que é de 1 segundo por padrão (1000 ms) com a função SetMinuteDuration. Assim você consegue deixar o jogo mais rápido, porém manter o tempo normal com um reajuste de tempo. -
Vamos ver se consigo decifrar sua mensagem criptografada com linguagem QI de baixo nível: Então, eu queria saber como eu posso fazer com que a função setPedOnFire permaneça funcionando para que o ped não pare de pegar fogo. É isso que você quis dizer?
-
Leia sobre no addCommandHandler, o terceiro parâmetro da função (caso seja usada em server-side) é a palavra que vem depois do comando. function QualquerCoisa (thePlayer, cmd, parametro) if (parametro == "empregos") then -- Faz tal coisa aqui. elseif (parametro == "cnh") then -- Faz outra coisa aqui. else outputChatBox ("Sintaxe: /infos <empregos / cnh>", thePlayer) end end addCommandHandler ("infos", QualquerCoisa) Se for fazer client-side, apague as palavras thePlayer do exemplo acima.
- 1 reply
-
- 1
-
SHA256 significa Safe Hash Algoritm 256 bits (Algoritmo de Hash Seguro de 256 bits). Ele serve para criptografar dados. Existem outros como "md5", "sha1", "sha224", "sha256", "sha384", "sha512".
-
Comando Apenas Com um Elemento Especifico
Lord Henry replied to Doongogar's topic in Programação em Lua
Assim: if (getElementData(source, "nomeDaData") == valorQuePrecisaEstarNaData) then -
@SciptNovatoexato, desse jeito mesmo! Ficou perfeita a indentação. Só algumas últimas dicas: As strings (textos) prefira colocá-las dentro de "aspas duplas" em vez de 'aspas simples'. Em Lua não faz diferença, mas prefira seguir um padrão para melhorar seu nível de programação. Em algumas linguagens de programação, as aspas simples só funcionam para caractere e não para strings, o que pode gerar erro. Nunca utilize source como parâmetro de função. Ela é uma variável predefinida pelo evento que está ativando a função, ao usar o source como parâmetro, você estará perdendo o source original. Prefira usar thePlayer ali nesse caso. Nem sempre isso gera erro, mas é preferível que se faça isso para evitar conflitos e casos onde vc precisa do source original junto com o parâmetro.
-
Passo a passo de como indentar um código que veio sem indentação: Exemplo qualquer: 1. Adicione 4 espaços em tudo que estiver dentro da função principal, exceto a própria função e o end dela. Ela deve ficar assim: 2. Adicione mais 4 espaços em tudo que estiver depois do primeiro if, exceto o penúltimo end que pertence a ele. 3. Faça o mesmo com todos os if que tiverem dentro deste, um de cada vez. Vale lembrar que isso se aprende ao estudar lógica de programação e algoritmos. Curtiu este conteúdo? Achou ele útil para você ou para alguém? Deixe seu like neste tópico clicando no coração abaixo. \/
-
- 2
-
- indentação
- dicas
-
(and 2 more)
Tagged with:
-
@?????? favor não ficar colando códigos mal-formatados e sem explicação alguma. Nosso fórum tem como objetivo ensinar os usuários em vez de apenas dar códigos prontos. Utilize o botão <> do fórum na próxima vez que for colar scripts e sempre comente detalhes sobre o que está no script. Você pode comentar tudo antes do script ou então comentar cada linha do código usando -- no final das linhas. Explicando o que cada linha do script faz. @SciptNovato Indente com 4 espaços por escopo em vez de 2. Além disso, mantenha com 4 espaços até o fim daquele escopo. Sempre que tiver uma condição dentro de outra, ela vai recebendo +4 espaços extras e assim por diante. Exemplo: function robtag ( source ) -- AQUI INICIA O ESCOPO DA FUNÇÃO. ELA E O END DELA NÃO TEM ESPAÇO. MAS TUDO QUE ESTIVER DENTRO DELA RECEBE 4 ESPAÇOS POR PADRÃO. if isElementWithinMarker (source, PegarTag ) then -- AQUI INICIA O ESCOPO DESSA CONDIÇÃO IF. ELA JÁ TEM OS 4 ESPAÇOS POR CAUSA DO ESCOPO DA FUNÇÃO E DENTRO DELA TERÁ +4 ESPAÇOS ATÉ O SEU END. FICANDO COM 8 ESPAÇOS DENTRO DELA. aclGroupAddObject (aclGetGroup("BOPE"), "user."..getAccountName(getPlayerAccount(source))) outputChatBox ("[Sistema Tag] Agora Você Já Tem Tag Da"..NomeTag, source, 255, 255, 255, true) -- ESSAS 3 LINHAS ESTÃO DENTRO DO ESCOPO DO IF, RECEBENDO OS 8 ESPAÇOS DENTRO DESTE ESCOPO. outputChatBox ("[Sistema Tag] Para Sair Basta Digitar"..ComandoSair, source, 255, 255, 255, true) else -- NÃO FAZ PARTE DO ESCOPO DA CONDIÇÃO ACIMA, O ELSE NA VERDADE É OUTRA CONDIÇÃO COM SEU PRÓPRIO ESCOPO, ENTÃO ELE RECEBE SÓ OS 4 ESPAÇOS DA FUNÇÃO, MAS NÃO RECEBE OS ESPAÇOS DA CONDIÇÃO ANTERIOR, POIS ELE NÃO FAZ PARTE DELA. ELE É COMO SE FOSSE OUTRO IF PORÉM SEM PARÂMETROS. outputChatBox ("[Sistema Tag] Voce Tem Que Estar no Lugar Certo Para Pegar a Tag", source, 255, 255, 255, true) -- ESSA LINHA ESTÁ DENTRO DO ESCOPO DO ELSE, RECEBENDO OS 8 ESPAÇOS DELE. end -- FIM DO ESCOPO DAS CONDIÇÕES, RECEBENDO SEMPRE OS MESMOS ESPAÇOS QUE ELAS. end -- FIM DO ESCOPO DA FUNÇÃO, RECEBENDO SEMPRE O MESMO ESPAÇO QUE ELA TINHA NO INÍCIO (NENHUM ESPAÇO). addCommandHandler ( "bope", robtag ) -- ISSO ESTÁ FORA DA FUNÇÃO E DE SEU ESCOPO, SERVE APENAS PARA CHAMÁ-LA VIA COMANDO.
-
A função setElementSpeed é do tipo útil, portanto vc precisa colar o código-fonte dela no seu script para que ela funcione. Coloque isso no início do seu script: function getElementSpeed(theElement, unit) -- Check arguments for errors assert(isElement(theElement), "Bad argument 1 @ getElementSpeed (element expected, got " .. type(theElement) .. ")") local elementType = getElementType(theElement) assert(elementType == "player" or elementType == "ped" or elementType == "object" or elementType == "vehicle" or elementType == "projectile", "Invalid element type @ getElementSpeed (player/ped/object/vehicle/projectile expected, got " .. elementType .. ")") assert((unit == nil or type(unit) == "string" or type(unit) == "number") and (unit == nil or (tonumber(unit) and (tonumber(unit) == 0 or tonumber(unit) == 1 or tonumber(unit) == 2)) or unit == "m/s" or unit == "km/h" or unit == "mph"), "Bad argument 2 @ getElementSpeed (invalid speed unit)") -- Default to m/s if no unit specified and 'ignore' argument type if the string contains a number unit = unit == nil and 0 or ((not tonumber(unit)) and unit or tonumber(unit)) -- Setup our multiplier to convert the velocity to the specified unit local mult = (unit == 0 or unit == "m/s") and 50 or ((unit == 1 or unit == "km/h") and 180 or 111.84681456) -- Return the speed by calculating the length of the velocity vector, after converting the velocity to the specified unit return (Vector3(getElementVelocity(theElement)) * mult).length end function setElementSpeed(element, unit, speed) local unit = unit or 0 local speed = tonumber(speed) or 0 local acSpeed = getElementSpeed(element, unit) if acSpeed and acSpeed~=0 then -- if true - element is valid, no need to check again local diff = speed/acSpeed if diff ~= diff then return false end -- if the number is a 'NaN' return false. local x, y, z = getElementVelocity(element) return setElementVelocity(element, x*diff, y*diff, z*diff) end return false end E na próxima vez, não crie 2 tópicos parecidos com a mesma dúvida.
-
ajuda em mandar um ped executar uma ação
Lord Henry replied to Doongogar's topic in Programação em Lua
Se refere a isso? https://wiki.multitheftauto.com/wiki/Control_names -
Código ilegível. Indente o código.
-
Staff conseguir entrar em qualquer carro
Lord Henry replied to pedrohenriquepeds's topic in Offtopic
Olá. Não oferecemos drop de scripts aqui. Tente fazer por conta própria e aí sim podemos te ajudar com dúvidas. -
No script que vc mandou, troque targetPlayer por player
-
Como posso repetir uma função diversas vezes?
Lord Henry replied to FunZY's topic in Programação em Lua
onClientRender setTimer -
Verificar quantidade mínima de usuário na ACL
Lord Henry replied to DarkAnubys's topic in Programação em Lua
Essa função que eu passei vc bota antes, no início do script. Assim como vc faria com uma função útil. -
Verificar quantidade mínima de usuário na ACL
Lord Henry replied to DarkAnubys's topic in Programação em Lua
Utilize aclGroupListObjects para saber quais são todos os objetos que estão na ACL Group, e então conte quantos deles são usuários. function countPlayersInACLGroup(ACLGroupName) local cops = 0 -- Variável local que irá contar quantos usuários estão na ACL Group. local group = aclGetGroup(ACLGroupName) -- Obtém a ACL Group com o nome que foi especificado em ACLGroupName. if (group) then -- Se existe a ACL Group "Policia" no servidor, então: for _, object in pairs(aclGroupListObjects(group)) do -- Para cada objeto da ACL, faça: local objType = gettok(object, 1, string.byte('.')) -- Obtém o texto que estiver antes do ponto. Podendo ser "user" ou "resource". if (objType == "user") then -- Se este objeto é um usuário, então: cops = cops + 1 -- Adiciona +1 na contagem de cops. end end end return cops -- Ao final da execução dessa função, mostra quantos usuários estão na ACL Group "Policia" end No seu script, adicione a função acima no início do seu script. Depois na função que vc quer contar se tem 2 ou mais policiais, você faz assim: if (countPlayersInACLGroup("Policia") >= 2) then -- Se tiver 2 policiais ou mais no servidor, então: OBS: Vale lembrar que isso não significa que o policial está online. -
Ele apenas avisou que moveu este tópico para a seção portuguesa. Pois vc postou na seção internacional, onde só aceitam posts em inglês. Sobre o erro em si: Ele está detectando uso de software de cheat. Desinstale qualquer cheat de qualquer jogo que vc tenha, reinicie o computador e tente novamente.
-
Você colocou end onde não deveria. Comentei três deles para vc ver onde estavam e também indentei o seu código para torná-lo legível.