Komendy/execute

Z Minecraft Wiki Polska
Skocz do: nawigacja, szukaj

Komenda (inaczej: polecenie) /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="Zbyszko"].

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]

  1. … <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].
  2. … (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 polecenia execute, które zachowują się, jak gdyby pozycja wykonania polecenia została przesunięta w górę o zapisaną wartość.
  3. … <cele> -> wykon.
    Wykonuje polecenie jako podane cele, ale nie zmienia pozycji.
    Wpływa na funkcję zmiennej selektora celu (@s).
  4. … <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.
  5. … (<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.
  6. … <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”.
  7. … (<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.
  8. … (<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.
  9. … (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óci 0 lub 1, 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.
    • … 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ść.
  10. (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.
    • … 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 formy highestTag.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).
  11. unless <argumenty> -> [wykon.]
    Patrz: ppkt. 10. — (if|unless)

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!