其原理为
读取字库召唤出来的同音字纸条,纸条上每个盔甲架都代表着一个字,模块的读取长度为10个字。那么我们就应该要注意一点,字在多于十个的时候我们要提供翻页功能。但是我们不能翻的太过头,否则模块读取不到字。
那么我们就需要探测这个纸条是否已经到了头,那么我们就要对超出的部分进行探测,一旦没有超出的部分,那就代表着已经翻到了头,这时候就需要消除掉那处的点击事件,也就是换一条指令。(虽然别的办法也行,不过这样最简单粗暴)
/scoreboard players set l end 0
/testfor @e[0,4,0,dz=-100]
/scoreboard players set l end 1 (con模式)
这是一组探测是否能够向左翻的指令,向右的指令结构相同。
/scoreboard players test r end 1 1
/scoreboard players test l end 1 1 (con模式)
/tellraw (con模式)
这里是一个探测的例子,用于探测指令状态。
由于左边和右边各有两种可能,所以总共需要四条序列。不同的tellraw有着不同的翻页状态。
缓存模块
也就是中间那两行目标所在的位置,这个位置呢是非常有趣的。白桦木木板那一行所存储的是拼音,因为拼音最多的可能性为6个字母,所以这里也就有六个位置。橡木木板那一行所存储的是打出的字,作为一个中继缓存。按下enter可以将打好的字转移到指定的位置。
每行有一个属于自己的指针。拼音那一行由于需要读取数据所以有一排盔甲架。图中的命令方块仅为召唤盔甲架使用,不影响运行。
summon ArmorStand ~ ~ ~ {CustomName:"set",NoGravity:1,Marker:1}
这是一个样例的指令。
读取拼音内容的盔甲架名为set
拼音行指针名为check
文字行指针名为print
按键录入模块
首先上方有一排高频,用于读取拼音行的内容。
/scoreboard players set @e[name=set] end 0
/execute @e[name=a] ~-1 ~ ~ /scoreboard players set @e[r=0,name=set] end 1
/execute @e[name=b] ~-1 ~ ~ /scoreboard players set @e[r=0,name=set] end 2
…
/execute @e[name=y] ~-1 ~ ~ /scoreboard players set @e[r=0,name=set] end 25
/execute @e[name=z] ~-1 ~ ~ /scoreboard players set @e[r=0,name=set] end 26
A-Z对应数字1-26,空格对应数字0。
然后接下来是26排命令方块,对应各个字母,执行一次输入字母的工作。
以字母A为例。
/setblock ~1 ~ ~ air
/execute @e[name=check] ~ ~ ~ kill @e[r=0,name=!check]
/execute @e[name=check] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:"a",NoGravity:1,Marker:1}
/execute @e[name=check] ~ ~ ~ detect ~ ~-1 ~1 planks -1 /tp @e[name=check] ~ ~ ~1
清理一次本格内容以防bug。然后写下“A”,最后向右移动一次指针。
删除模块
和边上的录入模块工作原理很类似。
同样的,有删除拼音和删除文字两排指令。
/setblock ~1 ~ ~ air
/execute @e[name=print] ~ ~ ~ detect ~ ~-1 ~-1 planks -1 /tp @e[name=print] ~ ~ ~-1
/execute @e[name=print] ~ ~ ~ kill @e[r=0,name=!print]
kill @e[0,4,-1000,dz=2000,dx=0,dy=0,type=ArmorStand]
最后的kill指令是为了刷新候选字。
浏览量:1882022-07-19
浏览量:32021-05-31
浏览量:12021-05-29
浏览量:02021-05-17
浏览量:62021-04-23
浏览量:12019-10-13
《漫威终极逆转》即将登录国服!
《我的世界》15周年庆 游戏全平台优惠
《猩球崛起4》成该系列开局票房最高的一部作品
电影《神话》续篇《传说》定档7月12日
小米15系列来了!10月发布!
《无尽帝国》5月24日前免费领取!