SantaCruze
Erfahrenes Mitglied
Ich hoffe hier kann mir jmd weiterhelfen, komme irgendwie nicht weiter und finde die Fehler nicht.
Das erste ist ein kleines Java Script was die Zeit runterzählt,
dieses ist bei mir in ein php Script eingebunden. Problem ist nur, da ich kein CSS verwende kann ich den Style der Zeitangabe nicht ändern. Sobald ich die Zeile <br><a href=konstruktion.php?s={/literal}{$building.id}{literal}>Abbrechen</a>"; entsprechend modifiziere , sprich den HTML Tag für Font und Farbe einsetze stoppt der Zähler augenblicklich und funktioniert nicht mehr. Muss ich da wirklich mit CSS arbeiten um das Problem zu umgehen?
Das 2. problem ist ein Rechenfehler (den ich aber nicht finde). Bei folgendem Script
Das nächste Problem ist, das eine Menge X als Grundmenge erhalten bleiben soll, daher diese nicht verändert werden kann. Aber irgendwie werden doch werte abgezogen. Script lautet wie folgt:
Das erste ist ein kleines Java Script was die Zeit runterzählt,
PHP:
function t()
{
n=new Date();
s={/literal}{$building.resttime}{literal}-Math.round((n.getTime()-v.getTime())/1000.);
m=0;
h=0;
if(s<0)
{
bx.innerHTML="Abgeschlossen<br><a href='konstruktion.php'>weiter</a>"
}
else
{
if(s>59)
{
m=Math.floor(s/60);
s=s-m*60;
}
if(m>59)
{
h=Math.floor(m/60);
m=m-h*60;
}
if(s<10)
{
s="0"+s
}
if(m<10)
{
m="0"+m
}
bx.innerHTML=h+":"+m+":"+s+"<br><a href=konstruktion.php?s={/literal}{$building.id}{literal}>Abbrechen</a>";
}
window.setTimeout("t();",999)
}
window.onload=t;
</script>
{/literal}
dieses ist bei mir in ein php Script eingebunden. Problem ist nur, da ich kein CSS verwende kann ich den Style der Zeitangabe nicht ändern. Sobald ich die Zeile <br><a href=konstruktion.php?s={/literal}{$building.id}{literal}>Abbrechen</a>"; entsprechend modifiziere , sprich den HTML Tag für Font und Farbe einsetze stoppt der Zähler augenblicklich und funktioniert nicht mehr. Muss ich da wirklich mit CSS arbeiten um das Problem zu umgehen?
Das 2. problem ist ein Rechenfehler (den ich aber nicht finde). Bei folgendem Script
PHP:
function ships_build_refresh($coords)
{
$gal = $coords['gal'];
$sys = $coords['sys'];
$plan = $coords['plan'];
$this->query("SELECT * FROM ship_build WHERE gal=$gal AND sys=$sys AND plan=$plan ORDER BY `order` ASC;");
$this->err();
$own_db = new cl_extended_database;
$nr1 = 1;
$lref = 0;
$tv = 0;
$level_sf = $own_db->planets_building_level($coords, 12); //Schiffsfabrik: Level
while ($row = $this->fetch())
{
// echo "DBUG in ships_build_refresh: fetching...<br>";
$tobuild = 0;
$own_db->reinit();
$ship_select1 = $own_db->ships_select($row['shiptype']);
$shiptype_rtime = $own_db->formula_shiptime($ship_select1['time'], $level_sf);
if ($nr1 == 1)
{
$nr1 = 0;
$lref = $row['lastact'];
$now = time();
$tv = $now - $lref;
// echo "<b>DEBUG:</b> Zeit vergangen:$tv<br>";
}
$rtime = $row['resttime'];
if ($rtime > $tv)
{
$new_rt = $rtime - $tv;
// echo "<b>MySQL:</b>Setze resttime to auf $new_rt und exit...<br>";
$own_db->query("UPDATE ship_build SET resttime='$new_rt', lastact='$now' WHERE buildid='" . $row['buildid'] . "';");
$own_db->err();
$own_db->dbclose();
return;
}
else
{
$tv -= $rtime;
$rtime = $shiptype_rtime; //full time;
// $cnt = 1;
// echo "<b>MySQL:</b> Baue 1 schiff<br>";
$tobuild += 1;
}
if ($rtime > $tv)
{
$new_rt = $rtime - $tv;
// echo "<b>MySQL:</b>Setze resttime to auf $new_rt und exit...<br>";
if ($row['count'] <= 1)
{
$own_db->query("DELETE FROM ship_build WHERE buildid='" . $row['buildid'] . "';");
$own_db->err();
// echo "<b>MYSQL:</b> Loesche Thread, keine Schiffe vorhanden...'<br>";
}
else
{
$own_db->query("UPDATE ship_build SET resttime='$new_rt', lastact='$now', count=count-1 WHERE buildid='" . $row['buildid'] . "';");
$own_db->err();
}
$own_db->refresh_lastact($coords);
$own_db->ship_insert($coords, $tobuild, $row['shiptype']);
$own_db->dbclose();
return;
}
if ($tv > 0)
{
// echo "TV: $tv, rt: $rtime<br>";
$cnt = @floor($tv / $rtime);
if ($rtime == 0)
{
$cnt += 1;
}
if ($cnt == 0)
{
// echo "soll 0 schiffe bauen -> nix da->exit!<br>";
return;
}
if ($cnt > $row['count'])
{
$cnt = $row['count'];
}
$rtime = $shiptype_rtime; // full time
$tv -= $cnt * $rtime;
$rtime = $tv;
$row['count'] -= $cnt;
$tobuild += $cnt;
if ($row['count'] <= 0)
{
$own_db->query("DELETE FROM ship_build WHERE buildid='" . $row['buildid'] . "';");
$own_db->err();
// echo "<b>MYSQL:</b> Loesche Thread, keine Schiffe vorhanden...'<br>";
}
else
{
$cnt = $row['count'];
$own_db->query("UPDATE ship_build SET count='$cnt', resttime='$rtime', lastact='$now' WHERE buildid='" . $row['buildid'] . "';");
$own_db->err();
// echo "<b>MYSQL:</b> Set Thread auf: count->$cnt, resttime->$rtime'<br>";
}
$own_db->refresh_lastact($coords);
$own_db->ship_insert($coords, $tobuild, $row['shiptype']);
if ($tv <= $shiptype_rtime)
{ // full time
// echo "Nothing more to build->exit<bR>";
$own_db->dbclose();
return;
}
else
{
// echo "Time left: $tv secounds, starting next thread<bR>";
}
}
}
}
Das nächste Problem ist, das eine Menge X als Grundmenge erhalten bleiben soll, daher diese nicht verändert werden kann. Aber irgendwie werden doch werte abgezogen. Script lautet wie folgt:
PHP:
if ($load > 0)
{
$raided['fe'] = min($load, $tores['fe']);
$load -= $raided['fe'];
}
else
{
$raided['fe'] = 0;
}
if ($load > 0)
{
$raided['lut'] = min($load, $tores['lut']);
$load -= $tores['lut'];
}
else
{
$raided['lut'] = 0;
}
if ($load > 0)
{
$raided['h2'] = min($load, $tores['h2']);
$load -= $tores['h2'];
}
else
{
$raided['h2'] = 0;
}
if ($load > 0)
{
$raided['h2o'] = min($load, $tores['h2o']);
$load -= $tores['h2o'];
}
else
{
$raided['h2o'] = 0;
}
//print_r($raided);
// echo "raided!:<br>";
// to Fix: min. Bestand
$raided['fe'] = floor($raided['fe']);
$raided['lut'] = floor($raided['lut']);
$raided['h2o'] = floor($raided['h2o']);
$raided['h2'] = floor($raided['h2']);
$tores['fe'] -= $raided['fe']; //Spy report uses $tores['x'], this makes correct values
$tores['lut'] -= $raided['lut'];
$tores['h2o'] -= $raided['h2o'];
$tores['h2'] -= $raided['h2'];
$str_res_raided = $raided['fe'] . "x" . $raided['lut'] . "x" . $raided['h2o'] . "x" . $raided['h2'];
$owndb->fleet_put_res($fid, $raided);
$nraided = $owndb->var_res_negate($raided);
$owndb->res_add($tcoords, $nraided);
//echo "res_add-Position";
Zuletzt bearbeitet: