[心得] MushClient 抓取控制碼並修改的方法

看板mud_sanc (Sanctuary - 聖殿)作者 (hmml)時間12年前 (2013/06/12 01:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
  正在找有關 MiniWindow 的資料時,無意看到的東西,可以直 接讀取未處理的封包,所以能抓到控制碼。它用到這個函數:   OnPluginPacketReceived   從它那裡經過的內容,大概就是CTRL + ALT + F11所顯示的樣 式。因此連控制碼都能在函數中被匹配。然後就能先修改內容再讓 Mushclient解析。 所以應該能先把移位碼改成可見的,有記號可循的內容再輸出 ,然後再用它去做排版,會省很多工夫,也能少寫很多條觸發吧! =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- <?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" id="e9aa08a01c2ee15248ce4675" language="Lua" date_written="2013-06-11 22:41:55" requires="4.84" version="1.0" > </plugin> <!-- Get our standard constants --> <include name="constants.lua"/> <!-- Triggers --> <triggers> <trigger enabled="y" keep_evaluating="y" match="^.*$" regexp="y" script="OnPluginPacketReceived" send_to="12" sequence="100" > </trigger> </triggers> <!-- Script --> <script> <![CDATA[ -- 原本匹配用的行,目前未使用。 Tab_start_reg = rex.new("\\e\\[24;\\d+H") -- 在被分析前,就抓到封包的函數 function OnPluginPacketReceived (sText) -- 移位碼的格式:%c%[24;%d+H -- %c 代表所有控制字元,如ESC。 -- [24;%d+ 座標,即Y軸和X軸,Y軸是固定數,X軸不是。 -- H 定義這個移位碼的模式,游標的位置。 sText = string.gsub(sText,'(%c%[24;)(%d+)H',"∴%2∴") return sText end ]]> </script> </muclient> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 輸出結果會像這樣: ╔══════════════════════════════════════╗ ║           技能列表         ║ ╠══════════════════╦═══════════════════╣ ∴1∴║ 飄雲杖法(Fly-cloud wand) ∴32∴:9900∴39∴║ 淨化術(Cleanse) ∴72∴:99 ∴1∴║ 小醉拳(Drink fist) ∴32∴:9900∴39∴║ 騎士風斬法(Knight slash) ∴72∴ꄊ∴1∴║ *自創技能*(Myskill) ∴32∴:9900∴39∴║ 落日刀法(Sunset blade) ∴72∴: ∴1∴║ 短匕攻擊(Dagger) ∴32∴:9900∴39∴║ 百花棍法(Flower rod) ∴72∴:9900 ∴1∴║ 用筆技巧(Pen) ∴32∴:9900∴39∴║ 基本刀法(Blade) ∴72∴:9900 ∴1∴║ 焚城槍法(Burn-city lance) ∴32∴:9900∴39∴║ 基本鎚法(Hammer) ∴72∴: ∴1∴║ 細雪雲氣(Snow hands) ∴32∴:9900∴39∴║ 柔道(Judo) ∴72∴:9900 ∴1∴║ 燃燒之手(Burning hands) ∴32∴:9900∴39∴║ 基本鞭法(Whip) ∴72∴:9900 ∴1∴║ 劍道(Kendo) ∴32∴:9900∴39∴║ 龍爪手(Dragon-paw fist) ∴72∴:9900 ∴1∴║ 降龍二十八掌(Dragon fist) ∴32∴:9900∴39∴║ 基本棒法(Staff) ∴72∴:9 ∴1∴║ 迴槍刺擊(Return lance) ∴32∴:9900∴39∴║ 神射手(Shooter) ∴72∴:9900 ∴1∴║ 如來神掌(Zulai fist) ∴32∴:9900∴39∴║ 少林拳法(Soulin fist) ∴72∴: ∴1∴║ 飛砂走石(Sand hands) ∴32∴:9900∴39∴║ (Burnedge chapter) ∴7 ∴1∴║ 基本劍法(Sword) ∴32∴:9900∴39∴║ 霸王槍技(Overload lance) ∴72∴:99 ∴1∴║ 舞動之風(Cyclone hands) ∴32∴:9900∴39∴║ 黯然銷魂掌(Shadow fist) ∴7 ∴1∴║ 魔法飛彈(Magic missile) ∴32∴:9900∴39∴║ 武當劍法(Wudon slash) ∴72ꄊ∴1∴║ 空手博鬥(Barefist) ∴32∴:9900∴39∴║ 棍棒攻擊(Rod) ∴72∴:9900 ∴1∴║ 戰龍之斧(War-dragon axe) ∴32∴:9900∴39∴║ 用斧技巧(Axe) ∴72∴:9900 ∴1∴║ 基本弓術(Bow) ∴32∴:9900∴39∴║ 半月斬(Hafe blade) ∴72∴:9900 ∴1∴║ 打狗棒法(Pkdog rod) ∴32∴:9900∴39∴║ 基本杖法(Wand) ∴72∴:9900 ∴1∴║ 太極拳(Taichi fist) ∴32∴:9900∴39∴║ (Rainbow slash) ∴72ꄊ∴1∴║ 基本爪法(Claw) ∴32∴:9900∴39∴║ SM技巧(SM) ∴72∴:9900 ∴1∴║ 王者之路(King-road) ∴32∴:9900∴39∴║ 基本槍法(Lance) ∴72∴:9900 ∴1∴║ 舞燄之斧(Fire axe) ∴32∴:9900∴39∴║ 劍法(Water-lotus slash) ∴72 ∴1∴║ 電光擊掌(Electric hands) ∴32∴:9900∴39∴║ 騎士之魂(Knight heart) ∴7 ∴1∴║ 冒險者之心(Adventure heart) ∴32∴:7333∴39∴║ 加強殺傷力(Damage) ∴72 ∴1∴║ 騎乘駕馭(Ride skill) ∴32∴:4000∴39∴║ 重火槍之拳(Magnum_punch) ∴72ꄊ∴1∴║ 旋風拳(Wind fist) ∴32∴:2900∴39∴║ 碧雲掌(Greencloud fist) ∴72∴:2 ∴1∴║ 基本閃躲(Dodge) ∴32∴:2421∴39∴║ 武器招架(Parry) ∴72∴:2400 ∴1∴║ 阿邦流槍殺法(Abanlance) ∴32∴:2400∴39∴║ 槍訣(Lancemaster) ∴72∴:2 ∴1∴║ 斧訣(Axemaster) ∴32∴:2400∴39∴║ 紫雷斬(Lightning blade) ∴72∴:240 ∴1∴║ 狂怒斧斬(Furiousaxe) ∴32∴:2400∴39∴║ 騎風槍殺(Windlance) ∴72∴:24 ∴1∴║ 盾牌抵擋(Shield) ∴32∴:2400∴39∴║ 焚香劍訣(Burnperfume) ∴72∴:2400 ∴1∴║ 刀訣(Blademaster) ∴32∴:2400∴39∴║ 火焰槍法(Firelance) ∴72∴:2400 ∴1∴║ 四時劍法(4-season slash) ∴32∴:2000∴39∴║ 槍矛投擲(Chuck-lance) ∴72 ∴1∴║ 焚香之篇(Burnbloom canto) ∴32∴:2000∴39∴║ 劍訣(Swordmaster) ∴72∴ꄊ∴1∴║ 讀書識字(Literature) ∴32∴:1530∴39∴║ 領導作戰(Leadership) ∴72∴:1 ∴1∴║ 打狗棒訣(Pkdog rodmaster) ∴32∴:1002∴39∴║ 飛龍訣(Dragon-recipe) ∴7 ∴1∴║ 集氣連擊(Tissuell) ∴32∴:1000∴39∴║ 電光拳(Thunder fist) ∴72∴:100 ∴1∴║ 金鐘罩(Goldfield) ∴32∴:1000∴39∴║ 裂地戰斧(Earthaxe) ∴72∴:1000 金∴1∴║ 阿邦劍法(Avan slash) ∴32∴:1000∴39∴║ 火雲掌(Firecloud fist) ∴72∴ꄊ∴1∴║ 意念控制(Int control) ∴32∴:1000∴39∴║ 千翎手(Feather fist) ∴72∴: ∴1∴║ 重力衝擊(Earthquake) ∴32∴:1000∴39∴║ 寒冰掌(Colder fist) ∴72∴:10 ∴1∴║ 狂暴之吼(Violent-shout) ∴32∴:1000∴39∴║ 潛能激發(Talent-arouse) ∴7 ∴1∴║ 舞鳳訣(Phoenix-recipe) ∴32∴:1000∴39∴║ 氣功施放(Shutskill) ∴72∴: ∴1∴║ 修補術(Fixskill) ∴32∴:1000∴39∴║ 身體平衡(Body control) ∴72∴:100 ∴1∴║ 多重攻擊(Multi-attack) ∴32∴:1000∴39∴║ 大地命綱(Stone-force) ∴72∴ ∴1∴║ 時光操控術(Time control) ∴32∴: 998∴39∴║ 內功心法(Fister heart) ∴7 ∴1∴║ 龜派氣功(Kamekameha) ∴32∴: 900∴39∴║ 狂龍八斬法(Crazydragon blade) ∴1∴║ 打槍技巧(Gun) ∴32∴: 900∴39∴║ 大十字勳章(Bigcross) ∴72∴: 900 ∴1∴║ 琴樂之技(Harp) ∴32∴: 900∴39∴║ 土系法術(Earth spell) ∴72∴: 900 金∴1∴║ 騎乘衝刺(Ridespurt) ∴32∴: 900∴39∴║ 血腥必殺劍(Bloody-scraid) ∴72ꄊ∴1∴║ 旋風轉移(Cyclone-air) ∴32∴: 600∴39∴║ 激風鬥氣(Fighting-air) ∴72∴ ∴1∴║ 劍士之心(Slasher heart) ∴32∴: 600∴39∴║ 戰士之心(Fighter heart) ∴7 ∴1∴║ 刀者意志(Blade heart) ∴32∴: 528∴39∴║ 0(Hardskill) ∴72∴: 500 ∴1∴║ 犁田技巧(Heavry) ∴32∴: 500∴39∴║ 哈肯迪斯杜魯(Hakendisdulu) ∴72∴ꄊ∴1∴║ 易筋經(Egingin) ∴32∴: 400∴39∴║ 武器鑄造(Weaponmaker) ∴72∴: 300 ∴1∴║ 反擊(Counter) ∴32∴: 200∴39∴║ 乾坤大挪移(Handpower) ∴72∴: 200 ∴1∴║ 獨孤九劍(Nine-sword) ∴32∴: 200∴39∴║ 正義之心(Justice heart) ∴72∴ ∴1∴║ 賭技(Gamble) ∴32∴: 113∴39∴║ 信仰之心(Clerical heart) ∴72∴: 107 ∴1∴║ 魔力操控術(Magic heart) ∴32∴: 106∴39∴║ 天殺斧斬技(Sky-killer) ∴72 ∴1∴║ 四時合一(4->1 slash) ∴32∴: 101∴39∴║ 策馬千里(Rideto) ∴72∴: 100 ∴1∴║ 氣能轉換(Interchange) ∴32∴: 100∴39∴║ 陣法攻擊(Encasement) ∴72∴: ∴1∴║ 0(Falling_down) ∴32∴: 100∴39∴║ 靈力武器(Spiriten) ∴72∴: 100 ╠══╦═══════════════╩═══════════════════╣ help skill 技能英文名 可以看到技能的說明。 ║ ║ skill -g xxx  可以看到你所學技能中為 xxx 公會的技能。  ║ skill -stat xxx  可以看到你所學技能中有加 xxx 屬性的技能。  ║ ╚══╩═══════════════════════════════════╝ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 106.1.193.140
文章代碼(AID): #1HjsKVMa (mud_sanc)
文章代碼(AID): #1HjsKVMa (mud_sanc)