脚本写得很烂,各种意义上的很烂,求不要吐槽()
【指令脚本】兽语翻译器(兽音译者)
卡密撒麻……好强……
感觉会是非常有参考价值的脚本,非常感谢!
- 已编辑
经群友发现,在兽语译为中文时,如果一句话中同时存在兽语和正常语言,会报错
感觉后续更新可以更改成仅识别~
嗷
呜
啊
等我放假了一定要改(咕咕手册又变厚了)
新发现的bug,带有换行的内容会在第一行后全部乱码
Lily Black 咳,是的,换行没有做匹配,以后如果有时间了我再琢磨琢磨欢迎大佬提交pr(?)
- 已编辑
多米诺 发现了有意思的一点,兽语中大多数emoji是不识别的,但类似于这种编码较短的是能被搞定的。用相关网站看了下它的转换方法,确认是因为那些emoji超出了兽语的四位数限制。
于是就算用兽音译者翻译再由骰娘发出来也只能都是黑色菱形问号的那个字符了
另外我直接截取了其中转换成unicode四位数字的一段代码并输出,发现换行不匹配的原因完全是因为它 太 短 了
(顺便一提用电脑版的这位机子如果输入emoji的话转换后的输出固定是两个或者四个半角问号,不过这不重要)
那么事情就很简单了x直接在判定中加入这么一段就行
elseif string.len(charHexStr) == 1 then
charHexStr = "000" .. charHexStr
然后就搞定了
然后,那个……我……说实话我用不来git,除了下载Release之外完全没接触过。
(暴露了是个业余菜鸡的事实)
所以有什么问题直接在这里回复了
Lily Black 你干得好,干得好啊!!
多米诺 于是现在我可以安心拿兽语翻译器去色色了,多米诺你也干得好哇
我好了
用了非常粗暴的办法来检测错误,简单来说就是全部利用转换成unicode的函数转换后通过一个while循环逐字挑错
转换救我老命,本来是直接检测字符串的但是中英文字符串长度不同导致出问题,利用这个刚好能把长度统一
function isAouwa(str)
a = 1
b = str2hex(str)
while (a < #b) do
c = string.sub(b,a,a+3)
if (not(c=="554a" or c=="55f7" or c=="545c" or c=="007e")) then
return false
end
a = a + 4
end
return true
end
然后在兽译中(?)的函数里加入这个检测
function renhua(msg)
local detector = string.match(msg.fromMsg,"[%s]*(.-)[%s]*$",1)
b = isAouwa(detector)
if b then
return "{nick}说:\n"..hex2str(msg.fromMsg)
else
return "嗷呜?这可不像是兽语呢,你确定没讲错吗?"
end
end
Lily Black 噗哈哈哈,粗暴但有效,挺好的挺好的
感谢多米诺老师!!已经开始玩起来了,很开心!!
就是在游玩的过程中我这边好像有点问题,脚本识别错误的兽语以后,那行【嗷呜balabala】无法正常显示,会变成这样的东西:
不知道是我这边的框架问题(框架是OQ,先驱班底的新框架) ,还是怎么(手动黄豆扶额jpg)