정답 입력 UI 를 dialog 로 제공 (mq:dialog/answer), #minecraft:quick_actions 태그 등록으로 빠른행동키에서 바로 열 수 있게 함. 동시 제출 시 먼저 제출한 사람이 정답으로 인정되도록 mq:answer/ 에 submit_seq 기반 FIFO 큐 + 매크로 기반 제출자 lookup 으로 처리. tick/stop/setanswer 도 새 큐 흐름에 맞춰 업데이트.
72 lines
2.5 KiB
MCFunction
72 lines
2.5 KiB
MCFunction
scoreboard players set index main 0
|
|
$scoreboard players set max_index main $(max_index)
|
|
scoreboard players set score main 0
|
|
scoreboard players set init main 0
|
|
scoreboard players set timer main 0
|
|
|
|
scoreboard players set start buttons -1
|
|
scoreboard players set stop buttons -1
|
|
scoreboard players set skip buttons -1
|
|
scoreboard players set hint buttons -1
|
|
scoreboard players set replay buttons -1
|
|
scoreboard players set test buttons -1
|
|
|
|
scoreboard players reset @a answer
|
|
|
|
# 정답 입력 큐 / 제출 순번 초기화
|
|
data remove storage mq:input queue
|
|
scoreboard players reset @a submit_seq
|
|
scoreboard players set seq func.temp 0
|
|
|
|
# 트리거 시작
|
|
scoreboard objectives remove ready
|
|
scoreboard objectives add ready trigger
|
|
|
|
scoreboard objectives remove cancel
|
|
scoreboard objectives add cancel trigger
|
|
|
|
scoreboard objectives remove stop
|
|
scoreboard objectives add stop trigger
|
|
|
|
scoreboard objectives remove skip
|
|
scoreboard objectives add skip trigger
|
|
|
|
scoreboard objectives remove hint
|
|
scoreboard objectives add hint trigger
|
|
|
|
scoreboard objectives remove replay
|
|
scoreboard objectives add replay trigger
|
|
|
|
scoreboard objectives remove input
|
|
scoreboard objectives add input trigger
|
|
# 트리거 끝
|
|
|
|
# 제출자 식별용 순번 점수 (queue entry 의 seq 와 매칭)
|
|
scoreboard objectives remove submit_seq
|
|
scoreboard objectives add submit_seq dummy
|
|
|
|
scoreboard objectives setdisplay sidebar
|
|
scoreboard objectives remove score
|
|
scoreboard objectives add score dummy {"text":"점수","bold":true}
|
|
scoreboard objectives setdisplay sidebar score
|
|
|
|
dialog clear @a
|
|
|
|
bossbar set mq:process name [{"text":"진행도: ","color": "yellow","bold": true},{"score":{"name":"index","objective": "main"},"color": "yellow","bold": true},{"text":"/","color": "yellow","bold": true},{"score":{"name":"max_index","objective": "main"},"color": "yellow","bold": true}]
|
|
$bossbar set mq:process max $(max_index)
|
|
bossbar set mq:process value 0
|
|
bossbar set mq:process color pink
|
|
bossbar set mq:process visible false
|
|
bossbar set mq:process style notched_10
|
|
bossbar set mq:process players @a
|
|
|
|
# 대기 상태 marker 1개만 소환 (answer.title="음악퀴즈" 가 sentinel)
|
|
data modify storage mq:main answer set value {title:"음악퀴즈", alias:[]}
|
|
data modify storage mq:tmp marker_call set from storage mq:main marker
|
|
data modify storage mq:tmp marker_call.name set value "음악퀴즈"
|
|
data modify storage mq:tmp marker_call.alias set value []
|
|
function mq:quiz/macro/summon with storage mq:tmp marker_call
|
|
|
|
function mq:quiz/stop_sound
|
|
function mq:images/clear
|