• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Drop random et mort par joueur

    1.7.x
    1.7.10
    3
    11
    960
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      thecraft38 last edited by

      Bonjour, je travaillais sur mon mod et j’ai voulu faire en sorte que les poulpes ait une chance de drop deux items en plus de celui vanilla( avec peu de chance de drop sur un de mes 2 items ) donc j’ai essayé ceci :

      @SubscribeEvent
        public void onLivingDrops(LivingDropsEvent event)
        {
            if(event.entity instanceof EntitySquid) 
            {
            Random rand = new Random();
            int randInt = rand.nextInt(30);
            if(randInt > 29)
            {
            EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY,
            event.entity.posZ,
          new ItemStack(ewifaction.ewilitemachine, 1));
        event.drops.add(newdrop);
            }
            else
            {
            EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY,
            event.entity.posZ,
          new ItemStack(ewifaction.SquidFood, 1));
        event.drops.add(newdrop);
            }
            }
      

      le problème est que ce code de fonctionne pas et j’ai un autre problème ; je veux que le drop ne s’effectue que si le mob est tué par  un joueur mais je n’y arrive pas.
      Merci d’avance pour votre aide.

      1 Reply Last reply Reply Quote 0
      • Tituya
        Tituya last edited by

        Je sais comment rajouter un drop pour un mob en 1.9, je te donne le code après, juste une question PORQUOI CONTINUER DE CODER EN 1.7.10 ?!

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

        1 Reply Last reply Reply Quote 0
        • T
          thecraft38 last edited by

          car la 1.7.10 est la version sur la qu’elle j’ai commencé le jeu et donc que je l’affectionne tous particulièrement, de plus je trouve les nouvelles versions un peu inutiles bien que je suis contient que les API forge etc s’améliore avec mais le vanilla : sérieux des lamas, des ours polaires ? et je ne supporte pas le pvp 1.9.

          1 Reply Last reply Reply Quote 0
          • Tituya
            Tituya last edited by

            Donc, je ne sais pas si le code fonctionne en 1.7.10, personnellement je l’ai fait en 1.9 sur des creeper pour faire spawner quelque fois l’item

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

            1 Reply Last reply Reply Quote 0
            • T
              thecraft38 last edited by

              et tu as utilisé le même code que moi ou un autre ?

              1 Reply Last reply Reply Quote 0
              • Tituya
                Tituya last edited by

                J’en utilise un autre, je pense, le temps d’ouvrir eclipse pour moi. xD voila le code que j’utilise :

                public class Drop
                {
                
                    public final Random rand = new Random();
                     @SubscribeEvent
                        public void onLivingDrops(LivingDropsEvent event)
                        {
                         if(event.getEntity() instanceof EntityCreeper)
                         {
                            EntityItem newdrop = new EntityItem(event.getEntity().worldObj, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ,
                new ItemStack(ItemsMod.dust, rand.nextInt(2), 0)); // 2 = le max de drop
                            event.getDrops().add(newdrop);
                         }
                         if(event.getEntity() instanceof EntityDragon)
                         {
                            EntityItem newdrop = new EntityItem(event.getEntity().worldObj, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ,
                new ItemStack(ItemsMod.sup, rand.nextInt(10), 0));
                            event.getDrops().add(newdrop);
                         }
                        }
                }
                

                J’ai crée une nouvelle classe dans le package de ton mod

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

                1 Reply Last reply Reply Quote 0
                • T
                  thecraft38 last edited by

                  Le code que tu ma envoyer fonctionne en 1.7.10 sous cette forme :

                  public final Random rand = new Random();
                  @SubscribeEvent
                    public void onLivingDrops(LivingDropsEvent event)
                    {
                          if(event.entity instanceof EntitySquid)
                          {
                             EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ,
                  new ItemStack(ewifaction.mobsoul, rand.nextInt(1), 0));
                             event.drops.add(newdrop);
                          }
                  

                  le problème est que la il a 50% de chance 1 et 50% de chance de drop 0 mais se qu’il ai par exemple 5% de drop 1 et 95% de drop 1

                  1 Reply Last reply Reply Quote 0
                  • Tituya
                    Tituya last edited by

                    peu etre que le 0 derrière signifie quelque chose, mais je ne sais pas quoi désoler ;c

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

                    1 Reply Last reply Reply Quote 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                      Le deuxième argument d’item stack c’est la quantité.
                      Généré des item stack de quantité 0 c’est pas vraiment une bonne idée …

                        @SubscribeEvent
                       public void onLivingDrops(LivingDropsEvent event)
                       {
                             if(event.entity instanceof EntitySquid && event.source.getEntity instanceof EntityPlayer)
                             {
                                EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ,
                      new ItemStack(ewifaction.mobsoul));
                                if(event.entity.worldObj.rand.nextFloat() < 0.95F) // 95% de chance
                                {
                                     event.drops.add(newdrop);
                                }
                             }
                      }
                      
                      1 Reply Last reply Reply Quote 0
                      • T
                        thecraft38 last edited by

                        Oui j’ai réussi a aboutir a se code qui fonctionne : ```java
                         @SubscribeEvent
                          public void onLivingDrops(LivingDropsEvent event)
                          {
                        Random rand = new Random();
                                if(event.entity instanceof EntitySquid)
                                {
                                int randInt = rand.nextInt(20);
                                if(randInt == 19)
                                {
                                EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY,
                              event.entity.posZ,
                            new ItemStack(ewifaction.ewilitemachine, 1));
                          event.drops.add(newdrop);
                                }
                                else
                                {
                                EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY,
                              event.entity.posZ,
                            new ItemStack(ewifaction.SquidFood, 1));
                          event.drops.add(newdrop);
                                }
                                }

                        il me manque juste la méthode pour savoir check si le mob a était tué par un joueur :
                        ```java
                        if(randInt == 19 && ) // après le && sa ira mais je ne vois pas quoi mettre
                        
                        1 Reply Last reply Reply Quote 0
                        • T
                          thecraft38 last edited by

                          Merci j’ai fait ça  : ```java
                          @SubscribeEvent
                          public void onLivingDrops(LivingDropsEvent event)
                          {
                                if(event.entity instanceof EntityZombie || event.entity instanceof EntitySkeleton || event.entity instanceof EntitySpider || event.entity instanceof EntityCreeper || event.entity instanceof EntityCaveSpider  && event.source.getEntity() instanceof EntityPlayer)
                                {
                                   EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ,
                          new ItemStack(ewifaction.sool));
                                   if(event.entity.worldObj.rand.nextFloat() < 0.05F)
                                   {
                                        event.drops.add(newdrop);
                                   }
                                }

                          et tous fonctionne bon jeu a vous et encore merci de votre aide
                          1 Reply Last reply Reply Quote 0
                          • 1 / 1
                          • First post
                            Last post
                          Design by Woryk
                          Contact / Mentions Légales

                          MINECRAFT FORGE FRANCE © 2018

                          Powered by NodeBB