Ir para conteúdo

Algum dev?


Clickey

Posts Recomendados

Queria saber como eu faço um plugin que ao digitar /parede no chat crie uma parede na minha frente
Alguem pode me ajudar?
Já criei o comando ''/parede'' e ao digitar-lo aparece ''Parede criada''
Agora preciso saber como faço ele realmente criar uma parede!
Algum DEV ?
Uso o eclipse.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Ygor disse:

Aproveitando o tópico, como colocar a parede há uma distância de 3 blocos na frente do jogador?

pega o yaw ou pitch do jogador (o que move os lados) e registra a partir dele o norte, sul, leste e oeste

 

depois ve se norte é +x -x +z ou -z e conta a local do player -+3 em x ou  z e monta a parede a partir disso

(te aconselho a registrar os blocos em uma hashmap para depois de tantos segundos eles sumirem e aparecer o bloco que estava antes para nao bugar)

Link para o comentário
Compartilhar em outros sites

3 horas atrás, mabazi disse:

pega o yaw ou pitch do jogador (o que move os lados) e registra a partir dele o norte, sul, leste e oeste

 

depois ve se norte é +x -x +z ou -z e conta a local do player -+3 em x ou  z e monta a parede a partir disso

(te aconselho a registrar os blocos em uma hashmap para depois de tantos segundos eles sumirem e aparecer o bloco que estava antes para nao bugar)

Consegue mandar um código exemplificando pra mim?

Link para o comentário
Compartilhar em outros sites

57 minutos atrás, Ygor disse:

Consegue mandar um código exemplificando pra mim?

to um pouco impossibilitado agr, mas vou tentar fazer um rascunho

Spoiler

Player p = player;
float yaw = p.getLocation().getYaw();

String lado = "norte" //norte sul leste oeste
  
  //o yaw vai de -180 a 180 sendo -180 extremo norte
  //se 360 é o total e tem 4 lados 180/4 = 90
  //cada lado tem 90 e o centro do norte fica em -180º
  //entao norte começa em (180-45) 135 e termina em -135_
  
if(yaw < -135 || yaw > 135){
  	lado = "norte";
 }//só calcular os outros lados

if(lado.equals("norte")){
 	//para saber se soma ou subtrai x ou z vc pode ver no mine, olhe para o north 
  	//e ande para frente e veja como as cordenadas se comportam 
  	//aqui o north fica com -Z
  location local = p.getLocation().subtract(0,0,3); //subtract(x, y, z) faz com que seja subtraido esses valores de xyz do location, nesse caso subtrai 3 do z (z-3)
  local.setBlock(Material.STONE);
  //agora é so pegar a locatizaçao da parede e ir fazendo, te aconselho a usar a api world edit do eduard
}

 

 

Link para o comentário
Compartilhar em outros sites

Em 23/10/2018 em 19:49, Ygor disse:

Consegue mandar um código exemplificando pra mim?

É bom que você tente criar você mesmo para você aprender. Mas posso tentar te dar uma ideia.

Pra saber qual direção o player está olhando, você tem que olhar o valor PITCH ou YAW da posição dele (não me lembro qual dos dois é o certo). Se eu não me engano para isso você usaria p.getLocation().getPitch(). Assim você sabe que se o valor está entre dois valores, ele está olhando para uma direção. Se está entre outros dois, ele está olhando para outra direção. Dessa Maneira você sabe quandos blocos deve adicionar a posição dele para saber onde a parede deve aparecer.

 

Para fazer os blocos voltarem depois de um tempo é um pouco mais complicado. No momento que você troca o material do bloco de AIR para o material de sua escolha, você tem que salvar de alguma forma (recomendo HaspMap) a posição e o material antigo desse bloco. Com os materiais e as posições antigas salvas, você pode rodar um timer que depois de X segundos faça os blocos salvos voltarem para o material de origem.

 

Mesmo que não consiga criar, pelo menos tente e mande aqui no tópico para darmos uma olhada ?

Link para o comentário
Compartilhar em outros sites

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