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í?

Napsat komentář