• 締切済み

一定時間ごとにカウントアップする方法

お世話になります。 PHPにて、簡単なミニゲームを作ろうと思っています。 時間の経過ごとに、経験値が加算されたり、減ってしまった体力が 回復したりさせたいのですが、この『一定時間ごとに処理を行う方法』を 教えていただきたいのです。 もちろん、これはオフラインのときも行われている処理になります。 ひょっとすると、これはPHPではなく、データベース側の問題かも しれませんので、その時はデータベースの方法を教えていただきたいと 思います。 初心者で申し訳ありません。 何卒よろしくお願いいたします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

>しかし、この方法ですと、オンラインのときに値が加算されていきません。 それは勘違いですね。なぜそう思ったのでしょう?

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

前回のときの値と時刻をDBに記録しておいて、次回のアクセス時に、前回からの経過時間を計算し、その時間に相当するだけのポイントを値に加算すればいいです。 オフラインで何かを処理する必要はありません。

tatapatank
質問者

補足

回答ありがとうございます。 しかし、この方法ですと、オンラインのときに 値が加算されていきません。オンライン、オフラインのときに 両方とも処理を行いたいのです。 引き続き、回答をお願いいたします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>一定時間ごとに処理を行う方法 定期的にajaxなど非同期処理でDBにアクセスし、前回更新時間との差をとりながら 一定時間の経過を図ることになるでしょう。 >もちろん、これはオフラインのときも行われている処理になります。 この場合オフラインで体力回復は不正の温床になるためありえないですね

tatapatank
質問者

補足

回答ありがとうございます。 オフラインのときも、処理は行います。 戦国ixaのようなものを想像していただければよいかなと。 オンライン時にも、見ているだけで資源がたまっていき、 オフライン時にもログインした瞬間に経過時間分加算されていく感じです。 その時には、前回ログオフ時間から計算して、ログイン直後に 加算すればよいのかもしれませんが。 この二つの方法で表現するしかないのでしょうか。 よろしくお願いします。

関連するQ&A