Right now I'm working on a suit of armor called the Leviathan suit, which will give a player the ability to create an explosion directly under them simply by jumping. Essentially, I want this suit and ONLY this suit to generate a SINGLE explosion per jump, and those keywords are where I'm having trouble.
I built a simple armor recognition module that detects if a player is wearing all four pieces of Leviathan armor. It works like this:
>First command block sets all players to a score of 0 on Lev (a dummy objective)
>Second command block adds any players with a single piece of Leviathan armor on
>Third, fourth, and fifth command blocks do the same thing, so if you're wearing one piece of armor, your Lev score is 1, and if you wear all four pieces, your Lev score is 4
>A sixth command block detects if any players have one air block underneath them, and adds 1 to their score on Lev if so
So now I can't figure out how I can get it to fire a single fireball and no more when the player jumps. It's frustrating, really. Everything works on a 20 tick per second timer, and so my last attempt had me firing twenty powerful fireballs per second. Guess how that went.
I've been trying to experiment with a second scoreboard, but I can't seperate it from the twenty tick per second nature of the first one. Any help on how to accomplish this armor set at all would be appreciated.
UPDATE: I figured it out, though much less cleanly than the comment below. I just found out that I can't send a .txt file so here's an image of it...
Your problem is the difference of what you expect the game to do and what you tell it to do. As far as I understood you want to summon (execute) a fireball by everyone who just jumped. What you tell the game to do is to have it summon a fireball by everyone that is currently in the air (most likely throwing that player up into the air or at least destroying the blocks below his feet. This obviously results in him still flying and sending off another explosive load.
I would instead just use the stat.jump scoreboard type to detect whether a player just jumped. Like this:
/scoreboard objectives add jump stat.jump
after that, you would have to add the armor testing, do whatever explodes and finally reset.
For the armor testing you could also simply do
/scoreboard players set @a[score_jump_min=1,score_jump=1] jump 2 {Inventory:[{Slot:103b,id:"minecraft:diamond_helmet"},{Slot:102b,id:"minecraft:diamond_chestplate"},{Slot:101b,id:"minecraft:diamond_leggings"},{Slot:100b,id:"minecraft:diamond_boots"}]}
or something similar.
Rollback Post to RevisionRollBack
I'd recommend MCStacker, Tellraw Generator and every other well made site for commands to everyone, no matter whether newbie or experienced commandblock-er.
I figured it out on my own, but your version is much cleaner and less intensive on command blocks. I'll try updating it later, but for now I've updated the original post to contain my .txt on how to do it.
Thanks for the comment, I didn't know you could assign all four armor slots to a single scoreboard command.
You can, using /setworldspawn and /gamerule spawnRadius 0. The /setworldspawn will set the default spawning point of any player, and the spawnRadius gamerule will determine how many blocks away from the exact setworldspawn that the player is a allowed to spawn. Setting it to zero gives you a perfect spawnpoint. If you want to spawn at a /setworldspawn instead of a /spawnpoint, you can use a bed and destroy it. That will erase your previous spawnpoint and it will default back to the setworldspawn.
Right now I'm working on a suit of armor called the Leviathan suit, which will give a player the ability to create an explosion directly under them simply by jumping. Essentially, I want this suit and ONLY this suit to generate a SINGLE explosion per jump, and those keywords are where I'm having trouble.
I built a simple armor recognition module that detects if a player is wearing all four pieces of Leviathan armor. It works like this:
>First command block sets all players to a score of 0 on Lev (a dummy objective)
>Second command block adds any players with a single piece of Leviathan armor on
>Third, fourth, and fifth command blocks do the same thing, so if you're wearing one piece of armor, your Lev score is 1, and if you wear all four pieces, your Lev score is 4
>A sixth command block detects if any players have one air block underneath them, and adds 1 to their score on Lev if so
So now I can't figure out how I can get it to fire a single fireball and no more when the player jumps. It's frustrating, really. Everything works on a 20 tick per second timer, and so my last attempt had me firing twenty powerful fireballs per second. Guess how that went.
I've been trying to experiment with a second scoreboard, but I can't seperate it from the twenty tick per second nature of the first one. Any help on how to accomplish this armor set at all would be appreciated.
UPDATE: I figured it out, though much less cleanly than the comment below. I just found out that I can't send a .txt file so here's an image of it...
--Northie
Your problem is the difference of what you expect the game to do and what you tell it to do. As far as I understood you want to summon (execute) a fireball by everyone who just jumped. What you tell the game to do is to have it summon a fireball by everyone that is currently in the air (most likely throwing that player up into the air or at least destroying the blocks below his feet. This obviously results in him still flying and sending off another explosive load.
I would instead just use the stat.jump scoreboard type to detect whether a player just jumped. Like this:
after that, you would have to add the armor testing, do whatever explodes and finally reset.
For the armor testing you could also simply do
or something similar.
I'd recommend MCStacker, Tellraw Generator and every other well made site for commands to everyone, no matter whether newbie or experienced commandblock-er.
I figured it out on my own, but your version is much cleaner and less intensive on command blocks. I'll try updating it later, but for now I've updated the original post to contain my .txt on how to do it.
Thanks for the comment, I didn't know you could assign all four armor slots to a single scoreboard command.
--Northie
I Also Need Help! I Wanted To Know if i can make a /spawn instead of typing /tp (x) (y) (z). So when i do /spawn it take me to the (x) (y) (z)!
You can, using /setworldspawn and /gamerule spawnRadius 0. The /setworldspawn will set the default spawning point of any player, and the spawnRadius gamerule will determine how many blocks away from the exact setworldspawn that the player is a allowed to spawn. Setting it to zero gives you a perfect spawnpoint. If you want to spawn at a /setworldspawn instead of a /spawnpoint, you can use a bed and destroy it. That will erase your previous spawnpoint and it will default back to the setworldspawn.
--Northie