Hilfe: Onlinehighscore

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Firstdeathmaker

Betreff: Hilfe: Onlinehighscore

BeitragDi, Sep 04, 2007 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Obwohl ich schon eifrig die Suchfunktion benutzt habe und vor allem mich nach IScore umgeschaut habe, bin ich nicht auf Code für einen Onlinehighscore unter BMax gestossen. Daher hier meine Anfrage:

Weis jemand wo ich Code für einen Onlinehighscore unter BMax mit PHP und MySQL herbekomme?
Oder könnte mir da jemand was schreiben? Als Belohnung für selbstgeschriebenes würde ein Eintrag in den Credits von Razoon winken.

Die Onlinehighscoreliste sollte nur folgendes enthalten:
- Namen der Spieler und Punktezahl
- Und eine Funktion mit der ich vom Spiel her die Versionsbezeichnung (String) mitschicken kann und die dann gegengeprüft wird. Sodass nicht mit älteren Versionen ein Highscore eingetragen werden kann.

Dankeschön schonmal für jedwede Hilfe!
Euer Firstdeathmaker


Edit: Ich bastel mir jetzt selber was zusammen, bin schon fast fertig. Hat sich also erledigt.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Farbfinsternis

BeitragMi, Sep 05, 2007 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe Dir mal was zusammengeschraubt (ca. 5kb):

    In dem Archiv befinden sich folgende Dateien:
  • highscore.bmx => das Include mit den Funktionen
  • highscore_beispiel.bmx => Kurzes Beispielprogramm wie die Sache anzuwenden ist
  • highscore.php => das PHP-Script welches mit der Datenbank kommuniziert
  • mysql.php => stellt die Verbindung zur Datenbank her. Dieses Script muss mit Deinem Datenbankzugang angepasst werden!
  • rz_scores.sql.gz => Dump der MySQL Datenbank (kann mit phpMyAdmin in eine andere MySQL (5) Datenbank importiert werden)


Achtung: Die ganze Geschichte hat keinerlei Sicherheitsfunktionen drin, d.h. dass eigentlich jeder mit einem Quentchen krimineller Energie seine Fantasie-Highscore eintragen kann. Solche Funktionalitäten können aber hinzugefügt werden.


----


Wenn Du keinen eigenen Server hast kann ich die Sache auch bei mir liegen lassen. Brauchst Du noch Platz für eine OnlineAnzeige der Scores kann ich Dir einen entsprechenden FTP Zugang einrichten.


In der Datei highscore_beispiel.bmx habe ich ein paar Zugriffe dokumentiert, falls Fragen auftreten helfe ich gern.

Hier nochmal eine Liste der Funktionen und Methoden aus THighscore

InitHighScore:THighscore()
Initialisiert die ganze Geschichte. Als Parameter wird die Spielversion als String und der Pfad zum PHP-Script erwartet.
Die Funktion gibt ein Objekt vom Typ THighscore zurück, mit dem greift man in Folge auf die Methoden zu.

Beispiel:
Code: [AUSKLAPPEN]

Local highscore:THighScore = THighScore.InitHighScore("1.0", "www.colorflow.de/pub/highscore/highscore.php")



GetScores()
Holt die Scores sortiert aus der Datenbank. Als optionale Paramter können "begin" und "limit" angegeben werden. "begin" definiert den ersten zu lesenden Datensatz und "limit" die Gesamtzahl der zu lesenen Datensätze. Damit kann man eine Seitenweise Darstellung der Highscore realisieren.
Lässt man "limit" auf 0 werden alle Datensätze abgerufen.

Beispiel:
Code: [AUSKLAPPEN]

Local cnt:Int = highscore.CountScores()
Local pages:Int = 0
If cnt > 0 Then pages = cnt/ANZAHL_DER_SCORES_PRO_SEITE
Local begin:Int = aktuelle_seite*ANZAHL_DER_SCORES_PRO_SEITE
Local limit:int = ANZAHL_DER_SCORES_PRO_SEITE

highscore.GetScores(begin, limit)



SetScore()
Schreibt einen neuen Score in die Datenbank. Achtung! Nach jedem SetScore() wird die lokale Liste gelöscht und die aktualisierte heruntergeladen!

Als Parameter erwartet diese Methode den Username als String und den Score als Integer. Zurückgegeben wird im Erfolgsfall True, ansonsten False


RemoveScore()
Löscht einen Highscore-Eintrag aus der Datenbank. Als Parameter erwartet diese Methode ein Objekt vom Typ TScore.
Im Erfolgsfall gibt die Methode True zurück, ansonsten False.

Beispiel:
Code: [AUSKLAPPEN]

If highscore.scores <> Null
  For local scores:TScores = EachIn highscore.scores._list
      If scores.user_name = "Du_bist_ein_dummes_Arschloch" Then highscore.RemoveScore(score)
  Next
End If



ResetTable()
Mit dieser Methode lässt sich die gesamte Datenbank auf Null zurücksetzen. Gibt im Erfolgsfall True zurück, ansonsten False.


CountScores()
Gibt die Gesamtzahl der Scores zurück. Diese Methode liest nur die Einträge in der Datenbank die der aktuell eingestellten Version entsprechen!
Farbfinsternis.tv

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group