Begyndervejledningen til kommandoblokke i Minecraft

Minecraft er en af ​​de bedste måder at introducere unge og nye mennesker til kodning. Kommandoblokke er nemme at lære og bruge, og Java-programmering er lige rundt om hjørnet med Minecraft-mods og Bukkit-plugins. Det er også bare et meget sjovt sted for erfarne kodere at pille med.

Hvad er kommandoblokke, og hvorfor skal jeg bruge dem?

Kommandoblokke er en redstone-komponent, der udfører konsolkommandoer, når den er tændt. Konsolkommandoer kan køres fra chatvinduet ved at fortsætte dem med et skråstreg fremad, '/'. Kommandoer bruges til at ændre spilverdenen på måder, der ikke er mulige manuelt, og når de bruges korrekt i kommandoblokke, giver Minecraft sin egen slags psuedo-programmeringssprog. Koden består af to ting: logik og udførelse, og de fleste programmeringssprog kræver, at begge skrives i tekst. Minecraft-kodning tager en anden rute; programmets logik og struktur bestemmes af, hvor blokkene er placeret, og hvordan de er forbundet, hvilket betyder, at du kan flyve over din verden og se de forskellige dele af dit program lagt blok-for-blok.

Ok, så hvordan starter jeg?

Denne guide bruger de nye kommandoblokke i version 1.9. Det fungerer i 1.8, men kan kræve lidt mere ekspertise.

Åbn en ny Minecraft-verden (Superflat fungerer bedst), sørg for at du er i kreativ tilstand, og tryk på “/” -knappen. Dette er kommandovinduet, som er det samme som chatvinduet, bortset fra at det starter dig med et '/', og alt, der starter med den skråstreg fremad, er en kommando. Den første kommando, du kan køre, er

/ give @p minecraft: command_block

Lad os nedbryde dette. Kommandoen “/ give” placerer elementer i en spillers beholdning og har to argumenter: spilleren og den vare, der skal gives. “@P” er en målvælger . Vælgeren “@p” vælger den nærmeste spiller. Alternativt kan du også bruge dit Minecraft-brugernavn, men hvis du kører en kommando fra konsollen, vil du altid være den nærmeste spiller. De andre målvælgere er “@a” for alle spillere, “@r” for en tilfældig spiller, og “@e” vil målrette mod alle  enheder. Enheder inkluderer alt, hvad der ikke er en blok, som monstre, snebolde, dyr og pile.

Kommandoen skal udføres med succes og give dig en ny blok. Placer den hvor som helst på jorden for at komme i gang.

Du kan se, at kommandoblokken peger i den retning, du placerer den, meget som tragte eller ovne. Dette vil være vigtigt senere.

Højreklik på blokken (eller brug den tast, du bruger til at få adgang til borde og ovne til at lave), og du vil blive mødt med kommandoblokken GUI.

Det virker lidt skræmmende i starten, men rolig, alle disse knapper gør noget. Knappen, der siger "Impuls", ændrer typen af ​​kommandoblok. Der er tre forskellige typer kommandoblokke:

  • Impuls, der kører kommandoer på den  stigende kant af redstone-strøm. Dette betyder, at når de får strøm, vil de køre deres kommando en gang og stoppe, selvom de fortsat har strøm. Dette er standardindstillingen og er den eneste tilgængelige i 1.8
  • Gentag, som kører kommandoer for hvert kryds, de får strøm. Et kryds er som en ramme, og flere kommandoer kan køres i et enkelt kryds, op til 20 gange i sekundet.
  • Kæde, der kun kører, hvis kommandoblokken, der peger ind i den, har udført kommandoen. Disse kører i rækkefølge efter hinanden i et enkelt kryds, deraf navnet 'Chain'.

Knappen, der siger "Ubetinget", forhindrer kommandoblokken i at kontrollere, om den forrige blok i kæden er udført med succes. Den anden mulighed, "Betinget", kører kun, hvis den forrige blok ikke kastede fejl.

Knappen, der siger "Needs Redstone", kører kun kommandoen, hvis kommandoblokken er tændt. Den anden mulighed, "Altid aktiv" forhindrer kommandoblokken i at kontrollere, om den er tændt, og antager bare, at den er. Denne indstilling bør ikke bruges med kommandoblokke fra Impulse, da den gør dem ubrugelige.

Lad os lave en kæde, vores første 'script'. Placer en kædekommandoblok eller to ned mod den første impulskommandoblok, som denne:

Sørg for at indstille kædeblokkene på "Altid aktiv". Ellers skulle vi placere redstone-blokke eller strøm, hvilket fylder unødvendigt. Placer en knap på impulskommandoblokken i starten af ​​kæden, og tryk på den.

Intet vil ske. Dette er fordi vi endnu ikke har udfyldt dem med kommandoer! Højreklik på impulsblokken for at redigere den, og læg en grundlæggende kommando

siger start

Bemærk, hvordan vi ikke har brug for et skråstreg fremad i kommandoblokke. Du kan bruge en, hvis du vil, men det er unødvendigt. Kommandoen “/ say” tager et argument, en tekst og siger det fra synspunktet for den, der udfører det. Hvis du kører det, vises det som "besked" ligesom almindelig chat. Hvis den kører fra en kommandoblok, vil den være “[@] meddelelse”. Alternativt er der “/ tell”, som tager et spillerargument, og “/ tellraw”, som er som “/ tell”, bortset fra at det tager rå JSON i stedet for tekst.

Du kan udfylde kædekommandoblokkene for at skrive flere ting at chatte. De udføres i rækkefølge uden forsinkelse i samme kryds. Hvis du vil køre dem med en forsinkelse, skal du konfigurere dem med redstone-repeatere. Sammen med “/ say” er der andre grundlæggende kommandoer, der gør flere ting, som “/ give”, som giver emner, “/ effekt”, der anvender potion-effekter, “/ setblock” og “/ fill”, der ændrer din verden , og mange andre. En stor database med kommandoer kan findes på Minecraft Wiki sammen med andet nyttigt indhold.

Målvælger

“@P” -målvælgerne er faktisk meget kraftigere, end de ser ud ved første øjekast. For eksempel, hvis vi ønskede at målrette mod alle enheder, ville vi bruge “@e”, men hvis vi kun ville målrette mod zombier, ville vi bruge

@e [type = Zombie]

Bemærk parenteserne efter “@e”. Inde i disse parenteser er målvælgerargumenter , hvoraf en komplet liste kan findes på Minecraft Wiki. Argumentet "type" vælger kun enheder af en bestemt type, heraf "Zombie". Hvis vi ønskede at målrette mod alle zombier inden for 10 blokke fra kommandoblokken, ville vi bruge

@e [type = Zombie, r = 10]

Med ”r” som et radiusargument. Du kan også målrette blandt andet efter placering, navn, hold og score.

Kædekommandoer

Lad os introducere en anden kommando, der ikke er som de andre. Kommandoen er “/ execute”. Denne kommando tager en anden kommando som input og udfører den fra en anden enheds synspunkt. Strukturen af ​​"/ execute" er

/ udfør @target XYZ / kommando

X, Y og Z er koordinater til at køre kommandoen fra. Dette betyder ikke noget med de fleste kommandoer, men betyder meget, hvis du bruger  relativ positionering. En relativ position starter med “~” og efterfølges af et positivt eller negativt tal, der angiver, hvor mange blokke fra oprindelsen, der er betegnet med “~ ~ ~”. Så for eksempel, hvis vi ville køre “/ sige” som om en landsbyboer talte, kan vi konfigurere kommandoen sådan:

/ udfør @e [type = Villager] ~ ~ ~ / sig Hej

Denne kommando vil få en besked til at gå ud til alle, fra alle landsbyboere. Dette er ikke optimalt, hvis vi har mere end en person eller mere end en landsbyboer, så lad os omformatere den kommando:

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

Dette er meget mere komplekst end det første og involverer at kæde to “/ udfør” kommandoer sammen. Den første “/ udfør” af kommandoen kører på hver spiller, så kontrollerer den anden for nøjagtigt en landsbyboer i nærheden, og har derefter, at Villager fortæller den nærmeste spiller “Hej”. Dette sørger for, at kun en landsbyboer snakker pr.

Læring af syntaksen

Der er bestemt mange kommandoer i Minecraft, som hver har deres egen syntaks. Hjælpemenuerne til hver kommando fortæller dig normalt hurtigt, hvilke argumenter kommandoen har brug for, og Minecraft Wiki har en detaljeret liste over, hvad hver enkelt gør. Det handler ikke så meget om at vide nøjagtigt, hvad hver kommando gør, men at vide, hvordan man bruger dem sammen. Minecraft er trods alt et spil, så det at lege med kommandoerne er en del af læringsprocessen.