J'ai besoin d'aide pour faire une probabilité de coffre



  • J’aimerai faire une probabilité de coffre aux environ mais pas trop cheat.
    mais je sais pas le faire.:/

    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.eventhandler.EventPriority;
    import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
    import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
    import net.minecraftforge.fml.common.event.FMLInitializationEvent;
    import net.minecraftforge.fml.common.FMLCommonHandler;
    import net.minecraftforge.event.terraingen.PopulateChunkEvent;
    import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.client.event.RenderGameOverlayEvent;
    
    import net.minecraft.world.World;
    import net.minecraft.util.ResourceLocation;
    import net.minecraft.server.MinecraftServer;
    import net.minecraft.item.ItemStack;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.client.Minecraft;
    
    import java.util.Random;
    
    import com.fury.empvp.References;
    import com.fury.empvp.init.ModItems;
    
    //import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.*;
    
    //import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.*;
    
    public class look {
    
    public static class GUIRenderEventClass {
    @SubscribeEvent(priority = EventPriority.HIGH)
    public void eventHandler(RenderGameOverlayEvent event) {
    
    if (!event.isCancelable() && event.getType() == RenderGameOverlayEvent.ElementType.HELMET) {
    
    int posX = (event.getResolution().getScaledWidth()) / 2;
    int posY = (event.getResolution().getScaledHeight()) / 2;
    
    EntityPlayer entity = Minecraft.getMinecraft().thePlayer;
    int i = (int) entity.posX;
    int j = (int) entity.posY;
    int k = (int) entity.posZ;
    int x = i;
    int y = j;
    int z = k;
    MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
    World world = server.worldServers[0];
    
    if (entity.inventory.getCurrentItem() != null && entity.inventory.getCurrentItem().getItem() == ModItems.emplogo) {
    
    Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(References.MODID,"textures/gui/chestbutin.png"));
    Minecraft.getMinecraft().ingameGUI.drawTexturedModalRect(posX + (-193), posY + (-115), 0, 0, 256, 256);
    Minecraft.getMinecraft().fontRendererObj.drawString("Butin" + i + "%", posX + (-208), posY + (-108), 0xffffff);
    
    }
    
    }
    
    }
    }
    }
    
    

    Merci beaucoup de vôtre aide encore. 🙂



  • Tu pourrais essayer de te créer une classe de génération de structure classique et tu met comme condition que ton bloc peut uniquement se générer sur le bloc de ton choix  a la place d'un bloc d'air



  • Salut,
    et par pitié change moi ce titre en quelque chose de + clair !



  • sais plus claire.?



  • Oui, en revanche on n'instancie jamais un MinecraftServer dans un Event client comme RenderGameOverlayEvent.



  • Bons j'ai fini par arriver a le faire j'ai pas vue la combinaison avec une division et un compteur

    public ActionResult <itemstack>onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) {
    int compteur = 0;
    // if(!worldIn.isRemote) {
    for (int i = 0; i < worldIn.loadedTileEntityList.size(); i++) {
    TileEntity tile = worldIn.loadedTileEntityList.get(i);
    if ((tile instanceof TileEntityChest) || tile instanceof TileEntityEnderChest ) {
    if (worldIn.loadedTileEntityList.get(i).getPos().getX() < playerIn.getPosition().getX() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getX() > playerIn.getPosition().getX() - 36
    && worldIn.loadedTileEntityList.get(i).getPos().getY() < playerIn.getPosition().getY() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getY() > playerIn.getPosition().getY() - 36
    && worldIn.loadedTileEntityList.get(i).getPos().getZ() < playerIn.getPosition().getZ() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getZ() > playerIn.getPosition().getZ() - 36) {
    
    compteur++;
    }
    
    } else if ((tile instanceof TileEntityEnderChest)) {
    if (worldIn.loadedTileEntityList.get(i).getPos().getX() < playerIn.getPosition().getX() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getX() > playerIn.getPosition().getX() - 36
    && worldIn.loadedTileEntityList.get(i).getPos().getY() < playerIn.getPosition().getY() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getY() > playerIn.getPosition().getY() - 36
    && worldIn.loadedTileEntityList.get(i).getPos().getZ() < playerIn.getPosition().getZ() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getZ() > playerIn.getPosition().getZ() - 36) {
    
    compteur++;
    }
    }
    
    else if ((tile instanceof TileEntityRCF)) {
    if (worldIn.loadedTileEntityList.get(i).getPos().getX() < playerIn.getPosition().getX() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getX() > playerIn.getPosition().getX() - 36
    && worldIn.loadedTileEntityList.get(i).getPos().getY() < playerIn.getPosition().getY() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getY() > playerIn.getPosition().getY() - 36
    && worldIn.loadedTileEntityList.get(i).getPos().getZ() < playerIn.getPosition().getZ() + 36
    && worldIn.loadedTileEntityList.get(i).getPos().getZ() > playerIn.getPosition().getZ() - 36) {
    
    // int valeur = ((TileEntityRCF) tile).getNumber();
    tile = worldIn.getTileEntity(tile.getPos());
    System.out.println("Valeur : " + ((TileEntityRCF) tile).getNumber());
    compteur -= ((TileEntityRCF) tile).getNumber();
    }
    }
    
    }
    // }
    
    // Minecraft.getMinecraft().renderEngine.bindTexture(new
    // ResourceLocation(Main.MODID,"textures/gui/chestbutin.png"));
    // Minecraft.getMinecraft().ingameGUI.drawTexturedModalRect((int)playerIn.posX
    
    // + (-193), (int)playerIn.posY + (-115), 0, 0, 256, 256);
    
    if (compteur < 0)
    compteur = 0;
    Minecraft.getMinecraft().ingameGUI.displayTitle("Coffre : " + compteur+"%", "",-293, -215,256);
    
    return new ActionResult(EnumActionResult.SUCCESS, new ItemStack(this));
    
    }
    
    }
    ```</itemstack>