Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Level - Erfahrung System [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Level - Erfahrung System


 
Besth
30-08-2009, 21:44 
 
Hallo Leute,
ich häng derzeit an einem Levelsystem.
Und da stellt sich mir die Frage wie es wohl am besten zu realisieren ist.
Ich möchte so etwas in der Form:
Level Erfahrung
1 0
2 100
3 200
4 400
5 800
6 1600

wenn man x Erfahrung hat ist man Level y.
Nun will ich mir Funktionen basteln die mir immer Level-Erfahrung umsetzen also sowas in der Art:
function welches($erfahrung) {
// bla
return $level;
}
function erfahrung($level) {
// bla
return $erfahrung;
}
jetzt frag ich mich wie ich die Zuordnung oben also wieviel erfahrung für jedes Level benötigt wird abspeichere.
es soll möglichst anpassbar sein also das ich die zahlen einfach fix ändern kann falls sich was ändert.
wäre da ein array am besten:
array(
1 => 0,
2 => 100,
3 => 200,
4 => 400
);
bloß wie bau ich dann oben meine funktionen auf. so das ich zb wissen will welches level derjenige ist wenn er 123 erfahrung hat.
oder ist array der falsche ansatz? was wäre noch denkbar. (db möchte ich nicht unbedingt benutzen - es geht derzeit nur bis level 10)

 
wahsaga
30-08-2009, 21:48 
 
so das ich zb wissen will welches level derjenige ist wenn er 123 erfahrung hat.
Array in foreach-Schleife durchlaufen, so lange bis der Wert Erfahrungs-Wert grösser als der gesuchte ist. Der im vorherigen Durchlauf aktuelle Schlüssel ist dann das Level.

 
h3ll
30-08-2009, 21:50 
 
function get_level($experience) {
$levels = array(
1 => 0,
2 => 100,
3 => 200,
4 => 400
);

$return = 0;

foreach ($levels as $level => $limit) {
if ($experience >= $limit) {
$return = $level;
}
}

return $return;
}

 
Besth
30-08-2009, 21:59 
 
vielen dank :)
so werd ich es mal probieren

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:12 Uhr.