Datum Zeit
Shoutbox
Gästen ist das Schreiben von Mitteilungen nicht erlaubt.


Jackpot  Offline
21.05.2012 00:01
Sehr geehrte Mitglieder, absofort gibt es wieder Lose in unseren Lottosystem! Der neue Jackpot liegt bei 500 Score. Alle Angaben ohne Gewähr. Wink

Gr@n@dE  Offline
19.05.2012 12:25
Der Cronjob hat sich leider deaktiviert, ab Montag startet dann eine neue Ziehung.

emblinux  Offline
16.05.2012 19:12
Da scheint es ein Problem mit dem Cronjob zu geben. Muss ich auch erst mal nachhaken.

VIP-phiL  Offline
Verwarnstatus: warningwarningwarningwarning
16.05.2012 16:38
Heyho, derzeit gibt es keine Lotto Ziehungen, darf man fragen aus welchen Gründen? Lg. phil

valhalla  Offline
Verwarnstatus: warningwarningwarningwarning
15.05.2012 13:38
Dickeslachen

Ähnliche Themen
Thema Forum Antworten Letzter Beitrag
Thread als gelöst makieren Allgemeine Support Fragen 4 24. April 2012 08:08:20
[gelöst]score system zerreisst seite Allgemeine Support Fragen 12 11. März 2012 17:44:00
[Gelöst] Zitate Panel für v7? Infusionen 18 12. Januar 2012 10:16:53
[Gelöst] Locale Problem bei v7.01.06 Allgemeine Support Fragen 5 24. August 2011 18:33:03
[gelöst] 3 neue Profilfelder für v7.02.xx Allgemeine Support Fragen 4 22. August 2011 23:53:12
Thread ansehen
Wer ist hier? 1 Gäste
 Drucke Thread
[Gelöst] [Spiel, v7] Balloons
MarcusG
#1 Drucke Post
Geschrieben am 05. März 2009 14:43:59
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
Hallo zusammen!

Ich hzab mal wieder ein Problem.

Es geht um ein von mir geschriebenes Spiel bzw. ein javascript-Game welches ich für PHP-Fusion angepasst habe.

Und zwar wird hier der Highscore in einer eigenen DB-Tabelle gespeichert.

Nun das Problem:

Ich bekomme es nicht hin, dass der Highscore nur gespeichert wird wenn er noch nicht vorhanden ist in der DB oder wenn er höher ist als ein bereits gespeicherter.

Nun gut, da ich das nicht hinbekam, dachte ich mir ich filtere das raus bei der Anzeige der Highscore-Liste.

Aber auch dabei hab ich Schwierigkeiten.

Ich hab es mit "group by user_id order by score desc limit 10" probiert, aber dann wurde trotzdem nicht der höchste Score angezeigt sondern ein beliebiger.

Hier der Code aus der javascript-Datei, der Score wird mit $_get vom Javascript übergeben und per php in die DB geschrieben:

GeSHi: Javascript
  1. if (checkWinner()) {
  2. //Allows you to write high scores to a file.
  3. document.location = ("balloons.php?shots=" + winTotal)
gewandelt in 0.006 Sekunden, benutzt wurde GeSHi 1.0.8.9


Hier die Verarbeitung des übergebenen Scores:

GeSHi: PHP
  1.  
  2. opentable($locale['BALL_title']);
  3. // your code here
  4. include "ball_functions.php";
  5. echo "<br /><center><a href='balloons.php'><input type='submit' value='".$locale['BALL001']."' class='button'></a>";
  6.  
  7. if (iMEMBER){
  8. if (isset($_GET['shots'])) {
  9. $monat = date("m");
  10. $score = stripinput($_GET['shots']);
  11. $result = dbquery("INSERT INTO ".DB_BALLOONS_SCORE." SET user_id='".$userdata['user_id']."', score='".$score."', monat='".$monat."'");
  12. redirect("balloons.php");
  13. }
  14. }
  15. closetable();
  16.  
  17. opentable("Highscore");
  18. echo "<center><h2>Die 10 besten Spieler</h2></center>";
  19. echo "<table class='tbl-border center'>";
  20. echo "<tr class='tbl2'><td align='center' width='150'><b>Name</b></td><td align='center'><b>Punkte</b></td></tr>\n";
  21.  
  22. $result_tbl = dbquery("select * from ".DB_BALLOONS_SCORE." order by score desc limit 10");
  23. while ($data_tbl = dbarray($result_tbl))
  24. {
  25. $usr = $data_tbl['user_id'];
  26. $result_usr = dbquery("select * from ".$db_prefix."users where user_id=$usr");
  27. $data_usr = dbarray($result_usr);
  28. $prflnk = BASEDIR."profile.php?lookup=".$usr;
  29. echo "<tr><td align='center'><a href='".$prflnk."'>".$data_usr['user_name']."</a></td>
  30. <td align='center' >".$data_tbl['score']."</td></tr>";
  31. }
  32. if (iADMIN) {
  33. echo "<tr class='tbl1'><td colspan='2'>&nbsp;</td></tr>";
  34. echo "<tr class='tbl2'><td align='center' colspan='2'><a href='balloons.php?delscore'><input type='submit' value='Highscore löschen' class='button'></a></td></tr>";
  35. }
  36. echo "</table>";
  37.  
  38. if (isset($_GET['delscore'])) {
  39. $result = dbquery("TRUNCATE TABLE ".DB_BALLOONS_SCORE);
  40. redirect("balloons.php");
  41. }
  42. closetable();
  43.  
gewandelt in 0.249 Sekunden, benutzt wurde GeSHi 1.0.8.9


Die $locale :

GeSHi: PHP
  1. $locale['BALL_title'] = "Ballons";
  2. $locale['BALL_desc'] = "Zerst&ouml;re soviele Ballons wie Du kannst.";
  3. $locale['BALL_link1'] = "Ballons";
  4. $locale['BALL001'] = "Neues Spiel";
  5. $locale['BALL002'] = "Game Over!";
  6. $locale['BALL003'] = "Du hast gewonnen! ";
  7. $locale['BALL004'] = "Dein Ergebnis: ";
  8. $locale['BALL005'] = " Punkte.";
  9. $locale['BALL006'] = "Spielstand:";
  10. $locale['BALL007'] = "zu erzielen:";
gewandelt in 0.224 Sekunden, benutzt wurde GeSHi 1.0.8.9



Derzeit habe ich keine Filterung bei der Score-Anzeige, ich hätte jedoch gerne dass jeder Spieler nur einmal in der Liste erscheint, mit seinem höchsten je erzielten Punktestand.

So sieht es aus:

http://sandbox.ma...lloons.php

User = Tester PW = tester (Gäste können keinen Highscore speichern)
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#2 Drucke Post
Geschrieben am 05. März 2009 14:55:57
User Avatar




Posts: 3709
Registriert seit: 04.10.08

Meister
Nächstes Level: 3732/5000

Scores: gesperrt
schau dir mal folgenden Link an, der sollte dir in dieser hinsicht helfen.

http://dev.mysql....icate.html
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
MarcusG
#3 Drucke Post
Geschrieben am 05. März 2009 15:00:26
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
Ah, ja danke das sieht hilfreich aus.

Dann müsste ich das Tabellenfeld user_id als Primary key und autoincrement deklarieren, ist das problemlos möglich?


Edit: Ja ist möglich :)

Soweit sehr gut, folgender Code funktioniert:

GeSHi: PHP
  1. $result = dbquery("INSERT INTO ".DB_BALLOONS_SCORE."
  2. SET user_id='".$userdata['user_id']."', score='".$score."', monat='".$monat."'
  3. ON DUPLICATE KEY UPDATE score='".$score."', monat='".$monat."'");
gewandelt in 0.221 Sekunden, benutzt wurde GeSHi 1.0.8.9



Nur wird jetzt jedes Spiel gespeichert, zwar pro User nur einmal aber auch dann wenn ein niedrigerer Score erzielt wurde.
Editiert von MarcusG am 05. März 2009 15:22:05
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#4 Drucke Post
Geschrieben am 05. März 2009 19:55:11
User Avatar




Posts: 3709
Registriert seit: 04.10.08

Meister
Nächstes Level: 3732/5000

Scores: gesperrt
Dann mach vorher ein Select, womit du dir die eingetragene Punktzahl für den User holst, vergleiche diese mit dem erziehlten Punktestand und wenn der Neue Punktestand höher ist, machst du diesen Insert, sonst eben nicht.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
MarcusG
#5 Drucke Post
Geschrieben am 05. März 2009 19:58:29
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
Das versuch ich ja... Was ist an diesem Code falsch? (funktioniert nämlich nicht, jetzt wird nie was eingetragen...^^)

GeSHi: PHP
  1.  
  2. opentable($locale['BALL_title']);
  3. // your code here
  4. include "ball_functions.php";
  5. echo "<br /><center><a href='balloons.php'><input type='submit' value='".$locale['BALL001']."' class='button'></a>";
  6.  
  7. if (iMEMBER){
  8. if (isset($_GET['shots'])) {
  9. $chk = dbquery("select score from ".DB_BALLOONS_SCORE." where user_id = '".$userdata['user_id']."'");
  10. $monat = date("m");
  11. $score = stripinput($_GET['shots']);
  12. if ($chk['score'])>$score) {
  13. $result = dbquery("INSERT INTO ".DB_BALLOONS_SCORE."
  14. SET user_id='".$userdata['user_id']."', score='".$score."', monat='".$monat."'
  15. ON DUPLICATE KEY UPDATE score='".$score."', monat='".$monat."'");
  16. redirect("balloons.php");
  17. }
  18. }
  19. }
  20. closetable();
  21.  
gewandelt in 0.231 Sekunden, benutzt wurde GeSHi 1.0.8.9

Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#6 Drucke Post
Geschrieben am 05. März 2009 20:01:41
User Avatar




Posts: 3709
Registriert seit: 04.10.08

Meister
Nächstes Level: 3732/5000

Scores: gesperrt
probier mal.

GeSHi: PHP
  1.  
  2. opentable($locale['BALL_title']);
  3.  
  4. // your code here
  5.  
  6. include "ball_functions.php";
  7.  
  8. echo "<br /><center><a href='balloons.php'><input type='submit' value='".$locale['BALL001']."' class='button'></a>";
  9.  
  10.  
  11.  
  12. if (iMEMBER){
  13.  
  14. if (isset($_GET['shots'])) {
  15.  
  16. $chk_score = dbresult(dbquery("select score from ".DB_BALLOONS_SCORE." where user_id = '".$userdata['user_id']."'"),0);
  17.  
  18. $monat = date("m");
  19.  
  20. $score = stripinput($_GET['shots']);
  21.  
  22. if ($chk_score>$score) {
  23.  
  24. $result = dbquery("INSERT INTO ".DB_BALLOONS_SCORE."
  25.  
  26. SET user_id='".$userdata['user_id']."', score='".$score."', monat='".$monat."'
  27.  
  28. ON DUPLICATE KEY UPDATE score='".$score."', monat='".$monat."'");
  29.  
  30. redirect("balloons.php");
  31.  
  32. }
  33.  
  34. }
  35.  
  36. }
  37.  
  38. closetable();
gewandelt in 0.233 Sekunden, benutzt wurde GeSHi 1.0.8.9

Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
MarcusG
#7 Drucke Post
Geschrieben am 05. März 2009 20:10:36
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
Leider nein...
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#8 Drucke Post
Geschrieben am 05. März 2009 20:17:06
User Avatar




Posts: 3709
Registriert seit: 04.10.08

Meister
Nächstes Level: 3732/5000

Scores: gesperrt
hast du dir mal $score und $chk_score ausgeben lassen, ob da über haupt das richtige drinn steht? musst evtl. das redirect rausnehmen, damit du die anzeige siehst.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
MarcusG
#9 Drucke Post
Geschrieben am 05. März 2009 20:23:17
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
Ok, hab ich gemacht.

In der DB steht als Highscore 4 (per phpmyadmin eingegeben)

$ score:460
$ chk_score:4

460 hab ich grad als Score erreicht.

Die Werte stimmen also. Trotzdem schreibt er nicht in die DB.


AAH...!!!

GeSHi: PHP
  1. if ($chk_score>$score) {
  2. $result = dbquery("INSERT INTO ".DB_BALLOONS_SCORE."
  3. SET user_id='".$userdata['user_id']."', score='".$score."', monat='".$monat."'
  4. ON DUPLICATE KEY UPDATE score='".$score."', monat='".$monat."'");
gewandelt in 0.222 Sekunden, benutzt wurde GeSHi 1.0.8.9



Er soll natürlich schreiben wenn der DB-Eintrag KLEINER ist als der erreichte Score...


Erster Test erfolgreich... Jetzt muss er noch schreiben wenn der Highscore gelöscht wurde (chk_score = "NULL")
Editiert von MarcusG am 05. März 2009 20:30:54
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#10 Drucke Post
Geschrieben am 05. März 2009 20:32:18
User Avatar




Posts: 3709
Registriert seit: 04.10.08

Meister
Nächstes Level: 3732/5000

Scores: gesperrt
ah ja, das habe ich natürlich nicht gesehen, den Vergleichsoperator vertauscht. Naja, das kann ja mal passieren.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
MarcusG
#11 Drucke Post
Geschrieben am 05. März 2009 20:37:20
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
DAU

Jetzt funktioniert es www.marcusg.de/images/smiley/hoppa.gif

Score wiird nur gespeichert wenn er höher ist als der bereits vorhandene, auch wenn die Tabelle leer ist. Perfekt!

DANKE!
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
MarcusG
#12 Drucke Post
Geschrieben am 06. März 2009 05:37:46
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
Wer sich für das Spiel interessiert, auf http://www.futigo... gibt es das zum Download. Demo hab ich weiter oben schon genannt. Smile
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#13 Drucke Post
Geschrieben am 06. März 2009 09:44:22
User Avatar




Posts: 3709
Registriert seit: 04.10.08

Meister
Nächstes Level: 3732/5000

Scores: gesperrt
Nettes Spiel mit Tendez zur Suchtgefahr. Wink

Nur schade, das es das nur dort zum Download gibt, deshalb registrieren möchte ich mich nicht.

Zumal ich es nicht nachvollziehen kann, wie man für PHP-Fusion entwickelt, aber mit einem anderen Board-System arbeitet.

Wäre genau das selbe, wenn ich unter Linux programmiere aber sonst nur mit Windows arbeite. Etwas Paradox für mich, aber das muss jeder selbst entscheiden.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
MarcusG
#14 Drucke Post
Geschrieben am 06. März 2009 12:12:25
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
ObiWan ist der Betreiber, ich schreibe nur die Spiele. Smile
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#15 Drucke Post
Geschrieben am 06. März 2009 12:18:00
User Avatar




Posts: 3709
Registriert seit: 04.10.08

Meister
Nächstes Level: 3732/5000

Scores: gesperrt
Das weiß ich doch. Wink

Nur du musst es ja da nicht ausschließlich zum Download anbieten.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
ObiWan
#16 Drucke Post
Geschrieben am 06. März 2009 12:35:35
User Avatar

Anwender


Posts: 420
Registriert seit: 09.09.08

Halb-Profi
Nächstes Level: 425/500

Scores: gesperrt

Verwarnstatus: warningwarningwarningwarning
Neee muss er nicht. Er kanns gerne auch hier anbieten. Ist ganz alleine seine Entscheidung. Wink

Und naja das ist quasi mein Entwickler Forum. ^^
Ich brauch einfach das PHP-Fusion nicht mehr an sich als Hauptseite. Dennoch arbeite ich noch intensiv damit.

1. hab ich dafür meine v7 Testseite
2. arbeite ich derzeit an meinem Spiel für Fusion (*Klick*)

Von daher wollt ich das einfach nicht mehr. Und wegen anmelden: Ein Argument wäre das es haufen Spiele(-addons) gibt für Fusion usw., die nicht nur von MarcusG gecodet worden sind. Und es ja auch auf vielen Seiten so üblich ist das man sich anmelden muss. Sind ja nur 2 Minuten und dann ist man sofort drinnen (ohne Aktivierungs-Email). Wollt halt wissen wer es lädt und wie es ankommt. Muss aber wie gesagt ja jeder selber entscheiden was er macht. Und ich kann niemanden dazu zwingen. Wink
Editiert von ObiWan am 06. März 2009 12:38:43
PHP-Fusion World - Hier gibts massig Spiele und Stuff für deine Community
Bei WBB World: PHPFWBB 1.x.x Schnittstelle (eine Registrierung, problemloses einloggen auf beiden Systemen)
... und vieles mehr.
 top
http://www.wbb-world.de
MarcusG
#17 Drucke Post
Geschrieben am 06. März 2009 18:46:04
User Avatar




Posts: 2944
Registriert seit: 21.01.09

Meister
Nächstes Level: 2951/5000

Scores: gesperrt
http://www.phpfus...hp?did=141


Wink
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
ObiWan
#18 Drucke Post
Geschrieben am 06. März 2009 20:11:49
User Avatar

Anwender


Posts: 420
Registriert seit: 09.09.08

Halb-Profi
Nächstes Level: 425/500

Scores: gesperrt

Verwarnstatus: warningwarningwarningwarning


Wenn der Prophet nicht zum Berg kommt, muss eben der Berg zum Propheten gehen. In diesem Sinne ...

...noch einen schönen Abend! klasse
PHP-Fusion World - Hier gibts massig Spiele und Stuff für deine Community
Bei WBB World: PHPFWBB 1.x.x Schnittstelle (eine Registrierung, problemloses einloggen auf beiden Systemen)
... und vieles mehr.
 top
http://www.wbb-world.de
Springe ins Forum: