Просмотр исходного кода

小游戏生命数轮子+color match小游戏框架

HerobrineXia 6 лет назад
Родитель
Сommit
01ec87e304

+ 0 - 0
data/mini/functions/colormatch/game_init.mcfunction


+ 3 - 0
data/mini/functions/colormatch/init.mcfunction

@@ -0,0 +1,3 @@
+# 计分板初始化
+scoreboard objectives remove colormatch_heart
+scoreboard objectives add colormatch_heart dummy "玩家生命"

+ 0 - 0
data/mini/functions/colormatch/player_enter.mcfunction


+ 0 - 0
data/mini/functions/colormatch/player_intro.mcfunction


+ 0 - 0
data/mini/functions/colormatch/spectator_range.mcfunction


+ 0 - 0
data/mini/functions/colormatch/tick20.mcfunction


+ 1 - 0
data/mini/functions/main/game_init.mcfunction

@@ -2,6 +2,7 @@
 execute if score $mini_type mem matches 1 run function mini:parkour/game_init
 execute if score $mini_type mem matches 2 run function mini:tntrun/game_init
 execute if score $mini_type mem matches 3 run function mini:hotpm/game_init
+execute if score $mini_type mem matches 4 run function mini:colormatch/game_init
 
 # 计分板初始化
 scoreboard players reset * mini_score

+ 3 - 0
data/mini/functions/main/init.mcfunction

@@ -2,7 +2,10 @@
 function mini:tntrun/init
 function mini:parkour/init
 function mini:hotpm/init
+function mini:colormatch/init
 
 # 计分板初始化
 scoreboard objectives remove mini_score
 scoreboard objectives add mini_score dummy "小游戏得分"
+scoreboard objectives remove mini_heart
+scoreboard objectives add mini_heart dummy "小游戏得分"

+ 2 - 1
data/mini/functions/main/player_enter.mcfunction

@@ -5,4 +5,5 @@ scoreboard players set @s[tag=watcher] mini_score -9999999
 
 execute if score $mini_type mem matches 1 run function mini:parkour/player_enter
 execute if score $mini_type mem matches 2 run function mini:tntrun/player_enter
-execute if score $mini_type mem matches 3 run function mini:hotpm/player_enter
+execute if score $mini_type mem matches 3 run function mini:hotpm/player_enter
+execute if score $mini_type mem matches 4 run function mini:colormatch/player_enter

+ 2 - 1
data/mini/functions/main/player_intro.mcfunction

@@ -1,4 +1,5 @@
 # 向单个玩家展示小游戏时执行
 execute if score $mini_type mem matches 1 run function mini:parkour/player_intro
 execute if score $mini_type mem matches 2 run function mini:tntrun/player_intro
-execute if score $mini_type mem matches 3 run function mini:hotpm/player_intro
+execute if score $mini_type mem matches 3 run function mini:hotpm/player_intro
+execute if score $mini_type mem matches 4 run function mini:colormatch/player_intro

+ 7 - 0
data/mini/functions/main/player_lose_heart.mcfunction

@@ -0,0 +1,7 @@
+# 玩家失去一条命时调用此函数
+# 减少命
+execute if score @s mini_heart matches 1.. run scoreboard players remove @s mini_heart 1
+# 计算血量
+function mini:main/player_max_health
+# 生命值归0判定失败
+execute if score @s mini_heart matches 0 run function mini:main/player_failed

+ 12 - 0
data/mini/functions/main/player_max_health.mcfunction

@@ -0,0 +1,12 @@
+# 如小游戏有多条命,需在小游戏中设置给玩家mini_heart生命上限并调用此函数
+# 根据玩家mini_heart数量决定生命值上限
+execute if score @s mini_heart matches 10 run attribute @s generic.max_health base set 20
+execute if score @s mini_heart matches 9 run attribute @s generic.max_health base set 18
+execute if score @s mini_heart matches 8 run attribute @s generic.max_health base set 16
+execute if score @s mini_heart matches 7 run attribute @s generic.max_health base set 14
+execute if score @s mini_heart matches 6 run attribute @s generic.max_health base set 12
+execute if score @s mini_heart matches 5 run attribute @s generic.max_health base set 10
+execute if score @s mini_heart matches 4 run attribute @s generic.max_health base set 8
+execute if score @s mini_heart matches 3 run attribute @s generic.max_health base set 6
+execute if score @s mini_heart matches 2 run attribute @s generic.max_health base set 4
+execute if score @s mini_heart matches 1 run attribute @s generic.max_health base set 2

+ 2 - 1
data/mini/functions/main/spectator_range.mcfunction

@@ -1,4 +1,5 @@
 # 限制观察者范围
 execute if score $mini_type mem matches 1 run function mini:parkour/spectator_range
 execute if score $mini_type mem matches 2 run function mini:tntrun/spectator_range
-execute if score $mini_type mem matches 3 run function mini:hotpm/spectator_range
+execute if score $mini_type mem matches 3 run function mini:hotpm/spectator_range
+execute if score $mini_type mem matches 4 run function mini:colormatch/spectator_range

+ 2 - 1
data/mini/functions/main/tick20.mcfunction

@@ -1 +1,2 @@
-execute if score $mini_type mem matches 3 run function mini:hotpm/tick20
+execute if score $mini_type mem matches 3 run function mini:hotpm/tick20
+execute if score $mini_type mem matches 4 run function mini:colormatch/tick20