Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fronteira Final

Executar ação automaticamente após...

Recommended Posts

Olá pessoal!!

 

Não sei se foi nesse fórum que eu coloquei um tópico parecido, se sim, peço que me perdoem, mas ainda não foi esclarecida minha dúvida... Bom, vamos lá:

 

 

JÁ VOU AVISANDO, NÃO É SIMPLES!!!

 

Estou montando um jogo via-browser em PHP e o que está atrapalhando tudo é montar um sistema que executa o seguinte "roteiro":

 

A - São 14:30 O programa de turnos é ativado automaticamente. O orçamento é descontado (ou acrescentado, depende do jogador), as construções que levam 1 turno começam a contar.

A - São 14:32, o jogador faz o que deve fazer. Ajusta o orçamento, cria novas colônias, constrói edifícios, etc...

B - São 14:45. O programa de turnos é ativado automaticamente. O orçamento é descontado (ou acrescentado, depende do jogador), as construções que levam 1 turno começam a contar.

C - São 14:46. O orçamento já foi descontado, o que leva 1 turno já foi construido, o que não leva 1 turno ainda está em construção, colônias (que demoram 10 turnos) ainda estão sendo desenvolvidas e as frotas foram movidas para o próximo setor.

D - São 14:51. O jogador pode construir/desenvolver mais coisas, ou esperar o turno passar.

E - São 15:00. Acontece todo o processo novamente...

 

Isso fica repetindo até o fim do mundo...

 

 

Eis o problema. Qdo passa 15 minutos (900 segundos) eu não consigo fazer o programa se executar automaticamente. O único jeito de fazer funcionar é eu digitar o programa na barra de endereços e abri-lo. MAS NÃO QUERO ASSIM!!!

 

Quero que a cada 15 minutos, o programa (estando eu online ou não) se execute automaticamente...

 

 

 

Alguém me dá uma luz??? Estou com esse problema a 3 meses!!!

Caso queira meu MSN: thedominion@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que da pra fazer isso via crontab... ...veja se seu server permite agendar tarefas pelo crontab...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, pra complementar, você precisa colocar isso no seu crontab: 15 * * * * endereco_completo_do_seu_php/seuarquivo.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entrei em contato com a HostNet e infelizmente não oferecem suporte ao CronTab, visando a segurança...E então, como devo proceder agora??? ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entrei em contato com a HostNet e infelizmente não oferecem suporte ao CronTab, visando a segurança...E então, como devo proceder agora??? ;)

bom.. procura outro Host ! eu utilizo um para todos os meus clientes, se quizer manda um email pra mim! Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu odiaria ter que mudar de host... Eu adoro a HostNet!!!Tem como usar um sistema de timestamp?? Tipo, 900 segundos depois ele faz esse procedimento... Tem como???Um Abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eh, funcionou mais ou menos... Se a data do MySQL é 900 segundos menor que a data atual ele roda tudo... Mas tive um problema: Deixei ele por 3 horas parado... Qdo fui ver no phpMyAdmin o valor de resultado era o mesmo!! Então eu atualizei a página, aí sim ele mudou o valor no MySQL...Cara, só funcionou pela metade... Esse lance de ser automático, sem executar a página, não rolou... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se eu fizer assim:

 

No momento que o usuário faz login (usando seções, não cookies) ele registra o timestamp do login... A medida que o usuário navega ele verifica toda hora se já passou 1 hora... Se sim, ele atualiza...

 

Digamos que o usuário se deslogue e tenha o timestamp de logout gravado no MySQL... O timestamp (obviamente) vai continuar correndo...

Quando ele se logar novamente, após alguns cálculos aritméticos se obtem um número, esse seria o multiplicador.... Exemplo:

 

Se passaram 8430 segundos desde o logout...

Quando ele se loga, se obtem o timestamp de logout, se obtem o timestamp atual... Subtrai os valores e divide por 900 (15 minutos)... O número que se obter é o multiplicador...

 

Digamos que o usuário tenha um lucro p/ turno de $250... Sendo assim, quando o usuário se logar ele terá $2250...

 

 

OS NÚMEROS APÓS A VÍRGULA DEVEM SER IGNORADOS...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.