countdown
Lennart
- php
Schönen guten Tag,
ich versuche mal mein Problem zu schildern.
Ich arbeite grad an einem Browsergame, und da es ein Strategiespiel sein soll hat man da natürlich auch die Möglichkeit Gebäude zu bauen.
Also wenn jetzt der Spieler zB. sagt "Gaus bauen" möchte ich einen Countdown einblenden lassen, der dem Spieler sagt wie lange das Gebäude zur Fertigstellung braucht.
Soweit alles kein Problem, nur wenn das Gebäude sagen wir mal eine Stunde braucht dann wird der Spieler sicherlich nicht 1std lang seinen Browser offen lassen, und warten bis der Countdown durchgelaufen ist sodass, wenn er durchgelaufen ist, Einträge vorgenommen werden können wie die aktualisierte Stufe des Gebäudes.
Das gleiche Problem habe ich auch bei den Ressourcen. Nehmen wir mal an der Spieler hat jetzt eine Miene ausbauen lassen. Wenn er jetzt den Browser schließt müssen die Arbeiter in seiner Miene trotzdem weiter arbeiten, und das durch den Ausbau mit mehr Produktivität.
Also zusammengefasst wäre meine Frage wie ich solche Sachen wie das Sammeln von Ressourcen und das Fertigstellen von Gebäuden ablaufen lassen kann ohne das der Spieler durch seine "Anwesenheit" das Script ausführen lässt.
Hoffe ihr versteht was ich meine xD.
Viele Grüße Lennart
Grüße,
gib auf anfrage timestamp "Bauende" (den du bei Baubeginn setzst) und den aktuellen Servertimestamp - lass es vor Ort von JS zu Countdown umwandeln.
Um cronjobs kommst du aber nicht rum - da es passieren kann, dass ein Gebäude fertiggebaut wird und was produizeren soll - damit dies erfüllt iwrd, musst du auch alle Paar Minuten die Baulisten durchgehen - das ist eine Sache für Einzelserver :/
MFG
bleicher
Mahlzeit Lennart,
Ich arbeite grad an einem Browsergame, und da es ein Strategiespiel sein soll hat man da natürlich auch die Möglichkeit Gebäude zu bauen.
Natürlich.
Also wenn jetzt der Spieler zB. sagt "Gaus bauen" möchte ich einen Countdown einblenden lassen, der dem Spieler sagt wie lange das Gebäude zur Fertigstellung braucht.
Den blendest Du sinnvollerweise mit Javascript ein.
Soweit alles kein Problem, nur wenn das Gebäude sagen wir mal eine Stunde braucht dann wird der Spieler sicherlich nicht 1std lang seinen Browser offen lassen, und warten bis der Countdown durchgelaufen ist sodass, wenn er durchgelaufen ist, Einträge vorgenommen werden können wie die aktualisierte Stufe des Gebäudes.
Natürlich nicht - wieso sollte er auch.
Das gleiche Problem habe ich auch bei den Ressourcen. Nehmen wir mal an der Spieler hat jetzt eine Miene ausbauen lassen.
Ich persönlich würde ja eher meine Mine ausbauen lassen als meine Miene - so ganz ohne Mimik sähe ich sicherlich komisch aus ... aber weiter im Text:
Wenn er jetzt den Browser schließt müssen die Arbeiter in seiner Miene trotzdem weiter arbeiten, und das durch den Ausbau mit mehr Produktivität.
Natürlich. Wenn Du's richtig machst, tun sie das ja auch.
Also zusammengefasst wäre meine Frage wie ich solche Sachen wie das Sammeln von Ressourcen und das Fertigstellen von Gebäuden ablaufen lassen kann ohne das der Spieler durch seine "Anwesenheit" das Script ausführen lässt.
Der Name dieses Spielgenres täuscht: auch wenn sie "Browsergame" heißen, läuft doch nichts vom eigentlichen Spiel im Browser ab - sondern auf dem Webserver. Der Browser bietet nur die Bedienoberfläche. Wenn der Spieler also ein neues Gebäude "bauen" will, wird dem Server nur gesagt, dass er ein neues Gebäudeobjekt kreieren soll. Wenn die Bauzeit > 0 ist, muss der Server entsprechend festlegen, ab wann das Gebäude einsatzbereit ist. Der Browser kann lediglich "Snapshots" des derzeitigen Zustands anzeigen, wobei dann die restliche Bauzeit durch Fertigstellungsdatum - aktuelles Datum errechnet und angezeigt werden kann (ggf. dann natürlich mit einem entsprechenden Javascript-Countdown).
Mach Dich mit der grundlegenden Funktionsweise von "Browsergames" vertraut, bevor Du anfängst, viel Zeit in die Entwicklung eines solchen zu stecken (wie sinnlos das auch immer sein mag) - ansonsten wirst Du NIE fertig.
MfG,
EKKi
ansonsten wirst Du NIE fertig.
browsergames werden sowieso nie fertig - die sind alle beta und mit werbung vollgestopft
so kann bei technischen fehlern nie jemand zur verantwortung gezogen werden ;)
Hi,
Danke schonmal für die Antworten.
Ich hab da noch eine Frage zu den cronjobs, ich würde gerne eine bat datei mein PHP script ausführen lassen. Was muss ich dafür in die bat Datei schreiben?
Grüße Lennart
echo $begrüßung;
Ich hab da noch eine Frage zu den cronjobs, ich würde gerne eine bat datei mein PHP script ausführen lassen. Was muss ich dafür in die bat Datei schreiben?
Batch-Dateien und Cronjobs passen eigentlich nicht zueinander. Das eine ist ein Begriff aus der DOS/Windows-Welt, der andere stammt aus dem Unix-Lager. Shellscript wäre das eine Pendant auf Unix-Seite, geplante/scheduled Tasks das andere unter Windows.
Willst du nun unter Win/DOS etwas zeitgesteuert abarbeiten oder unter Unix? Wie auch immer, du kannst PHP aufrufen, am besten mit vollständiger Pfadangabe, und als Parameter die PHP-Script-Datei angeben. Eine Batch-Datei bzw. Shellscript ist in beiden Fällen nicht zwingend notwendig.
echo "$verabschiedung $name";
Hi,
Also ich möchte das mit Windoes bzw. mit den geplanten Tasks machen.
Nachdem was ich bisher gelesen habe ist eine batch datei allerdings notwendig, denn mit den geplanten tasks allein kann ich die php nicht ausführen lassen.
Also weiterhin meine Frage wie ich mit einer Batch Datei ein php Script ausführen lassen kann?
Lennart
Hoi.
1. Besorge Dir wget:
http://users.ugent.be/~bpuype/wget/
2. Mach ne Batch Datei, die das PHP Script auf Deinem Zielhost per Wget aufruft:
wget -q 'http://www.example.org/deinscript.php'
3. Trage die Batchdatei in den Taskplaner ein.
Grüße
echo $begrüßung;
Also weiterhin meine Frage wie ich mit einer Batch Datei ein php Script ausführen lassen kann?
Wie würdest du an der Eingabeaufforderung vorgehen? Ich hatte es ja schon beschrieben. Du hast irgendwo PHP installiert und da eine php.exe rumliegen x:\pfad\zu\php\php.exe. Den trägst du in die Batch-Datei ein und hintendran in der gleichen Zeile den Namen deines Scripts, auch wieder mit vollem Pfad. Oder du wechselst vor dem PHP-Aufruf mit cd das Verzeichnis und gegebenenfalls vorher mit x: noch das Laufwerk. Wenn der Pfad Leerzeichen enthält, musst du ihn komplett mit "" einrahmen.
echo "$verabschiedung $name";