Funkcje natywne

Funkcje natywne

> LeekScript samouczek

Porozmawiamy teraz o funkcjach LeekScript!

Funkcje są istotnym aspektem programowania. Pozwalają zapamiętać serię czynności, które możesz wykorzystać ponownie w dowolnym momencie.

Na Leek Wars możemy wyróżnić dwa rodzaje funkcji:

Na razie będziemy mówić tylko o funkcjach natywnych.

Co to jest ?

Funkcje natywne to funkcje, które udostępnia ci LeekScript, to one pozwolą ci uzyskać wiele informacji o walce. To także dzięki nim będziesz mógł kontrolować poczynania swojego pora.

Funkcje można szybko rozpoznać po ich składni:

nazwafunkcji(parametry);

Widzieliście je już w podstawowej AI podczas rozdziału o Edytorze. Jako przypomnienie :

// Cztery bardzo przydatne funkcje var wróg = pobierz najbliższego wroga(); setBroń(WEAPON_PISTOL); ruch w kierunku (wróg); użyjBroń(wróg);

getNearestEnemy, setWeapon, moveToward i useWeapon to cztery funkcje udostępniane przez LeekScript.

Minimalne zrozumienie może pomóc w zrozumieniu przydatności funkcji bez konieczności przeglądania dokumentacji. Nazwy funkcji są zwykle oczywiste i pokazują, do czego są używane.

Powrót

Co to jest „zwrot” funkcji? Nie jest to systematyczne, ale funkcja może zwracać informacje.

Tak jest w tym przykładzie:

var wróg = pobierz najbliższego wroga();

Jeśli zwróciłeś uwagę na poprzedni rozdział, rozumiesz, że tworzona jest zmienna „wroga”. Jednocześnie przypisywana jest mu wartość ze znakiem równości „=”.

Ale co dokładnie jest mu przypisane? W tym miejscu pojawia się funkcja getNearestEnemy. Ta funkcja zwraca identyfikator najbliższego wroga.

Więc kiedy twój por wykona ten kod, wywoła funkcję getNearestEnemy. Spowoduje to zwrócenie identyfikatora najbliższego pora, który zostanie następnie zapisany w zmiennej „enemy”;

Jeśli jesteś ciekawy, możesz dodać debug:

var wróg = pobierz najbliższego wroga(); debugowanie (wróg);

Jeśli uruchomisz ten kod w walce testowej 1 na 1, powinieneś zobaczyć numer 1 lub 0. Identyfikatory porów w walce to nic innego jak liczby. W przypadku walki 4 porów byłyby one ponumerowane od 0 do 3.

Jak widać, debug jest natywną funkcją LeekScript. Być może zastanawiasz się, dlaczego umieściliśmy zmienną „wróg” w nawiasach? Przyjeżdżamy tam.

Ustawienia

Tak nazywa się to, co jest w nawiasach: parametry. Te małe bestie są bardzo przydatne. Akcja, którą wykona funkcja, będzie zależała od jej parametrów.

Aby powrócić do funkcji debug, wyświetla komunikat w dziennikach walki. A ta wiadomość, to Ty wskazujesz jej treść, dzięki parametrowi.

Jeśli podasz wartość 5 w parametrze do debug, komunikat będzie miał wartość „5”. Jeśli przekażesz tekst „Lubię zupę z pora” do debug, wiadomość będzie brzmiała „Lubię zupę z pora”.

Oto, co dzieje się z tymi funkcjami:

var wróg = pobierz najbliższego wroga(); setBroń(WEAPON_PISTOL); ruch w kierunku (wróg); użyjBroń(wróg);

setWeapon sprawia, że twój por jest wyposażony w broń. Aby wskazać mu, w jaką broń musi się wyposażyć, musisz podać identyfikator broni jako parametr. Tutaj jest to „WEAPON_PISTOL”, to stała określająca broń Pistol. Ta stała odpowiada liczbie 37, identyfikatorowi broni. Mógłbyś napisać 37 zamiast WEAPON_PISTOL, miałoby to ten sam efekt. Ale użycie stałej sprawia, że kod jest bardziej zrozumiały i pozwala uniknąć konieczności zapamiętywania identyfikatorów każdej broni/chipu.

moveToward pozwala ci przenieść swój por w kierunku innego. W tym celu funkcja potrzebuje identyfikatora docelowego pora. W tym miejscu wyciągasz zmienną „wroga”. Pamiętaj, że zawiera on teraz identyfikator najbliższego przeciwnika. Przekazanie tej zmiennej do moveToward przekieruje cię do tego paskudnego pora.

Z useWeapon twój por spróbuje strzelić w por. W ten sam sposób mówisz funkcji, że chcesz zastrzelić wroga.

Brak zwrotu lub parametrów

Niektóre funkcje nie zwracają wartości ani jej nie oczekują. Ale nie są bezużyteczne!

Na przykład funkcja pauza. Pozwala zatrzymać walkę podczas jej oglądania. (Nie ma to wpływu na walkę, jest tożsame z ręcznym wciśnięciem przycisku "Pauza" lub przycisku