Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Klasse die alles met exp en levels te maken heeft.
- */
- class Level{
- /**
- * Berekend hoeveel exp je nodig hebt in totaal voor een bepaald level.
- *
- * @param int $level Het level
- * @return int Exp in totaal
- */
- public function getExp($level){
- if($level == 0){ // Dit is nodig om $this->level te laten werken
- return 0;
- } else {
- $totalExp = 0;
- for($L = 1; $L < $level; $L++){ //$L = level waarvoor het exp tot volgende level wordt berekend. Hij moet beginnen bij 0 anders werkt ie niet.
- $totalExp += floor($L + 300 * pow(2, ($L / 7) ));
- }
- return floor($totalExp/4);
- }
- }
- /**
- * Berekend welk level je hebt bij een bepaald aantal exp
- *
- * @param int $exp Aantal exp
- * @return int Het level
- */
- public function getLevel($exp){
- for($i = 1; $i < 120; $i++){
- // Als het exp nodig voor het vorige level kleiner is dan het aantal exp
- // & als het exp nodig voor het volgende level groter is dan het aantal exp dan is $i = level dat je nu hebt
- if($this->getExp($i - 1) < $exp && $this->getExp($i) >= $exp){
- return --$i; // Het level - 1 doen omdat het script zo werkt.
- }
- }
- }
- /**
- * Berekend hoeveel exp je nog nodig hebt voor een bepaald level
- *
- * @param int $exp Aantal exp
- * @param int $goalLevel Het doel level
- * @return int Aantal exp je nog nodig hebt voor een bepaald level
- */
- public function expTillLevel($exp, $goalLevel){
- $goalExp = $this->getExp($goalLevel);
- $todoExp = $goalExp - $exp; // Nodige Exp - exp die je nu hebt
- return $todoExp;
- }
- /**
- * Berekend hoeveel epx je nog nodig hebt voor het volgende level
- *
- * @param int Aantal exp
- * @return int Aantal exp tot het volgende level
- */
- //@TODO: Fix deze functie
- public function expTillNextLevel($exp){
- $levelNow = $this->getLevel($exp);
- $expTillNextLevel = $this->expTillLevel($exp, $levelNow + 1); // Berekend hoeveel exp je nodig hebt voor volgende level
- return $expTillNextLevel;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment