ソースを参照

骰子系统上线(龙猫别删qwq)

HerobrineXia 6 年 前
親
コミット
a770a0cc8b

+ 16 - 0
data/item/functions/shop/buy_dice.mcfunction

@@ -0,0 +1,16 @@
+# 骰子 (1 gi)
+# 触发器ID 999
+execute unless entity @s[scores={shop_dice=0..}] run scoreboard players set @s shop_dice 0
+tag @s remove canbuy
+tag @s[scores={shop_dice=0,gold=9..}] add canbuy
+tellraw @s[scores={shop_dice=1..}] ["",{"text":">> ","color":"aqua","bold":true},{"text":"你已经购赌了这个骰子了!","color":"aqua"}]
+tellraw @s[scores={shop_dice=0,gold=..8}] ["",{"text":">> ","color":"red","bold":true},{"text":"你没有足够的金粒来赌骰子!","color":"red"}]
+tellraw @s[scores={shop_dice=..-1}] ["",{"text":">> ","color":"red","bold":true},{"text":"你需要先赌上一级的骰子!","color":"red"}]
+tellraw @s[tag=canbuy] ["",{"text":">> ","color":"green","bold":true},"你赌了一次 ",{"text":"20面骰子","color":"green"}]
+execute as @s[tag=canbuy] run tellraw @a[tag=!canbuy] ["",{"text":">> ","color":"green","bold":true},{"selector": "@s","color":"green"}," 赌了一次 ",{"text":"20面骰子","color":"green"}]
+execute as @s[tag=canbuy] run function item:shop/special_dice
+scoreboard players remove @s[tag=canbuy] gold 9
+execute as @s[tag=!canbuy] at @s run function lib:sounds/error
+execute as @s[tag=canbuy] at @s run function lib:sounds/levelup
+execute as @s[tag=canbuy] run function item:shop/refresh_gold
+tag @s remove canbuy

+ 1 - 0
data/item/functions/shop/check.mcfunction

@@ -18,6 +18,7 @@ execute if score @s buy_trigger matches 18 if score $state mem matches 0 run fun
 execute if score @s buy_trigger matches 19 if score $state mem matches 0 run function item:shop/buy_firework
 execute if score @s buy_trigger matches 20 if score $state mem matches 0 run function item:shop/buy_bgm
 execute if score @s buy_trigger matches 21 if score $state mem matches 0 run function item:shop/buy_pig
+execute if score @s buy_trigger matches 999 if score $state mem matches 0 run function item:shop/buy_dice
 execute if score @s buy_trigger matches 114514 if score $state mem matches 0 run function item:shop/buy_easter_egg
 scoreboard players set @s buy_trigger 0
 execute if score $state mem matches 0 run scoreboard players enable @s buy_trigger

+ 5 - 0
data/item/functions/shop/special_dice.mcfunction

@@ -0,0 +1,5 @@
+# 跟老板玩骰子
+function lib:roll_dice/d20
+scoreboard players operation @s temp = $random mem
+execute as @e[type=piglin,tag=shop_piglin_11,tag=lobby_entity] run function lib:roll_dice/d20
+function lib:roll_dice/show_result

+ 2 - 2
data/lib/functions/roll_dice/d20.mcfunction

@@ -2,6 +2,6 @@ scoreboard players set $random_min mem 1
 scoreboard players set $random_max mem 20
 function lib:random
 execute if score $random mem matches 20 run tellraw @a [{"text":">> ","color":"green","bold":true},{"selector":"@s","color":"gold","bold":false},{"text":"扔了个二十面幸运骰,掷出了D20=","color":"white","bold":false},{"score": {"name": "$random","objective": "mem"},"color":"gold"},{"text":",大成功!","color":"white"}]
-execute if score $random mem matches 11..19 run tellraw @a [{"text":">> ","color":"green","bold":true},{"selector":"@s","color":"gold","bold":false},{"text":"扔了个二十面幸运骰,掷出了D20=","color":"white","bold":false},{"score": {"name": "$random","objective": "mem"},"color":"dark_green"},{"text":",还不错哟!","color":"white"}]
-execute if score $random mem matches 2..10 run tellraw @a [{"text":">> ","color":"green","bold":true},{"selector":"@s","color":"gold","bold":false},{"text":"扔了个二十面幸运骰,掷出了D20=","color":"white","bold":false},{"score": {"name": "$random","objective": "mem"},"color":"dark_red"},{"text":",有点黑哟!","color":"white"}]
+execute if score $random mem matches 11..19 run tellraw @a [{"text":">> ","color":"green","bold":true},{"selector":"@s","color":"gold","bold":false},{"text":"扔了个二十面幸运骰,掷出了D20=","color":"white","bold":false},{"score": {"name": "$random","objective": "mem"},"color":"dark_green"},{"text":"!","color":"white"}]
+execute if score $random mem matches 2..10 run tellraw @a [{"text":">> ","color":"green","bold":true},{"selector":"@s","color":"gold","bold":false},{"text":"扔了个二十面幸运骰,掷出了D20=","color":"white","bold":false},{"score": {"name": "$random","objective": "mem"},"color":"dark_red"},{"text":"!","color":"white"}]
 execute if score $random mem matches 1 run tellraw @a [{"text":">> ","color":"green","bold":true},{"selector":"@s","color":"gold","bold":false},{"text":"扔了个二十面幸运骰,掷出了D20=","color":"white","bold":false},{"score": {"name": "$random","objective": "mem"},"color":"dark_purple"},{"text":",大失败!","color":"white"}]

+ 3 - 0
data/lib/functions/roll_dice/draw.mcfunction

@@ -0,0 +1,3 @@
+scoreboard players add @s gold 9
+function item:shop/refresh_gold
+tag @a remove self

+ 2 - 0
data/lib/functions/roll_dice/lose.mcfunction

@@ -0,0 +1,2 @@
+# 无事发生
+tag @a remove self

+ 29 - 0
data/lib/functions/roll_dice/show_result.mcfunction

@@ -0,0 +1,29 @@
+# 老板大成功,玩家非大成功/玩家大失败,老板非大失败:玩家失去所有金粒,被丢出赌博房
+execute if score $random mem matches 20 if score @s temp matches 1 run tellraw @s ["",{"text":">> ","color":"dark_purple","bold":true},"老板丢出了 ",{"text":"大成功","color":"dark_purple","bold":true}," ,你丢出了 ",{"text":"大失败","color":"dark_purple","bold":true}," ,你是超级非酋,你失去了所有金粒,被丢出了赌博房!"]
+execute if score $random mem matches 20 if score @s temp matches 2..19 run tellraw @s ["",{"text":">> ","color":"dark_purple","bold":true},"老板丢出了 ",{"text":"大成功","color":"dark_purple","bold":true}," ,你失去了所有金粒,被丢出了赌博房!"]
+execute if score $random mem matches 2..19 if score @s temp matches 1 run tellraw @s ["",{"text":">> ","color":"dark_purple","bold":true},"你丢出了 ",{"text":"大失败","color":"dark_purple","bold":true}," ,你失去了所有金粒,被丢出了赌博房!"]
+
+execute if score $random mem matches 20 if score @s temp matches 1..19 run function lib:roll_dice/super_lose
+execute if score $random mem matches 2..19 if score @s temp matches 1 run function lib:roll_dice/super_lose
+
+# 玩家大成功,老板非大成功/老板大失败,玩家非大失败:玩家获得3金块
+execute if score $random mem matches 1 if score @s temp matches 20 run tellraw @s ["",{"text":">> ","color":"gold","bold":true},"你丢出了 ",{"text":"大成功","color":"gold","bold":true}," ,老板丢出了 ",{"text":"大失败","color":"gold","bold":true}," ,你是超级欧皇,你获得了 ",{"text":"3金块","color":"gold","bold":true} ," !"]
+execute if score $random mem matches 2..19 if score @s temp matches 20 run tellraw @s ["",{"text":">> ","color":"gold","bold":true},"你丢出了 ",{"text":"大成功","color":"gold","bold":true}," ,你获得了 ",{"text":"3金块","color":"gold","bold":true} ," !"]
+execute if score $random mem matches 1 if score @s temp matches 2..19 run tellraw @s ["",{"text":">> ","color":"gold","bold":true},"老板丢出了 ",{"text":"大失败","color":"gold","bold":true}," ,你获得了 ",{"text":"3金块","color":"gold","bold":true} ," !"]
+
+execute if score $random mem matches 1 if score @s temp matches 2..20 run function lib:roll_dice/super_win
+execute if score $random mem matches 2..19 if score @s temp matches 20 run function lib:roll_dice/super_win
+
+# 老板比玩家大:无事发生
+execute if score $random mem matches 2..19 if score @s temp matches 2..19 if score $random mem > @s temp run tellraw @s ["",{"text":">> ","color":"dark_red","bold":true},"老板的点数比你大,你输了,你失去了 ",{"text":"1金锭","color":"dark_red","bold":true} ," !"]
+execute if score $random mem matches 2..19 if score @s temp matches 2..19 if score $random mem > @s temp run function lib:roll_dice/lose
+
+# 玩家比老板大:获得18金粒
+execute if score $random mem matches 2..19 if score @s temp matches 2..19 if score $random mem < @s temp run tellraw @s ["",{"text":">> ","color":"dark_green","bold":true},"你的点数比老板大,你赢了,你获得了",{"text":"1金锭","color":"dark_green","bold":true} ," !"]
+execute if score $random mem matches 2..19 if score @s temp matches 2..19 if score $random mem < @s temp run function lib:roll_dice/win
+
+# 老板和玩家一样大:玩家获得9金粒
+execute if score $random mem matches 20 if score @s temp matches 20 run tellraw @s ["",{"text":">> ","color":"green","bold":true},"你和老板一样欧,你们平局了,你拿回了 ",{"text":"1金锭","color":"green","bold":true} ," !"]
+execute if score $random mem matches 2..19 if score @s temp matches 2..19 if score $random mem = @s temp run tellraw @s ["",{"text":">> ","color":"green","bold":true},"你的点数和老板一样大,你们平局了,你拿回了 ",{"text":"1金锭","color":"green","bold":true} ," !"]
+execute if score $random mem matches 1 if score @s temp matches 1 run tellraw @s ["",{"text":">> ","color":"green","bold":true},"你和老板一样非,你们平局了,你拿回了 ",{"text":"1金锭","color":"green","bold":true} ," !"]
+execute if score $random mem = @s temp run function lib:roll_dice/draw

+ 6 - 0
data/lib/functions/roll_dice/super_lose.mcfunction

@@ -0,0 +1,6 @@
+scoreboard players set @s gold 0
+function item:shop/refresh_gold
+tag @a remove self
+tag @s add self
+tellraw @a[tag=!self] ["",{"text":">> ","color":"red","bold":true},{"selector": "@s","color":"red"}," 非到了一个境界,倾家荡产,被老板丢出了赌博房!"]
+tp @s 20 23 -58

+ 5 - 0
data/lib/functions/roll_dice/super_win.mcfunction

@@ -0,0 +1,5 @@
+scoreboard players add @s gold 243
+function item:shop/refresh_gold
+tag @a remove self
+tag @s add self
+tellraw @a[tag=!self] ["",{"text":">> ","color":"gold","bold":true},{"selector": "@s","color":"gold"}," 欧到了一个境界,从老板那赢得了3金块!"]

+ 3 - 0
data/lib/functions/roll_dice/win.mcfunction

@@ -0,0 +1,3 @@
+scoreboard players add @s gold 18
+function item:shop/refresh_gold
+tag @a remove self

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

@@ -9,7 +9,9 @@ execute unless entity @e[type=piglin,tag=shop_piglin_7,tag=lobby_entity] run sum
 execute unless entity @e[type=piglin,tag=shop_piglin_8,tag=lobby_entity] run summon piglin 11 9 -62 {Tags:["lobby_entity","shop_piglin_8"],PersistenceRequired:1b,IsImmuneToZombification:1b,CannotHunt:1b,HandItems:[{id:"enchanted_golden_apple",Count:1b},{}],HandDropChances:[0.0f,0.0f]}
 execute unless entity @e[type=piglin,tag=shop_piglin_9,tag=lobby_entity] run summon piglin 5 9 -58 {Tags:["lobby_entity","shop_piglin_9"],PersistenceRequired:1b,IsImmuneToZombification:1b,CannotHunt:1b,HandItems:[{id:"potion",Count:1b,tag:{CustomPotionColor:9913400}},{}],HandDropChances:[0.0f,0.0f]}
 execute unless entity @e[type=piglin,tag=shop_piglin_10,tag=lobby_entity] run summon piglin 0 8 -55 {Tags:["lobby_entity","shop_piglin_10"],PersistenceRequired:1b,IsImmuneToZombification:1b,CannotHunt:1b,HandItems:[{id:"bow",Count:1b},{}],HandDropChances:[0.0f,0.0f]}
-execute unless entity @e[type=piglin,tag=shop_piglin_11,tag=lobby_entity] run summon minecart 4 47 -77 {Tags:["lobby_entity"],Passengers:[{id:"minecraft:piglin",Tags:["lobby_entity","shop_piglin_11"],CustomName:'{"text":"LTCat"}',ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"LTCat"}}],ArmorDropChances:[0.0f,0.0f,0.0f,0.0f],PersistenceRequired:1b,IsImmuneToZombification:1b,CannotHunt:1b,HandItems:[{id:"gold_block",Count:1b},{}],HandDropChances:[0.0f,0.0f]}]}
+execute unless entity @e[type=piglin,tag=shop_piglin_11,tag=lobby_entity] run kill @e[type=minecart,tag=lobby_entity]
+execute unless entity @e[type=minecart,tag=lobby_entity] run kill @e[type=piglin,tag=lobby_entity,tag=shop_piglin_11]
+execute unless entity @e[type=piglin,tag=shop_piglin_11,tag=lobby_entity] run summon minecart 4 47 -77 {Tags:["lobby_entity"],Passengers:[{id:"minecraft:piglin",Tags:["lobby_entity","shop_piglin_11"],CustomName:'{"text":"老板"}',ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"HerobrineXia"}}],ArmorDropChances:[0.0f,0.0f,0.0f,0.0f],PersistenceRequired:1b,IsImmuneToZombification:1b,CannotHunt:1b,HandItems:[{id:"gold_block",Count:1b},{}],HandDropChances:[0.0f,0.0f]}]}
 # execute unless entity @e[type=piglin,tag=shop_piglin_4,tag=lobby_entity] run summon piglin 9 10 -36 {Tags:["lobby_entity","shop_piglin_4"],PersistenceRequired:1b,IsImmuneToZombification:1b,CannotHunt:1b,HandItems:[{id:"orange_dye",Count:1b},{}],HandDropChances:[0.0f,0.0f]}
 # execute unless entity @e[type=piglin,tag=shop_piglin_4,tag=lobby_entity] run summon piglin 9 10 -36 {Tags:["lobby_entity","shop_piglin_4"],PersistenceRequired:1b,IsImmuneToZombification:1b,CannotHunt:1b,HandItems:[{id:"orange_dye",Count:1b},{}],HandDropChances:[0.0f,0.0f]}
 # execute unless entity @e[type=piglin,tag=shop_piglin_4,tag=lobby_entity] run summon piglin 9 10 -36 {Tags:["lobby_entity","shop_piglin_4"],PersistenceRequired:1b,IsImmuneToZombification:1b,CannotHunt:1b,HandItems:[{id:"orange_dye",Count:1b},{}],HandDropChances:[0.0f,0.0f]}