Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TUT] System Doświadczenia/Expa


ClassAxion

Rekomendowane odpowiedzi

Opublikowano

Witam,

Zaprezentuję wam mały lecz bardzo przydatny skrypcik "Doświadczenia", a także pokaże wam jak go dobrze skonfigurować pod naszą grę. przejdźmy od razu do rzeczy.

 

1) Skrypt sprawdza czy dana ilość doświadczenia jest większa lub równa Ilości doświadczenia potrzebnej do następnego poziomu,

1.1) Jeśli tak jest, ilość doświadczenia jest ODEJMOWANA od maksymalnej (exp - exp_max),

1.2) Poziom gracza wzrasta o 1,

1.3) lość expa do następnego poziomu jest mnożona o np. 1.8 (Nie o 0.8!),

2) Jeśli nie skrypt kończy swoją pracę.

 

Przyjmijmy że w zmiennej $użytkownik są zapisane wszystkie dane gracza (id, exp, exp_max, lvl)

if($uzytkownik['exp'] >= $uzytkownik['exp_max']){
 $uzytkownik['exp'] = $uzytkownik['exp'] - $uzytkownik['exp_max'];
 $uzytkownik['exp_max'] = $uzytkownik['exp_max'] * 1.8;
 $uzytkownik['lvl']++;
 @mysql_query("update gracze set exp = "'.$uzytkownik['exp'].'", exp_max = "'.$uzytkownik['exp_max'].'", lvl = lvl + 1 where id = ".$uzytkownik['id']);
}

1. If odpowiada za sprawdzenie, czy ilość doświadczenia jest równa lub większa od ilości max.

2. Kolejne 3 linijki odpowiadają za update zmiennych.

3. Przedostatnia linijka odpowiada za wprowadzanie tego wszystkiego do bazy.

 

Jeśli chcemy zwiększyć ilość expa do następnego poziomu to musimy zedytować 3 linijkę, a dokładniej "1.8".

Możemy także wyrzucić linijkę 2 wtedy nasz exp zostanie bez zmian, lecz w takim wypadku polecam zwiększyć ilość dośw. do następnego poziomu tak do około 2.5 aby nie było za łatwo ;)

 

Jeśli w naszej grze może się zdarzyć coś takiego, że gracz zdobędzie 2 lvl'e na raz to polecam zmienić 1 linijkę na:

while($uzytkownik['exp'] > $uzytkownik['exp_max']){

 

I to już koniec :)

Pozdrawiam!

Opublikowano

To ma być system doświadczenia? Chyba sobie żartujesz mocno. Może jakaś tabela ,z której jest odczytywane jaki exp teraz nam potrzeba? Uwierz mi ,że w żadnej normalnej grze nie ma ,że exp wzrasta ciągle * 1.8

Opublikowano

To ma być system doświadczenia? Chyba sobie żartujesz mocno. Może jakaś tabela ,z której jest odczytywane jaki exp teraz nam potrzeba? Uwierz mi ,że w żadnej normalnej grze nie ma ,że exp wzrasta ciągle * 1.8

Fakt!!! RACJA!!! Ten poradnik jest dla InnoGames i innych firm które tworzą profesjonalne, fascynujące gry!

 

System do dupy, lecz wolę żeby w pseudo-amatorskich silnikach pojawiło się to, niż 10000 linijek kodu... :[

Opublikowano

ClassAxion, a taki przykład :

 

Mam 99pkt doświadczenia a do next lvl potrzeba 100pkt dośw, czyli brakuje mi 1pkt....

 

 

" 1.1) Jeśli tak jest, ilość doświadczenia jest zerowana, "

 

A co jak bym zdobył wtedy np 3pkt dośw ?? Trace wtedy 2pkt doświadczenia?

  • 4 tygodnie później...
Opublikowano

O, dzięki. Właśnie myślałem nad levelupowaniem :D Chciałem napisać taki poradnik, ale wyprzedziłeś mnie. Dzięki ;) Spoczko poradnik :D

iz857a.png
Jak odpowiadasz mi na posta użyj proszę @tsdek - szybciej ogarnę.

Moje poradniki(ANDROID):

 

 

Moje poradniki(Programowanie stron):

 

 


 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...