Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> system poziomów
kylu31
post 27.08.2011, 11:45:34
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 25.03.2011

Ostrzeżenie: (10%)
X----


Witam robie gre i chciałbym zrobić jakiś fajny sytem lvli ale ,żeby go napisać musze was poprosić o pomoc. Czy mógłby ktoś napisać mi kod który wczytuje pliki z pliku np. lvl.txt w którym są poziomy z exp'em dka postaci czyli lvl | exp np :
1 | 0
2 | 200
3 | 500
...
500 | 5000000

i właśnie potrzebuje kod jakiś w stylu ,że wczytuje te dane z pliku np. lvl.txt i jeśli zmienna $exp ma np. 150 exp to będzie pisało ,że ma lvl 2 ^^

PS. nie umiem tłuaczyć i daje POMÓGŁ !
Go to the top of the page
+Quote Post
uirapuru
post 27.08.2011, 11:59:09
Post #2





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

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


kylu: nikt tu nie robi za 'pomógł', możemy Cię nakierować na odpowiednie rozwiązania i sugerować lepsze niż obrałeś wink.gif zainteresuj się funkcjami file_get_contents() oraz explode(), nic więcej nie potrzebujesz smile.gif
Go to the top of the page
+Quote Post
drozdii07
post 27.08.2011, 13:42:44
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


Możesz jeszcze zrobić to na bazie danych smile.gif Łatwiejsze i chyba szybsze rozwiązanie.


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
kylu31
post 5.09.2011, 18:19:37
Post #4





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 25.03.2011

Ostrzeżenie: (10%)
X----


Teraz mam inny problem smile.gif zrobiłem system w mysql i teraz mam taki problem ,że mam takie tabele :
$lvl - Lvl
$min_exp - minimum exp do lvl
$max_exp - maksymalny exp do lvl

np.
mam tabele
lvl min_exp max_exp
1 0 500
2 501 1000
3 1001 1900

i powiedzmy ,że ktoś ma 659 exp to powinno mu pokazywać ,że ma lvl 2 smile.gif

I właśnei czy ktoś mi to zrobi/pokaże jak to zrobić ?

chodzi mi ocoś takiego ,że jesli jego exp jest wiekszy nisz $min_exp i mniejszy nisz $max_exp to pokazuje lvl np. 2 biggrin.gif

Dzięki i pozdrawiam Kylu31
Go to the top of the page
+Quote Post
Kamil Rybczyński
post 5.09.2011, 18:47:37
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 21.11.2006
Skąd: Ozorków

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


Robisz mysql_fetch_array z bazy wyciągając wszystkie levele:

  1. $sql_query = mysql_query('SELECT * FROM levels ORDER BY id asc');
  2. while($row = mysql_fetch_array($sql_query)){
  3.  
  4. if($user_level >= $row['min_exp'] & $user_level <= $row['max_exp']){
  5. echo "Twój level to '.$row['lvl'];
  6. }
  7.  
  8. }


Można to zrobić bardziej optymalnie, ale takie rozwiązanie spokojnie wystarczy.
Chociaż ja na Twoim miejscu elementy, które rzadko będą się zmieniać,
trzymałbym w tablicy w pliku php. Nie ma sensu obciążać sobie bazy takimi zapytaniami.

Możesz zrobić sobie też prostą funkcję,
która będzie przechowywać te wszystkie if'y.

  1. function check_level($user_exp){
  2. if($user_exp >= 0 & $user_exp <= 500){
  3. echo 'Twój level to 1';
  4. }elseif($user_exp >= 501 & $user_exp <= 1000){
  5. echo 'Twój level to 2';
  6. }elseif($user_exp >= 1001 & $user_exp <= 1900){
  7. echo 'Twój level to 3';
  8. }
  9.  
  10. }


I robisz tylko wywołanie funkcji check_level($user_exp);
Ja bym wybrał to drugie rozwiązanie lub jego pochodną. Będziesz miał dużo poważniejsze elementy do trzymania w bazie.

Ten post edytował Kamil Rybczyński 5.09.2011, 18:48:38


--------------------
Wykonujemy strony www, wśród naszych produktów są także system rezerwacji online oraz system monitorowania pozycji w wyszukiwarkach
Go to the top of the page
+Quote Post
Giluś
post 5.09.2011, 18:51:28
Post #6





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Takie coś zrób:
Pobierz PD (punkty doświadczenia) z tabelki usera i punkty doświadczenia jakie musi posiadać na danym levelu coś takiego:

  1. if($gracz['pd'] >= $pd){
  2. $upd = mysql_query("UPDATE `gracze` SET `poziom` = `poziom` + 1, `pd` = `pd` - '".$pd."' WHERE `gracz` = '".$_SESSION['user']."'");
  3. }


Działa to na takiej zasadzie, że na start user ma 1lvl i 0exp, z postępem gry dostaje więcej expa i jak w jego mysql będzie więcej (lub równo) niż exp wymagany to wtedy wykonuje się warunek, i dodaje się poziom i usuwa się np nadmiar pd (bo jak bd się usuwało całe pd to też źle bo czasami za jakąś akcje dostaniemy 140% expa na poziom, a tu nam usunie 100% na odpowiedni lvl i dodatkowo 40% - chyba mnie rozumiesz )

Później informacja o wyższym poziomie

  1. if($upd) echo "LVL UP";


Pozdrawiam.
Go to the top of the page
+Quote Post
cer98
post 5.09.2011, 19:35:32
Post #7





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 17.07.2011

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


Polecam poczytać o Vallheru - silniku do gier MMO na przeglądarke
Go to the top of the page
+Quote Post
kylu31
post 6.09.2011, 16:24:40
Post #8





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 25.03.2011

Ostrzeżenie: (10%)
X----


cer93 nie lubie brać pomysłów z innych gier ^^

Kamil Rybczyński Wole zamulic troche baze i tak mam mało graczy smile.gif ps. na functionach nie chce mi się bawić haha.gif i masz Pomógł

Giluś O tym myślałem ale takie coś mi nie podchodzi wink.gif
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 Wersja Lo-Fi Aktualny czas: 18.06.2025 - 10:47