作者darkk6 (Mr. Pan)
看板Minecraft
标题Re: [讨论] 关闭隐形药水的使用
时间Sun Jan 3 23:19:19 2016
: 在游戏中输入指令1:
: /scoreboard objectives add i_see_you dummy I see you
: 接着输入指令2:
: /scoreboard players set @a i_see_you 0
: 再来输入指令3:
: /scoreboard players set @a i_see_you 1 {ActiveEffects:[{Id:14b}]}
: /effect @a[score_i_see_you_min=1] 14 0
※ 补充一下, t 大的方法在执行 /effect @a[score_i_see_you_min=1] 14 0
之前,可以加上这个,告知 op 哪些人有隐形:( 假设darkk6 是 op)
/tellraw darkk6
[ "",
{"selector":"@a[score_i_see_you_min=1]","color":"red"},
{"text":" 喝了隐形药水"}
]
之前有再研究 Command block (其实是玩过盘灵古域之後发现 Command 很有趣 XD)
想做个讨论和交流,同样是要达到相同的目的,我有另一个想法
先贴上图片,这边有三个 Command Block , 中间是比较器 (注意方向要对阿~)
http://imgur.com/AlwUMXP
我先直接写这三个 Command 的内容,再来解说和讨论
A : /testfor @a {ActiveEffects:[{Id:14b}]}
B : /effect @a 14 0
C : /blockdata ~
? ~
? ~
? {SuccessCount:0}
然後一样透过连闪器或矿车+铁轨触发 A 即可
我想到的是,因为要禁止所有人使用隐形效果,所以我想直接透过
/effect @a 14 0
直接将所有玩家的 14 号效果设为 0 秒 (隐形效果)
但不确定如果一直执行这个指令会不会造成甚麽问题,因此藉由 A 的 testfor 先测试
所有玩家中,是否有隐形效果状态的人。
底下是这三个 Command 的解说:
A : 用 testfor 侦测
所有拥有隐形效果的人
@a ==> 所有玩家
{ActiveEffects:[{Id:14b}]} ==> 拥有隐形效果的人
若侦测到,就会透过比较器送出红石讯号,藉此触发 B 和 C
B : 将所有玩家的隐形效果状态设为 0 秒 (这个同 t 大所述)
C : 将 A 命令方块的侦测资料重置
这边要稍微解释一下
~ 代表目前的座标 ( C 方块的座标),
後面跟的
? 代表相对位置
假设 C 的座标在 (1 , 2 , 3) <=== 按照 xyz 顺序
而 A 的座标在 ( 1 , 1 , 5 )
这边就要用 /blockdata ~ ~
-1 ~
2
代表 x 不变、 y 座标 -1 、 z 座标 +2
而 SuccessCount 则是当 testfor 指令有侦测到符合的资料时,
会将所有符合的数量记录在 SuccessCount,进而触发比较器,传送讯号
这边将其设为 0 就是将记录重置,因此比较器的讯号就会消失,以便下次侦测
如果要排除某人或者排除某群组的人,可以在 @a 的後面加上
@a[name!=darkk6] <=== 排除特定的人
或者先设定一个 scoreboard , 一样是 dummy , 假设名称是 is_op
大家都设为 0 , 在手动把所有 op 都设为 1,然後 @a 改成
@a[score_is_op=0] <=== 只对 is_op=0 的有作用
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.238.223.8
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Minecraft/M.1451834362.A.AA2.html
1F:→ haidai: 你看看你被M了吧(? 01/03 23:20
※ 编辑: darkk6 (36.238.223.8), 01/03/2016 23:55:51
2F:→ c60203: hahaha ㄩㄈㄈㄩ 01/04 00:05
3F:推 LPH66: SuccessCount 是个很有用的技巧, 玩指令方块的这招值得记下 01/04 02:06
4F:推 tst5381: selector有个team可以使用,建一个op用的team在名单管理 01/05 11:11
5F:→ tst5381: 上会比用dummy方便 01/05 11:14