Skocz do zawartości

Zablokowane Problem z wybijaniem leveli


MB22

Rekomendowane odpowiedzi

Mam problem gdy mam 1 lvl i rozwalam potworka to postac przechodzi na 2 lvl ale gdy potem rozwale pare potworkow to nie wybija 3 lvl tylko expierience sie cofa do 0

 

Step

GML
if (global.experience >= global.maxexp)

{

global.level = 2;

global.maxexp = 200;

global.experience = 0;

global.hp = 200;

global.maxhp = 200;

global.mana = 100;

global.maxmana = 100;

}

 

if ((global.level = 2) and (global.experience >= global.maxexp))

{

global.level = 3;

global.maxexp = 400;

global.experience = 0;

global.hp = 300;

global.maxhp = 300;

global.mana = 150;

global.maxmana = 150;

}

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Bo masz dwa razy ten sam warunek:

GML
global.experience >= global.maxexp
zauważ, że on jest spełniony w obu przypadkach.

 

btw. jeśli za kazdym razem zmieniasz wszystko proporcjonalnie:

 

GML
if (global.experience >= global.maxexp) {

global.level += 1;

global.experience = global.experience - global.maxexp; // punkty ponad level przechodzą, np 155/150 exp zostawi 5

global.maxexp += 100;

global.hp += 100;

global.maxhp += 100;

global.mana += 50;

global.maxmana += 50;

}

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if (global.experience > global.maxexp)

{

global.level+=1; //zwiększamy level

global.maxexp*=2; //Do następnego levela potrzeba będzie 2 razy więcej expa. Możesz mnożyć, dodawać. Jak chcesz.

global.experience=0;

global.maxhp+=100; //Dodajemy 100 maxhp. Również możesz wymnożyć zamiast dodać jak ci to odpowiada

global.hp=global.maxhp; //Uzupełniamy hp do maksimum

global.maxmana+=50;

global.mana=global.maxmana;

}

 

Byleś mi tego nie kopiował bezmyślnie tylko przeanalizował.

Tobie nie działało bo ci zawsze wchodziło do pierwszego warunku, zerowało expy i wtedy drugi warunek nigdy nie mógł być prawdziwy więc nie wbijało na 3 level.

Odnośnik do komentarza
Udostępnij na innych stronach

Po wpisaniu takiego kodu

 

GML
if ((global.level < 10) and (global.experience >= global.maxexp))

{

global.level+=1;

global.maxexp*=2;

global.experience=0;

global.maxhp+=100;

global.hp=global.maxhp;

global.maxmana+=50;

global.mana=global.maxmana;

}

else if ((global.level == 10) and (global.experience >= global.maxexp))

{

global.level=11;

global.maxexp =50000;

global.experience=0;

global.maxhp+=100;

global.hp=global.maxhp;

global.maxmana+=50;

global.mana=global.maxmana;

}

else

{

global.level+=1

global.maxexp+=50000;

global.experience=0;

global.maxhp+=100;

global.hp=global.maxhp;

global.maxmana+=50;

global.mana=global.maxmana;

 

}

 

level caly czas rosnie (bez rozwalania potworow)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Kod który podałem, zamiast global.maxexp miałeś wpisać - zamienić jedną linijkę.

 

GML
if (global.experience >= global.maxexp) {

global.level += 1;

global.experience = global.experience - global.maxexp; // punkty ponad level przechodzą, np 155/150 exp zostawi 5

//global.maxexp += 100;

if (global.level < 11) {

global.maxexp *= 2;

} else if (global.level == 11) {

global.maxexp = 50000;

} else {

global.maxexp += 50000;

}

global.hp += 100;

global.maxhp += 100;

global.mana += 50;

global.maxmana += 50;

}

Odnośnik do komentarza
Udostępnij na innych stronach

Działa. Dzieki. Mam jeszcze tylko jedno pytanie.

Jak zrobić żeby po wybiciu 20 lvl'a nie mozna bylo wybic kolejnego lvl'a.

I czy da sie zrobic ze po wybiciu 20 lvl'a znika napis

Draw

GML
draw_text(10,24,"Doświadczenie:"+string(global.experience)+"/"+string(global.maxexp));
Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...