作者twosheep0603 (两羊)
看板Minecraft
标题Re: [讨论] 关闭隐形药水的使用
时间Wed Dec 30 07:58:57 2015
※ 引述《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
如果发现哪里怪怪的话就对调矿车里的指令看看
这篇只分享解决问题的方法,很多东西都只是带过而已没有深究
如果有兴趣的话改天再来发篇专门的文章
另外我绝对不会说我好像有篇文章富奸超过一年了...(还敢讲
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.66.228
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Minecraft/M.1451433548.A.92E.html
1F:推 olys: 推推强大指令方块 12/30 09:13
2F:推 emptie: OP 破坏规则没什麽吧 OP本身就是破坏规则的存在了XD 12/30 09:45
3F:推 sakuraku: 但是这个指令是否OP也无法隐形呢? 12/30 12:40
以官方伺服器无任何模组的情况下
这些指令会造成隐形效果无法附在任何人身上所以也包含OP
至於其他第三方伺服器的OP隐形机制因为各家实现方式不同所以要一个个测试
不过OP能不能隐形其实好像不是那麽重要 你有一堆好棒棒的指令(?)
4F:推 error405: 专业推 12/30 12:44
5F:→ Nuaaukw: OP直接把自己改成观察者模式就行了? 12/30 12:47
6F:推 cheko: op的隐形跟药水的隐形状态是同一个值吗 12/30 13:43
7F:推 LPH66: OP的隐形? 如果在问观察者模式 (/gamemode 3) 的话 12/30 16:07
8F:→ LPH66: 虽然那也会隐形但也不能跟环境互动 12/30 16:08
9F:→ LPH66: 药水的隐形是你还能跟环境互动 12/30 16:08
10F:推 LPH66: 然後这些指令 1 2 也要定时执行, @a 是管不到没上线的人的 12/30 16:12
11F:→ LPH66: 另外既然用了指令方块, pre-1.9 的 fill clock 可以用来 12/30 16:14
12F:→ LPH66: 做连续触发, 这东西不会和普通的连闪器一样造成 lag 12/30 16:14
13F:→ LPH66: 啊, 1 不用, 1 就只要一次就好, 2 才要定时 check 加人 12/30 16:23
14F:推 mmis1000: 不如直接在喝隐形药水的人身上来个tnt,谁敢谁出事(x 12/30 18:00
1只要执行一次,2如果有新增玩家的话再更新就可以了当然也是可以连续触发
不过就要考虑到234三段指令执行的顺序会有一点点影响
另外pre-1.9用fill clock也是会造成不小的伺服器负担的
我自己是觉得使用15w35a之後新增的repeat跟chain功能会更乾脆一点
像上面的东西我只花了3颗指令方块就做完了XD
15F:推 nick5487: 插件的隐形哪个OP实测一下吗XD 12/30 18:21
16F:推 sakuraku: 若不是/gamemode 3的OP 是否就无法使用呀~? 12/30 20:51
17F:推 LPH66: 楼上你的问题可以详细解释一下吗? 12/30 22:27
18F:→ krepr: 直接/effect @a 14 0 加快闪不行吗 12/30 23:14
某种程度上当然是可以啦
只是使用记分板可以抓出偷喝隐形药水的坏小孩出来教训一下
例如送他30秒致盲或凋零之类的 直接送kill好像太狠了一点点(?)
19F:推 nick5487: 插件伺服器通常OP都会用essentials的vanish去隐身 12/30 23:15
20F:→ LPH66: 那种的话就要看插件了, 至少跟药水效果不同是确定的 12/30 23:51
21F:→ LPH66: 啊等等, 我查了一下, essentials 的 vanish 好像是靠药水 12/30 23:54
22F:→ LPH66: 效果, 那跟这个指令好像会冲突 12/30 23:54
23F:→ LPH66: 好吧, 我不那麽确定了...给有在用 essentials 的测测看好了 12/30 23:59
24F:推 olys: 直接把op从计分版中移除就好了 12/31 00:36
真是简单又乾脆的做法XD
※ 编辑: twosheep0603 (140.113.66.228), 12/31/2015 01:37:38
25F:→ sakuraku: 不好意思再问 请问直接输入指令就好吗? 01/01 19:05
26F:推 mauve: 好专业哦!! 01/02 12:37
27F:推 afune12369: 推专业! 01/02 13:06