MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Boucle dans un boolean

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    18 Messages 5 Publieurs 2.4k Vues 1 Abonné
    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.
    • DylemD Hors-ligne
      Dylem
      dernière édition par

      la ce que ton code fait c’est que le joueur drop 500 fois l’item s’il ne peut pas être ajouté à l’inventaire ? Ca a pas beaucoup de sens.
      Sinon suis le tuto en java du site du zéro ça peut t’être utile !

      Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

      1 réponse Dernière réponse Répondre Citer 0
      • FolganskyF Hors-ligne
        Folgansky Correcteurs
        dernière édition par

        ça a du sens si l’inventaire du type est plein. C’est un bout de code que robin avait donné sur un autre post.

        Je regarde pour le .copy() dont je ne connais pas le fonctionnement.

        Pour ce qui est du site du zéro, je vais dire à la fois oui et non, merci du conseil hein.

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

          Le addItemStackToInventory doit être dans une condition if(!world.isRemote) (idem pour le drop)

          drop l’item dans une boucle qui va 0 à 500 n’est pas une bonne idée, tu vas causer des lags.

          1 réponse Dernière réponse Répondre Citer 0
          • DylemD Hors-ligne
            Dylem
            dernière édition par

            J’ai testé ton code et ça marche, remplace juste le 1 par 0 dans player.entityDropItem (la valeur c’est la position par rapport au joueur donc si c’est pas sur 0 le joueur n’y est pas et ne peut pas drop l’item).

            Edit : voici ce que j’ai testé pour info :

            for(int j = 0 ; j < 500; ++j) {
                if (!player.inventory.addItemStackToInventory(jeton))
                     player.entityDropItem(jeton, 0);               
            }
            

            Avec jeton un ItemStack d’Items.apple

            Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

            1 réponse Dernière réponse Répondre Citer 0
            • FolganskyF Hors-ligne
              Folgansky Correcteurs
              dernière édition par

              Bah je suis d’accord Robin, pour rester fidèle à ton bout de code, mais bizarrement j’avais un problème de Side en faisant comme ça (allez comprendre)

              Par contre Dylem, quand tu as testé ça t’a bien give les 500? oO  (en modifiant la condition, bien sûr)

              Moi çe ne m’en give qu’un.

              1 réponse Dernière réponse Répondre Citer 0
              • DylemD Hors-ligne
                Dylem
                dernière édition par

                @‘Toutoune1008’:

                Bah je suis d’accord Robin, pour rester fidèle à ton bout de code, mais bizarrement j’avais un problème de Side en faisant comme ça (allez comprendre)

                Par contre Dylem, quand tu as testé ça t’a bien give les 500? oO  (en modifiant la condition, bien sûr)

                Moi çe ne m’en give qu’un.

                oui ça a drop 500 pommes devant mes pieds instantanément. Ton problème ne vient donc pas de la (si tu as modifié 1 à 0, mais maintenant que j’y pense 1 devrait marcher aussi et spawn les pommes au milieu de ton corps)

                Edit : Mais j’ai testé le code en 1.8.9, c’est peut-être pour ça ?

                Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                1 réponse Dernière réponse Répondre Citer 0
                • FolganskyF Hors-ligne
                  Folgansky Correcteurs
                  dernière édition par

                  Oui j’ai bien mis 0 qui correspond à la hauteur de drop simplement me semble.

                  Je suis en 1.7.10, pas en 1.8.9 Xd

                  La seule différence est que je give un item à metadata… Je poursuis mes tests

                  1 réponse Dernière réponse Répondre Citer 0
                  • DylemD Hors-ligne
                    Dylem
                    dernière édition par

                    Essaie de remplacer ton jeton par new ItemStack(Items.apple) comme ça si ça marche on sera sur que le problème vient du jeton 🙂

                    Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                    1 réponse Dernière réponse Répondre Citer 0
                    • FolganskyF Hors-ligne
                      Folgansky Correcteurs
                      dernière édition par

                      Eh bien… Non… Rien n’a changé, ça ne me donne qu’une pomme. Belle, rouge mais bien seule x]
                      Je vais voir ça comme un problème insurmontable et botter en touche, je vais faire give un autre item qui aurra la valeur de 500.

                      C’est une contrainte que j’espèrais pouvoir contourner (ou simplement expliquer).

                      1 réponse Dernière réponse Répondre Citer 0
                      • SCAREXS Hors-ligne
                        SCAREX
                        dernière édition par

                        Renvoi le code

                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                        Pas de demandes de support par MP ni par skype SVP.
                        Je n'accepte sur skype que l…

                        1 réponse Dernière réponse Répondre Citer 0
                        • FolganskyF Hors-ligne
                          Folgansky Correcteurs
                          dernière édition par

                          Voici la classe entière:

                          package fr.powergame.modpg2.common;
                          
                          import java.util.Random;
                          
                          import net.minecraft.block.Block;
                          import net.minecraft.block.material.Material;
                          import net.minecraft.entity.EntityLivingBase;
                          import net.minecraft.entity.player.EntityPlayer;
                          import net.minecraft.init.Items;
                          import net.minecraft.item.ItemStack;
                          import net.minecraft.tileentity.TileEntity;
                          import net.minecraft.util.ChatComponentText;
                          import net.minecraft.util.EnumChatFormatting;
                          import net.minecraft.util.MathHelper;
                          import net.minecraft.world.IBlockAccess;
                          import net.minecraft.world.World;
                          import net.minecraftforge.common.util.ForgeDirection;
                          import cpw.mods.fml.relauncher.Side;
                          import cpw.mods.fml.relauncher.SideOnly;
                          import fr.powergame.modpg2.client.TileEntityJackPot;
                          import fr.powergame.modpg2.proxy.ClientProxy;
                          
                          public class JackPot extends Block
                          {
                              protected JackPot(Material mat)
                              {
                                  super(mat);
                              }
                          
                              public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z)
                              {    
                                  this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
                              }
                          
                              public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitx, float hity, float hitz)
                              {
                                  Random rand = new Random();
                                  //ItemStack jeton = new ItemStack(ModPg2.itemMetadata, 1, 4);Items.apple
                                  ItemStack jeton = new ItemStack(Items.apple);
                                  if (player.inventory.hasItem(ModPg2.itemJackPot))            
                                  {
                                      int randInt = rand.nextInt(1000);
                                      if (randInt >= 0)
                                      {   // 1/1000
                                          player.triggerAchievement(ModPg2.achievementJackPot);
                                          for(int j = 0 ; j < 500; ++j)
                                          {
                                              if (!player.inventory.addItemStackToInventory(jeton))
                                              {
                                                  player.entityDropItem(jeton, 0);
                                              }                    
                                          }
                                          if(!world.isRemote)
                                          {
                                              ChatComponentText comp = new ChatComponentText(EnumChatFormatting.DARK_AQUA + "Power JackPot > " + EnumChatFormatting.DARK_RED + "JACKPOT !!!");
                                              (player).addChatComponentMessage(comp);
                                          }
                                      }
                                      if (randInt > 0 && randInt < 10)
                                      {   // 10/1000
                                          if(!world.isRemote)
                                          {
                                              ChatComponentText comp = new ChatComponentText(EnumChatFormatting.DARK_AQUA + "Power JackPot > " + EnumChatFormatting.GRAY + "Gagné, moyen lot.");
                                              (player).addChatComponentMessage(comp);
                                          }
                                          for(int j = 0 ; j < 25; ++j)
                                          {
                                              if (!player.inventory.addItemStackToInventory(jeton))
                                              {
                                                  player.entityDropItem(jeton, 1);
                                              }    
                                          }
                                      }
                                      if (randInt >= 10 && randInt < 449)
                                      {   // 100/1000
                                          if(!world.isRemote)
                                          {
                                              ChatComponentText comp = new ChatComponentText(EnumChatFormatting.DARK_AQUA + "Power JackPot > " + EnumChatFormatting.GRAY + "Gagné, petit lot.");
                                              (player).addChatComponentMessage(comp);
                                          }
                                          if (!player.inventory.addItemStackToInventory(jeton))
                                          {
                                              player.entityDropItem(jeton, 1);
                                          }    
                                      }
                                      if (randInt >= 450)
                                      {   // 500/1000
                                          if(!world.isRemote)
                                          {
                                              ChatComponentText comp = new ChatComponentText(EnumChatFormatting.DARK_AQUA + "Power JackPot > " + EnumChatFormatting.GRAY + "Perdu");
                                              (player).addChatComponentMessage(comp);
                                          }
                                      }
                                      player.inventory.consumeInventoryItem(ModPg2.itemJackPot);
                                      return true;
                                  }
                                  return false;
                              }
                          
                              public int damageDropped(int metadata)
                              {
                                  return metadata;
                              }
                          
                              public boolean hasTileEntity(int metadata)
                              {
                                  return true;
                              }      
                          
                              public TileEntity createTileEntity(World world, int metadata)
                              {
                                  return new TileEntityJackPot();
                              }
                          
                              public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
                              {
                                  if(stack.getItemDamage() == 0)
                          
                                  {
                                      TileEntity tile = world.getTileEntity(x, y, z);
                                      if(tile instanceof TileEntityJackPot)
                                      {
                                          int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
                                          ((TileEntityJackPot)tile).setDirection((byte)direction);
                                      }
                                  }
                              }
                          
                              @Override
                              public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis)
                              {
                                  if((axis == ForgeDirection.UP || axis == ForgeDirection.DOWN) && !world.isRemote && world.getBlockMetadata(x, y, z) == 0)
                                  {
                                      TileEntity tile = world.getTileEntity(x, y, z);
                                      if(tile instanceof TileEntityJackPot)
                                      {
                                          TileEntityJackPot tileDirectional = (TileEntityJackPot)tile;
                                          byte direction = tileDirectional.getDirection();
                                          direction++;
                                          if(direction > 3)
                                          {
                                              direction = 0;
                                          }
                                          tileDirectional.setDirection(direction);
                                          return true;
                                      }
                                  }
                                  return false;
                              }
                          
                              public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
                              {
                                  return world.getBlockMetadata(x, y, z) == 0 ? new ForgeDirection[] {ForgeDirection.UP, ForgeDirection.DOWN} : ForgeDirection.VALID_DIRECTIONS;
                              }
                          
                              public boolean isOpaqueCube()
                              {
                                  return false;
                              }       
                          
                              public boolean renderAsNormalBlock()
                              {
                                  return false;
                              }
                          
                              public boolean canBeCollidedWith()
                              {
                                  return true;
                              }
                          
                              @SideOnly(Side.CLIENT)
                              public int getRenderType()
                              {
                                  return ClientProxy.tesrRenderId;
                              }    
                          }
                          
                          1 réponse Dernière réponse Répondre Citer 0
                          • SCAREXS Hors-ligne
                            SCAREX
                            dernière édition par

                            Essaie de re-créer une instance d’ItemStack à chaque boucle

                            Site web contenant mes scripts : http://SCAREXgaming.github.io

                            Pas de demandes de support par MP ni par skype SVP.
                            Je n'accepte sur skype que l…

                            1 réponse Dernière réponse Répondre Citer 0
                            • FolganskyF Hors-ligne
                              Folgansky Correcteurs
                              dernière édition par

                              Bingo Scarex ^^

                              C’était bien ça, merci. (et étrange)

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

                                Mettre le .copy() revenait à faire exactement la même chose.

                                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
                                • SCAREXS Hors-ligne
                                  SCAREX
                                  dernière édition par

                                  Aussi, c’est juste que 2 EntityItem ne peuvent pas partager une même instance d’ItemStack

                                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                                  Pas de demandes de support par MP ni par skype SVP.
                                  Je n'accepte sur skype que l…

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

                                    Ouais voilà sauf que là c’était pas 2 mais 500

                                    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
                                    • 1 / 1
                                    • Premier message
                                      Dernier message
                                    Design by Woryk
                                    ContactMentions Légales

                                    MINECRAFT FORGE FRANCE © 2024

                                    Powered by NodeBB