Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,992
  • Joined

  • Last visited

  • Days Won

    183

Everything posted by Lord Henry

  1. ammo = getElementData (veiculo, "veh.ammo") -- Exemplo da variável que contém a quantidade de munição do veículo. -- Quando atirar (e o tiro funcionar), faz isso: ammo = ammo - 1 setElementData (veiculo, "veh.ammo", ammo) -- Salva a nova quantidade de munição no veículo.
  2. Comece por aqui: Tutorial de Lógica de Programação e Algoritmos E depois por aqui: Wiki - Introdução ao Scripting E só então aqui: Wiki - Introdução aos Resources Boa sorte.
  3. Sua linha 39 está errada. Em vez de pegar a vida do jogador, está pegando a quantidade máxima de vida que ele pode ter.
  4. Faz um playSound3D e anexa esse som no veículo com attachElements. Quando desligar o motor, destrói o som com um destroyElement. Recomendo que o áudio seja em .WAV
  5. Mostre o que vc já tentou.
  6. Esse som seria do motor do carro? Ou uma música?
  7. Aqui tem a descrição: https://community.multitheftauto.com/index.php?p=resources&s=details&id=14854 E aqui tem o FAQ: https://community.multitheftauto.com/index.php?p=resources&s=comments&id=14854
  8. Quase não dá pra ler as informações do servidor. Evite essas formatações desnecessárias.
  9. É necessário saber ler.
  10. Foi o que pensei. Está faltando o resource dxmessages instalado e ligado no seu servidor.
  11. Pra começar precisa de um resource de casa compatível com sistema de garagens. Recomendo que vc baixe este: sistema-home Ele já vem com o sistema de garagens incluso. Mas é difícil de entender como ele funciona, leia toda a descrição antes de instalar o resource.
  12. Não entendi direito, poderia ser mais claro? Alguns resources exigem que vc tenha outros resources de suporte instalados para funcionar, por exemplo o dxmessages. Ative o /debugscript 3 e verifique se o seus resources estão com erros. E da próxima vez poste na seção correta de Programação em Lua.
  13. Não precisa. Só obter o elemento caminhão e o elemento carro que já funciona. O attachElements não pede coordenadas, apenas offsets caso o usuário ache necessário.
  14. Deve ter aparecido um símbolo invisível quando vc copiou do fórum. Delete e reescreva a linha 70. Se o problema persistir na linha 71, faça o mesmo na linha 71.
  15. Qual arma que vc deveria andar ao mirar mas não está? Tenha certeza de que o resource defaultstats esteja ativado.
  16. Acho que esse tópico deveria estar na seção de Ajudas Relacionadas ao MTA:SA (Cliente/Servidor) e não no Offtopic. Parece que vc mexeu nas configurações do servidor local de editor de mapas (editor.conf) e ele não está mais iniciando os resources essenciais para funcionar adequadamente. Ocorre geralmente quando o usuário vai criar um servidor local mas não tem experiência com os arquivos de configuração. Dai em vez de configurar o mtaserver.conf, mexe nos outros arquivos que não deveria.
  17. Vai precisar da função útil dxDrawProgressBar e um interpolateBetween. function onClientClick(button, state) if isEventHandlerAdded("onClientRender", root, onClientRender) and isEventHandlerAdded("onClientClick", root, onClientClick) then if button == "left" and state == "up" then if isMouseInPosition(x*730, y*570, x*151, y*33) then triggerServerEvent("comprarCocaina", resourceRoot) elseif isMouseInPosition(x*489, y*570, x*151, y*33) then start = getTickCount() -- Salva o momento atual para usar no cálculo do progresso da interpolação. addEventHandler("onClientRender", root, interpolationRender) -- Inicia a interpolação. elseif isMouseInPosition(x*843, y*168, x*918, y*234) then showCursor(false) removeEventHandler("onClientRender", root, onClientRender) removeEventHandler("onClientClick", root, onClientClick) end end end end -- Está faltando evento ativador da função acima. E você não deve usar nomes de eventos como nome das funções. function interpolationRender() local now = getTickCount() -- A cada frame, pega o momento atual. local endTime = start + 3000 -- Duração dessa interpolação: 3 segundos. (momento do final = início + 3 segundos) local elapsedTime = now - start -- Tempo que já passou neste frame: momento de agora - momento que começou local duration = endTime - start -- Duração total da interpolação: momento do final - momento que começou local progress = elapsedTime / duration -- Progresso atual da interpolação: tempo que já passou dividido pela duração (pois o progresso é de 0 até 1) if (progress > 1) then -- Quando concluir a barra, para de renderizar ela e ativa o trigger. removeEventHandler ("onClientRender", root, interpolationRender) start = nil return triggerServerEvent ("comprarMaconha", resourceRoot) end local barra = interpolateBetween (0, 0, 0, 100, 0, 0, progress, "Linear") -- barra vai de 0 até 100 dependendo do progresso atual. dxDrawProgressBar (10, 10, 200, 200, barra, tocolor (250, 50, 50, 255), tocolor (255, 255, 255, 255)) -- Barra aleatória, arrume a posição e tamanho dela para o seu script. end local unlerp = function(from,to,lerp) return (lerp-from)/(to-from) end function dxDrawProgressBar( startX, startY, width, height, progress, color, backColor ) -- Função útil. local progress = math.max( 0, (math.min( 100, progress) ) ) local wBar = width*.18 for i = 0, 4 do --back local startPos = (wBar*i + (width*.025)*i) + startX dxDrawRectangle( startPos, startY, wBar, height, backColor ) --progress local eInterval = (i*20) local localProgress = math.min( 1, unlerp( eInterval, eInterval + 20, progress ) ) if localProgress > 0 then dxDrawRectangle( startPos, startY, wBar*localProgress, height, color ) end end end
  18. Já usou /debugscript 3 para ver se há erros? (não precisa dar Quote em mim se só tem eu aqui na conversa, vc só usa quando tem resposta de várias pessoas)
  19. Como está o save-system que vc estava usando?
  20. addCommandHandler("testar", function() start = getTickCount() -- Salva o momento atual para usar no cálculo do progresso da animação. addEventHandler("onClientRender", root, interpolationRender) -- Inicia a primeira animação. setTimer (function () -- Depois de 5 segundos, inicia a outra animação. start2 = getTickCount() -- Salva o novo momento atual para usar no cálculo da outra animação. Não pode usar o start pois ele pertence a primeira animação. addEventHandler("onClientRender", root, interpolationRender2) end, 5000, 1) setTimer (function () -- Depois de 10 segundos, para de renderizar tudo. removeEventHandler("onClientRender", root, interpolationRender) removeEventHandler("onClientRender", root, interpolationRender2) start = nil start2 = nil end, 10000, 1) end) function interpolationRender() local now = getTickCount() -- A cada frame, pega o momento atual. local endTime = start + 3000 -- Duração dessa animação: 3 segundos. (momento do final = início + 3 segundos) local elapsedTime = now - start -- Tempo que já passou neste frame: momento de agora - momento que começou local duration = endTime - start -- Duração total da animação: momento do final - momento que começou local progress = elapsedTime / duration -- Progresso atual da animação: tempo que já passou dividido pela duração (pois o progresso é de 0 até 1) if (progress > 1) then -- Impede de repetir a animação depois que ela concluir, mantendo o progresso em 1 se ele for maior. progress = 1 end local x, y, z = interpolateBetween (0, 0, 0, 0, 165, 0, progress, "OutElastic") -- Y vai de 0 até 165 dependendo do progresso atual. dxDrawImage(184, y, 1000, 455, "graphic/teste2.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) -- Draw a imagem com o valor do Y. end function interpolationRender2() local now = getTickCount() local endTime = start2 + 3000 -- Mesma coisa que o de cima, mas usa o start2 para os cálculos. local elapsedTime = now - start2 local duration = endTime - start2 local progress = elapsedTime / duration if (progress > 1) then progress = 1 end local x, y, z = interpolateBetween (0, 0, 0, 0, 165, 0, progress, "InElastic") -- Esse efeito não parece fazer sentido. Mas está funcionando. dxDrawImage(184, y, 1000, 455, "graphic/teste3.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) end
  21. Ele apenas aparece entre os 20 primeiros servidores quando o jogador clica em Internet e não tiver nenhum filtro de nome aplicado. Isso não garante que vai chamar players, só dá mais visibilidade ao servidor. Você até pode conseguir mais players, mas eles logo abandonarão o servidor se ele for ruim. Eu por exemplo nem olho a aba Internet, vou direto pros favoritos. Só olho na aba Internet quando estou procurado um servidor novo pra jogar.
  22. Se baixar o MTA de novo não funcionar, entre em contato com os caras do servidor Groove Street, pois é um problema com o servidor deles.
  23. Vou supor que esteja com um evento "onClientRender" nessa sua função.
  24. Ta faltando parte do código. Isso que vc mandou só funciona dentro de uma função renderizadora.
×
×
  • Create New...