mud_sanc 板


LINE

一樣還是試作,不過大部份都能顯示的很好。 利用的函數是 OnPluginPacketReceived ,抓封包用的。這個函數是無差別 抓封包,在 MushClient 開始處理封包前,它會先抓過來,使用者可以先 MushClient 處理內容,弄成自己需要的再給 MushClient 處理。所以才有 可能處理移位碼。這個一定要用 plugin 去掛。 不過處理封包的跟處理畫面中的行不太一樣,封包不是只有一行內容,它的 上限是 999 個字元,所以資料量大的指令,如:skill、list、score... 很容易超過 999 上限,這時就會切成好幾個封包送過來,切的地方往往不 太好,可以說...蠻糟的... 當它切在一行的正中央,後半行的移位碼會得不到前半行的長度,因而算錯 該推移的長度。切在移位碼的正中央,這個判斷就會丟失。資料量要分好幾 個封包的時候,也不保證它中間的封包一定就是 999 字元塞滿(根本它隨 意),只能無差別處理。 所以這個試作有很多時間都在處理這個問題。 目前沒處理的,就是移位碼指定的位置,是有字元佔位的,聖殿有很多這類 作法:sc的3P視圖,就是用這種方法寫的,目前只完成堆疊,並沒有寫截掉 和取代的部份,所以3P永遠不會動。compare 的紅字絕對會在最左...等等。 party 的 3p 視圖,寫法跟 sc 是不同的。之前有wiz說寫法一樣,是他看錯 。party 的移位碼是用來截斷角色名字的,後方3P視圖裡一個移位碼也沒有 。顯示的寫法根本是不一樣的。 大概還是要重弄...因為截掉和取代非常難...這部份可能也是程式作者不願 支援移位碼的原因吧...基於他顯示內容的方法,處理這兩種很煩人。 下面這個就將就著用,反正 zMUD 也只有5.55可以將移位碼顯示得很完美而 已... --==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==-- <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE muclient> <!-- Saved on 星期二, 六月 11, 2013, 10:42 下午 --> <!-- MuClient version 4.84 --> <!-- Plugin "newtest" generated by Plugin Wizard --> <muclient> <plugin name="newtest_trial" id="69400abd9629952d36fbc92e" language="Lua" purpose="重寫中" date_written="2013-06-11 22:41:55" requires="4.84" version="1.0" > <description trim="y"> 重寫中... </description> </plugin> <!-- Get our standard constants --> <include name="constants.lua"/> <!-- Script --> <script> <![CDATA[ -- 在被分析前,就抓到封包的函數 function OnPluginPacketReceived (sText) --tend :前封包中無換行字元的行。 --sText:伺服器送來的封包。 if string.match(sText,'%*trigger%d+') == nil then --不到一行的略過 if tend ~= nil then --如果tend有內容 sText = tend..sText --把它接到目前封包的前頭 tend = nil --接著清空 end --tend nil? end --不到一行的略過END i,j =string.gsub(sText,'\n',"█") --檢查換行 if j >= 2 then --兩行以上 if string.find(sText,"[^\n]+$") then --找封包的末行 --將末行存入tend。 tend = string.sub(sText,string.find(sText,"[^\n]+$")) end --將封包的末行移除 sText = string.sub(sText,1,string.find(sText,"[^\n]+$")) --將封包尾端一些奇怪的字元移除。 sText = string.sub(sText,1,-2) --如果誤刪了換行,另行補上。 if string.find(sText,"[\n]",-1) == nil then sText = sText..'\n' end end --兩行以上END --到此為止是整頓封包,讓被腰斬的行恢復原狀。 --以下是移位碼處理。 if string.match(sText,'(%c%[24;)(%d+)H') ~= nil then --如果有移位碼 --把移位碼標記出來。 sText = string.gsub(sText,'(%c%[24;)(%d+)H',"∴%2∴") --刪除所有色碼,存到sText準備對照用。 sText2 = string.gsub(sText,'(%c%[%d*m)',"") sText2 = string.gsub(sText2,'(%c%[%d+;)(%d+)[m]',"") sText2 = string.gsub(sText2,'(%c%[%d+;)(%d+;%d+)[m]',"") --把sText2的內容一行一行讀出 for i in string.gmatch(sText2, "[^\n]+" ) do --從行首開始一個個找出改過的移位碼 for di,di2 in string.gmatch(i, "(∴(%d+)∴)" ) do --di = 移位碼全部格式 --di2 = 移位碼數值 i2,i3 = string.find(i,di) --移位碼位置 --移位碼的數值減去移位碼的位置,就是空格該補上的數量 al_len = di2-i2 --把移位碼置換成應該補上的空格字段(sText2) i = string.gsub(i,'∴(%d+)∴',string.rep(" ",al_len),1) --同時也將sText的移位碼同sText2般置換 sText = string.gsub(sText,'∴(%d+)∴',string.rep(" ",al_len),1) end --for match ∴(%d+)∴ end --for match \n end --不管封包尾端有沒有*[0m,無差別補上 sText = sText..string.char(0x1b)..'[0m' --送到MushClient 接手處理 return sText end ]]> </script> </muclient> --==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==-- --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 106.1.194.58
1F:推 elvrael :看不懂....不過還是要來推一下 XD 09/11 08:52
2F:→ laechan :你可以試試抓斷行碼(\n),將一段訊息先用斷行碼切成 n 09/11 09:54
3F:→ laechan :斷訊息,再各別處理其移位碼 09/11 09:55
4F:→ laechan :這樣要超過 999 應該很困難 09/11 09:55
5F:→ laechan :唔你好像就是這樣處理的, 呵呵 09/11 09:57







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