Résolu Ajouter des particules sur une armure
-
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’armureComment 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)); } } }
-
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
-
C’est à dire? Tu peux me donné un exemple ?
-
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
-
Sinon y’a une méthode tickée pour les ItemArmor.
-
srx ? je savais pas je connaissais larmortick mais pas ca
-
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(); } }
-
remplace cest normal je connais pas les nom exact des variables du moment que c’est un type World
-
ça serrai pas plus simple de le faire dans le onArmorTick?
-
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 -
Si je me souviens bien onArmorTick est appeler tant que tu portes l’armure au pire fais un println tu verras bien ^^
-
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(...); } }