Frage von Kicksy100, 60

Kann man überprüfen ob 2 spieler in einer gegetrennt sind und das dann nur was passiert?

Antwort
von Mupfnase, 19

Version 1.9 oder höher

Du musst erst einen Immer aktiv und Wiederholen Command Block setzen in den du schreibst:

/testfor @a[x=,y=,z=,dx=,dy=,dz=]

Du gehst in den f3 Modus und richtest dein Steuerkreuz auf den Block, von dem die X, Y und Z Linien abgehen. Das heißt die rote, die grüne und die blaue Linie, die jetzt das Steuerkreuz ersetzen, sollten von dem Block, den du anvisierst die Richtung, in die der Bereich geht anzeigen. Der Block muss sich also auf der kleinsten X, Y und Z Richtung des Raumes, in  dem sich beide Spieler befinden sollen, befinden.

Die Koordinaten dieses Blockes trägst du jetzt in x=, y= und z= ein. Dazu visierst du wieder den vorhin erwähnten Block an (im f3 Modus) und trägst die Koordinaten, die unten links (bei Looking at:) stehen dort ein (die erste Zahl ist x=, die zweite y= und die dritte z=).

Bei dx=,dy=,dz= trägst du nun die Werte ein, wie weit sich der Raum, in dem sich die Spieler befinden sollen streckt. Also ist der Raum von dem vorhin mehrfach erwähnten Ursprungsblock  in die X-Richtung (roter Pfeil) 10 Blöcke lang, so musst du bei dx=10 eintragen. Das gleiche bei der Y-Richtung (grüner Pfeil). Ist der Raum, in dem sich die Spieler befinden sollen, 3 Blöcke hoch, so trägst du bei y=3 ein. Bei der Z-Richtung (blauer Pfeil). Ist der Raum 5 Blöcke breit, trägst du bei z=5 ein.

Jetzt testet der Command Block, ob sich ein Spieler in diesem Bereich befindet. Um zu abzufragen, ob sich zwei Spieler in diesem Bereich befinden, musst du erst ein Score erstellen. 

/scoreboard objectives add spielerInBereich dummy

Dieser Score wird anzeigen, wie viele Spieler sich in diesem Bereich befinden. Du kannst den Score statt spielerInBereich beliebig benennen. Damit man diesen Score in /stats Command verwenden kann, muss man ihn noch auf einen Wert setzen:

/scoreboard players set 1 spielerInBereich 0 

Jetzt ist der Score für den Spieler auf 0 gesetzt. Der Spieler  muss dabei nicht existieren. Ich habe den Spieler genannt, da du vielleicht mehrere solcher Bereiche erstellen willst. Bei dem nächsten solchem Bereich, kannst du den Spieler 2 verwenden.

Jetzt kommt der /stats Command zum Einsatz. Dieser setzt den Score spielerInBereich für den Spieler 1 auf die Anzahl, wie viele Spieler sich in diesem Bereich.

/stats block X Y Z set AffectedEntities 1 spielerInBereich

Für X Y Z setzt du die Koordinaten von dem Command Block ganz am Anfang ein. (Du kannst wieder den Command Block anvisieren und im f3 Menü die Looking at: einsetzen)

Wenn du dir jetzt das Scoreboard anzeigen lässt...

/scoreboard objectives setdisplay sidebar spielerInBereich

...wird es dir immer anzeigen, wie viele Spieler sich in diesem Bereich befinden.

Um das Scoreboard nicht mehr anzeigen zu lassen schreibst du:

/scoreboard objectives setdisplay sidebar

Um jetzt eine Aktion hinzuzufügen, setzt du wieder ein Wiederholen und Immer aktiv Command Block in dem steht:

/scoreboard players test 1 spielerInBereich 2 1000

Dieser Command fragt ab, ob sich 2 bis 1000 Spieler in diesem Bereich befinden (Ich denke das reicht fürs Erste. Du kannst die Zahlen aber auch beliebig verändern).

Jetzt setzt du an diesen Command Block einen Redstone-Komperator, bei dem das einzelne Lämpchen (die Redstone-Fackel) vom Command Block wegzeigt und neben den Redstone-Komperator einen ganz normalen Command Block. In diesem können jetzt alle Befehle stehen. Z.B. kannst du mit /setblock eine Tür öffnen, mit /give den Spielern etwas geben oder mit /tellraw, /title oder /say eine Nachricht an die Spieler übermitteln.

Ich hoffe ich konnte dir damit helfen. Wenn ja, vergesse die Auszeichnung "Hilfreichste Antwort" nicht!

Und falls du das ganze in einer anderen Version (1.7 oder 1.8) machen willst, schreibe mir das einfach. Ist kein großer Aufwand, das zu ändern.

Kommentar von Kicksy100 ,

Danke für deine ausführliche Antwort! Du hast mir sehr geholfen, jetzt kann ich weiter an meinem Jump and Run bauen! Danke 👍🏽😀

Kommentar von Kicksy100 ,

Wie ich sehe kennst du dich sehr gut mit Command-Blocks aus! Dann weißt du doch auch bestimmt wie ich ein Zombie zb. "Hallo!" Sagen lassen kann und er später irgendwo anders auftaucht und etwas anderes sagt wie zb."Tschüss!". Wie ich das mache weiß ich auch. Wie mache ich das ich keinen Name-Tag sieht  oder der dass er immer den selben Name-Tag hat.

Kommentar von Mupfnase ,

Wie genau willst du ihn etwas sagen lassen? Soll er das über sich stehen haben wie bei einem Spieler oder soll das im Chat stehen?

Kommentar von Kicksy100 ,

Ja also mit /say @p

Kommentar von Mupfnase ,

Dafür würde ich eher den /tellraw Befehl verwenden. Da kannst du die Nachrichten am besten anpassen, sogar farbig machen und mit Formatierungen versehen. 

Dazu gibst du einfach in einen Commandblock folgenden Befehl ein:

/tellraw Selektor (z.B. @p,@a,@a[r=1]) {"text":"Hallo","color":"green","bold":"true","underlined":"true","italic":,"true":,"strikethrough":true,"obfuscated":true}

Alles, was (in den geschwungenen Klammern) fett formatiert ist, musst du schreiben. Das andere kannst du auch weglassen (es fügt lediglich eine zusätzliche Formatierung hinzu). Alles kursive kannst du verändern. Für das Hallo kannst du alles andere einsetzen und für green alle anderen Farben auf folgender Liste: 

http://www.minecraftforum.net/forums/minecraft-discussion/redstone-discussion-an...

Die weiteren Angaben stehen für:

bold: fett

underlined: unterstrichen

italic: kursiv

strikethrough: durchgestrichen

obfuscated: entstellt -> der Text ist nicht mehr lesbar und die Buchstaben wechseln 20 mal pro Sekunde (kennt man von vielen Servern)

Willst du einige dieser Formatierungen nicht haben, lässt du sie einfach weg.

Willst du einen mehrfarbigen Text haben schreibst du:

/tellraw Selektor (z.B. @p,@a,@a[r=1]) [{"text":"Hallo","color":"green","bold":"true","underlined":"true","italic":,"true":,"strikethrough":true,"obfuscated":true},{"text":"du","color":"green","bold":"true","underlined":"true","italic":,"true":,"strikethrough":true,"obfuscated":true}]

Diesmal muss die Farbe bei beiden angegeben werden, da sonst der gesamte Text die angegebene Farbe hat.

Noch eine interessante Möglichkeit am /tellraw Befehl ist, dass du auch Spieler ausgeben kannst. das geht so

/tellraw Selektor [{"text":"Hallo","color":"green"},{"text":"","color":"green","extra":[{"selector":"@p"}]}]

So wird das Ergebnis dieses Commands sein:

"Hallo NameDesNächstenSpielers

 Du kannst stattdessen aber auch alle anderen Selektoren eingeben.

Ich hoffe ich konnte dir helfen!

Antwort
von ikinikin, 30

Was genau willst du wissen? Drück dich mal deutlich aus

Kommentar von Kicksy100 ,

Ich will überprüfen lassen ob 2spieler in einen bestimmten Bereich  und wenn sie sind dann öffnet sich eine Tür und wenn nur einer ist das dann passiert nix

Antwort
von LudwigSchindler, 28

in einer gegetrennt sind

Was meinst du damit?

Kommentar von Kicksy100 ,

Gegend

Keine passende Antwort gefunden?

Fragen Sie die Community