sweetenpotato 7a2769d1b82447b1956af5605a67d372
안녕하세요 구마공방입니다.
오늘은 많은 분들께서 어려워 하시는 execute 문에 대해서 기초적으로 배워볼게요.
먼저, 여러분들께서 간단한 명령어인 /gamemode, /op 이런 명령어만 안다고 가정하고 진행하도록 할게요.
본격적인 내용이니만큼 혹시 이해가 되지 않으시는 내용이 있으신다면 댓글 남겨주시기 바랍니다 :)
명령어의 구성요소는 크게 5가지로 이루어져 있습니다.
가장 쉬운 개념인 좌표부터 가보도록 하겠습니다.
좌표는 해당 명령어가 실행되는 좌표를 의미합니다. 만약 아래 사진처럼 명령어를 실행한다면 명령어의 좌표는 어떻게 될까요?
플레이어가 어떤 명령어를 실행시켰는진 알 수는 없지만, (0, 4, 0) 좌표에서 명령어를 실행했다고 볼 수 있습니다.
그렇다면, 차원은 어떻게 될까요? 차원은 overworld, 즉 오버월드가 됩니다. (버킷의 월드 폴더 개념과는 약간 다릅니다)
그리고 시점은 어떻게 될까요? (0, 0) 이 됩니다.
(이 부분을 의미합니다)
그리고 대상은 어떻게 될까요? 명령어를 입력한 본인이 바로 대상이 됩니다.
이를 정리해 보면 아래와 같이 정리할 수 있습니다.
그렇다면, execute 명령어가 이와 어떤 관련이 있을까요?
execute 명령어는 '시점', '좌표', '차원', '대상'을 원하는대로 바꿀 수 있는 기능을 가지고 있습니다.
(물론 그것만 가능한 건 아니에요)
우리는 일반적으로 마인크래프트로 싱글로 플레이 할 수 있는 미니게임을 만들 때 명령 블록을 사용합니다.
그렇다면, 아래의 상황에서 명령어는 어떻게 처리될까요?
인게임 내에서는 아래와 같이 처리됩니다.
물론 커맨드 블록은 블록 엔티티로 취급되어 별개이긴 하지만,
여기서는 크게 중요한 개념이 아니니 대상이 없다고 설명하고 넘어가겠습니다.
이 상황에서, player가 "hi"라고 말하는 걸 명령 블록으로 실행하고 싶다면 어떻게 해야 할까요?
바로 execute 명령어를 이용해 대상을 player로 바꾸면 됩니다.
여기서 execute as가 사용됩니다.
execute as <대상으로 지정할 플레이어의 이름> run say hi
이렇게 입력하면 아래와 같이 나오게 할 수 있습니다. (물론 플레이어 뿐 만 아니라 다른 엔티티도 가능합니다)
(제 마인크래프트 닉네임이 sweetenpotato라서 sweetenpotato로 입력하였습니다)
이걸 진행시키면 아래와 같이 나옵니다.
즉 아래와 같이 일반화 시킬 수 있죠.
execute as [대상] run [명령]
그러면 이제 다음으로 좌표를 바꾸어 보도록 하겠습니다.
명령 블록에 tp <나의 닉네임> ~ ~ ~를 넣으면 명령블록의 좌표로 이동합니다.
(해당 좌표에 블록이 있어서 밀려납니다)
execute positioned [좌표] run [명령]으로 입력하면 해당 좌표에서 명령을 실행하는 것으로 바뀝니다. (나머지 요소는 바뀌지 않습니다)
아래와 같이 입력하시면 됩니다.
execute positioned 0 4 0 run tp sweetenpotato ~ ~ ~
만약, execute positioned 0 4 0 run say hi
를 명령 블록에 입력하면 어떻게 될까요?
대상이 바뀌지 않았기 때문에 해당 명령어는 대상이 지정되지 않은 상태가 되고, 따라서 아래 그림과 같이 도출됩니다.
say 명령어에서는 좌표가 그다지 큰 역할을 하지 않기 때문에 티가 안나는거죠.
execute in [차원] run [명령]은 명령어가 실행되는 차원을 바꿀 수 있습니다.
execute in minecraft:the_end run tp sweetenpotato ~ ~ ~
를 입력하면 아래와 같이 진행됩니다. (채팅창에 입력해도 동일합니다)
즉, 멀티월드나 그런 플러그인 없이 커맨드 만으로도 포탈 없이 차원을 오가는게 가능해집니다.
다음은 positioned as, at, rotated, facing 명령어에 대해서 다루도록 하겠습니다.
이해가 안되는 부분이 있으면 댓글 남겨주세요!
구마공방
2021.02.17execute 명령어가 되게 쓰임새가 다양해서 여러 글에 나누어서 진행할 계획입니다. 또한 지금 다루지 못하는 내용에 대해서는 추후 해당 내용을 공부했을 때 보너스 느낌으로 다룰테니 기대해 주세요!
Lantum
2021.02.17좋은 내용 감사합니다 . 다음 글이 기대가 됩니다.
허두
2021.02.17와우.. 이렇게 이해 잘되는 execute 강좌는 처음입니다. 다음 글도 기대하고 있겠습니다 :)