OP-yc 使用者說明: Version 0.99, Patch 0
[
主要差異 |
基本說明 |
命令介紹 |
變數組態 |
必踢名單 |
禁語設定 |
其他資訊 |
常用技巧
]
主要差異
本版 OP-yc 與上一版之主要差異在於
基本說明
OP-yc 是專為椰林 BBS 聊天室設計的機器人程式,本文件之用途為介詔 OP-yc 之使用方法及各項指令和參數。
使用者密碼
所有 OP-yc 之使用者,均需擁有使用者密碼,以方便 OP-yc 在接受指令時,除利用呼叫者的聊天室名稱 (name) 和椰林帳號 (ID) 來認證以外,另外再進行密碼的辨識。使用者密碼,將在本文其他部分,都以 <密碼> 來代表。
使用方式
OP-yc 使用椰林聊天室的訊息傳送功能 (/m),接受使用者的悄悄話。在接受傳送的訊息之後,進行使用者認證,然後執行工作。OP-yc 的命令格式為:
/m OP-yc <密碼> <命令> <子命令或參數> <參數> <參數> ...
例如以下的指令:
/m OP-yc abcd Set Welcome 0
如果是由使用者密碼為 abcd 的使用者下達的話,可將 OP-yc 的 Welcome 變數設定成 0。
命令介紹
OP-yc 的命令分為七大類,分別為:
| EdBuf |
|
編輯緩衝區之處理。 |
| Do |
|
要求 OP-yc 在聊天室說話或做動作。 |
| MDo |
|
要求 OP-yc 在聊天室說多句話或做多個動作。 |
| Get |
|
向 OP-yc 詢問內部之變數組態,必踢名單或禁語設定。 |
| Set |
|
設定 OP-yc 內部之變數組態。 |
| Add |
|
加入項目到必踢名單或禁語設定中。 |
| Del |
|
刪除必踢名單或禁語設定中之項目。 |
EdBuf
EdBuf 為「編輯緩衝區」。
因為椰林聊天室的輸入長度限制,使得很多功能都無法任意使用,因此有了 EdBuf 的設計。EdBuf 的目的,在於讓使用者可以用一致的方式,輸入各項超過長度限制的內容。使用者在本版本,有 9 個編輯緩衝區可以使用,除了核心使用者以外,其他使用者的緩衝區是共用的。
緩衝區的命令格式為:
/m OP-yc <密碼> EdBuf <子命令> <緩衝區編號(1-9)> <參數> ...
EdBuf 有四項子命令,表列如下:
Clear
Clear 是用來清除指定的緩衝區內容,使用方法如下:
/m OP-yc <密碼> EdBuf Clear <緩衝區編號(1-9)>
例如:
/m OP-yc <密碼> EdBuf Clear 4
將會清除該使用者的緩衝區 4。
App
App (Append) 是用來將內容附加到緩衝區之中,使用方法如下:
/m OP-yc <密碼> EdBuf Show <緩衝區編號(1-9)> <欲加至緩衝區的內容>
例如,連續下達這三行指令:
|
/m OP-yc <密碼> EdBuf Clear 9
|
|
/m OP-yc <密碼> EdBuf App 9 Hello
|
|
/m OP-yc <密碼> EdBuf App 9 , world!
|
將會清除該使用者的緩衝區 9,並將其內容變更為 "Hello, world!"。這裡必須要注意的一點,是內容前後的空格會被清掉,所以一定要有非空格字元,來限制加入內容的是哪些。
Show
Show 是用來顯示指定的緩衝區內容,使用方法如下:
/m OP-yc <密碼> EdBuf Show <緩衝區編號(1-9)>
例如:
/m OP-yc <密碼> EdBuf Show 2
將會清除該使用者的緩衝區 2。
GetCmd
GetCmd (Get Command) 可將 "固定命令" 轉移至指定的緩衝區中,使用方法如下:
/m OP-yc <密碼> EdBuf GetCmd <緩衝區編號(1-9)> <固定命令編號>
例如:
/m OP-yc <密碼> EdBuf GetCmd 8 1
將會把固定命令 1 複製到該使用者的緩衝區 8 中。請參考固定命令之說明。
FromGrt
FromGrt (To Greeting) 可將招呼語項目轉移至指定的緩衝區中,使用方法如下:
/m OP-yc <密碼> EdBuf FromGrt <緩衝區編號(1-9)> <招呼語編號>
例如:
/m OP-yc <密碼> EdBuf FromGrt 9 2
將會把招呼語 2 複製到該使用者的緩衝區 9 中。請參考招呼語之說明。
ToGrt
ToGrt (To Greeting) 可將緩衝區轉移至指定的招呼語項目中,使用方法如下:
/m OP-yc <密碼> EdBuf ToGrt <緩衝區編號(1-9)> <招呼語編號>
例如:
/m OP-yc <密碼> EdBuf ToGrt 9 3
將會把該使用者的緩衝區 9 複製到招呼語 3 中。請參考招呼語之說明。
ShowGrt
ShowGrt (Show Greeting) 可顯示指定或全部的招呼語,使用方法如下:
/m OP-yc <密碼> EdBuf ShowGrt <招呼語編號(1-9) 或 0 顯示全部>
例如:
/m OP-yc <密碼> EdBuf ShowGrt 3
就會顯示招呼語 3 。請參考招呼語之說明。
Do
Do 指令的用途非常簡單,就是要求 OP-yc 直接將後面的參數,輸入到聊天室系統中,就像是 OP-yc 自己在鍵盤上輸入一樣。Do 指令的使用方法是:
/m OP-yc <密碼> Do <說的話或做的事>
例如:
/m OP-yc <密碼> Do 您好,我是機器人!
OP-yc 就會在聊天室中,說出 "您好,我是機器人!" 這句話。或是
/m OP-yc <密碼> Do /a 大喊:大家好~~~
就會讓機器人做 "大喊:大家好~~~" 這個動作 (/a)。
MDo
MDo 的意思是 Multi-Do,就是一次要求 OP-yc 在聊天室進行多項行為。和 Do 最大不同的地方,是 MDo 後面接的指令,會經過各種處理,以達到各種需求。
既然要能夠一次執行多項行為,就要有個方法來讓機器人把後面接的指令分隔開來,因此,在這裡介紹的第一個字元是分號 (;)。OP-yc 會用 ; 來隔開多個指令,然後一項一項地進行處理。基於 MDo 後面接的指令有或沒有用分號隔開,可以分為兩大情形:
- 沒有分號在指令中
表示事實上只有一個指令,在此情形下,MDo 的命列格式為
/m OP-yc <密碼> MDo <說的話或做的事>
在這個情形下,OP-yc 做的事,原則上和使用 Do 指令一樣,但是差別在於,後面接的內容,會先經過下面會介紹的參數展開 ($<n>),緩衝區展開 (%<n>) ,固定命令展開 (&<n>),招呼語展開 (#<n>) 或亂數重複展開 (*<n1><n2><n3><內容>)的處理。因此,如果要借用這些展開處理來執行命令的話,就需要使用 MDo 命令。
- 有分號在指令中
表示有一個或多個指令,在此情形下,MDo 的命列格式為
/m OP-yc <密碼> MDo <給後面的指令使用的參數列>;<指令>;<指令>...
以 ; 將輸入分隔後,第一個部分和其後的部分是屬於不同的類別,第一個部分將被視為給後面的部分使用的參數列。這個參數列,將會以空格再被分開成為數個片段,編號為 1, 2, 3, ...。在後面的指令中,如果使用了 $<n>,就會進行參數展開。例如,如果第一個部分是
pA pB pC
的話,就是提供了後面的指令三個參數,分別是參數 1: pA,參數 2: pB和參數 3: pC。如果此時,我們事實上想要 pA pB 是一個參數,而 pC 是另一個 (也就是只有兩個參數,但第一個參數內含空格) 時,使用 == 可讓緊接在後的空格被視為非分隔字元。例如
pA== pB pC
的話,就是提供了後面的指令兩個參數,分別是參數 1: pA pB和參數 2: pC。
參數展開 ($<n>)
如果使用者在 MDo 的指令 (即除去參數列串以外的部分) 中,使用了 $<n> 的話,這些地方就會以下列的方式展開:
- $1.. $9
- 將使用者參數列中指定的參數,在此處展開。
- $0 或 $N
- 將 OP-yc 當時的聊天名稱,在此處展開。
- $R
- 將 OP-yc 當時所在的的聊天室名稱,在此處展開。
例如:這樣的指令,
/m OP-yc <密碼> MDo yc;我是在 $R 聊天室中的 $N,$1 您好!
就會讓 OP-yc 說出 "我是在 414r 聊天室中的 OP-yc,yc 您好!",因為此時的代換為:$1=yc, $N=OP-yc, $R=414r。
緩衝區展開 (%<n>)
如果使用者在 MDo 的指令 (即除去參數列串以外的部分) 中,使用了 %<n> 的話,這些地方就會將使用者自己的編輯緩衝區 (EdBuf) 在該處展開,並繼續處理。
假設使用者 EdBuf 7 中的內容,就是 "我是在 $R 聊天室中的 $N,$1 您好!",那麼下面的指令,
/m OP-yc <密碼> MDo yc;%7
就會先展開成
/m OP-yc <密碼> MDo yc;我是在 $R 聊天室中的 $N,$1 您好!
然後一樣讓 OP-yc 說出 "我是在 414r 聊天室中的 OP-yc,yc 您好!"。
固定命令展開 (&<n>)
原則上和緩衝區展開相同,只不過展開的內容是 "固定命令" 而非使用者的編輯緩衝區。請參考固定命令之說明。
招呼語展開 (#<n>)
原則上也和緩衝區展開相同,只不過展開的內容是招呼語而非使用者的編輯緩衝區。請參考招呼語之說明。
亂數重複展開 (*<n1><n2><n3><內容>)
如果使用者在 MDo 的指令 (即除去參數列串以外的部分) 中,使用了 *<n1><n2><n3><內容> 的話,OP-yc 就會先計算
<N> = <n1> x 10 + <n2>
然後選定一個 <1>... <N> 之間的亂數,比方 <M>,然後在該處重複 <M> 次,從其後之內容中,取出的長度為 <n3> 的字串。
例如:這樣的指令,
/m OP-yc <密碼> MDo yc;$1, What*031zup!
就會讓 OP-yc 說出 "yc, Whatzup!", "yc, Whatzzup!", "yc, Whatzzzup!" 其中一句。
逸出字元處理
由於以上的功能,使得 ;$%&#* 變成特殊字元。如果使用者不想讓這些特殊字元,被當成上面的意義來處理的話,只需要在前面加 = 即可. 例如:=&2 就會是 "&2" 而不是固定命令 2 的展開結果。如果需要 = 的話,就再加上一個 = 成為 ==,這樣就會被解釋成 =。
Get
Get 是用來向機器人詢問目前的變數組態,必踢名單或禁語設定。以下是各項用法:
變數組態
用 Get 來詢問變數組態時,其命令格式如下:
/m OP-yc <密碼> Get <變數名稱> [<取得某些資訊時需要的參數>]
請參考變數組態中,有關可詢問及取得的變數名稱。
例如:
/m OP-yc <密碼> Get OpenSesame
可以取得目前 Open Sesame 功能是否有開放。
必踢名單
用 Get 來取得必踢名單時,其命令格式如下:
/m OP-yc <密碼> Get <必踢名單名稱>
請參考必踢名單中,各項名單的說明。
例如:
/m OP-yc <密碼> Get MustKL
可以取得目前在聊天名稱必踢名單上的人。
禁語設定
用 Get 來取得禁語設定時,主要有兩種功能,一種是將禁語設定列出在螢幕上 (以傳送訊息的方式),另一功能則是將特定的禁語設定項目,複製進自己指定的編輯緩衝區中。其命令格式分別如下:
- 列印於螢幕上
/m OP-yc <密碼> Get <禁語設定名稱>
- 複製於緩衝區中
/m OP-yc <密碼> Get <禁語設定名稱(-eb)> <項目編號> <緩衝區編號>
請參考禁語設定中,各項禁語設定的說明。
例如:
/m OP-yc <密碼> Get REKL
可以取得對於 "任何人,RegEx 必踢" 的列表。而:
/m OP-yc <密碼> Get REKLeb 4 5
會將現在對於 "任何人,RegEx 必踢" 的第 4 項,複製到使用者的 EdBuf 5 中。使用者可以利用 EdBuf 的 Show 指令,將完整的該項禁語設定列印在螢幕上。
Set
Set-變數組態
用 Set 來詢問變數組態時,其命令格式如下:
/m OP-yc <密碼> Set <變數名稱> <欲設定的變數值>
請參考變數組態中,有關可設定的變數名稱。
例如:
/m OP-yc <密碼> Set Welcome 0
就可以將 OP-yc 設定為不對進聊天室的人打招呼。
Add
Add 是用來處理 OP-yc 的必踢名單與禁語設定。以下是各項用法:
必踢名單
用 Add 來將聊天名稱 (name) 或 BBS 帳號 (id) 加入必踢名單時,其命令格式如下:
/m OP-yc <密碼> Add <必踢名單名稱> <欲加入的名稱或 ID>
請參考必踢名單中,各項名單的說明。
例如:
/m OP-yc <密碼> Add MustKL yc
可以將 yc 加入聊天名稱必踢名單。
禁語設定
用 Add 來增加禁語設定時,主要有兩個方式,一是將禁語設定直接打字加入,二則是把自己指定的編輯緩衝區的內容,增加到禁語設定中 (通常是因為要增加的內容過長,而必須使用這個方式)。其命令格式分別如下:
- 直接加入禁語設定
/m OP-yc <密碼> Add <禁語設定名稱> [<名稱或 ID>] <欲加入之內容>
- 複製於緩衝區中
/m OP-yc <密碼> Add <禁語設定名稱(-eb)> [<名稱或 ID>] <緩衝區編號>
請參考禁語設定中,各項禁語設定的說明。
例如:
/m OP-yc <密碼> Add SubStrKL 啾啾
就可以設定,任何人說的話中,只要含有 "啾啾" 二字就會被踢。而
/m OP-yc <密碼> Add SubStrKLeb 6
則會將使用者的 EdBuf 6 當做欲加入的內容,加進 "任何人,子字串必踢" 的名單中。
Del
Del 是用來處理 OP-yc 的必踢名單與禁語設定。以下是各項用法:
必踢名單
用 Del 來刪除必踢名單中的項目時,其命令格式如下:
/m OP-yc <密碼> Del <必踢名單名稱> <欲刪除的名稱或 ID>
請參考必踢名單中,各項名單的說明。
例如:
/m OP-yc <密碼> Del MustKLID GEC
可以將 GEC 由 ID 必踢名單中刪除。
禁語設定
用 Del 來刪除禁語設定時,主要有兩個方式,一是將禁語設定直接以內容刪除,二則是把自己指定項目編號來刪除。(通常一樣是因為內容過長,而必須使用這個方式)。其命令格式分別如下:
- 直接以內容刪除
/m OP-yc <密碼> Del <禁語設定名稱> [<名稱或 ID>] <欲刪除之內容>
- 以項目編號刪除
/m OP-yc <密碼> Del <禁語設定名稱(-n)> [<名稱或 ID>] <項目編號>
請參考禁語設定中,各項禁語設定的說明。
例如:
/m OP-yc <密碼> Del SubStrKL 啾啾
就可以設定,任何人說的話中,只要含有 "啾啾" 二字就會被踢。而
/m OP-yc <密碼> Del SubStrKLeb 6
則會將使用者的 EdBuf 6 當做欲加入的內容,加進 "任何人,子字串必踢" 的名單中。
變數組態
變數組態主要提供 OP-yc 目前的狀態資訊以及部分的行為設定,主要分為唯讀資訊和可讀寫設定。
唯讀資訊
唯讀資訊提供的是 OP-yc 的狀態資訊,是無法由使用者設定或改變的。唯讀資訊的取得方式,可使用 Get 命令:
/m OP-yc <密碼> Get <資訊名稱>
唯讀資訊有以下的項目:
Version
正在執勤之 OP-yc 的版本編號。
Patch
正在執勤之 OP-yc 的 Patch Level。
Name
正在執勤之 OP-yc 的聊天名稱 (參數展開 中,使用 $0 或 $N 會展開的內容)。
Room
正在執勤之 OP-yc 所在的聊天室名稱 (參數展開 中,使用 $R 會展開的內容)。
StartTime
正在執勤之 OP-yc 的開始執行時間 (該主機之時間)。
NowTime
正在執勤之 OP-yc 所在的主機目前時間。
ElapsedTime
正在執勤之 OP-yc 於開始執行後經過的時間。
可讀寫設定
OP-yc 部分的行為,可經由可讀寫設定來改變或決定。使用者可利用 Get 命令來取得設定:
/m OP-yc <密碼> Get <設定名稱>
並使用 Set 命令來改變設定:
/m OP-yc <密碼> Set <設定名稱> <設定值>
可讀寫設定有以下的項目:
Welcome
OP-yc 是否在有人進入聊天室時打招呼?
RandomGreet
OP-yc 如何使用亂數招呼功能?
- 1... 9: 每次有人進入時,選定一個 1... RandomGreet 之間的數字,比方 <M>,然後就會執行 $1;#<M>,亦即使用招呼語中的第 <M> 個項目。如果設定為 1 的話,就會總是使用第 1 個招呼語來打招呼了。
OpenSesame
Open Sesame 的功能是否開放?
KickoutDuplicate
OP-yc 是否要踢連續重覆說三次同一句話的人?
KickoutChangeName
OP-yc 是否要踢連續改變三次聊天名稱的人?
KickoutSpeakOrAction
OP-yc 是否要踢洗螢幕的人?
KSUnpostedCount
當禁語設定有所改變,每一次的增減,這個計數器都會加一。使用者可以詢問目前的計數為何,也可以直接設定計數值 (通常是做為歸零之用)。
KSPostThreshold
當上述之禁語設定改變計數器,數字超過此一門檻時,機器人就會在每天早上的五點鐘 (以其所在的主機時間為準),將禁語設定自動公告於椰林專業聊天團隊 討論區中。
必踢名單
必踢名單雖然叫做 "必踢",但內容並不純然都是用來踢人的,也有相反的絕不踢名單。簡單而言,必踢名單中,包含有聊天名稱 (NAME) 或 BBS 帳號 (ID),以做為處理的依據。
由於椰林聊天室系統對 ID 處理有問題,網友的 ID 常常被截短 (例如:Drifter -> Drif),因此在設定 ID 項目時,最好把所有的可能性都輸入,比方 Drifter,就最好 Drifter, Drifte, Drift, Drif 都加進去。依照目前的經驗而言,ID 似乎還沒被截短到三個字元過。
使用者可利用 Add 命令,來新增項目到名單中,格式如下:
/m OP-yc <密碼> Add <必踢名單名稱> <欲加入的名稱或 ID>
或是使用 Del 命令,來將現有項目刪除,其格式為:
/m OP-yc <密碼> Del <必踢名單名稱> <欲刪除的名稱或 ID>
此類名單共有五組,分別介紹如下:
NoOSID
NoOSID 是指 "No Open Sesame ID List",此名單內容為 BBS 帳號 (ID)。名列於此名單上的 ID,不管在任何時候,OP-yc 都不會接受其 Open Sesame 的申請。
MustKL
MustKL 是指 "Must Kickout List",此名單內容為聊天名稱 (NAME)。名列於此名單上的名稱,OP-yc 見到就會踢。同時,OP-yc 也不會接受其 Open Sesame 的申請。
MustKLID
MustKLID 是指 "Must Kickout ID List",此名單內容為 BBS 帳號 (ID)。名列於此名單上的 ID,OP-yc 見到就會踢。同時,OP-yc 也不會接受其 Open Sesame 的申請。
NeverKL
NeverKL 是指 "Never Kickout List",此名單內容為聊天名稱 (NAME)。名列於此名單上的名稱,無論什麼情形下,OP-yc 都不會踢 (事實上還是會觸發踢人程序,只是最後會被 override)。
NeverKLID
NeverKLID 是指 "Never Kickout ID List",此名單內容為 BBS 帳號 (ID)。名列於此名單上的 ID,無論什麼情形下,OP-yc 都不會踢 (事實上還是會觸發踢人程序,只是最後會被 override)。
禁語設定
禁語設定是 OP-yc 對網友之發言 (包含動作) 進行檢查,如果有符合的情形發生,就會踢人。
使用者可利用 Add 命令,來增加禁語設定:
- 直接加入禁語設定
/m OP-yc <密碼> Add <禁語設定名稱> [<名稱或 ID>] <欲加入之內容>
- 複製於緩衝區中
/m OP-yc <密碼> Add <禁語設定名稱(-eb)> [<名稱或 ID>] <緩衝區編號>
以及使用 Del 來刪除禁語設定的項目:
- 直接以內容刪除
/m OP-yc <密碼> Del <禁語設定名稱> [<名稱或 ID>] <欲刪除之內容>
- 以項目編號刪除
/m OP-yc <密碼> Del <禁語設定名稱(-n)> [<名稱或 ID>] <項目編號>
禁語設定共有七類,分別介紹如下:
StrKL (StrKLeb, StrKLn)
StrKL 為 "String Kickout List",此設定之內容為字串。任何人說出的話或做出的動作,如果是完整地符合此設定的任何一項時,OP-yc 就會將其踢出聊天室。
SubStrKL (SubStrKLeb, SubStrKLn)
SubStrKL 為 "Substring Kickout List",此設定之內容為字串。任何人說出的話或做出的動作,如果是 包含有 此設定的任何一項時,OP-yc 就會將其踢出聊天室。
NameStrKL (NameStrKLeb, NameStrKLn)
NameStrKL 為 "(Name, String) Kickout List",此設定之內容為聊天名稱 (NAME) 及其對應字串。指定的網友說出的話或做出的動作,如果是完整地符合此設定中,對應於其的任何一項時,OP-yc 就會將他踢出聊天室。
NameSubStrKL (NameSubStrKLeb, NameSubStrKLn)
NameSubStrKL 為 "(Name, Substring) Kickout List",此設定之內容為聊天名稱 (NAME) 及其對應字串。指定的網友說出的話或做出的動作,如果是 包含有 此設定中,對應於其的任何一項時,OP-yc 就會將他踢出聊天室。
REKL (REKLeb, REKLn)
REKL 為 "Regular Expression (RegEx) Kickout List",此設定之內容為 RegEx。任何人說出的話或做出的動作,如果可以 match 設定的任何一項時,OP-yc 就會將其踢出聊天室。
NameREKL (NameREKLeb, NameREKLn)
NameREKL 為 "(Name, RegEx) Kickout List",此設定之內容為聊天名稱 (NAME) 及其對應 RegEx。指定的網友說出的話或做出的動作,如果可以 match 此設定中,對應於其的任何一項時,OP-yc 就會將其踢出聊天室。
NameRENeverKL (NameRENeverKLeb, NameRENeverKLn)
NameRENeverKL 為 "(Name-Never, RegEx) Kickout List",此設定之內容為聊天名稱 (NAME) 及其對應 RegEx。除了指定的網友以外,任何人說出的話或做出的動作,如果可以 match 此設定中,對應於該網友的任何一項時,OP-yc 就會將其踢出聊天室。
其他資訊
在本節中,將敘述以上各節所遺漏之資訊,因此內容略顯雜亂。
固定命令
為了讓使用者更加方便地操作 OP-yc,於是定義了以下兩個固定命令。使用者可以在 MDo 中使用 &<n> 來叫 OP-yc 做 固定命令展開,或使用 EdBuf 中的 GetCmd 命令,來取用這些固定命令:
- ";/f +l;/k $1;/m $N Set OpenSesame 1;/f -t;/t /m $N Open Sesame"
- ";/f -l;/m $N Set OpenSesame 0;/f +t;/t /m $N Open Sesame [鎖住]"
固定命令的使用方式,請參照踢人鎖門標準程序中之介紹。
招呼語
除了上述的固定命令,可以用來改變 OP-yc 的招呼語以外,本版 OP-yc 另外定義了以下九項招呼語 (其實只有五項,只是要把所有的字串填滿),以便於執行亂數打招呼的功能:
- "/a 大喊:$1您好,歡迎光臨 $R 聊天室!"
- "/a 大喊:$1您好,我是管理員 $N,歡迎光臨 $R 聊天室!"
- "/a 大喊:$1歡迎!這裡是 $R 聊天室,我是機器人 $N。"
- "/a 大喊:$1您今天好嗎?歡迎光臨 $R 聊天室!"
- "/a yells: *033yo ! $1 !! What*201zup*051?"
- "/a 悄悄告訴$1:加入椰林專業聊天團隊,可以有效防治 SARS 喔!"
- "嗨~~ $1!常來椰林專業聊天室,有助身心健康喔!"
- "/a 大喊:$1歡迎!這裡是 $R 聊天室,我是機器人 $N。"
- "/a 大喊:$1您今天好嗎?歡迎光臨 $R 聊天室!"
以上的內容除了 OP-yc 打招呼時,可藉由設定 RandomGreet 來做亂數招呼功能外,使用者也可以在 MDo 中使用 #<n> 來叫 OP-yc 做 招呼語展開,或使用 EdBuf 中的 FromGrt 和 ToGrt 命令,來改變或取得以上的招呼語。
招呼語的使用方式,請參照改變 OP-yc 招呼語中之介紹。
Open Sesame
Open Sesame 是 OP-yc 的芝麻開門功能。目的在聊天室鎖著的情形下,能夠讓網友們自行取得授權。用法是網友們對 OP-yc 送以下的訊息:
/m OP-yc Open Sesame
OP-yc 在進行判斷 (參見必踢名單) 後,就會予以拒絕或邀請。
訊息轟炸防衛機制
為保護自己,如果有使用者在短時間內對 OP-yc 傳送大量訊息的話,OP-yc 的訊息轟炸自動防衛機製便會啟動,包含以下各項:
- 忽略 (/ignore) 該使用者 120 秒
- 通知對方被 OP-yc 忽略
- 將對方自動加入 MustKL
- 將對方自動加入 MustKLID
- 將對方踢出聊天室 (如果在的話)
常用技巧
以下為使用 OP-yc 時,較為常用的複雜技巧介紹。因為太常用,因此部分加以簡化以方便使用者操作。
踢人鎖門標準程序
本節介紹踢人鎖門標準程序以及解鎖標準程序。
鎖門
本聊天室的踢人鎖門標準程序為
- 將聊天室上鎖 (/f +l)
- 將該踢出去的人踢走 (/k <NAME>)
- 把 OpenSesame 設為 1
- 把 [開放話題] 取消 (/f -t)
- 把話題改為 "/m OP-yc Open Sesame"
以前要一個一個指令下,非常麻煩,現在有了 MDo 功能,就非常方便了。OP-yc 內建的固定命令 1,就是踢人鎖人之標準程序。除了固定命令 1 之外,在 OP-yc 啟動時,也自動地把固定命令 1 和 2 複製到每個使用者的緩衝區 1 和 2 中。所以只要下 (直接使用固定命令)
/m OP-yc MDo <要踢的人>;&1
如果只想進行鎖門標準程序,而沒有要踢人的話,也可以直接下 (直接使用固定命令)
/m OP-yc MDo &1
解鎖
相對於鎖門,解鎖的標準程序是
- 將聊天室解鎖 (/f -l)
- 把 OpenSesame 設為 0
- 開放話題 (/f +t)
- 把話題改為 "/m OP-yc Open Sesame [鎖住]"
這個標準程序現在也放進固定命令 2 中了,因此和鎖門一樣,只要執行
/m OP-yc MDo &2
就可以進行整個程序。
改變 OP-yc 招呼語
目前 OP-yc 的招呼語,從原來的 hard-coded 改成以 MDo 執行:產生 1... RandomGreet 之間的亂數 M 然後
<進入者的名字>;#M
有關 ;#M 的部分,請參見招呼語與招呼語展開的說明。請使用 EdBuf 的 FromGrt 和 ToGrt 功能,在自己的緩衝區和招呼語間進行處理,並使用 RandomGreet 來切換要用哪些招呼語來打招呼。