如图:双击一个物品就可以选择职业(当然实现其他功能也可以)
那么这是怎么做到的呢。。。下面给出指令教程:
可能看了图很多人就明白了,其实物品栏中的物品是高频替换的,点击第一次会拿出一个物品,点击第二次就会把拿出的那个物品放回去,在放回去的瞬间物品会变成两个。所以只要探测玩家背包有两个此物品即可实现双击触发。
首先要创建计分板:
/scoreboard objectives add chick dummy
/scoreboard objectives add cd dummy
/scoreboard objectives add job dummy
然后循环替换物品栏并探测物品数量:
/scoreboard players set [url=home.php?mod=space&uid=315471]@P[/url] chick 2 {Inventory:[{id:"minecraft:arrow",Count:2b}]}
/replaceitem entity [url=home.php?mod=space&uid=311230]@A[/url] slot.container.1 minecraft:arrow 1 0 {display:{Name:"§b§l==§e双击选择职业§b§l==",Lore:[0:"§9§l【弓箭手】",1:"§a主动:补充箭矢",2:"§a冷却10秒",]},Unbreakable:1}
/scoreboard players set @a chick 3 {Inventory:[{id:"minecraft:ender_eye",Count:2b}]}
/replaceitem entity @a slot.container.2 minecraft:ender_eye 1 0 {display:{Name:"§b§l==§e双击选择职业§b§l==",Lore:[0:"§9§l【末影人】",1:"§a主动:末影珍珠",2:"§a冷却时间10秒",]},Unbreakable:1}
/scoreboard players set @a chick 4 {Inventory:[{id:"minecraft:fire_charge",Count:2b}]}
/replaceitem entity @a slot.container.3 minecraft:fire_charge 1 0 {display:{Name:"§b§l==§e双击选择职业§b§l==",Lore:[0:"§9§l【恶魂法师】",1:"§a被动:补充火元弹",2:"§a每2秒补充一颗,最多储存6颗",]},Unbreakable:1}
/scoreboard players set @a chick 1 {Inventory:[{id:"minecraft:golden_apple",Count:2b}]}
/replaceitem entity @a slot.container.0 minecraft:golden_apple 1 0 {display:{Name:"§b§l==§e双击选择职业§b§l==",Lore:[0:"§9§l【战士】",1:"§a主动:嗑金苹果",2:"§a冷却时间10秒",]},Unbreakable:1}
即把有2个金苹果的玩家在chick上设置为1分,2个弓箭的设置为2分,2个末影珍珠的设置为3分,两个火球的设置为4分。
这样就能做到双击物品设置相应分数了。
下面要给玩家一个选择成功的提示:
/execute @a[score_chick_min=1] ~ ~ ~ /scoreboard players operation @p[c=1] job = @p[c=1] chick
首先把刚刚设置成功的分数同步到另外一个计分板上(因为后面要把点击这个计分板清零)
scoreboard players set @a[score_chick_min=1] cd 1
把玩家在cd上的积分设置为1(后面有用)
然后给予相应分数的玩家提示,提示成功后清除分数:
tellraw @p[score_chick_min=1,score_chick=1] {"text":"","extra":[{"text":"成功选择职业 战士","bold":"true","color":"yellow"}]}
tellraw @p[score_chick_min=2,score_chick=2] {"text":"","extra":[{"text":"成功选择职业 弓箭手","bold":"true","color":"yellow"}]}
tellraw @p[score_chick_min=3,score_chick=3] {"text":"","extra":[{"text":"成功选择职业 末影人","bold":"true","color":"yellow"}]}
tellraw @p[score_chick_min=4,score_chick=4] {"text":"","extra":[{"text":"成功选择职业 恶魂","bold":"true","color":"yellow"}]}
/scoreboard players set @a[score_chick_min=1] chick 0
到这里就可以做到双击物品触发提示了
但是双击过后,此时玩家物品栏还开着呀,为了良好的游戏体验,我们要双击选择成功后自动关闭物品栏。
mc有一个特性就是在地狱门中是无法打开物品栏和聊天框的。所以只要让玩家处在地狱门就好了。
scoreboard players add @a[score_cd_min=1] cd 1
execute @a[score_cd_min=2,score_cd=2] ~ ~ ~ /setblock ~ ~ ~ minecraft:portal 0 replace air
execute @a[score_cd_min=3,score_cd=3] ~ ~ ~ /setblock ~ ~ ~ minecraft:air 0 replace portal
scoreboard players set @a[score_cd_min=4] cd 0
上面已经吧选择成功的玩家cd积分设置为1了,之后给玩家的cd加分,先在玩家位置放置地狱门再清除地狱门,之后玩家cd归零。
这样就能实现自动关闭物品栏了。
缺点:双击的物品必须能叠加,铁剑一类不能手动叠加的不行。
注意:在某些版本双击选择时玩家不能处于创造模式,会瞬间被传送到地狱,实测1.11不会出现这种情况。