实现计分板底层逻辑

This commit is contained in:
延皓
2022-07-04 00:38:23 +08:00
parent d8d5b7b677
commit 171b19c93a
58 changed files with 143 additions and 37 deletions
+6 -4
View File
@@ -1,12 +1,14 @@
scoreboard objectives add fz.event.play_seconds minecraft.custom:play_time
scoreboard objectives add fz.event.leave_game minecraft.custom:leave_game
scoreboard objectives add fz.event.aviating_distance minecraft.custom:aviate_one_cm
scoreboard objectives add fz.event.damage_taken minecraft.custom:damage_taken
scoreboard objectives add fz.event.fishing_count minecraft.custom:fish_caught
scoreboard objectives add fz.event.leave_game minecraft.custom:leave_game
scoreboard objectives add fz.event.play_seconds minecraft.custom:play_time
scoreboard objectives add fz.event.villager_trade minecraft.custom:traded_with_villager
##
execute if score fz.logger.level fz.variable.integer matches ..500 run tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "已初始化系统组件:事件"}]
@@ -1,4 +1,5 @@
scoreboard players operation fz.var.score fz.variable.integer = @s fz.event.aviating_distance
scoreboard players operation fz.var.score fz.variable.integer /= 200 fz.variable.integer
function #fz:event/on_aviate_one_meter
@@ -1,4 +1,5 @@
scoreboard players operation fz.var.score fz.variable.integer = @s fz.event.play_seconds
scoreboard players operation fz.var.score fz.variable.integer /= 3600 fz.variable.integer
function #fz:event/on_play_one_hour
@@ -1,3 +1,2 @@
scoreboard players add @s fz.module.scoreboard.display.activation 1
scoreboard players add fz.module.scoreboard.total.activation fz.module.scoreboard.assign.general 1
function #fz:module/scoreboard/assign/set_display/total_name/activation
scoreboard players add fz.module.scoreboard.total.activation fz.module.scoreboard.assign.general 1
@@ -1,4 +1,2 @@
scoreboard players operation fz.var.score fz.variable.integer /= 200 fz.variable.integer
scoreboard players operation @s fz.module.scoreboard.display.aviating_distance += fz.var.score fz.variable.integer
scoreboard players operation fz.module.scoreboard.total.aviating_distance fz.module.scoreboard.assign.general += fz.var.score fz.variable.integer
function #fz:module/scoreboard/assign/set_display/total_name/aviating_distance
scoreboard players operation fz.module.scoreboard.total.aviating_distance fz.module.scoreboard.assign.general += fz.var.score fz.variable.integer
@@ -1,3 +1,2 @@
scoreboard players operation @s fz.module.scoreboard.display.damage_taken += fz.var.score fz.variable.integer
scoreboard players operation fz.module.scoreboard.total.damage_taken fz.module.scoreboard.assign.general += fz.var.score fz.variable.integer
function #fz:module/scoreboard/assign/set_display/total_name/damage_taken
scoreboard players operation fz.module.scoreboard.total.damage_taken fz.module.scoreboard.assign.general += fz.var.score fz.variable.integer
@@ -0,0 +1,2 @@
scoreboard players add @s fz.module.scoreboard.display.death_count 1
scoreboard players add fz.module.scoreboard.total.death_count fz.module.scoreboard.assign.general 1
@@ -0,0 +1,2 @@
scoreboard players operation @s fz.module.scoreboard.display.dig_count += fz.var.score fz.variable.integer
scoreboard players operation fz.module.scoreboard.total.dig_count fz.module.scoreboard.assign.general += fz.var.score fz.variable.integer
@@ -0,0 +1,2 @@
scoreboard players add @s fz.module.scoreboard.display.fishing_count 1
scoreboard players add fz.module.scoreboard.total.fishing_count fz.module.scoreboard.assign.general 1
@@ -0,0 +1,2 @@
scoreboard players operation fz.module.scoreboard.display.general = fz.module.scoreboard.total.death_count fz.module.scoreboard.assign.general
scoreboard players operation fz.module.scoreboard.display.death_count = fz.module.scoreboard.total.death_count fz.module.scoreboard.assign.general
@@ -0,0 +1,2 @@
scoreboard players operation fz.module.scoreboard.display.general = fz.module.scoreboard.total.dig_count fz.module.scoreboard.assign.general
scoreboard players operation fz.module.scoreboard.display.dig_count = fz.module.scoreboard.total.dig_count fz.module.scoreboard.assign.general
@@ -0,0 +1,2 @@
scoreboard players operation fz.module.scoreboard.display.general = fz.module.scoreboard.total.fishing_count fz.module.scoreboard.assign.general
scoreboard players operation fz.module.scoreboard.display.fishing_count = fz.module.scoreboard.total.fishing_count fz.module.scoreboard.assign.general
@@ -0,0 +1,2 @@
scoreboard players operation fz.module.scoreboard.display.general = fz.module.scoreboard.total.kill_count fz.module.scoreboard.assign.general
scoreboard players operation fz.module.scoreboard.display.kill_count = fz.module.scoreboard.total.kill_count fz.module.scoreboard.assign.general
@@ -0,0 +1,2 @@
scoreboard players operation fz.module.scoreboard.display.general = fz.module.scoreboard.total.placement_count fz.module.scoreboard.assign.general
scoreboard players operation fz.module.scoreboard.display.placement_count = fz.module.scoreboard.total.placement_count fz.module.scoreboard.assign.general
@@ -0,0 +1,2 @@
scoreboard players add @s fz.module.scoreboard.display.kill_count 1
scoreboard players add fz.module.scoreboard.total.kill_count fz.module.scoreboard.assign.general 1
@@ -0,0 +1,2 @@
scoreboard players add @s fz.module.scoreboard.display.placement_count 1
scoreboard players add fz.module.scoreboard.total.placement_count fz.module.scoreboard.assign.general 1
@@ -1,3 +1,2 @@
scoreboard players add @s fz.module.scoreboard.display.trade_count 1
scoreboard players add fz.module.scoreboard.total.trade_count fz.module.scoreboard.assign.general 1
function #fz:module/scoreboard/assign/set_display/total_name/trade_count
scoreboard players add fz.module.scoreboard.total.trade_count fz.module.scoreboard.assign.general 1
@@ -1,3 +1,3 @@
# 调用者:#fz:module/scoreboard/config/display/buttons
tellraw @s [[{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "", "color": "dark_red"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1000"}}, {"text": "", "color": "dark_red"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.general", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1010"}}, {"nbt": "fz.scoreboard.text.general", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.activation", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1020"}}, {"nbt": "fz.scoreboard.text.activation", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.aviating_distance", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1030"}}, {"nbt": "fz.scoreboard.text.aviating_distance", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.damage_taken", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1040"}}, {"nbt": "fz.scoreboard.text.damage_taken", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.death_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1050"}}, {"nbt": "fz.scoreboard.text.death_count", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.dig_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1060"}}, {"nbt": "fz.scoreboard.text.dig_count", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.fishing_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1070"}}, {"nbt": "fz.scoreboard.text.fishing_count", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.kill_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1080"}}, {"nbt": "fz.scoreboard.text.kill_count", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.trade_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1090"}}, {"nbt": "fz.scoreboard.text.trade_count", "interpret": true, "storage": "fz:module"}, {"text": "]"}]]
tellraw @s [[{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "", "color": "dark_red"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1000"}}, {"text": "", "color": "dark_red"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.carousel", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1010"}}, {"nbt": "fz.scoreboard.text.carousel", "interpret": true, "storage": "fz:module"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.general", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1020"}}, {"nbt": "fz.scoreboard.text.general", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.activation", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1030"}}, {"nbt": "fz.scoreboard.text.activation", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.aviating_distance", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1040"}}, {"nbt": "fz.scoreboard.text.aviating_distance", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.damage_taken", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1050"}}, {"nbt": "fz.scoreboard.text.damage_taken", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.death_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1060"}}, {"nbt": "fz.scoreboard.text.death_count", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.dig_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1070"}}, {"nbt": "fz.scoreboard.text.dig_count", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.fishing_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1080"}}, {"nbt": "fz.scoreboard.text.fishing_count", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.kill_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1090"}}, {"nbt": "fz.scoreboard.text.kill_count", "interpret": true, "storage": "fz:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fz.scoreboard.text.trade_count", "interpret": true, "storage": "fz:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set 1100"}}, {"nbt": "fz.scoreboard.text.trade_count", "interpret": true, "storage": "fz:module"}, {"text": "]"}]]
@@ -1,3 +1,14 @@
execute if score @s fz.module.config.trigger matches 1000 run function #fz:module/scoreboard/config/subscribe/off
execute if score @s fz.module.config.trigger matches 1010 run function #fz:module/scoreboard/config/subscribe/carousel
execute if score @s fz.module.config.trigger matches 1020 run function #fz:module/scoreboard/config/subscribe/general
execute if score @s fz.module.config.trigger matches 1030 run function #fz:module/scoreboard/config/subscribe/activation
execute if score @s fz.module.config.trigger matches 1040 run function #fz:module/scoreboard/config/subscribe/aviating_distance
execute if score @s fz.module.config.trigger matches 1050 run function #fz:module/scoreboard/config/subscribe/damage_taken
execute if score @s fz.module.config.trigger matches 1060 run function #fz:module/scoreboard/config/subscribe/death_count
execute if score @s fz.module.config.trigger matches 1070 run function #fz:module/scoreboard/config/subscribe/dig_count
execute if score @s fz.module.config.trigger matches 1080 run function #fz:module/scoreboard/config/subscribe/fishing_count
execute if score @s fz.module.config.trigger matches 1090 run function #fz:module/scoreboard/config/subscribe/kill_count
execute if score @s fz.module.config.trigger matches 1100 run function #fz:module/scoreboard/config/subscribe/trade_count
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "玩家"}, {"selector": "@s"}, {"text": "点击了计分板配置按钮,触发器分数为:"}, {"score": {"name": "@s", "objective": "fz.module.config.trigger"}}]
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.activation @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.aviating_distance @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.carousel @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.damage_taken @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.death_count @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.dig_count @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.fishing_count @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.general @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.kill_count @s
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:#fz:module/scoreboard/config/subscribe/~
team leave @s
@@ -0,0 +1,6 @@
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.placement_count @s
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "玩家"}, {"selector": "@s"}, {"text": "订阅了"}, {"nbt": "fz.scoreboard.text.placement_count", "interpret": true, "storage": "fz:module"}, {"text": "计分板"}]
@@ -1,4 +1,4 @@
# 调用者:fz:module/scoreboard/config/on_click
# 调用者:fz:module/scoreboard/config/subscribe/~
team join fz.module.scoreboard.display.trade_count @s