Funkcja: Różnice pomiędzy wersjami
| [wersja nieprzejrzana] | [wersja nieprzejrzana] |
d Robot przeniósł strony z fr:Fonctions do fr:Fonction |
dNie podano opisu zmian |
||
| Linia 83: | Linia 83: | ||
[[ja:関数]] | [[ja:関数]] | ||
[[ru:Функция]] | [[ru:Функция]] | ||
[[zh: | [[zh:函数(Java版)]] | ||
Wersja z 04:38, 13 lut 2020
| Ten element dotyczy wyłącznie Java Edition. |
Funkcja − opcja w grze pozwalająca na uruchamianie zbiorów komend poprzez pliki tekstowe z rozszerzeniem .mcfunction.
Użycie
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

/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
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
- Pozwala graczowi na jednorazowe wywołanie funkcji.
- Komenda może zostać uruchomiona przez byt lub blok poleceń poprzez
/function. - Opcjonalne argumenty
jeśliijeśli niebędą uruchamiane wyłącznie gdy zostanie podanyselektor. - Użycie:
/function
- 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
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
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
| 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
Poniżej znajduje się lista przypisów na tej stronie.