2012-01-30 7 views
2

多くのWebベースのテキストゲームは、実際の世界の時間がかかるタスクを持っています。基本的な例は、あるリソースを処理する必要があるゲームです。加工工場を「アップグレード」することができますが、そうすることで6時間かかることがあります。このアップグレードを行うことを選択した場合、6時間が経過するまで残りの時間画面以外の操作は実行できません。 PHPで書かれたゲームでこれがどのように達成されるのか、誰にも示唆はありますか?PHPテキストベースのゲームタイムパッセージ

+4

それは貧しい質問ですが、それはimhoを閉めるべきではありません。 – Layke

+2

詳細情報が役立ちます。おそらく、既存のコードのビットですか? – CoffeeRain

答えて

1

それは実際にはかなり簡単です:

  • 各タスクは、タスクがアクティブである間は、他のタスクが時に今

を開始することはできない

  • それを完了するのに要する時間に関連していますユーザーは新しいタスクを開始します。タスクを開始した時間とタスクを記録し、終了する時刻を追加します。これをデータベースに保存します。次回ユーザーがゲームにログインするときに、そのユーザーのアクティブなタスクがあるかどうかをチェックし、そうであれば、残りの時間を表示します。

    ですから、

    UserActive_Tasksのための1のための
    • ID
    • 説明
    • time_to_complete

    と別のテーブルとテーブルTasksを持つことができます

    • のuser_id
    • TASK_ID started_at
    • ends_at

    そして、あなたのPHPスクリプトで使用すると、それらのテーブルを照会し、更新するためのコードを対応しています。

    説明から何かを試してみてください。どんなロードブロックにも当たったら、特定の部分について新しい質問をしてください。

  • 0

    答えはいくつかの異なるものに依存します。これをPHPで行う方法は複数あります。 例:

    1. あなたは「処理工場は、」あなたは、PHPの睡眠かはusleep関数を使用することができ、アップグレードされている間に起こるために何かをしたくない場合。私はphp.netからドキュメントを読むだろうが、基本的には、xミリ秒間PHP関数の実行をさらに遅らせる。

    2. "処理プラント"のアップグレード中にユーザーが他のタスクを実行できるようにする必要がある場合は、関数を起動した時点の正確なUNIXタイムスタンプを取得するtime関数を使用できます。ゲームで他の機能を実行するときには、それらの機能の1つが、アップグレードプロセスが完了するのを待つのに必要な時間を保持する変数に対してタイムスタンプをチェックすることができます。

    希望します。

    1

    まずは、これらのゲームのほとんどはPHPで書かれていません(私があなたが話していることをよく知っています)。

    PHPで実行する必要がある場合は、いくつかのタイプのデータベースも使用する必要があります(これは、mysqlをタグの1つとして持つこともできます)。

    あなたのゲームで何をしたいかはわかりませんが、たとえばゲームのオブジェクトは、ユーザーがお互いに競合するビジネス向けのものであるとします。

    表:ユーザー

    • ID
    • ユーザ名
    • パスワード

    表:business_types

    • ID
    • タイトル(例:ベーカリー、コーヒーショップ、小売店
    • 価格(ビジネスのこのタイプを構築するためのコスト)

    表:users_businesses(1人のユーザーが複数のビジネスを所有することができます)

    • ID
    • USER_ID(明らかにユーザテーブルに相当)
    • business_type(corres
    • レベル(現在のビジネスレベル)
    • 最後のアクティビティ(datetime、あなたはビジネスをアップグレードできないクエリを実行できます。一定の時間が経過するまでレベルを上げてください。また、ビジネスレベルに応じて待つ時間を増やすことができます。レベルが上がるほど待ち時間が長くなります。待機時間が経過するまで、活動は行うことができない)
    • 他のフィールドこのビジネスは時間あたりの生成どのくらいのお金のよう

    表:。users_resources

    • ID
    • のuser_id
    • 金額(正または負の整数。ユーザーはビジネスから毎時お金を得て、新しいビジネスのアップグレードや購入にお金を使うことができます)

    これは単なる例です...ログインしていなくてもユーザーが1時間ごとに所有するビジネスごとにリソースを賞賛するには、cronジョブが必要です。

    もう一度、これはPHPではないことをお勧めします。

    関連する問題