※ 引述《sakuraku (weiwei)》之铭言:
: 如题
: 朋友架设的服务器一直有玩家喝隐形药水伤害其他优良市民
: 爬过文章后也没有看到如何取消隐形药水的功能或指令插件
: 想知道某些服务器是如何关闭隐形药水的权限的QQ
想说难得有题目可以当作指令练习,没想到意外的简单4行指令就解决了
下面可以用上色来对照指令跟说明之间的关系
由于目前并没有直接寻找身上有特定效果玩家的指令
所以必须借助功能强大但是不太好用的计分板scoreboard来达成
首先先建立一个计分板物件 i_see_you (名字可以随便取)
在游戏中输入指令1:
/scoreboard objectives add i_see_you dummy I see you
其中i_see_you 是这个计分板的名字
dummy 表示这个计分板的分数只能透过指令改变
I see you 是记分板显示的名称,不过这里不会用到
接着输入指令2:
/scoreboard players set @a i_see_you 0
这行指令会把所有的玩家加入这个记分板并设定分数为0
再来输入指令3:
/scoreboard players set @a i_see_you 1 {ActiveEffects:[{Id:14b}]}
稍微讲解一下
这行看起来有点复杂,其实也只比上一行多一串怪东西而已
{ActiveEffects:[{Id:14b}]}的功能是从所有玩家(@a)中
过滤出身上带有14号效果的玩家,而14号就是我们的隐形效果
也就是说,这一行指令的功能是将有隐形效果的玩家分数设为1
最后输入指令4:
/effect @a[score_i_see_you_min=1] 14 0
细讲会讲太多,直接整行指令翻译的结果是:
给予所有在i_see_you记分板上分数不小于1的玩家0秒的隐形效果
由于使用指令新增效果会覆蓋原有的效果且包含持续时间
所以不论原本的隐形效果还剩多少秒数都会强制结束
重复指令3.4就能达到禁用隐形药水的效果
如果服务器有开启指令方块的话
可以将指令3.4放在指令方块内就能简化操作
搭配定时电路就可以达到随时侦测的效果,不过很多服务器是禁止红石连闪的
OP带头破坏规矩可是很严重的事情要尽量避免>.0
可行的方案有采用指令方块矿车+触发铁轨像这样
http://i.imgur.com/2By5Rt8.png
一个放指令3,另一个放指令4就能搞定了
不过在放之前指令1.2要先照顺序下才能放3.4
如果发现哪里怪怪的话就对调矿车里的指令看看
这篇只分享解决问题的方法,很多东西都只是带过而已没有深究
如果有兴趣的话改天再来发篇专门的文章
另外我绝对不会说我好像有篇文章富奸超过一年了...(还敢讲