CommandBlock Résolu commande execute

  • Auteur de la discussion Auteur de la discussion ...
  • Date de début Date de début

...

Architecte en herbe
13 Mars 2016
71
9
97
29
Salut à tous ! J'ai commencé y a un petit moment une map the escapist. Pour l'ouverture des portes j'ai choisi la commande exécute qui permet de repérer via le wifi un objet dans l'inventaire et d'exécuter une commande. Problème : un joueur de la map qui n'as pas la clé de la porte qui se présente devant la porte voulu se verra ouvrir l'accès car un autre joueur étant a l'autre bout de la prison possède la clé. Ma commande pour l'instant : execute @p[score_wifi_min=1] ~ ~ ~ /setblock ~ ~ ~ minecraft:air
Voilà et merci pour vos réponses.
 
Donc ce n'est pas suffisant de dire qu'il faut ouvrir la porte quand un joueur possède la clé, il faut que le joueur possédant la clé soit aussi en face de la porte :D
Donc il faudrait faire en sorte que quand sont réunis --> un joueur + sa clé + face à la porte = la porte s'ouvre.
Donc il faudra sélectionner le joueur ayant la clé, MAIS aussi le fait qu'il soit dans un certain rayon [r=1] autour de la porte, ou dans une certaine zone [x, y, z, dx, dy, dz] sur la map.

Par exemple, 3 possibilités :

Si tu places les CB directement aux endroits où il y a les portes en appuyant sur un bouton, tu rajoutes juste un rayon [r=1] dans le sélecteur, comme cela :
Code:
execute @p[score_wifi_min=1,r=1] ~ ~ ~ /setblock ~ ~ ~ minecraft:air

Si tu places les CB au spawn :
Tu peux le faire par zone, mais alors s'il y a plusieurs portes il faudra autant de CB qu'il y a de porte, comme cela :
Code:
execute @a[score_wifi_min=1, x, y, z, dx, dy, dz] ~ ~ ~ /setblock ~ ~ ~ minecraft:air

Ou alors, tu le fais par rayon en un seul CB pour toutes les portes, mais il faudra que chaque porte possède un armor_stand, comme cela :
Code:
execute @a[score_wifi_min=1] ~ ~ ~ execute @e[name=PORTE,r=1] ~ ~ ~ setblock ~ ~ ~ minecraft:air

Pour les deux dernières possibilités, la porte s'ouvrira automatiquement toute seule une fois arrivé près d'une porte avec une clé (mais il y a moyen de modifier).
Après pour la refermer une fois qu'on est passé c'est une autre histoire... Il faudra détecter dans un rayon autour de la porte qu'il n'y a pas de joueur avec une clé.
 
Dernière édition:
  • J'aime
Reactions: ...
Merci pour cette réponse qui va déjà pas mal m'avancer ! Effectivement pour le fait que la porte se referme après j'avais déjà anticipé ça avec mon ancienne commande du coup. J'avais tout simplement utilisé la commande testfor qui détecte un joueur près de la porte. Si le joueur était près de la porte avec la clé ma commande execute s'active et remplace la bloc de redstone alimentant la porte (avec un systeme inversé avec les torches de redstone) par un bloc d'air puis après que le joueur soit passé la détection du joueur n'es plus présente et donc un autre CB refait apparaître un bloc de redstone.

Désolé si je suis pas très clair, peut être que la capture d'écran aidera.
upload_2017-9-6_12-9-17.png


J'ai pris la commande que je trouve la plus pratique pour moi qui est la première mais malheureusement elle ne fonctionne pas très bien. Je m'explique : le fait de mettre r=1 n'est peut être pas assez grand pour détecter le joueur je l'ai donc augmenter mais je dois arriver à une valeur de r=15 donc quand un joueur possédant la clé se trouve non loin la porte s'ouvrira quand même :(

Help pls !
 

Fichiers joints

  • upload_2017-9-6_12-8-59.png
    upload_2017-9-6_12-8-59.png
    1.5 Mo · Vues : 266
Dernière édition par un modérateur:
Quelle commande précisément ? Celle de l'execute qui est dans le commande en bas de l'image est : execute @p[score_wifi_min=1,r=20] -267 71 -650 /setblock -272 70 -650 minecraft:air
Pour celui à droite : /testfor @p[x=-267,y=72,z=-650,r=3]
Pour le dernier en haut de l'image : /setblock -272 70 -650 minecraft:redstone_block
 
r=3 devrait normalement amplement suffire :/
Pourquoi n'utilises-tu pas un dx/dy ?
 
J'ai essayer vraiment un chiffre le plus bas possible mais le plus bas pour que la porte s'ouvre est 15 et elle ne s'ouvre que dans un sens --' J'ai dû louper qqc
Je ne l'ai jamais utilisé donc je ne connais pas bien cette commande.
 
Ce n'est pas une commande mais un argument, il s'agit d'une prolongation en x, y ou z en partant du point d'où tu exécutes la commandes. Donc si tu mets dx=5, alors tu prolonges ta détection de ton point de 5 blocs vers le +x (on ne peut pas aller vers le négatif). Ça te permet donc de faire des détections cubiques !
 
Dernière édition:
Ha je voit ! Je vais essayer et je verrai bien si ça marche ! Merci pour l'info :D

Et bien le même problème persiste. J'ai pourtant tout vérifier mais étant devant la porte avec une zone de 3*1*3 ou encore 5*3*5 n'est pas suffisant apparemment. Il me faut encore mettre des valeurs assez grandes. Le point centrale de la zone est pourtant la porte. J'avoue que je suis perdu :(
 
Dernière édition par un modérateur:
  • J'aime
Reactions: Oromis
C'est cette commande qui pose problème ?
Code:
 /testfor @p[x=-267,y=72,z=-650,r=3]