Funkcja: Różnice pomiędzy wersjami
| [wersja nieprzejrzana] | [wersja przejrzana] |
dNie podano opisu zmian |
d nieprawidłowy link |
||
| (Nie pokazano 4 wersji utworzonych przez 4 użytkowników) | |||
| Linia 1: | Linia 1: | ||
{{ekskluzywne|java}} | {{ekskluzywne|java}} | ||
'''Funkcja''' − opcja w grze pozwalająca na uruchamianie zbiorów [[komendy|komend]] poprzez pliki tekstowe z rozszerzeniem <code>.mcfunction</code>. | '''Funkcja''' − opcja w grze pozwalająca na uruchamianie zbiorów [[komendy|komend]] poprzez pliki tekstowe z rozszerzeniem <code>.mcfunction</code>. | ||
== Użycie == | == Użycie == | ||
| Linia 8: | Linia 8: | ||
Dla przykładu uruchamianie funkcji <code>custom:przykład/test</code> będzie odpowiadać lokalizacji pliku <code>functions/custom/przykład/test.mcfunction</code>. Jeśli przestrzeń nazw została pominięta przy próbie wywołania funkcji, domyślną przestrzenią nazw zostanie <code>minecraft:</code>. Zalecane jes użycie własnej przestrzeni nazw bez modyfikowania domyślnej w celu zabezpieczenia przed błędami gry.<ref>{{tweet|dinnerbone|877427768715341824|Until vanilla adds something with the same name, then it won't work for you! Or if someone else has to work with your stuff, then confusing!|21 czerwca 2017}}</ref> | Dla przykładu uruchamianie funkcji <code>custom:przykład/test</code> będzie odpowiadać lokalizacji pliku <code>functions/custom/przykład/test.mcfunction</code>. Jeśli przestrzeń nazw została pominięta przy próbie wywołania funkcji, domyślną przestrzenią nazw zostanie <code>minecraft:</code>. Zalecane jes użycie własnej przestrzeni nazw bez modyfikowania domyślnej w celu zabezpieczenia przed błędami gry.<ref>{{tweet|dinnerbone|877427768715341824|Until vanilla adds something with the same name, then it won't work for you! Or if someone else has to work with your stuff, then confusing!|21 czerwca 2017}}</ref> | ||
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ż [[blok poleceń|bloki poleceń]]. Po modyfikacji pliku funkcji należy użyć komendy {{cmd|reload}}, by załadować do gry nową zawartość pliku z dysku bez potrzeby ponownego uruchamiania | 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ż [[blok poleceń|bloki poleceń]]. Po modyfikacji pliku funkcji należy użyć komendy {{cmd|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. | W plikach funkcji zalecane jest używanie systemu kodowania UTF-8 (bez BOM-u), by zapobiec problemom. | ||
| Linia 67: | Linia 67: | ||
{{Historia|w}} | {{Historia|w}} | ||
{{Historia||1.12|snap=-pre1|Dodano funkcje.}} | {{Historia||1.12|snap=-pre1|Dodano funkcje.}} | ||
{{Historia|||snap=-pre3|Komendy nie mogą już rozpoczynać się znakiem / (slashem).|Komentarze mogą teraz być dodawane tylko poprzez znak #; użycie // nie jest już obsługiwane.}} | {{Historia|||snap=-pre3|Komendy nie mogą już rozpoczynać się znakiem / (slashem). | ||
|Komentarze mogą teraz być dodawane tylko poprzez znak #; użycie // nie jest już obsługiwane.}} | |||
{{Historia|||snap=-pre4|Dodano nowe argumenty do komendy {{cmd|function}}: <code>[jeśli tak{{!}}jeśli nie] [selektor]</code>}} | {{Historia|||snap=-pre4|Dodano nowe argumenty do komendy {{cmd|function}}: <code>[jeśli tak{{!}}jeśli nie] [selektor]</code>}} | ||
{{Historia|||snap=-pre6|W komendach funkcje, gdy warunek nie może zostać spełniony, są rozważane pod względem możliwości powodzenia.}} | {{Historia|||snap=-pre6|W komendach funkcje, gdy warunek nie może zostać spełniony, są rozważane pod względem możliwości powodzenia.}} | ||
{{Historia||1.13|snap=17w43a|Własne funkcje mogą być dodawane do [[paczki zasobów|paczek zasobów]].}} | {{Historia||1.13|snap=17w43a|Własne funkcje mogą być dodawane do [[paczki zasobów|paczek zasobów]].}} | ||
{{Historia|||snap=17w45a|Funkcje są teraz w całości analizowane i buforowane przy ładowaniu.}} | {{Historia|||snap=17w45a|Funkcje są teraz w całości analizowane i buforowane przy ładowaniu.}} | ||
{{Historia|||snap=17w49b|Funkcje mogą być teraz tagowane.|Teraz funkcje tagowane w <code>minecraft:tick</code> uruchamiają się w każdym [[tick]]u na początku jego trwania.}} | {{Historia|||snap=17w49b|Funkcje mogą być teraz tagowane. | ||
|Teraz funkcje tagowane w <code>minecraft:tick</code> uruchamiają się w każdym [[tick]]u na początku jego trwania.}} | |||
{{Historia|foot}} | {{Historia|foot}} | ||
| Linia 79: | Linia 81: | ||
[[de:Funktion]] | [[de:Funktion]] | ||
[[en:Function]] | [[en:Function (Java Edition)]] | ||
[[es:Función (Java Edition)]] | |||
[[fr:Fonction]] | [[fr:Fonction]] | ||
[[ja:関数]] | [[ja:関数 (Java Edition)]] | ||
[[pt:Funções (Edição Java)]] | |||
[[ru:Функция]] | [[ru:Функция]] | ||
[[zh: | [[uk:Функція (Java Edition)]] | ||
[[zh:Java版函数]] | |||
Aktualna wersja na dzień 20:24, 3 gru 2025
| 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.