Ylemon0618 f920ec2ed0f7479684dd910fc7fde463
안녕하세요.
마인크래프트 커맨드 전문 디벨로퍼
Lemon 입니다.
저번에 execute 강좌 1편 으로 찾아 뵛었는데요.
혹시 못 보신 분들은 아래 링크를 클릭해서 보고 오시는 것을 추천합니다.
https://www.koreaminecraft.net/highquality/2036491
자 이제 execute 강좌 2편
시작하겠습니다.
Chapter 5. 세부 명령문 - facing, if ,in
5번째 세부 명령문은 facing 입니다.
facing 은 실행자의 시점이 <좌표> 를 향해 있도록 설정하는 명령어입니다.
사용 방법은 다음과 같습니다.
/execute facing <실행할 entity/다음 세부 명령문... > run <실행할 명령어>
사용 예시 : /execute as @a at @s facing entity @e[tag=test,limit=1,sort=nearest] eyes run tp @s ~ ~ ~ ~ ~
구문 해석 : 모든 플레이어가 각자의 가장 가까이 있는 tag 가 test 인 entity 를 쳐다보게 한다.
6번째 세부 명령문은 if 입니다.
이 명령어도 꽤 많이 쓰이는데요
조금 사용 방법이 다양합니다.
사용 방법은 아래와 같습니다.
1 - /execute if block <좌표> <블록> <다음 세부 명령문... > run <실행 할 명령어>
2 - /execute if blocks <시작 좌표> <끝 좌표> <지점> <다음 세부 명령문...> run <실행 할 명령어>
3 - /execute if entity <개체> <다음 세부 명령문... > run <실행 할 명령어>
4 - /execute if score <대상> <대상 목표>〈<|<=|=|>=|>〉<기준> <기준 목표> <다음 세부 명령문... > run <실행 할 명령어>
5 - /execute if score <대상> <목표> matches <범위> <다음 세부 명령문... > run <실행 할 명령어>
6 - /execute if predicate <술어> <다음 세부 명령문... > run <실행 할 명령어>
너무 많아서 설명을 적겠습니다.
1 - 해당 좌표에 맞는 블럭이 있으면 구문을 실행한다.
2 - 시작과 끝으로 설정된 지역의 블럭이 지점 지역의 블럭과 정확히 일치하면 구문을 실행한다.
3 - 개체가 존재할 때 다음 명령을 실행한다.
4 - 대상의 점수와 기준의 점수가 (부)등호에 맞을 때만 다음 명령을 실행한다.
5 - 대상의 점수가 범위에 들어갔을 때만 다음 명령을 실행한다.
6 - 사용자 정의 술어가 맞을 때 다음 명령을 실행한다. 술어에 대한 내용은 마인크래프트/데이터팩 참조
사용 예시입니다.
1 - /execute as @a at @s if block ~ ~-1 ~ minecraft:air run setblock ~ ~-1 ~ minecraft:stone
2 - /execute as @a at @s if blocks ~1 ~1 ~1 ~-1 ~-1 ~-1 ^ ^ ^5 masked run tellraw @s {"text":"test"}
3 - /execute as @a at @s if entity @e[type=pig,distance=..3] run tp @e[type=pig,distance=..3,limit=1,sort=nearest] ~ ~ ~
4 - /execute as @a at @s if score @s 1 < @s 2 run setblock ~ ~-1 ~ minecraft:stone
5 - /execute as @a if score @s test_score matches 1..3 run kill @s
6 - 전 데이터팩 전문이 아니기 때문에 넘어가겠습니다.
구문 해석입니다.
1 - 모든 플레이어의 발 밑에 air 블럭이 있을 경우 그 플레이어의 발 밑에 stone 블럭 설치하기
2 - 모든 플레이어의 ~1 ~1 ~1 부터 ~-1 ~-1 ~-1 까지의 블럭이 플레이어의 5칸 앞에있는 블럭과 같다면 'test' 출력하기
3 - 모든 플레이어의 3칸 안에 돼지가 있다면 그 플레이어의 3칸 안 기준 플레이어와 가장 가까이 있는 돼지 1마리를 그 플레이어의 위치로 tp 시키기
4 - 모든 플레이어에게 loop 시키고 그 플레이어의 '1' 이라는 변수가 '2' 라는 변수보다 작다면 그 플레이어의 발 밑에 stone 블럭 설치하기
5 - 모든 플레이어에게 loop 시키고 그 플레이어의 'test_score' 이라는 변수값이 1~3 이라면 그 플레이어를 죽이기
6 - 데이터팩
7번 째 세부 명령문은 in 입니다!
in은 특정 플레이어가 어떤 차원에 있는지 감지하는 명령어입니다.
사용 방법은 다음과 같습니다.
/execute in <차원> <다음 세부 명령문... > run <실행 할 명령어>
사용 예시 : /execute as @a at @s in minecraft:the_end run setblock ~ ~ ~ water
구문 해석 : 만약 플레이어의 차원이 'the_end' 라면 그 플레이어의 좌표에 water 블럭을 설치 하기
Chapter 6. 세부 명령문 - positioned, rotated, run
8번째 세부 명령문은 positioned 입니다!
positioned 는 특정 플레이어, 또는 특정 좌표의 블럭 값을 가져오는 명령어입니다
positioned 명령어가 at 명령어와 다른 점은
at 명령어 -> 좌표, 시점, 차원을 전부 가져옴
positioned 명령어 -> 좌표만 가져옴
입니다.
헷갈리지 않도록 꼭 알아두세요.
사용 방법은 다음과 같습니다.
/execute positioned as <개체> <다음 세부 명령문... > run <실행 할 명령어>
/execute positioned <좌표> <다음 세부 명령문... > run <실행 할 명령어>
사용 예시 : /execute positioned as @a run setblock ^ ^ ^1 minecraft:air
구문 해석 : 모든 플레이어의 눈 앞에 있는 블럭을 air 로 설정한다.
9번 째 세부 명령문은 rotated 입니다!
rotated 도 at 과는 다르게
rotated 는 시점(방향) 을 가져오는 명령어 입니다.
사용 방법은 다음과 같습니다.
/execute rotated as <개체> <다음 세부 명령문... > run <실행 할 명령어>
/execute rotated <시점 좌표> <다음 세부 명령문... > run <실행 할 명령어>
사용 예시 : /execute as @a rotatedas @s run setblock ^ ^ ^1 minecraft:stone
구문 해석 : 모든 플레이어의 바라보는 곳 1칸 앞에 stone 블럭을 설치한다.
10번째 (하... 넘 힘들어요) 세부 명령문은 run 입니다!
run 은 아까부터 나왔듯이 execute 명령어를 끝내고 그 조건을 충족할 시 <실행 할 명령어>
를 실행하게 해 주는 명령어 입니다.
사용 방법은 다음과 같습니다.
/execute run <실행 할 명령어>
사용 예시는... 안해도 되겠죠?
넘어가겠습니다.
Chapter 7. 세부 명령문 - store, unless
11번 째 세부 명령문은 store 입니다!
store 구문을 사용하면 다음 명령의 결과나 성공 횟수 등을 저장할 수 있습니다.
결과는 모든 명령어가 실행을 마친 후에 저장됩니다.
또, 명령어가 성공적으로 실행되지 않았다면, result 도 0 으로 설정됩니다.
사용 방법은 아래와 같습니다.
1 - /execute store score <대상> <목표> <다음 세부 명령문... > run <실행 할 명령어>
2 - /execute store block <좌표> <경로> <크기> <다음 세부 명령문... > run <실행 할 명령어>
3 - /execute store entity <대상> <경로> <크기> <다음 세부 명령문... > run <실행 할 명령어>
4 - /execute store bossbar <다음 세부 명령문... > run <실행 할 명령어>
이것도 중요하기 때문에 각각의 설명을 적도록 하겠습니다.
1 - 결과값이 대상의 목표에 해당하는 스코어보드에 저장됩니다. 목표는 무조건 존재해야 합니다.
2 - 블럭의 NBT 데이터를 수정하고 결과를 저장합니다.
3 - 대상의 NBT 데이터를 수정하고 결과를 저장합니다. (1.14 이하 버전은 일부 플레이어의 NBT 를 수정할 수 있었지만 1.15 버전의 패치로 store 명령어로는 플레이어의 NBT 는 그 어떤 경우에서 수정이 불가능 해 졌으니 참고 바랍니다.)
4 - 결과값을 해당 ID 를 가진 보스바의 값이나 최대값으로 저장합니다.
각각의 사용 예시입니다.
1 - /execute store success score @a result_value run title @s actionbar {"score":{"name":"@s","objective":"result_value"}}
2 - (사실 저도 그렇게 모든걸 알지 못해서 이 명령어는 잘 모릅니다. 죄송하지만 넘어가겠습니다.)
3 - (이것도)
4 - /execute store result bossbar minecraft:1 value run scoreboard players get @p HP
각각의 구문 해석입니다.
1 - 구문을 실핼하고 그 구문이 잘 실행 됬는지 확인하는 result_value 값을 출력.
4 - 실행지로 부터 가장 가까운 플레이어의 Hp 를 '1' 이라는 보스바에 저장합니다. 이 때, HP 라는 스코어보드는 type 은 health 로 만들어야 하고, 그 스코어보드에 따라 보스바가 바뀌도록 해야 합니다.
마지막 세부 명령문은 unless 입니다!
unless 는 if 문의 반대되는 것으로
'~~가 아니라면' 이라는 뜻으로 사용됩니다.
사용 방법은 if 문과 비슷합니다
사용 방법은 아래와 같습니다.
1 - /execute if block <좌표> <블록> <다음 세부 명령문... > run <실행 할 명령어>
2 - /execute if blocks <시작 좌표> <끝 좌표> <지점> <다음 세부 명령문...> run <실행 할 명령어>
3 - /execute if entity <개체> <다음 세부 명령문... > run <실행 할 명령어>
4 - /execute if score <대상> <대상 목표>〈<|<=|=|>=|>〉<기준> <기준 목표> <다음 세부 명령문... > run <실행 할 명령어>
5 - /execute if score <대상> <목표> matches <범위> <다음 세부 명령문... > run <실행 할 명령어>
6 - /execute if predicate <술어> <다음 세부 명령문... > run <실행 할 명령어>
이것도 각각의 해석을 적겠습니다.
1 - 해당 좌표에 맞는 블럭이 있지 않으면 구문을 실행한다.
2 - 시작과 끝으로 설정된 지역의 블럭이 지점 지역의 블럭과 정확히 일치하지 않으면 구문을 실행한다.
3 - 개체가 존재하지 않을 때 다음 명령을 실행한다.
4 - 대상의 점수와 기준의 점수가 (부)등호에 맞지 않을 때만 다음 명령을 실행한다.
5 - 대상의 점수가 범위에 들어가지 않았을 때만 다음 명령을 실행한다.
6 - 사용자 정의 술어가 맞지 않을 때 다음 명령을 실행한다. 술어에 대한 내용은 마인크래프트/데이터팩 참조
사용 예시입니다.
1 - /execute as @a at @s unless block ~ ~-1 ~ minecraft:air run setblock ~ ~-1 ~ minecraft:stone
2 - /execute as @a at @s unless blocks ~1 ~1 ~1 ~-1 ~-1 ~-1 ^ ^ ^5 masked run tellraw @s {"text":"test"}
3 - /execute as @a at @s unless entity @e[type=pig,distance=..3] run tp @e[type=pig,limit=1,sort=nearest] ~ ~ ~
4 - /execute as @a at @s unless score @s 1 < @s 2 run setblock ~ ~-1 ~ minecraft:stone
5 - /execute as @a unless score @s test_score matches 1..3 run kill @s
6 - 전 데이터팩 전문이 아니기 때문에 넘어가겠습니다.
구문 해석입니다.
1 - 모든 플레이어의 발 밑에 air 블럭이 있지 않을 경우 그 플레이어의 발 밑에 stone 블럭 설치하기
2 - 모든 플레이어의 ~1 ~1 ~1 부터 ~-1 ~-1 ~-1 까지의 블럭이 플레이어의 5칸 앞에있는 블럭과 같지 않다면 'test' 출력하기
3 - 모든 플레이어의 3칸 안에 돼지가 있지 않다면 그 플레이어와 가장 가까이 있는 돼지 1마리를 그 플레이어의 위치로 tp 시키기
4 - 모든 플레이어에게 loop 시키고 그 플레이어의 '1' 이라는 변수가 '2' 라는 변수보다 작지 않다면 그 플레이어의 발 밑에 stone 블럭 설치하기
5 - 모든 플레이어에게 loop 시키고 그 플레이어의 'test_score' 이라는 변수값이 1~3 이 아니라면 그 플레이어를 죽이기
6 - 데이터팩
Chapter 8. 마무리
자, 이제 모든 구문에 대한 설명이 끝났습니다.
너무 힘들었어요 ㅠ.ㅠ
그래도 유익한 시간이 되셨다면 저에게는 정말 다행입니다!
이제는 오늘 배운 execute 를 활용해 더 다양한 커맨드를 제작/활용 해 보세요!
저는 다음에 또 유익하고 재밌는 강좌로 다시 돌아오겠습니다!
긴 강좌 읽어주신 여러분
감사합니다!
- 출처 -
마인크래프트/데이터팩 - 나무 위키 -
Discord : 레몬#2334
Twitch : Ylemon0618
Minecraft (JE) : Ylemon0618
Minecraft (BE) : Yellow_lemon0618
Blog : https://blog.naver.com/kimkyuwan0618
HK for Developers : https://discord.com/invite/2gxSqWu
한마포 디스코드 : https://discord.com/invite/wxvR4ZZ
(혹시... 아직도 가입 안하신분 없죠? 있으면 꼭 가입)
Ylemon0618
2020.10.21음... 조회수가 안나오네요. 이런
마크초보레오
2021.02.19execute if blocks -268 199 -68 -272 199 -68 -260 201 -68 masked run say hi
이게 왜 안될까요?