func void B_GivePlayerXP (var int add_xp)//Funkcja ze (vr int add_xp) którą dodajemy hero doświadczenie w dialogach itd
{
if (hero.level == 0)//jeśli level gracza jest równy 0(hero.level znaczy aktualny poziom gracza)
{
hero.exp_next = 500;//wymagane doświadczenie do nasępnego poziomu równa się pięćset(hero.exp_next to aktualne wymagane doświadczenie)
};
//----------------------------------------------------------------------------
hero.exp = hero.exp + add_xp;// doświadczenie gracza jest równe doświadczeniu gracza + dodane
// czyli np mamy 100 expa i dodajemu graczowi 20 czyli: hero.exp = 100 + 20;
// a robi się to tak: B_GivePlayerXP (20); tak dodjemy hero expa
//----------------------------------------------------------------------------
var string concatText;// zmienna tekstowa
concatText = PRINT_XPGained;//że ci wyświetli napis "Doświadczenie"
concatText = ConcatStrings (concatText, IntToString(add_xp));// że ci się obok "Doswiadczenie" pojawi liczba ile tego doświadczenie amienia się tak zmienną liczbową na teksową w celu wyświetlenia liczby
PrintScreen (concatText, -1, YPOS_XPGained, FONT_ScreenSmall, 2);// a to właśnie wyświetla zmienną z powyżej
//----------------------------------------------------------------------------
if ( hero.exp >= hero.exp_next ) // ( XP > (500*((hero.level+2)/2)*(hero.level+1)) )-To orginalne objaśnienie. ale ogólnie chodzi o to że jeśli doświadczenie gracza jest większe niż doświadczenie do nastepnego lvl
{
hero.level = hero.level+1;//to zmieni poziom gracza na lvl gracza dodać 1
hero.exp_next = hero.exp_next +((hero.level+1)*500);// doświadczenie gracza do następnego poziomu równa się aktualne doświadczenie gracza do następnego poziomu dodać aktualny poziom gracza plus 1 razy 500
// np mamy 100 do następnego poziomu i lvl 1 to zmieni nam na 6000 do następnego levela
hero.attribute[ATR_HITPOINTS_MAX] = hero.attribute[ATR_HITPOINTS_MAX] + HP_PER_LEVEL;// dodaje nam maxHP
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_PER_LEVEL;// i HP
hero.LP = hero.LP + LP_PER_LEVEL;// na tej samej zasadzie co wyżej z expem dodaje graczowi punkty nauki
PrintScreen (PRINT_LevelUp, -1, YPOS_LevelUp, FONT_Screen, 2); // wyświetla napis że następny poziom
Snd_Play ("LevelUp");// odtwarza ten dźwięk co się odtwarza przy nowym poziomie
};
B_Checklog ();//odpala funkcję B_Checklog
};
Lekko ci to objaśniłem wszystko w komentarzu. śmiało możesz wkleić do notepada to ci fajnie wszystko pokoloruje i będziesz mial łatwiej czytać.