Funkcja: Różnice pomiędzy wersjami

Z Minecraft Wiki Polska
Przejdź do nawigacji Przejdź do wyszukiwania
[wersja nieprzejrzana][wersja przejrzana]
Nowa strona
 
d nieprawidłowy link
 
(Nie pokazano 7 wersji utworzonych przez 7 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 ==
Do użycia funkcji potrzebny jest plik tekstowy umieszczony w katalogu <code>[[.minecraft]]/saves/[nazwa świata]/data/functions</code>{{Nadchodzące}}. Pliki funkcji mogą być także umieszczane w podfolderach katalogu <code>/functions</code>. W trybie wieloosobowym funkcje muszą być zapisane w każdym świecie, w którym mają być użyte.
Do użycia funkcji potrzebny jest plik tekstowy umieszczony w katalogu <code>[[.minecraft]]/saves/[nazwa świata]/data/functions</code>. Pliki funkcji mogą być także umieszczane w podfolderach katalogu <code>/functions</code>. W trybie wieloosobowym funkcje muszą być zapisane w każdym świecie, w którym mają być użyte.


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 [[świat]]a.
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 43: Linia 43:
* Użycie: {{cmd|function|...}}
* Użycie: {{cmd|function|...}}


;{{cmd|gamerule|gameLoopFunction}}{{Nadchodzące}}
;{{cmd|gamerule|gameLoopFunction}}* Uruchamia funkcję w każdym [[tick]]u.
* Uruchamia funkcję w każdym [[tick]]u.
* Komendy w funkcji są uruchamiane przez serwer.
* Komendy w funkcji są uruchamiane przez serwer.
** Koordynaty z jakich "serwer" wykonuje funkcje to (0, 0, 0).
** Koordynaty z jakich "serwer" wykonuje funkcje to (0, 0, 0).
Linia 68: 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|p}}
{{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 81: Linia 81:


[[de:Funktion]]
[[de:Funktion]]
[[en:Function]]
[[en:Function (Java Edition)]]
[[fr:Fonctions]]
[[es:Función (Java Edition)]]
[[ja:関数]]
[[fr:Fonction]]
[[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

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

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

/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

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-pre1Dodano funkcje.
-pre3Komendy nie mogą już rozpoczynać się znakiem / (slashem).
Komentarze mogą teraz być dodawane tylko poprzez znak #; użycie // nie jest już obsługiwane.
-pre4Dodano nowe argumenty do komendy /function: [jeśli tak|jeśli nie] [selektor]
-pre6W komendach funkcje, gdy warunek nie może zostać spełniony, są rozważane pod względem możliwości powodzenia.
1.1317w43aWłasne funkcje mogą być dodawane do paczek zasobów.
17w45aFunkcje są teraz w całości analizowane i buforowane przy ładowaniu.
17w49bFunkcje 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.