Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 29/10/19 in Posts

  1. 1 point
  2. Caaaraaaaca saquei, você fez praticamente a mesma coisa que o Lord Henry nas linhas 16 á 20, porém com menos código O.O caraca mané. E a parte do tick tbm entendi, você criou um loop com o tick sem necessitar de uma tabela escrita... Basicamente automatizou a parada sinistro
    1 point
  3. getTickCount vai retornar sempre um valor diferente, a cada execução, pois ele retorna o tempo em milissegundos desde que o sistema do servidor foi iniciado (clientside o do sistema do cliente). Então isto: local tick = getTickCount() No onClientResourceStart, vai guardar o tempo do momento que o onClientResourceStart ocorrer. É como um cronômetro, você aperta ele e fazendo uma analogia, a variável tick = getTickCount é executada. Então você para esse cronometro e você quer saber quanto tempo se passou, então terá de fazer o seguinte, já tendo o 'tick' com o tempo em que o cronômetro foi ativado: tempo_decorrido = getTickCount() - tick print("se passaram ".. tempo_decorrido .." milissegundos" ) * Lembrando que getTickCount() sempre será maior que o 'tick' armazenado anteriormente. Então: tick-getTickCount() É uma forma equivocada de subtrair, isso vai retornar um valor negativo. Não sei se conseguiu entender, mas é essa lógica que está no código. if getTickCount()-tick > 20000 then --[[ Subtrai o tempo atual com o tempo armazenado na variável 'tick' e verifica se a diferença é de 20000ms (20 segundos) Se for, armazena novamente getTickCount na variável 'tick' e esse ciclo sempre irá se repetir ]] Quanto a este trecho: imgAtual = (imgAtual == imagensTotal and 1) or (imgAtual + 1) É uma simplificação de uma condição if (operação ternária com and, or). Com if statements ficaria assim: if imgAtual == 2 then imgAtual = 1 else imgAtual = imgAtual+ 1 end imgAtual == imagensTotal Isso representa uma comparação, e irá retornar uma boolean (true/false) Aplicando no exemplo do meu código, se for true imgAtual irá receber 1 or (se não for) imgAtual terá o valor de imgAtual + 1 Vai retornar uma interger (número inteiro). Por isso lá no dxDrawImage estou convertendo para uma string, que seria "1.png" imagem com o nome 1, extensão png. Se suas imagens são na sequencia img1.png, img2.png basta você fazer um tostring da forma que o Lord Henry mostrou.
    1 point
  4. Ah, hauhauahuah. Não, não. Tostring converte 1 (número) para "1" (texto)
    1 point
  5. Não há motivo para usar tonumber, pois imgAtual já é um número. Não existe lógica em converter número para um número. Você pode fazer isso: dxDrawImage (x, y, width, height, "img"..tostring(imgAtual)..".png")
    1 point
  6. Lembre-se de ver os tópicos fixados pelo fórum, vai responder suas perguntas futuras e te ajudar a ter um entendimento de como aqui e o MTA funciona. https://forum.multitheftauto.com/topic/116681-informações-úteis-scriptingconfiguraçõestutoriais-para-o-mta/
    1 point
  7. Sem problemas, qualquer coisa pode voltar a perguntar. Estamos aqui para ajudar. Agradeça deixando um Thanks nas respostas que lhe ajudaram.
    1 point
  8. Está vendo as partes em laranja? O que está em laranja significa que é server-side e portanto não vai funcionar no client. O que está em azul significa que funciona em ambos. Ou seja, coloque no server-side. CEGUI por ser mais fácil e mais rápido de fazer.
    1 point
  9. getPlayerAccount é uma função server-side. Você não pode executá-la em scripts client-side.
    1 point
  10. Não se esqueça do givePlayerMoney pro source.
    1 point
  11. Aqui um exemplo com a lógica: local imagensTotal = 2 local imgAtual = 1 local tick = getTickCount() -- isto dentro do onClientRender if getTickCount()-tick > 20000 then tick = getTickCount() imgAtual = (imgAtual == imagensTotal and 1) or (imgAtual + 1) end Que ficaria assim: local imagensTotal = 2 local imgAtual = 1 addEventHandler("onClientResourceStart", resourceRoot, function() local tick = getTickCount() addEventHandler("onClientRender", root, renderImgBackground) end) function renderImgBackground() if getTickCount()-tick > 20000 then tick = getTickCount() imgAtual = (imgAtual == imagensTotal and 1) or (imgAtual + 1) end dxDrawImage( x, y, width, height, tostring(imgAtual)..".png" ) end Neste resource você vai precisar dar prioridade no download. Coloque no meta, por exemplo: <download_priority_group>10</download_priority_group>
    1 point
  12. local imagens = { [1] = dxCreateTexture ("imagem01.png"), [2] = dxCreateTexture ("imagem02.png"), } local tempo = 20 -- Em segundos. local frame = 1 local sX, sY = guiGetScreenSize () -- Recebe a resolução do jogador. Ex: sX = 1366, sY = 768 function renderImage () dxDrawImage (0, 0, sX, sY, imagens[frame]) -- Mostra a imagem 1 ou a imagem 2, dependendo do valor da variável frame. end addEventHandler ("onClientRender", root, renderImage) theTimer = setTimer (function () -- Timer que alterna o valor da variável frame de 1 e 2 a cada 20 segundos. Você pode adicionar mais imagens depois, se quiser. if (frame == 1) then frame = 2 else frame = 1 end end, tempo*1000, 0)
    1 point
  13. valor = 1000 if player and getPlayerMoney(player) >= valor then local id = tonumber(id) local ammo = tonumber(ammo) giveWeapon(player,id,ammo) takeWeapon(source,id,ammo) takePlayerMoney(player, valor) end ^ Exemplo
    1 point
  14. Corrigi para você.
    1 point
  15. Utilize o botão <> do fórum para postar scripts.
    1 point
  16. da o Thanks no meu comentário mano, se não for pedir de mais
    1 point
  17. Vou citar alguns que na minha opinião são obrigatórios em um servidor RP: Sistema de fome, sede, sono. Sistema de prisão. Empregos (tanto honestos quanto criminosos). Sistemas de veículo (gasolina, velocímetro, seta, ré, radar de velocidade, trancar veículo, gps, etc). Sistema de casas. Lojas (skins, veículos, armas, roupas do CJ). Sistema de Level. Sistema de save/load Era mais fácil vc simplesmente entrar num servidor famoso de RP e estudar quais resources eles tem lá.
    1 point
×
×
  • Create New...