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

Détecter un objet sélectionné

Discussion dans 'Mapping' créé par Gostx, 19 Nov 2014.

  1. Gostx

    Gostx Enter the World

    Inscrit:
    2 Nov 2014
    Messages:
    45
    Points:
    88
    Sexe:
    Homme
    Bonjour,
    que de problèmes en ces moments de crise, à moi d'ajouter ma pierre à l'édifice.

    Alors mon problème est le suivant :
    On peut, si vous ne le saviez pas, par commande, remplir des slots précis d'un joueurs, dont les slot.enderchest, c'est à dire les coffres de l'End. Voici la commande :
    Code (cpp):
    /replaceitem entity @p slot.enderchest.0 objetdénuédinteret 1 0
    Or, je souhaite détecter quand l'utilisateur est dans son inventaire et prend l'objet (il est sur son curseur, il le sélectionne)
    Mais est ce que j'ai cherché la réponse ? "Google est ton ami"
    En effet j'ai utilisé la 1ère firme transnationale au monde pour rechercher ma solution, j'ai aussi fait un tour du coté du wiki, même plusieurs vu le temps que j'ai pris. J'ai regardé le Chunk Format (page incluant tout les tags) et le Player Format (page incluant tout les tags des joueurs) mais je n'ai eu que des bouts de réponse inutiles.

    C'est donc pourquoi je suis ici, je suis ouvert à vous et vous pouvez me poser des questions, je suis actif.

    Merci d'avance pour votre attention.
     
  2. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Alors sache qu'il n'est pas possible à ma connaissance de savoir quand un joueur sélectionne un objet avec le curseur, qui ne correspond à aucun slot.
    Tout ce que tu peux faire est d'identifier si un item est dans un slot précis et de savoir si le joueur sélectionne ce même slot dans sa hotbar. Mais la sélection n'est pas un slot donc impossible à détecter de cette matière.
    Tu peux aussi savoir si un joueur à l'objet dans son inventaire quel que soit le slot, mais il devra l'y déposer et pas seulement cliquer dessus.

    Par contre si ton slot est bien défini tu peux aussi détecter la non-présence de l'objet, ce qui signifiera que le joueur l'aura retiré.
     
    #2 Calambiel, 19 Nov 2014
    Dernière édition: 19 Nov 2014
  3. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Oui et non, une commande permet de passer outre la condition de l'objet dans l'inventaire: le /clear.
    /clear @a objetdénuédinteret -1 0
    Avec juste cette commande, ton bloc va détecter quand un joueur possède un objetdénuédinteret dans son inventaire.
    Si tu retires le 0 en fin de commande, il enverra seulement une impulsion et retirera l'objet de l'inventaire.

    S'il te faut un détection par joueur, il faut passer par la commande /stats et d'utiliser le AffectedItem mais, cela ne marchera que si tu as une seule commande /clear en route.

    Détecter une non-présence est effectivement une alternative possible (et le /clear sera ton ami pour la suite)
     
  4. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Intéressant je ne savais pas que le clear pouvait retirer des objets en sélection sans qu'ils soient déposés.
    Du coup petite question pour moi, cela clear t-il aussi les objets en cours d'utilisation ? (table de craft entre-autres)

    Pour revenir au sujet, utiliser un scoreboard en détectant un NBTtag de slot d'enderchest n'est pas plus simple que le stats ?
     
  5. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Si, clairement. Détecter un vide n'est cependant pas toujours possible (voire difficile).
    Je n'ai pas testé pour les tables des crafts, mais je suis sûr que le /clear détecte les objets tenu par la souris: c'est comme ça que fonctionnent les powerups de Replica.
     
    • Informatif Informatif x 1
  6. Gostx

    Gostx Enter the World

    Inscrit:
    2 Nov 2014
    Messages:
    45
    Points:
    88
    Sexe:
    Homme
    Je vous remercies pour vos réponses,
    concernant le /clear j'irai me renseigner dessus, mais j'ai une dernière question :
    Si le joueur Steve est dans l'interface inventaire-enderchest et que ma boucle /clear objetdénuédinteret est en marche, cette boucle ne concernera donc pas l'enderchest de Steve ? Car l'enderchest fait partis des slots propres au joueurs.
    Je veux que le|les objets dans l'enderchest ne soient pas concernés par ma boucle clear
     
  7. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Le /clear ne touche pas l'enderchest
     
  8. Gostx

    Gostx Enter the World

    Inscrit:
    2 Nov 2014
    Messages:
    45
    Points:
    88
    Sexe:
    Homme
    Merci, je teste tout ça et je tag résolu le topic
     

Partager cette page