PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script automatisch von vorne Anfangen lassen.


MasterPeace
19.01.2006, 20:27:05
Hallo erst mal,

ich bin grad Dabei eine Seite zu erstellen wo mann "Gebäude" bauen kann. Also ein Browsergame auf gewisse Art und Weise. Nun wollte ich für das bauen gewisse dinge einbauen wie z.B.: Geld das man benötigt um die Gebäude zu bauen und einen Timer damit die Gebäude nicht so fort fertig sind.

<?php<?php
if(isset($Produzieren)){
register_shutdown_function('countdown');
ignore_user_abort();
sleep(20);
$query = "UPDATE user SET User.Bank = '$row[Bank]' + '$Bank' WHERE Benutzername = 'benutzername' ";
}
$result = mysql_query($query);
if( ! $result )
{
die("Konnte den Datensatz nicht eintragen<BR>" .mysql_error() );
}
}
}
?>

Das ganze ist ja wunderschön^^. Aber wenn ich das in eine Function hineinsetze dann wird in meine Datenbank immer 00 eingetragen. Und damit keine Fehler meldung kommt müsste ja alles in eine Funktion aber dabei mach ich immer etwas Falsch. Die Seite wird alle 5 Sekunden neugeöffnet das habe ich mit einer meta funktion gemacht:

<meta http-equiv="refresh" content="10">

Nun habe ich mir ein Kleines Script geschrieben was aber auch nicht gerade meisterhaft ist weil das ganze mit einer einfachen sleep(); funktion geht. Der Browser kann zwar geschlossen werden und es läuft weiter, aber was ich eher gebrauchen kann ist so etwas wie ein Script das sogar wenn der User offline ist weiter arbeitet und z.B.: aller 5 Sekunden das Geld erneuert. Doch leider habe ich keine Ahnung wie ich das mit PHP hinbekommen kann. Was ich mir auch überlegt habe wäre das alles über time(); zu regeln und einfach ausrechnen zu lassen welche Zeit zwischen dem wann der User das letzte mal online gegangen ist und dem wann er wieder online gekommen ist. Aber da weis ich nicht genau wie ich den vergleich machen soll weil so eine time(); Variable relativ groß wäre.

Es wäre schön wenn mir jemand bei meinem Problemm helfen könnte.

tonitone
20.01.2006, 03:26:29
wie wäre es mit einem cronjob der in bestimmten intervallen die rechenskripte aufruft?

das wäre meiner meinung nach die einzige möglichkeit sowas browserunabhängig laufen zu lassen.

also, ich wenn jemand online spielt, und ereignisse auslöst, speichertst du diese "irgendwo" - db oder txt oder xml -file.

nun kommt der cron-job, stößt die php-scripte an und diese gucken nach ob in der DB (oder in nem bestimmten ordner bei files) sachen liegen, die er berechnen soll.

er berechnet und schreibt diese in der datenbank.

nun kommt der browser-metarefresh zum einsatz. dieser macht ein select über die neuen ergebnisse und der spieler sieht seine ergebnisse.

der cronjob spielt also welt-zeit-uhr in deinem game,
bsp. 24 minuten = 1 tag
metarefresh jede minute = 1 stunde

be inspired