Funkcje: Różnice pomiędzy wersjami
m (Zła kategoria) |
(kody) |
||
| Linia 10: | Linia 10: | ||
|- | |- | ||
!Wzór | !Wzór | ||
| − | |< | + | |<pre> |
| − | + | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1, Nazwa argumentu 2: Typ argumentu 2...) :: Typ zwracanej wartości: | |
| − | + | kod... | |
| − | + | return wartość | |
| − | + | </pre> | |
|- | |- | ||
!'''Przykład''' | !'''Przykład''' | ||
| − | |< | + | |<pre> |
| − | + | points(p: player) :: number: | |
| + | return {points::%{_p}%} | ||
| + | </pre> | ||
|- | |- | ||
! | ! | ||
| Linia 24: | Linia 26: | ||
|- | |- | ||
!'''Wzór''' | !'''Wzór''' | ||
| − | |< | + | |<pre> |
| − | + | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1, Nazwa argumentu 2: Typ argumentu 2...): | |
| + | kod... | ||
| + | </pre> | ||
|- | |- | ||
!'''Przykład''' | !'''Przykład''' | ||
| − | |< | + | |<pre> |
| − | + | addPoints(p: player, n: number): | |
| + | add {_n} to {points::%{_p}%} | ||
| + | </pre> | ||
|} | |} | ||
| Linia 55: | Linia 61: | ||
!Przykłady / Zwracana wartość | !Przykłady / Zwracana wartość | ||
|- | |- | ||
| − | |location(x, y, z, "Nazwa świata"=event-world, yaw=0, pitch=0 | + | |<code>location(x, y, z, "Nazwa świata"=event-world, yaw=0, pitch=0</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca lokalizacje. | |Zwraca lokalizacje. | ||
| − | |teleport player to location(10, 50, 12) | + | |<code>teleport player to location(10, 50, 12)</code> |
| − | set {_l} to location(10, 100, 52, "world", 90, 90) | + | <code>set {_l} to location(10, 100, 52, "world", 90, 90)</code> |
|- | |- | ||
| − | |mod(number, number) | + | |<code>mod(number, number)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca reszte z dzielenia | |Zwraca reszte z dzielenia | ||
| − | |set {_x} to mod(1, 3) | + | |<code>set {_x} to mod(1, 3)</code> |
|- | |- | ||
| − | |floor(number) | + | |<code>floor(number)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca liczbe zaokrągloną w dół. | |Zwraca liczbe zaokrągloną w dół. | ||
| − | |floor(5.99) = 5 | + | |<code>floor(5.99) = 5</code> |
| − | floor(3.12) = 3 | + | <code>floor(3.12) = 3</code> |
|- | |- | ||
| − | |max(numbers) | + | |<code>max(numbers)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca największą z podanych liczb. | |Zwraca największą z podanych liczb. | ||
| − | |max(1, 2, 3, 4, 5) = 5 | + | |<code>max(1, 2, 3, 4, 5) = 5</code> |
| − | max(0, 4, 6, 3, 2) = 6 | + | <code>max(0, 4, 6, 3, 2) = 6</code> |
|- | |- | ||
| − | |min(numbers) | + | |<code>min(numbers)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca najmniejszą z podanych liczb. | |Zwraca najmniejszą z podanych liczb. | ||
| − | |min(0, 2, 5, 6, 6) = 0 | + | |<code>min(0, 2, 5, 6, 6) = 0</code> |
| − | min(9, 2, 5, 8, 4) = 2 | + | <code>min(9, 2, 5, 8, 4) = 2</code> |
|- | |- | ||
| − | |product(numbers) | + | |<code>product(numbers)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca iloczyn podanych liczb. | |Zwraca iloczyn podanych liczb. | ||
| − | |product(1, 7, 2, 2) = 28 | + | |<code>product(1, 7, 2, 2) = 28</code> |
| − | product(6, 3, 5, 6) = 540 | + | <code>product(6, 3, 5, 6) = 540</code> |
|- | |- | ||
| − | |round(number) | + | |<code>round(number)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca zaokrąglona liczbe. | |Zwraca zaokrąglona liczbe. | ||
| − | |round(3.54) = 4 | + | |<code>round(3.54) = 4</code> |
| − | round(3.21) = 3 | + | <code>round(3.21) = 3</code> |
|- | |- | ||
| − | |sqrt(number) | + | |<code>sqrt(number)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca pierwiastek kwadratowy podanej liczby | |Zwraca pierwiastek kwadratowy podanej liczby | ||
| − | |sqrt(4) = 2 | + | |<code>sqrt(4) = 2</code> |
| − | sqrt(25) = 5 | + | <code>sqrt(25) = 5</code> |
| − | sqrt(2) = 1.4142 | + | <code>sqrt(2) = 1.4142</code> |
|- | |- | ||
| − | |sum(numbers) | + | |<code>sum(numbers)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca sume podanych liczb. | |Zwraca sume podanych liczb. | ||
| − | |sum(1, 5, 6) = 12 | + | |<code>sum(1, 5, 6) = 12</code> |
| − | sum(1, 1, 1) = 3 | + | <code>sum(1, 1, 1) = 3</code> |
|- | |- | ||
| − | |world(string) | + | |<code>world(string)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca świat o podanej nazwie | |Zwraca świat o podanej nazwie | ||
| − | |set {_flat} to world("flat") | + | |<code>set {_flat} to world("flat")</code> |
| − | set {_nether} to world("world_nether") | + | <code>set {_nether} to world("world_nether")</code> |
|- | |- | ||
| − | |date(year, month, day, hour=0, minute=0, second=0) | + | |<code>date(year, month, day, hour=0, minute=0, second=0)</code> |
| − | |2.2 | + | |'''2.2''' |
|Zwraca stworzoną date z podanych argumentów | |Zwraca stworzoną date z podanych argumentów | ||
| − | |date(2014, 10, 1) # 0:00, 1st October 2014 | + | |<code>date(2014, 10, 1) # 0:00, 1st October 2014</code> |
|} | |} | ||
[[Kategoria:Skript]] | [[Kategoria:Skript]] | ||
Wersja z 21:33, 28 paź 2019
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, Nazwa argumentu 2: Typ argumentu 2...) :: Typ zwracanej wartości: kod... return wartość |
| Przykład | points(p: player) :: number:
return {points::%{_p}%}
|
| Funkcja wykonująca kod | |
| Wzór | Nazwa funkcji(Nazwa argumentu 1: Typ argumentu 1, Nazwa argumentu 2: Typ argumentu 2...):
kod...
|
| Przykład | addPoints(p: player, n: number):
add {_n} to {points::%{_p}%}
|
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
|