Ogłoszenie

Aktualnie pracujemy nad:

Zadaniami pobocznymi do modyfikacji Bandyta

Czy wiesz, że...


#1 2010-02-14 18:49:08

 Vayurax

Szef NGT

8211480
Call me!
Skąd: Katowice
Zarejestrowany: 2009-04-04
Posty: 1495
Punktów :   28 
Opis: Szef New Gothic Team
Profesja: Wszechstronny modder
Team: New Gothic Team
: I'm crazy
: And I like myself
WWW

Pisanie funkcji i wykorzystywanie ich

W tym tutorialu opiszę jak pisać funkcje, i jak z nich korzystać, bardzo przydatne, jeśli chcecie cokolwiek rozumieć z moddingu ;)

1.Definiowanie funkcji:
Funkcję definiujemy w ten sposób:

Kod:

func typ_funkcji nazwa_funkcji (Parametr1, Parametr2, Parametr3);

2.Typy funkcji:
Istnieją następujące typy funkcji:

Kod:

C_NPC - Funkcja klasy C_NPC;

Kod:

C_Item - Funkcja klasy C_Item;

Kod:

Int - Liczbowy typ funkcji;

Kod:

String - Tekstowy typ funkcji;

Kod:

Void - Pusty typ funkcji (Nie są wymagane argumenty, funkcja nie musi zwracać wartości [Co nie znaczy, że nie może]);

Kod:

Float - Zmiennopozycyjny typ funkcji;

3.Przykład - funkcja sprawdzająca, czy NPC jest silny:

Kod:

func int NpcJestSilny (var C_NPC self)
{
if (self.attribute[ATR_STRENGTH]>=200)
		 {
		return TRUE;
		 };
};

4.Zastosowanie - Robimy dialog typu permament, w którym dajemy Xardasowi mikstury siły, które on wypija. Jeśli NPC jest już bardzo silny, na ekranie wyświetla się jego stosowny komunikat:

Kod:

if (NpcJestSilny (NONE_100_XARDAS));
{
Print("Xardas jest już koksem, możesz przestać.");
};

Wiem, że przykład beznadziejny, ale nic lepszego nie przyszło mi do głowy, mam nadzieję, że komuś pomogłem tym tutorialem ;p


Umiejętności także możemy zdefiniować dzięki funkcją.
Przykład :

Spoiler:

func void B_TeachMPRegeneration ()
{   
    if (MP_Regen_Level==0)
    {
        MP_Regen_Level=1;
        hero.lp=hero.lp-10;
        Print ("Regeneracja many - poziom pierwszy.");
    }
    else if (MP_Regen_Level==1)
    {
        MP_Regen_Level=2;
        hero.lp=hero.lp-10;
        Print ("Regeneracja many - poziom drugi.");
    }
    else if (MP_Regen_Level==2)
    {
        MP_Regen_Level=3;
        hero.lp=hero.lp-10;
        Print ("Regeneracja many - poziom trzeci.");
    }
    else if (MP_Regen_Level==3)
    {
        MP_Regen_Level=4;
        hero.lp=hero.lp-10;
        Print ("Regeneracja many - poziom czwarty.");
    }
    else if (MP_Regen_Level==4)
    {
        MP_Regen_Level=5;
        hero.lp=hero.lp-10;
        Print ("Regeneracja many - poziom piąty.");
    }
    else
    {
        Print ("Maksymalny poziom regeneracji zdrowia!");
    };
};

Lesterek17-Połączyłem posty.

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
Zbiorniki na zbiorniki retencyjne Villa lEcrin Ciechocinek wellness