music_quiz: 설정을 init/config.mcfunction 한 곳으로 모음
- 주제(title), 곡 개수(max_index), 스폰 위치, 음원 명령 블록 좌표/볼륨, 이미지 표시 영역 좌표를 모두 init/config.mcfunction 에서 관리 - tellraw 접두사([ … ])가 storage 의 title 을 참조하도록 변경 — 주제 변경 시 config 한 줄만 고치면 채팅 접두사까지 일관 적용 - load.mcfunction 의 인라인 data merge 블록을 제거하고 init/config 호출로 대체 (스코어보드/보스바 같은 런타임 인프라는 load 본문에 유지) - README 의 "곡 목록 수정" 절을 "설정 (한 곳에서 수정)" 으로 재작성 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
35
README.md
35
README.md
@@ -94,10 +94,11 @@ music_quiz/
|
||||
│ ├── load.mcfunction # 스코어보드·storage 초기화, init/* 호출
|
||||
│ ├── tick.mcfunction # 매 틱 서브함수 디스패치 (init 게이팅)
|
||||
│ ├── tellraw.mcfunction # 매크로 prefix 메시지 헬퍼
|
||||
│ ├── init/ # 정적 데이터를 storage 로 적재
|
||||
│ │ ├── songs.mcfunction # mq:main songs 리스트
|
||||
│ │ ├── buttons.mcfunction # mq:main button_defs 리스트
|
||||
│ │ └── triggers.mcfunction # mq:main trigger_defs 리스트
|
||||
│ ├── init/ # 사용자 설정·정적 데이터 (수정 포인트)
|
||||
│ │ ├── config.mcfunction # 주제·곡 개수·스폰·명령 블록 좌표
|
||||
│ │ ├── songs.mcfunction # 곡 목록
|
||||
│ │ ├── buttons.mcfunction # 버튼 좌표·실행 명령
|
||||
│ │ └── triggers.mcfunction # 다수결 트리거 정의
|
||||
│ ├── check/server.mcfunction # YP / TS 설치 확인
|
||||
│ ├── commands/ # start·stop·skip·hint·replay·test
|
||||
│ ├── quiz/ # 게임 진행 로직
|
||||
@@ -138,18 +139,26 @@ music_quiz/
|
||||
- `mq:tmp` — setanswer 룩업용 임시 인덱스
|
||||
- `func:temp` — `func:` 헬퍼 함수용 임시 NBT
|
||||
|
||||
### 곡 목록 수정
|
||||
### 설정 (한 곳에서 수정)
|
||||
|
||||
곡은 `data/mq/function/init/songs.mcfunction` 한 파일에 정의된다.
|
||||
한 줄에 한 곡씩, 리스트로 append 한다:
|
||||
세계마다 다른 값은 모두 `data/mq/function/init/` 폴더에서 편집한다.
|
||||
`/reload` 후 반영된다.
|
||||
|
||||
```
|
||||
data modify storage mq:main songs append value {title:"...", author:"...", alias:["...","..."]}
|
||||
```
|
||||
- **`init/config.mcfunction`** — 주제, 곡 개수, 스폰 위치, 음원 명령 블록
|
||||
좌표, 정답 이미지 표시 영역. `title` 은 `[ … ]` 채팅 접두사로도 사용된다.
|
||||
- **`init/songs.mcfunction`** — 곡 목록 (한 줄에 한 곡씩 append).
|
||||
`alias` 배열의 문자열은 정답 판정 시 동의어로 인정된다. 곡 수를 바꾸면
|
||||
`init/config.mcfunction` 의 `max_index` 도 함께 맞춰야 한다.
|
||||
- **`init/buttons.mcfunction`** — 6개 물리 버튼의 좌표·표면 방향·실행 명령.
|
||||
- **`init/triggers.mcfunction`** — 다수결 트리거(`stop`/`skip`/`hint`/`replay`)
|
||||
표시 이름·실행 명령.
|
||||
|
||||
곡 순서가 게임 내 순서이며, `alias` 배열에 적은 문자열은 정답 판정에서
|
||||
동의어로 인식된다. 곡 수를 늘리거나 줄이면 `mq:function/load.mcfunction`의
|
||||
`max_index` 기본값(50)도 함께 맞추는 것이 좋다.
|
||||
`load.mcfunction` 은 위 4개를 호출해 `mq:main` 스토리지를 적재한다.
|
||||
스코어보드·보스바 같은 런타임 인프라는 `load.mcfunction` 본문에 남아 있다.
|
||||
|
||||
다이얼로그 페이지(`data/mq/dialog/page{1,2,3}.json`) 의 타이틀과 설명문구는
|
||||
JSON 텍스트 컴포넌트가 storage 참조를 일관되게 지원하지 않으므로 직접
|
||||
편집해야 한다.
|
||||
|
||||
### 설치
|
||||
|
||||
|
||||
Reference in New Issue
Block a user