如题,版本是1.13
本帖最后由 FHC红石 于 2019-6-21 16:07 编辑
原理来着此贴:一、村民:http://www.mcbbs.net/thread-474463-1-1.html
我把两个指令改成了1.13+的,剩下原理一样
检测玩家手中有指定物品,然后tp村民到玩家位置,玩家右键后计分板自动+1分,然后执行你想要的操作就行了
复制代码复制代码
原理来着此贴:一、村民:http://www.mcbbs.net/thread-474463-1-1.html
我把两个指令改成了1.13+的,剩下原理一样
检测玩家手中有指定物品,然后tp村民到玩家位置,玩家右键后计分板自动+1分,然后执行你想要的操作就行了
- /summon minecraft:villager ~ ~1.00 ~ {NoAI:1b,Silent:1b,Offers:{Recipes:[]},ActiveEffects:[{Id:14b,Duration:2147483647,ShowParticles:0b}]}
- /scoreboard objectives add villager minecraft.custom:minecraft.talked_to_villager
FHC红石 发表于 2019-6-21 16:05
原理来着此贴:一、村民:http://www.mcbbs.net/thread-474463-1-1.html
我把两个指令改成了1.13+的,剩下 ...
如果有多个道具需要的话咋办
怪蜀黍666 发表于 2019-6-21 16:26
如果有多个道具需要的话咋办
原理是一样的,只是检测的道具不一样,一个道具一个检测装置就行了,然后执行对应的指令
SPGoding 发表于 2019-6-21 16:53
用 @a[nbt={SelectedItem:{id:"minecraft:xxx",tag:{xxx:1b}}}] 选择器。
能不能请大佬详细的讲一下233
SPGoding 发表于 2019-6-21 18:27
有关右键的物品,我吐血推荐用胡萝卜钓竿,因为由于玩家运动是在客户端进行计算,村民位置很难把握。
# ...
唔..我似乎需要村民呢..
怪蜀黍666 发表于 2019-6-21 18:29
唔..我似乎需要村民呢..
唔..我似乎需要村民呢..
tp 村民到玩家位置真的对不准的…非要用的话,效果极差,我只随便扯几句。关于胡萝卜钓竿的用法我在分割线下面有更新,强烈推荐。
我就直接复制沙发 FHC红石 提的命令了
scoreboard objectives add talked minecraft.custom:minecraft.talked_to_villager
summon minecraft:villager ~ ~ ~ {Tags:["click_detecter"],NoAI:1b,Silent:1b,Offers:{Recipes:[]},ActiveEffects:[{Id:14b,Duration:2147483647,ShowParticles:0b}]}
把每刻执行的命令改成
(这样就只支持单人了,支持多人又要改)
execute as @p at @s run teleport @e[tag=click_detecter] ^ ^ ^1
execute as @p[scores={talked=1..},nbt={SelectedItem:{tag:{skill:1}}}] run say 我触发了技能 1
execute as @p[scores={talked=1..},nbt={SelectedItem:{tag:{skill:2}}}] run say 我触发了技能 2
scoreboard players reset * talked
这么做效果真的极差,拿胡萝卜钓竿就开心得不行了。
关于胡萝卜钓竿的另一种用法
红色是相对于原回答的改动
把它放到玩家的副手位置,然后主手放任何你喜欢的物品。
# 给两个触发不同技能的道具
# skill:1 和 skill:2 是自定义的,可以改别的
# 物品可以是任何东西,只要这些东西本身没有右键功能就可以
/give @s minecraft:diamond_helmet{skill:1,display:{Name:"\"技能 1\""}}
/give @s minecraft:diamond_sword{skill:2,display:{Name:"\"技能 2\""}}
# 创建用于检测右键的记分板
scoreboard objectives add click minecraft.used:minecraft.carrot_on_a_stick
# 每刻执行
execute as @a run replaceitem entity @s weapon.offhand minecraft:carrot_on_a_stick
execute as @a[scores={click=1..},nbt={SelectedItem:{tag:{skill:1}}}] run say 我触发了技能 1
execute as @a[scores={click=1..},nbt={SelectedItem:{tag:{skill:2}}}] run say 我触发了技能 2
scoreboard players reset * click