minecraft_launcher 가 만드는 musicquiz 리소스팩 (track_NN / cover_NN) 과 한 쌍으로 동작한다. - 음원 재생: yp playall (명령 블록 + auto 토글) → /playsound musicquiz:track_NN - 정답 이미지: ts placeloc → /summon painting (musicquiz:cover_NN) + /kill @e[type=painting,tag=mq_cover] - stopsound 하드코딩(weather) 4곳을 mq:quiz/stop_sound 매크로 호출로 통일 - check/server, repeat/check_server, status 스코어보드(yp/ts/skript) 등 플러그인 hello 패킷 대기 로직 일괄 삭제 - 스토리지 재구성: command_block 컴파운드 폐기, audio/image/marker 분리 (init/config.mcfunction 한 곳에서 수정) - 곡 단위 volume override 지원 — songs[i].volume 으로 곡별 음량 지정 가능 (미지정 시 audio.volume fallback) - 트랙 번호 zero-pad 는 mq:tmp.pad 분기 + 매크로 문자열 조립으로 처리 - max_index 는 songs 배열 길이에서 자동 계산 - 호출 경로 단축: select → setanswer → macro/setanswer → macro/summon → play_sound
50 lines
4.5 KiB
MCFunction
50 lines
4.5 KiB
MCFunction
execute if score timer main matches 1.. run scoreboard players add timer main 1
|
|
|
|
execute unless score init main matches 2 \
|
|
unless score init main matches 6 \
|
|
unless score init main matches 10 \
|
|
run scoreboard players set timer main 0
|
|
|
|
# start title timer
|
|
execute if score init main matches 2 if score timer main matches 20 run title @a title {"text":"3"}
|
|
execute if score init main matches 2 if score timer main matches 20 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 2 if score timer main matches 20 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 2 if score timer main matches 20 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
|
|
execute if score init main matches 2 if score timer main matches 40 run title @a title {"text":"2"}
|
|
execute if score init main matches 2 if score timer main matches 40 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 2 if score timer main matches 40 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 2 if score timer main matches 40 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
|
|
execute if score init main matches 2 if score timer main matches 60 run title @a title {"text":"1"}
|
|
execute if score init main matches 2 if score timer main matches 60 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 2 if score timer main matches 60 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 2 if score timer main matches 60 as @a at @s run playsound minecraft:block.note_block.iron_xylophone weather @s ~ ~ ~ 1 1
|
|
|
|
execute if score init main matches 2 if score timer main matches 100 run title @a title {"text":""}
|
|
execute if score init main matches 2 if score timer main matches 100.. run function mq:quiz/select with storage mq:main
|
|
|
|
# next song timer
|
|
execute if score init main matches 6 if score timer main matches 300 run title @a title {"text":""}
|
|
execute if score init main matches 6 if score timer main matches 290 run function mq:images/clear
|
|
execute if score init main matches 6 if score timer main matches 300.. run function mq:quiz/select with storage mq:main
|
|
|
|
# endding timer
|
|
execute if score init main matches 10 if score timer main matches 60 run function mq:tellraw {"text":"퀴즈가 종료되었습니다.","color":"white","msg":""}
|
|
execute if score init main matches 10 if score timer main matches 60 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 10 if score timer main matches 60 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 10 if score timer main matches 60 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
|
|
execute if score init main matches 10 if score timer main matches 180 run function mq:tellraw {"text":"퀴즈를 다시 시작하시려면 종료를 눌러주세요.","color":"white","msg":""}
|
|
execute if score init main matches 10 if score timer main matches 120 as @a at @s run scoreboard players set stop buttons -1
|
|
execute if score init main matches 10 if score timer main matches 120 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 10 if score timer main matches 120 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 10 if score timer main matches 120 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
|
|
execute if score init main matches 10 if score timer main matches 120 run function mq:tellraw {"text":"플레이 해주셔서 감사합니다.","color":"white","msg":""}
|
|
execute if score init main matches 10 if score timer main matches 180 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 10 if score timer main matches 180 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
execute if score init main matches 10 if score timer main matches 180 as @a at @s run playsound minecraft:ui.button.click weather @s ~ ~ ~ 1 1
|
|
|
|
execute if score init main matches 10 if score timer main matches 200.. run scoreboard players set init main 11
|