Polecenia/execute
Komenda /execute
pozwala na operowanie na zmiennych oraz manipulację warunkami i sposobem wykonania innego polecenia.
Java Edition[edytuj | edytuj kod]
Składnia[edytuj | edytuj kod]
Polecenie /execute
posiada dwanaście instrukcji i każda z nich trzyma się swojej określonej składni. Oto one:
/execute
[...]… align <osie> -> wykon.
… anchored (eyes|feet) -> wykon.
… as <cele> -> wykon.
… at <cele> -> wykon.
… facing (<poz>|entity <cele> (eyes|feet)) -> wykon.
… in <wymiar> -> wykon.
… positioned (<poz>|as <cele>) -> wykon.
… rotated (<obr>|as <cele>) -> wykon.
… store (result|success)
[...]… block <pozDocel> <ścieżka> (byte|short|int|long|float|double) <skala> -> wykon.
… bossbar <id> (max|value) -> wykon.
… entity <cel> <ścieżka> (byte|short|int|long|float|double) <skala> -> wykon.
… score <targets> <objective> -> wykon.
… storage <cel> <ścieżka> (byte|short|int|long|float|double) <skala> -> wykon.
… (if|unless])
[...]… block <poz> <blok> -> [wykon.]
… blocks <początek> <koniec> <miejsceDocel> (all|masked) -> [wykon.]
… data
[...]… block <pozŹródł> <ścieżka> -> [wykon.]
… entity <źródło> <ścieżka> -> [wykon.]
… storage <źródło> <ścieżka> -> [wykon.]
… entity <byty> -> [wykon.]
… predicate <predykat> -> [wykon.]
… score <cel> <celDocel>
[...]… (<|<=|=|>|>=) <źródło> <celŹródł> -> [wykon.]
… matches <zasięg> -> [wykon.]
… run <polecenie>
-> wykon.
oznacza tu kolejną instrukcję komendy execute
. Instrukcje mogą łączyć, jedna za drugą, bez ograniczeń, jednak polecenie musi zakończyć się instrukcją run
. Wyjątkiem są polecenia if
i unless
— te pozwalają na nieużycie instrukcji końcowej.
Objaśnienia[edytuj | edytuj kod]
Jedenaście komend podlega łączeniu — dziewięć z nich modyfikuje zmienne; pozostałe dwie są poleceniami warunkowymi. Instrukcja run
zwieńcza polecenie execute
i używana jest do jego realizacji.
Instrukcji warunkowych if
i unless
można użyć w celu policzenia wystąpień spełniających podane w poleceniu warunki. Taka komenda nie potrzebuje instrukcji run
. Przykład: /execute if entity @e[name="Steve"]
.
Instrukcje warunkowe if
oraz unless
mogą całkowicie uniemożliwić wykonanie polecenia. Wszystkie podane warunki muszą być spełnione, inaczej test zakończy się niepowodzeniem (co zostanie wyświetlone na czacie).
Instrukcje podlegające łączeniu[edytuj | edytuj kod]
… <osie> -> wykon.
- Wyrównuje obecne położenie wzdłuż siatki bloków, zaokrąglając w dół.
<osie>
Podaj jakąkolwiek kombinację osi. Ta sama oś nie może wystąpić więcej niż raz. (Przykładowo:x
,xz
,zyx
,yz
).- Przykład: Założywszy, że położenie równa się [-1.8, +2.3, +5.9], polecenie
/execute align xz run summon zombie ~ ~ ~
przywoła zombie przy współrzędnych [-2.0, +2.3, +5.0]. - Przykład: Założywszy, że położenie równa się [+2.4, -1.1, +3.8], polecenie
/execute align yxz run spawnpoint @p ~ ~ ~
ustawi miejsce odradzania gracza na [2, -2, 3].
… (feet|eyes) -> wykon.
- Przechowuje odległość od stóp do oczu bytu wykonującego polecenie w zakotwiczeniu, będącego częścią kontekstu komendy.
- Zakotwiczenie używane jest tylko w notacji daszkowej (
^ΔT ^ΔN ^ΔB
) i w instrukcjifacing
poleceniaexecute
, które zachowują się, jak gdyby pozycja wykonania polecenia została przesunięta w górę o zapisaną wartość.
… <cele> -> wykon.
- Wykonuje polecenie jako podane cele, ale nie zmienia pozycji.
- Wpływa na funkcję zmiennej selektora celu (
@s
).
… <target> -> wykon.
- Używa pozycji, rotacji i wymiaru celu, ale nie zmienia aktualnego bytu wykonującego (
@s
). - Wpływa na funkcję pozycjonowania
~Δx ~Δy ~Δz
i^ΔT ^ΔN ^ΔB
.
- Używa pozycji, rotacji i wymiaru celu, ale nie zmienia aktualnego bytu wykonującego (
… (<poz>|entity <cel> (eyes|feet)) -> wykon.
- Używa pozycji, w której wykonano polecenie. Jest ona skierowana w stronę podanej pozycji lub w stronę oczu, lub stóp bytu docelowego.
- Wpływa na funkcję pozycjonowania
^ΔT ^ΔN ^ΔB
.
… <wymian> -> wykon.
- Wykonuje tak, jakby wykonawca był w podanym wymiarze.
- Wpływa na wymiar polecenia, ale nie wpływa na pozycje X, Y i Z.
<wymiar>
— ID słowne dla powierzchni, Netheru i Endu to kolejno: „overworld”, „the_nether” i „the_end”.
… (<poz>|as <cele>) -> wykon.
- Używa albo podanych współrzędnych, albo współrzędnych jednostki docelowej jako aktualnej pozycji.
- Wpływa na funkcję pozycjonowania
^ΔT ^ΔN ^ΔB
i~Δx ~Δy ~Δz
. Nie zmienia rotacji, wymiaru ani celu@s
.
… (<rot>|as <targets>) -> wykon.
- Wykonuje tak, jakby wykonawca był obrócony albo w danym kierunku, albo w tym samym kierunku, w którym znajduje się byt docelowy.
- Wypływa na rotację komendy.
… (result|success) (block|bossbar|entity|score|storage) <arguments> -> wykon.
- Zapisuje wynik lub pomyślność polecenia. Ta instrukcja zastąpiła komendę
/stats
. result
— zwraca wynik polecenia. (Zastępuje stare statystyki: AffectedBlocks, AffectedEntities, AffectedItems, QueryResult.)success
— zwraca ilość pomyślnych wystąpień polecenia. Zazwyczaj zwróci0
lub1
, ale jeżeli komenda jest podzielona (jako np. „/execute as @a -> execute”) wtedy wynik może wynieść więcej niż1
. (Zastępuje starą statystykę SuccessCount.)- Po nieudanej próbie „success” i „result” wynoszą
0
. Wartość zostaje zapisana po pełnym wykonaniu polecenia.
… block <poz> <ścieżka> (byte|short|int|long|float|double) <skala> -> wykon.
- Zapisuje zwracaną wartość danych NBT w danym położeniu bloku.
<ścieżka>
— nazwa tagu danych, w którym ma zostać zapisana wartość.
… bossbar <id> (value|max) -> wykon.
- Zapisuje zwróconą wartość jako albo obecną wartość, albo maksymalną wartość danego paska bossa.
<id>
— ID paska bossa, w którym ma zostać zapisana wartość.value
— określa, że wartość (value) ma zostać nadpisana przez zwróconą wartość polecenia.max
— określa, że maksymalna wartość (max) ma zostać nadpisana przez zwróconą wartość polecenia.
… entity <cel> <ścieżka> (byte|short|int|long|float|double) <skala> -> wykon.
- Używa ścieżkę (
path
) tagu danych jednego bytu docelowego w celu zapisania zwróconej wartości. Zapisuje jako liczbę typu byte, short, int, long, float lub double. - Podobnie, jak komenda
/data
, polecenie/execute store <argumenty>
nie może modyfikować tagów NBT gracza.
- Używa ścieżkę (
… score <nazwa> <cel> -> wykon.
- Używa tabelę wyników o podanej <nazwie> i podanym <celu> w celu zapisania zwróconej wartości.
- <cel> musi istnieć, ale — w przeciwieństwie do polecenia
/stats
— nie ma potrzeby wpisywania wartości dla argumentu <nazwa>.
… storage <cel> <ścieżka> (byte|short|int|long|float|double) <skala> -> wykon.
- Używa <ścieżkę> do docelowego magazynowania (argument <ścieżka>) w celu zapisania wartości.
- Tworzy nowy magazyn, jeżeli ten nie istnieje.
<cel>
— docelowy kontener magazynu (w przestrzeni nazw).<ścieżka>
— nazwa tagu danych, w którym gracz chce zapisać zwróconą wartość.
- Zapisuje wynik lub pomyślność polecenia. Ta instrukcja zastąpiła komendę
… (if|unless) (block|blocks|data|entity|predicate|score) <argumenty> -> [wykon.]
- Przed przystąpieniem do wykonywania komendy sprawdza, czy spełnione są podane warunki.
… block <poz> <blok> -> [execute]
- Porównuje blok o danych współrzędnych do podanego ID słownego bloku.
… blocks <początek> <koniec> <miejsceDocel> (all|masked) -> [wykon.]
- Porównuje obszar pomiędzy współrzędnymi podanymi w argumentach <początek> i <koniec> z drugim obszarem, którego współrzędne podane są w argumencie <miejsceDocel>. Obliczanie obszarów i argument
(all|masked)
działają tak samo, jak w komendzie/clone
.
- Porównuje obszar pomiędzy współrzędnymi podanymi w argumentach <początek> i <koniec> z drugim obszarem, którego współrzędne podane są w argumencie <miejsceDocel>. Obliczanie obszarów i argument
… data (block <poz>|entity <cel>|storage <źródło>) <ścieżka> -> [wykon.]
- Wykonuje instrukcję, jeżeli docelowy blok, byt lub magazyn, ma jakiekolwiek dane tagu określonego argumentem <ścieżka> (dla if).
- Nie wykonuje instrukcji, jeżeli docelowy blok, byt lub magazyn, ma jakiekolwiek dane tagu określonego argumentem <ścieżka> (dla unless).
<ścieżka>
— określa tag NBT, którego należy szukać. To łańcuch nadrzędnych nazw tagów Javo-podobnej formyhighestTag.child.childsChild…parent.targetDataTag
.- Przykład:
/execute as @e if data entity @s ArmorItems[0].id
sprawdza, czy jakikolwiek byt ma id przedmiotu umieszczonego w polu (slocie) zbroi przeznaczonym na buty. Należy wziąć pod uwagę, że polecenie zawsze wartość prawdziwą (true
) u wszystkich mobów — noszących zbroję czy też nie.
… entity <cele> -> [wykon.]
- Wykonuje instrukcję, jeżeli istnieje jeden lub więcej <celów> (dla if).
- Nie wykonuje instrukcji, jeżeli istnieje jeden lub więcej <celów> (dla unless).
… predicate <predykat> -> [wykon.]
- Wykonuje instrukcję, jeżeli predykat otrzyma pomyślny wynik (dla if).
- Wykonuje instrukcję, jeżeli predykat otrzyma wynik zakończony niepowodzeniem. (dla unless).
… score <cel> <celDocel> (<|<=|=|>=|>) <źródło> <celŹródł> -> [wykon.]
- Wykonuje instrukcję, jeśli wynik bytu docelowego dokładnie odnosi się do wyniku bytu źródłowego, biorąc pod uwagę jakiegoś operatora warunkowego (dla if).
- Nie wykonuje instrukcji, jeśli wynik bytu docelowego dokładnie odnosi się do wyniku bytu źródłowego, biorąc pod uwagę jakiegoś operatora warunkowego (dla unless).
… score <cel> <celDocel> matches <zasięg> -> [wykon.]
- Wykonuje instrukcję, jeśli wynik bytu docelowego mieści się w podanym zakresie (dla if).
- Wykonuje instrukcję, jeśli wynik bytu docelowego nie mieści się w podanym zakresie (dla unless).
unless <argumenty> -> [wykon.]
- Patrz: ppkt. 10. —
(if|unless)
- Patrz: ppkt. 10. —
Pozostałe[edytuj | edytuj kod]
- Oprócz powyższych jedenastu instrukcji istnieje jeszcze instrukcja
run
.… run <polecenie>
- Określa wykonywaną komendę, której zmienne mogą być zmodyfikowane przez użyte instrukcje.
- <poleceniem> może być każda komenda istniejąca w Minecrafcie.
- Technicznie: Resetuje węzeł polecenia, redukując do rdzenia dyspozytora poleceń.
- Modelowanie poleceń jako tekst czatu...
- Dyspozytor poleceń jest rozpoczynany po wpisaniu przez gracza znaku
/
(ukośnika). - Węzeł polecenia jest konkretnym słowem/wpisem, które jest edytowane przez kursor — albo polecenie, albo argument.
- Węzeł główny stoi przed pierwszym słowem w twojej komendzie.
- Przykłady
/execute at @a anchored eyes run particle smoke ^ ^ ^3
/execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5]
/execute as @a at @s if block ~ ~ ~ water run say Buty mi przemokły!