mud_sanc 板


LINE

  将换行判断由 MUSHclient 自行判断,改成用自订的规则判断, 之所以改成自定义,乃因 MUSHclient 无法判断换行的字元是双位元 的字还是单位元的字,导致换行常常换行换在字的中间,造成乱码。 而 Lua 本身有提供检查指定字元 ANSI 值的函数-string.byte,如 此便可以根据 ANSI 字位集亚洲规则(0 - 127 为单字元字集,128 以上为双字元字集的前缀字元)更弹性地判断换行正确位置应该是哪 里。在那个位置,先行插入"\n"即可。   这个修改,重要讯息检视视窗必须做好下列两项设定变更: 1.Wrap output at column number 不得为空白,要填上期望换行的数值。 2.Auto-Wrap to window size 取消勾选,否则它依然会造成乱码。   上列两项,滑鼠在输出视窗中点开右键功能表,选取: World Configuration...打开该输出视窗的组态设定页面,在左侧树状 目录中选取Output,上述第一项在页面最下方两个按钮的上方;第二项 在右侧勾选项列表中倒数第五项。 -==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==- <script> <![CDATA[ local conversion= { ['black'] = ANSI (30,22), ['maroon'] = ANSI (31,22), ['green'] = ANSI (32,22), ['olive'] = ANSI (33,22), ['navy'] = ANSI (34,22), ['purple'] = ANSI (35,22), ['teal'] = ANSI (36,22), ['silver'] = ANSI (37,22), --以下高亮 ['gray'] = ANSI (30,1), ['red'] = ANSI (31,1), ['lime'] = ANSI (32,1), ['yellow'] = ANSI (33,1), ['blue'] = ANSI (34,1), ['magenta'] = ANSI (35,1), ['cyan'] = ANSI (36,1), ['white'] = ANSI (37,1), } -- 前景 local BACKconversion= { ['black'] = ANSI (40), ['maroon'] = ANSI (41), ['green'] = ANSI (42), ['olive'] = ANSI (43), ['navy'] = ANSI (44), ['purple'] = ANSI (45), ['teal'] = ANSI (46), ['silver'] = ANSI (47), } --背景 chat_world = "sanc_chat_list" Listen_Player = 'hmml5' local first_time = true function color_chats (name, line, wildcards, styles) -- 试着找到 "chat_ world" local w = GetWorld (chat_world) -- get "chat" world -- 如果找不到,试着去打开它 if first_time and not w then local filename = GetInfo (67) .. chat_world .. ".mcl" Open (filename) w = GetWorld (chat_world) -- 再试一次 if not w then ColourNote ("white", "red", "无法打开指定的档案:" .. filename) first_time = false -- don't repeatedly show failure message end -- 找不到 end -- can't find world first time around if w then -- 如果存在,w就是存着'chat_world' ID值的变数。 message_wrap = w:GetOption('wrap_column') - 14 --换行长度,14是时间字段长度 if GetAlphaOption("player") == Listen_Player then --负责抓讯息的角色视窗 --时间,上方蓝色部份即是先减掉这段的长度 w:Simulate(ANSI (33, 40,1)..os.date (" %d ").. ANSI (32, 40,1)..os.date ("%H").. ANSI (36, 40,1)..os.date (":%M").. ANSI (32, 40,1).." >") for _, v in ipairs (styles) do Colour_Code = conversion[RGBColourToName (v.textcolour)].. BACKconversion[RGBColourToName (v.backcolour)] --如果字串长度小於设定的换行长度,就逐串减去。 if message_wrap >= string.len(v.text) then message_wrap = message_wrap - string.len(v.text) --减到换行长度小於字串长的时候 else --先检测换行所在的字元是双位元宽的字,还是单位元宽。 --是双位元的话,将换行字元插入前一个位置。 if string.byte (v.text,message_wrap) > 127 then v.text = string.sub(v.text,1,message_wrap-1)..'\n'.. string.sub(v.text,message_wrap) --再检测换行所在的前一字元是否为双位元宽的字。 --是双位元的话,将换行字元插入前一个位置。 elseif string.byte (v.text,message_wrap-1) > 127 then v.text = string.sub(v.text,1,message_wrap-2)..'\n'.. string.sub(v.text,message_wrap-1) end end w:Simulate(Colour_Code..v.text) --内容 end -- for each style run w:Simulate('\n') end -- ID end -- world found end -- function redirect ]]> </script> -==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==- --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.196.45 ※ 编辑: hmml 来自: 220.132.196.45 (12/08 01:30)
1F:→ hmml :待修理,还是有问题。 12/08 01:56







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP