作者IM (理性討論。勿戰)
看板mud
標題[問題] 請問有關mud觸發抓中文變數的問題..
時間Sun Dec 1 01:14:24 2013
打的有點長...其實我只是想問
是不是不能抓取句子裡出現的中文存到變數裡...?
有時候會收到王國頻道來的訊息
像是 【○○○王國】
路人甲乙丙丁(
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)
1F:→ robrob99 :#TRIGGER {【○○○王國】(%x)~(%w~) 114.33.79.52 12/01 02:37
2F:→ robrob99 :#TRIGGER {王國】} {#cap kw} 就好 114.33.79.52 12/01 02:50
3F:推 nosod :先把zmud換成462 115.43.95.158 12/01 13:16