Parcourir la source

钻石掉落一半处理

HerobrineXia il y a 5 ans
Parent
commit
589f242d90

+ 13 - 0
data/mini/functions/diamond/game/drop_diamond.mcfunction

@@ -0,0 +1,13 @@
+# 处理钻石总数
+execute at @s as @e[type=item,nbt={Item:{id:"minecraft:diamond"}},tag=death_drop,distance=..100] store result score @s temp run data get entity @s Item.Count
+execute at @s as @e[type=item,nbt={Item:{id:"minecraft:diamond"}},tag=death_drop,distance=..100] run scoreboard players operation #diamond_count temp += @s temp
+# 相应减少掉落总数(单独处理了钻石)
+execute at @s as @e[type=item,nbt={Item:{id:"minecraft:diamond"}},tag=death_drop,distance=..100] run scoreboard players remove #total_drop temp 1
+# 处理掉落物数量(除以2)
+execute at @s as @e[type=item,nbt={Item:{id:"minecraft:diamond"}},tag=death_drop,distance=..100] store result entity @s Item.Count byte 0.5 run scoreboard players get @s temp
+# 处理钻石标签
+execute at @s as @e[type=item,nbt={Item:{id:"minecraft:diamond"}},tag=death_drop,distance=..100] run tag @s remove death_drop
+# 给予玩家钻石(除以2/向上取整)
+scoreboard players add #diamond_count temp 1
+scoreboard players operation #diamond_count temp /= #const_2 mem
+execute if score #diamond_count temp matches 1.. run function mini:diamond/game/give_diamond

+ 3 - 0
data/mini/functions/diamond/game/give_diamond.mcfunction

@@ -0,0 +1,3 @@
+give @s diamond 1
+scoreboard players remove #diamond_count temp 1
+execute if score #diamond_count temp matches 1.. run function mini:diamond/game/give_diamond

+ 1 - 0
data/mini/functions/diamond/player_death.mcfunction

@@ -10,6 +10,7 @@ execute at @s as @e[type=item,distance=..100] store result score @s temp run dat
 execute at @s store result score #total_drop temp run tag @e[type=item,scores={temp=..3}] add death_drop
 scoreboard players reset @e[type=item] temp
 # 单独处理钻石还没写
+function mini:diamond/game/drop_diamond 
 # 掉落数量向上取整
 scoreboard players add #total_drop temp 1
 scoreboard players operation #total_drop temp /= #const_2 mem