• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Exp und Prozent Rechner (Browsergame)

Tochelet

Neues Mitglied
Hallo,

Ich bin grade an einem Browser-Game dran und habe Probleme bei der Umrechnung der exp.

Ich habe am Anfang aus der Datenbank gegeben:

Spieler LVL = $User_lvl
Spieler EXP = $User_exp
Anfangs EXP = 100 (so viel muss man auf lv 1 erreichen um lv 2 zu bekommen.)

Dann lasse ich den in der while Schleife für jedes Lvl die zu erreichenden exp ausrechnen. Jeweils exponentiell ein viertel vom letzten maximal wert drauf.

Und dann lasse ich den dass in Prozent umrechnen damit ich die größe des anzeigebalkens verändern kann und dann "Aktuell / Maximal (Bsp. 69/100 )" drauf schreiben kann. Allerdings spuckt er mir am ende eine viel zu große Prozent Zahl aus (über 100).

Ich hoffe ihr könnt mir bei meinem Problem helfen.

Code:
               <?php
                // USER VARIABLEN!!! (aus der Datenbank) //////////////////
               
                $User_name = $row_user['UserName'];
                $User_mail = $row_user['Email'];
                $User_lvl = $row_user['Level'];
                $User_exp = $row_user['Erfahrung'];
               
                //////////////////////////////////////////
               
                // EXP Rechner //
                if($User_lvl != 0){
                   
                    $exp_expo = 4; //Pro lvl up: Exp bis zum nächsten lvl + 1 / $exp_expo!     ( / = Geteilt )
                    $exp_start = 100;
                   
                    $i = 0;
                   
                    while($User_lvl > $i){
                       
                        $exp_absolut = $exp_start;
                       
                        $exp_i = $exp_absolut / $exp_expo;
                        $exp_start = $exp_absolut + $exp_i;
                       
                        $i++;
                    }
                   
                    //    p% = P / (G / 100)    //
                   
                    $G  = $exp_absolut / 100;
                    $P  = $User_exp;
                                       
                    $exp_prozent = $P / $G;
                }
                ?>

MFG, Tochelet
 
Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Aaaah dankeschön, das wusste ich noch gar nicht. Habe gedacht es gibt ein Programm dafür, hab aber keins gefunden... Jetzt weiß ich auch wieso ^^.
 
Nun wo die Frage praktisch geklärt wurde. Hast du all diese Sachen eigentlich irgendwo in einer Text datei gespeichert? :-D
Also... finde ich gut. Auf über 50% der Fragen dürften alle deine Sachen zutreffen. Bin nur neugierig. :)
 
Zurück
Oben