이전퀴즈 데이터팩

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,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)