Wie kann ich mit einem Commandblock checken, ob ein Pfeil in einem bestimmten Block drinne ist?

3 Antworten

Wenn du checken willst ob irgendein Pfeil (kein bestimmter) in einem bestimmtten Block steckt musst du schreiben:

/execute @e[type=Arrow] ~ ~ ~ testforblock ~ ~-1 ~ minecraft:[Block]

Das checkt ob der Pfeil OBEN auf einem Block steckt. Wenn du noch checken willst ob er seitlich oder unten an einem Block steckt musst du das gleiche schreiben nur:

...testforblock ~1 ~ ~ ...

...testforblock ~-1 ~ ~ ...

...testforblock ~ ~1 ~ ...

...testforblock ~ ~ ~-1 ...

...testforblock ~  ~ ~1 ...

Soll es ein bestimmter Pfeil sein (der z.B. von einem bestimmten Bogen geschossen wird) musst du erstmal einen Score erstellen:

/scoreboard objectives add [Name des Scores] dummy

Dann in einen Wiederhol-Commandblock (1.9+) oder einen, der an eine Clock angeschlossen ist (1.8-):

/execute @e[type=Arrow] ~ ~ ~ testfor @a[r=5] {SelectedItem:{id:"minecraft:bow",tag:{display:{Name:"[Name des Bogens]"}}}} scoreboard players set [Name des Scores] @e[type=Arrow] 1

In einen anderen:

/execute @e[type=Arrow,score_[Name des Scores]_min=1] ~ ~ ~ testforblock ~ ~-1 ~ minecraft:[Block]

usw.

Bei dem zweiten Teil mit dem bestimmten Pfeil bin ich mir nicht ganz sicher aber du kannst es ja mal ausprobieren.

Wenn es kein bestimmter Block sein soll, in dem der Pfeil steckt musst du schreiben.

/testfor @e[type=Arrow] {InGround:1b}

Wahrscheinlich soll danach noch was passieren also musst du ein Score erstellen.

/scoreboard objectives add [Name des Scores] dummy

In einen Wiederhol-Commandblock oder einen an eine Clock angeschlossenen:

/scoreboard players set [Name des Scores]  @e[type=Arrow] 1 {InGround:1b}

In einen anderen:

/execute @e[type=Arrow,score_[Name des Scores]_min=1] ~ ~ ~ [Aktion] z.B. summon PrimedTnt

Wenn, nachdem du gecheckt hast, dass ein Pfeil im Boden steckt, etwas passieren soll, musst du, wie im letzten Beispiel, immer einen Score erstellen.

/testfor @e[type=Arrow] {inGround:1b} x y z

P.S. Die Koordinaten sind nicht die des blocks sondern die des pfeiles

einfach in einen cblock mit comparator

Also du kannst checken, OB ein Pfeil im Boden steckt, aber soweit ich weiß nicht, in welchem Block er steckt :(


iXtreme07  07.08.2015, 07:39

Guter Ansatz...
Kannst du sagen wie?
Danke im Voraus
(Wahrscheinlich irgend ein testfor Befehl)

0