|
|
|
Autor |
Mensagem |
BielziimSM
Usuário
Registrado: 15/12/13 Mensagens: 190
|
|
Timer para executar scripts |
|
Procurei pelo fórum mas não consegui tudo o que queria, quero fazer um timer de exemplo: 3hrs e a cada 30 minutos executasse um script
e um outro de menos tempo a cada 2 minutos executar outro script
alguém poderia ajudar?
|
|
Qui Fev 05, 2015 6:08 pm |
|
|
BielziimSM
Usuário
Registrado: 15/12/13 Mensagens: 190
|
|
|
|
Ah esqueci de mencionar, o timer de 2 minutos ser continuo de 2 em 2 minutos executar um unico script.
e o timer de 3hrs quando chegar ao final "0" executar um script
|
|
Qui Fev 05, 2015 6:11 pm |
|
|
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
|
|
Amigo, eu estava com a mesma dúvida que você, mas graças a um exemplo do welgomes eu consegui resolver...(créditos a ele)
No caso, você vai continuar usando a variavel global, porém agora você encorpora um tempo do relógio a ela, assim:
| | Writeglobalvar('Tempo2Horas',(Time() + EncodeTime(2,0,0,0))); |
Aqui ocorre o seguinte: Você declara que a variavel "Tempo2Horas" é igual ao horário atual( time() ) + 2 horas, ou seja, duas horas a frente do que está no momento que você declarou.
Então se for 17:00, a variavel vai ser declarada como 19:00.
Agora pra verificar a hora você faz assim:
| | if readglobalvar('Tempo2Horas') < time() then
begin
script
end; |
Aqui você verifica quando essa variavel for menor do que a hora atual e ele vai executar o script somente depois que as 2 horas se passarem...
O mesmo pros minutos, é só trocar no EncodeTime, sendo (horas,minutos,segundos, o outro depois dos segundos kkk)
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Qui Fev 05, 2015 7:14 pm |
|
|
BielziimSM
Usuário
Registrado: 15/12/13 Mensagens: 190
|
|
|
|
Opa, entendi o script, no meu caso queria fazer o seguinte o tempo total 3hrs , exemplo 3hrs = 3 dia no game , ai passa se 1 hora executa um scrpt para alterar a label de 3 dias para 2 e no final do timer executar outro script .
e no caso dos 2 minutos eu queria fazer uma barra de fome e sede ai o valor dela começa a 100 e a cada 2 minutos diminui -5 , sabe se da pra encaixar nesse seu script? ou ficara diferente?
|
|
Qui Fev 05, 2015 7:35 pm |
|
|
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
|
|
Vamos lá, vai ficar assim:
Eu vou fazer pra começar a contar quando o jogo iniciar, mas você pode colocar o script do Oncreate num botão, fazendo começar a contagem quando apertar...
No Oncreate do mapa:
| | Writeglobalvar('3Horas',Time); |
isso vai fazer ele gravar a hora em que o game iniciou. Se colocar num botão, ele grava a hora que apertou o botão.
No MainLoop do mapa:
| |
if (time() < readglobalvar('3Horas')+encodetime(1,0,0,0)) then
begin
setlabeltext('Label0', 'Restam 3 dias!');
end;
if (time() > readglobalvar('3Horas')+encodetime(2,0,0,0)) and (time() < readglobalvar('3Horas')+encodetime(2,59,0,0)) then
begin
setlabeltext('Label0', 'Restam 2 dias!');
end;
if (time() > readglobalvar('3Horas')+encodetime(3,0,0,0)) then
begin
setlabeltext('Label0', 'Seu tempo acabou!'); |
end;
[/code]
Na primeira linha eu disse assim para o computador: Verifique quando(if) a hora do computador(time()) for menor (<) do que a hora gravada(readglobalvar('3Horas')) somada(+) a 1 hora(encodetime(1,0,0,0)).
dai nesse intervalo ele vai exibir a mensagem restam 3 dias!
então ficou o primeiro intervalo é menor que 1 hora, o segundo, entre 2 e 3 horas, e por ultimo, acima de 3 horas.
Agora a questão da fome, ele vai ter que atualizar sempre que diminuir a fome... Ele atualiza para 2 minutos a frente a cada vez que ele se alimentar, tenta fazer ai, se não conseguir eu te passo.[/b]
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Sex Fev 06, 2015 2:51 pm |
|
|
|
|
|
|
|
|