精華區beta mud_sanc 關於我們 聯絡資訊
萬用字元實例演示: 只會用Alias和Trigger,被Variables耍得團團轉的從頭看起,粗通Variables ,想知道更深入的符號組合,從Ex06開始看吧!全部會用,實力在Ex10以上的 ,請回文開一篇教大家奧秘中的奧秘吧!求你了! 這裡只用下例句子說明: 你要等 140 秒後才能再 practice! =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex01:*要等*秒後才能再*! 以照樣造句來說,就是: ( )要等( )秒後才能再( )! ( )裡字數不限,只要( )以外字詞能相符,就能滿足條件。 功能也只有判斷是否為條件合符的句子。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex02:(*)要等(*)秒後才能再(*)! 與Ex01不同之處,在於*的兩側被()包圍,除了擁有Ex01的功能外,還能將*當 中的字詞取出來。在zMUD中,被(*)抓取出來的字詞,會依順序分派代號,代 號格式為:%1~%99 在本例,即: "你"會被分配到%1這個代號;" 140 "代號就是%2;" practice"就是%3。 就像    武狀元大喊:9527!你給我出來! 跑去華府把秋香,應徵當下人的唐伯虎就得答:有! 是一樣的意思。 不過這代號是臨時的,使用期限大概只到在下一行字或空行出現在畫面前,所 以要在臨時編號過期前,另行配發正式代號才行。正式代號當然由使用者自己 編,所以先用abcd去編好了: #var a %1 #var b %2 #var c %3 這樣就把臨時編號為%1~%3的"你"、" 140 "、" practice",分別配發到a、b 、c去了,現在你叫a,"你"就會出來;叫b," 140 "就會出來;叫c, " practice"就會出來,不過要叫代號的時候,代號前面要加上@,也就是: @a、@b、@c,否則誰知道你是要叫人還是練習abc發音,而使用期限會到下次    ( )要等( )秒後才能再( )! 同格式的句子再跑出來刷新正式代號分配為止。 另外,派發正式代號的寫法也可以用: a=%1 b=%2 c=%3 也能得到相同效果。 有時候正式代號使用久了,發很多了,忘了有哪些代號,或想知道各代號被使 用的情形,只要從Variables去找就可以了,位置在zMUD視窗上面的按鈕裡。 有時候,抓出來的詞句在配發正式代號的時候,會有意外的情況,假設: %1=how are you,當你將它派發到a後,再叫@a,會發現只剩how跑出來,are you則掉隊了,這時打開Variables檢查後,會看到a裡面how在第二欄,而are 在第三欄,you呢?you跑到更下面的class去了。這是因為#var的格式為: #var 代號 值 預設值 群組 而當你將值為how are you的%1,分配到a,就會變成: #var a how are you 剛好與要求格式相同,所以%1裡的三個詞就被拆了。要避免這樣的情形,要 將臨編的格式加上規定的記號,即: #var a %-1 在"%"和"1"中間加上"-",這樣zMUD就不會誤解意思,將它們分拆到各欄位去。 如果你要自行安插新字句進去,如你要將"windman"分派到b,就這樣: #var b windman 或 b=windman 皆可。 如果是"windman 好 帥 !",請用""將其包起來,即: #var b "windman 好 帥 !" 或 b="windman 好 帥 !" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex03:(*)要等(*)秒後[才]能再(*)! 不同於Ex02,在於"才"被[]所包住,[]的功能,是[]內的組合與長度被指定, 以"才"來說,它是一個雙字元長度的組合,而"[才]"會將該雙字元與其它字元 區隔開來,在中文系統裡,最常被用來解決吃字的問題,但只用到5.55版而已 。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex04:(%1)要等(%2)秒後[才]能再(%1)! 其實這不是正規的寫法,%1~%99不是用在句子裡,不用還是能正常使用,號碼 也能隨你用,重複也無所謂,對zMUD來說,都跟(*)沒什麼不同,使用者可能會 比較好認而己,但辨認這點,也還有更好的做法。本例最多當做備援,做為處 理吃字問題的可能方式。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex05:(%x)要等(%d)秒後[才]能再(%w)! 本例不同於Ex03,三個(*)各自被改為(%x)、(%d)、(%w),但不若Ex04,它們都 有不同的意義,它們加入了篩選字詞的條件,(*)是無條件,即使字元長度為零 都可能通過。而這三個分別代表: %x:非空白 %d:數字 %w:英文字母 不符合條件,不只不會被派入臨編,整行句子都會被剔除。如果對照原句子, 你會發現本例要稍微修正後才能用,原句為: 你要等 140 秒後才能再 practice! 對照本例格式,可以發現(%d)包含左右的空白;(%w)則有左側的空白。所以應 改為: (%x)要等 (%d) 秒後[才]能再 (%w)! 才能正確使用。 具備篩選能力的萬用字元如下: %x:指定非空白。     %d:指定數字。     %w:指定英文字母。 %a:指定數字和英文字母。 %s:指定空白字元(不含全形空白)。    ?:指定單字元(單字元即是半形字元)。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex06:({你|我|他})要等 (%d) 秒後[才]能再 (%w)! 不同於Ex05,(%x)的格式改了,變成{你|我|他},這是一個條件更嚴格的萬用 字元,它限定只有你、我、他三個字才能符合資格。不過要注意的:是它不能 和[]並用,所以無法應付{}裡吃字的問題。這樣的句法,在聖殿最常用的地方 就是#cap機的整合,反正機碼都一樣,組一起乾淨多了。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex07:^({你|我|他})要等 (%d) 秒後[才]能再 (%w)! 這次前方多了^,它限定句首的字元條件。假設有一例: 【閒聊─神武弒族】極度冰凍(heart)道:你要等 1 秒後才能再 quit! 嗯!幹得好!聖殿的負載突然減輕了。由於沒有^,所以前面接上什麼都能符 合條件。因為zMUD不是對一整行是否相符,而是一行中有沒有相符的部份。如 果有加^,就能逃過一劫。放心好了!heart不是這種人,可能無心,絕非有意 。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex08^(&a)要等 (&b) 秒後[才]能再 (&c)! 其實它就是Ex04的正確解決方法,對於使用者,能更快的方便地看出正式編號 派發情形。對於zMUD,它相當於: #var a %1 或 a=%1 #var b %2 或 b=%2 #var c %3 或 c=%3 所以也省了好幾行句子。不過對於吃字,兩種方法支援度不同,但無優劣之分 ,只能兩招都用用看,哪個行得通就用它。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex09^&%x{a}要等 &%d{b} 秒後[才]能再 &%w{c}! 它是Ex08與Ex05的混合版,除了直設正式編號,更加上篩選條件。也讓人覺得 寫的人好像很強?!但這不重要,好寫好認才是它的優點。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex10^&%x{pr.a}要等 &%d{pr.b} 秒後[才]能再 &%w{pr.c}! 除了Ex09的優點,它還有一個特點:整理Variables!格式x1.x2的正式編號會 將原本分開的三個數,集合在同一個班之下。如果打開Variables列表,你會 找到一個名為pr的編號,裡面的內容會是 a你b140cpractice 當你要使用其中一個數,就用@pr.a、@pr.b、@pr.c分別呼叫即可。 但你要手動修改內容其中一個數,只能下指令去改,直接從Variables去改會導 致數值失效。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 如果從Ex02就看不懂,我想你就是假髮~不!是桂吧!你的世界跟別人大不相同 ,只有去尋求其他明師了! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.196.45
AresMars :躺著也中槍...但是^ 只要用to chat就能破解了avert 09/09 15:10
hlead :基本上不會有人無聊這麼做吧= =.. 09/09 15:50
justinj :你上面那位很快就想出來了...可能有在實行吧.. 09/09 21:30
hlead :soga.. 09/10 18:04