本帖最后由 xiaoyi20031010 于 2016-4-23 21:38 编辑
探测一个人如果有一个叫“速度之星”的下界之星时,让他获得永久速度1,而且不清除此物品,死后依然保留
关键是,我要把它用在多人服务器里,所以@p啥的老是加给别人,怎么办
探测一个人如果有一个叫“速度之星”的下界之星时,让他获得永久速度1,而且不清除此物品,死后依然保留
关键是,我要把它用在多人服务器里,所以@p啥的老是加给别人,怎么办
本帖最后由 乙烯_中国 于 2016-4-24 06:11 编辑
版本限定1.8-1.9
第一种情况
首先创建一个计分板
复制代码
然后按顺序高频执行以下命令
复制代码复制代码复制代码复制代码
扩展:如果需要两颗星星加上速度二的话,再加以下命令
复制代码以此类推
但是这样的话会导致扔掉星星,速度buff也就同时消失,那么这时候我们需要修改一下。
第二种情况
创建两个计分板
复制代码
然后高频以下指令
复制代码复制代码复制代码复制代码复制代码复制代码现在这样的指令串就可以做到只要拿到过星星,就有速度1的buff,无论是扔掉还是死亡。
还有疑问吗?
版本限定1.8-1.9
第一种情况
首先创建一个计分板
- /scoreboard objectives add test dummy
然后按顺序高频执行以下命令
- execute @a ~ ~ ~ /stats entity @p set AffectedItems @p test
- /scoreboard players add @a test 0
- /execute @a ~ ~ ~ /clear @a minecraft:nether_star 0 0 {display:{Name:"速度之星"}}
- /effect @a[score_test_min=1] speed 1 1 true
扩展:如果需要两颗星星加上速度二的话,再加以下命令
- /effect @a[score_test_min=2] speed 1 2 true
但是这样的话会导致扔掉星星,速度buff也就同时消失,那么这时候我们需要修改一下。
第二种情况
创建两个计分板
- <div class="blockcode"><blockquote>/scoreboard objectives add test1 dummy
然后高频以下指令
- execute @a ~ ~ ~ /stats entity @p set AffectedItems @p test
- /scoreboard players add @a test 0
- /scoreboard players add @a test1 0
- /execute @a ~ ~ ~ /clear @a minecraft:nether_star 0 0 {display:{Name:"速度之星"}}
- /execute @a ~ ~ ~ /scoreboard players operation @p test1 > @p test
- /effect @a[score_test1_min=1] speed 1 1 true
还有疑问吗?
我接一下楼上乙烯
第三种:
单次执行:
/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 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
用计分板会更方便点
创建一个计分板
检测玩家是否拿着名字为速度之星的下界之星,是就给这个人在叫js的计分板分数加一 (高频)
然后再输出就行啦
给 叫js的计分板分数为1的玩家两秒速度1的隐藏粒子的药水效果 (高频)
别忘了还原计分
给所有人在叫js的计分板的分数设置为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
死亡不掉落