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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP