Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]System poziomowania, Level UP system.
KsaR
post
Post #1





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Ksar 25.11.2014, 16:40:45


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Jak nie chcesz pętli to zastosuj rekurencję wink.gif


--------------------
Go to the top of the page
+Quote Post
KsaR
post
Post #3





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


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...

Ten post edytował Ksar 25.11.2014, 17:02:11


--------------------
Go to the top of the page
+Quote Post
fate
post
Post #4





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


zrob tabele
1lvl - 0exp
2lvl - 100exp
3lvl - 1000exp

i sprawdzaj tylko ile ma expa


--------------------
Go to the top of the page
+Quote Post
markuz
post
Post #5





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


  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. ?>


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 01:49