Explorar o código

排名测试-第一名

HerobrineXia %!s(int64=6) %!d(string=hai) anos
pai
achega
e39a4dbe9f

+ 4 - 4
data/mini/functions/main/game_end.mcfunction

@@ -3,10 +3,10 @@ execute if score $mini_type mem matches 1 run function mini:parkour/game_end
 execute if score $mini_type mem matches 2 run function mini:tntrun/game_end
 
 # 计算排名
-tag @a[scores={mini_score=0}] add mini_rank1
-tag @a[scores={mini_score=-1}] add mini_rank2
-tag @a[scores={mini_score=-2}] add mini_rank3
-tag @a[scores={mini_score=..-3}] add mini_rank4
+# 1
+scoreboard players set $t_score_max mini_score -2147483648
+execute as @a run function mini:main/get_max_score
+execute as @a unless entity @a[tag=mini_rank1] if score @s mini_score = $t_score_max mini_score run tag @s add mini_rank1
 
 # 进入状态 6
 function ltw:state/6/state_enter

+ 1 - 1
data/mini/functions/main/get_max_score.mcfunction

@@ -1 +1 @@
-execute if score @s mini_score > $t_score_max mini_score run scoreboard players operation $t_score_max mini_score = @s mini_score
+execute if score @s mini_score > $t_score_max mini_score run scoreboard players operation $t_score_max mini_score = @s mini_score

+ 1 - 1
data/mini/functions/main/player_failed.mcfunction

@@ -6,7 +6,7 @@ execute store result score $t_finish mem if entity @a[tag=mini_running]
 execute if score $t_alive mem matches 1.. run tellraw @a [{"selector": "@s","color":"red"}," 已失败! 剩余 ",{"score": {"name": "$t_alive","objective": "mem"}}," 人!"]
 
 # 给存活的玩减分
-scoreboard players remove @a[tag=!mini_running] mini_score 1
+scoreboard players add @a[tag=mini_running] mini_score 1
 
 # 进入旁观
 gamemode spectator @s

+ 1 - 1
data/mini/functions/main/player_finished.mcfunction

@@ -6,7 +6,7 @@ execute store result score $t_finish mem if entity @a[tag=mini_running]
 execute if score $t_finish mem matches ..3 run tellraw @a [{"selector": "@s","color":"green"}," 已成功! 第 ",{"score": {"name": "$t_finish","objective": "mem"}}," 名!"]
 
 # 给已完成的玩家减分
-scoreboard players remove @a[tag=!mini_running] mini_score 1
+scoreboard players add @a[tag=!mini_running] mini_score 1
 
 # 进入旁观
 gamemode spectator @s