Chcesz pomóc, ale nie wiesz, od czego zacząć? Sprawdź listę artykułów do rozszerzenia lub zilustrowania czy potrzebnych zmian.

Funkcja

Z Minecraft Wiki Polska
Skocz do: nawigacja, szukaj
Java Edition.png

Funkcja − opcja w grze pozwalająca na uruchamianie zbiorów komend poprzez pliki tekstowe z rozszerzeniem .mcfunction.

Użycie[edytuj | edytuj kod]

Do użycia funkcji potrzebny jest plik tekstowy umieszczony w katalogu .minecraft/saves/[nazwa świata]/data/functions. Pliki funkcji mogą być także umieszczane w podfolderach katalogu /functions. W trybie wieloosobowym funkcje muszą być zapisane w każdym świecie, w którym mają być użyte.

Dla przykładu uruchamianie funkcji custom:przykład/test będzie odpowiadać lokalizacji pliku functions/custom/przykład/test.mcfunction. Jeśli przestrzeń nazw została pominięta przy próbie wywołania funkcji, domyślną przestrzenią nazw zostanie minecraft:. Zalecane jes użycie własnej przestrzeni nazw bez modyfikowania domyślnej w celu zabezpieczenia przed błędami gry.[1]

Funkcje jako pliki tekstowe mogą być łatwo modyfikowane i nawet w większych ilościach są mniej podatne na powodowanie przeciążeń i błędów niż bloki poleceń. Po modyfikacji pliku funkcji należy użyć komendy /reload, by załadować do gry nową zawartość pliku z dysku bez potrzeby ponownego uruchamiania świata.

W plikach funkcji zalecane jest używanie systemu kodowania UTF-8 (bez BOM-u), by zapobiec problemom.

Po pomyślnym załadowaniu funkcji na czacie wyświetli się wiadomość: Wykonano [ilość] komend(y) z funkcji '[folder pliku funkcji]'.

Składnia funkcji[edytuj | edytuj kod]

Testowanie systemu funkcji. W tej funkcji zostały użyte 3 komendy /tellraw i jedna /give.

W pliku .mcfunction na jedną komendę przeznaczony jest jeden wiersz tekstu. Przed komendą nie używa się slasha (/). Użytkownicy mogą dodawać komentarze do pliku funkcji, poprzedzając je znakiem #.

Domyślnie pojedyncze komendy w funkcjach nie mogą zawierać więcej niż 65 536 znaków. Wartość ta może być jednak zmieniana dzięki komendzie i parametrowi /gamerule maxCommandChainLength. Wszelkie komendy z ilością znaków powyżej nadanej wartości będą ignorowane podczas wykonywania funkcji.

Uruchamianie funkcji[edytuj | edytuj kod]

Funkcje uruchomią wszystkie zawarte w nich komendy podczas trwania jednego ticku. Jeśli w danej funkcji znajduje się komenda wywołująca inną funkcję, wszystkie zostaną wywołane w ciągu tego samego czasu.

Zmiany pozycji bytów nie będą oddziaływać na komendy zapisane w funkcji przed następnym jej powtórzeniem, jeśli do zapisu pozycji użyto tyld ~. Komenda /execute omija to działanie.

Na przykład:

tp @s ~ ~5 ~
setblock ~ ~-1 ~ emerald_block
execute @s ~ ~ ~ setblock ~ ~-1 ~ diamond_block

Wywołana funkcja przeniesie gracza 5 bloków wyżej, umieści pod poprzednim miejscem jego pobytu blok szmaragdu, a na pozycji, na której znajduje się obecnie, umieści blok diamentu.

Poniżej znajdują się metody wywołania funkcji w grze:

Komendy[edytuj | edytuj kod]

/function
  • Pozwala graczowi na jednorazowe wywołanie funkcji.
  • Komenda może zostać uruchomiona przez byt lub blok poleceń poprzez /function.
  • Opcjonalne argumenty jeśli i jeśli nie będą uruchamiane wyłącznie gdy zostanie podany selektor.
  • Użycie: /function
/gamerule gameLoopFunction* Uruchamia funkcję w każdym ticku.
  • Komendy w funkcji są uruchamiane przez serwer.
    • Koordynaty z jakich "serwer" wykonuje funkcje to (0, 0, 0).
  • Jeśli potrzebne jest zapętlenie wielu funkcji, możliwe jest wstawienie komend aktywujących inne funkcje do konkretnego pliku funkcji.
  • Użycie: /gamerule gameLoopFunction <przestrzeń nazw:ścieżka/pliku/funkcji>
  • Do zatrzymania zapętlenia funkcji należy użyć argumentu z nieistniejącą funkcją lub pozostawić argument pusty: /gamerule gameLoopFunction - (brak wartości jest domyślny).

Postępy[edytuj | edytuj kod]

Postępy mogą aktywować funkcje po ich wykonaniu. Komendy w funkcji są uruchamiane przez ukończenie poprzez gracza danego postępu.

Działanie po wywołaniu funkcji dzięki ukończonemu postępowi jest określane przez pliki JSON używające wzoru

{
    "działanie": {
        "funkcja": "przestrzeń nazw:ścieżka/do/pliku/funkcji"
    }
}

Tagi[edytuj | edytuj kod]

Funkcje mogą być grupowane poprzez użycie tagów w paczkach zasobów. Wywołanie konkretnego tagu komendą /function #(przestrzeń nazw):tag uruchomi wszystkie funkcje z wpisanym danym tagiem.

Historia[edytuj | edytuj kod]

Pełna wersja
1.12 -pre1 Dodano funkcje.
-pre3 Komendy nie mogą już rozpoczynać się znakiem / (slashem).
Komentarze mogą teraz być dodawane tylko poprzez znak #; użycie // nie jest już obsługiwane.
-pre4 Dodano nowe argumenty do komendy /function: [jeśli tak|jeśli nie] [selektor]
-pre6 W komendach funkcje, gdy warunek nie może zostać spełniony, są rozważane pod względem możliwości powodzenia.
1.13 17w43a Własne funkcje mogą być dodawane do paczek zasobów.
17w45a Funkcje są teraz w całości analizowane i buforowane przy ładowaniu.
17w49b Funkcje mogą być teraz tagowane.
Teraz funkcje tagowane w minecraft:tick uruchamiają się w każdym ticku na początku jego trwania.

Przypisy

Promotional Content