Ir para conteúdo
  • 0

[Resolvido] [DUVIDA] Cancelar MoveEvent


Lucca.

Pergunta

Boa tarde, estou finalizando meu plugin de SkyWars, e estou fazendo o spectator..

Preciso de um code, que impeça o player de subir ou descer, apenas mover-se para os lados (Tipo mc-games)..

alguém de bom coração poderia me ajudar ou mandar só o code? ;-;

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  int limite = 70;
 
  @EventHandler
  public void onMove(PlayerMoveEvent e){
      if(e.getTo().getY() < limite || e.getTo().getY() > limite + 1){
          e.setCancelled(true);
          e.getPlayer().teleport(e.getFrom());
          e.getPlayer().sendMessage("§cNÃO!");
      }
  }

 

Like + Resolvido? <3

Editado por Dual
Link para o comentário
Compartilhar em outros sites

Guest zCouDray

saalve localização y do espectador em uma ArrayList, e depois execute no player move event se o y é diferente do marcado na ArrayList ou uma variavel de int qualquer, se for diferente, sete o y dele no marcado.

 

@Edit:

int y = 64;

@EventHandler
public void aoMover(PlayerMoveEvent e){
if(p.getLocation().getY() != y){
p.getLocation().setY(y);
p.sendMessage("§cVoce nao pode se mover para baixo ou para cima!"):

Esperto ter ajudado.

Editado por zCouDray
Link para o comentário
Compartilhar em outros sites

 @EventHandler
	  public void nomove(PlayerMoveEvent e){
		  Player p = e.getPlayer();
		  if ((p.getLocation().getY() == 200) ||
		  (p.getLocation().getY() == 198)){
			  e.setCancelled(true);
			  p.sendMessage("Nao suba e nem desça!");
		  }
	  }

Acho que funciona '-'

Editado por zMathi
Link para o comentário
Compartilhar em outros sites

saalve localização y do espectador em uma ArrayList, e depois execute no player move event se o y é diferente do marcado na ArrayList ou uma variavel de int qualquer, se for diferente, sete o y dele no marcado.

 

@Edit:

 

Se quiser eu posso fazer o código pra você.

ArrayList ? slc, da pra fazer isso só usando metodos do playrmoveevent

 

Vou fazer, já edito.

Link para o comentário
Compartilhar em outros sites

Guest zCouDray

ArrayList ? slc, da pra fazer isso só usando metodos do playrmoveevent

 

Vou fazer, já edito.

Já consegui fazer, olha o edit do meu post.

Link para o comentário
Compartilhar em outros sites

saalve localização y do espectador em uma ArrayList, e depois execute no player move event se o y é diferente do marcado na ArrayList ou uma variavel de int qualquer, se for diferente, sete o y dele no marcado.

 

@Edit:

int y = 64;

@EventHandler
public void aoMover(PlayerMoveEvent e){
if(p.getLocation().getY() != y){
p.getLocation().setY(y);
p.sendMessage("§cVoce nao pode se mover para baixo ou para cima!"):

Esperto ter ajudado.

è muito role tudo isso, acredito que tenha maneira mais facil de fazer.. 

Mais vlw a intenção, <3

 @EventHandler
	  public void nomove(PlayerMoveEvent e){
		  Player p = e.getPlayer();
		  if ((p.getLocation().getY() == 200) ||
		  (p.getLocation().getY() == 198)){
			  e.setCancelled(true);
			  p.sendMessage("Nao suba e nem desça!");
		  }
	  }

Acho que funciona '-'

Acredito que sim, mais vou usar o code do duel ou do leonardu, -q

vlw pela ajuda mathi

 

ArrayList ? slc, da pra fazer isso só usando metodos do playrmoveevent

 

Vou fazer, já edito.

ok

 

  int limite = 70;

 

  @EventHandler

  public void onMove(PlayerMoveEvent e){

      if(e.getTo().getY() < limite || e.getTo().getY() > limite + 1){

          e.setCancelled(true);

          e.getPlayer().teleport(e.getFrom());

          e.getPlayer().sendMessage("§cNÃO!");

      }

  }

 

Like + Resolvido? <3

ownt que mininu coderzinhu

Link para o comentário
Compartilhar em outros sites

Guest zCouDray

è muito role tudo isso, acredito que tenha maneira mais facil de fazer.. 

Mais vlw a intenção, <3

Acredito que sim, mais vou usar o code do duel ou do leonardu, -q

vlw pela ajuda mathi

 

ok

 

ownt que mininu coderzinhu

Acho que a minha é a maneira mais fácil de fazer oque você está tentando, não tem mt complicação isso.

Link para o comentário
Compartilhar em outros sites

	@EventHandler
	private void onPlayerMoveEvent(PlayerMoveEvent e)
	{
		if (e.getFrom().getBlockY() != e.getTo().getBlockY())
		{
			e.getPlayer().teleport(e.getPlayer().getLocation());
		}
	}

Isso só permite que ele ande para os lados, como você disse.

Link para o comentário
Compartilhar em outros sites

Acho que a minha é a maneira mais fácil de fazer oque você está tentando, não tem mt complicação isso.

Talvez.. é que já vi um code desse em algum plugin, na época que eu era decompiler..

Era relacionado ao code do dual, ai lembrei quando ele mando aquele..

Vou esperar o do leonardo, e vou dar resolvido pro melhor..

Link para o comentário
Compartilhar em outros sites

Talvez.. é que já vi um code desse em algum plugin, na época que eu era decompiler..

Era relacionado ao code do dual, ai lembrei quando ele mando aquele..

Vou esperar o do leonardo, e vou dar resolvido pro melhor..

ja postei

Link para o comentário
Compartilhar em outros sites

Guest zCouDray
	@EventHandler
	private void onPlayerMoveEvent(PlayerMoveEvent e)
	{
		if (e.getFrom().getBlockY() != e.getTo().getBlockY())
		{
			e.getPlayer().teleport(e.getPlayer().getLocation());
		}
	}

Isso só permite que ele ande para os lados, como você disse.

 

e.e

Link para o comentário
Compartilhar em outros sites

	@EventHandler
	private void onPlayerMoveEvent(PlayerMoveEvent e)
	{
		if (e.getFrom().getBlockY() != e.getTo().getBlockY())
		{
			e.getPlayer().teleport(e.getPlayer().getLocation());
		}
	}

Isso só permite que ele ande para os lados, como você disse.

 

è que vou fazer algo relacionado ao seguinte, terá um ''pré'' death event, que quando esse evento ser chamado, colocará ele invisivel, irá subir cerca de 25 blocos + - e adicionará em uma arraylist, ai no move event, se ele tiver na arrayList, cancela o evento

Link para o comentário
Compartilhar em outros sites

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