Si vous avez déjà tenté d’infliger des dégâts à un joueur via des commandes, vous vous êtes sûrement rendu compte que ce n’était pas si évident. Avant la 1.19.4, le moyen le plus simple de le faire, bien que bancal, était de donner des effets négatifs au joueur. Mais dans cette version, décidément bénéfique pour les créateurs de maps, est apparue la commande /damage.
Elle permet, à travers une syntaxe intuitive, d’infliger un certain montant de dégâts à une entité en précisant optionnellement le type de dégâts. Il est également possible de spécifier soit la position d’origine du dégât, soit l’entité d’origine.
Infliger des dégâts
Infliger des dégâts à une entité se fait avec la commande /damage <cible> <montant> [<type>].
Le paramètre cible ne doit correspondre qu’à une seule entité, et peut être le pseudo d’un joueur, un UUID ou un sélecteur. Le paramètre montant, quant à lui, est un nombre à virgule qui définit la quantité de dégâts à infliger à la cible. Notez que ce montant ne correspond pas à la quantité de vie enlevée à l’entité, car celle-ci change en fonction de la difficulté du monde, de l’armure de l’entité ou encore de ses effets de potions.
Le type de dégâts, précisé avec le paramètre type, est optionnel et permet de simuler la cause des dégâts infligés. Il peut notamment valoir minecraft:falling_anvil, minecraft:lava ou encore minecraft:sweet_berry_bush. Chaque type de dégâts a un effet différent, tel qu’un son ou un message de mort spécifique. Notez également que chaque type d’entité peut avoir un comportement particulier lorsqu’on lui inflige un certain type de dégâts. Par exemple, les endermen ne sont pas affectés par les projectiles autres que les potions.
Exemples
Dans cet exemple, le joueur YanisBft a reçu 10 points de dégâts, sans type de dégâts spécifique, avec la commande /damage YanisBft 10.
Ici, le joueur YanisBft a reçu 40 points de dégâts de souffle de dragon, le faisant mourir, avec la commande /damage YanisBft 40 minecraft:dragon_breath.
Spécifier l’origine des dégâts
Spécifier l’origine des dégâts peut se faire de deux manières : soit en indiquant une position, soit en indiquant une entité.
Spécifier la position d’origine des dégâts se fait avec la commande /damage <cible> <montant> <type> at <x> <y> <z>.
Les paramètres x, y et z sont les coordonnées du bloc d’origine des dégâts. Par exemple, il peut s’agir des coordonnées du lit qui a explosé dans le Nether, ou du cactus qui a piqué l’entité ciblée.
Spécifier l’entité d’origine des dégâts se fait avec la commande /damage <cible> <montant> <type> by <entité> [from <cause>].
Le paramètre entité correspond à la source directe des dégâts infligés, et doit être une seule entité. Elle peut être par exemple le zombie qui a frappé la cible, ou la flèche qui l’a touché. Il est également possible de préciser la source indirecte des dégâts avec le paramètre optionnel cause. Si la source directe est par exemple une flèche, la source indirecte peut être l’entité qui l’a tiré.
Exemples
Dans chacun de ces exemples, le zombie momifié le plus proche a reçu 50 points de dégâts de type « attaque de joueur », ce qui suffit à le tuer.
Sur la première image, la commande effectuée est /damage @e[type=husk,limit=1,sort=nearest] 50 minecraft:player_attack. L’entité d’origine des dégâts n’a donc pas été spécifiée, et le zombie momifié a donné uniquement de la chair putréfiée.
Sur la deuxième image, la commande effectuée est /damage @e[type=husk,limit=1,sort=nearest] 50 minecraft:player_attack by YanisBft. La source directe des dégâts est le joueur YanisBft, et le zombie momifié a donné de la chair putréfiée et des points d’expérience.