Frage:
Wie kann ich in Minecraft einen Zufallszahlengenerator mit Befehlsblöcken erstellen?
natesmileyboy
2015-07-27 13:15:40 UTC
view on stackexchange narkive permalink

Ich möchte ein Minispiel in Minecraft erstellen, wenn ich einen Zufallsbefehlsgenerator für 9 Befehle benötige. Ich benötige einen zufälligen Befehl, um dem Spieler einen zufälligen Gegenstand zu geben.

Ich kann den Befehlsblock im Spender nicht mehr ausführen, da er einfach herausfällt, anstatt platziert zu werden.

Sechs antworten:
MrLemon
2015-07-27 14:43:27 UTC
view on stackexchange narkive permalink

Die einfachste Lösung besteht darin, überhaupt keinen tatsächlichen Zufallsgenerator zu verwenden, da dieser nicht wirklich benötigt wird. Die Zufälligkeit kann stattdessen von einer Benutzereingabe herrühren.

Damit meine ich, dass Sie ein sich schnell änderndes Anzeigetafelziel haben und die Punktzahl in dem Moment bewerten können, in dem eine Taste gedrückt wird.

Richten Sie zuerst Ihr Zufallsziel mit

  Anzeigetafelzielen ein. Fügen Sie RNG stat.playOneMinute hinzu.  

Mit stat.playOneMinute wird automatisch Erhöhen Sie es bei jedem einzelnen Spiel-Tick um 1, ohne dass ein weiterer Befehl erforderlich ist, und es ist nicht für jeden Spieler gleich (wenn dies nicht gewünscht ist, funktioniert das Zurücksetzen für alle).

Erstellen Sie nun einen Füll- / Setblock Uhr und lass es laufen

  Scoreboard-Spieler setzen @a [score_RNG_min = 9] RNG 0  

und du bist fertig. Um Ihre Zufallszahlen zu verwenden, erstellen Sie einen Befehlsblock für jedes einzelne Ergebnis und geben Sie [score_RNG = X, score_RNG_min = X] in Ihre Zielauswahlargumente ein, wobei X die Punktzahl ist zu verwenden, läuft von 0 bis 8 (!). Lösen Sie alle gleichzeitig aus. Zum Beispiel

  ... / give @a [score_RNG = 4, score_RNG_min = 4, team = PlayingTheGame] diamantschwert / give @a [score_RNG = 5, score_RNG_min = 5, team = PlayingTheGame] schmutz ...  

Wenn Ihr Befehl kein Zielauswahlargument verwendet, können Sie dafür (ab) execute verwenden, z. B.

  / führe @a aus [score_RNG = 4, score_RNG_min = 4] ~ ~ ~ setblock 1 2 3 stone  
Sie scheinen am Ende Ihres zweiten Absatzes einen unvollendeten Satz zu haben: "Mit einer Fülluhr die Zufälligkeit [...?]"
@AngusAtkinson danke.Das war ein Überbleibsel aus der Zeit, als ich vorhatte, ein Dummy-Objektiv anstelle der einfacheren Statistikversion zu verwenden.
`/ Scoreboard-Spieler setzen @a [score_RNG_min = 9] 0` sollten durch` / Scoreboard-Spieler gesetzt werden, die @a [score_RNG_min = 9] RNG 0` setzen
@BobTheAwesome guter Anruf.Fühlen Sie sich frei, eine Bearbeitung für diese Art von Fehlern vorzuschlagen.
Dies schafft eine einzigartige Erfahrung für jeden Spieler, oder wenn der Spieler nicht beteiligt ist, können Sie einfach "@p" verwenden (solange jemand online ist).+1
BlueWizard
2015-07-28 01:44:54 UTC
view on stackexchange narkive permalink

Es gibt viele Möglichkeiten, einen großartigen funktionierenden Zufallszahlengenerator mithilfe von Mojang-Zufallsalgorithmen zu erstellen.

Zum Beispiel wählt ein Spender ein zufälliges Element aus, das beim Auslösen ausgeworfen werden soll. Sie können die Stapelbarkeit des Elements mithilfe eines Komparators ermitteln. - Ein Element, das stapelbar ist (dh Kopfsteinpflaster ), gibt nur ein Signal der Länge 1 aus, während ein Element, das nicht stapelbar ist (dh Türen ) em>) gibt ein Singal der Länge 2 aus.
Somit erhalten Sie zufällig die Zahlen 1 und 2. Sie können mehrere davon in einem Array verwenden, um höhere Zahlen zu generieren. Sie können die Wahrscheinlichkeit eines bestimmten Ergebnisses anpassen, indem Sie die Anzahl der Elemente im Spender / Tropfer ändern.

image
Entschuldigen Sie diese schlechte Visualisierung. Jede Blue Box generiert 1 oder 2 mit einer 50% igen Chance. Sub>

Oder Sie können den Befehl preadplayers verwenden, der auch den in Java integrierten Zufallszahlengenerator verwendet. Bringe eine Entität wie ein Schaf hervor und verbreite sie dann. Es wird auf einer zufälligen Position landen. Diese Position kann von Druckplatten protokolliert werden, benötigt jedoch mehr Platz.

Zu diesem Thema gibt es auf YouTube mehrere Videos. Vielleicht möchten Sie sich eines davon ansehen:

Sentasaur
2016-07-19 18:15:42 UTC
view on stackexchange narkive permalink

Ich habe mir einen ziemlich einfachen Zufallszahlengenerator ausgedacht, der auch ziemlich kompakt ist. Hier ist es: Zunächst erstellen Sie eine Plattform mit so vielen Blöcken wie zufällige Ausgaben, die Sie benötigen. Verwenden Sie diesen Befehl, während Sie auf jedem Block der Plattform stehen:

/ ArmorStand beschwören ~ ~ ~ {Tags: ["R"]}

Dies wird einen ziemlich normal aussehenden Rüstungsstand beschwören, aber das Wichtigste ist das Tag R (oder was auch immer Sie eingeben, es muss während des gesamten Vorgangs gleich bleiben). Platzieren Sie dann 1 Rüstungsstand für jeden Block [dh Ausgabe] Platzieren Sie direkt unter der Plattform mit einer Lücke von 1 Block Höhe eine weitere Plattform mit gewichteten Druckplatten in der Lücke, 1 für jeden Panzerstand. Auf der Unterseite von Auf dieser Plattform platzieren Sie eine Kette von Befehlsblöcken, die sich nach unten bewegen, 1 für jede Druckplatte, wobei der erste ein bedingungsloser Impulsblock mit dem Befehl ist:

/ kill @e [type = Item, r = 2]

Dadurch wird sofort der Gegenstand entfernt, der die Druckplatte auslöst. Unter diesem Befehlsblock können Sie jetzt eine Befehlsblockkette platzieren, um für diese Ausgabe alles zu tun, was Sie wollen. Sie können sehen, wohin ich gehe - jetzt können Sie eine Redstone-Schaltung für Ihre gewünschte Ausgangsgeschwindigkeit erstellen und den Befehlsblock

auslösen

/ führe @r aus [type = ArmorStand, tag = R] ~ ~ -2 ~ Beschwörungsgegenstand

Dadurch wird ein fallengelassener Gegenstand (standardmäßig Stein) zwei Blöcke unter einem zufälligen Panzerstand beschworen, wodurch die gewichtete Druckplatte direkt unter dem Panzerstand ausgelöst wird, wodurch die Kette von Befehlsblöcken direkt unter diesem ausgelöst wird.

Hinweis: Es ist wichtig, die gewichteten Druckplatten auf einer Schicht aus Stein / anderem Material und nicht direkt auf den Befehlsblöcken zu platzieren.Dies liegt daran, dass der Block direkt unter der Druckplatte "mit Strom versorgt" wird und auch alle benachbarten Blöcke aktiviert.Wenn der angetriebene Block und die aktivierten Blöcke alle Befehlsblöcke sind, können bis zu 5 Ausgänge gleichzeitig ausgelöst werden!(es sei denn natürlich, das ist was Sie wollen)

Mein Lieblingsteil dieses Zufallsgenerators ist, dass Sie ihn so groß oder so klein machen können, wie Sie möchten.Ich habe Generatoren mit 2 Ausgängen und solche mit 400 gemacht.

Dank an Lorgon111, der mir den Befehl / execute beigebracht hat.

sentasaur
2016-09-13 22:04:52 UTC
view on stackexchange narkive permalink

Meine E-Mail wurde gelöscht und ich kann nicht auf mein ursprüngliches Konto zugreifen. Ignoriere den anderen Sentasaurier-Beitrag. Ich habe den Zufallszahlengenerator aktualisiert, damit die Einrichtung noch einfacher ist. Platzieren Sie zunächst eine Ebene mit nach unten zeigenden Befehlsblöcken "Impuls, bedingungslos, benötigt Redstone", die mit dem folgenden Befehl gefüllt sind:

/ setblock ~ ~ 2 ~ air

Verwenden Sie dann Kettenbefehlsblöcke, die nach unten zeigen, mit den Befehlen, die Sie für jede zufällige Ausgabe ausführen müssen, die Sie einrichten möchten.

Platzieren Sie für den Selektor eine Plattform aus Steinblöcken direkt über der obersten Befehlsblockebene und verwenden Sie dann Rüstungsständer mit einem bestimmten Tag (z. B. RandomNumberGenerator) ganz oben, eines für jeden Steinblock. Verwenden Sie den Befehl

/ execute @r [type = ArmorStand, tag = RandomNumberGenerator] ~ ~ ~ setblock ~ ~ ~ redstone_block

um die Zufälligkeit zu aktivieren!

* Hinweis: Wenn Sie in Minecraft 1.11-Snapshots spielen, lautet der zweite Befehl tatsächlich

/ execute @r [type = Armor_stand, tag = WhateverTagYouChooseToUse] ~ ~ ~ setblock ~ ~ ~ redstone_block

aufgrund von Namensänderungen für Rüstungsständer.

Sie sollten den anderen Beitrag bearbeiten, anstatt eine völlig neue Antwort zu veröffentlichen.Andere Benutzer sehen diesen Beitrag möglicherweise nicht, da der andere Beitrag positiv bewertet wurde.
Svj0hn
2015-07-27 14:03:37 UTC
view on stackexchange narkive permalink

Abhängig davon, wie oft es verwendet werden muss, kann diese auf reddit veröffentlichte Methode eine gute sein.

Im Grunde geht es darum, dass ein Scoreboard-Ziel auf alle festgelegt wird Ihre Zufallszahlen (in Ihrem Fall wahrscheinlich 1-9) durch ein sequentielles Signal (also Repeater in einem Kreis oder einem Minenwagen).

Solange Sie den Wert nicht zu oft abfragen, es sollte ziemlich zufällig erscheinen. Es gibt auch einige Ideen in dem Beitrag, wie man es verbessern kann.

thatoneguyjim
2018-06-10 05:42:43 UTC
view on stackexchange narkive permalink

die Art und Weise, wie ich es tat, war einfach, ich bekam 6 Rüstungsständer (mein Generator ist 1-6) und benutzte

/ testfor @e [name = 1]

und kehrte das Signal um.Jedes Mal, wenn ein Rüstungsständer zerstört wurde, reagierte er und führte einen Befehl aus.Also habe ich nur

verwendet

/ kill @r [type = Armor_Stand]

und Boom.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...