Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]System poziomowania
Forum PHP.pl > Forum > Przedszkole
KsaR
Powiedzmy że dam graczowi EXP/doświadczenie,
i będzie to na więcej niż 1 poziom,

najpierw myślałem żeby pętle ale wolałbym omijać,
może jakieś dzielenie tylko jak?
nie da się bez pętli?

tzn:
Jak gracz wbije poziom, chce przenosic nadmiar expa do następnego.
I jest mozliwosc ze dostanie nawet pare poziomow wiecej...


póki co zapisuje exp w kolumnie `currentExp`
i if currentExp>=$exp[lvl] -> lvl up.

edit: i żeby miał odrazu ile więcej a nie co odswiezenie strony +1 +1 +1 itd..

edit2 (16:39) - dobra pętla to chyba ostateczność a jak zrobić najoptymalniej ?, a może jakoś trzeba zmienić układ?
markuz
Jak nie chcesz pętli to zastosuj rekurencję wink.gif
KsaR
Cytat(markuz @ 25.11.2014, 16:43:48 ) *
Jak nie chcesz pętli to zastosuj rekurencję wink.gif


No ok, ponoć rekurencje jeszcze mniej optymalne,
ale zobrazuje mi ktoś to (co powinienem robić w pętli)?
bo nie mam pomysłu, ja bym robil co lvl update do bazy, a w pętli troche zajmie...
fate
zrob tabele
1lvl - 0exp
2lvl - 100exp
3lvl - 1000exp

i sprawdzaj tylko ile ma expa
markuz
  1. <?php
  2.  
  3. function get_level($levels, $exp)
  4. {
  5. $i = 0;
  6.  
  7. while(isset($levels[$i]) && $exp >= $levels[$i])
  8. $i++;
  9.  
  10. return $i;
  11. }
  12.  
  13. $level = get_level(array(10, 100, 1000), 50);
  14.  
  15. var_export($level);
  16.  
  17. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.