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

Résolu Créer un item non-lootable.

1.7.x
1.7.x
5
14
3.7k
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.
  • B
    Barduck02 dernière édition par 20 févr. 2014, 18:31

    Bonjour à tous.
    J’aimerais savoir si quelqu’un aurait un moyen de créer un item non lootable, même en cas de mort.
    Merci d’avance.

    1 réponse Dernière réponse Répondre Citer 0
    • robin4002
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 20 févr. 2014, 19:04

      Tu souhaites faire que l’item reste dans l’inventaire du joueur lorsqu’il meurt, ou qu’il disparaisse totalement lors de la mort ?
      Aussi, tu veux aussi empêcher de jeter l’item manuellement par terre ?

      1 réponse Dernière réponse Répondre Citer 0
      • isador
        isador Moddeurs confirmés Modérateurs dernière édition par 20 févr. 2014, 19:08

        Moi jz cherche à faire en sorte de désactiver le drop

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 20 févr. 2014, 19:22

          Désactiver totalement je vois vraiment pas comment faire.
          Juste supprimer l’item lors du drop, j’ai une idée avec l’eventDeath, ou l’eventDrop, ça devrait le faire.

          1 réponse Dernière réponse Répondre Citer 0
          • isador
            isador Moddeurs confirmés Modérateurs dernière édition par 21 févr. 2014, 05:36

            Pour la 1.6 je crois que j’avais vue une fonction booléen candrop

            1 réponse Dernière réponse Répondre Citer 0
            • B
              Barduck02 dernière édition par 21 févr. 2014, 10:24

              J’aurais voulu que l’item reste dans l’inventaire du joueur lors de sa mort, et qu’il ne puisse pas le jeter.

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 21 févr. 2014, 12:45

                Dans la classe de ton item, essaye de mettre ça :

                public boolean onDroppedByPlayer(ItemStack item, EntityPlayer player)
                {
                return false;
                }

                (pas eu le temps de tester)

                1 réponse Dernière réponse Répondre Citer 0
                • B
                  Barduck02 dernière édition par 1 mars 2014, 22:54

                  J’ai testé, le joueur ne peut pas jeter l’item, mais lorsqu’il meurt, il le drop quand même.

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 2 mars 2014, 00:03

                    Après quelques tests, dans ta classe principale, dans la fonction init mets ça :

                    MinecraftForge.EVENT_BUS.register(new PlayerEventHandler());
                    

                    Et dans la classe PlayerEventHandler :

                    package fr.minecraftforgefrance.tutoriel.common;
                    import net.minecraft.entity.player.EntityPlayer;
                    import net.minecraft.entity.player.InventoryPlayer;
                    import net.minecraft.init.Items;
                    import net.minecraft.item.ItemStack;
                    import net.minecraft.stats.StatList;
                    import net.minecraft.util.MathHelper;
                    import net.minecraftforge.event.entity.EntityJoinWorldEvent;
                    import net.minecraftforge.event.entity.living.LivingDeathEvent;
                    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                    public class PlayerEventHandler
                    {
                    @SubscribeEvent
                    public void onLivingDeath(LivingDeathEvent event)
                    {
                    if(event.entity instanceof EntityPlayer)
                    {
                    EntityPlayer player = (EntityPlayer)event.entity;
                    if(player.inventory.hasItem(ModTutoriel.itemTutoriel))
                    {
                    this.dropInventory(player.inventory);
                    player.worldObj.getGameRules().setOrCreateGameRule("keepInventory", "true");
                    }
                    }
                    }
                    @SubscribeEvent
                    public void onEntityJointWorld(EntityJoinWorldEvent event)
                    {
                    if(event.entity instanceof EntityPlayer)
                    {
                    event.world.getGameRules().setOrCreateGameRule("keepInventory", "false");
                    }
                    }
                    private void dropInventory(InventoryPlayer inventory)
                    {
                    int i;
                    for(i = 0; i < inventory.mainInventory.length; ++i)
                    {
                    if(inventory.mainInventory* != null)
                    {
                    if(inventory.mainInventory*.getItem() != ModTutoriel.itemTutoriel)
                    {
                    inventory.player.func_146097_a(inventory.mainInventory*, true, false);
                    inventory.mainInventory* = null;
                    }
                    }
                    }
                    for(i = 0; i < inventory.armorInventory.length; ++i)
                    {
                    if(inventory.armorInventory* != null)
                    {
                    inventory.player.func_146097_a(inventory.armorInventory*, true, false);
                    inventory.armorInventory* = null;
                    }
                    }
                    }
                    }

                    Tu as juste à remplacer ModTutoriel.itemTutoriel par TaClassePrincipale.tonItem
                    Si c’est un bloc, utilise Item.getItemFromBlock(TaClassePrincipale.tonBloc)

                    J’ai pas trouvé de solution sans passer par le gameRule keepInventory, de toute façon elle n’est que actif lors du la mort du joueur et est remit à false lorsque le joueur revient dans le monde.

                    1 réponse Dernière réponse Répondre Citer 0
                    • B
                      Barduck02 dernière édition par 2 mars 2014, 01:42

                      Merci beaucoup.

                      1 réponse Dernière réponse Répondre Citer 0
                      • isador
                        isador Moddeurs confirmés Modérateurs dernière édition par 2 mars 2014, 09:12

                        marche pour 1.6.x?

                        1 réponse Dernière réponse Répondre Citer 0
                        • Superloup10
                          Superloup10 Modérateurs dernière édition par 2 mars 2014, 09:27

                          En principe, oui, cela devrais fonctionner à partir de la version 1.5.x.

                          Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                          1 réponse Dernière réponse Répondre Citer 0
                          • isador
                            isador Moddeurs confirmés Modérateurs dernière édition par 2 mars 2014, 09:44

                            ok merci

                            1 réponse Dernière réponse Répondre Citer 0
                            • R
                              rafoudiablol dernière édition par 8 mars 2014, 23:31

                              Si tu veux que l’item soit impossible à poser,tu implémente l’event EntityConstructEvent.
                              Si l’entité est un EntityItem de ton item, tu le kill

                              Même par dispenser et tout ça devient impossible 😉

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

                              MINECRAFT FORGE FRANCE © 2018

                              Powered by NodeBB