MFF

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

    Compteur kill

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    33 Messages 6 Publieurs 5.8k 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

      Sachant que ta fonction avec LivingDeathEvent n’a @EventSubscribe au dessus, qu’elle ne fait rien et qu’elle est mal placé, en effet ça ne risque pas de fonctionner.

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

        Eh eh, ouais c’est pas trop ça mais l’envie est là ^^

        Ce qui se passe niveau event doit être dans une autre classe. Commence à regarder les tutos et reviens avec ce qui te semble mieux à ce niveau là.

        De plus, il ne se passe rien dans ton event, tu as l’instance du joueur ok, maintenant il te faut détecter l’item en main et agir sur l’integer à enregistrer dans les nbt

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

          Merci mais les NBT est un peut trop compliqué pour moi j’ai essayé de les comprendre mais c’est pas trop sa pour l’event j’ai compris l’erreur plus cas comprendre les NBT

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

            le tag nbt c’est un truc mal appréhendé mais dans les faits c’est simple.

            Deux Fonctions dans la classe de ton item:

            public void writeToNBT(NBTTagCompound nbt)
                {
                    nbt.setInteger("integerExemple", 0); //Le 0 peut être tout autre nombre valable pour un integer, ce sera la valeur initiale du nbt
                    nbt.setBoolean("booleanExemple", true); //true ou false, à toi de choisir
                }
            
                public void readFromNBT(NBTTagCompound nbt)
                {
                    nbt.getInteger("integerExemple");   //rien de plus que le nom de ton nbt et son type
                    nbt.getBoolean("booleanExemple");
                }
            

            Après il faut pouvoir utiliser ça dans les autres méthodes il te faudra donc:

                    int integerExemple= stack.getTagCompound().getInteger("integerExemple");
                    boolean booleanExemple= stack.getTagCompound().getBoolean("booleanExemple");
            
            

            Je te montre une méthode par exemple où je me sers d’un boolean qui est enregistré et déclaré  dans le write et le read

            @Override
                public boolean onEntitySwing(EntityLivingBase entityLiving, ItemStack stack)
                {
                    boolean leftClick = stack.getTagCompound().getBoolean("leftClick");
                    if(leftClick)
                        stack.getTagCompound().setBoolean("leftClick", false);
                    else
                        stack.getTagCompound().setBoolean("leftClick", true);
                    return true;
                }
            

            ça te permet de voir le setBoolean (setInteger si on parle d’un Integer évidemment)

            Autre exemple d’un Integer qui me sert de timer

                    int timer = stack.getTagCompound().getInteger("timer");
             if(timer > 0)
                    {
                        stack.getTagCompound().setInteger("timer", timer - 1);
                    }
            // En n'oubliant pas de déclarer la variable dans les fonctions writeToNBT et readFromNBT
            
            

            Ceci étant dis, passons à ton cas.

            Tu veux enregistrer le nombre de kills fait avec un item donné.
            D’abord la classe de l’item donc:

            public class ItemHache extends ItemSword
            {
                public ItemHache(ToolMaterial material)
                {
                    super(material);
                }
            
            @Override
                public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b)
                {
                    if(!stack.hasTagCompound())
                    {
                        stack.setTagCompound(new NBTTagCompound());
                    }
                }
            
            public void writeToNBT(NBTTagCompound nbt)
                {
                    nbt.setInteger("frags", 0);
            
                }
            
                public void readFromNBT(NBTTagCompound nbt)
                {
                    nbt.getInteger("frags");
                }
            }
            

            Passons à la classe de l’event:

            @SubscribeEvent
            
             public void onEntityKilled1(LivingDeathEvent event)
                {
                    if(event.source.getEntity() instanceof EntityPlayer && event.source.getEntity() != null)
                    {
                        EntityPlayer player = (EntityPlayer)event.source.getEntity();
                        if(player.getHeldItem() != null && && player.getHeldItem().getItem() instanceof IciTonItem)  //
                        {
                            ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                            int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                            itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                        }
                    }
                }
            
            

            Voilà ce code n’a pas été testé, je vais essayer, si il n’est pas bon je ferai mon possible et puis sinon les autres te diront bien où j’ai merdé.
            Petit plus, toi qui veux afficher le nombre de kills (ce qui semble logique), je te conseille de passer par l’event onTooltip:

            @SubscribeEvent
                public void onTooltip(ItemTooltipEvent event)
                {
                    if(event.itemStack.getItem() == IciTonItem && event.itemStack.getItemDamage() == 0)
                    {
            if(!event.itemStack.hasTagCompound())
                        {
                            event.itemStack.setTagCompound(new NBTTagCompound());
                        }
                            int frags= event.itemStack.getTagCompound().getInteger("frags");
                            event.toolTip.add("Nombre de kills: " + frags);
                    }
            

            edit: j’ai testé ce code est fonctionnel. Par contre n’oublie pas d’enregistrer tes classes event et par là j’entends regarde les tutos et le onTooltip est un event côté client

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

              Merci beaucoup je commence a comprend les NBT.

              Parcontre si je tu e des animaux mobs etc. Sa augmente le nombre kill

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

                Pourtant tu as bien instancié EntityPlayer.

                Vire && event.source.getEntity() != null peut-être je suis pas sur du tout par contre essaye .

                
                @SubscribeEvent
                
                 public void onEntityKilled1(LivingDeathEvent event)
                    {
                        if(event.source.getEntity() instanceof EntityPlayer)
                        {
                            EntityPlayer player = (EntityPlayer)event.source.getEntity();
                            if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IciTonItem)  //
                            {
                                ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                                int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                                itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                            }        }
                    }
                
                
                1 réponse Dernière réponse Répondre Citer 0
                • darkvince37D Hors-ligne
                  darkvince37
                  dernière édition par

                  @‘floriangabet’:

                  Pourtant tu as bien instancié EntityPlayer.

                  Vire && event.source.getEntity() != null peut-être je suis pas sur du tout par contre essaye .

                  
                  @SubscribeEvent
                  
                   public void onEntityKilled1(LivingDeathEvent event)
                      {
                          if(event.source.getEntity() instanceof EntityPlayer)
                          {
                              EntityPlayer player = (EntityPlayer)event.source.getEntity();
                              if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IciTonItem)  //
                              {
                                  ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                                  int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                                  itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                              }        }
                      }
                  
                  

                  Sa change rien

                  J’ai aussi test en multi sa crash j’ai fait comme sa

                  if(event.getSide().isClient())
                  {
                  MinecraftForge.EVENT_BUS.register(new EventClient());
                  }
                  
                  package fr.darkvince.proxy;
                  
                  import org.lwjgl.input.Keyboard;
                  
                  import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                  import fr.darkvince.ultrav2.Main;
                  import net.minecraft.block.Block;
                  import net.minecraft.init.Items;
                  import net.minecraft.item.Item;
                  import net.minecraft.nbt.NBTTagCompound;
                  import net.minecraftforge.event.entity.player.ItemTooltipEvent;
                  
                  public class EventClient {
                  
                   @SubscribeEvent
                     public void onTooltip(ItemTooltipEvent event)
                     {
                         if(event.itemStack.getItem() == Main.EvisererVioletStatTrak && event.itemStack.getItemDamage() == 0)
                         {
                              if(!event.itemStack.hasTagCompound()) 
                             {
                                 event.itemStack.setTagCompound(new NBTTagCompound());
                             }
                                 int frags= event.itemStack.getTagCompound().getInteger("frags");
                                 event.toolTip.add("Nombre de kills: " + frags);
                         }
                         if(event.itemStack.getItem() == Main.bayonnetfadeStatTrak && event.itemStack.getItemDamage() == 0)
                         {
                              if(!event.itemStack.hasTagCompound()) 
                             {
                                 event.itemStack.setTagCompound(new NBTTagCompound());
                             }
                                 int frags= event.itemStack.getTagCompound().getInteger("frags");
                                 event.toolTip.add("Nombre de kills: " + frags);
                         }
                         if(event.itemStack.getItem() == Main.dopplerkarambitStatTrak && event.itemStack.getItemDamage() == 0)
                         {
                              if(!event.itemStack.hasTagCompound()) 
                             {
                                 event.itemStack.setTagCompound(new NBTTagCompound());
                             }
                                 int frags= event.itemStack.getTagCompound().getInteger("frags");
                                 event.toolTip.add("Nombre de kills: " + frags);
                         }
                         else if(event.itemStack.getItem() == Item.getItemFromBlock(Main.Xray))
                  {
                  if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
                  {
                  event.toolTip.add("Bloc permettant de voir sous les blocs");
                  event.toolTip.add("Résistance : Infini");
                  event.toolTip.add("Cassable: Pioche Xray");
                  }
                  else
                  {
                  event.toolTip.add("Maintenir shift gauche pour plus d'information");
                  }
                  }
                         else if(event.itemStack.getItem() == Main.bayonnetfade)
                  {
                  
                  if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
                  {
                  event.toolTip.add("Etat: Factory New");
                  event.toolTip.add("Valeur: 800 000 UC");
                  }
                  else
                  {
                  event.toolTip.add("Voir la valeur sur le marché (Shift Gauche)");
                  }
                  }
                      }
                  }
                  
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • GabsG Hors-ligne
                    Gabs
                    dernière édition par

                    Envoie le crash report voir.

                    Le if(event.getSide().isClient()) pour le register vire le.
                    Et il manque une partie de te classe d’event.

                    Donne nous toute ta classe d’event.

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

                      @‘floriangabet’:

                      Envoie le crash report voir.

                      Le if(event.getSide().isClient()) pour le register vire le.
                      Et il manque une partie de te classe d’event.

                      Donne nous toute ta classe d’event.

                      C’est ma class event complet sa 
                      if(event.getSide().isClient())
                      j’ai mis sa car on ma dit de le mettre coter client sinon j’ai vu qu’on pouvais faire un SIDE.CLIENT

                      –-- Minecraft Crash Report ----
                      // Oh - I know what I did wrong!
                      
                      Time: 28/11/16 17:56
                      Description: Exception in server tick loop
                      
                      java.lang.NoClassDefFoundError: net/minecraft/client/Minecraft
                      at fr.darkvince.proxy.LivingEventCustom.onEntityKilled1(LivingEventCustom.java:84)
                      at cpw.mods.fml.common.eventhandler.ASMEventHandler_47_LivingEventCustom_onEntityKilled1_LivingDeathEvent.invoke(.dynamic)
                      at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
                      at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140)
                      at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:314)
                      at net.minecraft.entity.EntityLivingBase.func_70645_a(EntityLivingBase.java:1014)
                      at net.minecraft.entity.EntityLivingBase.func_70097_a(EntityLivingBase.java:978)
                      at net.minecraft.entity.monster.EntityMob.func_70097_a(EntityMob.java:71)
                      at net.minecraft.entity.monster.EntityZombie.func_70097_a(EntityZombie.java:249)
                      at net.minecraft.entity.player.EntityPlayer.func_71059_n(EntityPlayer.java:1399)
                      at net.minecraft.network.NetHandlerPlayServer.func_147340_a(NetHandlerPlayServer.java:1611)
                      at net.minecraft.network.play.client.C02PacketUseEntity.func_148833_a(SourceFile:55)
                      at net.minecraft.network.play.client.C02PacketUseEntity.func_148833_a(SourceFile:10)
                      at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:245)
                      at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:181)
                      at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1023)
                      at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:432)
                      at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:841)
                      at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:693)
                      at java.lang.Thread.run(Thread.java:745)
                      Caused by: java.lang.ClassNotFoundException: net.minecraft.client.Minecraft
                      at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
                      ... 20 more
                      Caused by: java.lang.RuntimeException: Attempted to load class bao for invalid side SERVER
                      at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:51)
                      at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)
                      at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)
                      ... 22 more
                      
                      A detailed walkthrough of the error, its code path and all known details is as follows:
                      ---------------------------------------------------------------------------------------
                      
                      -- System Details --
                      Details:
                      Minecraft Version: 1.7.10
                      Thermos Version: cyberdynecc:Thermos:1.7.10-1614.58
                      Plugins: X_Reporter, RemoveRecipes, WorldEdit, LVLUltra, NoCraft, Essentials, GroupManager, BanRecipe, Frame_Protector, QuickSign, Multiverse-Core, WorldGuard, ProtocolLib, EssentialsProtect, JustBlood, VoxelSniper, EssentialsChat, EssentialsAntiBuild, Vault, EssentialsSpawn, MassiveCore, ChestShop, AuthMe, MasterPromote, Factions, CombatTagPlus, MineWeb_BukkitBridge, SpawnShield
                      Disabled Plugins:
                      Operating System: Linux (amd64) version 3.5.0-47-generic
                      Java Version: 1.8.0_60, Oracle Corporation
                      Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                      Memory: 189742640 bytes (180 MB) / 463564800 bytes (442 MB) up to 10416029696 bytes (9933 MB)
                      JVM Flags: 23 total; -Xmx10000M -Xms256M -XX:MaxPermSize=256m -XX:PermSize=128m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseNUMA -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=50 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:UseSSE=3 -XX:+UseLargePages -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:+AggressiveOpts
                      AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                      IntCache: cache: 15, tcache: 0, allocated: 13, tallocated: 95
                      FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 16 mods loaded, 16 mods active
                      States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
                      UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
                      UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (Thermos-1.7.10-1558-server.jar)
                      UCHIJAAAA Forge{10.13.4.1614} [Minecraft Forge] (Thermos-1.7.10-1558-server.jar)
                      UCHIJAAAA kimagine{0.2} [KImagine] (minecraft.jar)
                      UCHIJAAAA FLabsBF{4.3} [Better Furnaces] (Better-Furnaces-Mod-1.7.10.jar)
                      UCHIJAAAA BiblioCraft{1.11.5} [BiblioCraft] (BiblioCraft[v1.11.5][MC1.7.10].jar)
                      UCHIJAAAA dungeonpack{1.7.10-1.0} [Dungeon Pack] (dungeonpack-1.7.10-1.0.jar)
                      UCHIJAAAA EasyCrafting{1.7.10-2.0.1.16} [Easy Crafting] (EasyCrafting-1.7.10-2.0.1.16.jar)
                      UCHIJAAAA endercrop{1.7.10-1.1} [Ender Crop] (endercrop-1.7.10-1.2.jar)
                      UCHIJAAAA etfuturum{1.4.3} [Et Futurum] (Et Futurum-1.4.3.jar)
                      UCHIJAAAA IronChest{6.0.62.742} [Iron Chest] (ironchest-1.7.10-6.0.62.742-universal.jar)
                      UCHIJAAAA ultrav2{1.0.0} [Ultrafight V2] (modid-1.0.jar)
                      UCHIJAAAA ModCustomMenu{1.0} [ModCustomMenu] (modid-1.0.jar)
                      UCHIJAAAA MoreBows2{1.0.1} [More Bows 2] (MoreBows2-1.0.1.jar)
                      UCHIJAAAA potioncore{@VERSION@} [Potion Core] (Potion-Core-1.7.10.jar)
                      UCHIJAAAA supercraftingframe{1.7.10.1} [Super Crafting Frame] (Super-Crafting-Frame-Mod-1.7.10.jar)
                      Profiler Position: N/A (disabled)
                      Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                      Player Count: 2 / 80; [EntityPlayerMP['darkvince_'/226, l='ttt', x=327,43, y=67,00, z=358,78](darkvince_ at 327.4334585482397,67.0,358.7839497965997), EntityPlayerMP['NeKz'/274, l='ttt', x=326,05, y=67,00, z=356,57](NeKz at 326.0524255966283,67.0,356.56621091475574)]
                      Is Modded: Definitely; Server brand changed to 'thermos,cauldron,craftbukkit,mcpc,kcauldron,fml,forge'
                      Type: Dedicated Server (map_server.txt)
                      
                      1 réponse Dernière réponse Répondre Citer 0
                      • GabsG Hors-ligne
                        Gabs
                        dernière édition par

                        Oui tu as les @SideOnly(Side.CLIENT) c’est mieux.
                        Fin je préfères à toi de voir.

                        Pour se qui est du crash c’est dans la classe LivingEventCustom visiblement .

                        Donne nous cette classe

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

                          package fr.darkvince.proxy;
                          
                          import java.util.Random;
                          
                          import com.ibm.icu.util.Calendar;
                          
                          import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                          import cpw.mods.fml.common.gameevent.TickEvent;
                          import fr.darkvince.ultrav2.Main;
                          import fr.darkvince.ultrav2.casseKnife.EvisererVioletStatTrak;
                          import fr.darkvince.ultrav2.casseKnife.bayonnetfadeStatTrak;
                          import fr.darkvince.ultrav2.casseKnife.dopplerkarambitStatTrak;
                          import fr.darkvince.ultrav2.cassefauchon.Knife;
                          import net.minecraft.block.Block;
                          import net.minecraft.client.Minecraft;
                          import net.minecraft.entity.boss.EntityWither;
                          import net.minecraft.entity.item.EntityItem;
                          import net.minecraft.entity.monster.EntityCreeper;
                          import net.minecraft.entity.monster.EntitySkeleton;
                          import net.minecraft.entity.player.EntityPlayer;
                          import net.minecraft.init.Blocks;
                          import net.minecraft.init.Items;
                          import net.minecraft.item.ItemStack;
                          import net.minecraft.nbt.NBTTagCompound;
                          import net.minecraftforge.event.entity.living.LivingDeathEvent;
                          import net.minecraftforge.event.entity.living.LivingDropsEvent;
                          import net.minecraftforge.event.entity.player.ItemTooltipEvent;
                          import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;
                          
                          public class LivingEventCustom
                          {
                          
                             @SubscribeEvent
                          
                             public void onEntityKilled1(LivingDeathEvent event)
                                {
                                    if(event.source.getEntity() instanceof EntityPlayer)
                                    {
                                        EntityPlayer player = (EntityPlayer)event.source.getEntity();
                                        if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof EvisererVioletStatTrak)  //
                                        {
                                            ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                                            int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                                            itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                                        }
                                    }
                                    if(event.source.getEntity() instanceof EntityPlayer)
                                    {
                                        EntityPlayer player = (EntityPlayer)event.source.getEntity();
                                        if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof bayonnetfadeStatTrak)  //
                                        {
                                            ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                                            int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                                            itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                                        }
                                    }
                                    if(event.source.getEntity() instanceof EntityPlayer)
                                    {
                                        EntityPlayer player = (EntityPlayer)event.source.getEntity();
                                        if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof dopplerkarambitStatTrak)  //
                                        {
                                            ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                                            int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                                            itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                                        }
                                    }
                                }
                          
                          @SubscribeEvent
                          public void onBlockDrop(HarvestDropsEvent event)
                          {
                          if(event.block == Blocks.glass)
                          {
                          event.drops.clear();
                          event.dropChance = (float) 0.1;
                          event.drops.add(new ItemStack(Main.GemXray)); 
                          }
                          }
                          
                            @SubscribeEvent
                            public void onLivingDrops(LivingDropsEvent event)
                            {
                              if ((event.entity instanceof EntityWither))
                              {
                                EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, new ItemStack(Main.whiterDrop, 1));
                                event.drops.add(newdrop);
                              }
                              if(event.entity instanceof EntityCreeper)
                              {
                          for(int i = 0; i < event.drops.size(); i ++) 
                          {
                          if(event.drops.get(i).getEntityItem().getItem() == Items.gunpowder && event.source.getDamageType().equals("anvil"))
                          {
                          EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, new ItemStack(Main.poudredyna, 1));
                          
                              event.drops.add(newdrop); }
                          }
                              }
                          
                              if ((event.entity instanceof EntitySkeleton))
                              {
                                EntitySkeleton skeleton = (EntitySkeleton)event.entity;
                                if (skeleton.getSkeletonType() == 1)
                                {
                                  EntityItem i = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, new ItemStack(Items.skull, 1, 1));
                          
                                  event.drops.remove(i);
                                }
                              }
                            }
                          }
                          
                          
                          1 réponse Dernière réponse Répondre Citer 0
                          • GabsG Hors-ligne
                            Gabs
                            dernière édition par

                            Tien ton event devrait être comme ça:

                            
                            @SubscribeEvent
                            
                              public void onEntityKilled1(LivingDeathEvent event)
                                 {
                            EntityPlayer player = (EntityPlayer)event.source.getEntity();
                                     if(player instanceof EntityPlayer)
                                     {
                                         if(player.getHeldItem() != null)
                                         {
                                          if(player.getHeldItem().getItem() instanceof EvisererVioletStatTrak)
                                         {
                                          ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                                          int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                                          itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                                         }
                                          else if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof bayonnetfadeStatTrak)  //
                                          {
                                          ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                                          int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                                          itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                                          }
                                          else if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof dopplerkarambitStatTrak)  //
                                          {
                                          ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();  //on récupère l'itemstack qui nécessairement est l'item voulu
                                          int frags = itemstack.getTagCompound().getInteger("frags");  //on récupère ton nbt
                                          itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer
                                          }
                                         }
                                     }
                                 }
                            
                            

                            La ligne 84 de cette classe correspond à quoi? (LivingEventCustom)

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

                                 ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem();
                              
                              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

                                Remplaces tous les Minecraft.getMinecraft().thePlayer par player.

                                Il serait vraiment temps d’arrêter d’utiliser Minecraft.getMinecraft() côté serveur –’
                                C’est pourtant pas compliquer à comprendre, Minecraft.java = client only = crash côté serveur.

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

                                  Ma faute ^^

                                  Par contre il ne me semble pas qu’il y ait besoin de répéter les if, il suffit de mettre les conditions ensemble

                                             if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof Item1|| player.getHeldItem().getItem() instanceof Item2|| player.getHeldItem().getItem() instanceof Item3|| player.getHeldItem().getItem() instanceof Item4|| player.getHeldItem().getItem() instanceof Item5|| player.getHeldItem().getItem() instanceof Item6))
                                  {
                                                  ItemStack itemstack = player.getCurrentEquippedItem();
                                                  int frags = itemstack.getTagCompound().getInteger("frags");
                                                  itemstack.getTagCompound().setInteger("frags", frags + 1);
                                              }
                                  
                                  1 réponse Dernière réponse Répondre Citer 0
                                  • GabsG Hors-ligne
                                    Gabs
                                    dernière édition par

                                    @‘Toutoune1008’:

                                    Ma faute ^^

                                    Par contre il ne me semble pas qu’il y ait besoin de répéter les if, il suffit de mettre les conditions ensemble

                                               if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof Item1|| player.getHeldItem().getItem() instanceof Item2|| player.getHeldItem().getItem() instanceof Item3|| player.getHeldItem().getItem() instanceof Item4|| player.getHeldItem().getItem() instanceof Item5|| player.getHeldItem().getItem() instanceof Item6))
                                    {
                                                    ItemStack itemstack = player.getCurrentEquippedItem();
                                                    int frags = itemstack.getTagCompound().getInteger("frags");
                                                    itemstack.getTagCompound().setInteger("frags", frags + 1);
                                                }
                                    

                                    Ah oui exact aussi j’avais pas pensé.

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

                                      Ou alors créer une interface que tu implémentes aux armes auxquelles tu veux un compteur de kill et faire :

                                      
                                      if(player.getHeldItem() instanceof TonInterface) {
                                      
                                      }
                                      
                                      

                                      Ou encore créer une classe mère pour toutes tes armes et faire

                                      
                                      if(player.getHeldItem() instanceof TaClasseMere) {
                                      
                                      }
                                      
                                      
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • FolganskyF Hors-ligne
                                        Folgansky Correcteurs
                                        dernière édition par

                                        Je ne sais pas pour lui mais moi j’apprécie ce conseil qui me recadre en le prenant à mon compte.

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

                                          Merci pour votre aide je vais le modifier pour faire plus propre

                                          Envoyé de mon SM-G928F en utilisant Tapatalk

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

                                          MINECRAFT FORGE FRANCE © 2024

                                          Powered by NodeBB