TequilAxBr Postado Abril 14, 2017 Denunciar Compartilhar Postado Abril 14, 2017 (editado) Oi pessoas Gostaria de saber se alguém ai sabe como criar Custom Enchants, estilo o plugin CustomEnchants do bukkit... Encontrei isso: https://bukkit.org/threads/custom-enchantments-you-say-what.160684/ Mas slá kk.. Plugin CustomEnchantsment que me refiro no tópico: https://dev.bukkit.org/projects/custom-enchantments Editado Abril 14, 2017 por TequilAxBr Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Abril 14, 2017 Denunciar Compartilhar Postado Abril 14, 2017 É assim mesmo https://bukkit.org/threads/custom-enchantments-you-say-what.160684/ Você cria uma classe extendendo a classe enchant, e coloca ela usando reflection, só essa parte aqui que acho que você irá mudar public static CustomEnchantment ench = new CustomEnchantment(69); Pois o ID ai esta 69, e se não me engano, da ultima vez que mexi com bukkit, o spigot já tinha ultrapassado este valor nos enchants, lembro que até usei +100 de id, da uma olhada na classe que tu vai saber, se for pra 1.5.2 se não me engano tu pode usar 70 por ai, não lembro, mas é isso ai Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Abril 14, 2017 Autor Denunciar Compartilhar Postado Abril 14, 2017 É assim mesmo https://bukkit.org/threads/custom-enchantments-you-say-what.160684/ Você cria uma classe extendendo a classe enchant, e coloca ela usando reflection, só essa parte aqui que acho que você irá mudar Pois o ID ai esta 69, e se não me engano, da ultima vez que mexi com bukkit, o spigot já tinha ultrapassado este valor nos enchants, lembro que até usei +100 de id, da uma olhada na classe que tu vai saber, se for pra 1.5.2 se não me engano tu pode usar 70 por ai, não lembro, mas é isso ai Saquei, então só seguir o passo a passo né? E tipo posso por um id, por exemplo: 78789997 ? Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Abril 14, 2017 Denunciar Compartilhar Postado Abril 14, 2017 Saquei, então só seguir o passo a passo né? E tipo posso por um id, por exemplo: 78789997 ? Pode até o limite do int se não me engano, mas usa tipo +200, não vai passar disso, e se passar, vai demorar ainda Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Abril 14, 2017 Autor Denunciar Compartilhar Postado Abril 14, 2017 Pode até o limite do int se não me engano, mas usa tipo +200, não vai passar disso, e se passar, vai demorar ainda Okey... Vou tentar criar aqui, se der certo dou resolvido. Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Abril 14, 2017 Autor Denunciar Compartilhar Postado Abril 14, 2017 Pode até o limite do int se não me engano, mas usa tipo +200, não vai passar disso, e se passar, vai demorar ainda Consegui fazer aqui. Tenho outras dúvidas, se souber a resposta: 1º: Dei uma lida nos posts lá do tópico do bukkit, e o pessoal disse que não daria para encantar por exemplo algum item com o encantamento que eu criei na mesa de encantamentos. Queria saber se da para encantar ou não? 2º: Se eu criar um enchanted book, adicionar esse encantamento e tentar juntar na bigorna, se eu fizer isso funcionaria? Ou eu teria que criar um sistema para juntar o livro com o item? 3º: E para eu definir as funcionalidades dos encantamentos, seria assim: Iria usar listeners e pá, verifica se por exemplo no item tinha o encantamento se tivesse realizava a ação, seria isso? Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Abril 15, 2017 Denunciar Compartilhar Postado Abril 15, 2017 Consegui fazer aqui. Tenho outras dúvidas, se souber a resposta: 1º: Dei uma lida nos posts lá do tópico do bukkit, e o pessoal disse que não daria para encantar por exemplo algum item com o encantamento que eu criei na mesa de encantamentos. Queria saber se da para encantar ou não? 2º: Se eu criar um enchanted book, adicionar esse encantamento e tentar juntar na bigorna, se eu fizer isso funcionaria? Ou eu teria que criar um sistema para juntar o livro com o item? 3º: E para eu definir as funcionalidades dos encantamentos, seria assim: Iria usar listeners e pá, verifica se por exemplo no item tinha o encantamento se tivesse realizava a ação, seria isso? 1º - Não, ela não irá aparecer na mesa de encantamento 2º - Essa questão da bigorna eu nunca tinha parado para pensar, só testando mesmo 3º - Viável, sim, pode-se fazer desde modo também, fica até mais fácil, basta saber fazer. Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Abril 15, 2017 Denunciar Compartilhar Postado Abril 15, 2017 Já tentei fazer isso, e criando uma classe que extende encantamento não dá certo porque quando eu fiz, não apareceu no item, fiz um debug e dizia que estava encantado mas não aparecia no item, então para aparecer eu teria que adicionar algo na lore, e para isso nem valia a pena criar a tal classe, apenas colocava na lore.. Além que esse id do encantamento tem limite sim, só não sei qual é. Resumindo, vai precisar de mexer na lore de qualquer maneira, então o melhor é só mexer na lore mesmo. Tem um plugin de encantamentos muito baixado no spigot, o CrazyEnchantments que é open-src, pode dar uma olhada lá.. Também usam a lore apenas. Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Abril 15, 2017 Denunciar Compartilhar Postado Abril 15, 2017 Já tentei fazer isso, e criando uma classe que extende encantamento não dá certo porque quando eu fiz, não apareceu no item, fiz um debug e dizia que estava encantado mas não aparecia no item, então para aparecer eu teria que adicionar algo na lore, e para isso nem valia a pena criar a tal classe, apenas colocava na lore.. Além que esse id do encantamento tem limite sim, só não sei qual é. Resumindo, vai precisar de mexer na lore de qualquer maneira, então o melhor é só mexer na lore mesmo. Tem um plugin de encantamentos muito baixado no spigot, o CrazyEnchantments que é open-src, pode dar uma olhada lá.. Também usam a lore apenas. O limite é o int só, e a questão de aparecer, para aparecer no lore, não tem como mesmo pq não é do minecraft, então isso é óbvio, e usar apenas lore tem suas falhas, a lore só se usa para "mostrar" que aquele item possui tal encantamento, fora isto, tende-se utilizar uma classe de custom enchant, para quem quer fazer coisas básicas tudo bem, pode usar só lore. Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Abril 15, 2017 Denunciar Compartilhar Postado Abril 15, 2017 O limite é o int só, e a questão de aparecer, para aparecer no lore, não tem como mesmo pq não é do minecraft, então isso é óbvio, e usar apenas lore tem suas falhas, a lore só se usa para "mostrar" que aquele item possui tal encantamento, fora isto, tende-se utilizar uma classe de custom enchant, para quem quer fazer coisas básicas tudo bem, pode usar só lore. Entendo, custom enchant é mais viável para verificar se tem tal encantamento, mas se não usar nenhum plugin que mexa com lore ou que coloque alguma lore com o mesmo nome de algum encantamento, não vejo nenhuma falha em usar apenas a lore.. Usar o custom enchant e a lore acaba por ser mais seguro, para usar apenas a lore acaba por ser mais fácil porém tem que ser mais cauteloso com a compatibilidade com outros plugins. Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Abril 15, 2017 Autor Denunciar Compartilhar Postado Abril 15, 2017 1º - Não, ela não irá aparecer na mesa de encantamento 2º - Essa questão da bigorna eu nunca tinha parado para pensar, só testando mesmo 3º - Viável, sim, pode-se fazer desde modo também, fica até mais fácil, basta saber fazer. Tem alguma ideia de como fazer para aparecer na mesa de encantamento? O plugin CustomEnchantments faz isso kk... Link para o comentário Compartilhar em outros sites More sharing options...
TzMarcio Postado Abril 15, 2017 Denunciar Compartilhar Postado Abril 15, 2017 Tem alguma ideia de como fazer para aparecer na mesa de encantamento? O plugin CustomEnchantments faz isso kk... ele deve usar o evento EnchantItemEvent e verifica os enchants compatíveis/incompatíveis com o enchant custom alem de colocar um chance do enchant desejado ser adicionado no item que esta sendo encantado. Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Abril 15, 2017 Autor Denunciar Compartilhar Postado Abril 15, 2017 ele deve usar o evento EnchantItemEvent e verifica os enchants compatíveis/incompatíveis com o enchant custom alem de colocar um chance do enchant desejado ser adicionado no item que esta sendo encantado. Vou dar uma olhada e testar aqui, valeu Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Abril 15, 2017 Denunciar Compartilhar Postado Abril 15, 2017 Vou dar uma olhada e testar aqui, valeu Pode usar também o PrepareItemEnchantEvent, usa o .getOffers() que retorna uma lista de EnchantmentOffer, em cada EnchantmentOffer você pode usar .setCost() , .setLevel() e .setEnchantment(CustomEnchant) ou .setEnchantment(Enchantment.getById(69)). Ae o próprio bukkit randomiza as 3 ofertas e encanta com uma delas. Ou então usa o EnchantItemEvent, cancela o evento, adiciona os encantamentos que quiser e retiro o xp que quiser. Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Abril 15, 2017 Autor Denunciar Compartilhar Postado Abril 15, 2017 Pode usar também o PrepareItemEnchantEvent, usa o .getOffers() que retorna uma lista de EnchantmentOffer, em cada EnchantmentOffer você pode usar .setCost() , .setLevel() e .setEnchantment(CustomEnchant) ou .setEnchantment(Enchantment.getById(69)). Ae o próprio bukkit randomiza as 3 ofertas e encanta com uma delas. Ou então usa o EnchantItemEvent, cancela o evento, adiciona os encantamentos que quiser e retiro o xp que quiser. Entendi, vlw. O limite é o int só, e a questão de aparecer, para aparecer no lore, não tem como mesmo pq não é do minecraft, então isso é óbvio, e usar apenas lore tem suas falhas, a lore só se usa para "mostrar" que aquele item possui tal encantamento, fora isto, tende-se utilizar uma classe de custom enchant, para quem quer fazer coisas básicas tudo bem, pode usar só lore. Olha a parte que comentei no código, estou tendo alguns problemas: @Enchant(name = "Icemind", id = 110, startLevel = 1, maxLevel = 3) @EventHandler public void enchantmentIcemind(EntityDamageByEntityEvent event) { if (event.getDamager() instanceof Player) { // Player entity = (Player) event.getEntity(); Player damager = (Player) event.getDamager(); if (damager.getItemInHand() != null && damager.getItemInHand().getTypeId() != 0) { ItemStack item = damager.getItemInHand(); Enchantment ench = plugin.getEnchantmentManager().getEnchamentFromName("Icemind"); if (item.containsEnchantment(ench)) { //Sabe me dizer por que isso não me retorna verdadeiro? //Era pra funcionar, não? //Já debuguei o "ench" e ele me retorna tudo certinho: Enchantment[110, Icemin] Bukkit.broadcastMessage("Enchants presentes: " + item.getEnchantments()); //Porem quando faço isso, ele me retorna uma arraylist sem nada... int level = item.getEnchantmentLevel(ench); //Consequentemente aqui me retorna 0. switch (level) { case 1: if ((Math.random() * 100) <= 10) { dropSnowballInTarget(damager, event.getEntity()); } break; case 2: if ((Math.random() * 100) <= 20) { dropSnowballInTarget(damager, event.getEntity()); } break; case 3: if ((Math.random() * 100) <= 30) { dropSnowballInTarget(damager, event.getEntity()); } break; } } } } } Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Abril 15, 2017 Denunciar Compartilhar Postado Abril 15, 2017 Em vez do .getEnchantmentFromName tenta .getById(id) Se isso não der esqueçe isso e tenta item.containsEnchantment(classe do encantamento) Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Abril 15, 2017 Autor Denunciar Compartilhar Postado Abril 15, 2017 Em vez do .getEnchantmentFromName tenta .getById(id) Se isso não der esqueçe isso e tenta item.containsEnchantment(classe do encantamento) O método getEnchantmentFromName é eu que fiz, pq fiz de um jeito mais fácil para criar encantamentos, olha a anotação lá em cima do evento Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Abril 17, 2017 Denunciar Compartilhar Postado Abril 17, 2017 Dessa maneira não vai dar a lado nenhum.. para ver que tem encantamento precisa da lore. Pode até ver na página do plugin a que se refere, tem lá a src.. Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Abril 17, 2017 Autor Denunciar Compartilhar Postado Abril 17, 2017 Dessa maneira não vai dar a lado nenhum.. para ver que tem encantamento precisa da lore. Pode até ver na página do plugin a que se refere, tem lá a src.. Saquei... Então vou fazer uma classe utilitária para criar os encantamentos, vlw ai... Agora, em quem dou resolvido? Os dois colaboraram... Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Abril 17, 2017 Denunciar Compartilhar Postado Abril 17, 2017 Saquei... Então vou fazer uma classe utilitária para criar os encantamentos, vlw ai... Agora, em quem dou resolvido? Os dois colaboraram... kkkk pede para fechar o tópico, senão dá ao mike, não ligo muito à melhor resposta Link para o comentário Compartilhar em outros sites More sharing options...
AlexHackers Postado Abril 17, 2017 Denunciar Compartilhar Postado Abril 17, 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
TequilAxBr
Oi pessoas
Gostaria de saber se alguém ai sabe como criar Custom Enchants, estilo o plugin CustomEnchants do bukkit...
Encontrei isso: https://bukkit.org/threads/custom-enchantments-you-say-what.160684/
Mas slá kk..
Plugin CustomEnchantsment que me refiro no tópico: https://dev.bukkit.org/projects/custom-enchantments
Editado por TequilAxBrLink para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados