Tach alle zusammen!!!!
Ihr werdet euch vielleicht über diese Frage lustig machen, aber gibt es eine Möglichkeit per script die Site zu aktualisieren?
Hab echt keinen Plan, da ich noch net so gut in Php, geschweigeden JavaScript bin..
Naja, bitte um Hilfe!!!
danke im Vorraus
Nilpferd
Site aktualisieren
-
-
was wie wann wiso weshalb warum
-
Ich führ ein Php-Script auf der Site aus, das Variablen verändert. Die Variablen verändern sich aber erst nach dem Siteaufbau. Dann sollen sie aber trotzdem immer wieder richtig angezeigt werden.....
Bsp: Ein Online-Spiel mit Rohstoffen:
Die Rohstoffe verändern sich, sollen aber immer noch richtig angezeigt werden, ohne das der Besucher immer auf Aktualisieren klicken muss
Danke für deine Bemühungen -
da würd ich lieber nen JS zähler für benutzen - sonst hast du nämlich irgendwann mal viel spass mit dem traffic
-
Hab ich mir auch schon überlegt......ich muss die Variablen aber in ner datei abspeichern, da sich die Rohstoffe ja auch erhalten sollen bis zum nächsten besuch des Mitglieds......Und des geht ja ganz gut....aber nur des aktualisieren. hab echt keine Ahnung mehr
-
Ich würd mal das Konzept deines Onlinespiels überdenken...
Sollen die Rohstoffe etwa nur dann zunehmen wenn der Spieler grade auf der Seite ist?
-
Das ist ja grad das Problem. Also:
Der Spieler loogt sich ein und das Script Rechnet die Zeit aus, die er nicht auf der Site war. Funktioniert alles bis her. Dann speichert es die Rohstoffe in einer Datei ab. Doch die Site, auf der die Rohstoffe stehen, liest zeitlich davor die Variablen auf die Site. Wenn man dann die Site aktualisiert, gehts ja dann, da dann die richtigen Variablen gelesen werden. deshalb muss die Site erst aktualisiert werden.
Doch irgendwie kommt das doof, wenn auf der Site steht:
"Um zu spielen müssen sie erst mal aktualisieren"
Also, wär cool von euch, wenn noch jemand ne Idee hat
Danke
nilpferd -
-
-
Vielleicht gehts mit dem Code einfacher:
Code
Alles anzeigen<? // Variablen vom Login übernehmen $name_get = $HTTP_GET_VARS["Name"]; $passwort_get = $HTTP_GET_VARS["Passwort"]; // Funktion zum Variablensetzten function var_set($name_gettet, $name, $wert) { $datei = fopen("Gebiete.txt","r+"); $Inhalt = ""; while(!feof($datei)) { $Inhalt .= fgets($datei); } $Mitgliedpos = strpos($Inhalt,"Mitglied: $name_gettet;"); $Variablenposition = strpos($Inhalt, $name, $Mitgliedpos); $Variablenposition = ($Variablenposition + strlen("$name: ")); fseek($datei, $Variablenposition); if($name == "Holz" || $name == "Stein" || $name == "Metall" || $name == "Lehm" || $name == "Einheit1" || $name == "Einheit2" || $name == "Einheit3") { // Zahl muss immer 4 stellen haben if(strlen($wert) == 1) { $wert = "000$wert"; } elseif(strlen($wert) == 2) { $wert = "00$wert"; } elseif(strlen($wert) == 3) { $wert = "0$wert"; } elseif(strlen($wert) >= 5) { exit; } } fwrite($datei, "$wert;"); } // Mitglied aus der Datei in eine Variable schreiben $datei = fopen ("Gebiete.txt","r"); $Inhalt = ""; while(!feof($datei)) { $Inhalt .= fgets($datei); $Inhalt .= "\n"; } $ohneVorne = strstr($Inhalt,"Mitglied: $name_get;"); $Hinten = strstr($ohneVorne,"End"); $Mitglied = substr($ohneVorne,0,((strlen($ohneVorne)-strlen($Hinten))+3)); // Kein MItglied gefunden? if($Mitglied=="") { ?> <script language="JavaScript">alert ("Bitte geben Sie ihre Daten ein!"); location = "Login.php";</script> <? } // Funktion um Variablen aus Datei herausfiltern function filt_var($Text, $name) { $test = strstr($Text, "$name: "); $hinten = strstr($test, ";"); $tes = substr($test,(strlen($name)+2),(strlen($test)-(strlen($hinten)+strlen("$name: ")))); return($tes); } // Diese Variablen werden schon bei der Logout-Zeit-Überprüfung gebraucht $Logout = filt_var($Mitglied, "Logout"); $Holz = filt_var($Mitglied, "Holz"); $Lehm = filt_var($Mitglied, "Lehm"); $Stein = filt_var($Mitglied, "Stein"); $Metall = filt_var($Mitglied, "Metall"); // Logout Zeit überprüfen if($Logout != "0000000000") { $Zeit = time(); $Restzeit = ($Zeit - $Logout); var_set($name_get, "Holz", ($Holz + floor($Restzeit / 60))); // Holz: alle 60 sek var_set($name_get, "Lehm", ($Lehm + floor($Restzeit / 60))); // Lehm: alle 65 sek} var_set($name_get, "Stein", ($Stein + floor($Restzeit / 60))); // Stein: alle 70 sek var_set($name_get, "Metall", ($Metall + floor($Restzeit / 60))); // Metal: alle 120 sek var_set($name_get, "Logout", "0000000000"); } // Alle Variablen setzten $Name = filt_var($Mitglied, "Mitglied"); $Passwort = filt_var($Mitglied, "Passwort"); $e_mail = filt_var($Mitglied, "e-mail"); $Gebiet = filt_var($Mitglied, "Gebiet"); $Entwicklungen = filt_var($Mitglied, "Entwicklungen"); $Baustelle1 = filt_var($Mitglied, "Baustelle1"); $Baustelle2 = filt_var($Mitglied, "Baustelle2"); $Baustelle3 = filt_var($Mitglied, "Baustelle3"); $Einheit1 = filt_var($Mitglied, "Einheit1"); $Einheit2 = filt_var($Mitglied, "Einheit2"); $Einheit3 = filt_var($Mitglied, "Einheit3"); $Holz = filt_var($Mitglied, "Holz"); $Lehm = filt_var($Mitglied, "Lehm"); $Stein = filt_var($Mitglied, "Stein"); $Metall = filt_var($Mitglied, "Metall"); // Überprüfung auf falsches Passwort if($Passwort != $passwort_get) { ?> <script language="JavaScript"> alert ("Falsches Passwort oder falscher Benutzername!"); location = "Login.php";</script> <? } ?>
Das hier steht in der Date "Gebiete.txt":
Mitglied: Mitgliedsname;
Passwort: TopSecret;
e-mail: your@mail.here;
Logout: 0000000000;
Gebiet: Mein Reich;
Entwicklungen: 0;
Baustelle 1: 0;
Baustelle 2: 0;
Baustelle 3: 0;
Einheit 1: 0000;
Einheit 2: 0000;
Einheit 3: 0000;
Holz: 0000;
Lehm: 0000;
Stein: 0000;
Metall: 0000;
End
Ich will dich (euch) jetzt nicht zwingen oder unhöflich sein, aber ich brauche unbedingt hilfe, da ich gar nicht mehr weiter weiß.
Wär echt nett von dir (euch) mir zu helfen.
Danke
nilpferd -
Ich bin immer noch für Konzept überdenken...
z.B. die berechnung der Rohstoffe: mach die unabhängig vom logout.
schreib bei jedem login den loginzeitpunkt in die datei und berechne ausgehend vom letzten loginzeitpunkt die anzahl der rohstoffe unter berücksichtigung der ausgegebenen rohstoffe etc.
Das ist wichtig, falls sich mal ein spieler nicht ausloggt.Sei mir nicht böse, aber ich werde deinen Code nicht überarbeiten - ich geb dir aber gerne hier und da anregungen.
Wichtig wäre auch, dass du alle berechnungen machst bevor du irgendwelche ausgaben an den browser sendest - so kannst du dir dann nämlich auch das aktualisieren der Seite spaaren - und was jetzt noch besser wäre:
arbeite mit MySQL statt Textdateien -
Danke für deine Hilfe......das mir MySQL werde ich mir mal überlegen
Danke nochmal, nilpferd