close
UNGAG

Syntax: #UNG
Related: #GAG

防止當前行被gag,通常是用在trigger裡拿來回復前一個gag的trigger。

UNGAG example

#TRIGGER {Zugg} {#GAG}
#TRIGGER {tells you} {#UNGAG}

通常,第一個trigger會gag所有包含字串Zugg的行,
然而第二個指令尋找字串tells you而且ungag它,
所以字串Zugg tells you還是會被印出來。


===============   紅貓碎碎念  ====================
實用程度: 80% 會用的話有它的方便性

在zmud裡面,#un<xxx>的指令就是取消掉以#<xxx>所建立的設定(除了#until)

gag指令我大多是包在class裡,當class關掉就不會gag,所以ungag比較少用到。
不過當你只有在執行某個動作時要gag某些行,其他時候不gag,
那可以在執行動作前設定gag,執行完後把它ungag

我比較喜歡減少觸發數量,而讓觸發裡執行的動作較為複雜,
以上面的例子來說,我會寫
#trigger {Zugg} {#if {!%match(%line, "tells you")} {#gag}}
對我而言,我只要看一個trigger就可以了解這個機的行為,不用二個trigger交互參考
雖然執行時多看一個#if理論上會執行比較久,但以較新的電腦這個差異的時間我覺得可以忽略。
倒是zmud可以省下嘗試符合的trigger數量,這裡可以減少總體的時間,
我覺得比多執行的時間還划算有賺回來,當然愈新的zmud,在這部分演算法也是有加強,還是可以忽略。
不過前提是要能一眼看懂那個match啊line啊在做啥,
有的人就會覺得我的trigger太複雜了看不懂
arrow
arrow
    全站熱搜

    suzin 發表在 痞客邦 留言(0) 人氣()