┌──────────────────────────────────┐
│操作環境:MUSHclient 4.73(較舊版本不保證能夠正常運行)使用語言:Lua│
└──────────────────────────────────┘
以下部分內容參考自:http://www.gammon.com.au/mushclient/funwithtriggers.htm
在 MUSHclient 中的 Match pattern 有二種可供使用的格式:
(1) Normal match (一般)
(2) Regular expression (正規表示式、正則表達示)
第一種可以用來做一些簡單的觸發,但較實用的是第二種
下面對這二種觸發類型作個簡單的使用說明
============================== (1) Normal match ==============================
此種觸發以一個「*」符號一路用到底,直接舉例說明比較快,假設我想要在 heart 效果
消失時送出 say 你該補 heart xxx 囉!的訊息
Trigger: 你的信仰之心效果消失了。-- 將信仰之心以「*」取代
→ 你的*效果消失了。
Send: say 你該補 heart %1 囉!-- 此處的 %1 就是上面第一個也是唯一一個「*」符號
如此一來當你收到:你的戰士之心效果消失了。
就會送出:say 你該補 heart 戰士之心 囉!
但有時此類訊息前面會出現「> 」而影響觸發怎麼辦?
作法相同,在語句前再補一個「*」讓 Trigger 變成 → *你的*效果消失了。
Send 部分則要將 %1 改為 %2,因為他變成第二個「*」符號了
=========================== (2) Regular expression ===========================
按 Shift+Ctrl+8 打開觸發視窗,點擊下方的 Add... 按鈕,將你的觸發語句貼上,例如
你的技能,『少林拳法』進步了(673)!點擊 Convert To Regular Expression 此時你的
語句已經被轉換為 Regular expression 的格式,也就是:
^你的技能,『少林拳法』進步了\(673\)!$
而且右方的 ✓Regular expression 也自動勾選了,現在說明一下上述的符號意義:
「^」表示一行的開頭,如果你收到的訊息是 你說道:你的技能,『少林拳法』進步了
(673)!因為前頭多了「你說道:」所以不會觸發
「\」效果類似於 zMUD 中的「~」
「$」表示一行的結束,如果你收到的訊息是你的技能,『少林拳法』進步了(673)!嗎
(當然聖殿沒有上面那種訊息),因為最後多了個「嗎」所以不會觸發
還有一些常用的符號如下:
「.」匹配任何單個字完
「*」位於此符號前的"東西"有零個或多個,例:「.*」同 zMUD 中的「*~」匹配任意
數量的任何東西
「+」位於此符號前的"東西"有一個或多個,例:「氣功+波」符合的語句有「氣功波」
、「氣功功波」、「氣功功功功功波」等
「?」位於此符號前的"東西"有零個或一個,這個我沒用過
「\d」匹配數字
「\D」匹配非數字
「\s」匹配空白
「\S」匹配非空白
「\w」匹配英文字元
「\W」匹配非英文字元
◆ 以上面語句為範例,如果想要在少林拳法升級時自動重設 en 該如何做?
將語句改為 ^你的技能,『少林拳法』進步了\(.*00\)!$
或 ^你的技能,『少林拳法』進步了\(.+00\)!$
或 ^你的技能,『少林拳法』進步了\(\d+00\)!$
三者皆可,Send: 部分填入 en soulin fist,如此一來,每當少林拳法升到 100、
200、300 ……都會送出 en soulin fist 的指令
◆ 如果轉換出來的內容有亂碼怎麼辦?
例如像是 ☆☆☆ 戰 鬥 開 始 ☆☆☆
轉換完會變成 ^☆☆☆ 戰 鬥 跚} 始 ☆☆☆$
請不用在意,觸發仍然能夠正常運作,如果你覺得亂碼很礙眼,可以自行把亂碼部份
以上面提到的符號取代,例:刪掉 跚},以 .+ 或 .. 或 .* 等等取代皆可
◆ 與第一部份一樣,有時訊息前方會出現「> 」影響觸發該怎麼辦?
以上面為例,將語句修改為 ^[> ]*☆☆☆ 戰 鬥 .* 始 ☆☆☆$ 即可
[> ]* 代表在[]中的東西(> 和一個空白)出現了零或多個(「*」符號)
目前觸發簡單說明到這,有其他東西我想到再補吧!
有任何問題歡迎提出來討論,能幫的上忙的我就盡量吧~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.241.194.17