1
So I have been working hard on a puzzle/parkour/adventure map type thing lately? Like it starts as parkour, than turns into adventure I guess? And during your quest in the adventure map, you get a bow called the "Endy Bow" and whenever you shoot it, it teleports you to where it landed. But for a boss battle later in the map I want the player to have to shoot the boss, but I am already running a command for every single arrow that is on the ground.
There is a fill clock attached to it and whenever it notices that there is an arrow on the ground it runs this command.
Is there any way to prevent this from happening during the boss battle, or just it will only happen for the "Endy Bow" in general? I really need help from this.
testfor @e[type=Arrow] {inGround:1b}
There is a fill clock attached to it and whenever it notices that there is an arrow on the ground it runs this command.
tp @p @e[type=Arrow]
Is there any way to prevent this from happening during the boss battle, or just it will only happen for the "Endy Bow" in general? I really need help from this.
Create an account or sign in to comment.
9
1
Also gg at winning at minecon for diversity, i wanna learn that speedrun but summer's ending in 4 days.
1
Haha thanks It's actually not super difficult to learn, I bet in a week or so you could put something decent together.
1
make a scoreboard objective EndyBow
/scoreboard objectives add EndyBow dummy
Then make sure to give the player a value of 0 at the beginning of the map:
/scoreboard players set @p EndyBow 0
Then just before the bow shoots, set score to 1:
/scoreboard players set @p EndyBow 1
Tp only players with a EndyBow score of 0 to Arrow:
/tp @p[score_EndyBow=0] @e[type=Arrow]
/scoreboard objectives add EndyBow dummy
Then make sure to give the player a value of 0 at the beginning of the map:
/scoreboard players set @p EndyBow 0
Then just before the bow shoots, set score to 1:
/scoreboard players set @p EndyBow 1
Tp only players with a EndyBow score of 0 to Arrow:
/tp @p[score_EndyBow=0] @e[type=Arrow]
1
The simplest way would probably be to just use /blockdata to get rid of the testfor command during the boss battle, and then put it back aftwerwards:
You could probably set up something that actually detects what bow the player is holding when the arrow is fired if you really wanted to, but that would be much more difficult to do.
blockdata x y z {Command:""}
blockdata x y z {Command:"testfor @e[type=Arrow] {inGround:1b}"}
You could probably set up something that actually detects what bow the player is holding when the arrow is fired if you really wanted to, but that would be much more difficult to do.
1
So for the "x y z" in the blockdata command would that just be where the player would fight the boss?
1
The x y z targets where the command you're changing is (the location of the /testfor for the arrow thing). You would need to trigger it with another command (likely testfor) that detects when the boss battle starts. You can then run the second one that puts the command back when the battle is over.
1
Oh! So when they enter the boss battle it locks the command block, wouldn't there be an easier way where we just set a redstone block right above the command block to stop it from being powered, and than just set that to air?
1
You could do that, just make sure you have enough space and aren't hitting any other command blocks when place the redstone. But that would be a lot easier, and I didn't even think of it
1
Please?