3 votes

Comment faire pour que des commandes spéciales soient exécutées en fonction d'un tableau d'affichage et d'une horloge ?

Mes amis et moi sommes en train de créer un mini-jeu d'arène où vous vous battez jusqu'à la mort. Je veux faire en sorte qu'après trente secondes (600 ticks), vous obteniez une perle de fin, et une fois que vous utilisez la perle de fin, le chronomètre revient à zéro et vous en obtenez une autre après trente autres secondes. Cependant, je suis resté bloqué au moment où le joueur obtient la perle ender. Voici ce que j'ai fait jusqu'à présent :

scoreboard objectives add Natan dummy
scoreboard objectives add NatanSuper dummy
scoreboard players add @a NatanSuper 1
execute if score 321nathango Natan >= 1 and if score 321nathango NatanSuper >= 600 NatanSuper run give 321nathango ender_pearl{display:{Name:'{"text":"Natan Super - Ender Pearl","color":"gold","bold":true,"italic":true}'},Enchantments:[{}]} 1

Note : Natan est destiné à être un nom objectif, et non pas à marquer des points. En effet, Natan est un rôle que l'on peut choisir dans une liste de personnages différents, chacun ayant ses propres capacités et ses propres délais, et donc des objectifs différents.

J'essaie de faire en sorte qu'il ne vous le donne qu'après que les 600 ticks se soient écoulés ET que le tableau d'affichage 'Natan' soit supérieur ou égal à 1. Au fait, j'essaie de faire en sorte qu'il ne vous le donne qu'après que les 600 ticks se soient écoulés, 321nathango est mon nom d'utilisateur que j'utilise pour les tests. Il semble que même en réglant manuellement mes scores à 1 et 600, rien ne se passe.

Quelqu'un sait-il ce qui ne va pas ?

0 votes

J'ai déjà vu le même problème que vous rencontrez à plusieurs reprises sur Arqade. Je vous indiquerais bien une autre question qui présente le même problème avec une bonne réponse, mais j'ai du mal à trouver la meilleure question vers laquelle vous diriger. Je vais répondre à votre question ci-dessous, et si quelqu'un veut donner une bonne cible dupliquée pour cela, n'hésitez pas.

5voto

Richie Frame Points 1800

Le problème se situe dans votre dernière commande, plus précisément dans cette partie :

execute if score 321nathango Natan >= 1 and if score 321nathango NatanSuper >= 600 NatanSuper run

Le problème ici est que vous avez choisi >= . Vous remarquez qu'à ce stade, vous avez six options : < , <= , = , > , >= y matches . Ce qu'ils Ne le fais pas. vous dire que les cinq premiers choix permettent de comparer un score à un autre. un autre score et non pour comparer un score avec un nombre constant.

Cela signifie que vous vérifiez si le joueur 321nathango 's [Natan] est supérieur ou égal au score du joueur 1 's [and] score. C'est traiter les mots 1 and comme nom de joueur et nom d'objectif respectivement, donc il essaie de rechercher un autre score, spécifiquement l'objectif nommé and (qui n'existe pas), et le joueur nommé 1 .

Si vous voulez comparer un score avec un nombre constant, utilisez matches à la place : cela vous permettra d'entrer un nombre à la place du nom et de l'objectif d'un autre joueur.

execute if score 321nathango Natan matches 1

Et si vous êtes curieux de savoir comment effectuer d'autres comparaisons que la correspondance directe de nombres, cela se fait par la notation d'intervalle :

  • 5 : exactement 5
  • 5.. : 5 ou plus
  • ..5 : 5 ou moins
  • 5..10 : 5 à 10

0 votes

Cela semble être une mauvaise alternative à la surcharge de la fonction >= et al opérateurs

0 votes

Merci beaucoup ! Ça marche !

0 votes

@ExpertCoder14 Je veux dire, de la part des personnes qui ont écrit l'interpréteur du tableau de bord et de ne pas être capable d'évaluer un score à une constante sans correspondance. C'est-à-dire que votre suggestion semble correcte (et probablement la plus correct ), mais il est regrettable que la meilleure méthode que nous ayons ne soit pas la meilleure méthode possible et il est dommage que l'intuitivité ne soit pas au rendez-vous. if score 321nathango Natan >= 1 ne fonctionne pas seulement.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X