Chytré dveře s příkazem /execute

V tomto návodu si ukážeme jednoduchý způsob, jak vytvořit chytré dveře, které se otevřou jen, když se k nim přiblíží jeden z hráčů. Postup v tomto návodu můžeš použít nejen pro dveře, ale taky pro chytrá světla a jiné stavby, které reagují na hráče.

Co bys už měl/a umět

  1. Pracovat s command blocky – návod zde
  2. Pracovat s příkazem /fill – návod zde
  3. Pracovat se souřadnicemi v Minecraftu

Postup

1. Příprava stavby

Připrav si ve svém světě prostor, kde bys chtěl/a mít chytré dveře. Můžeš ho ohraničit nějakými bloky. Pod touto stavbou si pak připrav trochu místa na command blocky.

2. Příprava příkazu /fill

Nejdřív se spolu podíváme na příkaz, kterým dveře budeme zavírat a otevírat. Bude to příkaz /fill, který umí vyplnit určitou oblast nějakým blokem (z toho pramení název – fill, v angličtině plnit).

Označ si oba rohy tvých dveří kostkami. Na tom, která to je, nezáleží. Pro snadnější pochopení jsou na obrázku dvě barevné kostky. Jejich souřadnice doplň do příkazu /fill. Za příkaz napiš název bloku, který chceš, aby představoval zavřené dveře.

/fill <souřadnice prvního rohu> <souřadnice druhého rohu> <identifikátor bloku>

Zkus příkaz odeslat do chatu. Dveře by se hned měly vyplnit blokem, který jsi napsal/a.

Hotový příkaz si zkopíruj (vyber vše použitím zkratky Ctrl + A, a zkopíruj s Ctrl + C) a vlož ho to command blocku, kde bude chvíli odpočívat.

PRO TIP: V command blocku nemusíš před příkazy psát lomítko (/). Když ho teď umažeš, bude pak tvoje práce trochu snazší.

3. Zjištění, kdy je nablízku hráč

Pro zjištění, kdy je nějaký hráč nablízku, můžeme použít příkaz /execute. Příkaz /execute nám v Minecraftu umožňuje upravovat způsob, kterým fungují minecraft příkazy. Jedním z nich jsou i podmínky – například “Spusť příkaz jen, když se někdo přiblíží.”

Polož si pod dveře command block, a otevři ho. Když začneš psát příkaz execute, Minecraft ti bude nabízet několik možností, jak příkaz execute používat. Nás teď budou zajímat jen dvě: if a run. Začneme s možností if.

If (z angličtiny: když) příkaz upraví tak, aby se spustil jen když je něco splněno. V případě našich chytrých dveří budeme zjišťovat, jestli je nějaký hráč blízko. Upřesníme proto execute if tak, aby kontroloval entity (mezi které patří i postava hráčů).

Potom příkaz bude potřebovat vědět, koho má hledat. Za entity bys mohl napsat jméno svého kamaráda, potom by příkaz mohl reagovat jen, když se na tvůj svět připojí tvůj kamarád. Dveře by ale měly pustit každého, použijeme proto místo jména speciální značku @a, neboli všechny hráče. To by ovšem znamenalo, že bude příkaz reagovat na všechny hráče, a nebude kontrolovat, jak daleko od dveří jsou. Budeme proto muset napsat filtr.

Za @a bez mezery napiš hranaté závorky, tím se ti otevřou nové možnosti. Hranaté závorky na české klávesnici můžeš napsat podržením pravého Altu (napravo od mezerníku, často je pospaný jako Alt Gr) a stisknutím písmen F, G.

Filtr v Minecraft příkazu může upřesnit, které entity nebo hráče hledáme. Můžeš si to představit jako “Všichni hráči, ale jen ti, kteří…” v podobě Minecraft příkazu. Jednoduchým filtrem, který se nám bude hodit, je filtr distance. Napiš ho za hranatou závorku a nech Minecraft doplnit =.

Zbývá už jen napsat rozsah, ve kterém bude Minecraft hledat hráče. Tohle závisí na velikosti tvých dveří. My použijeme rozsah 0..5, což znamená “od 0 až 5 bloků daleko”.

DŮLEŽITÉ: Pokud napíšeš jenom jedno číslo, a ne rozsah, bude Minecraft hledat hráče jenom na jednom místě. Pokud napíšeš třeba číslo 5, příkaz nebude reagovat na hráče, kteří jsou 4 bloky daleko, 3 bloky daleko…

/execute if entity @a[distance=0..5]

Filtr můžeš uzavřít hranatou závorkou, měl by se zbarvit modře.

Tím je hotová část, kde kontrolujeme, jestli se nějaký hráč přiblížil.

4. Zprovoznění dveří

Ale co se stane, když se hráč přiblíží? To můžeš nastavit možností run, kterou napíšeš za hotový příkaz.

Nyní už jen zbývá napsat příkaz, který se spustí, když je podmínka splněna. Pamatuješ na příkaz fill, který jsme napsali dříve? Teď je čas ho využít. Ulož svůj rozepsaný příkaz stisknutím tlačítka Done (Hotovo), a vrať se k příkazu fill, který bys měl/a mít někde položený. Zkopíruj si ho odsud, a vlož ho zpátky do rozepsaného příkazu, za run.

DŮLEŽITÉ: Do příkazu za run se nepíše lomítko, které se používá u normálních příkazů! Pokud ho v napsané máš, zbarví se příkaz červeně. Můžeš za lomítko kliknout myší a umazat ho, pokud to potřebuješ.

Náš příkaz kontroluje, jestli u dveří někdo stojí. Když je někdo před dveřmi, měly by se otevřít. Pokud máš v příkazu fill nastavený nějaký blok, tak by se dveře zavřely! Z konce příkazu smaž název kostky, a místo něj napiš air (vzduch). Tím se ujistíš, že všechny kostky v oblasti zmizí (stanou se vzduchem).

Příkaz je hotový! Nezapomeň command block nastavit jako opakující se (Přepni možnost Impulse na Repeat, command block bude fialový) a vždy aktivní (Přepni možnost Needs redstone na Always active), aby nepotřeboval redstonový signál. Příkaz ulož kliknutím na Done.

Když si teď stoupneš před dveře a pokusíš se do dveří položit nějaký blok, zmizí. Minecraft ví, že u dveří někdo stojí, a proto odstraňuje v oblasti dveří všechny kostky (Snaží se otevřít dveře).

Když se od dveří vzdálíš, zůstanou pořád otevřené. Musíme vytvořit druhý command block, který bude dveře zavírat. Pojď zpátky k svému command blocku, a zkopíruj ho (Podrž Ctrl a stiskni kolečko myši). Do ruky se ti dostane kopie command blocku, kteoru můžeš položit na jiném místě. Polož druhý command block hned vedle toho prvního.

Otevři druhý command block. Budeme muset upravit dvě věci. Podrž na klávesnici šipku vlevo a podívej se na začátek příkazu. Možnost if musíme změnit na možnost unless.

Možnost unless funguje jako opak funkce if; příkaz se spustí vždycky, ale ne, když je podmínka splněna. (Odtud název: unless, v angličtině pokud ne.)

A teď už zbývá jen vrátit se šipkami na konec příkazu a změnit air na jakýkoli blok, který představuje zavřené dveře. My jsme vybrali dubová prkna (oak_planks). Když teď u dveří nikdo nebude, spustí se příkaz, který vyplní dveře nějakým blokem.

Příkaz v command blocku ulož. Máme hotovo!

Na závěr

Příkaz execute je užitečný způsob, jak udělat mnoho automatizací. Fill není jediný příkaz, který můžeš v execute použít. Můžeš vytvořit automatickou lampu pomocí příkazu setblock, nebo teleportér s příkazem tp. Vše záleží na tvé kreativitě. Tady je pár výzev, které si můžeš zkusit:

  • Dokážeš udělat dveře, která reagují na prasata místo na hráče?
  • Dokážeš upravit filtr tak, aby nereagoval na hráče v pozorovacím (specator) režimu?
  • Dokážeš udělat oblast, která by regenerovala hráčům nablízku zdraví?

Farma s automatickým sběrem obilí

Co bys už měl/měla umět

  • Pracovat s redstonem (např. aktivace redstonu, prodlužování redstone signálu, jak fungují dávkovače) – návod zde

Postavení farmy

Pro postavení farmy obilí jsou nutné suroviny: 

  • 1. Hlína
  • 2. Kbelíky vody
  • 3. Louče
  • 4. Motyka libovolného typu
  • 5. Semínka obilí

Pro mojí 6×6 farmu jsem potřeboval:

  • 36 hlíny
  • 4 kbelíků vody
  • 4 louče
  • 1 železnou motyku
  • 36 semínek obilí

1. Položení hlíny a vody

Nejdříve položím hlínu, abych věděl tvar mé farmy. Poté kolem farmy postavím andesite (výběr bloku je libovolný) a položím vodu na kraji farmy, aby neblokovala vodu z dispenserů. Nad vodu položím bloky andesitu aby tam voda z dispenserů netekla. Pokud stavba nemá světlo od okolí tak je také nutné stavbu osvětlit loučemi.

Osmý blok hlíny farmy ve směru dispenserů (které postavím později) je vždycky nutné snížit výšku farmy o jeden blok protože jinak voda z dispenserů nedosáhne. Množství pater je také libovolné. Je nutné farmu osvětlit jinak obilí nejde položit. Minimálně musím mít jeden zdroj vody pro 5×5 oblast farmy (viz (obrázek 1)).

2. Položení obilí

Použiju železnou motyku na hlínu a poté, až všechna hlína je dodělaná, vyseju všechna semínka. (obrázek 2)

Automatizace sběru obilí farmy

Pro automatizaci farmy jsou nutné suroviny:

  • 1. Dispensery (dávkovače)
  • 2. Redstone
  • 3. Páka (nebo tlačítko)
  • 4. Kbelíky vody

Pro mojí 6×6 farmu jsem potřeboval 2 dispensery, 12 redstone prachu, 1 páku a 2 dispensery.

1. Položení dispenserů

Pro automatizaci sběru musím nejdřív položit dispensery na opačné straně od strany která není obestavěná andezitem.(obrázek 3)

2. Spojení dispenserů s redstonem a pákou

Pro rychlé aktivování sběru obilí musím spojit redstone všech dispenserů s jednou pákou, takže začnu s místem kde chci aby páka byla, a pak položím redstone dust (prach) vedle dispenserů (viz (obrázek 4)). 

Tam, kde mi dojde redstone signál položím ve stejném směru redstone repeater.

3. Postavení sběrače itemů (obilí a semínka)

Pro rychlejší sběr obilí jsem postavil sběrače obilí s vodou v nejnižším patře farmy. Nad sběračem itemů musí být cedulky aby voda z dispenserů do toho netekla. Tam, kde hráč bude obilí sbírat musí být pressure plate/cedulka. Voda musí být jenom na konci farmy a také sběr musí být obestavěný libovolným blokem. (obrázek 5)

Vysoce doporučuji postavit více bloků na kraji farmy pro ujištění, že žádné obilí se nezasekne. (obrázek 6)

Farma po aktivaci

Dopravní pás

hotová stavba

V tomto návodu si ukážeme nejjednodušší způsob jak vytvořit dopravní pás pro vaší továrnu.

Proces stavby je velice jednoduchý, ale vyžaduje znalost následujících věcí:

  1. /setblock – návod zde
  2. /clone – návod (návod zatím neexistuje – bude doplněn)
  3. základní práce s command blocky – návod zde
  4. umět postavit redstone hodiny – návod (návod zatím neexistuje – bude doplněn)

Pokud máte tyto znalosti tak se pustíme do práce

Postup:

1.

Připravme si hrubou stavbu, měla by vypadat jako jeden dlouhý pás, pokud nechceme aby na koncích bylo vidět že se blocky objevují a mizí tak nějak zakryjeme poslední a první 2 blocky tohoto pásu (na obrázku je zakrytá jenom jedna strana)

hrubá stavba

2.

označme si první 2 souřadnice pro příkaz /clone, vybere takovou oblast blocků nad pásem, že na konci necháme jeden block pásu nevybraný (viz obrázek). To je proto, že celá tato oblast se posune pomocí /clone o jeden block ve směru běhu pásu takže se toto místo po klonování zaplní.

Poté napíšeme /clone a tyto dvě souřadnice do příkazu vybereme, výsledný příkaz bude vypadat nějak takto:

/clone <souradnice_oranzoveho_blocku> <souradnice_zeleneho_blocku> (nezaleží na pořadí souřadnic)

/clone -197 5 -165 -209 5 -165 (ukázkový příkaz, všimni si, že se mění jenom jedna osa – v tomto příkazu X)

první 2 souřadnice příkazu /clone
žlutá oblast včetně modrého blocku ukazuje námi vybranou oblast, modrý block je nejzápornější block oblasti

3.

Nyní je na řadě 3. souřadnice – najdeme si nejzápornější souřadnici, teď tento block posuneme o jedna, ve směru kterým chceme aby se nám pohyboval pás, toto je naše 3. souřadnice.
Na obrázku se žlutou oblastí modrý block ukazuje nejzápornější souřadnici. Na dalším obrázku s oranžovou oblastí (ukázka jak bude vypadat oblast po posunutí) modrý block vyznačuje 3. souřadnici

oblast po posunutí – modrý block ukazuje 3. souřadnici

4.

Nyní dokončíme příkaz /clone, protože se nám oblasti původní a posunutá přesahují, je třeba doplnit 2 dobrovolné atributy:

replace – kopíruje se celá oblast včetně vzduchu

move – oblast se naklonuje do nové oblasti a ta původní se nahradí vzduchem

výsledný příkaz by měl vypadat nějak takto:

/clone <souradnice_oranzoveho_blocku> <souradnice_zeleneho_blocku> <3._souradnice> replace move

/clone -197 5 -165 -209 5 -165 -208 5 -165 replace move

(všimni si že 3. souřadnice je posunuta přesně o jeden block)

5.

Ještě budeme potřebovat položit na začátek pásu blocky, to uděláme jednoduchým příkazem /setblock. Jako souřadnici vybere záčatek pásu (na 1. obrázku je to oranžový block)

/setblock <souradnice_zacatku_pasu> <vybrany material>

/setblock -209 5 -165 minecraft:coal_block

6.

Teď už finišujeme, je potřeba postavit jednoduché redstone hodiny podle následujících pravidel:

  1. budou se střídat command blocky(CB) a repeatery
  2. mezi každými dvěma CB musí být stejná prodleva nastavená na repeaterech, například 2 repeatery se zpožděním 1 tick = 1 repeater se zpožděním 2 ticky
  3. počet command blocků v hodinách bude o jedna vyšší než chceme mít mezeru mezi blockama na pásu

tyto požadavky zní složitě, ale podle obrázku to bude jednoduché. Níže můžeš vidět hodiny, které jsou připravené na jezdící pás s mezerou 3 blocků mezi posílanými blocky modrá čísla jsou hodnoty zpoždění repeaterů

ukázkové hodiny, modrá čísla jsou prodlevy na repeaterech

7.

nyní do CB v hodinách vlož příkaz /clone co jsme si vytvořili

PRO TIP: také sis můžeme připravit před stavbou hodin jeden CB do které si vložíme příkaz, tento CB si vložíme i s příkaze do inventáře pomocí CTRL + stisk kolečka. A pak z těchto CB postavíme hodiny, tím pádem tam příkazy budou již připravené

8.

Nyní by nám pás fungoval (mužeš si to vyzkoušet aktivováním hodin a položením blocku na pás) ale je potřeba na něj spawnovat blocky. To uděláme tak, že si správně položíme chain CB(ten zelený), na libovolný z command blocků v hodinách do chain CB pak vložíme náš příkaz /setblock

(dej si pozor aby byl chain CB nastavený na always active

správně zapojený chain CB – duležíté je, aby šipka na CB pod ním směrovala do něj

Hotovo!

Nyní stačit aktivovat naše hodiny a pás začne fungovat

Všechny použité příkazy:

/clone -197 5 -165 -209 5 -165 -208 5 -165 replace move

/setblock -209 5 -165 minecraft:coal_block

Pár tipů na závěr:

  1. jezdící pásy mohou zatáčet, stačí když vytvoříš dva na sebe kolmé tak aby se oblasti těch dvou pásu přesahovali
  2. doporučuji nechat mezeru mezi jednotlivými blocky alespoň 2 velkou, pás pak vypadá že opravdu jede
  3. po pásech je možné posouvat i složitější struktury, pás muže být klidně víc blocků široký a vysoký a tím pádem po něm mohou jezdit třeba taková auta. pro umístění těchto složitějších struktur na pás je vhodné si jí postavit někde bokem a pak ji na pás klonovat