우선 명령어(Command)는 오피가 있는 플레이어가 채팅창에
/명령어
를 통해 입력할 수 있음.
틱(Tick)
마인크래프트의 기본 틱은 초당 20 임.
즉, 마크는 무엇을 할때 0.05 초 간격보다 더 많이 행동을 할 수 없음.
[심화] 인게임에서 FPS가 60, 144와 같이 20 이상의 부드러운 화면이 보일 수 있는 이유는 마크에서 강제적으로 틱과 틱 사이의 간격을 이어주기 때문임.
이로 인해 확인할 수 있는 것은 플레이어 자신을 제외한 엔티티가 텔레포트 할 때
마치 그 위치로 빠르게 이동한 것처럼 부드럽게 이동한다는 것 이다.
명령어에는 여러가지 단어들이 나오는데,
대부분 이것을 뜻함:
커맨드(Command): 명령어
태그(Tag): /tag 명령어를 통해 준 태그
엔티티(Entity): 닭, 소, 돼지, 좀비, 플레이어와 같이 블록이 아닌 물체들
NBT: 엔티티의 정보 태그
커맨드 블록(Command Block)
마크에는 명령어를 위한 여러가지 시스템이 있는데,
대표적으로 커맨드 블록이 있음.
커맨드 블록을 꺼내는 법:
/give @s command_block
또는 설정 > 조작.. > 관리자 아이템 탭
선택 후 인벤토리의 [관리자 도구] 탭
커맨드 블록을 설치하고 우클릭 해보면 명령어를 입력 할 수 있는 곳과,
오류 출력 창, 커맨드의 종류를 선택하는 곳이 있음.
커맨드의 종류
커맨드는 기본적으로 반응형, 무조건적, 레드스톤 필요 인데
반응형은 실행시 명령어를 1번 실행함.
반복형은 실행시 명령어를 반복. 즉, 초당 20번 실행함.
연쇄형을 알아보기 전에, 커맨드의 외형을 살펴보면 동그라미, 네모, 화살표처럼 보이는 부분이 있음.
연쇄형은 이 화살표 방향으로 연결된 커맨드가 실행하면 순차적으로 실행됀다
다시 말해, 처음 커맨드(연쇄형을 제외한 반응형, 반복형 블록)의 화살표 방향으로 쭉 설치하면 연쇄적으로 한번에 실행된다.
무조건부, 조건부
무조건부는 별다른 특징이 없지만,
조건부는 조금 다르다. 조건부를 선택하고 확인을 누르면, 화살표가 조금 달라지지
이 화살표의 반대 방향으로 1칸,
즉, 이전 방향의 커맨드가 성공적으로 실행 됐다면 커맨드를 실행함.
(연쇄형 커맨드 전용이라 생각하면 편함)
레드스톤 필요, 항상 활성화
말 그대로 다.
레드스톤 블록을 옆에 설치해서 실행할지, 항상 활성화 시킬지 선택함.
json
마인크래프트(자바에디션)는 JAVA라는 언어로 코딩되어있음.
커맨드도 json이란 문법을 따르지
json은 기본적으로
{"종류":"값"}
으로 이루어져 있음.
여러 값을 지정할때는,
[{"종류1":"값"},{"종류2":"값"}]
으로 할 수 있지
예를 들어, 돌 1개의 값을 지정하면
{"id":"minecraft:stone","count":1b}
보기 쉽게하면,
{
"id":"minecraft:stone",
"count":1b"
}
와 같이 된다.
명령어를 치다 보면, 대상이나 좌표를 입력 할 수 있음.
대상
(@e, @p등을 칠 수 있을때)
@a는 모든 플레이어 (all)
@e는 모든 엔티티 (entity)
@p는 가장 가까운 플레이어 (proximate)
@r은 랜덤 엔티티 (random)
@s는 자신 (self)
닉네임은 그 닉네임의 플레이어를 의미함.
(@n은 가장 가까운 엔티티)
선택인자
이때, 대상 뒤에 대문자를 넣을 수 있음.
예 : @a[distance=..3]
여기서 숫자 앞이나 뒤에 ..을 붙이면 각각 이하,이상을 뜻함.
(위에선 3칸 이하의 거리의 모든 플레이어겠군.)
스코어에도 넣을 수 있음.
좌표
위치를 표시하는 XYZ 순서의 세 가지 값 집합이다.
120 66 144 는 세계의 정확한 좌표다.
F3를 누르면 나오는 디버그 창에서 뜨는 좌표를 입력 할 수 있음.
상대좌표
~ ~5 ~-20은 명령이 실행되는 위치의 상대 좌표다.
이 예에서는 동일한 X축이고 위쪽으로 5블록, Z 방향으로 -20블록이다.
(execute를 이용할때 at이나 positioned가 있는지 확인하시오.)
바라보는 방향으로 할 수도 있음.
상대 좌표와 마찬가지로 명령이 실행되는 위치를 기준으로 실행하지만 방향은 다르다.
캐럿(^) 뒤의 숫자는 움직이는 개체 중심 시점 좌표임.
이는 보낸 사람의 발 중심에 있는 좌표계다.
+X는 왼쪽(-X는 오른쪽),
+Y는 발신자의 발을 중심으로 함. 위쪽을 향하고(-Y는 아래쪽)
+Z는 보는 방향을 향함 (-Z는 뒤를 향함).
어려워 보일 수도 있지만, 직접 해보면 간단하다는 걸 알 수 있음.
OP 없어도 /say 같은건 될걸?
그리고 커맨드 블록에서는 웬만해선 @s 가 안 된다는것도 추가 해 줘라
수정하겠음
여담으로 JSON 하고 JAVA 프로그래밍 언어는 별 관련이 없음. 애초에 JSON 이름 자체도 걍 별 관련 없는 프로그래밍 언어인 자바스크립트에서 객체 관리하려고 만든거니까 그냥 객체 관링 문법 구조라고 보면 된다. 음 쉽게 말하면 정형화 시켜서 구조화 해둔 정보 덩어리 정도 되겠군
정성추