De beginnershandleiding voor opdrachtblokken in Minecraft
Minecraft is een van de beste manieren om jonge en nieuwe mensen kennis te laten maken met coderen. Commandoblokken zijn eenvoudig te leren en te gebruiken en Java-programmering ligt direct om de hoek met Minecraft mods en Bukkit-plug-ins. Het is ook gewoon een erg leuke plaats voor ervaren codeerders om te sleutelen.
Wat zijn opdrachtblokken en waarom zou ik ze gebruiken??
Opdrachtblokken zijn een redstone-component die consoleopdrachten uitvoeren wanneer ze worden aangedreven. Console-opdrachten kunnen vanuit het chatvenster worden uitgevoerd door ze met een schuine streep door te voeren, '/'. Commando's worden gebruikt om de spelwereld aan te passen op manieren die niet met de hand mogelijk zijn, en, wanneer correct gebruikt in commandoblokken, geef Minecraft zijn eigen soort psuedo-programmeertaal. Code bestaat uit twee dingen: logica en uitvoering, en de meeste programmeertalen moeten beide in tekst worden geschreven. Minecraft-codering neemt een andere weg in; de logica en de structuur van het programma wordt bepaald door waar de blokken worden geplaatst en hoe ze zijn aangesloten, wat betekent dat je over je wereld kunt vliegen en de verschillende delen van je programma blok voor blok kunt zien.
Ok, dus hoe begin ik?
Deze handleiding maakt gebruik van de nieuwe opdrachtblokken in versie 1.9. Het werkt in 1.8, maar heeft misschien wat meer expertise nodig.
Open een nieuwe Minecraft-wereld (Superflat werkt het beste), zorg ervoor dat je in de Creatieve modus bent en druk op de "/" -knop. Dit is het opdrachtvenster, wat hetzelfde is als het chatvenster, behalve dat het begint met een '/' en alles dat begint met de schuine streep is een commando. Het eerste commando dat u kunt uitvoeren is
/ geef @p minecraft: command_block
Laten we dit opsplitsen. Het commando "/ geven" plaatst items in een spelersinventaris en heeft twee argumenten: de speler en het te geven item. De "@p" is een doelwit selector. De selector "@p" selecteert de dichtstbijzijnde speler. Je kunt ook je Minecraft-gebruikersnaam gebruiken, maar als je een opdracht uitvoert vanaf de console, ben je altijd de dichtstbijzijnde speler. De andere doelselectoren zijn "@a" voor alle spelers, "@r" voor een willekeurige speler en "@e" zal alle richten entiteiten. Entiteiten bevatten alles wat geen blok is, zoals monsters, sneeuwballen, dieren en pijlen.
De opdracht moet met succes worden uitgevoerd en u een nieuw blok geven. Plaats het overal op de grond om te beginnen.
Je ziet dat het commandoblok in de richting wijst waarin je het plaatst, net zoals hoppers of ovens. Dit zal later belangrijk zijn.
Klik met de rechtermuisknop op het blok (of gebruik de sleutel die u gebruikt om toegang te krijgen tot knuttafels en ovens) en u zult begroet worden met de GUI-opdrachtregel.
Het lijkt een beetje eng in het begin, maar maak je geen zorgen, al die knoppen doen iets. De knop met de tekst "Impuls" verandert het type opdrachtblok. Er zijn drie verschillende soorten opdrachtblokken:
- Impuls, die opdrachten uitvoeren op de stijgende flank van redstone-stroom. Dit betekent dat wanneer ze van stroom worden voorzien, ze hun opdracht één keer uitvoeren en stoppen, zelfs als ze nog steeds worden gevoed. Dit is de standaardinstelling en is de enige die beschikbaar is in 1.8
- Herhaal, die elk commando's uitvoeren Kruis aan ze worden aangedreven. Een vinkje is als een frame en meerdere opdrachten kunnen in een enkele vink worden uitgevoerd, tot 20 keer per seconde.
- Chain, die alleen wordt uitgevoerd als het opdrachtblok dat erop wijst, de opdracht heeft uitgevoerd. Deze zullen achter elkaar, één na één, in een enkele teek lopen, vandaar de naam 'Ketting'.
De knop die zegt "Onvoorwaardelijk" stopt het opdrachtblok om te controleren of het vorige blok in de keten met succes is uitgevoerd. De andere optie, "Voorwaardelijk", wordt alleen uitgevoerd als het vorige blok geen fouten heeft gegenereerd.
De knop met de melding "Redstone nodig heeft" voert alleen de opdracht uit als het opdrachtblok wordt ingeschakeld. De andere optie, "Altijd actief", stopt het opdrachtblok om te controleren of het wordt gevoed en veronderstelt dat het is. Deze optie moet niet worden gebruikt met Impulse-opdrachtblokken, omdat ze hierdoor onbruikbaar worden.
Laten we een ketting maken, ons eerste 'script'. Plaats een kettingcommandoblok of twee tegenover elkaar in het eerste impulsbevelblok, zoals dit:
Zorg ervoor dat de kettingblokken op "Altijd actief" zijn ingesteld. Anders zouden we redstone-blokken of stroom moeten plaatsen, die onnodige ruimte inneemt. Plaats een knop op het impulsbesturingsblok aan het begin van de ketting en druk erop.
Er zal niks gebeuren. Dit komt omdat we ze nog niet met opdrachten hebben gevuld! Klik met de rechtermuisknop op het impulsblok om het te bewerken en voer een basisopdracht in
zeg start
Merk op hoe we geen forward slash in commandoblokken nodig hebben. Je kunt er een gebruiken als je wilt, maar het is niet nodig. De opdracht "/ say" neemt een argument, tekst en zegt dit vanuit het oogpunt van degene die het uitvoert. Als u het uitvoert, wordt het weergegeven als "bericht" net als bij een normale chat. Als het vanuit een opdrachtblok wordt uitgevoerd, is dit "[@] bericht". Als alternatief is er "/ tell", wat een spelersargument vereist, en "/ tellraw" wat lijkt op "/ tell", behalve dat het raw JSON vereist in plaats van tekst.
Je kunt de kettingopdrachtblokken vullen om meer dingen te schrijven om te chatten. Ze worden in dezelfde volgorde, zonder vertraging, uitgevoerd. Als u ze met vertraging wilt uitvoeren, moet u ze instellen met redstone-repeaters. Samen met "/ say" zijn er andere basiscommando's die meer dingen doen, zoals "/ give", die items, "/ effect" geeft, die potion-effecten toepassen, "/ setblock" en "/ fill" die je wereld aanpassen , en vele anderen. Een grote database met commando's is te vinden op de Minecraft Wiki, samen met andere nuttige inhoud.
Doelselectie
De doelzoekers voor "@p" zijn eigenlijk veel krachtiger dan ze op het eerste gezicht lijken. Als we bijvoorbeeld alle entiteiten willen targeten, gebruiken we '@e', maar als we alleen zombies willen targeten, gebruiken we
@e [type = Zombie]
Let op de haakjes achter "@e". Binnen die haakjes zijn doel selector argumenten, een volledige lijst hiervan is te vinden op de Minecraft Wiki. Het "type" argument selecteert alleen entiteiten van een bepaald type, deze is "Zombie". Als we alle zombies binnen 10 blokken van het opdrachtblok zouden willen targeten, zouden we het gebruiken
@e [type = Zombie, r = 10]
Met de "r" als radiusargument. Je kunt ook targeten op locatie, naam, team en score, onder anderen.
Opdrachten koppelen
Laten we een ander commando introduceren dat niet is zoals de andere. Het commando is "/ execute". Deze opdracht neemt een andere opdracht als invoer en voert deze uit vanuit het gezichtspunt van een andere entiteit. De structuur van "/ execute" is
/ @doel X Y Z / commando uitvoeren
X, Y en Z zijn coördinaten om het commando uit te voeren. Dit doet er niet toe bij de meeste opdrachten, maar het maakt veel uit als je het gebruikt relatieve positionering. Een relatieve positie begint met "~" en wordt gevolgd door een positief of een negatief getal dat aangeeft hoeveel blokken van de oorsprong, die wordt aangeduid met "~ ~ ~". Dus als we bijvoorbeeld "/ say" willen uitvoeren alsof een dorpeling aan het praten was, kunnen we het commando zo instellen:
/ execute @e [type = Dorpeling] ~ ~ ~ / zeg Hé
Deze opdracht zal ervoor zorgen dat iedereen, van elke dorpeling, een bericht krijgt. Dit is niet optimaal als we meer dan één persoon of meer dan één dorpeling hebben, dus laten we dat commando opnieuw formatteren:
/ execute @a ~ ~ ~ / execee @e [type = Dorpeling, c = 1] ~ ~ ~ / vertel @p Hey
Dit is veel complexer dan de eerste, en houdt in dat twee "/ execute" -opdrachten samen worden geketend. De eerste "/ execute" van de opdracht wordt uitgevoerd op elke speler, de tweede controleert precies één dorpeling in de buurt en laat die dorpeling vervolgens de dichtstbijzijnde speler "Hé" vertellen. Dit zorgt ervoor dat slechts één dorpeling per persoon praat.
De syntaxis leren
Er zijn zeker veel opdrachten in Minecraft die elk hun eigen syntaxis hebben. De helpmenu's voor elke opdracht vertellen u meestal snel welke argumenten de opdracht nodig heeft en de Minecraft Wiki heeft een gedetailleerde lijst van wat elke eigen doet. Het gaat er niet zozeer om precies te weten wat elke opdracht doet, maar om te weten hoe ze samen moeten worden gebruikt. Minecraft is immers een spel, dus spelen met de commando's is een onderdeel van het leerproces.