Aide pour mon item !



  • Bonour,
    J''aimerai savoir comment faire pour quand je fais click droit avec un item sa fait spawn une tnt allumé dans les air, par terre, fin ou je regarde

    Cordialement; FanatikForce



  • Pour cela il faut que tu utilise la fonction onItemRightClick et que dedans tu instance la class de L'ENTITY de la tnt et non le block



  • @'SpyMan':

    Pour cela il faut que tu utilise la fonction onItemRightClick et que dedans tu instance la class de L'ENTITY de la tnt et non le block

    Je suis désolé mais je suis débutant forge je ne comprend pas vraiment j'ai juste que compris que la fonction était onRightClickItem mais je ne sais pas comment instance la class de l'entité



  • d'accord je vais t'aider pas à pas 🙂
    tu a juste ajouter cette fonction dans la class de l'item en question :

    
    @Override
       public ActionResult <itemstack>onItemRightClick(ItemStack itemStack, World world, EntityPlayer player, EnumHand hand)
       {
           if (!world.isRemote) // très important a ne pas oublié : le code qui se trouve dans cette condition sera executer que coté serveur. CECI EST TRES IMPORTANT 
           {
               EntityTNTPrimed entityTNTPrimed = new EntityTNTPrimed(world); // instance de la class de l'entité
               entityTNTPrimed.setPosition(player.posX, player.posY + 5, player.posZ); // je lui dit la position a la quelle elle doit spawner
               entityTNTPrimed.setFuse(8); // durée de la meche/compte à rebours avant explosion
               world.spawnEntityInWorld(entityTNTPrimed); // je fait spawn l'entité
           }
           return new ActionResult(EnumActionResult.PASS, itemStack);
       }
    
    ```</itemstack>

  • Correcteurs

    Ok, tu me rappelles moi il y a un an sur ce forum alors chui obligé d'aider un peu x]

    Déjà, la section recherche est ta meilleure amie, toujours t'en rappeler avant de dire que tu ne sais pas comment t'y prendre 5 minutes après que l'on t'ait donné une piste où commencer à chercher.

    • Pour savoir où tu cliques il faudra que tu fasses un rayTrace et il y a déjà plusieurs sujets à propos je pense mais certainement celui-ci déjà:

    https://www.minecraftforgefrance.fr/showthread.php?tid=4009

    • Maintenant concernant le fait de faire spawn ta tnt, fais une recherche, je pense que des sujets ont déjà traité de ça et pas mal d’occurrences sur "tnt" devraient ressortir.

    D'avance courage, tu vas te heurter à plein d'incompréhension.Du sang, de la sueur et des larmes couleront =D
    Musique épique en fond

    Allez, salut!



  • @'SpyMan':

    d'accord je vais t'aider pas à pas 🙂
    tu a juste ajouter cette fonction dans la class de l'item en question :

    
    @Override
       public ActionResult <itemstack>onItemRightClick(ItemStack itemStack, World world, EntityPlayer player, EnumHand hand)
       {
           if (!world.isRemote) // très important a ne pas oublié : le code qui se trouve dans cette condition sera executer que coté serveur. CECI EST TRES IMPORTANT 
           {
               EntityTNTPrimed entityTNTPrimed = new EntityTNTPrimed(world); // instance de la class de l'entité
               entityTNTPrimed.setPosition(player.posX, player.posY + 5, player.posZ); // je lui dit la position a la quelle elle doit spawner
               entityTNTPrimed.setFuse(8); // durée de la meche/compte à rebours avant explosion
               world.spawnEntityInWorld(entityTNTPrimed); // je fait spawn l'entité
           }
           return new ActionResult(EnumActionResult.PASS, itemStack);
       }
    
    ```</itemstack>
    

    Re-Bonjour 😉
    J'ai quelques erreurs sur le code que tu ma donner, peut tu m'aider ?
    http://prntscr.com/d5n0sc

    Cordialement, FanatikForce



  • oups dsl je t'es filé du code 1.8 retire le ActionResult <itemstack>au debut de la ffonction et remplace par simpplement ItemStack, dans le return met juste return itemStack et puis dans les arguments de la fonction retire le paramètre EnumHand</itemstack>



  • @'SpyMan':

    oups dsl je t'es filé du code 1.8 retire le ActionResult <itemstack>au debut de la ffonction et remplace par simpplement ItemStack, dans le return met juste return itemStack et puis dans les arguments de la fonction retire le paramètre EnumHand</itemstack>

    J'ai toujours des erreur 😕
    http://prntscr.com/d5nmmu

    Cordialement, FanatikForce



  • ecoute dans le return faut return le parametre itemStack pas instancer un itemstack
    tu fait juste

    return itemStack;
    

    et retire l'instruction

    entityTNTPrimed.setFuse(8);