execute if score init main matches 10 run return run function mq:tellraw {"text":"퀴즈가 완전히 종료된후 시작해주세요.","color":"red","msg":""} # ---- 외부 모드 확인 ---- # * mq_chat_mod : mc_chat_answer_mod = 채팅 정답 판정에 필수인 서버 전용 # 모드. 서버에서 채팅을 가로채야 퀴즈가 성립하므로 없으면 시작 차단. # 모드가 매 server tick 마다 fake player `#server` 점수를 1 로 set. # # * mq_video_mod : mc_video_player_mod = 정답 영상 재생용 선택 모드. 없어도 # 게임은 정상 진행되며 영상만 표시되지 않는다 → 차단하지 않고 경고만 출력. # - `#server mq_video_mod` : 서버 컴포넌트가 매 tick 1 로 갱신. 없으면 0. # - ` mq_video_mod` : 클라 join handshake 수신 시 1 로 set. 클라 # 미설치면 0 유지. # 1) 채팅정답 모드(필수) 서버 부재 — 전원 차단. execute unless score #server mq_chat_mod matches 1 run return run function mq:tellraw {"text":"채팅정답 모드가 서버에 미설치 — 서버 관리자에게 문의해주세요.","color":"red","msg":""} # 2) 영상 모드(선택) 부재 — 경고만 출력하고 그대로 진행. 영상은 안 나옴. # selector `scores={X=..0}` 는 점수 미존재를 매치하지 않으므로 직전에 # `add @a ... 0` 으로 materialize. scoreboard players add @a mq_video_mod 0 execute unless score #server mq_video_mod matches 1 run function mq:tellraw {"text":"영상재생 모드가 서버에 미설치 — 영상 없이 진행됩니다.","color":"yellow","msg":""} execute if score #server mq_video_mod matches 1 as @a[scores={mq_video_mod=..0}] run tellraw @s ["",{"text":"영상재생 모드 미설치 — 본인 화면에는 영상이 표시되지 않습니다.","color":"yellow"}] scoreboard players set start buttons -3 function mq:quiz/stop_sound $scoreboard players set max_index main $(max_index) scoreboard players set init main 1 # 시작 시 1..preload 번 영상 캐시 미리받기(큐 적재). schedule 로 다음 tick 에 # 실행해 max_index 설정 이후 동작 보장. 실제 다운로드는 drain 이 tick 마다 처리. schedule function mq:videos/cache/preload 1t dialog show @a mq:page1