Get l'entité que je vise



  • Bonjoir à tous !

    Je me heurte à un petit problème.

    Je cherche à récupérer une entité quand je la vise et a une certaine distance,
    il faut utiliser très certainement RayTrace, des vecteurs je pense à getLookVec(), mais je n'ai rien de concluant de mon côté.

    Pas la peine de vous partager mon code actuel étant donné que j'ai rage-quit dessus et ai tout supprimé….

    Si quelqu'un a une idée je suis preneur !

    -ZeAmateis-


  • Administrateurs

    Il y a le code de l'enderman dont tu peux t'inspirer.



  • Le truc c'est que c'est pour une commande "/delete l'entité que je vise" et que du coup j'ai pas l'instance de l'entité que je vise


  • Correcteurs

    Pirouette, tu fais ta commande et la prochaine entité tapée, autorisée à être détruite, … est détruite

    Edit: Ou avec un IEntitySelector



  • Ouais mais c'est plus complexe si je dois rentrer l'id ou le nom de l'entité.


  • Administrateurs

    client ou serveur ?
    Car côté client c'est très simple :

       @SubscribeEvent
       public void onClick(PlayerInteractEvent.LeftClickEmpty event)
       {
           RayTraceResult rayTrace = event.getEntityPlayer().rayTrace(4, 1.0F);
           if(rayTrace.typeOfHit == RayTraceResult.Type.ENTITY)
           {
               event.getEntityPlayer().sendMessage(new TextComponentString("You hit : " + rayTrace.entityHit.getName()));
           }
       }
    

    ÉDIT : j'ai parlé trop vite, ça ne fonctionne que pour les blocs, pas les entités.

    Visiblement pour savoir si tu as la souris sur une entité ou pas, ça se passe dans la fonction getMouseOver de EntityRenderer.
    Tu peux utiliser Minecraft.getMinecraft().objectMouseOver si tu es côté client et que tu raytrace doit avoir la même longueur que la porté de base de minecraft.
    Sinon faut faire un code custom un peu comme celui dans EntityRenderer.getMouseOver



  • Le code est pour du serveur malheureusement.


  • Rédacteurs

    Pourquoi ne pas faire ce qu'à dit Folgansky ? Tu tapes ta commande puis la prochaine entité que tu tapes disparait


  • Correcteurs

    Sinon si tu peux te le permettre, tu crées un item. Et là tu as direct les fonctions quand tu cliques sur une entité (sauf si ça a changé depuis 1.7.10)



  • @'BrokenSwing':

    Pourquoi ne pas faire ce qu'à dit Folgansky ? Tu tapes ta commande puis la prochaine entité que tu tapes disparait

    Ouais c'est ce que je me suis dis, mais bon la flemme donc, j'ai lâcher l'affaire….