Průvodce pro začátečníky po velitelských blocích v Minecraftu

Minecraft je jedním z nejlepších způsobů, jak seznámit mladé a nové lidi s kódováním. Příkazové bloky se snadno učí a používají a programování v Javě je hned za rohem s Minecraft mody a Bukkit pluginy. Je to také jen velmi zábavné místo pro zkušené programátory.

Co jsou příkazové bloky a proč je mám používat?

Příkazové bloky jsou komponentou redstone, která při napájení spouští příkazy konzoly. Příkazy konzoly lze spouštět z okna chatu tak, že je budete pokračovat lomítkem „/“. Příkazy se používají k úpravě herního světa způsoby, které nejsou možné ručně, a při správném použití v příkazových blocích dávají Minecraftu vlastní druh programovacího jazyka psuedo. Kód se skládá ze dvou věcí: logiky a provádění a většina programovacích jazyků vyžaduje, aby oba byly psány textem. Minecraft kódování má jinou cestu; logika a struktura programu je dána tím, kde jsou bloky umístěny a jak jsou zapojeny, což znamená, že můžete létat nad svým světem a vidět jednotlivé části vašeho programu rozložené po jednotlivých blocích.

Dobře, tak jak mám začít?

Tato příručka využívá nové příkazové bloky ve verzi 1.9. Bude fungovat v 1.8, ale může vyžadovat trochu více odborných znalostí.

Otevřete nový svět Minecraftu (Superflat funguje nejlépe), ujistěte se, že jste v kreativním režimu a stiskněte tlačítko „/“. Toto je příkazové okno, které je stejné jako okno chatu, kromě toho, že vás spustí znakem „/“ a vše, co začíná lomítkem, je příkaz. První příkaz, který můžete spustit, je

/ give @p minecraft: command_block

Pojďme to rozebrat. Příkaz „/ give“ dá položky do inventáře hráčů a má dva argumenty: hráč a předmět, který má dát. „@P“ je selektor cíle. Volič „@p“ vybere nejbližšího hráče. Alternativně můžete také použít své uživatelské jméno pro Minecraft, ale pokud spustíte příkaz z konzoly, budete vždy nejbližším hráčem. Ostatní cílové selektory jsou „@a“ pro všechny hráče, „@r“ pro náhodného hráče a „@e“ bude cílit na všechny  entity. Entity zahrnují vše, co není blokem, jako jsou příšery, sněhové koule, zvířata a šípy.

Příkaz by se měl úspěšně provést a dát vám nový blok. Chcete-li začít, umístěte jej kamkoli na zem.

Můžete vidět, že příkazový blok směřuje ve směru, kam ho umístíte, podobně jako násypky nebo pece. To bude důležité později.

Klikněte pravým tlačítkem na blok (nebo použijte jakýkoli klíč, který použijete pro přístup k craftingovým stolům a pecím) a budete uvítáni grafickým uživatelským rozhraním příkazového bloku.

Zpočátku to vypadá trochu děsivě, ale nebojte se, všechna ta tlačítka něco dělají. Tlačítko s nápisem „Impulse“ mění typ příkazového bloku. Existují tři různé typy příkazových bloků:

  • Impulz, který spouští příkazy na  náběžné hraně proudu redstone. To znamená, že když jsou napájeni, jednou spustí svůj příkaz a zastaví se, i když budou i nadále napájeni. Toto je výchozí nastavení a je jediné dostupné v 1.8
  • Opakování, které spouští příkazy při každém zatrhnutí, když jsou napájeny. Klíště je jako rámeček a v jednom klíči lze spustit více příkazů, a to až 20krát za sekundu.
  • Řetěz, který běží pouze v případě, že příkazový blok, který do něj ukazuje, provedl svůj příkaz. Budou běžet v pořadí, jeden po druhém, v jednom klíči, odtud název 'Chain'.

Tlačítko, které říká „Bezpodmínečné“, zastaví příkazový blok v kontrole, zda předchozí blok v řetězci proběhl úspěšně. Druhá možnost, „Podmíněná“, se spustí, pouze pokud předchozí blok nevydal žádné chyby.

Tlačítko s nápisem „Vyžaduje Redstone“ spustí příkaz pouze v případě, že je napájen blok příkazů. Druhá možnost „Vždy aktivní“ zastaví příkazový blok v kontrole, zda je napájen, a pouze předpokládá, že je. Tato možnost by neměla být používána s příkazovými bloky Impulse, protože je činí zbytečnými.

Vytvořme řetěz, náš první „skript“. Umístěte řetězový příkazový blok nebo dva čelem do prvního impulzního příkazového bloku, například takto:

Nezapomeňte nastavit kladkostroje na „Vždy aktivní“. Jinak bychom museli umístit bloky redstone nebo proud, což zabírá zbytečné místo. Umístěte tlačítko na impulsní povelový blok na začátku řetězu a stiskněte jej.

Nic se nestane. Je to proto, že jsme je ještě nevyplnili příkazy! Klikněte pravým tlačítkem na blok impulzů, abyste jej upravili, a zadejte základní příkaz

řekni start

Všimněte si, jak nepotřebujeme lomítko v příkazových blocích. Pokud chcete, můžete jeden použít, ale je to zbytečné. Příkaz „/ say“ přebírá jeden argument, text a říká jej z pohledu toho, kdo jej provede. Pokud jej spustíte, zobrazí se jako „zpráva“ stejně jako běžný chat. Pokud je spuštěn z příkazového bloku, bude to „[@] zpráva“. Alternativně existuje „/ tell“, který přebírá argument hráče, a „/ tellraw“, který je jako „/ tell“, kromě toho, že místo textu bude použit surový JSON.

Chcete-li do chatu napsat více věcí, můžete vyplnit bloky příkazových řetězců. Budou provedeny v pořadí, bez prodlení, ve stejném klíči. Pokud je chcete spustit se zpožděním, budete je muset nastavit pomocí opakovačů redstone. Spolu s „/ say“ existují další základní příkazy, které dělají více věcí, například „/ give“, který dává položky, „/ effect“, který aplikuje lektvarové efekty, „/ setblock“ a „/ fill“, které mění váš svět , a mnoho dalších. Rozsáhlou databázi příkazů najdete na Minecraft Wiki spolu s dalším užitečným obsahem.

Selektory cílů

Selektory cílů „@p“ jsou ve skutečnosti mnohem výkonnější, než se na první pohled zdá. Pokud bychom například chtěli cílit na všechny entity, použili bychom „@e“, ale pokud bychom chtěli cílit pouze na zombie, použili bychom

@e [type = Zombie]

Všimněte si závorek za „@e“. Uvnitř těchto závorek jsou argumenty pro výběr cíle , jejichž úplný seznam najdete na Minecraft Wiki. Argument „type“ vybírá pouze entity určitého typu, tento je „Zombie“. Pokud bychom chtěli cílit na všechny zombie do 10 bloků od příkazového bloku, použili bychom

@e [type = Zombie, r = 10]

„R“ je radiusový argument. Můžete také mimo jiné cílit podle umístění, jména, týmu a skóre.

Řetězení příkazů

Pojďme si představit další příkaz, který není jako ostatní. Příkaz je „/ provést“. Tento příkaz převezme jako vstup další příkaz a provede jej z pohledu jiné entity. Struktura „/ provést“ je

/ spustit @ cíl XYZ / příkaz

X, Y a Z jsou souřadnice, ze kterých se má spustit příkaz. Na většině příkazů to nezáleží, ale záleží na tom, jestli používáte  relativní umístění. Relativní pozice začíná „~“ a je následována kladným nebo záporným číslem označujícím počet bloků od počátku, které je označeno „~ ~ ~“. Například pokud bychom chtěli spustit „/ say“, jako by mluvil vesničan, můžeme nastavit příkaz takto:

/ execute @e [type = Villager] ~ ~ ~ / řekni Ahoj

Tento příkaz způsobí, že zpráva bude odeslána všem, od každého vesničana. To není optimální, pokud máme více než jednu osobu nebo více než jednoho vesničana, přeformátujme tedy tento příkaz:

/ execute @a ~ ~ ~ / execute @e [type = Villager, c = 1] ~ ~ ~ / tell @p Hej

To je mnohem složitější než ten první a zahrnuje to spojení dvou příkazů „/ execute“ dohromady. První „/ provedení“ příkazu se spustí na každém hráči, druhé zkontroluje přesně jednoho vesničana v okolí a poté dá tomuto vesničanovi říct nejbližšímu hráči „Hej“. Tím je zajištěno, že na osobu hovoří pouze jeden vesničan.

Naučit se syntaxi

V Minecraftu je určitě spousta příkazů, z nichž každý má svou vlastní syntaxi. Nabídky nápovědy pro každý příkaz vám obvykle rychle řeknou, jaké argumenty příkaz potřebuje, a Minecraft Wiki má podrobný seznam toho, co každý z nich dělá. Nejde ani tak o to vědět přesně, co každý příkaz dělá, ale vědět, jak je používat společně. Minecraft je koneckonců hra, takže hraní si s příkazy je součástí procesu učení.