Hemsida » hur » Nybörjarens guide till kommandoblock i Minecraft

    Nybörjarens guide till kommandoblock i Minecraft

    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 coders att tinker in.

    Vad är kommandoblock och varför ska jag använda dem?

    Kommandonblock är en redstone-komponent som kör konsolkommandon när den drivs. Konsolkommandon kan spåras från chattfönstret genom att fortsätta dem med ett framåtstreck, '/'. 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 sitt eget slags 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 innebär 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 sig av de nya kommandonblocken i version 1.9. Det kommer att fungera i 1,8, men kanske kräver 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 börjar med en '/', och allt som börjar med framåtskuren ä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ål-väljaren. 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 bli 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 kommandot block GUI.

    Det verkar lite läskigt först, men oroa dig inte, alla dessa knappar gör något. Knappen som säger "Impulse" ändrar typen av kommandonblock. Det finns tre olika typer av kommandonblock:

    • Impulse, som kör kommandon på stigande kant av rödstenströmmen. Det betyder att när de drivs, kommer de att köra kommandot 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
    • Upprepa, vilken kör kommandon varje bock 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.
    • Kedja, 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 "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 det föregående blocket inte slängde några 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 det är strömförsörjning och antar att det är. Det här alternativet bör 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 in ett grundläggande kommando

    säg start

    Lägg märke till hur vi inte behöver en framåt snedstreck 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 "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", vilket ger objekt, "/ effect", som tillämpar 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ålvalarna "@p" är faktiskt mycket kraftigare än de verkar vid första anblicken. Om vi ​​till exempel vill rikta alla enheter, skulle vi använda "@e", men om vi ville bara rikta Zombies skulle vi använda

    @e [type = zombie]

    Notera parenteserna efter "@e". Innehållet är de här fästena målväljareargument, en fullständig lista över vilka 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 av kommandoblocket skulle vi använda

    @e [type = zombie, r = 10]

    Med "r" är 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

    / exekvera @target X Y Z / command

    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 upp kommandot så här:

    / kör @e [typ = Villager] ~ ~ ~ / säg Hej

    Med det här kommandot kommer 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 reformat det här kommandot:

    / exekvera @a ~ ~ ~ / exekvera @e [typ = Villager, c = 1] ~ ~ ~ / berätta @p Hej

    Det här är mycket mer komplext än det första, och innebär att man kombinerar två "/ exekvera" 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ära sig 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.