112
edycji
Zmiany
brak opisu edycji
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 wbudowane funkcjekilkanaście wbudowanych matematycznych funkcji, ale możemy też tworzyć swoje funkcjejednak gracz jest w stanie stworzyć funkcję zwracającą wartość lub jedynie wykonującą kod.<br>Funkcje mogą być przechowywane w każdym pliku skryptowym, które zwracają jakąś wartość albo takieniezależnie od jego położenia będzie on działał w każdym pliku. ==Budowa==Pisanie funkcji należy rozpocząć od napisania <code>function <nazwa funkcji></code>, które nie zwracają żadnej wartościnastępnie zdefiniowania nazw argumentów oraz ich typów.
{| class="wikitable"
!
!Funkcja zwracająca wartość
|-
!Wzór
|<codepre>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:</code> <code> kod... return wartość</codepre>|-!'''Przykład'''|<codepre>add(a: integer = 5, b: integer) :: number: return wartośća + b</codepre>
|-
!
!Funkcja wykonująca kod
|-
|-
|}
W funkcjach można wykorzystywać jedynie zmienne lokalne (rozpoczynają się na '''_''') <code>{_p}, {_max}</code>. Się biorą od nazw argumentów wypisanych na początku: <pre>function Skript(gracz: player):
send "Ty napewno piszesz skrypty" to {_gracz}</pre>
===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. <code>function Prawda(gracz: player) :: '''boolean''':</code>
Wartość można zwrócić używając ''return <wartość>'', np. boolean <code>return true</code>
<pre>function Prawda(gracz: player) :: boolean:
if {_gracz}'s inventory contains 64 diamonds:
return true
else:
return false</pre>
==Wybrane funkcje==
Liste wbudowanych wszystkich funkcji znajdziecie [https://skriptlang.github.io/Skript/functions.html tutaj.]
{| class="wikitable"
!Przykłady / Zwracana wartość
|-
|<code>location(x, y, z, "Nazwa świata"=event-world, yaw=0, pitch=0</code>|'''2.2'''
|Zwraca lokalizacje.
|<code>teleport player to location(10, 50, 12)</code>
<code>set {_l} to location(10, 100, 52, "world", 90, 90)</code>|-|<code>mod(number, number)</code>|'''2.2'''|Zwraca reszte z dzielenia|<code>set {_x} to mod(1, 3)</code>
|-
|<code>floor(number)</code>|'''2.2'''
|Zwraca liczbe zaokrągloną w dół.
|<code>floor(5.99) = 5</code><code>floor(3.12) = 3</code>
|-
|<code>max(numbers)</code>|'''2.2'''
|Zwraca największą z podanych liczb.
|<code>max(1, 2, 3, 4, 5) = 5</code><code>max(0, 4, 6, 3, 2) = 6</code>
|-
|<code>min(numbers)</code>|'''2.2'''
|Zwraca najmniejszą z podanych liczb.
|<code>min(0, 2, 5, 6, 6) = 0</code><code>min(9, 2, 5, 8, 4) = 2</code>
|-
|<code>product(numbers)</code>|'''2.2'''
|Zwraca iloczyn podanych liczb.
|<code>product(1, 7, 2, 2) = 28</code><code>product(6, 3, 5, 6) = 540</code>
|-
|<code>round(number)</code>|'''2.2'''
|Zwraca zaokrąglona liczbe.
|<code>round(3.54) = 4</code><code>round(3.21) = 3 </code>
|-
|<code>sqrt(number)</code>|'''2.2'''
|Zwraca pierwiastek kwadratowy podanej liczby
|<code>sqrt(4) = 2</code><code>sqrt(25) = 5</code>
<code>sqrt(2) = 1.4142 </code>
|-
|<code>sum(numbers)</code>|'''2.2'''
|Zwraca sume podanych liczb.
|<code>sum(1, 5, 6) = 12</code><code>sum(1, 1, 1) = 3</code>
|-
|<code>world(string)</code>|'''2.2'''
|Zwraca świat o podanej nazwie
|<code>set {_flat} to world("flat")</code><code>set {_nether} to world("world_nether")</code>
|-
|<code>date(year, month, day, hour=0, minute=0, second=0)</code>|'''2.2'''
|Zwraca stworzoną date z podanych argumentów
|<code>date(2014, 10, 1) # 0:00, 1st October 2014 </code>
|}
[[Kategoria:Skript]]