Hey !
Déjà, je vais partir du principe que tu es dans une version supérieur ou égal à la 1.13 vu que tu n'as pas indiqué ta version de jeu.
Donc c'est assez simple, ça tient en 2 command-blocks !
Voici déjà l'algorithme que l'on va appliquer :
Code:
Si joueur tue joueur :
Passer score "Kill" à 1
Si "Kill" est à 1 pour joueur :
Donner 1 niveau d'XP à joueur
Mettre score "Kill" de joueur à 0
Commençons par le premier "si", l'idée est d'incrémenter le score Kill du joueur dans il en tue un autre, les deux instructions (détection de la mort, et incrémentation du score) se font automatiquement !
Pour cela, il faut préalablement créer un scoreboard ayant pour objectif "PlayerKillCount", ce scoreboard aura pour particularité de s'incrémenter automatiquement lorsqu'un joueur en tue un autre.
Il faut donc exécuter cette commande une seule fois pour créer le scoreboard :
Code:
/scoreboard objectives add Kill playerKillCount
Ensuite, il faut détecter le passage du score à 1 (signifiant que le joueur a tué une personne) et donner de l'XP si c'est le cas. Pour des questions de sûreté, on ne va pas détecter quand le score est égal à 1 mais quand il est supérieur ou égal à 1 (sinon, si le score devenait plus grand que 1, le système aurait un bug) :
Code:
execute as @a[score={Kill=1..}] run xp add @s 1 levels
Je traduis la commande :
Code:
exécuter sur tous les ayant un score Kill supérieur ou égal à 1 un don à eux-même de 1 niveau d'XP
Il faut que cette commande se trouve dans un command-block en mode "repeat" (ceux qui sont violet), qu'il soit continuellement alimenté par de la redstone (ou en mode "always active") et pointe vers le haut.
Les command-blocks repeat ont pour avantage d'éxécuter la commande qu'ils possèdent à chaque tick (donc 20 fois par secondes).
Le problème maintenant, c'est que comme le score vaudra toujours un ou plus, la commande s'exécutera à chaque tick donnant donc 1 niveau d'XP à chaque tick, ce que l'on ne veut pas, d'où la dernière instruction "Mettre score "Kill" de joueur à 0".
Pour cela, on va remettre le score de toutes personnes ayant son score à 1 ou plus à 0, ce qui se traduit par cela :
Code:
scoreboard players set @a[score={Kill=1..}] Kill 0
Qu'il faut mettre dans un command-block en mode "chain" (ceux en vert), au-dessus du précédent command-block.
Les command-blocks chain s'activent lorsque le command-block qui pointe sur eux (ici le repeat donc) s'active, donc ici à chaque tick comme le violet !
En espérant avoir répondu à ta question !