Nieuw lid |
|
Hallo allemaal,
Na heel lang zoeken naar het probleem en herschrijven van het script weet ik geen raad meer en hoop dat jullie me kunnen helpen. Ik heb een winkel in een online oorlogs-RPG van mij, die niet goed functioneert.
Als je in de winkel iets koop bijvoorbeeld 10 soldaten krijg je er bv 157. Soms werkt het systeem wel en soms niet. Het aantal wat je krijgt is naar mijn zien random. Het systeem werkt als volgt: Je koopt 10 soldaten die komen in de db te staan. Dan komt er om de minuut een cron langs die kijkt hoeveel van die 10 soldaten gebouwd kunnen worden (ze hebben namelijk een bouwtijd).
DB:
[IMG]http://i405.photobucket.com/albums/pp132/dimbyy/db.gif[/IMG]
Id: Id van de rij
Userid: de spelers id
Kol: Het id van de legerbasis (waar het gebouwd moet worden)
Image: Verwaarloosbaar
Naam: Naam van datgene wat gebouwd moet worden
Duur: Aantal seconden dat het duurt om 1 object te maken
Begin: Tijd van invoeren, of de laatste cronjob run
Aantal: Zoveel objecten moeten er nog gebouwd worden
Soort: De naam van de velden in andere tabellen
Deel van de cron:
//////////////
//Winkel//
//////////////
$res = mysql_query("SELECT * FROM bouw") ;
while($data = mysql_fetch_assoc($res)){
//Variabels resetten
$tijd = time();
$verschil =0;
$aantal =0;
$begin = 0;
$naantal = 0;
$delete = 0;
if($data['aantal']<1){ //Kijken of er nog wel wat gebouwd moet worden
mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
echo 'Verwijderen';
$delete++;
}
//Berekenen hoeveel er bebouwt kunnen worden
$verschil = $tijd-$data['begin'];
if($verschil >0){
$aantal = floor($verschil/$data['duur']);
if($aantal>0){
if($aantal>$data['aantal']){
$aantal = $data['aantal'];
}
$begin1 = $aantal*$data['duur'];
$begin = $begin1+$data['begin'];
$naantal = $data['aantal']-$aantal;
if($naantal > 0 ){
mysql_query("UPDATE bouw SET begin='".$begin."', aantal='".$naantal."' LIMIT 1")or die(mysql_error()) ;
echo 'Toevoegen';
}elseif($delete==0){
mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
echo 'Verwijderen';
$delete++;
}
if($naantal == 0 && $delete==0){
mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
echo 'Verwijderen';
$delete++;
}
//Toevoegen
if($data['soort'] == 'werknemers' OR $data['soort'] == 'soldaat' OR $data['soort'] == 'schipper'){
mysql_query("UPDATE users SET ".$data['soort']."=".$data['soort']."+'".$aantal."' WHERE id= '".$data['userid']."' LIMIT 1")or die(mysql_error()) ;
}
mysql_query("UPDATE wereld SET ".$data['soort']."=".$data['soort']."+'".$aantal."' WHERE id= '".$data['kol']."' LIMIT 1")or die(mysql_error()) ;
}
echo 'wat: '.$data['soort'].'<br>Tijd: '.$tijd.'<br>Begin: '.$data['begin'].'<br>Verschil: '.$verschil.'<br>DB Aantal: '.$data['aantal'].'<br>Aantal: '.$aantal.'(duur:'.$data['duur'].')<br>Begin1: '.$begin1.'<br>Begin: '.$begin.'(dbegin:'.$data['begin'].')<br>Naantal: '.$naantal.'<br><br>';
}
}
////////////// //Winkel// ////////////// //Variabels resetten $verschil =0; $aantal =0; $begin = 0; $naantal = 0; $delete = 0; if($data['aantal']<1){ //Kijken of er nog wel wat gebouwd moet worden mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ; $delete++; } //Berekenen hoeveel er bebouwt kunnen worden $verschil = $tijd-$data['begin']; if($verschil >0){ $aantal = floor($verschil/$data['duur']); if($aantal>0){ if($aantal>$data['aantal']){ $aantal = $data['aantal']; } $begin1 = $aantal*$data['duur']; $begin = $begin1+$data['begin']; $naantal = $data['aantal']-$aantal; if($naantal > 0 ){ }elseif($delete==0){ mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ; $delete++; } if($naantal == 0 && $delete==0){ mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ; $delete++; } //Toevoegen if($data['soort'] == 'werknemers' OR $data['soort'] == 'soldaat' OR $data['soort'] == 'schipper'){ mysql_query("UPDATE users SET ".$data['soort']."=".$data['soort']."+'".$aantal."' WHERE id= '".$data['userid']."' LIMIT 1")or die(mysql_error()) ; } mysql_query("UPDATE wereld SET ".$data['soort']."=".$data['soort']."+'".$aantal."' WHERE id= '".$data['kol']."' LIMIT 1")or die(mysql_error()) ; } echo 'wat: '.$data['soort'].'<br>Tijd: '.$tijd.'<br>Begin: '.$data['begin'].'<br>Verschil: '.$verschil.'<br>DB Aantal: '.$data['aantal'].'<br>Aantal: '.$aantal.'(duur:'.$data['duur'].')<br>Begin1: '.$begin1.'<br>Begin: '.$begin.'(dbegin:'.$data['begin'].')<br>Naantal: '.$naantal.'<br><br>'; } }
Ik hoop dat jullie de fout zien!!!
Echte serieuze testers kan ik een beta account geven om alles ingame te testen.
Niet zien al verkooptruc oid dergelijks maar meer uit dank: diegene die het probleem vind geef ik gratis ingame credits op mijn andere RPG twv €10.
Vragen ?? Stel ze maar!
Bedankt
Dimby
|