이 게시판에 글을 승인 없이 바로 작성하시려면 인증 개발자 권한이 필요합니다. 언제든지 지원해주세요(바로가기).

커맨드 블록

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

리미트 2020.05.17 조회 수 117 추천 수 0

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만 조건적으로 해도 상관 없습니다.)


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

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

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


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

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


그럼... 안녕!


12개의 댓글

여우리
2020.06.05

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

리미트
2020.06.06
@여우리

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

여우리
2020.06.06
@리미트

1.15.2 버전입니다!

KimLotTV
2020.06.08
@여우리

그거 스크립트로 할수있음

마크러버
2020.05.17

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

마크러버
2020.05.17

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

ㅎㅎ

리미트
2020.05.18
@마크러버

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

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

mchang
2020.05.18
@리미트

마크러버
2020.05.18
@리미트

아 말하자면 그런거죠

리미트
2020.05.18
@mchang

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

리미트
2020.05.18
@마크러버

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

mchang
2020.05.18
@리미트

넹넹

조회 수 제목 글쓴이
4149 [1] [베개서버] 상위버전 <인생약탈서버>를 체험해보세요. 15 오리야
2867 [2] [링팜서버] 마인팜서버를 대표합니다. 9 링팜서버
328 [3] [Seo_Farm] 1.15.2 1인 제작 마인팜 서버를 소개합니다! 2 U Seo__
1334 서버 홍보 게시판에 글 작성이 가능합니다! (홍보 규칙도 변경) 17 프리루트
1723 일부 SNS 로그인 지원 중단 및 안내 가이드 (카카오, 트위터) 17 프리루트
924 한디포 이용 가이드! 처음 온 분은 읽어둡시다! 21 초스터
735 한디포 이용 규칙 26 초스터
233 한마포 공식 디스코드 오픈 (알림 받아보세요!) 2 프리루트
139855 한마포 에디터 모집 안내 206 프리루트
927 한마포 정품인증자 분들을 위한 포인트 이벤트! 26 프리루트
81 [스크립트] 2. 기존에 없던 인첸트를 내가 직접 만들 수 있다고? 정말 간단한 커스텀 인첸트 스크립트! 1 U SeoRong
101 [스크립트] 1. 야생 이용권을 만들어 보자! 타이머 설정, 이용권 스크립트 1 U SeoRong
34 [스크립트] 1. 낚시를 할 때 미니게임을 해보자! (낚시 기본 세팅) U SeoRong
34 [스크립트] 0. 종강기념 재미없는 낚시 컨텐츠를 되살려보자 SeoRong
400 [플러그인] [마시자] 마인크래프트로 시작하는 Java 3강 - 명령어(Command) 등록 13 Kobins
604 [스크립트] 스크립트 개발하기 - 스코어보드 9 JSD-ITHAN
415 [플러그인] [마시자] 마인크래프트로 시작하는 Java 시리즈 3 Kobins
1948 [플러그인] [2강]마인크래프트 플러그인 개발하기 - 긴 커맨드 19 JSD-ITHAN
259 [프로그래밍 일반] 스크립트(Skript) vs 플러그인(Plugin) 어떤 개발이 더 좋은가? 11 납작꼬
534 [플러그인] [8강] 마인크래프트 플러그인 개발하기 - 칼 우클릭 시 화염구 발사하기 13 JSD-ITHAN
185 [프로그래밍 일반] 아무튼 대충 알아보는 NPE 예방법! 10 네모
117 [커맨드 블록] [ggobogi 님 질문 이였던 것] 야생 티켓은 어떻게 만드나요? 12 리미트
81 [플러그인] [마시자] 마인크래프트로 시작하는 Java 4강 - 스케줄러(Scheduler)와 명령어 기본 (※미완성) Kobins
76 [시스템] [JE] F3 디버그 창 13 허두
139 [커맨드 블록] 리미트의 한계까지 달려보는 명령어 강좌 응용편 - 점프맵에서 필수! 닿으면 TP 되는 블럭 만들기... 13 리미트

한디포 자료란
https://www.koreaminecraft.net/files/thumbnails/969/857/001/262x150.crop.jpg

기타

[ 프로그램 ] 연결 테스트기 v0.3 1

NamuTree0345

2020-07-08

0

https://www.koreaminecraft.net/files/thumbnails/437/856/001/262x150.crop.jpg

기타

[ 프로그램 ] 자신의 웹서버가 열려있는지 확인하는 프로그램! 4

NamuTree0345

2020-07-07

0