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

    Résolu Ajouter des particules sur une armure

    1.7.x
    1.7.10
    4
    12
    1609
    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.
    • Izuka_
      Izuka_ dernière édition par

      Bonjour,

      J’ai récemment entré dans le développement d’un serveur pvp faction modée

      puis, ils m’ont demandé de mettre des particules genre

      Vous voyez les particules que génère l’enderchest autour de lui ?
      Ils voudraient pareil mais sauf que c’est sur l’armure

      Comment faire ?

      package com.mod.zarbium.items;
      
      import com.mod.zarbium.init.ItemMod;
      import com.mod.zarbium.proxy.Reference;
      
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.ItemArmor;
      import net.minecraft.item.ItemStack;
      import net.minecraft.potion.Potion;
      import net.minecraft.potion.PotionEffect;
      import net.minecraft.world.World;
      
      public class ItemArmorZarbium extends ItemArmor {
      
      public ItemArmorZarbium(ArmorMaterial material, int metaData) 
      {
      super(material, 0, metaData);
      }
      public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
      {
      if(stack.getItem() == ItemMod.zarbium_leggings)
      {
      return Reference.MOD_ID + ":textures/models/armor/zarbium_layer_2.png";
      }
      else if(stack.getItem() == ItemMod.zarbium_helmet || stack.getItem() == ItemMod.zarbium_chestplate || stack.getItem() == ItemMod.zarbium_boots);
      {
      return Reference.MOD_ID + ":textures/models/armor/zarbium_layer_1.png";
      }
      }
      
          public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
          {
              if(this == ItemMod.zarbium_chestplate){
                  player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 660, 0));
              }
              if(this == ItemMod.zarbium_leggings){
                  player.addPotionEffect(new PotionEffect(Potion.resistance.getId(), 660, 0));
              }
              if(this == ItemMod.zarbium_boots){
                  player.addPotionEffect(new PotionEffect(Potion.jump.getId(), 660, 0));
              }
              if(this == ItemMod.zarbium_helmet)
              {
                  player.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 660, 0));
              }
      
          }
      
      }
      
      

      Développeur Java - HTML

      1 réponse Dernière réponse Répondre Citer 0
      • SpyMan
        SpyMan dernière édition par

        Yo, avec l’event TickEvent.PlayerTickEvent tu peut faire en sorte que si le joueur a l’armure d’équipé alors tu fait un event.player.world.spawnParticle il me semble

        1 réponse Dernière réponse Répondre Citer 0
        • Izuka_
          Izuka_ dernière édition par

          C’est à dire? Tu peux me donné un exemple ?

          Développeur Java - HTML

          1 réponse Dernière réponse Répondre Citer 0
          • SpyMan
            SpyMan dernière édition par

            Tu sais utiliser les events ? ou pas

            1- Creer une class “PlayerEventHandler” dans la class tu met ca :

            
            @SubscribeEvent
            public void onTickEvent(TickEvent.PlayerTickEvent event)
            {
                 // et la tu verif si me joueur a l'armure d'aquip si oui alors
                 event.player.world.spawnParticle(…);
            }
            
            

            2- dans ta class principale -> method preinit tu rajoute MinecraftForge.EVENT_BUS.register(new PlayerEventHandler());

            si tu comprend pas viens sur le discord du forum et je t’expliquerai https://discordapp.com/invite/0uXCYNHVWGM8sAYS

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

              Sinon y’a une méthode tickée pour les ItemArmor.

              1 réponse Dernière réponse Répondre Citer 0
              • SpyMan
                SpyMan dernière édition par

                srx ? je savais pas je connaissais larmortick mais pas ca

                1 réponse Dernière réponse Répondre Citer 0
                • Izuka_
                  Izuka_ dernière édition par

                  SpyMan , je débute dans le Forge donc oui j’sais pas utilisé les évents


                  J’ai essayé mais ça fais une erreur ça me dit de remplacer world par woldObj

                  package com.mod.zarbium;
                  
                  import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                  import cpw.mods.fml.common.gameevent.TickEvent;
                  
                  public class PlayerEventHandler
                  {
                  @SubscribeEvent
                  public void OnTickEvent(TickEvent.PlayerTickEvent event)
                  {
                  event.player.world.spawnParticle();
                  }
                  }
                  
                  

                  Développeur Java - HTML

                  1 réponse Dernière réponse Répondre Citer 0
                  • SpyMan
                    SpyMan dernière édition par

                    remplace cest normal je connais pas les nom exact des variables du moment que c’est un type World

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

                      ça serrai pas plus simple de le faire dans le onArmorTick?

                      1 réponse Dernière réponse Répondre Citer 0
                      • SpyMan
                        SpyMan dernière édition par

                        ouai mais pour les particule elle vont par rester tout le temps que le joueur porte l’armure car onArmorTick est appeler uniquement quand le joueur equip larmor et plus apres 
                        edit : en fait j’ai un doute

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

                          Si je me souviens bien onArmorTick est appeler tant que tu portes l’armure au pire fais un println tu verras bien ^^

                          1 réponse Dernière réponse Répondre Citer 0
                          • SpyMan
                            SpyMan dernière édition par

                            gg bien vu j’ai confondu avec autre chose honte a moi

                            ducoup dans ta method onArmortick rajoute
                            world.spawnParticle(…);

                            
                            public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
                            
                            {
                            
                            if(this == ItemMod.zarbium_chestplate){
                            
                            world.spawnParticle(...);
                            player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 660, 0));
                            
                            }
                            
                            if(this == ItemMod.zarbium_leggings){
                            
                            world.spawnParticle(...);
                            player.addPotionEffect(new PotionEffect(Potion.resistance.getId(), 660, 0));
                            
                            }
                            
                            if(this == ItemMod.zarbium_boots){
                            
                            world.spawnParticle(...);
                            player.addPotionEffect(new PotionEffect(Potion.jump.getId(), 660, 0));
                            
                            }
                            
                            if(this == ItemMod.zarbium_helmet)
                            
                            {
                            
                            player.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 660, 0));
                            world.spawnParticle(...);
                            
                            }
                            }
                            
                            
                            1 réponse Dernière réponse Répondre Citer 0
                            • 1 / 1
                            • Premier message
                              Dernier message
                            Design by Woryk
                            Contact / Mentions Légales

                            MINECRAFT FORGE FRANCE © 2018

                            Powered by NodeBB