Skocz do zawartości

Zablokowane Problem z expem i levelem


Paqoo

Rekomendowane odpowiedzi

Tworzę gierkę Rpg.

Gdy padam odejmuje mi połowę expa. Chcę żeby pokazywało właściwy poziom!

Jeśli padnę musi podzielić na pół exp_wymagany i exp, który mam. Do tego ma nadać lvl zależny od ilości expa. Ale coś nie działa! Próbowałem z else if, switchem i jakoś mi nie wychodzi.. :blink: Oczywiście umieszczam to w step hero..

 

Macie pomysły?

Odnośnik do komentarza
Udostępnij na innych stronach

Ja chyba zrozumiałem, czy chodzi ci o taki system expa jak w tibi? jak umrzesz to zabiera ci np. 30% expa i tobie chodzi, że jak padniesz, i bedziesz miec np. 20% to ci zabierze do 30% expa, ale nie bedziesz miec mniejszego levela, cos w tym stylu...

Odnośnik do komentarza
Udostępnij na innych stronach

Połowę expa z całości.

 

Wcześniej kombinowałem coś takiego:

switch (exp)
{
    case (exp < 99):
    level=1 and max_hlt=30 and max_mp=5;
    break;
    
    case (exp > 99 and exp< 199):
    level=2 and max_hlt=45 and max_mp=10;
    break;
    
    case (exp > 199 and exp< 399):
    level=3 and max_hlt=60 and max_mp=15;
    break;
    
    case (exp > 399 and exp< 799):
    level=4 and max_hlt=75 and max_mp=20;
    break;
    
    case (exp > 799 and exp< 1599):
    level=5 and max_hlt=90 and max_mp=25;
    break;
    
    case (exp > 1599 and exp< 3199):
    level=6 and max_hlt=105 and max_mp=30;
    break;
    
    case (exp > 3199 and exp< 6399):
    level=7 and max_hlt=120 and max_mp=35;
    break;
    
    case (exp > 6399 and exp< 12799):
    level=8 and max_hlt=135 and max_mp=40;
    break;
    
    case (exp > 12799 and exp< 25599):
    level=9 and max_hlt=150 and max_mp=45;
    break;
    
    case (exp > 25599 and exp< 51199):
    level=10 and max_hlt=165 and max_mp=50;
    break;
    
    case (exp > 51199):
    level=10 and max_hlt=165 and max_mp=50 and show_message('Osiągnąłeś maksymalny poziom!');
    break;
}

 

Ale nie wyszło..

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

skrypt: ustaw_level(ex)

GML
var ex;

ex = argument0;

 

 

if (ex>1500)

{

return 4;

}

else if (ex>1000)

{

return 3;

}

else if (ex>500)

{

return 2;

}

else

{

return 1;

}

 

wywołujemy tak

GML
level_postaci = ustaw_level(exp_postaci);

 

wywołujesz, gdy dodasz exp, lub gdy odejmiesz :)

 

 

czyli jak umrzesz to np.

GML
exp_postaci = exp_postaci/2;

level_postaci = ustaw_level(exp_postaci);

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Nie. Chwilkę pomyślałem :)

Pamiętaj, programowanie to nic innego jak "jeżeli ... to zrób ... inaczej jeżeli ... to zrób ... inaczej zrób ..." (if ... then ... else if ... then ... else ...) :P

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