How to detect the winner
I’m trying to make a minigame I already mentioned in other questions of mine. I think I got all the commands except one. I need a command block to return true when there is only one player left and that’ll end the game.
I haven’t tried anything yet because I have no idea how to do this. I have also tried researching this but I never get any info. Also, I’m on 1.7.10.
Is this possible in 1.7.10 and if so, how do I do it?
2 Solutions collect form web for “How to detect the winner”
You can’t test if there is only one player left, but instead you can test if there aren’t more players left in an area, use this command:
/testfor | testfor @a | players c=2 | which are one of the 2 closest players x=X,y=Y,z=Z | at the coordinates X, Y, Z r=R | or R blocks away from them
That means you should replace
Z with the approximate center coordinates of your minigame area, and
R with half the minigame area length.
Now you should stick a comparator out of the command block, and invert it’s output, so if the command returns false (eg. that there are less then 2 players in the specified area), your output is true.
Try giving all player an objective with the command scoring system, when someone loses give them a point and make a clock running with a command to detect if any players has 1 point on the objective, if they do you can teleport them away or kill them.
Then have a clock running to the side checking in a certain radius if there is one player with the score of 0, when all players have 1 point and are taken away there will that one player left the score of 0 and you can make him win with teleporting him the winner room or ssimply say in the chat, “you are the winner!”
You can probably find all the commands you need for this on the YouTuber channel of “Dragnoz”.
He does a lot of this kind of stuff.