xiaoyi20031010
本帖最后由 xiaoyi20031010 于 2016-4-23 21:38 编辑

探测一个人如果有一个叫“速度之星”的下界之星时,让他获得永久速度1,而且不清除此物品,死后依然保留
关键是,我要把它用在多人服务器里,所以@p啥的老是加给别人,怎么办

乙烯_中国
本帖最后由 乙烯_中国 于 2016-4-24 06:11 编辑

版本限定1.8-1.9
第一种情况
首先创建一个计分板
  1. /scoreboard objectives add test dummy
复制代码

然后按顺序高频执行以下命令
  1. execute @a ~ ~ ~ /stats entity @p set AffectedItems @p test
复制代码
  1. /scoreboard players add @a test 0
复制代码
  1. /execute @a ~ ~ ~ /clear @a minecraft:nether_star 0 0 {display:{Name:"速度之星"}}
复制代码
  1. /effect @a[score_test_min=1] speed 1 1 true
复制代码


扩展:如果需要两颗星星加上速度二的话,再加以下命令
  1. /effect @a[score_test_min=2] speed 1 2 true
复制代码
以此类推
但是这样的话会导致扔掉星星,速度buff也就同时消失,那么这时候我们需要修改一下。

第二种情况
创建两个计分板
  1. <div class="blockcode"><blockquote>/scoreboard objectives add test1 dummy
复制代码

然后高频以下指令
  1. execute @a ~ ~ ~ /stats entity @p set AffectedItems @p test
复制代码
  1. /scoreboard players add @a test 0
复制代码
  1. /scoreboard players add @a test1 0
复制代码
  1. /execute @a ~ ~ ~ /clear @a minecraft:nether_star 0 0 {display:{Name:"速度之星"}}
复制代码
  1. /execute @a ~ ~ ~ /scoreboard players operation @p test1 > @p test
复制代码
  1. /effect @a[score_test1_min=1] speed 1 1 true
复制代码
现在这样的指令串就可以做到只要拿到过星星,就有速度1的buff,无论是扔掉还是死亡。

还有疑问吗?






lzs1234
我接一下楼上乙烯
第三种:
单次执行:
/scoreboard objectives add speed dummy
/scoreboard players add @a speed 0
时钟接:
/scoreboard players set @a speed 1 {Inventory:[{id:"minecraft:nether_star",tag:{display:{Name:"速度之星"}}}]}
/effect @a[score_speed_min=1] speed 1 1 true


乙烯其实一直在想用clear探测,但是如果用Inventory,只要你不写Slot,其实效果一样。
不过既然楼主还说了死后仍然保留,可以再加上几条。
单次执行:
/scoreboard objectives add death deathCount
/scoreboard players add @a death 0
时钟接:
/execute @a[score_speed_min=1,score_death_min=1] ~ ~ ~ give @p nether_star 1 0 {display:{Name:"速度之星"}}
/scoreboard players set @a death 0

阿斯顿大法
用计分板会更方便点
/scoreboard objectives add jf dummy

        创建一个计分板
/scoreboard players set @a jf 1 {SelectedItem:{id:nether_star,tag:{display:{Name:速度之星}}}}      


检测玩家是否拿着名字为速度之星的下界之星,是就给这个人在叫js的计分板分数加一  (高频)
然后再输出就行啦
/effect @p[score_jf=1,score_jf_min=1] 1 2 0 true


给 叫js的计分板分数为1的玩家两秒速度1的隐藏粒子的药水效果    (高频)
别忘了还原计分
/scoreboard players set @a jf 0

给所有人在叫js的计分板的分数设置为0   (高频)
或者直接固定效果:
/give @p nether_star 1 0 {Unbreakable:1,AttributeModifiers:[{Operation:0,UUIDLeast:1,UUIDMost:1,Amount:0.05,AttributeName:generic.movementSpeed,Name:Attack}],display:{Name:速度之星},ench:[{id:233,lvl:1}]}



给予最近玩家一个拿着就会有速度加成的叫速度之星的下界之星(有附魔光环)

码了半天...

阿斯顿大法
阿斯顿大法 发表于 2016-4-24 14:12
用计分板会更方便点

        创建一个计分板

至于死亡不清除的话多人建议直接用死亡不掉落,如果再多加检测指令可能会造成存档卡顿命令主体建议建造在出生点区域(出生点区域会一直保持刷新,其他地方区块卸载后就没效果了)
/gamerule keepInventory true
死亡不掉落



第一页 上一页 下一页 最后一页