개인 자료란 (JE)

  서버 커뮤니티

Profile 리미트 디벨로퍼 인증 개발자

LIMIT611 121f617fc6b7428c8d1cc3dd098ddd30

Profile

강좌 자바 에디션(JE) 커맨드 공략

리미트의 한계까지 달려보는 커맨드 강좌 제 4강 - 대상 선택 인자에 대해 알아보자! [한달]

2020.04.14 조회 수 820 추천 수 0
게임버전 모든버전 

5140ab54be08e2804a7f2190626a0178.gif

리미트계까지 려보는 커맨드 강좌

제 4강  - 대상 선택 인자에 대해 알아보자!

목차!



와 벌써 4강! 죽음의 4 (이게 일제 강점기에서 변형되었다는 소문도 있더군요) 강이므로 이번 강좌는 진짜 어려울 수도 있습니다.

(사실 그렇게 어렵진 않아요 커맨드 초보한텐 어려울 수도?) 바로 시작 해보죠


대상 선택 인자는? -


e4029dc4310c256c9d743159206962e4.jpg

(NPC 마을 하나를 처리 하면서 시작해봅시다.)


흠... 어디서 부터 시작해야 하나.........


흠 먼저 대상 선택 인자에 대해서 알려드리는게 나을 것 같군요.

대상 선택 인자는 어... 개체를 선택하는 방법(?) 같은거라고 하는 게 좋겠군요


9ed5b4b2edfb502c55ecbc6eb51c4060.png


예를 들어보면 이 명령어의 @e[type=!minecraft:player] 부분입니다.

뒤쪽에 자세히 설명하겠지만 대충 해석해보면 모든 엔티티중 플레이어가 아닌 것을 대상으로 선택한다는 말입니다.


대상 선택 인자의 종류 -


대상 선택 인자의 큰 틀은 5개 정도 있습니다.

@a, @e, @p, @r, @s 이렇게 다섯개요. 더 자세한 부분도 있지만 일단 넘어 갑시다. 좀이따 설명할게요

(저 @이가 왜 있는지는 묻지 마세요! 저도 모르니까요! 아마도 모장이 저렇게 하고싶었나보죠!)


저 대상 선택 인자 의 뜻을 좀 설명드려보면


@a : 모든 플레이어를 대상으로 합니다.

@e : 모든 엔티티를 대상으로 합니다.

@p : 가장 가까운 플레이어를 대상으로 합니다.

@r : 무작위로 한명의 플레이어를 대상으로 합니다.

@s : 명령을 실행시킨 엔티티를 대상으로 합니다.


(@s 부분을 잠시 들여다보면 엔티티를 대상으로 한다는 것을 알 수 있을겁니다. 그럼 드는 한가지 궁금증이 있을텐데

엔티티가 어떻게 명령을 실행시키지? 라고요. 엔티티가 명령을 실행시키는 것은 execute 로 가능한데 execute는 마지막 강의니까 일단 넘어갑시다.)


엔티티에 대한 지식이 있다면 이 부분은 그냥 알겁니다. (모른다면 댓글 남겨주세요 알려드림)

그러므로~! 자세한 부분으로 바로 넘어가겠습니다.


대상 선택 인자의 종류 심화 -


흠... 이 부분까지 자세히 사진넣어가며 설명하긴 지이ㅣ이이이이ㅣㅣ이이ㅣ이이ㅣ이이이ㅣ인 짜 힘들거 같아서

(사실 글 쓰기 전엔 사진을 뭘 찍어야 할지도 모르는 주제라서 더 힘들어유)

글로 자세히 설명하겠습니다. (글로 이해가 안되시면 댓글로 물어봐 주세요)


대상 선택 인자에 자세한 부분을 넣으려면 [@a/@e/@p/@r/@s] 중 하나 뒤에 대괄호 ( [ , ])  를 사용합니다.

대괄호를 작성하는 방식은 [인자 = 값, 인자 = 값, - - - >] 이런식입니다. 


! 를 사용해서 반대를 의미할 수 있습니다.

예를 들면 @e[type=player] 은 플레이어인 엔티티를 대상으로 하지만 << (minecraft: 는 생략 할게요)

@e[type=!player] 은 플레이어가 아닌 모든 엔티티를 대상으로 합니다.


똑같은걸 여러개 쓸 수 있습니다.

@e[type=pig,type=cow] 도 가능합니다. 돼지와 소를 대상으로 한다는 뜻입니다. << (역시나 minecraft: 는 생략 할게요)


좌표  -

말 그대로 좌표를 기준으로 합니다.

기준으로 한다는 말은 무엇이냐면 이 좌표를 기준으로 범위를 설정해야 사용 할 수 있다는 뜻입니다.

distance 이나 dx , dy, dz 를 이용해서요.


사용 방법은 [x=(수),y=(수), z=(수)] 입니다.


distance -

distance는 좌표를 구의 중심으로 하여 distance 값 만큼 반지름을 설정해서 그 구 안에 있는 대상을 지정합니다.

그러니까 @a[x=0,y=0,z=0,distance=5] 라고 하면 반지름이 5고 중심이 (0, 0, 0) 인 구 안에 있는 플레이어를 대상으로 지정한다는게 됩니다. 

(이 distance가 반지름을 위 설명처럼 5 라고 하지 않고 (반지름) X √2 / 2 의 값으로 반지름을 설정하는 것 같다고 합니다.)


dx , dy , dz -

dx, dy, dz는 기준으로 부터 몇블럭까지 떨어진 지점을 범위로 할것인지를 설정합니다.

말이 좀 어려운데 

e1d41ccc6b9a788983a68ac6b0f5e29f.png

(빨간 점이 기준이에요), (dx , dy , dz 는 음수가 될 수도 있습니다.)

기준으로부터 X 몇블럭 Y 몇블럭 Z 몇블럭 이렇게 해서 저런 직육면체 안의 엔티티를 대상으로 한다는 말입니다.

@a[x=0,y=0,z=0,dx=1,dy=1,dz=1] 이라고 하면 부피가 1인 직육면체 안에 들어온 플레이어만 대상으로 하게 되겠죠


점수 -

점수 즉 스코어보드 값을 이용해서 대상을 지정합니다.

사용 방법은 scores={(스코어보드 이름)=(범위 또는 값)} 

<< 마인크래프트에선 범위를 (최솟값)..(최댓값) 으로 지정합니다. (그러니까 ..5 는 5 이하 6.. 는 6 이상 1..5 는 1이상 5 이하입니다.) (값)은 다들 아시겠죠? 그냥 숫자 때려 넣으면 됩니다.


@a[scores={SCORE = 1..5}] 는 "SCORE" 이라는 이름을 가진 스코어 보드 값이 1이상 5 이하인 플레이어를 대상으로 지정합니다.


태그 -

태그를 가진 엔티티를 대상으로 지정합니다.

태그는 엔티티의 이름표 같은 겁니다. 

엔티티에 관한 명령어 편에서 태그를 붙이는 방법을 알려릴 예정인데 흠... 벌써 이게 나와버렸..

어쨌든 사용방법은 tag=(태그 이름)  입니다.


@a[tag=1] 이라고 하면 1이라는 태그를 가진 플레이어를 대상으로 지정합니다.


팀 -

팀에 속해있는 엔티티를 대상으로 합니다.

스코어 보드 편에서 다룰 생각이였던 개념인데 scoreboard team 명령어에서 아예 새로운 명령어로 만들어 졌습니다.

사용 방법은 team=(팀 이름) 입니다.


@a[team=red] 이라고 하면 red 팀인 플레이어를 대상으로 합니다.


수 -

정렬된  개체중에서 얼마나 대상으로 할지를 정합니다.

사용 방법은 limit=(수) 입니다.


@a[limit=5] 라고 하면 정렬된 순서부터 5번째 까지를 대상으로 지정합니다.


정렬 -

정렬은 여러 기준으로 정할 수 있는데 4가지가 있습니다

(nearest, furthest, random, arbitrary)


사용방법은 sort=(기준)입니다.


[sort=nearest] : 가까운 순서부터 정렬합니다.
[sort=furthest] : 먼 순서부터 정렬합니다.
[sort=random] : 무작위로 정렬합니다.
[sort=arbitrary] : 소환된 순서부터 정렬합니다.

레벨 -

말 그대로 레벨이 범위내에 있는 사람을 대상으로 합니다.


사용 방법은 level=(범위)/(수) 입니다.


@a[level=1..5] 이라고 하면 레벨이 1이상 5이하인 플레이어를 대상으로 합니다.


게임 모드 -

그대로 게임모드가 지정한 게임모드인 사람을 대상으로 합니다.


사용 방법은 gamemode=(게임모드이름) 입니다.


@a[gamemode=survival] 이라고 하면 서바이벌 모드인 플레이어를 대상으로 합니다.


이름 -

지정된 이름을 가진 엔티티를 대상으로 합니다.


사용 방법은 name = (문자열) 입니다.


@a[name=limit_kr] 이라고 하면 limit_kr 이라는 이름을 가진 플레이어를 대상으로 합니다.


수직 회전 -

시선의 수직 방향 각도가 범위 내에 속해있는 개체를 대상으로 합니다.


사용 방법은  x_rotation=(범위) 입니다.


@a[x_rotation=1..100] 으로 하면 1이상 100 이하에 시선을 두고 있는 (수직방향) 플레이어를 대상으로 합니다.


수평회전 -

시선의 수평 방향 각도가 범위 내에 속해있는 개체를 대상으로 합니다.


사용방법은 y_rotation=(범위) 입니다.


@a[y_rotation=1..100] 으로 하면 1이상 100 이하에 (수평방향으로) 시선을 두고 있는 플레이어를 대상으로 합니다.


개체종류 -

지정된 개체 종류에 속하는 개체를 대상으로 합니다.


사용 방법은 type=(종류) 입니다.


@e[type=pig] 라고 하면 돼지를 대상으로 합니다.


발전 과제 -

지정된 발전과제를 깼거나 깨지 않은 개체를 대상으로 합니다.


사용 방법은 advancements={minecraft:(발전과제 분류) / (발전과제 id)=(true/false)}  입니다.


@a[advancements={minecraft:adventure/summon_iron_golem= true}] 라고 하면 철골렘을 소환하는 도전과제를 클리어 한 플레이어를 대상으로 합니다.


NBT - 

해당 NBT 값을 가지고 있는 개체를 대상으로 합니다.

NBT는 개체의 속성 같은 건데요 나중에 차차 설명 하도록 하죠 이 강좌에서 그걸 설명하려하면 분명히 글자 수가 8000자를 넘어 갈겁니다. 지금 벌써 4100자를 쳤거든요 (하...)


사용 방법은 nbt={속성(?)} 입니다.


@a[nbt={OnGround:1b}] 라고 하면 땅에 서 있는 플레이어를 대상으로 합니다.


Predicate -

흠...? 이건 저도 처음 봤습니다. 이 강좌쓰면서 공부하다보니 이런게 있더군요..

데이터팩 어쩌구 하던데 더 공부해서 알려드리도록 하겠습니다.


어... 대충 이렇게 알아봤는데요

다음에 또보죠


목차




16개의 댓글

허두
2020.04.15
@리미트

언더테일 아시는구나!

리미트
2020.04.16
@허두

그거 겁.나.어.렵.습.니.다

 

허두
2020.04.16
@리미트

와! 언더테일 아시는구나! 혹시 모르시는분들에 대해 설명해드립니다 샌즈랑 언더테일 세가지 엔딩루트중 몰살엔딩의 최종보스로 진.짜.겁.나.어.렵.습.니.다 공격은 전부다 회피하고 만피가 92인데 샌즈의 공격은 1초당 60이 다는데다가 독뎀까지 추가로 붙어있습니다..하지만 이러면 절대로 게임을 깰 수 가없으니 제작진이 치명적인 약점을 만들었죠. 샌즈의 치명적인 약점이 바로 지친다는것입니다.패턴들을 다 견디고나면 지쳐서 자신의 턴을 유지한채로 잠에듭니다. 하지만 잠이들었을때 창을옮겨서 공격을 시도하고 샌즈는 1차공격은 피하지만 그 후에 바로날아오는 2차 공격을 맞고 죽습니다

리미트
2020.04.16
@허두

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

엄청기네요 ㅋ

허두
2020.04.16
@리미트

오리지널입니다 ㅋㅋㅋㅋ

허두
2020.04.14

으악... 이 강좌 준비하고 있었는데..

또 겹칠뻔했다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ

리미트
2020.04.15
@허두

ㅋㅋㅋ 왠만하면 이런 강좌는 안하시는게 정신건강과 신체에 좋아요 ㅎㅎ

4200자를 치는데 얼마나 피로가 쌓이겠어요

리미트
2020.04.15
@허두

갑자기 생각났는데 제 목차를 보시면 앞으로 제가 올릴것을 알 수 있으니 그거에 포함되지 않는(뭔소리야) 강좌를 올리시는게.. (대충 뭔소린지는 아시겠죠? )

허두
2020.04.15
@리미트

(차라리 리미트님을 저희 게시판으로 영입하는ㄱ..읍읍)

리미트
2020.04.15
@허두

보수는 얼ㅁ...(읍읍)

허두
2020.04.15
@리미트

얼마를 원하ㅅ.. (읍읍)

리미트
2020.04.16
@허두

최저시급은 되ㅇ....(읍읍)

 

언제부터인가 읍읍을 계속 쓰게ㄷ...(읍읍)

허두
2020.04.16
@리미트

디코에서 상의하시ㅈ..(읍읍)

디코태그는 제 한마포 프로필 들어가보시면 있습니ㄷ..(읍읍)

관심있으시다면 DM주시ㅈ..(읍읍)

 

근데 왜 계속 읍읍을 하고있는거ㅈ..(읍읍)

리미트
2020.04.16
@허두

아마도 이 댓글이 9번째 댓글이니까 9는 3의 제곱 3은 일루미나티의 상징 그러므로 일루미나티의 압박을 받고있ㄱ...(읍읍)

(당근 흔들기)

허두
2020.04.16
@리미트

(이렇게 한마포도 일루미나티의 압박을 받고있다ㄴ...읍읍)(당근 흔들기)

뉴스 및 창작물
/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1

/files/thumbnails/932/765/003/262x150.crop.jpg?20240410124459

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

노트블럭전문가

2024-04-10

0

/files/thumbnails/403/765/003/262x150.crop.jpg?20240409190538

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

Sonttukk

2024-04-09

4

/files/thumbnails/161/758/003/262x150.crop.jpg?20240331105743

레드스톤

라마 침 분수대 1

GlassesFilm

2024-03-31

0