이전퀴즈 데이터팩

This commit is contained in:
2026-05-13 15:10:00 +09:00
parent 13ea34ba82
commit 6841b7a4c0
63 changed files with 1261 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
{
"criteria": {
"placed_something": {
"trigger": "minecraft:impossible",
"conditions": {}
}
},
"rewards": {
"function": "mq:players/login"
},
"parent": "minecraft:story/root",
"display": {
"icon": {
"id": "minecraft:stone"
},
"title": "로그인 감지",
"description": "서버 접속을 감지",
"hidden": false,
"announce_to_chat": true,
"show_toast": true,
"frame": "task"
}
}

View File

@@ -0,0 +1,46 @@
{
"type": "minecraft:confirmation",
"title": {
"text": "음악퀴즈",
"bold": true
},
"body": [
{
"type": "minecraft:plain_message",
"contents": {
"text": "음악퀴즈 설명",
"bold": true
}
},
{
"type": "minecraft:plain_message",
"contents": {
"text": "\n1. 정답입력시에 채팅으로 입력해주시면 됩니다.\n[ 띄어쓰기, 영어 대소문자, 특수문자 ]\n상관없이 입력하셔도 인식 됩니다.\n\n2. 모든 소리는 날씨 소리로 조절할수 있습니다.\n\n3. 게임시작후 버튼들은 과반수(절반이상)가 눌러야 작동합니다.\n\n4. 힌트는 특수문자 제외 정답의 절반이 가려져서 나옵니다.\n힌트는 여러번 받을수 있고,\n받을때마다 가려지는 부분이 달라집니다."
},
"width": 300
}
],
"inputs": [],
"can_close_with_escape": true,
"pause": false,
"after_action": "close",
"yes": {
"label": {
"text": "취소",
"type": "text"
},
"action": {
"type": "minecraft:run_command",
"command": "trigger cancel"
}
},
"no": {
"label": {
"text": "다음 페이지 ->"
},
"action": {
"type": "minecraft:show_dialog",
"dialog": "mq:page2"
}
}
}

View File

@@ -0,0 +1,45 @@
{
"type": "minecraft:confirmation",
"title": {
"text": "음악퀴즈",
"bold": true
},
"body": [
{
"type": "minecraft:plain_message",
"contents": {
"text": "음악퀴즈 설명",
"bold": true
}
},
{
"type": "minecraft:plain_message",
"contents": {
"text": "\n5. 다시듣기는 노래가 끝까지 다 재생되었거나,\n다시 처음부분부터 들어보고싶을때\n누르면 좋습니다.\n\n6. 뒤에있는 \"소리 테스트\" 버튼으로\n미리 소리크기를 들어보고 조절할수있습니다."
}
}
],
"inputs": [],
"can_close_with_escape": true,
"pause": false,
"after_action": "close",
"yes": {
"label": {
"text": "<- 이전 페이지",
"type": "text"
},
"action": {
"type": "minecraft:show_dialog",
"dialog": "mq:page1"
}
},
"no": {
"label": {
"text": "다음 페이지 ->"
},
"action": {
"type": "minecraft:show_dialog",
"dialog": "mq:page3"
}
}
}

View File

@@ -0,0 +1,46 @@
{
"type": "minecraft:confirmation",
"title": {
"text": "음악퀴즈",
"bold": true
},
"body": [
{
"type": "minecraft:plain_message",
"contents": {
"text": "음악퀴즈 설명",
"bold": true
}
},
{
"type": "minecraft:plain_message",
"contents": {
"text": "\n재미있게 즐겨주세요."
}
}
],
"inputs": [],
"can_close_with_escape": true,
"pause": false,
"after_action": "close",
"yes": {
"label": {
"text": "<- 이전 페이지",
"type": "text"
},
"action": {
"type": "minecraft:show_dialog",
"dialog": "mq:page2"
}
},
"no": {
"label": {
"text": "준비완료",
"bold": true
},
"action": {
"type": "minecraft:run_command",
"command": "trigger ready"
}
}
}

View File

@@ -0,0 +1,3 @@
title @a times 0t 20t 0t
title @a subtitle {"text":"이 맵은 버킷 서버에서 열어야 합니다."}
title @a title {"text":"오류 발생!","color":"red"}

View File

@@ -0,0 +1,14 @@
scoreboard players reset @a hint
execute if score init main matches 0 run return run function mq:tellraw {"text":"아직 퀴즈가 시작되지 않았습니다.","color":"red",msg:'""'}
execute if score init main matches 1..4 run return run function mq:tellraw {"text":"아직 힌트를 받을 수 없습니다.","color":"red",msg:'""'}
execute if score init main matches 6.. run return run function mq:tellraw {"text":"아직 다음노래가 재생되지 않았습니다.","color":"red",msg:'""'}
execute if score init main matches 10 run return run function mq:tellraw {"text":"퀴즈가 종료되었습니다.","color":"red",msg:'""'}
execute if score init main matches 5 run data modify storage mq:main hint.text set from storage mq:main answer.title
execute if score init main matches 5 run data modify storage mq:main hint.hint set value ""
execute if score init main matches 5 run function func:hint with storage mq:main hint
execute if score init main matches 5 run data modify storage mq:main hint.hint set from storage func:temp join.text
execute if score init main matches 5 run function mq:tellraw {"text":"","color":"black",msg:'""'}
execute if score init main matches 5 run function mq:tellraw {"text":"","color":"black",msg:[{"text":"힌트: ","color":"aqua","bold":true},{"storage":"mq:main","nbt":"hint.hint","color": "yellow","bold": true}]}
execute if score init main matches 5 run function mq:tellraw {"text":"","color":"black",msg:'""'}

View File

@@ -0,0 +1,9 @@
scoreboard players reset @a replay
execute if score init main matches 0 run return run function mq:tellraw {"text":"아직 퀴즈가 시작되지 않았습니다.","color":"red",msg:'""'}
execute if score init main matches 1..4 run return run function mq:tellraw {"text":"아직 노래가 재생되지 않았습니다.","color":"red",msg:'""'}
execute if score init main matches 6.. run return run function mq:tellraw {"text":"아직 다음노래가 재생되지 않았습니다.","color":"red",msg:'""'}
execute if score init main matches 10 run return run function mq:tellraw {"text":"퀴즈가 종료되었습니다.","color":"red",msg:'""'}
execute if score init main matches 5 run stopsound @a weather
execute if score init main matches 5 run function mq:quiz/macro/command_block with storage mq:main command_block

View File

@@ -0,0 +1,9 @@
scoreboard players reset @a skip
execute if score init main matches 0 run return run function mq:tellraw {"text":"아직 퀴즈가 시작되지 않았습니다.","color":"red",msg:'""'}
execute if score init main matches 1..4 run return run function mq:tellraw {"text":"아직 스킵 할수없습니다.","color":"red",msg:'""'}
execute if score init main matches 6.. run return run function mq:tellraw {"text":"아직 다음노래가 재생되지 않았습니다.","color":"red",msg:'""'}
execute if score init main matches 10 run return run function mq:tellraw {"text":"퀴즈가 종료되었습니다.","color":"red",msg:'""'}
execute if score init main matches 5 run scoreboard players set skip buttons -2
execute if score init main matches 5 run function mq:quiz/correct

View File

@@ -0,0 +1,12 @@
execute if score init main matches 10 run return run function mq:tellraw {"text":"퀴즈가 완전히 종료된후 시작해주세요.","color":"red","msg":""}
setblock ~ ~ ~ minecraft:air
stopsound @a weather
$scoreboard players set max_index main $(max_index)
scoreboard players set init main 1
# say 게임시작
dialog show @a mq:page1

View File

@@ -0,0 +1,65 @@
scoreboard players set timer status 0
scoreboard players set skript status 0
scoreboard players set yp status 0
scoreboard players set ts status 0
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
# 트리거 시작
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 setdisplay sidebar
scoreboard objectives remove score
scoreboard objectives add score dummy {"text":"점수","bold":true}
scoreboard objectives setdisplay sidebar score
data modify storage mq:main command_block.index set value 1
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
data modify storage mq:main command_block.name set value "음악퀴즈"
function mq:quiz/macro/summon with storage mq:main command_block
stopsound @a weather
function mq:images/image_delete with storage mq:main command_block
# say "stop 실행"

View File

@@ -0,0 +1,5 @@
stopsound @a block minecraft:block.stone_button.click_on
function mq:tellraw {"text":"띵!!!","color":"white","msg":'""'}
execute as @a at @s run playsound minecraft:block.note_block.bell weather @s ~ ~ ~ 1 0.9
execute as @a at @s run playsound minecraft:block.note_block.bell weather @s ~ ~ ~ 1 0.9
execute as @a at @s run playsound minecraft:block.note_block.bell weather @s ~ ~ ~ 1 0.9

View File

@@ -0,0 +1,3 @@
$data modify storage mq:main command_block.image set value "ts placeloc song$(index).jpg world SOUTH $(x1) $(y1) $(z1) $(x2) $(y2) $(z2) 1 솔리드스킵"
function mq:images/image_set with storage mq:main command_block

View File

@@ -0,0 +1,6 @@
# r = EAST | NORTH | SOUTH | WEST
# 파이브가이즈 간판
data modify storage mq:main command_block.image set value "ts placeloc fiveguys1.png world EAST 90 72 -168 90 73 -170 1 솔리드스킵"
function mq:images/image_set with storage mq:main command_block

View File

@@ -0,0 +1,4 @@
$data modify block $(x) $(y) $(z) Command set value "ts removeall"
$data modify block $(x) $(y) $(z) auto set value 1b
$data modify block $(x) $(y) $(z) auto set value 0b

View File

@@ -0,0 +1,4 @@
$data modify block $(x) $(y) $(z) Command set value "$(image)"
$data modify block $(x) $(y) $(z) auto set value 1b
$data modify block $(x) $(y) $(z) auto set value 0b

View File

@@ -0,0 +1,64 @@
# say "서버 리로드 성공"
function mq:tellraw {"text":"서버 리로드 성공!","color":"white","msg":'""'}
data merge storage mq:main { \
title: "", \
max_index: 50, \
answer: { author: "", title: "", alias: [] }, \
command_block: { \
name: "", \
image: "", \
alias: [], \
index: 1, \
volume: 30, \
x: 144, \
y: 59, \
z: -219, \
r: "SOUTH", \
x1: 131, \
y1: 77, \
z1: -262, \
x2: 157, \
y2: 91, \
z2: -262 \
}, \
spawn: { \
x: 144, \
y: 61, \
z: -219, \
r: 180, \
f: 0 \
} \
}
data merge storage func:temp {}
scoreboard objectives remove func.temp
scoreboard objectives remove status
scoreboard objectives remove main
scoreboard objectives remove map
scoreboard objectives remove buttons
scoreboard objectives remove answer
scoreboard objectives remove leave_game
scoreboard objectives add func.temp dummy
scoreboard objectives add status dummy
scoreboard objectives add main dummy
scoreboard objectives add map dummy
scoreboard objectives add buttons dummy
scoreboard objectives add answer dummy
scoreboard objectives add leave_game custom:leave_game
scoreboard players set timer status 0
scoreboard players set skript status 0
scoreboard players set yp status 0
scoreboard players set ts status 0
scoreboard players set two func.temp 2
scoreboard players set tree map -1
fill 94 78 -279 194 78 -279 minecraft:red_wool
scoreboard players set lamp1 map -1
bossbar add mq:process [{"text":"진행도: ","color": "yellow","bold": true},{"text":"0","color": "yellow","bold": true},{"text":"/","color": "yellow","bold": true},{"text":"0","color": "yellow","bold": true}]
function mq:commands/stop with storage mq:main
function mq:players/login with storage mq:main spawn

View File

@@ -0,0 +1,12 @@
tag @s add player
scoreboard players reset @s leave_game
# say "서버접속 확인"
title @s times 10t 80t 10t
title @s subtitle ""
title @s title ""
$setworldspawn $(x) $(y) $(z) $(r) $(f)
$tp @s $(x) $(y) $(z) $(r) $(f)
gamemode adventure @s

View File

@@ -0,0 +1,32 @@
scoreboard players set init main 6
scoreboard players set @s answer 2
function mq:tellraw {"text":"","color":"black","msg":""}
function mq:tellraw {"text":"","color":"black",msg:[{"text":"정답: ","color": "aqua"},{"storage":"mq:main","nbt":"answer.title","color": "yellow","bold": true}]}
function mq:tellraw {"text":"","color":"black",msg:[{"text":"가수: ","color":"aqua"},{"storage":"mq:main","nbt":"answer.author","color": "yellow","bold": true}]}
execute if score skip buttons matches -2 run function mq:tellraw {"text":"","color":"black",msg:[{"text":"정답자: ","color": "aqua"},{"text":"스킵","color": "yellow","bold": true}]}
execute unless score skip buttons matches -2 run function mq:tellraw {"text":"","color":"black",msg:[{"text":"정답자: ","color": "aqua"},{"selector":"@s","color": "yellow","bold": true}]}
function mq:tellraw {"text":"","color":"black",msg:[{"text": "( 15초뒤 다음문제로 넘어갑니다. )","color": "gray"}]}
function mq:tellraw {"text":"","color":"black","msg":""}
title @a subtitle [{"text":"정답: ","color": "aqua"},{"storage":"mq:main","nbt":"answer.title","color": "yellow","bold": true}]
title @a title {"text":""}
scoreboard players set @a ready 0
scoreboard players set @a stop 0
scoreboard players set @a skip 0
scoreboard players set @a hint 0
scoreboard players set @a replay 0
execute if score skip buttons matches -2 run scoreboard players add score 1
execute unless score skip buttons matches -2 run scoreboard players add @s score 1
scoreboard players set stop buttons -3
scoreboard players set skip buttons -3
scoreboard players set hint buttons -3
scoreboard players set replay buttons -3
scoreboard players set timer main 1
function mq:images/image with storage mq:main command_block

View File

@@ -0,0 +1,7 @@
scoreboard players set init main 10
# stopsound @a weather
# say "엔딩"
scoreboard players set timer main 1

View File

@@ -0,0 +1,3 @@
$data modify block $(x) $(y) $(z) Command set value "yp playall song$(index) $(volume)"
function mq:quiz/play with storage mq:main command_block

View File

@@ -0,0 +1,6 @@
$execute if score index main matches $(index) run data modify storage mq:main answer.author set value "$(author)"
$execute if score index main matches $(index) run data modify storage mq:main command_block.name set value "$(title)"
$execute if score index main matches $(index) run data modify storage mq:main command_block.alias set value $(alias)
data modify storage mq:main answer.title set from storage mq:main command_block.name
data modify storage mq:main answer.alias set from storage mq:main command_block.alias

View File

@@ -0,0 +1,8 @@
$execute unless data storage mq:main {command_block:{name:"음악퀴즈"}} run summon minecraft:marker $(x) $(y) $(z) {Tags:["mq","default"],CustomName:"정답입력시작"}
$summon minecraft:marker $(x) $(y) $(z) {Tags:["mq","default"],CustomName:"$(name)"}
execute store result score length func.temp run data get storage mq:main command_block.alias
execute if score length func.temp matches 1.. run data modify storage mq:main command_block.name set from storage mq:main command_block.alias[0]
execute if score length func.temp matches 1.. run data remove storage mq:main command_block.alias[0]
execute if score length func.temp matches 1.. run function mq:quiz/macro/summon2 with storage mq:main command_block
$execute unless data storage mq:main {command_block:{name:"음악퀴즈"}} run summon minecraft:marker $(x) $(y) $(z) {Tags:["mq","default"],CustomName:"정답입력종료"}

View File

@@ -0,0 +1,6 @@
$summon minecraft:marker $(x) $(y) $(z) {Tags:["mq","default"],CustomName:"$(name)"}
execute store result score length func.temp run data get storage mq:main command_block.alias
execute if score length func.temp matches 1.. run data modify storage mq:main command_block.name set from storage mq:main command_block.alias[0]
execute if score length func.temp matches 1.. run data remove storage mq:main command_block.alias[0]
execute if score length func.temp matches 1.. run function mq:quiz/macro/summon2 with storage mq:main command_block

View File

@@ -0,0 +1,6 @@
scoreboard players set init main 4
$data modify block $(x) $(y) $(z) auto set value 1b
$data modify block $(x) $(y) $(z) auto set value 0b
function mq:quiz/setanswer

View File

@@ -0,0 +1,14 @@
scoreboard players add init main 3
scoreboard players set timer main 0
execute if score index main >= max_index main run return run function mq:quiz/end with storage mq:main
scoreboard players add index main 1
execute store result storage mq:main command_block.index int 1 run scoreboard players get index main
# 보스바
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 players @a
execute store result bossbar mq:process value run scoreboard players get index main
function mq:quiz/macro/command_block with storage mq:main command_block

View File

@@ -0,0 +1,309 @@
function mq:quiz/macro/setanswer { \
index: 1, \
title: "Lose My Mind", \
author: "Don Toliver", \
alias: [" "," ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 2, \
title: "The Chase", \
author: "Hearts2Hearts", \
alias: [" ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 3, \
title: "HOT SAUCE", \
author: "BABYMONSTER", \
alias: [" ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 4, \
title: "Golden", \
author: "HUNTR/X", \
alias: [""," "] \
}
function mq:quiz/macro/setanswer { \
index: 5, \
title: "", \
author: "", \
alias: ["Spin the wheel"] \
}
function mq:quiz/macro/setanswer { \
index: 6, \
title: "OVERDRIVE", \
author: "TWS", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 7, \
title: "", \
author: "QWER", \
alias: [] \
}
function mq:quiz/macro/setanswer { \
index: 8, \
title: "", \
author: "tripleS", \
alias: [] \
}
function mq:quiz/macro/setanswer { \
index: 9, \
title: "like JENNIE", \
author: "", \
alias: [" ", " ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 10, \
title: "Rich Man", \
author: "aespa", \
alias: [" ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 11, \
title: "I DO ME", \
author: "KiiiKiii", \
alias: [" ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 12, \
title: "SIGN", \
author: "izna", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 13, \
title: "WICKED", \
author: "ALLDAY PROJECT", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 14, \
title: "Good Thing", \
author: "i-dle", \
alias: ["굿 ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 15, \
title: "0+0", \
author: "", \
alias: [] \
}
function mq:quiz/macro/setanswer { \
index: 16, \
title: "HANDS UP", \
author: "MEOVV", \
alias: [" ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 17, \
title: "Blue Valentine", \
author: "NMIXX", \
alias: [" ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 18, \
title: "Flower", \
author: "", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 19, \
title: "Soda Pop", \
author: "Saja Boys", \
alias: [" ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 20, \
title: "REBEL HEART", \
author: "IVE", \
alias: [" ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 21, \
title: "GO!", \
author: "CORTIS", \
alias: ["", "!", "GO", "", "!"] \
}
function mq:quiz/macro/setanswer { \
index: 22, \
title: "BEEP", \
author: "izna", \
alias: ["", "", ""] \
}
function mq:quiz/macro/setanswer { \
index: 23, \
title: "Pookie", \
author: "FIFTY FIFTY", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 24, \
title: "DAISIES", \
author: "Justin Bieber", \
alias: ["", "", ""] \
}
function mq:quiz/macro/setanswer { \
index: 25, \
title: " ", \
author: "ILLIT", \
alias: [] \
}
function mq:quiz/macro/setanswer { \
index: 26, \
title: "TOO BAD", \
author: "OfficialGDRAGON", \
alias: [" ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 27, \
title: " ", \
author: "", \
alias: [] \
}
function mq:quiz/macro/setanswer { \
index: 28, \
title: "STYLE", \
author: "Hearts2Hearts", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 29, \
title: "Good Goodbye", \
author: "", \
alias: ["굿 굿", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 30, \
title: " ", \
author: "10CM", \
alias: [] \
}
function mq:quiz/macro/setanswer { \
index: 31, \
title: "IRIS OUT", \
author: "Kenshi Yonezu", \
alias: [" ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 32, \
title: "Sugar On My Tongue", \
author: "Tyler, The Creator", \
alias: [" ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 33, \
title: "Hollywood Action", \
author: "BOYNEXTDOOR", \
alias: [" ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 34, \
title: "SPAGHETTI", \
author: "LE SSERAFIM", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 35, \
title: "Gabriela", \
author: "KATSEYE", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 36, \
title: "LIKE YOU BETTER", \
author: "", \
alias: [" ", " ", " ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 37, \
title: "", \
author: "BLACKPINK", \
alias: ["jump"] \
}
function mq:quiz/macro/setanswer { \
index: 38, \
title: "CHANEL", \
author: "Tyla", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 39, \
title: " I LOVE YOU", \
author: "BOYNEXTDOOR", \
alias: [" ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 40, \
title: "earthquake", \
author: "", \
alias: ["", "", ""," "] \
}
function mq:quiz/macro/setanswer { \
index: 41, \
title: "!", \
author: "", \
alias: [""] \
}
function mq:quiz/macro/setanswer { \
index: 42, \
title: "Abracadabra", \
author: "Lady Gaga", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 43, \
title: "", \
author: "", \
alias: [] \
}
function mq:quiz/macro/setanswer { \
index: 44, \
title: "Dirty Work", \
author: "aespa", \
alias: [" ", " ", " ", " ", " "] \
}
function mq:quiz/macro/setanswer { \
index: 45, \
title: "HOT", \
author: "LE SSERAFIM", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 46, \
title: "FAMOUS", \
author: "ALLDAY PROJECT", \
alias: ["", ""] \
}
function mq:quiz/macro/setanswer { \
index: 47, \
title: "XOXZ", \
author: "IVE", \
alias: [" ", " ", ""] \
}
function mq:quiz/macro/setanswer { \
index: 48, \
title: "", \
author: "H1-KEY", \
alias: [] \
}
function mq:quiz/macro/setanswer { \
index: 49, \
title: "LOV3", \
author: "", \
alias: ["3", "3"] \
}
function mq:quiz/macro/setanswer { \
index: 50, \
title: "Drive", \
author: "Ed Sheeran", \
alias: ["", ""] \
}
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 init main 5
function mq:quiz/macro/summon with storage mq:main command_block

View File

@@ -0,0 +1,8 @@
scoreboard players set init main 2
# say 퀴즈 시작!
scoreboard players set index main 0
bossbar set mq:process visible true
scoreboard players set timer main 1

View File

@@ -0,0 +1,29 @@
$execute if score $(n) buttons matches ..-2 run setblock $(x) $(y) $(z) minecraft:air
$execute if score $(n) buttons matches ..-2 run data modify entity @e[type=minecraft:interaction,tag=mq,tag=$(n),limit=1] response set value 0b
$execute if score $(n) buttons matches ..-2 run return 0
$execute unless score $(n) buttons matches -1.. run scoreboard players set $(n) buttons -1
$execute if score $(n) buttons matches -1 run setblock $(x) $(y) $(z) minecraft:stone_button[face=wall,facing=$(f),powered=false]
$execute if score $(n) buttons matches -1 positioned $(x) $(y) $(z) run setblock ~ ~-3 ~ minecraft:redstone_block
$execute if score $(n) buttons matches -1 positioned $(x) $(y) $(z) run setblock ~ ~-3 ~ minecraft:red_wool
$execute if score $(n) buttons matches -1 run scoreboard players set $(n) buttons 0
$execute if block $(x) $(y) $(z) minecraft:stone_button[face=wall,facing=$(f),powered=true] \
if score $(n) buttons matches 0 \
run scoreboard players set $(n) buttons 1
$execute if score $(n) buttons matches 1 unless entity @e[type=minecraft:interaction,tag=mq,tag=$(n),limit=1] positioned $(x) $(y) $(z) run $(c)
$execute if score $(n) buttons matches 1 \
run scoreboard players set $(n) buttons 2
$execute if block $(x) $(y) $(z) minecraft:stone_button[face=wall,facing=$(f),powered=false] \
if score $(n) buttons matches 1.. \
run scoreboard players set $(n) buttons 0
# $execute as @e[type=minecraft:interaction,tag=mq,tag=$(n),limit=1] on target as @s positioned $(x) $(y) $(z) run say "$(n) 눌러짐"
$execute as @e[type=minecraft:interaction,tag=mq,tag=$(n),limit=1] on target as @s positioned $(x) $(y) $(z) run playsound minecraft:block.stone_button.click_on block @s ~ ~ ~ 1 1
$execute as @e[type=minecraft:interaction,tag=mq,tag=$(n),limit=1] on target as @s positioned $(x) $(y) $(z) if score init main matches 0 run $(c)
$execute as @e[type=minecraft:interaction,tag=mq,tag=$(n),limit=1] on target as @s positioned $(x) $(y) $(z) unless score init main matches 0 run trigger $(n)
$execute as @e[type=minecraft:interaction,tag=mq,tag=$(n)] at @s run data remove entity @s attack
$execute as @e[type=minecraft:interaction,tag=mq,tag=$(n)] at @s run data remove entity @s interaction

View File

@@ -0,0 +1,48 @@
function mq:repeat/buttons/btn { \
n: "start", \
x: 140, \
y: 62, \
z: -225, \
f: "south", \
c: "function mq:commands/start with storage mq:main" \
}
function mq:repeat/buttons/btn { \
n: "stop", \
x: 142, \
y: 62, \
z: -225, \
f: "south", \
c: "function mq:commands/stop with storage mq:main" \
}
function mq:repeat/buttons/btn { \
n: "skip", \
x: 144, \
y: 62, \
z: -225, \
f: "south", \
c: "function mq:commands/skip" \
}
function mq:repeat/buttons/btn { \
n: "hint", \
x: 146, \
y: 62, \
z: -225, \
f: "south", \
c: "function mq:commands/hint" \
}
function mq:repeat/buttons/btn { \
n: "replay", \
x: 148, \
y: 62, \
z: -225, \
f: "south", \
c: "function mq:commands/replay" \
}
function mq:repeat/buttons/btn { \
n: "test", \
x: 144, \
y: 62, \
z: -213, \
f: "north", \
c: "function mq:commands/test" \
}

View File

@@ -0,0 +1,2 @@
execute as @a[scores={answer=1}] run function mq:quiz/correct with storage mq:main answer
execute as @a[scores={answer=2}] run scoreboard players reset @a answer

View File

@@ -0,0 +1,12 @@
execute if score timer status matches 20.. \
if score skript status matches 0 \
if score yp status matches 0 \
if score ts status matches 0 \
run return run function mq:check/server
execute if score timer status matches 0.. run scoreboard players add timer status 1
execute if score timer status matches 1..10 run scoreboard players set skript status 0
execute if score timer status matches 1..10 run scoreboard players set yp status 0
execute if score timer status matches 1..10 run scoreboard players set ts status 0
execute if score timer status matches 21.. run scoreboard players set timer status -1

View File

@@ -0,0 +1,22 @@
execute unless score lamp1 map matches 0.. run scoreboard players set lamp1 map 1
execute unless score lamp1.on map matches 0.. run scoreboard players set lamp1.on map 94
execute unless score lamp1.off map matches 0.. run scoreboard players set lamp1.off map 85
execute unless score lamp1.on2 map matches 0.. run scoreboard players set lamp1.on2 map 44
execute unless score lamp1.off2 map matches 0.. run scoreboard players set lamp1.off2 map 35
execute if score lamp1 map matches 1.. run scoreboard players add lamp1 map 1
execute if score lamp1 map matches 3 if score lamp1.on map matches 195.. run scoreboard players set lamp1.on map 94
execute if score lamp1 map matches 3 if score lamp1.off map matches 195.. run scoreboard players set lamp1.off map 94
execute if score lamp1 map matches 3 if score lamp1.on2 map matches 195.. run scoreboard players set lamp1.on2 map 94
execute if score lamp1 map matches 3 if score lamp1.off2 map matches 195.. run scoreboard players set lamp1.off2 map 94
execute if score lamp1 map matches 3 run execute store result storage mq:main map.lamp1.on int 1 run scoreboard players get lamp1.on map
execute if score lamp1 map matches 3 run execute store result storage mq:main map.lamp1.off int 1 run scoreboard players get lamp1.off map
execute if score lamp1 map matches 3 run execute store result storage mq:main map.lamp1.on2 int 1 run scoreboard players get lamp1.on2 map
execute if score lamp1 map matches 3 run execute store result storage mq:main map.lamp1.off2 int 1 run scoreboard players get lamp1.off2 map
execute if score lamp1 map matches 3 run function mq:repeat/map/macro/lamp1 with storage mq:main map.lamp1
execute if score lamp1 map matches 3 run scoreboard players add lamp1.on map 1
execute if score lamp1 map matches 3 run scoreboard players add lamp1.off map 1
execute if score lamp1 map matches 3 run scoreboard players add lamp1.on2 map 1
execute if score lamp1 map matches 3 run scoreboard players add lamp1.off2 map 1
execute if score lamp1 map matches 3.. run scoreboard players set lamp1 map 1

View File

@@ -0,0 +1,4 @@
$execute if score lamp1.on map matches 94..194 positioned $(on) 78 -279 if block ~ ~ ~1 minecraft:redstone_lamp run setblock ~ ~ ~ minecraft:redstone_block
$execute if score lamp1.off map matches 94..194 positioned $(off) 78 -279 if block ~ ~ ~1 minecraft:redstone_lamp run setblock ~ ~ ~ minecraft:red_wool
$execute if score lamp1.on2 map matches 94..194 positioned $(on2) 78 -279 if block ~ ~ ~1 minecraft:redstone_lamp run setblock ~ ~ ~ minecraft:redstone_block
$execute if score lamp1.off2 map matches 94..194 positioned $(off2) 78 -279 if block ~ ~ ~1 minecraft:redstone_lamp run setblock ~ ~ ~ minecraft:red_wool

View File

@@ -0,0 +1,60 @@
execute unless score tree map matches 0.. run scoreboard players set tree map 1
execute if score tree map matches 1.. run scoreboard players add tree map 1
# 1층 시작
execute if score tree map matches 6 run setblock 142 66 -186 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 6 run setblock 147 66 -191 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 6 run setblock 142 66 -196 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 6 run setblock 137 66 -191 minecraft:redstone_lamp[lit=true]
# 1층 끝
execute if score tree map matches 16 run setblock 142 66 -186 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 16 run setblock 147 66 -191 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 16 run setblock 142 66 -196 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 16 run setblock 137 66 -191 minecraft:redstone_lamp[lit=false]
# 2층 시작
execute if score tree map matches 16 run setblock 142 70 -195 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 16 run setblock 138 70 -191 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 16 run setblock 142 70 -187 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 16 run setblock 146 70 -191 minecraft:redstone_lamp[lit=true]
# 2층 끝
execute if score tree map matches 26 run setblock 142 70 -195 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 26 run setblock 138 70 -191 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 26 run setblock 142 70 -187 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 26 run setblock 146 70 -191 minecraft:redstone_lamp[lit=false]
# 3층 시작
execute if score tree map matches 26 run setblock 142 74 -194 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 26 run setblock 139 74 -191 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 26 run setblock 142 74 -188 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 26 run setblock 145 74 -191 minecraft:redstone_lamp[lit=true]
# 3층 끝
execute if score tree map matches 36 run setblock 142 74 -194 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 36 run setblock 139 74 -191 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 36 run setblock 142 74 -188 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 36 run setblock 145 74 -191 minecraft:redstone_lamp[lit=false]
# 4층 시작
execute if score tree map matches 36 run setblock 142 78 -193 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 36 run setblock 140 78 -191 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 36 run setblock 142 78 -189 minecraft:redstone_lamp[lit=true]
execute if score tree map matches 36 run setblock 144 78 -191 minecraft:redstone_lamp[lit=true]
# 4층 끝
execute if score tree map matches 46 run setblock 142 78 -193 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 46 run setblock 140 78 -191 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 46 run setblock 142 78 -189 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 46 run setblock 144 78 -191 minecraft:redstone_lamp[lit=false]
# TOP 시작
execute if score tree map matches 46 run setblock 142 81 -191 minecraft:redstone_lamp[lit=true]
# TOP 끝
execute if score tree map matches 56 run setblock 142 81 -191 minecraft:redstone_lamp[lit=false]
execute if score tree map matches 61.. run scoreboard players set tree map 1

View File

@@ -0,0 +1,2 @@
execute as @a[tag=!player] run function mq:players/login with storage mq:main spawn
execute as @a if score @s leave_game matches 1.. run function mq:players/login with storage mq:main spawn

View File

@@ -0,0 +1,49 @@
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/image_delete with storage mq:main command_block
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

View File

@@ -0,0 +1,40 @@
execute if score init main matches 0..1 run scoreboard players enable @a ready
execute if score init main matches 0..1 as @a if score @s ready matches 1 run function mq:tellraw {"text":"","color":"black",msg:[{"selector":"@s","color": "yellow","bold": true},{"text":" : ","color":"gray"},{"text":"준비완료","color":"white"}]}
execute if score init main matches 0..1 as @a if score @s ready matches 1 run scoreboard players set @s ready 2
execute if score init main matches 0..1 as @a if score @s ready matches 3 run function mq:tellraw {"text":"","color":"black",msg:[{"selector":"@s","color": "yellow","bold": true},{"text":" : ","color":"gray"},{"text":"이미 준비완료 상태입니다.","color": "red"}]}
execute if score init main matches 0..1 as @a if score @s ready matches 3 run scoreboard players set @s ready 2
execute if score init main matches 0..1 run scoreboard players enable @a cancel
execute if score init main matches 0..1 as @a if score @s cancel matches 1 run function mq:tellraw {"text":"","color":"black",msg:[{"selector":"@s","color": "yellow","bold": true},{"text":" : ","color":"gray"},{"text":"취소를 선택하셨습니다.","color": "red"}]}
execute if score init main matches 0..1 as @a if score @s cancel matches 1 run function mq:commands/stop with storage mq:main
execute if score init main matches 0..1 store result score max_player ready if entity @a
execute if score init main matches 0..1 store result score ready_player ready if entity @a[scores={ready=2..}]
execute if score init main matches 0..1 \
unless score max_player ready matches 0 \
if score max_player ready = ready_player ready \
run function mq:quiz/start with storage mq:main
function mq:repeat/triggers/trigger { \
n:"stop", \
n2:"", \
c:"function mq:commands/stop with storage mq:main" \
}
function mq:repeat/triggers/trigger { \
n:"skip", \
n2:"", \
c:"function mq:commands/skip" \
}
function mq:repeat/triggers/trigger { \
n:"hint", \
n2:"", \
c:"function mq:commands/hint" \
}
function mq:repeat/triggers/trigger { \
n:"replay", \
n2:"", \
c:"function mq:commands/replay" \
}

View File

@@ -0,0 +1,32 @@
$scoreboard players enable @a $(n)
$execute unless score init main matches 5 as @a if score @s $(n) matches 1.. run scoreboard players reset @s $(n)
execute unless score init main matches 5 run return 0
$execute store result score real_max_player $(n) if entity @a
$execute store result score rest_player $(n) if entity @a
$execute unless score rest_player $(n) matches 0 run scoreboard players operation rest_player $(n) %= two func.temp
$execute store result score max_player $(n) if entity @a
$execute unless score real_max_player $(n) matches 0 run scoreboard players operation max_player $(n) /= two func.temp
$execute unless score real_max_player $(n) matches 0 run scoreboard players operation max_player $(n) += rest_player $(n)
$execute store result score $(n)_player $(n) if entity @a[scores={$(n)=2..}]
$execute store result score $(n)_player_add $(n) if entity @a[scores={$(n)=2..}]
$execute run scoreboard players add $(n)_player_add $(n) 1
$execute as @a if score @s $(n) matches 1 run function mq:tellraw {"text":"","color":"black",msg:[{"selector":"@s","color": "yellow","bold": true}," : ",{"text":"$(n2) 투표 완료","color": "white"}, \
{"text":" (","color":"gray"},{"score":{"name":"$(n)_player_add","objective": "$(n)"},"color":"gray"},{"text":"/","color":"gray"},{"score":{"name":"max_player","objective": "$(n)"},"color":"gray"},{"text":")","color":"gray"}]}
$execute as @a if score @s $(n) matches 1 run scoreboard players set @s $(n) 2
$execute as @a if score @s $(n) matches 3 run function mq:tellraw {"text":"","color":"black",msg:[{"selector":"@s","color": "yellow","bold": true}," : ",{"text":"이미 $(n2)투표를 하셨습니다.","color": "red"}]}
$execute as @a if score @s $(n) matches 3 run scoreboard players set @s $(n) 2
$execute store result score rest_player $(n) if entity @a
$execute unless score rest_player $(n) matches 0 run scoreboard players operation rest_player $(n) %= two func.temp
$execute store result score max_player $(n) if entity @a
$execute unless score real_max_player $(n) matches 0 run scoreboard players operation max_player $(n) /= two func.temp
$execute unless score real_max_player $(n) matches 0 run scoreboard players operation max_player $(n) += rest_player $(n)
$execute store result score $(n)_player $(n) if entity @a[scores={$(n)=2..}]
$execute unless score real_max_player $(n) matches 0 \
if score max_player $(n) = $(n)_player $(n) \
run $(c)

View File

@@ -0,0 +1 @@
$tellraw @a ["",{"text":"[ ","bold":true,"color":"gray"},{"text":"음악퀴즈","bold":true,"color":"dark_green"},{"text":" ]","bold":true,"color":"gray"},{"text":" "},{"text":"$(text)","color":"$(color)"},$(msg)]

View File

@@ -0,0 +1,9 @@
function mq:repeat/players
function mq:repeat/check_answer
function mq:repeat/timer
function mq:repeat/buttons/handler
function mq:repeat/triggers/handler
function mq:repeat/check_server
function mq:repeat/map/tree
function mq:repeat/map/lamp1

View File

@@ -0,0 +1,9 @@
- function/
- load.mcfunction
- buttons/
- handler.mcfunction
- quiz/
- setanswer.mcfunction
# 이미지 명령어 추가