Mise à jour :

1. Construire la piste

Les bateaux vont beaucoup plus vite sur la glace, et la glace bleue est plus rapide que la glace compactée. Utilisez la glace bleue dans les lignes droites et la glace compactée dans les virages.

/fill ~ ~-1 ~ ~20 ~-1 ~4 blue_ice

Posez les longues pistes en plusieurs parties, car fill a une limite de blocs. Voir la commande fill.

2. Mise en place (une fois)

/scoreboard objectives add cp dummy
/scoreboard objectives add lap dummy "Tour"
/scoreboard objectives add time dummy
/scoreboard objectives setdisplay sidebar lap
/scoreboard players set #20 time 20

3. Placer les marqueurs des points de passage

/summon marker ~ ~ ~ {Tags:["cp1"]}
/summon marker ~ ~ ~ {Tags:["cp2"]}
/summon marker ~ ~ ~ {Tags:["goal"]}

4. Signal de départ

/scoreboard players set @a cp 0
/scoreboard players set @a lap 0
/scoreboard players set @a time 0
/tag @a add racing
/title @a title {"text":"PARTEZ !","color":"green"}

Les scores doivent d'abord être mis à 0, sinon scores={cp=0} ne correspondra pas. Distribuez les bateaux avec /give @a oak_boat.

5. Points de passage dans l'ordre (Répétition)

/execute at @e[type=marker,tag=cp1] as @a[distance=..4,scores={cp=0}] run scoreboard players set @s cp 1
/execute at @e[type=marker,tag=cp2] as @a[distance=..4,scores={cp=1}] run scoreboard players set @s cp 2
/execute at @e[type=marker,tag=goal] as @a[distance=..4,scores={cp=2}] run scoreboard players add @s lap 1
/execute at @e[type=marker,tag=goal] as @a[distance=..4,scores={cp=2}] run scoreboard players set @s cp 0

6. Chronomètre (Répétition)

/scoreboard players add @a[tag=racing] time 1

Ceci compte les ticks, 20 par seconde, et s'arrête quand un joueur termine.

7. Arrivée (Répétition)

/tag @a[tag=racing,scores={lap=3..}] add goal_now
/tag @a[tag=goal_now] remove racing
/execute as @a[tag=goal_now] run scoreboard players operation @s time /= #20 time
/execute as @a[tag=goal_now] run tellraw @a [{"selector":"@s"},{"text":" a terminé en "},{"score":{"name":"@s","objective":"time"}},{"text":" s"}]
/tag @a[tag=goal_now] remove goal_now

Dépannage

Vérifiez votre commande

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