Kvíz

V tomto návodu si ukážeme, jak v Minecraftu postavit jednoduchou kvízovou hru. V takové hře dáme hráčům za úkol projít mapu, na které se setkají s různými otázkami. Pokud odpoví špatně, vrátí se na začátek.

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

Mapa

Jako většina miniher, i u kvízu potřebujeme nejprve postavit mapu – místo, kde se bude hrát. Takovou mapou by mohla být uzavřená místnost s několika dírami pro procházení. Můžeš ji postavit třeba takhle:

Máme před sebou tři průchody – Tohle budou “odpovědi” v tvém kvízu

Otázky

Nyní potřebujeme napsat otázku. Nejjednodušší způsob, jak otázku napsat, je pomocí obyčené cedulky. Vezmi si v inventáři ceduli a polož ji třeba na zem. Do ní pak napiš otázku.

Otázka teď stojí před třema průchody.

Pokud chceš změnit barvu cedulky, můžeš si vzít z inventáře barvivo. V inventáři jich najdeš celkem 16, a můžeš je v inventáři vyhledat pod názvem barvivo (v angličtině dye). Pokud máš nejnovější verzi Minecraftu, můžeš také použít Váček světélkujícího inkoustu (anglicky Glow ink sac), se kterým můžeš text na cedulce zvýraznit. Pak bude vidět i ve tmě.

Příklad zvýrazněné cedulky

Odpovědi

Teď musíme napsat odpovědi. Přidej do své mapy cedulky s odpověďmi, nejlépe nad průchody. Hráč si poté bude muset vybrat průchod se správnou odpovědí. Třeba takhle:

Teď společně naprogramujeme kvíz tak, aby na špatné odpovědi poslal hráče na začátek, a na správné hráči dovolil jít dál. Použijeme k tomu jednoduchý Command block a nášlapnou desku, která CB spustí, když na ni stoupne hráč.

Vykopej si pod jednou ze špatných odpovědí otvor, a polož do něj Command block. Tady naprogramujeme teleportovací příkaz. Zjisti si souřadnice před první otázkou a vytvoř příkaz /teleport:

Command block s příkazem

Bylo by určitě nudné, kdybys musel/a s každou špatnou odpovědí psát tento příkaz. Proto je lepší, když si ho uložíš do inventáře. Podrž na klávesnici tlačítko Ctrl, a pomocí kolečka myši klikni na command block. Dostaneš do inventáře jeho kopii, kterou můžeš položit i s napsaným příkazem. Pokud na něj najedeš v inventáři myší, bude na sobě mít text (+NBT). To znamená, že má uložená nějaká data navíc.

Svůj zkopírovaný command block pro špatné odpovědi polož pod všechny průchody, u kterých je špatná odpověď. A co ta správná? Ukážeme si, jak napsat někomu do inventáře zprávu, pokud stoupne na správnou odpověď. Polož si pod správnou odpověď prázdný Command block, a napiš příkaz /tellraw:

/tellraw @s “Správně!”

Pokud takový příkaz spustíme, nejbližšímu hráči do chatu přijde zpráva. Příkaz si můžeš zkopírovat jako ten předchozí, a používat ho v dalších otázkách. Nebo, pokud chceš, můžeš ke každé otázce napsat jinou zprávu, třeba vysvětlení, proč je správně.

Přidej nad command blocky nějaký blok, a nad něj polož nášlapnou desku. První kvízová otázka je hotová!

Samozřejmě, ve svém kvízu můžeš mít víc otázek. Můžeš postavit víc otázek a Command blocky jen překopírovat. Nemusíš všechny psát odznova. Můžeš mít i víc správných odpovědí.

Konec kvízu

Až budeš mít dost otázek, bude na čase postavit konec. Každá minihra někde končí, a i ta tvoje by měla mít nějaký konec. Postav na konci kvízu nějaký pěkný pokoj, a nezapomeň na tlačítko pro návrat na začátek (nebo nějakou hlavní mapu – lobby).

Výzvy na závěr

Zkus do svého kvízu přidat tohle:

  • Dokážeš do svého kvízu přidat záchytné body (checkpointy)?
  • Dokážeš napsat text “Správně” na celou obrazovku místo do chatu?
  • Dokážeš zneviditelnit ostatní hráče, aby nikdo nevěděl, které odpovědi jsou správně?

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

Jak spočítat, kolik máš ve své minihře hráčů

V tomto návodu si ukážeme, jak ve své Minecraft minihře můžeš spočítat, kolik hráčů se nachází na tvé mapě.

Představ si to takhle: Máš postavenou mapu na svoji hru, například Spleef, TNT run, nebo nějakou jinou. V těchto hrách se hraje o to, kdo je poslední naživu. Jak ale můžeš zjistit, kolik je na tvé mapě hráčů? Přesně to si teď vysvětlíme.

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

  • Pracovat se scoreboardy (počítadly)
  • Rozumět selektorům v Minecraftu (@a, @e, @p) – návod zde
  • Pracovat s příkazem /execute – návod zde

Vytváříme počítadlo

Nejprve musíme vytvořit scoreboard (počítadlo). Scoreboardy nám v Minecraftu umožňují vytvořit tabulku, kde má každý hráč nějaké číslo (skóre). Toto skóre potom můžeme zobrazovat třeba na pravé straně obrazovky, nebo v Tab listu (seznam připojených hráčů, který můžeš otevřít stisknutím klávesy Tab).

Scoreboardy můžou být navázané na nějakou informaci v Minecraftu; můžou automaticky počítat, kolikrát hráč zemřel, kolikrát byl vytěžen nějaký předmět, kolik zombie hráč zabil a mnoho dalších. Scoreboardy jde ale také nastavit, aby nebyly spojené na nějaké informace; v takovém případě si můžeš body v scoreboardu přidělovat sám. Můžeš třeba s jednoduchým commandem počítat, kolikrát nějaký hráč stiskl tlačítko.

/scoreboard objectives add <nazev_pocitadla> dummy

Tento příkaz vytvoří nové počítadlo. Název počítadla si můžeš vymyslet, ale nesmí v něm být mezery, ani české háčky a čárky. Pod tímto jménem budeš scoreboard označovat v ostatních příkazech.

/scoreboard objectives add HraciNaMape dummy

Tímto jsme vytvořili nové počítadlo HraciNaMape. Můžeš ho zviditelnit napsáním tohoto příkazu:

/scoreboard objectives setdisplay HraciNaMape sidebar

Zatím se nic nestalo, protože počítadlo HraciNaMape nemá žádné záznamy. Před chvíli jsme ho vytvořili, a proto je prázdné. Teď si ukážeme, k čemu nám bude užitečné.

Počítání hráčů

Položili jsme dva command blocky, jeden repeatový, a jeden chainový. Do fialového chain command blocku napíšeme tento příkaz:

/execute store result score Hraci HraciNaMape if entity @a[distance=..20]

Pojďme si ho vysvětlit trochu podrobněji.

  • /execute začíná příkaz execute.
  • store result score nastaví /execute tak, aby výsledek uložil do nějakého počítadla.
  • Hraci je jméno hráče, pod jehož jménem se skóre uloží. Můžeš si vymyslet jiné.
    • Ale proč? HraciNaMape je pouze počítadlo, počítadlo žádnou hodnotu samo o sobě nemá. Hodnoty mají Hráči, kterým jsou body na počítadle ukládány.
    • Hráč Steve by mohl mít 1 bod, hráč Alex by mohl mít 2 body, hráč Honzik by mohl mít 3 body. Ale na jiném počítadle by mohl mít Steve 4 body, Alex 3 body, a Honzik 2 body.
    • Můžeš si to představit jako sporty, v jednom sportu (jednom scoreboardu) mají hráči nějaké body, ale v jiném sportu (jiném scoreboardu) můžou mít body jiné.
    • Hráč, kterému body přidáváš, nemusí být připojený na Minecraft server. Vlastně ani nemusí existovat. V tomto příkazu používáme smyšleného hráče, a nastavujeme mu body ve scoreboardu, abychom něco vypočítali. Chytré, že?
  • HraciNaMape je počítadlo, do kterého ukládáme body.
  • if entity @a[distance=..20] spustí příkaz pouze na hráčích, kteří jsou 20 bloků nebo blíž od command blocku, kde máš příkaz napsaný.
    • Pokud napíšeš do chatu /execute if entity @a, do chatu nejspíš dostaneš zprávu “Test passed, count: Číslo“. if entity v příkazu /execute spočítalo, kolik hráčů příkaz našel. [distance=..20] omezuje vyhledávání jen na určitou oblast.

Dokončili jsme první příkaz, který jsme napsali do repeat command blocku. Pokud máš správně nastavený scoreboard, hlavně příkaz /scoreboard objectives setdisplay, okamžitě uvidíš změnu. Setdisplay Minecraftu přikázalo, aby se po pravé straně zobrazovalo počítadlo. Náš smyšlený hráč na něm bude mít skóre, které představuje počet hráčů. To protože repeatový command block neustále počítá hráče okolo a výsledek ukládá.

Napíšeme druhý command, do zeleného chain command blocku. Ten bude:

/execute if score Hraci HraciNaMape matches 1

Tento příkaz zkontroluje, pokud hráč “Hraci” má ve scoreboardu “HraciNaMape” přesně 1 bod. Pokud ano, příkaz bude úspěšný.

A to je vše, tímto jsme zkontrolovali, jestli je na tvé minihře jen jeden hráč.

Co dál?

Jaké příkazy spustit, když je ve tvé minihře jen jeden hráč, je na tobě. Můžeš vítězi předat odměnu, teleportovat ho pryč, nebo napsat do chatu oznámení. Ale jak na to?

V kapitole nahoře jsme zmínili, že pokud bude skóre přesně 1, bude příkaz úspěšný. Toho můžeme využít. Polož si do řady command blocků další command block. Nastav ho jako chainový, a conditional. Conditional a unconditional můžeš přepínat prostředním tlačítkem.

Šipka na conditional command blocku bude zalomená, jako je to vidět tady

Příkazy v conditional command blocku se spustí jen, když příkaz před ním skončí úspěšně. Náš počítací příkaz:

/execute if score Hraci HraciNaMape matches 1

…skončí úspěšně když má hráč “Hraci” ve scoreboardu “HraciNaMape” jeden bod. Pokud má více, nebo méně, skončí neúspěšně. Příkazy v conditional command blocku by se tedy nespustily.

Co do tohoto command blocku napíšeš je už jen na tobě. Ale zapojení přes conditional command block ti ušetří práci. Nebudeš muset do každého command blocku v řadě přidávat podmínku, jestli je skóre rovné 1. To protože máš v řadě už jeden příkaz, který to dělá za tebe, a zbytek je na něj navázaný.

/execute

V tomto návodu si ukážeme, jak v Minecraftu používat příkaz /execute. Execute (anglicky Proveď) je příkaz, který nám umožňuje měnit způsob, kterým se spouští Minecraftové příkazy. Může měnit kdo spouští příkaz (pokud například v příkazu používáš @s), odkud se příkaz spouští (pokud například v příkazu používáš relativní souřadnice; ~ ~ ~), nebo třeba kontrolovat podmínky.

Když v Minecraftu začneš psát příkaz /execute, bude se ti hra snažit doplnit nějaké možnosti; jsou to způsoby, kterými můžeš příkaz /execute používat. V tomto návodu si ukážeme funkce pár nejdůležitějších. Pokud se na to cítíš, můžeš si (v angličtině) přečíst více zde: Minecraft Wiki.

run

Možnost run je nejzákladnější možností, kterou můžeš do příkazu /execute napsat. Možnost run upřesňuje, jaký příkaz se má spustit. Do příkazu za run nepíšeme lomítko (/). Možnost run se většinou píše jako poslední. Vezmeme si jako příklad příkaz /say:

execute run say 😀

Příkaz /say donutí nějakou entitu napsat zprávu do chatu. Tento /execute příkaz neprovádí žádné změny, pouze obsahuje možnost run. Tento příkladový příkaz bude mít stejný výsledek, jako příkaz /say 😀. Samo o sobě je to trochu zbytečné, tak se společně podíváme, jak můžeme jinými možnostmi upravit Minecraft příkazy.

as

Možnost as v příkazu /execute nám umožňuje měnit, kdo spouští příkaz. To se hodí například v situacích, kdy používáme v příkazu selektor @s (což znamená spouštějící příkaz). Můžeme si to ukázat na příkazu /say:

execute run say 😀

Použijeme příkaz z předchozí části návodu. Tento příkaz jednoduše pošle do chatu zprávu. Když takový příkaz zadáš do command blocku a spustíš ho, stane se toto:

Do chatu přijde zpráva od uživatele “@”, toto jméno v chatu zobrazuje command blocky

Protože je příkaz v command blocku a nijak jsme neupravili kdo příkaz spouští, přijde do chatu zpráva od command blocku. Jak to změníme?

execute as @a run say 😀

Před run jsme přidali as @a. Když do příkazu /execute přidáš as, budeš muset napsat jméno hráče, který má příkaz spustit. Použít můžeš i selektory (@a, @s, @e, @p, @r). My jsme použili @a, tedy všechny hráče. Když takový příkaz spustíš, zpráva do chatu nebude napsaná command blockem, ale jménem všech hráčů.

Když jsme tento příkaz spustili my, byl na našem serveru pouze jeden hráč, takže se příkaz spustil jen jednou. Pokud máš na serveru víc hráčů, příkaz se spustí víckrát, pro každého hráče jednou.

Ukážeme si ještě jeden příkaz:

execute as @e run say 😀

Vyměnili jsme @a za @e, což znamená všechny entity. Takový příkaz donutí všechny entity poslat do chatu zprávu. Výsledek by mohl vypadat nějak takto:

Na mapu jsme přidali pár prasátek. Po levé straně můžeš vidět jejich zprávy v chatu.

Takže ještě jednou: V /execute ti možnost as dovoluje změnit, kdo příkaz spouští; jako kdyby hráč příkaz spustil přímo ze svého chatu.

DŮLEŽITÉ: Pokud používáš /execute na svém Minecraft serveru, nezáleží, jestli má hráč oprávnění spustit příkaz napsaný v možnosti run, nebo ne. /execute permise obchází.

at

Možnost at v příkazu /execute nám umožňuje měnit, kde se spouští příkaz. To se hodí například v situacích, kdy pracujeme s relativními souřadnicemi (~ ~ ~)

Uvedeme si jako příklad příkaz /setblock:

execute run setblock ~ ~-1 ~ red_wool

Tento příkaz změní kostku o jeden blok níž na červenou vlnu. A odkud? Protože v příkazu není žádné upřesnění, použije se umístění command blocku.

Jako výchozí umístění se použily souřadnice command blocku, takže souřadnice ~ ~-1 ~ ukazují na kostku pod command blockem. Nyní přijde úprava s at:

execute at @p run setblock ~ ~-1 ~ red_wool

Tento příkaz se bude spouštět z pozice nejbližšího hráče (protože používáme @p). Když tento příkaz spustíme, blok pod nejbližším hráčem se změní:

Stejně jako s možností as, i at může příkaz spustit vícekrát, pokud je pozic víc. To se projeví například když místo @p použiješ @a.

positioned

Možnost positioned v příkazu /execute nám umožňuje měnit, z jakých souřadnic se příkaz spouští. To se hodí v situacích, kdy potřebujeme příkaz spouštět na jiném místě, ale na tom místě nejsou entity. Můžeme tak nastavit souřadnicové umístění, ze kterého se příkaz spouští.

Řekněme, že chceš mít někde command block, který odmění nejbližšího hráče diamantem. Mohl by vypadat takto:

execute run give @p diamond

Kdyby někdo takový command block spustil, dostal by nejbližší hráč do ruky diamant. Nejbližší čemu? Protože jsme nenapsali ani at, ani positioned, diamant dostane ten, kdo je nejblíž command blocku. Co kdyby jsme ale chtěli, aby se nejbližší hráč zjišťoval z jiného místa? Pro to můžeš použít možnost positioned.

execute positioned 4 -53 160 run give @p diamond

Přidali jsme možnost positioned, a k ní napsali souřadnice. Diamant by nyní dostal ten hráč, který je nejblíž pozici 4 -53 160.

if

Možnost if nám v příkazu /execute umožňuje nastavit podmínku. Pokud tato podmínka není splněna, příkaz se vůbec nespustí. Tímto můžeš vytvořit například stavby, které reagují na blízkost hráčů (například světlo, které svítí jen, když je nějaký hráč nablízku).

Když v příkazu execute začneš psát možnost if, zobrazí se řada podmožností:

Podíváme se společně na pár nejdůležitějších z nich.

if – entity

Možnost execute if entity nám umožňuje zkontrolovat, jestli existuje nějaká entita – tedy mob, zvíře, hráč, armor stand a jiné. Za execute if entity píšeme jméno hráče nebo selektor.

Jako příklad si uvedeme příkaz, který bude psát do chatu, když je ve světě Ender drak:

execute if entity @e[type=ender_dragon] run say Ender Dragon! :O

Použili jsme selektor @e (všechny entity), a dále filtr, který omezí výběr jen na entity, které jsou typu “ender_dragon”. if entity kontroluje, jestli může takovou entitu najít. Pokud ve světě nebude Ender drak, počet nalezených entit bude 0, a příkaz say se nespustí.

PRO TIP: Více užitečných informací o práci se selektory najdeš v návodu – odkaz zde

Command block jsme nastavili jako Repeat a Always active; po přivolání Ender draka se stane toto:

if – block

Možnost execute if block nám umožňuje zkontrolovat, jestli je na nějakém místě nějaký block. To se nám může hodit například v minihrách, kde musíme najít skryté tlačítko. Pomocí execute if block můžeme zjistit, jestli je toto tlačítko zmáčknuté. Ale teď jednodušší příklad:

execute if block ~ ~1 ~ gold_block run say Gold

Tento příkaz zjišťuje, jestli je blok nad spouštícím command blockem blok zlata. Pokud ano, napíše do chatu zprávu.

Nad command blockem je hlína, po stisknutí tlačítka se nic nestane
Nad command blockem je zlato, po stisknutí tlačítka se spustí příkaz

if – score

Možnost execute if score nám umožňuje zkontrolovat stav skóre nějakého hráče. K tomu je důležité vědět, jak funguje příkaz /scoreboard. Můžeme zjistit, jestli je nižší, vyšší nebo rovné bodům jiného hráče, nebo jestli spadá do nějakého rozsahu.

Uvažujme, že máme v našem Minecraft světě scoreboard, který se jmenuje Scoreboard, a dva hráče, Alex a Steve:

Jejich skóre můžeme porovnat třeba takto:

execute if score Alex Scoreboard > Steve Scoreboard run give Alex diamond

Takový příkaz by dal hráči Alex do inventáře diamant v případě, že jeho skóre je vyšší než skóre hráče Steve.

Pro porovnání můžeš použít tato znaménka:

  • > Větší než
  • < Menší než
  • >= Větší než nebo stejné
  • <= Menší než nebo stejné
  • = Stejné

Také můžeš použít rozsah, pokud chceš zkontrolovat skóre, ale nechceš ho porovnávat s někým jiným:

execute if score Alex Scoreboard matches 50.. run give Alex diamond

Tento příkaz by dal hráči Alex do inventáře diamant v případě, že jeho skóre je v rozsahu 50.., tedy 50 a víc.

unless

Možnost unless má v Minecraftu podobné použití jako if – ve skutečnosti používá stejné podpříkazy: block, entity, score… Ale v čem je jiný? Jak vyplývá z názvu (unless – anglicky když ne), unless má opačný účinek jako if. Příkaz, který obsahuje unless se spustí když, ale nespustí se, když je podmínka splněná. Unless tedy zablokuje spuštění příkazu, když je nějaká podmínka splněna.

Kombinování možností v /execute

Možnosti příkazu /execute jdou všelijak kombinovat a vrstvit. Můžeš kontrolovat podmínku a zároveň příkaz spouštět na jiném místě, kontrolovat více podmínek, a jiné. Zde je pár příkladů:

Zkontroluje, jestli má Alex vyšší skóre než Steve a zároveň jestli má Alex více než 50:

execute if score Alex Scoreboard matches 50.. if score Alex Scoreboard > Steve Scoreboard run give Alex diamond

Teleportuje všechny hráče o blok vzhůru:

execute as @a at @s run tp @s ~ ~1 ~

Zkontroluje, jestli hráč stojí na kostce zlata, a jestli ano, dá mu diamant:

execute as @a at @s if block ~ ~-1 ~ gold_block run give @s diamond