tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
19
ZUGRIFFE
913
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JustNobody JustNobody ist offline Mitglied
    Registriert seit
    Nov 2003
    Beiträge
    17
    abend,

    ich arbeite grad an einem kleinen browsergame, und damit man auch weiß, wo man steht, braucht das ganze ein ranglisten-script.

    damit die rangliste nicht immer in der DB geändert wird, wenn ein user die rangliste ansieht, müsste das alles per cronjob gehen.

    d.h. in der mysql tabelle sind in einer spalte die punkte. nach denen soll das geordnet werden, und dann das ergebnis wieder in die db geschrieben werden.

    das script sollte ungefähr so aussehn:

    aufruf -> daten aus der db lesen (nick, punkte) -> ordnen -> wieder in die db einfügen (nick mit n punkten auf rang x...)

    gibts sowas schon in ähnlicher form irgendwo, bzw ist mein ansatz richtig und könnte mir da eventuell jemand ein paar zeilen code geben?

    danke

    mfg stephan
     

  2. #2
    MiLa MiLa ist offline Mitglied Smaragd
    Registriert seit
    Aug 2003
    Beiträge
    1.166
    Netiquette §12 <- Betrifft die deutsche Rechtschreibung

    Hast du denn einen eigenen Server bzw. die Möglichkeit Cronjobs einzurichten?

    Du schreibst ein Browsergame?
    Browsergames arbeiten für gewöhnlich sher Datenbanklasteig...
    ...wieso kannst du denn dann kein simples auslesen -> einfügen Script basteln?
     

  3. #3
    Avatar von Razorhawk
    Razorhawk Razorhawk ist offline Webdesigner und MSP
    Registriert seit
    Aug 2002
    Ort
    Berlin
    Beiträge
    1.363
    an sich gesehen wird sich in der Db immer etwas ändern, denn die Ranglisten richten sich ja nach gewissen werten, welche sich immer ändern müssen, denn sonst kommt keine ranglist zustande.
    In diesem Fall brauchst du keine crownjobs, denn immer wenn ein User die statistiken ansieht wird ja ein script aufgerufen auf der Seite, welche alle werte ausliest und dan musst du sie in dem SQL-Query nur sortieren wie du es haben möchtest.

    Die Rangliste ändert sich immer auch in dem Fall wenn ein Spieler ein Zug gemacht hat und Punkte (oder was sonst als Bewertungskriterium gilt) bekommt und dies in der Datenbank gut geschrieben wird.

    nun kommt es nur darauf an, ob die Rangliste immer wieder neu berechnet werden soll aus den Werten die in der DB gelesen werden oder ob bei jedem Zug, bei dem es Punkte gab eine Formel vor dem updaten der DB die Rangliste ausrechnet und diesen rang ebenfalls updatet.
    Aber prinzip ist an sich das gleiche.
     

  4. #4
    MiLa MiLa ist offline Mitglied Smaragd
    Registriert seit
    Aug 2003
    Beiträge
    1.166
    Ich habe irgendwo noch einen Ansatz von einem Browsergame rumliegen,
    hab das per Cronjob alle 15 Minuten aufgerufen um die Punkte zu berechnen, da bei größeren zeitabständen die Wartezeiten für die Spieler zu lange werden wenn ejdes mal die Punkte usw. berechnet werden.

    Genauso sieht das mit einer Rangliste aus, wenn du ein Spiel mit 3000 Spielern hast und alle paar Sekunden die Rangliste neu generiert werden muss ist das extrem Datenbanklastig und kann vermieden werden, indem die Rangliste z.B. alle 15 Minuten per Cronjob aktualisiert wird.
     

  5. #5
    JustNobody JustNobody ist offline Mitglied
    Registriert seit
    Nov 2003
    Beiträge
    17
    danke erstmal für die raschen antworten.

    die voraussetzungen für cronjobs hätte ich. aber ich werds wohl über die "generate-by-load" methode machen.

    z.Z. hab ich folgenden code:

    PHP-Code:
    <?PHP
    $rang 
    "1";
    $db->query("SELECT * FROM gamedata ORDER BY punkte DESC");
    while(
    $datensatz $db->data()) {
    echo(
    "<tr><td> ".$rang++." </td>");
    echo(
    "<td> ".$datensatz['id_x'].":" .$datensatz['id_y']." </td>");
    echo(
    "<td> ".$datensatz['nick']." </td>");
    echo(
    "<td> ".$datensatz['asteroiden']." </td>");
    echo(
    "<td> ".$datensatz['punkte'] ."</td></tr>");
    ?>
    </table>
    <?PHP
    }
    ?>
    aber ich hab keine ahnung, wie ich den rang wieder zurück in die DB schreibe.

    mfg
    stephan
    Geändert von JustNobody (09.12.03 um 20:51 Uhr)
     

  6. #6
    MiLa MiLa ist offline Mitglied Smaragd
    Registriert seit
    Aug 2003
    Beiträge
    1.166
    Im Prinzip musst du die Punkte ja garnicht in die Datenbank einfügen, es reicht doch schon, wenn du es berechnest, bevor du es ausgibst/damit arbeiten willst.

    Den Rang musst du auch nicht in die Datenbank schreiben, da der Wert immer dynamisch hochgezählt wird.
     

  7. #7
    JustNobody JustNobody ist offline Mitglied
    Registriert seit
    Nov 2003
    Beiträge
    17
    naja, am anfag der seite ist eine kleine übersicht, in der u.a. auch der rang aufscheint. deshalb möchte ich den rang wieder in die db schreiben

    mfg
    stephan
     

  8. #8
    MiLa MiLa ist offline Mitglied Smaragd
    Registriert seit
    Aug 2003
    Beiträge
    1.166
    Den kannst du doch auch dort errechnen...

    Geht denke ich mal schneller, als die ganzen Datenbank Abfragen und Aktualisierungen, auch wenn es sich hierbei nur um unwesentliche Zeitunterschiede handelt.
     

  9. #9
    JustNobody JustNobody ist offline Mitglied
    Registriert seit
    Nov 2003
    Beiträge
    17
    schönen nachmittag allen,


    ich hab mir gestern noch lange den kopf über das berechnen des platzes zerbrochen. doch ich bin irgendwie zu keiner brauchbaren lösung gekommen.

    könnte mir da eventuell jemand einen kleinen denkanstoß geben?

    danke

    mfg
    stephan
     

  10. #10
    MiLa MiLa ist offline Mitglied Smaragd
    Registriert seit
    Aug 2003
    Beiträge
    1.166
    Netiquette §12 - Deutsche Rechtschreibung - Danke!

    Berechnung des Platzes? Oder der Punkte?
    Welche Faktoren möchtest du denn verwenden?
     

  11. #11
    JustNobody JustNobody ist offline Mitglied
    Registriert seit
    Nov 2003
    Beiträge
    17
    die punkte werden über die rohstoffe und bonuspunkte (die erhält man durch das bauen von gebäuden, schiffen, etc.) berechnet.

    und die punkte sind das kriterium für den rang. je höher die punkte, desto weiter oben ist man in der rangliste.

    mfg
    Stephan
     

  12. #12
    MiLa MiLa ist offline Mitglied Smaragd
    Registriert seit
    Aug 2003
    Beiträge
    1.166
    Netiquette §12 - Deutsche Rechtschreibung - Danke!

    Sachma, bist du blind? Les dir bitte einmal die Netiquette - zumindest den Paragraph 12 - durch und befolge diesen auch in deinen Posts, sonst werde ich zumindest mich weigern dir weiterhin zu helfen.

    Ok, dann erzähl mal grob, wie du im Moment alles gespeichert hast.

    Bisher sieht das ja so aus:

    Bonuspunkte=Anzahlgebäude1*Punkteprogebäude1+Anzahlgebäude2*Punkteprogebäude2+Anzahlgebäude3*Punktep rogebäude3
    Punkte=Rohstoffanzahl*Rohstoffpunkte+Bonuspunkte

    So wird das wohl ungefähr ablaufen...
     

  13. #13
    JustNobody JustNobody ist offline Mitglied
    Registriert seit
    Nov 2003
    Beiträge
    17
    Wie oben schon erwähnt, habe ich die Berechnung der Punkte schon.

    Mir fehlt lediglich ein Ansatz zur Berechnung der Platzierung.

    mfg
    Stephan
     

  14. #14
    MiLa MiLa ist offline Mitglied Smaragd
    Registriert seit
    Aug 2003
    Beiträge
    1.166
    Wie amchst du es denn nun?
    Stehen die Punkte in ner Datenbank oder hast du sie als Array oder wie?
     

  15. #15
    JustNobody JustNobody ist offline Mitglied
    Registriert seit
    Nov 2003
    Beiträge
    17
    Die Punkte stehen schon in der Datenbank. Es muss lediglich nurnoch die Platzierung ausgerechnet werden. Und genau da haperts.

    mfg
    Stephan
     

Ähnliche Themen

  1. Automatisches Script ala Cronjob
    Von querytail im Forum PHP
    Antworten: 10
    Letzter Beitrag: 19.01.11, 12:54
  2. Automatisches Update
    Von lisali im Forum Java
    Antworten: 5
    Letzter Beitrag: 03.07.09, 09:58
  3. Ranglisten Problem
    Von Lenox im Forum PHP
    Antworten: 2
    Letzter Beitrag: 10.05.08, 01:31
  4. Ranglisten
    Von jojaeger im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 07.05.07, 14:58
  5. Automatisches Login Script
    Von gnetos im Forum PHP
    Antworten: 5
    Letzter Beitrag: 21.06.05, 15:31