Je suis en train de créer un serveur PvP avec des classes de joueurs et de l'argent, et je veux donner de l'argent aux joueurs en fonction de la classe du joueur qu'ils ont tué. (Les deux sont des scores.)
Réponses
Trop de publicités?Remarque : cela ne fonctionne qu'en utilisant des badges et des équipes de couleur. Si vous ne pouvez pas autoriser ces couleurs ou si vous les utilisez déjà, cette solution ne fonctionnera pas.
Ces exemples utilisent deux classes, mais ils sont plutôt tesselables :
Créer les équipes :
/scoreboard teams add c1
/scoreboard teams option c1 color red (you can change the 'red')
/scoreboard teams add c2
/scoreboard teams option c2 color blue (you can change the 'blue')
Créer les variables du tableau de bord :
/scoreboard objectives add killc1 teamkill.red (same as above)
/scoreboard objectives add killc2 teamkill.blue (same as above)
/scoreboard objectives add constants dummy
/scoreboard players set ten constants 10
/scoreboard players set twenty constants 20
(if not yet done:)
/scoreboard objectives add money dummy
À la fin du jeu, exécutez ces commandes afin de mettre à jour l'argent :
/scoreboard players operation @a killc1 *= ten constants
/scoreboard players operation @a killc2 *= twenty constants
/execute @a ~ ~ ~ scoreboard players operation @p money += @p killc1
/execute @a ~ ~ ~ scoreboard players operation @p money += @p killc2
Il s'agit d'une configuration très simple qui permet d'ajouter le nom du joueur récemment décédé à la liste des membres de l'équipe. value
de l'auteur de l'assassinat récent money
score. Dans ce contexte, "récent" signifie "au cours de la dernière période". Les chances que deux joueurs soient tués dans le même tick de jeu sont extrêmement faibles, c'est pourquoi je n'en tiendrai pas compte.
Tout d'abord, fixez quelques objectifs :
/scoreboard objectives add kills playerKillCount
/scoreboard objectives add deaths deathCount
/scoreboard objectives add money dummy
/scoreboard objectives add value dummy
Chaque fois qu'un joueur choisit une classe, lancez
/scoreboard players add @a money 0
/scoreboard players set @a[<class selector>] value <value for class>
La première commande ajoutera 0 argent à chaque joueur. Ceci est important car les joueurs qui n'ont pas de tous (au lieu de 0) ne peut être affecté par les opérations.
Placez une ligne de blocs de commande répéter/chaîner et faites-la exécuter
/scoreboard players operation @a[score_kills_min=1,c=1] money += @a[score_deaths_min=1,c=1] value
/scoreboard players set @a[score_deaths_min=1] deaths 0
/scoreboard players set @a[score_kills_min=1] kills 0
La première commande échouera simplement si un joueur tué et un joueur tué n'existent pas dans ce tick.
Bonus : Le value
Le score est calculé joueur par joueur. Il est donc facile d'ajouter un système de primes (par exemple, un bonus pour mettre fin à une folie meurtrière) en ajustant simplement le score d'un joueur. value
.