Résolu Mob qui loot plusieurs items avec chance random
-
Bonjour,
Tout est dans le titre,
Je n’arrive pas a faire un random loot avec un certain pour-cent de chance.Code de mon entité:
package fr.playflop.legitium.common.entity; import fr.playflop.legitium.common.item.ItemRegistry; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; import net.minecraft.item.Item; import net.minecraft.world.World; public class EntityRaka extends EntityMob { public EntityRaka(World world) { super(world); } public void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(5D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(6D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); } public Item getDropItem() { return Items.leather; } }
-
Voilà comment le squelette fait pour drop des os et des flèches :
@Override protected void dropFewItems(boolean p_70628_1_, int p_70628_2_) { int j; int k; j = this.rand.nextInt(3 + p_70628_2_); for (k = 0; k < j; ++k) { this.dropItem(Items.arrow, 1); } j = this.rand.nextInt(3 + p_70628_2_); for (k = 0; k < j; ++k) { this.dropItem(Items.bone, 1); } }
Si tu as d’autres questions, n’hésite pas.
Edit : Juste pour préciser, le j = this.rand.nextInt(3 + p_70628_2_); correspond aux chances de drop aléatoires entre 0 et (3 + p_70628_2_), donc 2 drops si j = 2. La valeur de p_70628_2_ correspond au looting sur l’arme utilisée. Donc si tu veux entre 0 et 5 drops par exemple, tu remplaces 3 par 5 tout simplement.
-
@‘Dylem’:
Voilà comment le squelette fait pour drop des os et des flèches :
@Override protected void dropFewItems(boolean p_70628_1_, int p_70628_2_) { int j; int k; j = this.rand.nextInt(3 + p_70628_2_); for (k = 0; k < j; ++k) { this.dropItem(Items.arrow, 1); } j = this.rand.nextInt(3 + p_70628_2_); for (k = 0; k < j; ++k) { this.dropItem(Items.bone, 1); } }
Si tu as d’autres questions, n’hésite pas.
Edit : Juste pour préciser, le j = this.rand.nextInt(3 + p_70628_2_); correspond aux chances de drop aléatoires entre 0 et (3 + p_70628_2_), donc 2 drops si j = 2. La valeur de p_70628_2_ correspond au looting sur l’arme utilisée. Donc si tu veux entre 0 et 5 drops par exemple, tu remplaces 3 par 5 tout simplement.
Merci beaucoup, je teste ça mais je pense que c’est bien ce dont j’avais besoin