[問題] 請問有關mud觸發抓中文變數的問題..
打的有點長...其實我只是想問
是不是不能抓取句子裡出現的中文存到變數裡...?
有時候會收到王國頻道來的訊息
像是 【○○○王國】路人甲乙丙丁(id)﹕XXXX
我想問的是...
如果想要把這樣的句子中的id及他講的話XXXX存起來該怎麼做?
我試了好久都無法成功...我共試了三種方法 直到第三種方法才有反應...但是...
(註:我的zMud是4.01版的)
●方法一●
#TRIGGER {【○○○王國】(%1)~((%2)~)﹕(%3)}
{ignore ○○○王國來訊 %1 %2 說 %3}
[註:該mud有個設討厭鬼名單的指令ignore,可以當做存訊息(筆記)使用]
結果王國訊息來的時候這觸發沒有反應...
後來我想是不是要設變數才會有效?
就改成了
●方法二●
#var man 0
#var name 0
#var talk 0
#TRIGGER {【○○○王國】(%1)~((%2)~)﹕(%3)}
{#var man %1;#var name %2;#var talk %3;
ignore ○○○王國來訊 @man @name 說 @talk}
結果還是沒反應... orz
我不確定是不是因為下面兩個問題
1. 路人甲乙丙丁是中文變數不能設成(%1)...
2. XXXX有時候是中文,有時候有空格(空格的問題改成(%3 %4)可以解決?)...
後來我又試了另一個方法...
●方法三●
事先先設定好變數
#var man 0;#var name 0;#var talk 0;#var count 1
接著打開觸發頁面
第一個觸發輸入:
觸發句:【○○○王國】(%1)
命令:#var man %1
第二個觸發輸入:
觸發句:~((%1)~)﹕(%2)
命令:#var name %1;#var talk %2;ignore ○○○王國來訊 @man @name 說了 @talk
@count;#math count (@count+1)
(註:count變數單純為計數用 以免有同樣的人打同樣的訊息 ignore會顯示已儲存過了)
第一個觸發抓取中文名字存到man裡
第二個觸發抓取英文名字、和他講的話分別存至name、talk裡,然後送出ignore指令
測試結果如下...
> kingdom hmmmmQQQ
【○○○王國】路人甲(Xxyyzz)﹕hmmmmQQQ
Alias: @man 0
ignore ○○○王國來訊 0 Xxyyzz 說了 hmmmmQQQ 1
> 你把 ○○○王國來訊 0 Xxyyzz 說了 hmmmmQQQ 1 列入討厭鬼名單中。
> kingdom 測試中QQ
【○○○王國】路人甲(Xxyyzz)﹕測試中QQ
Alias: @man 0
Alias: @talk hmmmmQQQ
ignore ○○○王國來訊 0 Xxyyzz 說了 hmmmmQQQ 2
> 你把 ○○○王國來訊 0 Xxyyzz 說了 hmmmmQQQ 2 列入討厭鬼名單中。
嗯...是不是不能抓取句子裡出現的中文存到變數裡...?
(前後呼應XD)
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.134.68
※ 編輯: IM 來自: 112.104.134.68 (12/01 01:28)
→
12/01 02:37, , 1F
12/01 02:37, 1F
→
12/01 02:50, , 2F
12/01 02:50, 2F
推
12/01 13:16, , 3F
12/01 13:16, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):