Re: Countdown mit dem wert x für spielen

Kalma

Erfahrenes Mitglied
Hey,

ich programmiere zur Zeit ein online-spiel, indem die User arbeiten gehen sollen.

Sie müssen eine Zeit eingeben, und nach dieser Zeit bekommen sie Gold.

Nur, wie soll ich den countdown machen? ER soll ja schließlich auch weiterlaufen, wenn der Browser aus ist. Und während man arbeitet, soll man auch nicht z.b. in das Dorf gehen können, weil man ja arbeitet. Am besten mit SQL oder?

Wenn der Countdown fertig ist, soll der Text "Du hast fertig gearbeitet" ausgegeben werden.

Hab zwar schon gesucht, aber ich hab nichts passendes gefunden.

MfG
David

P.s.: Hoffe, ich falle euch mit meine vielen Fragerei nicht auf den Nerv^^ :suspekt:
 
Timestamp in Tabelle speichern.
WENN Timestamp >= Timestamp + Zeit die gearbeitet werden muss DANN "Du bist am arbeiten" SONST Eintrag Löschen & Arbeit beenden
 
Also meinste mit SQL?


dann create ich mal ne tabelle, die ca. so aussieht:
id //ganz normal, auto_increment und bla
uid //der user, der arbeitet
zuarbeiten //die zeit, die zu arbeiten ist
angefangen //die zeit, an der er angefangen hat

dann das script
PHP:
 <?php
   $result = mysql_query("SELECT * FROM arbeiten WHERE `uid`=".$_SESSION["user_id"]."");
   $u = mysql_fetch_array($result);

   //variablen festlegen
   $zuarbeiten = "".$u['zuarbeiten']."";
   $angefangen = "".$u['angefangen']."";
   $time = "$zuarbeiten+angefangen";

   if ($zuarbeiten >= $time)
      {
        echo "Du bist am arbeiten drann";
      }
    else
      {
        echo "Du hast deine Arbeit verrichtet";
      }
 ?>

so in etwa?

MfG
David
 
Wie siehtn das Format dann aus?

Auch so?: d.m.Y

Und welche Zeit trage ich für die Arbeitszeit ein? 00:15 z.b.?


Oder, wie trage ich das in die db ein? Also, die Zeit die zu arbeiten ist?
$zuarbeiten = 00:15;
$angefangen = NOW();
$Query = mysql_query("INSERT INTO arbeiten(`zuarbeiten`, `angefangen`) VALUES ('$zuarbeiten', '$angefangen')");

David
 
Zuletzt bearbeitet:
Ich würde da mit time() arbeiten, lässt es sich am leichtesten rechnen...

PHP:
$anfang = time();

$finish = time() + 15 * 60;
 
Ok. und wenn ich nen Wert übergeben lassen will, ist ja im Prinzip auch einfach, richtig

PHP:
$wert = $_POST['wert'];
$anfang = time();

$finish = time() + $wert * 60;
 
Jap.
Und wenn die Differenz aus $finish und $anfang dann 0 bzw. kleiner 0 ist, ist es fertig gebaut und du kannst den Eintrag aus der DB löschen, etc. (Nur mitgeschrieben wegen der Zeichenbegrenzung)
 
Jau.

Nur habe ich leider ein Problem.

Habe nun folgende Scripte:
arbeiten.php
goarbeiten.php


arbeiten.php: das formular:
HTML:
<h1>Arbeiten gehen</h1>

Bitte wähle deine Zeit aus:
<form action="?section=goarbeiten" method="post">
	<SELECT name="zeit">
		<option name="15" value="15">15 Minuten</option>
		<option name="20" value="20">20 Minuten</option>
		<option name="25" value="25">25 Minuten</option>
		<option name="30" value="30">30 Minuten</option>
		<option name="35" value="35">35 Minuten</option>
		<input type="submit" value="Go Arbeiten" />
	</SELECT>
</form>



goarbeiten.php: der eintrag und so
PHP:
<?php
	//insert
	$zeit = $_POST['zeit'];
	$uid = "".$_SESSION["user_id"]."";
	$angefangen = time();
	$zuarbeiten = $angefangen + ($zeit * 60);
	
	$Insert = mysql_query("INSERT INTO arbeiten(`uid`, `zuarbeiten`, `angefangen`) VALUES ('$uid', '$zuarbeiten', '$angefangen')");
	header ("location: ?section=arbeiten&send=1");
?>

So gehts^^

David
 
Bei mir klappt es ohne Probleme.

Gib mal testweise $_POST['wert'] vorher aus bzw. stelle sicher dass es der richtige Name ist.
 

Neue Beiträge

Zurück