精華區beta mud_sanc 關於我們 聯絡資訊
【 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) --==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--