Mise à jour :

1. Préparation (une fois)

/scoreboard objectives add wave dummy "Vague"
/scoreboard objectives add left dummy
/scoreboard objectives setdisplay sidebar wave
/scoreboard players set #game wave 0

wave contient la vague actuelle et left le nombre d'ennemis restants.

2. Faire apparaître les ennemis aux marqueurs

/execute at @e[type=marker,tag=spawn] run summon zombie ~ ~ ~ {Tags:["enemy"],PersistenceRequired:1b}

Un zombie apparaît à chaque marqueur d'apparition. Le tag enemy permet de ne compter que les créatures de cette partie. Placez des marqueurs avec /summon marker ~ ~ ~ {Tags:["spawn"]} autour de l'arène.

3. Compter les ennemis (Répétition)

/execute store result score #game left if entity @e[tag=enemy]

Utilisez un bloc Répétition réglé sur Toujours actif ; le nombre d'ennemis tagués va dans left (voir execute store).

4. Vague suivante quand tous sont morts

/execute if score #game left matches 0 run scoreboard players add #game wave 1
/execute if score #game left matches 0 run title @a title {"text":"Vague suivante !","color":"red"}
/execute if score #game left matches 0 at @e[type=marker,tag=spawn] run summon zombie ~ ~ ~ {Tags:["enemy"],PersistenceRequired:1b}

Enchaînez-les après l'étape 3. Ajoutez des lignes avec if score #game wave matches 5.. pour des créatures plus coriaces ; voir les commandes de zombie.

5. Fin de partie

/execute unless entity @a[gamemode=adventure] run tellraw @a [{"text":"Partie terminée ! Vague atteinte : ","color":"red"},{"score":{"name":"#game","objective":"wave"}}]

Passez les joueurs tombés en Spectateur pour que la vérification fonctionne, puis supprimez les ennemis avec /kill @e[tag=enemy].

6. Des ennemis plus coriaces dans les vagues suivantes

# à ajouter après la chaîne de l'étape 4
execute if score #game left matches 0 if score #game wave matches 5.. at @e[type=marker,tag=spawn] run summon skeleton ~ ~ ~ {Tags:["enemy"],PersistenceRequired:1b}

À partir de la vague 5, des squelettes rejoignent les zombies. L'étape 4 augmente d'abord le numéro de vague, donc cette ligne voit la nouvelle vague. Ajoutez une ligne 10.. pour des vagues encore plus tardives.

7. Un boss à la vague 10 (Java 1.21.5+)

execute if score #game left matches 0 if score #game wave matches 10 at @e[type=marker,tag=spawn,limit=1] run summon zombie ~ ~ ~ {Tags:["enemy"],PersistenceRequired:1b,CustomName:"Boss",CustomNameVisible:1b,attributes:[{id:"minecraft:max_health",base:100}],Health:100f}

Seule la vague 10 amène un zombie nommé avec 100 points de vie ; limit=1 limite à un seul boss. En 1.21.4 et antérieur, écrivez CustomName:'"Boss"'. Voir la commande de boss.

Dépannage

Vérifiez votre commande

Le Command Error Doctor (en anglais) vérifie dans votre navigateur les erreurs de syntaxe les plus courantes.