1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

Résolu détecter un joueur dans une zone

Discussion dans 'Commands blocks & Redstone' créé par ghatos, 1 Août 2017.

  1. ghatos

    ghatos Nouveau

    Inscrit:
    20 Juil 2017
    Messages:
    10
    Points:
    0
    bonjour! :smile:
    je veux faire une map avec des elytras (genre, on doit passer dans tous les anneaux et aller à l'arrivée)
    mais je ne sais pas comment détecter le joueur lorsqu'il passe dans un anneau
    comment faire?
     
  2. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Les sélecteur x,y,z couplés au r ainsi qu'au dx,dy,dz devrait permettre de réaliser une détection circulaire en association deux détections séparées, d'abord en réalisant une sphère grâce au r puis en limitant la détection à un seul axe x ou z selon l'orientation grâce aux dx, dy et dz.

    Pour plus d'infos sur ces sélecteurs :
    https://minecraft.gamepedia.com/Commands#Target_selector_arguments
     
  3. ghatos

    ghatos Nouveau

    Inscrit:
    20 Juil 2017
    Messages:
    10
    Points:
    0
    désolé, mais j'ai rien compris oO
    et le lien que tu 'as envoyé ne m'aide pas, au contraire, ça m'embrouille encore plus
    je suis censé écrire quoi dans mon command block? (je suis en 1.12)
     
  4. boucki

    boucki Bûcheron

    Inscrit:
    12 Mai 2015
    Messages:
    295
    Points:
    103
    Sexe:
    Homme
    ça c'est pour une zone réctangulaire en volume testfor @a[x,y,z,r=tonnombre]
    et la sortie du command block se fait avec un comparateur

    r= le rayon dans lequel est cherché le joueur, et x,y,z les coordonnées
     
  5. ghatos

    ghatos Nouveau

    Inscrit:
    20 Juil 2017
    Messages:
    10
    Points:
    0
    non, ça ne marche pas :(

    il me dit: "data tag parsing failed: Exepted "{" but got "[" at: [ <--[HERE]"
    et si je remplace les crochets pas de accolades, il me dit:
    data tag parsing failed: Exepted ":" but got "," at: {2000,<--[HERE]
    après avoir remplacé les virgules par deux petits points:
    data tag parsing failed: Exepted "}" but got ":" at: {2000:192 <--[HERE]

    enfin bref, le command block se fout de ma gueule, et ça marche pas
    une autre idée? :(
    EDIT: je vous rappelle que je suis en 1.12
     
    #5 ghatos, 2 Août 2017
    Dernière édition: 3 Août 2017
  6. Bah, via un rayon c'est censé marcher o/
     
  7. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Le lien est pourtant très clair sur le fonctionnement des sélecteurs.

    Je reprends le raisonnement :
    - 1ère étape : faire une détection circulaire via le r au centre du cercle -> cela détecte dans une sphère
    - 2ème étape : faire une détection rectangulaire avec pour "milieu" le même centre -> cela détecte dans un rectangle
    - 3ème étape : détecter un joueur ayant été affecté par les deux précédentes étapes via tag ou scoreboard -> cela donne donc un cercle

    Il n'est pas possible de te donner les commandes exactes puisqu'elles vont dépendre de l'endroit où doit avoir lieu la détection, mais également de l'orientation de ton cercle (nord-sud ou est-ouest).


    @boucki cette syntaxe n'est plus autorisée, il faut bien écrire [x=y=,z=,r=] malheureusement
     
  8. En gros :
    [​IMG]
    J'espère que tu comprendras, ça m'a prit un temps fou à faire ce montage 'toshop o/
     
    • J'aime J'aime x 1
  9. ghatos

    ghatos Nouveau

    Inscrit:
    20 Juil 2017
    Messages:
    10
    Points:
    0
    okay, j'ai compris!
    MAIS, un autre problème arrive:
    il me dit: "Ghatos did not match the required data structure"
    il me détecte alors que je suis même pas dans la zone! oO
    voici la commande que j'ai écrite:
    /testfor @a {x:168,y:56,z:-936,dx:2,dy:1,dz:2,r:2}
    ( je fais des tests sur le sol pour voir si la commande marche)
    mais la commande ne marche pas.
    je fais quoi maintenant? :(
     
  10. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Les sélecteurs que tu utilises ne sont pas des data tag.
    Il faut les utiliser comme ceci :
    Code (cpp):
    /testfor @[sélecteurs] {NBT Tags supplémentaires}
    En remplaçant le test for par un scoreboard car il n'est pas possible de combiner les deux détections en une commande, mettre x/y/z change également le centre de la détection par rayon :
    Code (cpp):
    /scoreboard players set @a[sélecteurs] objectif 1 {NBT Tags}
    Il te faut donc 3 commandes : le rectangle, le rayon, et la combinaison.
     
    • Informatif Informatif x 1
  11. Ta commande doit être :

    Code (cpp):
    /testfor @a[x=168,y=56,z=-936,dx=2,dy=1,dz=2,r=2]
     
    • J'aime J'aime x 1
    • J'approuve J'approuve x 1
  12. ghatos

    ghatos Nouveau

    Inscrit:
    20 Juil 2017
    Messages:
    10
    Points:
    0
    AsiliS, ta commande marche! :smile:
    je suis détecté dans la zone!
    merci beaucoup!
     

Partager cette page