dudu Postado Dezembro 1, 2017 Denunciar Compartilhar Postado Dezembro 1, 2017 ola gostaria de saber se tem como eu cancelar o drop de um plyar quando ele morre mas vejamos gostaria de saber se tem tipo como eu cancelar o drop do do inventario ou so da armadura vamos supor ele morre ai se ta bloqueado o drop da armadura so dropa os itens do inventario vice versa Obrigado Link para o comentário Compartilhar em outros sites More sharing options...
FilipeNock Postado Dezembro 4, 2017 Denunciar Compartilhar Postado Dezembro 4, 2017 (editado) Tipo ja fiz isso o que queria saber mesmo e como faz para exemplo dropar so o inventario tipo a armadura que era pra ser dropada levasse o clear e nao ficava com o player tendeu dropava so o inventario e a armadura nao e o inverso tambem; Basicamente ele vai dropar todos os items, o que voce precisa fazer é ver os items que são armaduras e setar para o player quando ele renascer public HashMap<Player, ItemStack[]> pitems = new HashMap<>(); @EventHandler public void playerd(PlayerDeathEvent e) { Player p = e.getEntity(); pitems.put(p, p.getInventory().getArmorContents()); e.getDrops().removeAll(Arrays.asList(p.getInventory().getArmorContents())); } @EventHandler public void playerr(PlayerRespawnEvent e) { Player p = e.getPlayer(); if (pitems.containsKey(p)) { p.getInventory().setArmorContents(pitems.get(p)); } } isso é só um exemplo n sei se funciona fiz pelo navegador msm mas se vc pensar um pouco consegue fazer melhor! EDIT: public HashMap<Player, ItemStack[]> pitems = new HashMap<>(); public HashMap<Player, ItemStack[]> pinvitems = new HashMap<>(); public boolean salvarInventario = false; public boolean salvarArmaduras = true; @EventHandler public void playerd(PlayerDeathEvent e) { Player p = e.getEntity(); if (salvarArmaduras) { pitems.put(p, p.getInventory().getArmorContents()); e.getDrops().removeAll(Arrays.asList(p.getInventory().getArmorContents())); } if (salvarInventario) { pinvitems.put(p, p.getInventory().getContents()); e.getDrops().removeAll(Arrays.asList(p.getInventory().getContents())); } } @EventHandler public void playerr(PlayerRespawnEvent e) { Player p = e.getPlayer(); if (pitems.containsKey(p)) { p.getInventory().setArmorContents(pitems.get(p)); pitems.remove(p); } if (pinvitems.containsKey(p)) { p.getInventory().setContents(pinvitems.get(p)); pinvitems.remove(p); } } Editado Dezembro 4, 2017 por FilipeNock Link para o comentário Compartilhar em outros sites More sharing options...
FilipeNock Postado Dezembro 2, 2017 Denunciar Compartilhar Postado Dezembro 2, 2017 @EventHandler public void death(PlayerDeathEvent e) { e.getDrops().clear(); } faz um scan nos items dropados os que forem armadura por exemplo adiciona em uma hashMap quando o player respawnar seta os items de novo para o jogador Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Dezembro 2, 2017 Denunciar Compartilhar Postado Dezembro 2, 2017 Sim, usa o listener PlayerDeathEvent. Link para o comentário Compartilhar em outros sites More sharing options...
dudu Postado Dezembro 2, 2017 Autor Denunciar Compartilhar Postado Dezembro 2, 2017 @EventHandler public void death(PlayerDeathEvent e) { e.getDrops().clear(); } faz um scan nos items dropados os que forem armadura por exemplo adiciona em uma hashMap quando o player respawnar seta os items de novo para o jogador Tipo ja fiz isso o que queria saber mesmo e como faz para exemplo dropar so o inventario tipo a armadura que era pra ser dropada levasse o clear e nao ficava com o player tendeu dropava so o inventario e a armadura nao e o inverso tambem; Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Dezembro 3, 2017 Denunciar Compartilhar Postado Dezembro 3, 2017 Tipo ja fiz isso o que queria saber mesmo e como faz para exemplo dropar so o inventario tipo a armadura que era pra ser dropada levasse o clear e nao ficava com o player tendeu dropava so o inventario e a armadura nao e o inverso tambem; É só você pegar o getArmorContents(); do player e dar clear. Link para o comentário Compartilhar em outros sites More sharing options...
Hard Postado Dezembro 4, 2017 Denunciar Compartilhar Postado Dezembro 4, 2017 public HashMap<Player, ItemStack[]> itens = new HashMap<>(); @EventHandler public void onPlayerDeath(PlayerDeathEvent event) { Player player = event.getEntity(); itens.put(player, player.getInventory().getArmorContents()); event.getDrops().removeAll(Arrays.asList(p.getInventory().getArmorContents())); } Link para o comentário Compartilhar em outros sites More sharing options...
lucakiksd07 Postado Dezembro 4, 2017 Denunciar Compartilhar Postado Dezembro 4, 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
dudu
ola gostaria de saber se tem como eu cancelar o drop de um plyar quando ele morre mas vejamos
gostaria de saber se tem tipo como eu cancelar o drop do do inventario ou so da armadura
vamos supor ele morre ai se ta bloqueado o drop da armadura so dropa os itens do inventario vice versa
Obrigado
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados