Funkcje

Z wiki.skript.pl
Przejdź do nawigacji Przejdź do wyszukiwania

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.

Najprzydatniejsze wbudowane funkcje:
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)

set {_l} to location(10, 100, 52, "world", 90, 90)

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

floor(3.12) = 3

max(numbers) 2.2 Zwraca największą z podanych liczb. max(1, 2, 3, 4, 5) = 5

max(0, 4, 6, 3, 2) = 6

min(numbers) 2.2 Zwraca najmniejszą z podanych liczb. min(0, 2, 5, 6, 6) = 0

min(9, 2, 5, 8, 4) = 2

product(numbers) 2.2 Zwraca iloczyn podanych liczb. product(1, 7, 2, 2) = 28

product(6, 3, 5, 6) = 540

round(number) 2.2 Zwraca zaokrąglona liczbe. round(3.54) = 4

round(3.21) = 3

sqrt(number) 2.2 Zwraca pierwiastek kwadratowy podanej liczby sqrt(4) = 2

sqrt(25) = 5

sqrt(2) = 1.4142

sum(numbers) 2.2 Zwraca sume podanych liczb. sum(1, 5, 6) = 12

sum(1, 1, 1) = 3

world(string) 2.2 Zwraca świat o podanej nazwie set {_flat} to world("flat")

set {_nether} to world("world_nether")

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