MFF

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

    OnItemRightClick sur une entity.

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    125 Messages 8 Publieurs 21.6k Vues 1 Watching
    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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Mets directement return this.alcool;

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

        "Je comprend pas pourquoi ça renvoie toujours 0 … : "
        public int getAlcool() {
        this.alcool = 0;

        xD

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

          pareil marche toujours pas 😕

          1 réponse Dernière réponse Répondre Citer -1
          • GabsG Hors-ligne
            Gabs
            dernière édition par

            Quelqu’un ?

            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

              Renvoies ton code actuel.

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

                package com.AltisMine.mod;
                
                import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                import net.minecraft.entity.Entity;
                import net.minecraft.entity.player.EntityPlayer;
                import net.minecraft.entity.player.EntityPlayerMP;
                import net.minecraft.nbt.NBTTagCompound;
                import net.minecraft.world.World;
                import net.minecraftforge.common.IExtendedEntityProperties;
                import net.minecraftforge.event.entity.EntityEvent.EntityConstructing;
                
                public class ExtendedEntityPropAlcool implements IExtendedEntityProperties {
                
                    public final static String EXT_PROP_NAME = "ExtPropAlcool";
                    private int alcool = 0;
                    private final EntityPlayer player;
                
                    public ExtendedEntityPropAlcool(EntityPlayer player) {
                            this.player = player;
                }
                
                @Override
                public void saveNBTData(NBTTagCompound compound) {
                            NBTTagCompound properties = new NBTTagCompound();
                properties.setInteger("alcool", this.alcool);
                compound.setTag(EXT_PROP_NAME, properties);
                }
                
                @Override
                public void loadNBTData(NBTTagCompound compound) {
                            NBTTagCompound properties = (NBTTagCompound) compound.getTag(EXT_PROP_NAME);
                this.alcool = properties.getInteger("alcool");
                }
                
                @Override
                public void init(Entity entity, World world) {
                // TODO Auto-generated method stub
                
                }
                
                    public static final void register(EntityPlayer player) {
                player.registerExtendedProperties(ExtendedEntityPropAlcool.EXT_PROP_NAME,
                new ExtendedEntityPropAlcool(player));
                }
                
                public static final ExtendedEntityPropAlcool get(EntityPlayer player) {
                return (ExtendedEntityPropAlcool) player.getExtendedProperties(EXT_PROP_NAME);
                }
                
                public final void sync() 
                {
                   PacketAlcool packetAlcool = new PacketAlcool(this.alcool);
                   if (!player.worldObj.isRemote) 
                   {
                       EntityPlayerMP playerClient = (EntityPlayerMP) this.player;
                       AltisMineMod.network.sendTo(packetAlcool, playerClient);
                   }
                   else
                   {
                       AltisMineMod.network.sendToServer(packetAlcool);
                   }
                }
                
                   private static String getSaveKey(EntityPlayer player) {
                return player.getDisplayName() + ":" + EXT_PROP_NAME;
                }
                
                public static void saveProxyData(EntityPlayer player) {
                ExtendedEntityPropAlcool playerData = ExtendedEntityPropAlcool.get(player);
                NBTTagCompound savedData = new NBTTagCompound();
                
                playerData.saveNBTData(savedData);
                CommonProxy.storeEntityData(getSaveKey(player), savedData);
                }
                
                public static void loadProxyData(EntityPlayer player) {
                ExtendedEntityPropAlcool playerData = ExtendedEntityPropAlcool.get(player);
                NBTTagCompound savedData = CommonProxy
                .getEntityData(getSaveKey(player));
                
                if (savedData != null) {
                playerData.loadNBTData(savedData);
                }
                playerData.sync();
                }
                
                   public void setAlcool(int taux) {
                           this.alcool = taux;
                           this.sync();
                   }
                
                   public int getAlcool() {
                this.alcool = 0;
                if (alcool != 0)
                alcool = Math.abs(alcool / 2);
                  else if (alcool == 0) {
                  alcool = Math.abs(alcool);
                  }
                
                  return this.alcool;
                
                   }
                
                }
                

                Class bouteille d’alcool:

                package com.AltisMine.mod;
                
                import net.minecraft.entity.player.EntityPlayer;
                import net.minecraft.item.EnumAction;
                import net.minecraft.item.ItemFood;
                import net.minecraft.item.ItemStack;
                import net.minecraft.potion.Potion;
                import net.minecraft.potion.PotionEffect;
                import net.minecraft.world.World;
                
                public class LIIT extends ItemFood {
                
                 AT alcohol = new AT();
                
                public LIIT (int itemID, int i, boolean b)
                 {
                   super(itemID, i, b);
                
                }
                
                 public EnumAction getItemUseAction(ItemStack itemstack)
                 {
                   return EnumAction.drink;
                 }
                   public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                   {
                       if (player.canEat(true))
                       {
                           player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
                       }
                       return stack;
                   }
                
                   public int getMaxItemUseDuration(ItemStack stack)
                   {
                       return 32;
                   }
                
                   public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player)
                   {
                       –stack.stackSize;
                       ExtendedEntityPropAlcool prop = ExtendedEntityPropAlcool.get(player);
                       prop.setAlcool(prop.getAlcool() + 1);
                       player.getFoodStats().addStats(1, 2); // nombre de demi-gigots + saturation
                       world.playSoundAtEntity(player, "random.burp", 0.5F, world.rand.nextFloat() * 0.1F + 0.9F);
                       player.addPotionEffect(new PotionEffect(Potion.confusion.id, 315,0));
                       player.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 315,0));
                       player.addPotionEffect(new PotionEffect(Potion.hunger.id, 315,0));
                       player.addPotionEffect(new PotionEffect(Potion.weakness.id, 315,0));
                
                return stack;
                   }
                   @Override
                 public boolean hasEffect(ItemStack par1ItemStack){
                  return true;
                 }
                
                }
                
                
                1 réponse Dernière réponse Répondre Citer 0
                • Snowy_1803S Hors-ligne
                  Snowy_1803
                  dernière édition par

                  Le getAlcool tu mets juste return alcool, c’est tout ! Pourquoi tout ce code ?

                  Moddeur 1.8

                  Développeur Java

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

                    J’essaye ça je vous dis

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

                      @‘Snowy_1803’:

                      Le getAlcool tu mets juste return alcool, c’est tout ! Pourquoi tout ce code ?

                      Surtout que Robin le lui a déjà dit de mettre return this.alcool (et il l’a pas fait)

                      @‘robin4002’:

                      Mets directement return this.alcool;

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

                        Niquel merci

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

                          Juste une dernière question si je veux faire baisser le niveau d’alcoolémie de 1 au bout de 15 minutes je dois faire comment ?

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

                            TickHandler avec la variable getTotalWorldTime() + modulo

                            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

                              TickEvent.PlayerTickEvent*
                              L’interface ITickHandler n’existe plus depuis la 1.7

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

                                J’ai trouvais ça sur internet je dois définir le nombre de tick comment?

                                @SubscribeEvent
                                public void onPlayerTickEvent(TickEvent.PlayerTickEvent event) {
                                    if (event.phase == TickEvent.Phase.START && !event.player.worldObj.isRemote) {
                                        IExtendedEntityProperties properties = event.player.getExtendedProperties(PlayerExtendedProperties.ID);
                                        if (properties instanceof PlayerExtendedProperties) {
                                            PlayerExtendedProperties playerExtendedProperties = (PlayerExtendedProperties) properties;
                                            playerExtendedProperties.tick();
                                        }
                                        properties = event.player.getExtendedProperties(PlayerPreferencesProperties.ID);
                                        if (properties instanceof PlayerPreferencesProperties) {
                                            PlayerPreferencesProperties preferencesProperties = (PlayerPreferencesProperties) properties;
                                            preferencesProperties.tick(RFToolsMessages.INSTANCE);
                                        }
                                    }
                                }
                                
                                1 réponse Dernière réponse Répondre Citer 0
                                • DeletedD Hors-ligne
                                  Deleted
                                  dernière édition par

                                  Le nombre de tick à la seconde est déjà défini.
                                  Ton code va logiquement crash car worldObj sera null lorsque le menu principal sera ouvert.
                                  Du coup null-check pour le world et pour faire vérifier un code tous les x nbre de tick, c’est comme ça

                                  
                                  if(event.player.worldObj.getTotalWorldTime() % (nbreDeSecondes * 20) == 0
                                  {
                                  System.out.println("ton code à exécuter avec ton ExtProp");
                                  }
                                  
                                  
                                  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

                                    PlayerTickEvent n’est que appelé en jeu, donc normalement event.player.worldObj ne sera jamais nul. Pas besoin de null check.

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

                                      Ok je reverrai mes sources la prochaine fois 😉

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

                                        J’ai fais sa je suis pas trop sur que ça marche…

                                          @SubscribeEvent
                                          public void onPlayerTickEvent(TickEvent.PlayerTickEvent event) {
                                        
                                          if(event.player.worldObj.getTotalWorldTime() % (60 * 20) == 0)
                                          {
                                          ExtendedEntityPropAlcool prop = ExtendedEntityPropAlcool.get(event.player);
                                               prop.setAlcool(prop.getAlcool() - 1);
                                          System.out.println("Test!");
                                          }
                                          }
                                        
                                        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

                                          Normalement ça devrait être bon.
                                          Regardes en jeu si Test ! s’affiche. Si ce n’est pas le cas c’est surement car ta classe n’est pas enregistré avec FMLCommonHandler.instance().bus().register(new NomDeTaClasseD’event());

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

                                            D’acc je vais voir ça, sinon aussi des fois je rencontre quelques problème par exemple: lorsque je bois un verre d’alcool mon niveau d’alcoolémie devrais normalement augmenté que de 1 bah des fois même souvent, il augmente de 2 😕

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 5 / 7
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB