개인 자료란 (JE)

  서버 커뮤니티

Profile Ylemon0618 대표칭호 없음

Ylemon0618 f920ec2ed0f7479684dd910fc7fde463

Profile

커맨드 제작

마인크래프트 커맨드 기초 강좌 - execute (2편)

2020.10.04 조회 수 5115 추천 수 2

안녕하세요.

마인크래프트 커맨드 전문 디벨로퍼

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 

(혹시... 아직도 가입 안하신분 없죠? 있으면 꼭 가입)

2개의 댓글

Ylemon0618
2020.10.21

음... 조회수가 안나오네요. 이런

마크초보레오
2021.02.19

execute if blocks -268 199 -68 -272 199 -68 -260 201 -68 masked run say hi

 이게 왜 안될까요?

뉴스 및 창작물
/files/thumbnails/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2