[心得] MushClient 抓取控制碼並修改的方法
正在找有關 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
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章