마인크래프트/명령어 응용

minecraft 발사체를 이용한 순간이동

dasd1568 2020. 8. 14. 16:59
반응형

(java edition 1.16.1)

 

왼쪽의 커맨드 블럭군을 파트별로 돌/화강암/섬록암/안산암 으로 표기합니다.

(본 사진은 수정 이전의 사진입니다. 아래 글을 확인하십시오.)

 

 

 

-사전에 필요한 스코어보드 :

 : /scoreboard objectives add Shoot minecraft.used:minecraft:bow

 

 

 

/왼쪽 repeat 커맨드블록 (돌)

 : execute at @p[scores={Shoot=1..}] if entity @e[type=minecraft:arrow,limit=1,distance=..2.5] run setblock <화강암 밑> minecraft:redstone_block

 

/위쪽 impulse, chain 커맨드 블록 (화강암x2)

 : execute at <player> run tag @e[type=minecraft:arrow,limit=1,sort=nearest] add Teleport

 : scoreboard objectives add Teleport minecraft.custom:minecraft.sneak_time

 

/오른쪽 repeat, chain 커맨드 블록 (섬록암x6)

 : execute at @e[tag=Teleport] run particle minecraft:dust 1 1 1 0.5 ~ ~ ~ 0 0 0 0.1 1 force @a

 : execute at @e[tag=Teleport] if entity @p[scores={Teleport=1..}] run tp <player> ~ ~ ~

 : setblock <화강암 밑> air [조건형]

 : kill @e[tag=Teleport] [조건형]

 : scoreboard objectives remove Teleport [조건형]

 : scoreboard players reset <player> Shoot [조건형]

 

/앞쪽 repeat, chain 커맨드 블록 (안산암x5)

 : execute at @e[tag=Teleport,nbt={inGround:1b}] run tp <player> ~ ~ ~

 : setblock <화강암 밑> air [조건형]

 : kill @e[tag=Teleport] [조건형]

 : scoreboard objectives remove Teleport [조건형]

 : scoreboard players reset <player> Shoot [조건형]

 

ㅡ설명ㅡ

 

화살이 아니어도 됩니다. 발사체인 것들 : 눈덩이/달걀/삼지창 등을 사용할 수 있습니다.

그럴 경우 사전에 필요한 스코어보드는 bow -> snowball/egg/trident 로 바뀌며,

type=minecraft:arrow -> snowball/egg/trident로 바뀝니다.

 

 

- 발사체가 플레이어로부터 발사되면 Shoot 점수가 생성되고, 2.5블록 내의 해당 발사체를 감지하여 화강암 아래에 레드스톤 블럭이 생성됩니다.

- 그 발사체에 Teleport라는 태그가 생성되고, 웅크리기 시간을 점수로 환산하는 Teleport 스코어보드가 생성됩니다.

- 발사체가 공중에 있을 때 웅크리기를 사용하면 플레이어가 발사체로 이동합니다.

- 발사체가 바닥에 닿았을 때 플레이어가 발사체로 이동합니다.

 

 

 

 

플레이어가 원하는 타이밍에 이동하고싶다면 안산암 파트를 생략하면 됩니다.

삼지창을 제외한 발사체가 엔티티에 맞을 경우 이동을 할 수 없습니다. 따라서 화강암 밑 레드스톤 블럭이 나타날 곳에 위 그림과 같이 리피터와 커맨드블록(kill @e[tag=Teleport])을 사용하여 오류를 해결할 수 있습니다.

반응형
  • 현재글minecraft 발사체를 이용한 순간이동