-
Posts
3,992 -
Joined
-
Last visited
-
Days Won
183
Everything posted by Lord Henry
-
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.
-
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.
-
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.
-
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
-
Mostre o que vc já tentou.
-
Esse som seria do motor do carro? Ou uma música?
-
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
-
Quase não dá pra ler as informações do servidor. Evite essas formatações desnecessárias.
-
Foi o que pensei. Está faltando o resource dxmessages instalado e ligado no seu servidor.
-
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.
-
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.
-
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.
-
Script venda de drogas com painel [Ajuda dxprogressbar]
Lord Henry replied to Mopped's topic in Programação em Lua
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. -
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.
-
Script venda de drogas com painel [Ajuda dxprogressbar]
Lord Henry replied to Mopped's topic in Programação em Lua
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 -
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)
-
Como está o save-system que vc estava usando?
-
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
-
Preciso de ajuda
Lord Henry replied to Taigas's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
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. -
NAO CONSIGO ATUALIZAR.
Lord Henry replied to Isabor's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
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. -
Vou supor que esteja com um evento "onClientRender" nessa sua função.
-
Ta faltando parte do código. Isso que vc mandou só funciona dentro de uma função renderizadora.
-
Mostre o que vc tentou fazer.