Funkcje: Różnice pomiędzy wersjami
(kody) |
|||
| Linia 11: | Linia 11: | ||
!Wzór | !Wzór | ||
|<pre> | |<pre> | ||
| − | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1, Nazwa argumentu 2: Typ argumentu 2...) :: Typ zwracanej wartości: | + | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1 [<= Domyślna wartość argumentu 1>], Nazwa argumentu 2: Typ argumentu 2 [<= Domyślna wartość argumentu 2>]...) :: Typ zwracanej wartości: |
kod... | kod... | ||
return wartość | return wartość | ||
| Linia 18: | Linia 18: | ||
!'''Przykład''' | !'''Przykład''' | ||
|<pre> | |<pre> | ||
| − | + | add(a: integer = 5, b: integer) :: number: | |
| − | return | + | return a + b |
</pre> | </pre> | ||
|- | |- | ||
| Linia 27: | Linia 27: | ||
!'''Wzór''' | !'''Wzór''' | ||
|<pre> | |<pre> | ||
| − | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1, Nazwa argumentu 2: Typ argumentu 2...): | + | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1 [<= Domyślna wartość argumentu 1>], Nazwa argumentu 2: Typ argumentu 2 [<= Domyślna wartość argumentu 2>]...): |
kod... | kod... | ||
</pre> | </pre> | ||
| Linia 33: | Linia 33: | ||
!'''Przykład''' | !'''Przykład''' | ||
|<pre> | |<pre> | ||
| − | + | kill(e: entity): | |
| − | + | kill {_e} | |
</pre> | </pre> | ||
|} | |} | ||
Aktualna wersja na dzień 15:55, 26 sie 2020
Funkcje zostały dodane do Skripta w wersji deweloperskiej 2.2, a służą przede wszystkim do skrócenia kodu oraz jego wygładzenia. Skript posiada kilkanaście wbudowanych matematycznych funkcji, jednak gracz jest w stanie stworzyć funkcję zwracającą wartość lub jedynie wykonującą kod.
Funkcje mogą być przechowywane w każdym pliku skryptowym, niezależnie od jego położenia będzie on działał w każdym pliku.
Budowa
Pisanie funkcji należy rozpocząć od napisania function <nazwa funkcji>, następnie zdefiniowania nazw argumentów oraz ich typów.
| Funkcja zwracająca wartość | |
|---|---|
| Wzór | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1 [<= Domyślna wartość argumentu 1>], Nazwa argumentu 2: Typ argumentu 2 [<= Domyślna wartość argumentu 2>]...) :: Typ zwracanej wartości: kod... return wartość |
| Przykład | add(a: integer = 5, b: integer) :: number:
return a + b
|
| Funkcja wykonująca kod | |
| Wzór | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1 [<= Domyślna wartość argumentu 1>], Nazwa argumentu 2: Typ argumentu 2 [<= Domyślna wartość argumentu 2>]...):
kod...
|
| Przykład | kill(e: entity):
kill {_e}
|
W funkcjach można wykorzystywać jedynie zmienne lokalne (rozpoczynają się na _) {_p}, {_max}. Się biorą od nazw argumentów wypisanych na początku:
function Skript(gracz: player):
send "Ty napewno piszesz skrypty" to {_gracz}
Funkcje zwracające wartość
W tej funkcji oprócz zdefiniowania nazw i typów argumentów dodatkowo należy zdefiniować typ zwracanej wartości, np. function Prawda(gracz: player) :: boolean:
Wartość można zwrócić używając return <wartość>, np. boolean return true
function Prawda(gracz: player) :: boolean:
if {_gracz}'s inventory contains 64 diamonds:
return true
else:
return false
Wybrane funkcje
Liste wbudowanych wszystkich funkcji znajdziecie tutaj.
| Nazwa i argumenty | Wydanie skripta | Opis | Przykłady / Zwracana wartość |
|---|---|---|---|
location(x, y, z, "Nazwa świata"=event-world, yaw=0, pitch=0
|
2.2 | Zwraca lokalizacje. | teleport player to location(10, 50, 12)
|
mod(number, number)
|
2.2 | Zwraca reszte z dzielenia | set {_x} to mod(1, 3)
|
floor(number)
|
2.2 | Zwraca liczbe zaokrągloną w dół. | floor(5.99) = 5
|
max(numbers)
|
2.2 | Zwraca największą z podanych liczb. | max(1, 2, 3, 4, 5) = 5
|
min(numbers)
|
2.2 | Zwraca najmniejszą z podanych liczb. | min(0, 2, 5, 6, 6) = 0
|
product(numbers)
|
2.2 | Zwraca iloczyn podanych liczb. | product(1, 7, 2, 2) = 28
|
round(number)
|
2.2 | Zwraca zaokrąglona liczbe. | round(3.54) = 4
|
sqrt(number)
|
2.2 | Zwraca pierwiastek kwadratowy podanej liczby | sqrt(4) = 2
|
sum(numbers)
|
2.2 | Zwraca sume podanych liczb. | sum(1, 5, 6) = 12
|
world(string)
|
2.2 | Zwraca świat o podanej nazwie | set {_flat} to world("flat")
|
date(year, month, day, hour=0, minute=0, second=0)
|
2.2 | Zwraca stworzoną date z podanych argumentów | date(2014, 10, 1) # 0:00, 1st October 2014
|