Rechnung mit Zeiten

Sasser

Erfahrenes Mitglied
Ich habe noch ein letztes Großes Problem!

Ich habe in der Variable $part[0] einen Timestamp der angibt wielange der Bau von der Anzahl in Variable $part[2] dauert. Nun suche ich nach einer Lösung, wie man realisieren kann, dass man durch:
PHP:
$time = $part[0]-($weapon[duration]*$part[2])+$weapon[duration];
prüfen kann, ob dieses Gebäude schon fertig ist und wenn ja, einfach immer wieder 1 dazuzählt zu $weapon.

Dass ist mein Ansatz, allerdings komme ich absolut nicht weiter... Hilfe :confused:

PHP:
$search = explode("#", $row[weaponprogress]);
foreach ($search as $var)
{
$part = explode("|", $var);
$weapon=mysql_fetch_assoc(mysql_query("SELECT * FROM weapons WHERE `id` = '$part[1]'", $db));
$time = $part[0]-($weapon[duration]*$part[2])+$weapon[duration];
mysql_query("UPDATE citys SET `W$part[1]` = '$weapons' WHERE `coordinates` = '$row[coordinates]'", $db);
}
 
Eine recht umständliche aber auf jedenfall funktionierende Möglichkeit:

PHP:
$buildstart = time();
$buildtime = xx; //xx = Zeit, formatiert als YYYYMMDDhhmmss

(also wenn's jetzt 1min 30sec dauern soll dann gibt man ein 130.
Bei 1 Stunde 4 Minuten 3 Sekunden = 10403 etc.)

$nowtime = date("Y-m-d H:i:s", $buildstart);
$buildend = date("Y-m-d H:i:s", $buildtime);
$arrangement1 = explodeformat($nowtime);
$arrangement2 = explodeformat($buildend);
$buildready = arrangement1+arrangement2;

$timestamp = time();
$timeformat = date("Y-m-d H:i:s", $timestamp);
$arrangement3 = explodeformat($timeformat);

if ($buildready==$arrangement3){
    echo "Gebäude fertig";
}

function explodeformat($datum){
  list($jahr,$monat,$tag)=explode("-", $datum);
  list($stunde,$minute,$sekunde)=explode(":", $datum);
  return sprintf("%04d%02d%02d%02d%02d%02d", $jahr, $monat, $tag, $stunde, $minute, $sekunde);
}

Die Codeschnippsel gehören im Prinzip so nicht zusammen!
Am Besten speicherst du die Variable $buildready in der Datenbank
und der Code der darunter folgt kommt in eine extra Datei.
Die in der Datenbank gespeicherte Variable wird wieder ausgelesen und verglichen...
falls du das nicht so ganz verstehst (aufgrund von geringen PHP kenntnissen (was ich aber bezweifle, da du schließlich ein Browsergame zu programmieren scheinst)) kann ich darauf noch weiter eingehen, nur bescheid sagen :D
 
Zurück