模块:Pwd/doc

来自Limbo Wiki
< 模块:Pwd
Staf Irity讨论 | 贡献2022年12月10日 (六) 08:44的版本

这是模块:Pwd的文档页面

123
456
789
X0

qwertyuiop
asdfghjklX
zxcvbnm

不写教程了,自己去看模块的注释,我先爬了

简要教程(来自AtomTheory)

一、密码盘源代码

模块:Pwd的密码盘分为数字密码盘和字母密码盘,二者对应的最基础的源代码如下(未指定任何特殊按键,即为上方出现的密码盘):
数字密码盘:{{#invoke:pwd|get|Number|a}}
字母密码盘:{{#invoke:pwd|get|Word|b}}

目前已有使用的页面的密码盘通常都以以下源代码为基础,在其中添加元素而成:
{{#invoke:pwd|get|Word|class=def|2=w|2-10=def|3-8=def}}
(请注意,此处的“3-8=def”在有的地方“def”需要变成其他内容,具体在下方有提及)

每一个{{#invoke:pwd|get|Word|a}}对应一个键盘,密码盘包括多行此类代码

此处可以按照自己的需求加上指定按钮,只需要在其中加入相应指定内容(详见下方第二部分),用“|”隔开即可

二、指定按钮

以字母密码盘为例,在模块中,若需要指定正确密码为password,并且指定此步骤输入字母正确为r,错误为w。

  • 那么在第一步时密码盘就应该是这个样子:

{{#invoke:pwd|get|Word|class=def|2=w|2-10=def|3-8=def|1-10=r}}

此处的class=def指密码盘处于初始状态,“def”可以更改为其他任何文本内容
这里2-10对应的是“X”,即清空按钮;3-8对应的是退格按钮
“1-10=r”即指定第一行第十个按钮(p)对应r状态(相当于就是指定了一个TreeButton)
“2=w”即指定剩余所有没有被指定的按钮对应w状态

  • 假设第一步输入正确,第二部则是这个样子:

{{#invoke:pwd|get|Word|class=r|2=rw|2-10=def|3-8=def|2-1=rr|style=display:none;}}

此处,密码盘第一步正确(class=r)。此时若输入错误,为了让下一步退格可以回到此步骤而非被直接判错,指定错误状态为rw,相当于按照步骤顺序记录了不同步骤的正确情况,下一步时按退格可以回到r状态(3-8=r)。输入a正确,则a对应状态为rr。

  • 假设第一步输入错误,第二步则是这个样子:

{{#invoke:pwd|get|Word|class=w|2=ww|2-10=def|3-8=def|style=display:none;}}

此处的“style=display:none;”即指这行代码对应的键盘只有在密码盘处于w状态时才会展示,避免页面打开时此键盘错误地出现(页面打开时应当只有初始状态键盘显示)影响观感以及解密体验。
显然,此处由于第一步已经错误(因此密码盘已经处于w的状态,class=w),所以接下来除了退格和删除之外无论做什么都是错误的,故不需要指定特殊按钮,只需要指定“2=ww”即可

  • 假设前面均输入正确,最后一步则是这个样子:

{{#invoke:pwd|get|Word|class=rrrrrrr|2=wwwwwwww|2-10=def|3-8=rrrrrr|2-3=rrrrrrrr|style=display:none;}}

这里因为是最后一步,输入过后直接判定密码是否正确,故不论任何的含有错误字母的情况都视作全错处理更佳。

三、排版建议&其他

对于一般的只有一个密码的密码盘,建议按照如下排版顺序摆放(这里用def,w,r等代指处于不同状态的键盘):

 def
 
 w
 r

 ww
 rw
 rr
 
 www
 rww
 rrw
 rrr
 
 ……

参考:
金域的密码盘,含有两个6位字母密码,占用字节约3400
末日的幻想乡的密码盘,4位数字密码,占用字节不足1000