iVictor777z Postado Outubro 14, 2017 Denunciar Compartilhar Postado Outubro 14, 2017 Olá, queria saber se teria como fazer um mundo que nascessem diversos baús por ele em diferentes coordenadas. Se sim, como posso fazer? Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Outubro 15, 2017 Denunciar Compartilhar Postado Outubro 15, 2017 Olha o exemplo que o jeta deu mas não precisa criar um ChunkGenerator, apenas um BlockPopulator e ae usa o WorldInitEvent e seta o BlockPopulator com event.getWorld().getPopulators.add(new SeuBlockPopulator()); Então só precisa olhar essa classe e ter em conta que: o método populate() só é chamado 1 vez em cada chunk que é gerada para pegar as verdadeiras coordenadas da chunk tem que usar (source.getX() << 4), se por exemplo uma chunk começar em x:48 z:48 o source.getX() não retorna 48 .. mas o (source.getX() << 4), por isso que no exemplo tem int centerX = (source.getX() << 4) + random.nextInt(16);, para pegar o canto da chunk e adicionar um número randômico de 0 a 15. para pegar o block à superficie int centerY = world.getHighestBlockYAt(centerX, centerZ); O resto acho que dá para entender do exemplo e como spawnar o baú e setar itens já falaram aqui. 1 Link para o comentário Compartilhar em outros sites More sharing options...
K A C E Y Postado Outubro 14, 2017 Denunciar Compartilhar Postado Outubro 14, 2017 Block block = world.getBlockAt(x, y, z); block.setType(Material.CHEST); Chest chest = (Chest) block; Inventory chestInv = chest.getInventory(); chestInv.addItem(new ItemStack(Material.DIAMOND_SWORD, 1)); Link para o comentário Compartilhar em outros sites More sharing options...
iVictor777z Postado Outubro 14, 2017 Autor Denunciar Compartilhar Postado Outubro 14, 2017 Block block = world.getBlockAt(x, y, z); block.setType(Material.CHEST); Chest chest = (Chest) block; Inventory chestInv = chest.getInventory(); chestInv.addItem(new ItemStack(Material.DIAMOND_SWORD, 1)); Queria fazer de um jeito como se fosse natural do mundo, aí não teria que determinar uma quantia exata de baús... Teria como será? Link para o comentário Compartilhar em outros sites More sharing options...
lxt Postado Outubro 14, 2017 Denunciar Compartilhar Postado Outubro 14, 2017 (editado) Faz com random sla.. '-' Random rand = new Random(); // <= 350 é a porcentagem if(rand.nextInt(1000) <= 350) { Location chestloc = new Location(Bukkit.getWorld("world"), rand.nextInt(999999), rand.nextInt(999999), rand.nextInt(999999)); Block block = (Block) chestloc.getBlock(); //Pegando o bloco. chestloc.getBlock().setType(Material.CHEST); //Setando o BAU. Chest chest = (Chest)block.getBlockData(); //Criando a variavel do BAU. Inventory inv = ((HumanEntity) chest).getInventory(); //Pegar inv do bau inv.setItem(0 /*slot*/, new ItemStack(Material.DIAMOND /*item*/));} Não testei, pode não dar certo.. Editado Outubro 14, 2017 por LoxtBR Link para o comentário Compartilhar em outros sites More sharing options...
iVictor777z Postado Outubro 14, 2017 Autor Denunciar Compartilhar Postado Outubro 14, 2017 Faz com random sla.. '-' Random rand = new Random(); // <= 350 é a porcentagem if(rand.nextInt(1000) <= 350) { Location chestloc = new Location(Bukkit.getWorld("world"), rand.nextInt(999999), rand.nextInt(999999), rand.nextInt(999999)); Block block = (Block) chestloc.getBlock(); //Pegando o bloco. chestloc.getBlock().setType(Material.CHEST); //Setando o BAU. Chest chest = (Chest)block.getBlockData(); //Criando a variavel do BAU. Inventory inv = ((HumanEntity) chest).getInventory(); //Pegar inv do bau inv.setItem(0 /*slot*/, new ItemStack(Material.DIAMOND /*item*/));} Não testei, pode não dar certo.. Queria fazer de um jeito como se fosse natural do mundo, aí não teria que determinar uma quantia exata de baús... Teria como será? Link para o comentário Compartilhar em outros sites More sharing options...
lxt Postado Outubro 14, 2017 Denunciar Compartilhar Postado Outubro 14, 2017 Queria fazer de um jeito como se fosse natural do mundo, aí não teria que determinar uma quantia exata de baús... Teria como será? Unica forma que eu sei, é TerrainControl. Link para o comentário Compartilhar em outros sites More sharing options...
jeta Postado Outubro 15, 2017 Denunciar Compartilhar Postado Outubro 15, 2017 da uma olha nesse código, da uma olhada nas classes MoonChunkGenerator.java e FlagPopulator.java https://github.com/Dinnerbone/BukkitFullOfMoon/ Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Outubro 15, 2017 Denunciar Compartilhar Postado Outubro 15, 2017 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
iVictor777z
Olá, queria saber se teria como fazer um mundo que nascessem diversos baús por ele em diferentes coordenadas. Se sim, como posso fazer?
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados