Also ich bin dabei ein browsergame zu basteln ^^
Läuft alles sehr gut, hab schon viel geschafft, jedoch fehlt mir eine Kenntnis um es nun zu vollenden!
Und zwar soll jede 5 Minuten ein bestimmter Wert in eine MySQL-Tabelle eingetragen werden.
Jetzt weiß ich nur nicht wie das geht.
Es soll ja schließlich auch funzen wenn kein User online ist.
--
Trag auch dein Spiel ein, publiziere es oder lass es von anderen Usern bewerten.
Dazu muss der Webspace Anbieter Cronjobs unterstützen.Das muss man sich so wie einen Task-Planer vorstellen der zu einen bestimmten zeitpunkt etwas ausführt.Der meiste Webspace ist sehr teuer mit Cronjobs.Da gibts aber noch Pseudo Cronjobs.Das ist genau das was du suchst: Klick
Und zwar soll jede 5 Minuten ein bestimmter Wert in eine MySQL-Tabelle eingetragen werden.
Jetzt weiß ich nur nicht wie das geht.
Es soll ja schließlich auch funzen wenn kein User online ist.
...
Normalerweise ist das nicht nötig. Wenn kein User online ist, braucht man auch keine aktuellen Daten. Du musst nur eine Datei in jede Datei deiner Seite einbinden, die folgendes macht:
Mit diesem Code erhöhst du den Wert `der_wert` (ist nur auf einen Datensatz ausgelegt) in der Tabelle `tabelle` alle 5 Minuten um den Wert 10. Das tust du aber nicht regelmäßig, sondern nur, wenn jemand die Seite aufruft. Das erspart dir einen Cronjob...
Ich hoffe du hast das verstanden und es hilft dir weiter...
Nee das wäre unlogisch.
Denn wenn jemand ein Gebäude baut und es zB. 5 Stunden baut und er beschließt das über Nacht zu machen, keine Sau ist aber online, bringts das ja nicht wirklich.
Dann muss ich wohl doch auf nen Cronjob zurückgreifen,.
Danke
--
Trag auch dein Spiel ein, publiziere es oder lass es von anderen Usern bewerten.
Dann überprüfst du halt bei nächsten Mal, wenn er sich einloggt, ob das Gebäude fertig ist. Das muss nicht "live" sein. Das ist nicht nötig, weil, wenn niemand die Daten sehen will (zB ob ein Gebäude fertig ist), müssen diese Daten garnicht existieren...
Dann überprüfst du halt bei nächsten Mal, wenn er sich einloggt, ob das Gebäude fertig ist. Das muss nicht "live" sein. Das ist nicht nötig, weil, wenn niemand die Daten sehen will (zB ob ein Gebäude fertig ist), müssen diese Daten garnicht existieren...
...
Ich erklärs mal genauer.
Also, wir haben 0.00 Uhr Serverzeit.
User A baut sich ein Haus aus Papier, braucht dafür "5 Stunden".
10 Stunden ruft keiner das Browser Game auf, da irgend ein ultimatives Event auf der Welt die gleichnahmige (die Welt) in Atem hällt.
Nach 10 Stunden (Haus ist also schon 5 Stunden fertig) geht User XY Online bei Dir im Game.
Der Server prüft nach:
Letzte Akutalisierung: 0.00Uhr
Momentane Uhrzeit: 10Uhr
User A: Hausbau - Angefangen: 0.00 Uhr Serverzeit
Vergleich: 10.00 Uhr Serverzeit
Hausbau braucht 5 Stunden
-> speichert in MYSQL das das Haus schon 5 Stunden fertig gebaut ist und gibt das auch aus, wenn das Haus aufgerufen wird in irgendeiner Form.
Wenn "Papier Haus" +3 Blätterkenntnis ergibt pro Stunde, dann rechnet der Server weiter:
Vor 5 STunden haus gebaut.
Vergangene Stunden seit letztem MYSQL Speichern: 5 Stunden
Das wäre eine Variante, ist wahrscheinlich aber nicht die Ressourcen schonendste, aber wegen so einen Problem brauchste keinen Cronjob, denn würde ich eher für "Sekunden genaue E-Mail" Versand- Operationen verwenden.
Dennis
--
«Wir können alles schaffen, wir brauchen nur genug dressierte Affen» - infinite monkey theorem
Hmm naja würde ich das so machen, dann müsste jedoch bei jeder kleinigekeit aktualisiert werden wenn man zB jemanden angreift oderso.
Ist mir zu kompliziert ^^"
Ich glaub ich mach den cronjob da.
Ich habe sowieso unbegrenzten Traffic, da sollte das nicht so schlimm sein.
--
Trag auch dein Spiel ein, publiziere es oder lass es von anderen Usern bewerten.
Hmm naja würde ich das so machen, dann müsste jedoch bei jeder kleinigekeit aktualisiert werden wenn man zB jemanden angreift oderso.
Ist mir zu kompliziert ^^"
Ich glaub ich mach den cronjob da.
Ich habe sowieso unbegrenzten Traffic, da sollte das nicht so schlimm sein.
...
Cronjob kostet, wenn mehrmals am Tag in der Regel Geld.
Angenommen der Cronjob fällt mal aus: Dein System ist somit flachgelegt - Häuser werden nie fertig usw. usf..
Der User selbst kann der Cronjob sein, er aktualisiert die Daten unwissen, meinetwegen alle 60 Sekunden. (if "60 sekunden rum seit letztem update){//update}
Aber gut, solltets Du so einen guten Cronjob finden, poste mal den Link hierher - Kann den dann nämlich zu dem Webspache/ Domain Thread heften - wäre passend.
Dennis
--
«Wir können alles schaffen, wir brauchen nur genug dressierte Affen» - infinite monkey theorem