• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Choix entre deux random

    1.9.x et 1.10.x
    1.9.4
    3
    7
    1015
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Tituya
      Tituya dernière édition par

      Voila, pour mon mod, je souhaite crée un StickOfRandom ou, à chaque clique de souris un évent “random” paris ce que j’ai programmé ce produit. Je m’explique :

      package com.tuto.mod.items;
      
      import java.util.Random;
      
      import net.minecraft.entity.item.EntityItem;
      import net.minecraft.entity.item.EntityTNTPrimed;
      import net.minecraft.entity.item.EntityXPOrb;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.ActionResult;
      import net.minecraft.util.EnumActionResult;
      import net.minecraft.util.EnumHand;
      import net.minecraft.world.World;
      
      public class Stick extends Item
      {
          public final Random rand = new Random();
      
          public Stick()
          {
          this.setMaxDamage(20);
          this.maxStackSize = 1;
          }
      
          @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
                 {
                     rand.nextInt(1);
                   **  if (rand.)**
                     {
                         EntityTNTPrimed entityTNT = new EntityTNTPrimed(world); // instance de la class de l'entité
                         entityTNT.setPosition(player.posX, player.posY, player.posZ); // je lui dit la position a la quelle elle doit spawner
                         world.spawnEntityInWorld(entityTNT); // je fait spawn l'entité
                     }
      
                   **  if (rand.)**
                     {
                         EntityItem entityItem = new EntityItem(world); // instance de la class de l'entité
                         entityItem.setPosition(player.posX, player.posY, player.posZ); // je lui dit la position a la quelle elle doit spawner
                         world.spawnEntityInWorld(entityItem); // je fait spawn l'entité
                     }
                 }
                 itemStack.damageItem(1, player);
                 return new ActionResult(EnumActionResult.PASS, itemStack);
             }
      
      }
      

      Comme je pense que vous l’avez vu, je ne sais pas quoi mettre après le random, je veux qu’un choix entre deux nombre 0 et 1, lorsque 0 est choisi, le cas 1 avec la tnt est activé, mais lorsque 1 est choisi, le cas 2 avec un Item.
      Un truc du style : If (numéro random entre 0 et 1) == 0 alors ……
      Autre question, pour ma 2eme condition (spawn Item), comment on met l’Item que l’on veut ?
      Je ne sais pas si vous avez compris mais bon …
      Je vous dit de suite, je ne sais pas bien coder en java (vous devez le voir à mes scripts, si il y a plusieurs erreur merci de me le dire et me faire part par exemple d’un script tous fait 😄

      Merci de vos éventuels réponses

      Tituya</itemstack>

      Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Salut,

        if(rand.nextInt(1) == 0)
        {
            // code
        }
        else
        {
            // code
        }
        
        1. Utilises plutôt :
          EntityItem entityItem =new EntityItem(world, player.posX, player.posY, player.posZ, new ItemStack(ClassePrincipale.item));
          sinon ton entité item n’aura pas d’item.
        1 réponse Dernière réponse Répondre Citer 0
        • Tituya
          Tituya dernière édition par

          Merci, quand tu me dis ça c’est logique 😄 je test demain pour voir, mon ordi est éteint___Et si je veux rajouter d’autres random, le unluck (TNT), le médium (diamant), le rare (poudre de topaze) et le legendaire (Topaze) je fait comment, le else est deja occupe donc ?___Enfin, chaque item on la même valeur, c’est juste un random

          Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

          1 réponse Dernière réponse Répondre Citer 0
          • AymericRed
            AymericRed dernière édition par

            Tu fais un “int i = rand.nextInt(nb de cas possible);” et ensuite avec des if et else if, selon la valeur de i tu fais quelque chose.

            PS: Double poste interdit en - de 24h, faut éditer les messages.

            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

            1 réponse Dernière réponse Répondre Citer 0
            • Tituya
              Tituya dernière édition par

              Je ne comprend pas ce que tu veux dire avec ton int, je ne sais pas où le mettre moi xD voila mon code :

              package com.tuto.mod.items;
              
              import java.util.Random;
              
              import com.tuto.mod.init.ItemsMod;
              
              import net.minecraft.entity.item.EntityItem;
              import net.minecraft.entity.item.EntityTNTPrimed;
              import net.minecraft.entity.item.EntityXPOrb;
              import net.minecraft.entity.player.EntityPlayer;
              import net.minecraft.item.Item;
              import net.minecraft.item.ItemStack;
              import net.minecraft.util.ActionResult;
              import net.minecraft.util.EnumActionResult;
              import net.minecraft.util.EnumHand;
              import net.minecraft.world.World;
              
              public class Stick extends Item
              {
                  public final Random rand = new Random();
              
                  public Stick()
                  {
                  this.setMaxDamage(20);
                  this.maxStackSize = 1;
                  }
              
                  @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
                         {
                             rand.nextInt(1);
                             if(rand.nextInt(1) == 0)
                             {
                                 EntityTNTPrimed entityTNT = new EntityTNTPrimed(world); // instance de la class de l'entité
                                 entityTNT.setPosition(player.posX, player.posY, player.posZ); // je lui dit la position a la quelle elle doit spawner
                                 world.spawnEntityInWorld(entityTNT); // je fait spawn l'entité
                             }
                             else
                             {
                                 EntityItem entityItem =new EntityItem(world, player.posX, player.posY, player.posZ, new ItemStack(ItemsMod.test));
                             }
              
                         }
                         itemStack.damageItem(1, player);
                         return new ActionResult(EnumActionResult.PASS, itemStack);
                     }
              
              }
              

              Je ne comprend pas, le random ne fonctionne pas, c’est toujours la TNT</itemstack>

              Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                package com.tuto.mod.items;
                
                import java.util.Random;
                
                import com.tuto.mod.init.ItemsMod;
                
                import net.minecraft.entity.item.EntityItem;
                import net.minecraft.entity.item.EntityTNTPrimed;
                import net.minecraft.entity.item.EntityXPOrb;
                import net.minecraft.entity.player.EntityPlayer;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemStack;
                import net.minecraft.util.ActionResult;
                import net.minecraft.util.EnumActionResult;
                import net.minecraft.util.EnumHand;
                import net.minecraft.world.World;
                
                public class Stick extends Item
                {
                    public final Random rand = new Random();
                
                    public Stick()
                    {
                    this.setMaxDamage(20);
                    this.maxStackSize = 1;
                    }
                
                    @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
                           {
                               int i = rand.nextInt(3);
                               if(i == 0)
                               {
                                   EntityTNTPrimed entityTNT = new EntityTNTPrimed(world); // instance de la class de l'entité
                                   entityTNT.setPosition(player.posX, player.posY, player.posZ); // je lui dit la position a la quelle elle doit spawner
                                   world.spawnEntityInWorld(entityTNT); // je fais spawn l'entité
                               }
                               else if(i == 1)
                               {
                                   EntityItem entityItem =new EntityItem(world, player.posX, player.posY, player.posZ, new ItemStack(ItemsMod.test));
                                   world.spawnEntityInWorld(entityItem); // je fais spawn l'entité
                               }
                               else if(i == 2)
                               {
                                    // troisième truc
                               }
                
                           }
                           itemStack.damageItem(1, player);
                           return new ActionResult(EnumActionResult.PASS, itemStack);
                       }
                }
                

                J’avais pas vu avant l’erreur sur ton random.
                rand.nextInt(x) génère un nombre entre 0 inclut et x exclut.
                Donc rand.nextInt(1) ça donne toujours 0, il faut utiliser rand.nextInt(2) pour avoir 0 ou 1.</itemstack>

                1 réponse Dernière réponse Répondre Citer 0
                • Tituya
                  Tituya dernière édition par

                  ça marche, je ferme le sujet merci de vos réponse !

                  Il y a deux choses qui m'énerve dans la vie : les babouches et les personnes jouant en 1.7.10 !

                  1 réponse Dernière réponse Répondre Citer 0
                  • 1 / 1
                  • Premier message
                    Dernier message
                  Design by Woryk
                  Contact / Mentions Légales

                  MINECRAFT FORGE FRANCE © 2018

                  Powered by NodeBB