Ir para conteúdo
  • 0

[Resolvido] Ajuda com Potion Splash


Critical_XxX

Pergunta

Bem meus amiguinhos vou direto no que preciso

 

como faço pra criar uma explosão no local onde uma splash potion caiu?

 

Pra quem nao sabe o que e splash potion

sao aquelas poçoes arremesaveis do minecraft

 

to precisando muito disso vlw a quem me ajudar

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

Você terá que fazer manual vou dar uma ideia rapida

Primeiramente irá fazer a parte do efeito olhando no protocolo sabemos que o ID do efeito da poção splash é 2002

Terá que enviar utilizando packet aconselho protocollib 

exemplo besta
 

	public void teste() {
		PacketContainer packet = new PacketContainer(PacketType.Play.Server.WORLD_EVENT);

		packet.getIntegers().write(0, 2002);
		packet.getIntegers().write(1, Material.RECORD_10.getId());
		packet.getIntegers().write(2, player.getLocation().getBlockX()); // X
		packet.getIntegers().write(3, player.getLocation().getBlockY()); // Y
		packet.getIntegers().write(4, player.getLocation().getBlockZ()); // Z

		try {
			ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet);
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}
	}

depois se faz um getNearbyEntities e adiciona efeitos nela normalmente

Fonte adicionas: http://wiki.vg/index.php?title=Protocol&oldid=6003#Effecthttp://wiki.vg/Protocol#Effect < desatualizado

OFF: Bom saber que você voltou a programar

Link para o comentário
Compartilhar em outros sites

Você terá que fazer manual vou dar uma ideia rapida

 

Primeiramente irá fazer a parte do efeito olhando no protocolo sabemos que o ID do efeito da poção splash é 2002

Terá que enviar utilizando packet aconselho protocollib 

 

exemplo besta

 

	public void teste() {
		PacketContainer packet = new PacketContainer(PacketType.Play.Server.WORLD_EVENT);

		packet.getIntegers().write(0, 2002);
		packet.getIntegers().write(1, Material.RECORD_10.getId());
		packet.getIntegers().write(2, player.getLocation().getBlockX()); // X
		packet.getIntegers().write(3, player.getLocation().getBlockY()); // Y
		packet.getIntegers().write(4, player.getLocation().getBlockZ()); // Z

		try {
			ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet);
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}
	}

depois se faz um getNearbyEntities e adiciona efeitos nela normalmente

Fonte adicionas: http://wiki.vg/index.php?title=Protocol&oldid=6003#Effecthttp://wiki.vg/Protocol#Effect < desatualizado

 

OFF: Bom saber que você voltou a programar

nao e isso 

o que quero e o seguinte

quero criar uma explosao onde essa poçao cair

Link para o comentário
Compartilhar em outros sites

nao e isso 

o que quero e o seguinte

quero criar uma explosao onde essa poçao cair

Ah sim, é iz pô

 

 

	@EventHandler
	public void PotionSplashEvent(org.bukkit.event.entity.PotionSplashEvent event) {
		event.getPotion().getLocation().getWorld().createExplosion(event.getPotion().getLocation(), 2F/* força */);
	}

Link para o comentário
Compartilhar em outros sites

 

Ah sim, é iz pô

 

 

	@EventHandler
	public void PotionSplashEvent(org.bukkit.event.entity.PotionSplashEvent event) {
		event.getPotion().getLocation().getWorld().createExplosion(event.getPotion().getLocation(), 2F/* força */);
	}

o problema nao e o evento e sim pra fazer isso com determinada potion '-'

tipo

nao to conseguindo colocar metadata na potion ao arremesa-la

Link para o comentário
Compartilhar em outros sites

o problema nao e o evento e sim pra fazer isso com determinada potion '-'

tipo

nao to conseguindo colocar metadata na potion ao arremesa-la

 

Esse não é o evento de arremesar? 

event.getPotion().setMetadata("metadata", new FixedMetadataValue(owningPlugin, true));
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...