Explorar o código

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

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

+ 1 - 1
data/lib/functions/random.mcfunction

@@ -9,4 +9,4 @@ scoreboard players add $random_max mem 1
 scoreboard players operation $random mem %= $random_max mem
 scoreboard players operation $random mem += $random_min mem
 
-# TODO : 重置血量上限
+# TODO : 血量上限改变依然会触发假死

+ 2 - 2
data/ltw/functions/main/game_end.mcfunction

@@ -19,8 +19,8 @@ execute as @a[tag=!total_rank1,tag=!total_rank2] unless entity @a[tag=total_rank
 
 # 显示排名
 execute if entity @a[tag=total_rank2] if entity @a[tag=total_rank3] run tellraw @a [{"text":"\n\n\n----- 游戏结束 -----\n\n","color":"gold","bold":true},{"text": "第一名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank1]","color":"white","bold": false},{"text": "\n第二名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank2]","color":"white","bold": false},{"text": "\n第三名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank3]","color":"white","bold": false},"\n"]
-execute if entity @a[tag=total_rank2] unless entity @a[tag=total_rank3] run tellraw @a [{"text":"\n\n\n----- 游戏结束 -----\n\n","color":"gold","bold":true},{"text": "第一名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank1]","color":"white","bold": false},{"text": "\n第二名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank2]","color":"white","bold": false},"\n"]
-execute unless entity @a[tag=total_rank2] run tellraw @a [{"text":"\n\n\n----- 游戏结束 -----\n\n","color":"gold","bold":true},{"text": "第一名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank1]","color":"white","bold": false},"\n"]
+execute if entity @a[tag=total_rank2] unless entity @a[tag=total_rank3] run tellraw @a [{"text":"\n\n\n\n----- 游戏结束 -----\n\n","color":"gold","bold":true},{"text": "第一名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank1]","color":"white","bold": false},{"text": "\n第二名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank2]","color":"white","bold": false},"\n"]
+execute unless entity @a[tag=total_rank2] run tellraw @a [{"text":"\n\n\n\n\n----- 游戏结束 -----\n\n","color":"gold","bold":true},{"text": "第一名 - ","color":"green","bold": false},{"selector": "@a[tag=total_rank1]","color":"white","bold": false},"\n"]
 
 # 返回主大厅
 schedule function ltw:state/0/state_enter 2t replace

+ 1 - 0
data/ltw/functions/main/player_leave.mcfunction

@@ -0,0 +1 @@
+say [test] 有玩家离开游戏!

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

@@ -1,3 +1,5 @@
 scoreboard players set $randarray_max mem 3
 function lib:randarray/call
-data modify storage ltw:mini types set from storage lib:randarray out
+data modify storage ltw:mini types set from storage lib:randarray out
+execute store result score $temp_49d0 mem run data get storage ltw:mini types[0]
+execute if score $temp_49d0 mem = $mini_type mem run data remove storage ltw:mini types[0]

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

@@ -12,7 +12,6 @@ scoreboard players set $countdown mem 10
 # 小游戏编号
 # 1 跑酷;2 TNT Run;3 热土豆
 # 优化下一次游戏的选择:生成一个 1~[最大游戏编号] 的 randomarray,每次从其中取下一个数。
-# TODO : 如果数组取完了,就生成一个新数组,但是要保证新数组的开头和老数组的结尾不一样,这样就不会连续玩两次相同的游戏了
 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]

+ 1 - 1
data/mini/functions/hotpm/player_enter.mcfunction

@@ -23,7 +23,7 @@ gamemode spectator @s
 gamemode adventure @s[tag=!watcher,tag=!rejoining]
 
 # 设置玩家生命数量
-scoreboard players set @s mini_heart 2
+scoreboard players set @s[tag=!watcher,tag=!rejoining] mini_heart 2
 function mini:main/player_max_health
 
 # 3秒后给予土豆

+ 5 - 3
data/mini/functions/main/game_init.mcfunction

@@ -1,12 +1,14 @@
+# 计分板初始化
+scoreboard players reset * mini_score
+scoreboard players reset * mini_heart
+
 # 小游戏初始化
 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
-
 # 计算玩家数量
 execute store result score $alive mem if entity @a[tag=mini_running,tag=!watcher]
 
+# TODO 旁观者会在进入阶段 4 后显示 0 分

+ 6 - 4
data/mini/functions/main/show_result.mcfunction

@@ -5,7 +5,9 @@ execute if entity @a[tag=mini_rank2] unless entity @a[tag=mini_rank3] run tellra
 execute unless entity @a[tag=mini_rank2] run tellraw @s [{"text":"\n>> 小游戏结束 >>\n\n","color":"gold","bold":true},{"text": "第一名 - ","color":"green","bold": false},{"selector": "@a[tag=mini_rank1]","color":"white","bold": false},"\n"]
 
 # 记分
-scoreboard players add @s[tag=mini_rank1] total_score 3
-scoreboard players add @s[tag=mini_rank2] total_score 2
-scoreboard players add @s[tag=mini_rank3] total_score 1
-scoreboard players add @s[tag=mini_rank4] total_score 0
+scoreboard players add @s[tag=mini_rank1,tag=!watcher] total_score 3
+scoreboard players add @s[tag=mini_rank2,tag=!watcher] total_score 2
+scoreboard players add @s[tag=mini_rank3,tag=!watcher] total_score 1
+scoreboard players add @s[tag=mini_rank4,tag=!watcher] total_score 0
+
+# TODO 进入游戏会误判离开

+ 2 - 2
data/mini/functions/parkour/spectator_range.mcfunction

@@ -1,3 +1,3 @@
 # 观察者限制飞行范围
-execute as @a[gamemode=spectator] unless entity @s[x=1001,y=11,z=1001,dx=11,dy=17,dz=24] run spectate
-execute as @a[gamemode=spectator] unless entity @s[x=1001,y=11,z=1001,dx=11,dy=17,dz=24] run tp @s 1007 24 1005
+execute as @a[gamemode=spectator] unless entity @s[x=1001,y=11,z=1001,dx=11,dy=15,dz=24] run spectate
+execute as @a[gamemode=spectator] unless entity @s[x=1001,y=11,z=1001,dx=11,dy=15,dz=24] run tp @s 1007 24 1005