login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Winkel Probleem

Offline dimb - 13/09/2008 13:18
Avatar van dimbNieuw 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:
  1. //////////////
  2. //Winkel//
  3. //////////////
  4.  
  5. $res = mysql_query("SELECT * FROM bouw") ;
  6. while($data = mysql_fetch_assoc($res)){
  7. //Variabels resetten
  8. $tijd = time();
  9. $verschil =0;
  10. $aantal =0;
  11. $begin = 0;
  12. $naantal = 0;
  13. $delete = 0;
  14.  
  15. if($data['aantal']<1){ //Kijken of er nog wel wat gebouwd moet worden
  16.  
  17. mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
  18. echo 'Verwijderen';
  19. $delete++;
  20. }
  21.  
  22. //Berekenen hoeveel er bebouwt kunnen worden
  23. $verschil = $tijd-$data['begin'];
  24. if($verschil >0){
  25. $aantal = floor($verschil/$data['duur']);
  26. if($aantal>0){
  27. if($aantal>$data['aantal']){
  28. $aantal = $data['aantal'];
  29. }
  30. $begin1 = $aantal*$data['duur'];
  31. $begin = $begin1+$data['begin'];
  32. $naantal = $data['aantal']-$aantal;
  33. if($naantal > 0 ){
  34. mysql_query("UPDATE bouw SET begin='".$begin."', aantal='".$naantal."' LIMIT 1")or die(mysql_error()) ;
  35. echo 'Toevoegen';
  36. }elseif($delete==0){
  37. mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
  38. echo 'Verwijderen';
  39. $delete++;
  40. }
  41. if($naantal == 0 && $delete==0){
  42. mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
  43. echo 'Verwijderen';
  44. $delete++;
  45. }
  46.  
  47. //Toevoegen
  48.  
  49. if($data['soort'] == 'werknemers' OR $data['soort'] == 'soldaat' OR $data['soort'] == 'schipper'){
  50. mysql_query("UPDATE users SET ".$data['soort']."=".$data['soort']."+'".$aantal."' WHERE id= '".$data['userid']."' LIMIT 1")or die(mysql_error()) ;
  51. }
  52. mysql_query("UPDATE wereld SET ".$data['soort']."=".$data['soort']."+'".$aantal."' WHERE id= '".$data['kol']."' LIMIT 1")or die(mysql_error()) ;
  53. }
  54. 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>';
  55.  
  56. }
  57.  
  58.  
  59. }


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

1 antwoord

Gesponsorde links
Offline Kr4nKz1n - 13/09/2008 13:25 (laatste wijziging 13/09/2008 13:29)
Avatar van Kr4nKz1n Onbekend Probeer eerst eens met tab`s te werken.

Dit is voor ons nu een zwijnenstal :/

Jammer 

edit
Een tip.

Veel winkel systemen werken met SESSION`s ;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.392s