5Jul
Minecraft är ett av de bästa sätten att introducera unga och nya människor att koda. Kommandoblock är lätta att lära och använda, och Java-programmering ligger precis runt hörnet med Minecraft mods och Bukkit plugins. Det är också bara en mycket rolig plats för erfarna kodare att tinker in.
Vad är kommandoblock och varför ska jag använda dem?
Kommandoblock är en redstone-komponent som kör konsolkommandon när den är driven. Konsolkommandon kan spåras från chattfönstret genom att fortsätta dem med ett snedstreck framåt, '/'.Kommandon används för att modifiera spelvärlden på sätt som inte är möjliga för hand och, när den används korrekt i kommandonblock, ger Minecraft sin egen typ av psuedo-programmeringsspråk. Koden består av två saker: logik och körning, och de flesta programmeringsspråk kräver att båda skrivs i text. Minecraft kodning tar en annan väg;logiken och strukturen i programmet bestäms av var blocken placeras och hur de är anslutna, vilket betyder att du kan flyga över din värld och se de olika delarna av ditt program som anges block-by-block.
Ok, så hur börjar jag?
Den här guiden använder de nya kommandon i version 1.9.Det kommer att fungera i 1,8, men kan kräva lite mer expertis.
Öppna en ny Minecraft-värld( Superflat fungerar bäst), se till att du befinner dig i kreativt läge och tryck på "/" -knappen. Det här är kommandofönstret, vilket är samma sak som chattfönstret, förutom att det startar med en '/', och allt som börjar med det framåt snedstrecket är ett kommando. Det första kommandot du kan köra är
/ ge @p minecraft: command_block
Låt oss bryta ner det här. Kommandot "/ ge" placerar objekt i en spelares inventering och har två argument: spelaren och objektet att ge."@p" är en målväljare. Väljaren "@p" väljer den närmaste spelaren. Alternativt kan du också använda ditt Minecraft användarnamn, men om du kör ett kommando från konsolen kommer du alltid att vara närmaste spelare. De andra målväljarearna är "@a" för alla spelare, "@r" för en slumpmässig spelare och "@e" kommer att rikta alla -enheter. Entiteter inkluderar allt som inte är ett block, som monster, snöbollar, djur och pilar.
Kommandot ska utföras framgångsrikt och ge dig ett nytt block. Placera den var som helst på marken för att komma igång.
Du kan se att kommandoblocket pekar i den riktning du placerar den, mycket som tapp eller ugnar. Detta kommer att vara viktigt senare.
Högerklicka på blocket( eller använd vilken nyckel du använder för att få tillverka skapbord och ugnar) och du kommer att hälsas med kommandotblocket GUI.
Det verkar lite läskigt först, men oroa dig inte, alla dessa knappar gör någonting. Knappen som säger "Impulse" ändrar typen av kommandonblock. Det finns tre olika typer av kommandonblock:
- Impulse, som kör kommandon på -stigningskanten av rödstensström. Det betyder att när de drivs, kommer de att köra sina kommandon en gång och sluta, även om de fortsätter att drivas. Detta är standardinställningen och är den enda som finns i 1.8
- Repeat, vilken kör kommandon varje -kryss de är drivna. Ett fält är som en ram och flera kommandon kan köras i ett enda fält, upp till 20 gånger i sekundet.
- -kedjan, som endast kör om kommandot blocket som pekar in det har utfört sitt kommando. Dessa kommer att springa i ordning, en efter en, i ett enda fält, därav namnet "Chain".
Knappen som säger "Unconditional" stannar kommandot blocket från att kontrollera om det tidigare blocket i kedjan har körts framgångsrikt. Det andra alternativet, "Villkorligt", körs endast om föregående block slängde inga fel.
Knappen som säger "Behöver Redstone" kör endast kommandot om kommandot blockeras. Det andra alternativet, "Alltid aktivt" stoppar kommandoblocket från att kontrollera om den är strömförsörjd och antar att den är. Det här alternativet ska inte användas med impulskommandon eftersom det gör dem värdelösa.
Låt oss göra en kedja, vårt första "skript".Placera ett kedjekommandoblock eller två vända mot det första impulskommandot, så här:
Se till att kedjeblocken är "Alltid aktiv".Annars skulle vi behöva lägga ner redstone-block eller ström, vilket tar onödigt utrymme. Placera en knapp på impulskommandot i början av kedjan och tryck på den.
Inget kommer att hända. Detta beror på att vi inte har fyllt dem med kommandon än! Högerklicka på impulsblocket för att redigera det och sätt i ett grundläggande kommando
säg start
Observera hur vi inte behöver en framåtskärning i kommandonblock. Du kan använda en om du vill, men det är onödigt. Kommandot "/ say" tar ett argument, text och säger det från synvinkel av den som utför den. Om du kör det visas det som "& lt; användarnamn & gt;meddelande "precis som vanlig chatt. Om det springer från ett kommandonblock blir det "[@] message".Alternativt finns "/ tell", som tar ett spelarargument och "/ tellraw" som är som "/ tell" förutom att det tar rå JSON istället för text.
Du kan fylla kedjekommandonblocken för att skriva fler saker att chatta. De kommer att exekveras i ordning, utan dröjsmål, i samma fält. Om du vill köra dem med en fördröjning måste du konfigurera dem med redstone repeaters. Tillsammans med "/ say" finns det andra grundläggande kommandon som gör fler saker, som "/ ge", som ger objekt, "/ effect", som applicerar potion-effekter, "/ setblock" och "/ fill" som ändrar din värld, och många andra. En stor databas med kommandon finns på Minecraft Wiki, tillsammans med annat användbart innehåll.
Målväljare
Målväljarena "@p" är faktiskt mycket kraftfullare än de verkar vid första anblicken. Om vi till exempel vill rikta alla enheter, skulle vi använda "@e", men om vi ville rikta in sig endast Zombies skulle vi använda
@e [type = Zombie]
Lägg märke till parenteserna efter "@e".Innehållet i dessa fästen är -målväljare argument , en fullständig förteckning finns på Minecraft Wiki. Argumentet "typ" väljer endast enheter av en viss typ, den här är "Zombie".Om vi ville rikta in alla zombies inom 10 block i kommandonblocket skulle vi använda
@e [type = Zombie, r = 10]
Med "r" vara ett radie argument. Du kan också rikta in efter plats, namn, lag och poäng bland annat.
Chaining Commands
Låt oss införa ett annat kommando som inte är som de andra. Kommandot är "/ exekvera".Detta kommando tar ett annat kommando som inmatning och kör det från en annan persons synvinkel. Strukturen av "/ execute" är
/ execute @target X Y Z / kommandot
X, Y och Z är koordinater för att köra kommandot från. Det spelar ingen roll med de flesta kommandon, men det betyder mycket om du använder relativ positionering. En relativ position börjar med "~" och följs av ett positivt eller negativt tal som anger hur många block från ursprunget som betecknas "~ ~ ~".Så, till exempel, om vi ville springa "/ säga" som om en Villager pratade, kan vi ställa in kommandot så här:
/ execute @e [type = Villager] ~ ~ ~ / säger Hej
Detta kommando kommerorsaka ett meddelande att gå ut till alla, från varje bybor. Detta är inte optimalt om vi har mer än en person eller mer än en bybor, så låt oss omformatera det här kommandot:
/ execute @a ~ ~ ~ / execute @e [type = Villager, c = 1] ~ ~ ~ / tell@p Hej
Det här är mycket mer komplext än det första och innebär att man kombinerar två "/ execute" kommandon tillsammans. Den första "/ exekvera" av kommandot körs på varje spelare, sedan den andra kontrollen för exakt en Villager i närheten, och då har den Villager berätta närmaste spelare "Hej".Detta gör att endast en Villager pratar per person.
Lär dig syntaxen
Det finns verkligen många kommandon i Minecraft som alla har sin egen syntax. Hjälpmenyerna för varje kommando kommer vanligtvis att berätta för dig vilka argument kommandot behöver, och Minecraft Wiki har en detaljerad lista över vad varje egen gör. Det handlar inte så mycket om att veta exakt vad varje kommando gör, utan att veta hur man använder dem tillsammans. Minecraft är ett spel, trots allt så att leka med kommandon är en del av lärandeprocessen.