xLaionBr Postado Outubro 6, 2020 Denunciar Compartilhar Postado Outubro 6, 2020 Olá, gostaria de uma ajuda como eu poderia começar um sistema de contabilidade de blocos, exemplo... Criar uma picareta e colocar um limite de blocos sla pode quebrar 5 blocos e depois não poderá quebrar mais! Quem poder me ajudar agradeceria. Link para o comentário Compartilhar em outros sites More sharing options...
xpz~ Postado Outubro 6, 2020 Denunciar Compartilhar Postado Outubro 6, 2020 Esse ai é difícil de fazer viu, não é qualquer dev que faz Link para o comentário Compartilhar em outros sites More sharing options...
TH_Marinho Postado Outubro 6, 2020 Denunciar Compartilhar Postado Outubro 6, 2020 diparis#8831 Link para o comentário Compartilhar em outros sites More sharing options...
Ygor Postado Outubro 6, 2020 Denunciar Compartilhar Postado Outubro 6, 2020 Entre outros métodos, você pode experimentar colocar a quantidade de blocos no lore Link para o comentário Compartilhar em outros sites More sharing options...
abidux Postado Outubro 7, 2020 Denunciar Compartilhar Postado Outubro 7, 2020 criei um pequeno plugin para lhe dar um exemplo, eu usei tags NBT. Recomendo que analise o código, não apenas o cole. @Override public void onEnable() { Bukkit.getPluginManager().registerEvents(this, this); } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (command.getName().equalsIgnoreCase("pickaxe") && sender instanceof Player) { Player player = (Player)sender; ItemStack picareta = new ItemStack(Material.DIAMOND_PICKAXE); ItemMeta meta = picareta.getItemMeta(); meta.setDisplayName("§6Limited Pickaxe"); picareta.setItemMeta(meta); net.minecraft.server.v1_8_R3.ItemStack nmsPicareta = CraftItemStack.asNMSCopy(picareta); NBTTagCompound tag = nmsPicareta.hasTag() ? nmsPicareta.getTag() : new NBTTagCompound(); tag.setInt("blocks", 5); nmsPicareta.setTag(tag); player.getInventory().addItem(CraftItemStack.asBukkitCopy(nmsPicareta)); } return false; } @EventHandler public void onBreak(BlockBreakEvent e) { ItemStack item = e.getPlayer().getItemInHand(); if (item.hasItemMeta() && item.getItemMeta().hasDisplayName() && item.getItemMeta().getDisplayName().equals("§6Limited Pickaxe")) { net.minecraft.server.v1_8_R3.ItemStack nmsItem = CraftItemStack.asNMSCopy(item); NBTTagCompound tag = nmsItem.getTag(); int blocks = tag.getInt("blocks") - 1; if (blocks == 0) { e.getPlayer().setItemInHand(null); sendBlocks(e.getPlayer(), blocks); return; } tag.setInt("blocks", blocks); nmsItem.setTag(tag); e.getPlayer().setItemInHand(CraftItemStack.asBukkitCopy(nmsItem)); sendBlocks(e.getPlayer(), blocks); } } private void sendBlocks(Player player, int blocks) { IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a("{\"text\":\"§7Usos restantes: §e"+blocks+"§7/§e5\"}"); PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte)2); ((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet); } Link para o comentário Compartilhar em outros sites More sharing options...
Brunno Postado Outubro 14, 2020 Denunciar Compartilhar Postado Outubro 14, 2020 Em 07/10/2020 em 07:17, abi disse: criei um pequeno plugin para lhe dar um exemplo, eu usei tags NBT. Recomendo que analise o código, não apenas o cole. Isso aí é persistente? Link para o comentário Compartilhar em outros sites More sharing options...
abidux Postado Outubro 14, 2020 Denunciar Compartilhar Postado Outubro 14, 2020 @Brunno se a pergunta é se fica a mesma informação depois que fecha o servidor ou faz alguma m*rda, sim, fica. É guardado no item NBT, tipo nome, lore, essas coisas Link para o comentário Compartilhar em outros sites More sharing options...
BettoSK Postado Outubro 15, 2020 Denunciar Compartilhar Postado Outubro 15, 2020 Seu tópico foi marcado como Inativo. Para reverter esta ação, entre em contato com a equipe de Moderação. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados