PT-BR/SetTimer: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
Line 17: Line 17:
*'''Funcao:''' A função que o timer vai executar quando estiver decorrido o invervalo definido.
*'''Funcao:''' A função que o timer vai executar quando estiver decorrido o invervalo definido.
{{BR/Nota|A variável global escondida ('''sourceTimer''') da função que foi executada pelo timer contém a atual userdata deste timer que está em execução.}}
{{BR/Nota|A variável global escondida ('''sourceTimer''') da função que foi executada pelo timer contém a atual userdata deste timer que está em execução.}}
*'''intervaloDeTempo:''' Número de milissegundos que deve decorrer antes da função especificada ser exeuctada. [o mínimo é 50 (0 on 1.5.6 r16715); 1000 milissegundos = 1 segundo]
*'''intervaloDeTempo:''' Número de milissegundos que deve decorrer antes da função especificada ser exeuctada. [o mínimo é 50 (0 a partir da versão 1.5.6 r16715); 1000 milissegundos = 1 segundo]
*'''vezesDeExecucao:''' O número de vezes que o timer deve executar. '''0''' significa que o timer vai ser repetido infinitas vezes.
*'''vezesDeExecucao:''' O número de vezes que o timer deve executar. '''0''' significa que o timer vai ser repetido infinitas vezes.



Revision as of 21:37, 24 May 2020

Sticky-notes.png Nota Importante: A velocidade na qual um timer em client-side é executado pode não ser totalmente confiável se este client estiver modificando maliciosamente a velocidade do sistema operacional, os timers poderão ser executados muito mais rápido ou mais devagar.
Sticky-notes.png Nota Importante: Usando o código abaixo pode haver problemas na performance. Ao invés disso, use onClientPreRender.
setTimer(Funcao, 0, 0)

Esta função permite você acionar uma função depois de um número de milissegundos estiver decorrido. Você pode executar funções que tenham um nome sendo uma variável, uma função anônima, ou uma função do MTA (tipo setElementModel). Por exemplo, você pode definir um timer para spawnar um jogador depois de alguns segundos.

A partir que o timer termina suas execuções, ele deixa de existir.

O invervalo mínimo aceito é 0ms.

O MTA garante que o timer será acionado após pelo menos o intervalo especificado. O funcionamento do timer está vinculado à taxa de quadros (lado do servidor e lado do cliente). Todos os timers finalizados são acionados em um único ponto em cada quadro(frame). Isto significa que se, por exemplo, o jogador está rodando a 30 fps, então dois timers criados para acionar suas funções em 100ms e 110ms provavelmente ocorrerão durante o mesmo frame, pois a diferença de tempo entre os dois temporizadores (10 ms) é menor que a metade do comprimento do quadro (33 ms). Como na maioria dos timers fornecidos por outros idiomas, você não deve confiar no disparo do cronômetro em um ponto exato no futuro.

Sintaxe

timer setTimer ( function Funcao, int intervaloDeTempo, int vezesDeExecucao [, var Argumentos... ] )

OOP Syntax Help! I don't understand this!

Method: Timer(...)


Argumentos Necessários

  • Funcao: A função que o timer vai executar quando estiver decorrido o invervalo definido.
Post-it.png Nota: A variável global escondida (sourceTimer) da função que foi executada pelo timer contém a atual userdata deste timer que está em execução.
  • intervaloDeTempo: Número de milissegundos que deve decorrer antes da função especificada ser exeuctada. [o mínimo é 50 (0 a partir da versão 1.5.6 r16715); 1000 milissegundos = 1 segundo]
  • vezesDeExecucao: O número de vezes que o timer deve executar. 0 significa que o timer vai ser repetido infinitas vezes.

Argumentos Opcionais

NOTA: Ao usar argumentos opcionais, pode ser necessário fornecer todos os argumentos anteriores ao que você deseja usar. Para obter mais informações sobre argumentos opcionais, consulte Argumentos Opcionais.

  • Argumentos: Qualquer argumento que você deseja passar para a função podem ser detectados depois do argumento vezesDeExecucao. Note que qualquer tabela que você deseja passar será clonada, enquanto que referências de metatabelas e funções passadas na tabela serão perdidas. As alterações feitas na tabela original antes que a função seja chamada não serão transferidas.

Retorna

Retorna um timer se for criado com sucesso, false se os argumentos são inválidos ou o timer não pôde ser definido.

Exemplos

Este exemplo vai exibir no chat algum texto depois de um pequeno delay.

-- defina a função que vai ser executada
function chatAtrasado ( text )
	outputChatBox ( "Texto atrasado: " .. text )
end

-- Defina um timer e então a função será executada depois de 1 segundo
setTimer ( chatAtrasado, 1000, 1, "Olá Brasil!" )

1 segundo depois que a linha acima for executada, o texto Texto atrasado: Olá Brasil! vai ser exibido no chat.

Este exemplo aninha uma função inteira dentro de um timer. Isso é bom para coisas como definir variáveis sem precisar chamar uma função fora do seu bloco de código.

function funcaoPrincipal()
        outputChatBox ("Texto agora!")
	setTimer ( function()
		outputChatBox ( "Texto depois de 5 segundos depois do último!" )
	end, 5000, 1 )
end

funcaoPrincipal() -- execute a função


Click to expand [+]
Yet another example

Veja também