【 AddTriggerEx 】
格式:
AddTriggerEx(BSTR TriggerName,
BSTR MatchText,
BSTR ResponseText,
long Flags,
short Colour,
short Wildcard,
BSTR SoundFileName,
BSTR ScriptName,
short SendTo,
short Sequence
)
中文:
AddTriggerEx(觸發名稱, --可用""帶過。
匹配句,
指令內容,
觸發選項, -- 數值,不得省略或無字元。
匹配句新顏色, -- 數值,不得省略或無字元。
複製到剪貼簿的萬用字元匹配內容, --數值(0[不複製]-10),不得省略
音效檔名, --可用""帶過
腳本名稱, --可用""帶過
發送對象, --數值,不得省略或無字元。
匹配順序 --數值,不得省略或無字元。
)
說明:建立一個觸發,與 AddTrigger 的差別就是設定項更多。
觸發名稱可用""省略,不過如果之後還會用 DeleteTrigger 或
SetTriggerOption 之類的函數去改動內容,就必須要有名字。
當匹配句使用正則表示式(RegularExpression)時,符號中
的"\"會在MUSHclient建立觸發時被轉換,所以必須使用"\\"
。如:
*錢包裡共有 (\d+) 枚影特幣,沒有顯示的已裝備物品共 (\d+) 件。
直接用上列格式套入AddTriggerEx(AddTrigger 亦同),
屆時建立出來的匹配句將變成:
*錢包裡共有 (d+) 枚影特幣,沒有顯示的已裝備物品共 (d+) 件。
因此,正確寫法為:
*錢包裡共有 (\\d+) 枚影特幣,沒有顯示的已裝備物品共 (\\d+) 件。
指令內容中的"%"會被MUSHclient視為直接使用指定匹配文字內容,
所以必須使用"%%"。如:
在觸發
*錢包裡共有 (\\d+) 枚影特幣,沒有顯示的已裝備物品共 (\\d+) 件。
中命令內容裡使用 AddTriggerEx 去建立一個新觸發:
你技能中的賭技.+值是 (\\d+)/(\\d+).
這個觸發的命令,若使用:A,B = %1,%2。
原意是要取得技能值的子母兩數,但MUSHclient會認為玩家的意思是取
得影特幣的金額,和已裝備的件數。屆時A,B兩值就會是錯誤的數值。
因此,正確的命令寫法應為:
A,B = %%1,%%2。
觸發選項有以下:
Enabled = 1 (建立後即在啟用狀態。)
OmitFromLog = 2 (觸發器匹配的行不記錄在記錄檔中)
OmitFromOutput = 4 (觸發器匹配的行不顯示在輸出視窗中)
KeepEvaluating = 8 (保持被匹配行的有效性)
IgnoreCase = 16 (不區分大小寫)
RegularExpression = 32 (使用正則表達式)
ExpandVariables = 512 (展開匹配內容中的變數,如@line)
Replace = 1024 (取代匹配行到輸出視窗,這和 HyperLink 函數有些衝突)
LowercaseWildcard = 2048 (不清楚)
Temporary = 16384 (臨時觸發 - 不會被存到遊戲設定檔)
OneShot = 32768 (執行一次後就刪除)
要複選時,將項目的數值加總即可,或使用 bit.bor 轉換,如:
bit.bor (trigger_flag.Enabled,
trigger_flag.RegularExpression,
trigger_flag.Temporary,
trigger_flag.Replace,
trigger_flag.OneShot)
前方要加上"trigger_flag."。
替換顏色有:
NoChange = -1
Custom1 = 0
Custom2 = 1
Custom3 = 2
Custom4 = 3
Custom5 = 4
Custom6 = 5
Custom7 = 6
Custom8 = 7
Custom9 = 8
Custom10 = 9
Custom11 = 10
Custom12 = 11
Custom13 = 12
Custom14 = 13
Custom15 = 14
Custom16 = 15
CustomOther = 16
上列數值直接對應 Configuration 中 Custom Colour 的設定內容。
音效檔名:大概只有提示用途。
腳本:
寫在角色檔的觸發,腳本是指 Configuration 中 Scripts 項目,裡面的
External Script File 指定的 lua 檔,其中一個自訂函數(Function,
如果有的話),如果在 Plugin 裡,就是指那個 Plugin 裡的其中一個
Function。
發送對象:
0:World戏 遊戲
1:Command 命令列
2:Output输 輸出視窗
3:Status状 狀態列态栏
4:Notepad(new) 記事本(新建)
5:Notepad(append)记記事本(追加)
6:Log file 記錄檔
7:Notepad(replace) 記事本(替換)
8:World(speed delay walk)命令隊列
9:Variable 變數
10:Execute执 執行(近似於在命令列輸入命令)
11:Speedwalk 快速行走(把發送內容解析為快速行走)
12:Script脚 腳本(發送郅腳本解析器執行命令)
13:World(Immidiate) 立即發送(在命令隊列執行之前就發送到遊戲)
14:Script(after omit)
順序:決定相同匹配句的觸發匹配優先權。
範例:
--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--
AddTriggerEx("Temp",
[[你技能中的.+值是 (.+)/.+.$]],
[[SkV = %%1]],
32801, -1, 0, "", "", 12, 100)
--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--