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

Besoin d'aide ! Bow Swap

Discussion dans 'Mapping' créé par patfrance, 4 Juin 2016.

  1. patfrance

    patfrance Mineur

    Inscrit:
    18 Avr 2015
    Messages:
    429
    Points:
    136
    Sexe:
    Homme
    Bonjour,
    J'ai besoin d'aide ! Ouw magique

    Je souhaiterais créer un système de Swap ou quand le joueur tire une flèche sur un autre joueur ou une entité il échange de place avec ...
    Vous comprenez ?
    Le système sera donc en multi mais voilà comment détecter que c'est celui qui tire qui change de place et comment détecter le reste et comment comment comment !!!!
    Raaaaa !

    Je bloque !
    Merci de m'avoir lu et n'hésitez pas à proposer vos idées !

    Je suis sûr je me taperai quand je verrai la solution (si elle existe) !
     
  2. Penguin

    Penguin Bûcheron

    Inscrit:
    30 Sept 2015
    Messages:
    252
    Points:
    118
    Sexe:
    Homme
    bah déjà, tu peux pas mettre un score fixe.. car si plusieurs personnes tient en même temps cela va buguer. Le mieux se serait de donner une ID propre à chaque entités joueurs pour les différencier. Pour cela, tu fait que quand un joueur se co pour la première fois, cela ajoute 1 de score à un armostand et ça donne le score alors obtenu sur l'armorstand au joueur.
    Ensuite, dès qu'une personne tire, tu met le même score qu'a le joueur à la flèche comme cela chaque flèche est différenciée. Et donc quand une flèche est juste à coté d'un joueur dont l'ID est différente de celle de la flèche, tu le tp au mec qui à l'id de la flèche. Have you understand? x)
     
  3. patfrance

    patfrance Mineur

    Inscrit:
    18 Avr 2015
    Messages:
    429
    Points:
    136
    Sexe:
    Homme
    J'ai bien compris mais pour la fin faut d'abord summon un AS pour TP l'autre joueur sur cette AS
    Par contre comment mettre le score a la flèche du joueur quand il tire ?
     
  4. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Juste avec des /scoreboard operations on peut identifier la personne ayant tiré la flèche et mettre son score sur la cible, c'est juste que t'auras toujours un risque si plusieurs joueurs proches se tirent dessus en même temps.
     
  5. patfrance

    patfrance Mineur

    Inscrit:
    18 Avr 2015
    Messages:
    429
    Points:
    136
    Sexe:
    Homme
    Je vois pas comment identifier qui a tiré ... mettre le score j'ai compris c'est le même système que mettre le score de l'AS sur le joueur au début
     
  6. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Tu peux ajouter un score de type useItem pour l'item bow afin de savoir quand une flèche est tirée et appliquer l'operation dans un grand rayon à ce moment.
     
  7. patfrance

    patfrance Mineur

    Inscrit:
    18 Avr 2015
    Messages:
    429
    Points:
    136
    Sexe:
    Homme
    Merci et comment détecter que le joueur est touché ? Via stats ? Parce qu'avec le r=0 ça marche pas et un plus grand rayon détecterait trop ...
     
  8. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Le rayon plus grand est le plus simple, sinon il te reste la solution de vérifier le tag HurtTime du joueur mais ça reste imparfait et plus compliqué.
     
  9. patfrance

    patfrance Mineur

    Inscrit:
    18 Avr 2015
    Messages:
    429
    Points:
    136
    Sexe:
    Homme
    Mais un rayon trop grand s'activerait même si l'on manque la cible
     
  10. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Pas s'il est couplé au HurtTime, mais si une cible prend des dégâts pile en étant à coté de la flèche là il y aura un problème.
     
  11. patfrance

    patfrance Mineur

    Inscrit:
    18 Avr 2015
    Messages:
    429
    Points:
    136
    Sexe:
    Homme
    Le problème c'est que le rayon varie selon la vitesse de la flèche un rayon de 2 suffira pour une flèche tirée à très faible puissance 3 pour puissance normale etc ...
     
  12. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    En éxecutant pendant uniquement le tic où le joueur tire une flèche, même pour un rayon énorme, si tu prends la flèche la plus proche du joueur il y a de très fortes chances qu'il trouve la bonne (et si tu parles de l'arrivée, HurtTime est très précis).

    De toute manière, comme tu le fais remarquer sans arrêt, un système de ce type ne sera jamais à 100% fiable, donc tu vas devoir choisir entre faire des concessions ou changer d'idée.
     
  13. patfrance

    patfrance Mineur

    Inscrit:
    18 Avr 2015
    Messages:
    429
    Points:
    136
    Sexe:
    Homme
    Mon problème est effectivement l'arrivée ...
    Le HirtTime ne détecte pas que les dégats de flèches ...
     
  14. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Ta flèche marque tous les joueurs à proximité desquels elle passe (r=2), ta flèche disparaît, tu sélectionnes le dernier joueur marqué ET ayant pris des dégâts. Avec ça, tu as un niveau de précision qui est plutôt satisfaisant.
     
  15. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Voilà, comme le dit Mlakuss, si tu limites ta détection de tir/arrivée à quelques tics tu restes très précis (même si je pense qu'un rayon un peu supérieur à 2 est nécessaire pour être sûr d'au moins avoir le joueur).

    Donc soit tu joues avec un rayon et un HurtTime, soit tu peux probablement oublier.
     

Partager cette page