Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Awansowanie poziomu
Maciek316
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Witam, mam napisany taki skrypt na awansowanie do kolejnego poziomu:
  1. function lvlup(){
  2. $poziom = Array(0,5,7,12,20,30,35,50,80,125);
  3.  
  4. $lvl = all("select * from users where exp >= exp_lvl");
  5. if(is_array($lvl)){
  6. foreach($lvl as $lvls){
  7. query("update users set lvl = lvl + 1, exp = exp - exp_lvl, exp_lvl = ".$poziom[$lvls->lvl+1]." where exp >= exp_lvl");
  8. } }
  9. }

Tyle ze czasem gracz o nizszym poziomie dostaje wymog doswiadczenia gracza o wyzszym poziomie. Tak jakby awansowali w tym samym czasie i cos sie zbugowalo.
Co jest nie tak?

Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


Po co ten update jest wykonywany w pętli?
Go to the top of the page
+Quote Post
Maciek316
post
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Żeby brało pod uwagę każdego kto w danym czasie awansuje ;p
Go to the top of the page
+Quote Post
Tomplus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 885
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


Wg mnie coś nie tak jest tutaj:
exp >= exp_lvl

Najpierw pobierasz listę graczy którzy spełniają ten warunek, a potem w SQL dodajesz taki sam, przy czym wcześniej nadajesz nową wartość exp_lvl.

W twoim wypadku wystarczy aby nadać tam id = :userId
Go to the top of the page
+Quote Post
Maciek316
post
Post #5





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Calkiem mozliwe ze to wlasnie to bylo bledem.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.12.2025 - 17:41