本帖最后由 305822437 于 2018-2-26 17:49 编辑
进行检测
复制代码用于模拟潜行加分
关于检测玩家是否结束潜行
作为萌新可能写的不太好,请见谅.请问还有没有更好的解决方法?
fill高频复制代码
- scoreboard objectives add Ram dummy
- scoreboard objectives add M dummy
- scoreboard objectives add sneakT stat.sneakTime
复制代码
- <font color="#ff0000">fill ~ ~-1 ~ ~ ~-1 ~-2 redstone_block
- fill ~ ~1 ~ ~ ~1 ~-2 air</font>
复制代码
- scoreboard players add @a[score_sneakT_min=1] M 1
- scoreboard players operation @a[score_Ram_min=0] Ram = @a[score_Ram_min=0] sneakT
- scoreboard players operation @a Ram -= @a M
- scoreboard players set @a[score_Ram=-1] M -1
解析:
- scoreboard players add @a[score_sneakT_min=1] M 1
复制代码
- scoreboard players operation @a[score_Ram_min=0] Ram = @a[score_Ram_min=0] sneakT
Ram作为临时存储器
复制代码
- scoreboard players operation @a Ram -= @a M
不停地比较Ram[sneakT]与模拟潜行的大小,判断潜行是否结束
复制代码
- <font color="black">scoreboard players set @a[score_Ram=-1] M -1</font>
[增强容错]
复制代码
- testfor @a[score_Ram=-1]
- scoreboard players test ……
输出
复制代码
- scoreboard players set @a sneakT 0
归零
本帖最后由 305822437 于 2018-2-26 17:54 编辑
乱码修复好了,不过这排版简直不忍直视
乱码修复好了,不过这排版简直不忍直视
305822437 发表于 2018-2-26 16:22
输出那段好像乱码了
想了一天,脑袋疼
见谅后面的?请无视,不知道哪来的
本帖最后由 ⊙v⊙ 于 2018-2-26 17:19 编辑
/scoreboard objectives add ifsneak stat.sneakTime
/scoreboard objectives setdisplay sidebar ifsneak
下面这条紫cb高频
/scoreboard players set @a[score_ifsneak_min=1] ifsneak 0刚才没写完...
紫色cb后面接个绿cb,条件约束,用于给玩家+Tag
放另一个紫cb,检测ifsneak=0且有Tag的玩家,使其执行去Tag。后接一个条件绿。
只用到一个stat.sneakTime板,和一个Tag
3个cb和一个输出用的绿cb...
反正无论怎么想,你用dummy检测sneakTime还模拟,基本是多余的。
看后面的楼层...
好像看懂了...
/scoreboard objectives setdisplay sidebar ifsneak
下面这条紫cb高频
/scoreboard players set @a[score_ifsneak_min=1] ifsneak 0刚才没写完...
紫色cb后面接个绿cb,条件约束,用于给玩家+Tag
放另一个紫cb,检测ifsneak=0且有Tag的玩家,使其执行去Tag。后接一个条件绿。
只用到一个stat.sneakTime板,和一个Tag
3个cb和一个输出用的绿cb...
反正无论怎么想,你用dummy检测sneakTime还模拟,基本是多余的。
看后面的楼层...
⊙v⊙ 发表于 2018-2-26 16:47
M(dummy)=stat.sneakTime
Ram(dummy)=stat.sneakTime
M(dummy)-Ram(dummy)=0
嗯,归〇忘写了。
但是stat.sneakTime不会主动归0呀,必须主动归0为下一次检测做准备
但是主动归0就必须知道你有没有退出潜行
这几条命令的作用就在这
本帖最后由 305822437 于 2018-2-26 17:33 编辑
好像不行,试了下绿CB会不停的触发
⊙v⊙ 发表于 2018-2-26 16:47
好像看懂了...
/scoreboard objectives add ifsneak stat.sneakTime
/scoreboard objectives setdisplay si ...
⊙v⊙ 发表于 2018-2-26 16:47
好像看懂了...
/scoreboard objectives add ifsneak stat.sneakTime
/scoreboard objectives setdisplay si ...
但是这样不还是潜行中就有输出了吗,
/scoreboard players set @a[score_ifsneak_min=1] ifsneak 0
只要ifsneak≥1【在潜行中】。ifsneak就会在0、1不停的波动
给玩家+Tag还是相当与把未结束潜行的玩家涵括进去了呀
后面再检测几乎就无意义了呀
305822437 发表于 2018-2-25 23:34
但是这样不还是潜行中就有输出了吗,
/scoreboard players set @a[score_ifsneak_min=1] ifsneak 0
只要if ...
是吗...那就这样
if sneak>=1, tag add s
if sneak=0 tag=s, say 输出
if sneak=0 tag=s, tag remove s
set sneak 0
这个顺序...
写在function里吧,已经不会用cb了...
这次应没错了