Probleme mit einem Script

SantaCruze

Erfahrenes Mitglied
Moin =) Ich habe ein paar Probleme mit einem Script. Und zwar ist das ganze so aufgebaut;

Der User gibt eine Mengenanzahl an, diese wird dann sowas wie "gebaut". Soweit läuft das ganze, nun ist das Problem nur, gibt man z.b. Menge 1 an, baut er 1. Gibt man Menge 10 an , baut er aber 11. Ein Freund meinte es könnte ein Fehler im Rechenweg sein. Gibt es da noch mehr Lösungswege? Z.b. die Zeitberechnung des Baus ist falsch oder die Datenbank Strukturierung ist nicht richtig? In der DB wird das was gerade im bau ist als Integer eingetragen.
 
Hier is der Code

PHP:
 function ships_build($id, $count, $coords)
    {
        $level = $this->planets_building_level($coords, 12); //OVS: Level
        
        $gal = $coords['gal'];
        $sys = $coords['sys'];
        $plan = $coords['plan'];
        
        //echo "baue $count -> $id auf $gal:$sys:$plan (mit level $level)<br>";
        // $build_cnt = $this->ships_res_for#
        $count = (int)$count;
        
        $rfor = $this->ships_res_for($id, $coords);
        
        if ($rfor < $count)
            $count = $rfor;
            
        if ($count <= 0)
            return; 
        // echo "building $count of $id (Debug: Ship)<br>";
        
        $this->reinit();
        
        // $order = $this->ship_build_maxorder($coords) + 1;
        
        //$this->reinit();
        
        $ship_sel = $this->ships_select($id);
        $resttime = $this->formula_shiptime($ship_sel['time'], $level);
        
        $this->query("INSERT INTO ship_build SET gal=$gal, sys=$sys, plan=$plan, count=$count, `order`=$order, resttime=$resttime, lastact='" . time() . "', shiptype=$id");
        $this->err();
        
        $this->ships_build_refresh($coords);
        
        $this->reinit();
        
        $res = $this->ships_select($id);
        
        $this->reinit();
        
        $res['fe'] = - $res['res1'] * $count;
        $res['lut'] = - $res['res2'] * $count;
        $res['h2o'] = - $res['res3'] * $count;
        $res['h2'] = - $res['res4'] * $count;
        
        $this->res_add($coords, $res);
    }
 
Zurück