> LeekScript samouczek
W programie najważniejsza jest dobra struktura kodu. Do tego nauczyłeś się używać komentarzy i to wszystko... Ale szybko to zmienimy za pomocą funkcji, jednego z najważniejszych pojęć w programowaniu, które szybko zrozumiesz. Spotkałeś się już z nimi, a nawet użyłeś ich w rozdziale o Funkcje natywne.
Funkcja to ciąg instrukcji, nic więcej. Więc koniec z powielaniem kodu, po prostu wywołaj funkcję, która wykona te instrukcje. Aby funkcje były bardziej uniwersalne, możesz nadać im parametry, takie jak por, w który chcesz trafić, liczbę pozostałych PM na tę turę itp. Dodatkowo funkcja może zwrócić wartość taką jak tablica ze wszystkimi polami dostępnymi dla naszego pora. Oto prototyp, czyli sygnatura funkcji:
NomDeLaFunction ( parametr1, parametr2, ..., parametrN ): Powrót
Prototyp to opis funkcji: jej nazwa, jej zwrot, jeśli istnieje, oraz jej parametry, które również są opcjonalne. Definicja funkcji to zbiór instrukcji w niej zawartych. Wszystkie prototypy natywnych funkcji są dostępne w dokumentacji. Po lewej stronie, na liście funkcji posortowanych tematycznie, jeśli wybierzemy „UseWeapon” w kategorii Broń, znajdziemy to: !UseWeapon-Mod
Podczas wywoływania funkcji program „główny” zatrzymuje się, aby wykonać program zapisany w funkcji. Następnie na końcu tej funkcji program „główny” wznawia się w miejscu, w którym został przerwany.
Mówimy również o deklaracji dla funkcji. Rzeczywiście LS oferuje natywne funkcje gotowe do użycia, takie jak „getNearestEnemy / useWeapon /…”. Ale istnieje możliwość samodzielnego stworzenia. Oto składnia do przyjęcia:
funkcja NazwaFunkcji ( parametr1, parametr2, ..., parametrN ) { /* Instrukcje */ }
Nie da się zrobić wszystkiego w funkcji: deklaracja nowej funkcji, jak również deklaracja zmiennej globalnej są zabronione!
Mówiąc ściślej, stworzymy bardzo prostą funkcję, której celem będzie zbliżenie się do środka mapy, uruchomienie żetonu tarczy i żetonu leczenia. Oto jego prototyp: (Zauważ, że prototypu nie należy umieszczać w kodzie, z wyjątkiem komentarza wyjaśniającego twoją funkcję)
ArmorAndCare()
Nic nie może być prostsze, nasza funkcja nie przyjmuje żadnych parametrów i nic nie zwraca!
Nadal brakuje tutaj definicji:
funkcja ArmorAndCare(){ przesuń w stronę komórki(306); useChip(CHIP_ARMOR, getEntity()); useChip(CHIP_CURE, getEntity()); }
Aby wywołać funkcję, to tak jak inne:
ArmorAndCare(); // Zbliż się do środka mapy, a następnie uruchom ARMOR i CURE
Ważna uwaga, funkcja nie może uzyskiwać dostępu do zmiennych zewnętrznych poza zmiennymi globalnymi. Musisz sobie wyobrazić, że kiedy wywołujesz funkcję, „żyje” ona we własnym świecie i jedyne, do czego ma dostęp, to zmienne globalne i inne funkcje.
Aby zilustrować system parametrów i zwrotów funkcji, posłużmy się następującym przykładem:
// Prototyp: getCellDistanceTo(leek): (Number) Odległość między moim porem a porem podanym w parametrze funkcja getCellDistanceTo(por){ return getCellDistance(getCell(), getCell(por)); }
Zgodnie z prototypem funkcja przyjmuje por jako parametr (jego identyfikator) i zwraca odległość między nim a własnym porem. Lista parametrów jest (prawie) nieskończona, wystarczy oddzielić każdy parametr przecinkiem. Zwrot funkcji odbywa się za pomocą słowa kluczowego „return”. W tym przykładzie funkcja „getCellDistance” zwraca liczbę, którą zwracamy bezpośrednio. Kiedy funkcja napotka „powrót”, zatrzymuje się i wznawia w punkcie wywołania funkcji. Dla zainteresowanych zasada zmniejszania liczby parametrów funkcji nosi nazwę „curr
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.