作者hmml (hmml)
看板mud_sanc
标题[心得] zMUD 写机万用字元实例演示
时间Sun Sep 9 14:45:06 2012
万用字元实例演示:
只会用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
1F:推 AresMars :躺着也中枪...但是^ 只要用to chat就能破解了avert 09/09 15:10
2F:→ hlead :基本上不会有人无聊这麽做吧= =.. 09/09 15:50
3F:推 justinj :你上面那位很快就想出来了...可能有在实行吧.. 09/09 21:30
4F:→ hlead :soga.. 09/10 18:04