개인 자료란 (JE)

  서버 커뮤니티

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

LIMIT611 121f617fc6b7428c8d1cc3dd098ddd30

Profile

강좌 자바 에디션(JE) 커맨드 응용

[ggobogi 님 질문 이였던 것] 야생 티켓은 어떻게 만드나요?

2020.05.17 조회 수 748 추천 수 0
게임버전 1.15.x 

2fc056df35641ee6cc66b3d6431fdb53.gif

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

- 야생티켓 만들기!


안녕하세요! 리미트 입니다!

와 벌써 응용 2번째! (원래 오늘은 기초를 올리려 했으나 너무 탐스러운 질문이 보여서...)

흠..! 질문게시판을 돌아다니다 보니 꽤나 재밌어 보이는 질문이 있더군요. (야생 티켓을 만들어 달라는 질문)

(근데.... 저는 1.15.2 버전을 기준으로 만들었는데 그 질문은 1.12.2 버전이네요.ㅎ)

어.... 어쨌든 바로 한번 시작 해 봅시다!

(이 강좌는 30분을 기준으로 만들었습니다. 하지만 조금만 수정하면 10분, 20분 뭐 1시간도 가능합니다!)


c1484753a589f33260f16365ef1003de.jpg


먼저 야생맵 같은 것을 먼저 만들어 줍시다 (너무 대충인가?)


3b7c0f38582d63ae6193c1435b6910dd.jpg


그리고 커맨드 블럭을 이러케 설치 해 주세요

(잘 보이시죠?)


자 그리고 커맨드를 입력해 줍시다. (한꺼번에 몰아서 처리한다!!!)


처음에 


/scoreboard objectives add sp dummy


/scoreboard objectives add spt dummy 를 치고 시작해 주세요



1 : 

execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] run tp @s x y z (야생 지역)


2 : 

execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] run scoreboard players set @s sp 1


3 : 

execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] run scoreboard players set @s spt 0


4 : 

execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] run replaceitem entity @s weapon.offhand minecraft:air


5 : 

scoreboard players add @a[scores={sp=1}] spt 1


6 : 

tp @a[scores={spt=36000..}] X Y Z (스폰 지역)


7 : 

scoreboard players set @a[scores={spt=36000..}] sp 0


8 : 

scoreboard players set @a[scores={spt=36000..}] spt 0


이렇게 입력 해 줍시다!


자... 이제 뜻풀이를...


먼저 1번!

execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] run tp @s x y z인데요

대충 설명 해 보자면 execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] 왼손에 배드락을 들고 

있는 플레이어를 대상으로 합니다. (-106번이 왼손이에요)

 run tp @s x y z  그 대상을 X Y Z 좌표로 이동 시킵니다. (야생 시작 지역으로 입력해 주심 됩니다.)


2번은

execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] run scoreboard players set @s sp 1

앞부분은 똑같구요, run scoreboard players set @s sp 1  그 대상의 sp 점수를 1로 만든다는 의미입니다. 


3번!

execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] run scoreboard players set @s spt 0

앞부분은 역시 똑같구요 run scoreboard players set @s spt 0 이 부분은 대상의 spt 점수를 0으로 만든다는 의미입니다.


4번

execute as @a[nbt={Inventory:[{id:"minecraft:bedrock",Slot:-106b}]}] run replaceitem entity @s weapon.offhand minecraft:air

앞부분은 여윽시나 똑같구요  run replaceitem entity @s weapon.offhand minecraft:air 이부분은 대상의  왼손 즉 기반암을 들고 있는 위치를 공기로 바꾼다는 의미입니다. (마인크래프트에서 공기는 그냥 없는 것을 의미합니다.)


5번

scoreboard players add @a[scores={sp=1}] spt 1 

spt 점수를 1점씩 올립니다.


6번

tp @a[scores={spt=36000..}] X Y Z (스폰 지역) spt 점수가 36000 이상인 플레이어를 X Y Z (이 부분은 스폰 위치로 해주심 됩

니다.) 로 이동시킵니다. 왜 36000 이냐 하면 마인크래프트 반복형 커맨드 블럭은 1초에 20 번 작동합니다.

즉 1초에 20의 점수가 더해진다고 보면 되겠죠 그럼 30 분을 만들기 위해선 20 x 60 x 30 을 해서 36000이 될 때를 종점으로 해주면 정확

히는 아닐 수도 있지만  30분가량 됩니다 (직접 스톱워치로 재봤습니다.)


7번 

scoreboard players set @a[scores={spt=36000..}] sp 0 spt 점수가 36000 이상인 플레이어의 sp 점수를 0으로 만듭니다.

정확히 36000이 아니라 36000 이상으로 한 이유가 이것입니다. 아무리 빠르게 커맨드가 작동 한다 해도 그 사이에 1이 더해져버리면

커맨드가 작동 하지 않을 수 있기 때문입니다.


마지막 8번!

scoreboard players set @a[scores={spt=36000..}] spt 0 spt 점수가 36000 이상인 플레이어의 spt 점수를 0으로 만듭니

다. 초기화 해주는 것이죠.


흠... 이렇게 문장해석만 하면 이해가 안될 수 있으니 알고리즘을 대충 알려드리겠습니다.


1. 기반암을 든 플레이어를 X Y Z (야생 시작 지점) 으로 이동시킨다. 실행이 성공 했을 경우 2를 실행한다.

2. 기반암을 든 플레이어(이제 그냥 대상이라고 할게요)의 sp 점수를 1로 만든다 (야생에 있는 플레이어라고 지정 해주는 느낌입니다.)

실행이 성공 했을 경우 3를 실행한다.

3. 대상의 spt 점수를 0으로 만든다. (혹시나 해서 초기화 해주는 겁니다.) 실행이 성공 했을 경우 4를 실행한다.

4. 대상의 왼손을 공기로 바꾼다.


이렇게 하나 있구요 그리고 따로


1. sp 점수가 1인 플레이어의 spt 점수를 1 올린다. (무한반복)

2. spt 점수가 36000 이상인 플레이어를  X Y Z (스폰 지점) 으로 이동시킨다. 실행이 성공 했을 경우 3를 실행한다.

3. spt 점수가 36000 이상인 플레이어의 sp 점수를 0으로 만든다. 실행이 성공 했을 경우 4를 실행한다.

4. spt 점수가 36000 이상인 플레이어의 spt 점수를 0으로 만든다. 

(그림엔 4만 조건적인데 알고리즘 상으론 3 과 4가 조건적인 상황의 느낌입니다. 사실 두개 다 조건적으로 해도 되고

4만 조건적으로 해도 상관 없습니다.)


저는 커맨드를 만들기 전에 먼저 알고리즘을 생각해 보는데요 이게 커맨드를 만들때 이제 뭘 만들어야 하는지 생각하기도 쉽고

만약 뭐가 안되면 수정하기도 쉬운 것 같아서 이 방법을 많이 사용하는 편입니다.

(강좌마다 이걸 써야하나)


어쨌든 야생 티켓을 만들어 봤는데요 뭐 만들고는 싶지만 만들 수 없는것이나 만들어 줬으면 하는 것 같은 것을 댓글에 남겨주시면 제가

할 수 있는 것은 강좌로 써드리겠습니다. (요즘 응용강좌 쓰느라 기초를 못썼네요 내일 써야 겠어요)


그럼... 안녕!




13개의 댓글

마크러버
2020.05.17

님이 커맨드를 너무 잘하셔서 그런데 커맨드 스킬강좌를 따로 하시는게 어떨까요?

ㅎㅎ

리미트
2020.05.18
@마크러버

어... 뭐 예를 들면 겐지 질풍참 같은건가요?

아님 뭐 칼 사이드 옐로우버스터 블랙프라임 다크니스헬 아이스스톰 같은건가요?

mchang
2020.05.18
@리미트

리미트
2020.05.18
@mchang

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

마크러버
2020.05.18
@리미트

아 말하자면 그런거죠

리미트
2020.05.18
@마크러버

ㅋㅋㅋㅋ 한번 해보겠습니다 ㅋㅋㅋㅋ

mchang
2020.05.18
@리미트

넹넹

마크러버
2020.05.17

제 말은 커맨드로 스킬을 만든다는 뜻입니다

여우리
2020.06.05

티켓아이템 만드는 것도 알려주실 수 있나요? 야생티켓이라는 이름을 가진 아이템을 들고 공중에 우클릭하면 이동된다 < 이런식으로요! 기능은 도움이 정말 많이 됐어요

리미트
2020.06.06
@여우리

우클릭은 불가능하고 F 키 (양손 맞바꾸기) 로 가능합니다! 혹시 버전이 몇인지 알 수 있을까요?

여우리
2020.06.06
@리미트

1.15.2 버전입니다!

KimLotTV
2020.06.08
@여우리

그거 스크립트로 할수있음

구르구르
2022.09.15

1.19에서 해당 방법을 하려는데 4번에서 run 뒤에 eplaceitem entity @s weapon.offhand minecraft:air 가 전부 오류가 떠서 아이템이 공기로 바뀌지 않는데 어떻게 해야할까요?

그리고 아이템 이름을 바꾸는 커맨드로 종이를 '티켓'으로 인식하게 해서 이용권을 만들고 싶은데, 커맨드로 이름을 바꾸는 것 까지는했는데 위 명령어에서 '티켓'으로 어떻게 인식하게 해야할까요?

뉴스 및 창작물
/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