Des Radius et adaptations spécifiques ?
-
List entity = world.selectEntitiesWithinAABB(EntityPlayer.class, player.boundingBox.expand(15.0D, 15.0D, 15.0D), new IEntitySelector(){ @Override public boolean isEntityApplicable(Entity entity) { return entity instanceof EntityPlayer; ((entity)par3Entity).addPotionEffect(new PotionEffect(Potion.poison.id, 1200, 0)); } } });J’ai essayer de le faire comme ça, mais sans succès avec pleins d’erreurs

-
Ah oui …
Tu as mit où ce code ?
Envoie la classe entière. -
Essaie avec çà plutôt :
List entity = world.selectEntitiesWithinAABB(EntityPlayer.class, player.boundingBox.expand(15.0D, 15.0D, 15.0D), new IEntitySelector(){ @Override public boolean isEntityApplicable(Entity entity) { return entity instanceof EntityPlayer; } } });Et ensuite tu récupère la liste que tu peux lire avec un iterator ou autre chose dans le genre, mais comme je l’ai dis : quand on ne sait pas ce qu’on fait, vaut mieux ne rein faire.
-
package fr.squizzcraft.modmikavanille; import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.command.IEntitySelector; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; public class RadiocatifBlock extends Block { protected RadiocatifBlock(Material material) { super(material); } List entity = world.selectEntitiesWithinAABB(EntityPlayer.class, player.boundingBox.expand(15.0D, 15.0D, 15.0D), new IEntitySelector(){ //Erreur sur world et player @Override public boolean isEntityApplicable(Entity entity) { return entity instanceof EntityPlayer; ((EntityPlayer)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 1200, 0)); } }); }Ensuite, je pense qu’avec ça, le joueur qui a posé le bloc va être empoisonné aussi !
-
Si tu mets du code comme ça n’importe où c’est normal que ça ne fonctionne pas …
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) { List entities = world.selectEntitiesWithinAABB(EntityPlayer.class, living.boundingBox.expand(15.0D, 15.0D, 15.0D), new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { return entity instanceof EntityPlayer; } }); for(Object o : entities) { if(o instanceof EntityPlayer) { ((EntityPlayer)o).addPotionEffect(new PotionEffect(Potion.poison.id, 1200, 0)); } } } -
Merci bien Robin ! Pour le radioactif ! Ca marche !
Alors, j’ai fais des recherches pour le GlassPane, j’ai trouver ça dans la classe BlockCactus :
public boolean canPlaceBlockAt(World world, int x, int y, int z) { return !super.canPlaceBlockAt(world, x, y, z) ? false : this.canBlockStay(world, x, y, z); }Mais, je ne sais pas comment je peux mettre le GlassPane, car on a pas d’énonciation de blocks !
-
Personne pour le Block GlassPane ?
-
@‘SquizzCraft’:
Personne pour le Block GlassPane ?
Il faut réécrire la fonction canBlockStay.
-
Comment ça ?
-
this.canBlockStay(world, x, y, z)
ctrl + clic dessus. ça va te ramener à la fonction, c’est elle qu’il faut reprendre et adapter. -
@‘SquizzCraft’:
Comment ça ?
Apprend le java et le code sous MinecraftForge en regardant des tutoriels parce que là tu ne sais pas faire de simples choses : regarde les tutoriels de Robin (il y a aussi la chaîne youtube MinecraftForgeFrance)
-
Ben, il me ramène là :
public boolean canBlockStay(World p_149718_1_, int p_149718_2_, int p_149718_3_, int p_149718_4_) { return true; }Encore une fois, il n’y a pas de déclaration de bloc ^^’
-
Pas dans le cas du cactus :
public boolean canBlockStay(World p_149718_1_, int p_149718_2_, int p_149718_3_, int p_149718_4_) { if (p_149718_1_.getBlock(p_149718_2_ - 1, p_149718_3_, p_149718_4_).getMaterial().isSolid()) { return false; } else if (p_149718_1_.getBlock(p_149718_2_ + 1, p_149718_3_, p_149718_4_).getMaterial().isSolid()) { return false; } else if (p_149718_1_.getBlock(p_149718_2_, p_149718_3_, p_149718_4_ - 1).getMaterial().isSolid()) { return false; } else if (p_149718_1_.getBlock(p_149718_2_, p_149718_3_, p_149718_4_ + 1).getMaterial().isSolid()) { return false; } else { Block block = p_149718_1_.getBlock(p_149718_2_, p_149718_3_ - 1, p_149718_4_); return block.canSustainPlant(p_149718_1_, p_149718_2_, p_149718_3_ - 1, p_149718_4_, ForgeDirection.UP, this); } } -
Oui d’accord, mais il n’y a pas de Blocks.Sand dans cette fonction ?
-
return block.canSustainPlant(p_149718_1_, p_149718_2_, p_149718_3_ - 1, p_149718_4_, ForgeDirection.UP, this);
C’est dans cette fonction que c’est géré. -
Il faut que je fasse un return block.GlassPane ?
-
@‘SquizzCraft’:
Il faut que je fasse un return block.GlassPane ?
Non, il faut juste regarder si le block en dessous est un glass pane.
-
Et je le dis comment ça ? Car dans la fontion, il n’y a pas de Sand
-
@‘SquizzCraft’:
Et je le dis comment ça ? Car dans la fontion, il n’y a pas de Sand
Essaie avec çà :
public boolean canBlockStay(World world, int x, int y, int z) { if (world.getBlock(x - 1, y, z) == Blocks.glass_pane) { return true; } return false; } -
@‘SCAREX’:
@‘SquizzCraft’:
Et je le dis comment ça ? Car dans la fontion, il n’y a pas de Sand
Essaie avec çà :
public boolean canBlockStay(World world, int x, int y, int z) { if (world.getBlock(x - 1, y, z) == Blocks.glass_pane) { return true; } return false; }Ce serai pas y - 1 plutôt que x - 1 ?