Răsfoiți Sursa

Merge branch 'master' of https://github.com/LTCatt/LTW3

LTCatt 6 ani în urmă
părinte
comite
f1d9902e4e

+ 2 - 1
data/ltw/functions/state/3/newarray.mcfunction

@@ -1,2 +1,3 @@
 scoreboard players set $randarray_max mem 3
-function lib:randarray/call
+function lib:randarray/call
+data modify storage ltw:mini types set from storage lib:randarray out

+ 3 - 3
data/ltw/functions/state/3/state_enter.mcfunction

@@ -16,9 +16,9 @@ scoreboard players set $countdown mem 3
 #scoreboard players operation $mini_type mem = $random mem
 
 # 优化下一次游戏的选择:生成一个 1~[最大游戏编号] 的 randomarray,每次从其中取下一个数。如果数组取完了,就生成一个新数组,但是要保证新数组的开头和老数组的结尾不一样,这样就不会连续玩两次相同的游戏了
-execute unless data storage lib:randarray out[0] run function ltw:state/3/newarray
-execute store result score $mini_type mem run data get storage lib:randarray out[0]
-data remove storage lib:randarray out[0]
+execute unless data storage ltw:mini types[0] run function ltw:state/3/newarray
+execute store result score $mini_type mem run data get storage ltw:mini types[0]
+data remove storage ltw:mini types[0]
 
 # 初始化小游戏
 function mini:main/game_init

+ 8 - 0
data/mini/functions/main/player_changed.mcfunction

@@ -0,0 +1,8 @@
+# 计算玩家数量
+execute store result score $alive_now mem if entity @a[tag=mini_running,tag=!watcher]
+
+# 比较玩家数量
+execute unless score $alive_now mem = $alive mem run function mini:main/player_leave
+
+# 重置玩家数量
+execute unless score $alive_now mem = $alive mem run scoreboard players operation $alive mem = $alive_now mem

+ 0 - 0
data/mini/functions/main/player_leave.mcfunction


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

@@ -3,5 +3,7 @@
 execute if score @s mini_heart matches 1.. run scoreboard players remove @s mini_heart 1
 # 计算血量
 function mini:main/player_max_health
+# 修改血量
+effect give @s minecraft:instant_health 1 0
 # 生命值归0判定失败
 execute if score @s mini_heart matches 0 run function mini:main/player_failed

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

@@ -1,3 +1,4 @@
+function mini:main/player_changed
 execute if score $mini_type mem matches 1 run function mini:parkour/tick4
 execute if score $mini_type mem matches 2 run function mini:tntrun/tick4
 execute if score $mini_type mem matches 3 run function mini:hotpm/tick4