Level System mit php

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Level System mit php

    Hallo,
    ich habe ein level System mit PHP gemacht doch das klappt nicht sehr gut.
    Die Level werden zwar angezeigt aber die Punkte die erreicht werden müssen, nicht.
    Hier mal der Script:
    PHP-Code:
    function getLevel ($p){
            if (!
    is_int($p)) {
            return 
    false;
        }
        
        
    $lvlstart 1;
        
    $lvlend 100;
        
    $lvlfactor 10;
        
    $pointcount 0;
        
    $lvl 0;
        
    $start;
        
    $end;
        
    $point $p;
        
        do {
            
    $pointcount++;
            if((
    $point $lvlend) && ($point >= $lvlstart)) {
                
    $lvl $pointcount;    
                
    $lvlstart $start;
                
    $lvlend $end;
                
            }
                
    $lvlstart $lvlend;
                
    $lvlend = ($lvlend 100) * $pointcount;
        }while(
    $lvl == 0);
        
        
    $percent = ($start 100) / $end;
        
        return array(
    "start" => $start"end" => $end"level" => $lvl"point" => $point"percent" => $percent);

    weiß jemand wo der Fehler sein könnte?

    Danke im voraus

    mfg Marco

  • #2
    Eine Anzeige setzt in der regel eine Vorherige Ausgabe voraus. Die erfolgt jedoch nirgends. Ich gehe aber auch nicht davon aus, dass du das meinst. Kannst du bitte noch mal konkret schildern bei welchen Variablenwerten unter welchen Voraussetzungen du welche Werte erwartest und welche derzeit vorhanden sind?

    Kommentar


    • #3
      danke für die schnelle Antwort!

      $p steht für Punkte also wie viele der Spieler hat.
      Das Level wird angezeigt also bei 1100 Punkten Level 4 ($lvl Variable).
      Nur wie viele Punkte noch benötigt werden wird nicht angezeigt
      ($end Variable).
      Dann kommt auch folgende Fehlermeldung:
      Code:
      [B]Warning[/B]:  Division by zero in [B]/srv/www/httpd/phost/b/de/pytalhost/bwg/web/includes/functions.php[/B] on line [B]132[/B]
      Hängt aber damit zusammen das er nicht durch null teilen kann wegen der $end variable ($percent).

      mfg Marco

      Kommentar


      • #4
        Wer $end keinen Wert zuweist, darf auch nicht erwarten, dass $end einen Wert hat. Guck dir deinen Code noch mal an.

        Kommentar


        • #5
          ok danke klappt soweit doch wenn ich 14842191099 Punkte habe und brauche 14842191100 Punkte zeigt er mir immer noch 9 % an woran kann das liegen?

          Kommentar


          • #6
            Aktueller Code?
            Betreib bitte eigenständiges Debuging. Einfach mal Testausgaben machen, dann kannst du uns auch konkret die stelle nennen, an der es hakt.

            Kommentar


            • #7
              ok,
              ich habe 14842258959 Punkte, 14842258960 Punkte brauche ich um in das nächste level aufzusteigen (Bin level 54484 also gerundet schon 100%
              Wenn ich jetzt 14842258960 Punkte habe bin ich Level 54485 und da steht auch hundert prozent obwohl ich gerade mal aufgestiegen bin.
              Wo liegt da der Fehler?

              Hier nochmal der neue Code:

              PHP-Code:
              function getLevel ($p){
                      if (!
              is_int($p)) {
                      return 
              false;
                  }
                  
                  
              $lvlstart 1;
                  
              $lvlend 100;
                  
              $lvlfactor 10;
                  
              $pointcount 0;
                  
              $lvl 0;
                  
              $start 0;
                  
              $end 0;
                  
              $point $p;
                  
                  do {
                      
              $pointcount++;
                      if((
              $point $lvlend) && ($point >= $lvlstart)) {
                          
              $lvl $pointcount;    
                          
              $start $lvlstart;
                          
              $end $lvlend;
                          
                      }
                          
              $lvlstart $lvlend;
                          
              $lvlend $lvlend + ($pointcount $lvlfactor);
                  }while(
              $lvl == 0);
                  
                  
              $percent = ($start 100) / $end;
                  
              $percent round($percent);
                  
                  return array(
              "start" => $start"end" => $end"level" => $lvl"point" => $point"percent" => $percent);

              mfg Marco
              [COLOR=#EEEEEE]54485[/COLOR]

              Kommentar


              • #8
                Ich zitiere mich noch mal:
                Betreib bitte eigenständiges Debuging. Einfach mal Testausgaben machen, dann kannst du uns auch konkret die stelle nennen, an der es hakt.

                Kommentar


                • #9
                  aso sorry an dem prozent wert also über dem millionen bereich gibt er immer 100 prozent aus

                  Kommentar


                  • #10
                    Nein, das hat noch nichts mit Fehlersuche zu tun. Das ist allenfalls eine sehr schlechte Problembeschreibung.

                    Kommentar


                    • #11
                      danke klappt jetzt

                      Kommentar


                      • #12
                        Kannste mal sehen, was das bringt.

                        Wenn du jetzt noch die Lösung postest, damit alle was davon haben, wäre dieser Thread hier vorbildlich erledigt.

                        Kommentar

                        Lädt...
                        X