Gametimer/ Countdown soll weiterzählen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gametimer/ Countdown soll weiterzählen

    Hallo, ich interessiere mich dafür, wie man es anstellt, dass ein
    Countdown auf einer PHP-Seite weiterläuft, auch dann, wenn man
    die Seite nicht mehr geöffnet hat.

    Ich würde PHP mit MySQL verwenden wollen. Nun soll ein Countdown
    von 5 Minuten immer wieder durchlaufen und die Variable $Status
    um 10 Punkte erhöhen.

    Meine Überlegung wäre, dass man die Zeit nimmt, wann die Seite
    verlassen wurde und dann die zeitliche Differenz ausrechnet, bis zum
    nächsten Login. Diese Zahl wird durch 5 geteilt. Das Ergebnis * 10
    genommen wären also die zu addierenden Punkte in der MySQL-DB.

    Das wäre sicher machbar. Wie macht man das aber, wenn trotz nicht
    erneutem Login immer alle 5 Minuten die neuen Punkte in der DB gespeichert
    werden sollen? Das ist der Knackpunkt den ich nicht logisch zusammen bekomme.
    Nimmt man da Cronjobs für??

    Ich hoffe ihr könnt mich in der Sache etwas erhellen.

  • #2
    Meine Überlegung wäre, dass man die Zeit nimmt, wann die Seite
    verlassen wurde und dann die zeitliche Differenz ausrechnet, bis zum
    nächsten Login. Diese Zahl wird durch 5 geteilt. Das Ergebnis * 10
    genommen wären also die zu addierenden Punkte in der MySQL-DB.
    Das ist an sich eine Gute Idee!

    Wenn du jetzt noch das mit dem "Login" vergessen würdest...

    Tipp:
    Es muss nur das berechnet werden, was Einfluss auf die Ausgabe/Darstellung hat.
    Wir werden alle sterben

    Kommentar


    • #3
      Ok, aber wie packt man das an, wenn sich in Abwesenheit des
      Anwenders dennoch alle 5 Minuten die DB aktualisieren soll.
      Sagen wir mal, wenn jemand alle 5 Minuten 10 Punkte bekommen
      soll und die Option besteht, dass andere (eingeloggte) Spieler
      diese Punkte "klauen" können.

      In dem oben beschrieben Fall würden erst dann (u.U. nach mehreren
      Tagen oder Stunden) die überfälligen Punkte ermittelt und in der DB
      gutgeschrieben. Ich würde es gerne in quasi "Echtzeit" realisieren.

      Das alle 5-Minuten fällige Event müsste also schon Serverseitig
      immer ausgelöst werden. Da sind mir nur Cronjobs eingefallen.
      Z.B.: der Cronjob führt jede Minute ein Script aus, das überprüft
      auf welchen Accounts gerade die 5 Minuten abgelaufen sind und
      schreibt dann die Punkte in der MySQL-DB gut.

      Aber ist das die Praxis? Ich kenne mich damit zu wenig aus, wenn ich
      ganz ehrlich bin... Welche alternativen Methoden gäbe es dazu ggf?

      Kommentar


      • #4
        In dem oben beschrieben Fall würden erst dann (u.U. nach mehreren
        Tagen oder Stunden) die überfälligen Punkte ermittelt
        Das habe ich weder gesagt, noch gemeint!

        Also, dein Spielchen scheint Runden basiert zu sein...
        Alle 5 Minuten eine Runde.

        Und bei welchem Request von welchem User auch immer, ist doch völlig egal. Du prüfst, wie viel Zeit vergangen ist, seit der letzten Runde, teilst das durch 5 Minuten und lässt die entsprechenden Runden durchlaufen.
        Für alle Spieler
        (nicht nur den einen)
        Wir werden alle sterben

        Kommentar


        • #5
          Vielleicht sind die Spiele von Storm8.com bekannt (MMO Spiele).
          Man verdient auch dann Geld und Punkte, wenn man nicht spielt,
          oder mit seinem Account eingeloggt ist.

          Ich brauche etwas ähnliches, was Countdown/ Zähler angeht.
          Mir ist halt noch nicht klar, ob ich das durch die eingeloggten
          Spieler in der Index.php oder in einem serverseitigen Cronjob
          realisieren sollte.

          Kommentar


          • #6
            Wofür der CronJob?
            Wenn keiner auf der Seite ist, braucht auch nix berechnet zu werden.
            Wir werden alle sterben

            Kommentar

            Lädt...
            X