Realizar acção depois de n tempo - PHP

ricardoaux

Power Member
Boas
Estou a fazer um jogo text-based e estou com uma duvida.
Por exemplo: faço uma acção, e só passado algum tempo é que a possa voltar a realizar. O problema é que não sei como posso fazer isso.
Se for preciso adicionar algum campo na base de dados digam, para guardar o tempo ou assim.

acção A ---10 min---> acção B ---15 min---> acção C

Desde já agradeço a ajuda.
 
Guardas o tempo da última acção (numa base de dados, cookie ou sessão) e sempre que o jogador tentar executar essa acção verificas se já passaram 10 minutos se sim fixas o novo tempo e deixas executar a acção.
 
cronbase é má opção , tem de se guardar na base de dados o timestamp e quando ele for tentar de novo, se o timestamp actual for maior que o timestamp da base de dados + x segundos, então pode fazer, senão não pode.
 
Por acaso um cronjob é a melhor opção.

Salvo raras excepções, pois ele não falou numa acção do Utilizador, falou numa acção..

Já tive esta discussão num jogo que fui contratado como freelancer, repara:
- Construção de uma Casa

Algo que só tu possas ver, uma acção da tua página, ainda é naquela.. usa-se apenas o timestamp que está guardado na BD.
Mas quando tu tens algo que vai ser público da tua "personagem" para todas as outras, tens que além de ter o timestamp para teres uma informação pessoal, tens que ter o cronjob para quando o tempo expira "ganhares" a Casa neste caso.

Porque se não, todo e qualquer utilizador que visitasse a tua página, chamava um Query à BD para saber se já podiam ver uma casa que ainda está em construção por parte desse utilizador.
 
A opção não é sw todo óbvia!!! o mais correcto seria dizer:

Caso seja necessário publlicitar que a acção está disponivel mesmo que não haja pedido de execução dessa acção > CRON
Caso apenas seja necessário saber se a acção está disponivel aquando do pedido de execução >
Guardas o tempo da última acção (numa base de dados, cookie ou sessão) e sempre que o jogador tentar executar essa acção verificas se já passaram 10 minutos se sim fixas o novo tempo e deixas executar a acção.
 
Última edição:
depende de como programares, para um jogo a cron pode não valer de nada, até pode ser bem pior, como pode ser bom e mais leve.
Guardar em session/cookie, se forem apagados que acontece? Melhor é base de dados.
 
Back
Topo