musasi 发表于 2017-12-1 12:32:17

%0 原来指的是匹配的整行文字啊。。。学习了~~~

candyqing 发表于 2017-12-1 14:45:41

回复 11# musasi


    “%0” 代表触发条件匹配的所有内容,几行触发器就是几行,{:7_276:}

foolenough 发表于 2017-12-1 16:45:19

赞,希望继续连载

candyqing 发表于 2017-12-1 20:05:34

回复 13# foolenough


    放心吧,不会太监的,我还有很多内容没有写呢,不过我准备这两天酝酿一下再继续下笔,{:7_276:}

xurufeng 发表于 2017-12-3 23:06:04

厉害了 厉害了,非常有用,又学到了几招!!yct11

blueready 发表于 2017-12-4 02:05:24

直接sell 100 fish,管他多少条{:7_268:}

xwnz 发表于 2017-12-4 09:35:31

谢谢分享,新人学习了

candyqing 发表于 2017-12-5 13:16:00

新手出村成长之路第三篇:读书学习

本帖最后由 candyqing 于 2017-12-5 05:31 AM 编辑

也不知道睡了多久,你终于醒了,感觉头还是有点昏昏沉沉的,估计是睡多了,看了一下身上,干粮和水袋还有,简单吃喝了一下,然后坐在床边,你开始想下一步应该做点什么。
首先你看了一下自己现在的技能,嗯,现在只有平一指配药完之后学的那20级基本内功和特殊内功,就这点功夫出去闯荡江湖肯定是不行的,要不然还是去找师父学点功夫吧,不过你看了看自己的潜能,感觉有点舍不得,再想想以前听说书先生讲,大侠们总是会有一些奇遇得到一些秘籍,要不然咱也去找几本秘籍来读读?好,说干就干,那要去哪里找这些秘籍呢?你去wiki上看了看,原来前辈们早就把一些常用的书籍总结出来了:
      http://hk.pkuxkx.com/wiki/baodian/shuji
真是太好了,你仔细看着书籍列表,一边想着自己的师父都有什么基本功夫来着?像我们白驼就需要 基本手法、基本掌法、基本杖法,除了这些门派特定的,还有一些是通用的,比如说基本内功、基本招架和基本轻功,这三个是每个门派都有的,你把选好的书籍都记在一个小本本上,然后就从客店出来准备去购买书籍了。
应该先弄哪本书籍好呢?你在心里盘算了一下,都说内功高了干啥都快,要不然就先读基本内功,而且读【射雕】这本书可以一次学两门基本,真是太划算了,不过你看了看流程,又看了看自己的功夫,断定只靠自己是拿不到的,要不然还是拜托大佬们帮个忙吧,于是你使用 chat 命令从闲聊频道进行求助:
chat 新人求助,有没有大佬能帮忙拿本射雕?
发完这句话之后,你感觉好像不够有礼貌,于是赶紧又补了一句: chat 谢谢,结果不一会就有一个大佬在频道回复你了,来 ct ,你一听很高兴,看来这里的大佬们真是热心啊,不过 ct 是哪啊?你问了问路边的npc,结果让你不禁会心一笑,原来大佬们说的 ct 就是你最熟悉不过的扬州中央广场啊,哈哈,没问题,这地方你熟啊,于是你回到中央广场,坐在那颗大树下眼巴巴的等着大佬过来。
蒙面人如离弦之箭一般冲了过来。一转眼,场间早已没有了蒙面人的身影。
啊?你只看到眼前一花,再看怀中已经多了一本【射雕英雄传】,果然是大佬啊,神龙见首不见尾,什么时候我也能达到这个境界就好了,你感慨了一下,就去找了一个安静的地方准备读书了。你打开射雕,尝试着读了一下:
read shediao 1
一个大大的系统提示跳了出来:你是个文盲,先去学点文化再来读书吧。
啥玩意?我咋就是一个文盲了?3500个常用字我不说全认识,最起码我也认识300个啊,凭啥说我是文盲?没有办法啊,还得去请教大佬们,结果经过大佬的指点你才知道,原来不会【读书写字】这个技能的,全被系统默认为文盲,好吧好吧,那就去学这个技能好了,大佬还告诉你,可以读一本书《说文解字》来将【读书写字】学到100级,不过得先去找扬州书院的夫子学1级读书写字才能开始读。
你从中央广场走 e;n ,就到了书院:


你走进了书院,毕恭毕敬的向夫子学习(xue zi for literate 1)了一级读书写字,心想这下终于可以读书了吧?结果你从书院里随便翻了一本书试着读了一下,发现还是读不了,为啥呢?你使用 sc 命令看了一下自己的先天属性,结果郁闷得发现自己的先天悟性只有15点,怪不得,原来读很多书不仅需要一级读书识字,还得后天悟性达到20才能读,怎么才提高后天悟性呢?原来每10级读书写字可以提高1点后天悟性,那看来只能向夫子学习50级读书识字了,你一边盯着自己的潜能,一边咬牙切齿的向夫子学习读书写字,幸好向夫子学习读书写字只需要用潜能而不要钱,要不然你更得气个半死。
一开始,你感觉学得好快啊,学几下就升一级,不过学了几级之后,就提示你:
你今天太累了,结果什么也没有学到。
你查看了一下,原来是精神没有了,在新手村你都是用睡觉来回复精神的,但你又一想,我现在不一样了啊,我有内功了啊,你看了一下自己有40点内力呢,就尝试着恢复一下精神看看: yun regenerate ,结果你失望的发现, 根本没有恢复上来几点,看来这点内力不够看啊,还是算了,去睡觉好了,你看了一眼地图,然后就走 s;w;n;e;u;enter 回客店去睡觉了,一觉醒来,走 out;d;w;s;e;n 继续去向夫子学习,这个过程反复了好几次,你心想,要不然再写一个触发器?反正现在写这样的触发器应该没有什么困难,还能顺便练练手,那就写一个吧。
你先看了一下向夫子学习的过程:
1. 向师父学习:你听了夫子的指导,似乎有些心得。2. 精神不足:你今天太累了,结果什么也没有学到。3. 尝试用内力回复精神:你略一凝神,精神看起来好多了。4. 内力不够回复精神的时候:你的内力不够。5. 睡觉醒了:你一觉醒来,精神抖擞地活动了几下手脚。6. 睡多了:你刚在三分钟内睡过一觉, 多睡对身体有害无益! 只要流程出来,触发器就好写了, 先来写第一个触发器:


注意看,这次和以前有一点不一样的,就是在右边的选项列表中,我们勾选了一个 不显示 ,这个就代表着,匹配触发条件的语句将不再显示出来,不过要知道一点,这个不显示只是不在MUSH客户端中显示了,实际上,MUD服务器还是会把这条语句发送给我们的,我们不显示只是为了让屏幕看上去不那么乱而已。在这个触发条件里面,我们使用 \S+ 来代替了 夫子 ,这是为了将来这个触发器可以用在其它的师父身上,所以写成一个通用的,下面的命令是触发之后等待0.1秒再次进行学习,其实等将来精神长了之后,可以不再每次只学一下,根据自己的精神来设定这个次数,像我现在精神是1000+,我就设定了每次学20下: xue zi for literate 20,这样可以学得快一些。
第一个触发器写好了,你试用了一下,没有问题,就接着写第二个:


这个触发器没有什么可说的,比较简单,就算不使用正则也可以,下面我是习惯了发送给脚本,你也可以选择直接发送给 Execute,触发内容改成 yun regenerate。
虽然咱们内力少,不过总会有内力多的时候不是?所以咱们写触发器的时候需要把运内力这一步考虑进去:


你使用内力回复精神的时候,就会提示你:你略一凝神,精神看起来好多了,所以就用这个来做触发条件,精神好了就继续学习。如果内力不够回复精神呢?就会像下面这样:


如果内力用光了,就会出现这个提示:你的内力不够,所以咱们就用这个做为触发条件,发现内力不足的时候就回去睡觉好了,注意看一下,为什么回去睡觉的路径我使用了一个局部变量呢?这个是为了将来你向其它师父学习的时候方便修改路径,看起来清晰一些。这条路径就是回到中央广场上面的那个客店二楼,路径执行完成之后,下面跟一条命令 sleep 用来睡觉。
睡醒了当然就是回到师父那里去继续学习啦:


不过在回去之前,咱们先来吃喝一下,吃饱喝得才能学得更好嘛,同样的,触发内容里面也是使用一个局部变量来存储路径,到了师父那里直接学习一下,就能触发第一个触发器继续学习了;不过有的时候你会发现,你在使用 sleep 命令来睡觉的时候系统会提示你:
你刚在三分钟内睡过一觉, 多睡对身体有害无益!
看来是短时间内睡太多了,如果出现这个提示,那触发器不就中断了,所以得把这个也加到触发器里:


你用的是一个简单粗暴的解决办法,如果不能睡,那就等待5秒再次尝试睡觉好了。
你轻轻松松的就把学习触发器写完了,心想:这很简单嘛,感觉甚至还没有钓鱼的那个复杂呢,不过你总感觉好像还少点什么呢,如果我潜能用光了呢?如果已经学到了师父的最高级别呢?如果我已经学到了自己的级别上限呢?你考虑了一下,又加了一条触发器:


这条触发器里面把三种情况都考虑到了:
1. 你和师父切磋了\S+次:这个就是你已经学到师父的技能上限了。2. 也许是缺乏实战经验:这个就是到了你自己的技能上限。3. 你的潜能已经发挥到极限:这个就你的潜能已经用光了。
同时这里出现了一个新的命令: EnableTriggerGroup("学习",0),这个命令的意思是关闭【学习】这个触发器组,因为只要出现触发条件里的任何一个条件都代表着你不能继续学习了,所以就要使用这个命令来将学习触发器组关闭掉,命令格式:EnableTriggerGroup("触发器组的名字",0或1),0代表关闭,1代表打开。
加上了最后的这条触发器,你才感到这个学习的触发器组完整了,于是就像看钓鱼一样,你就一边开始看着自己学习睡觉来回循环,一边佩服自己真是一个天才,触发器写得这么好,过了好半天你才想到看到一下自己已经学习到多少级了,就用 skills 命令来看了一下,好,读书写字已经51级了,学得真快啊。啊?!51级?你赶紧把触发器停了,真是浪费啊,明明学到50级就可以读书,干嘛要学到51级?浪费了一级的潜能,你一边埋怨自己一边拿出书来读了一下,哈哈,果然可以读了,真好,你又想起来大佬说过那本《说文解字》,翻了翻你的小本本,看到上面并没有记,就去查了一下wiki,发现上面写着南昌书院有卖,不过南昌在哪?你拿出来地图翻了半天,发现好远,你从未去过那么远的地方,心里多少有点紧张,要不要去呢?你正在左右为难的时候,忽然想到了,既然你可以把鱼卖给当铺,会不会有人把书也卖给当铺呢?你决定去当铺找找看。
走进来过无数次的当铺,你第一次注意到当铺的老板原来叫唐楠,奇怪,来过这么多次了,为什么才注意到老板的名字呢,老板看了看你,发现你手里没有提着鱼,他的眼里也露出一丝诧异,你们互相看了一会,你才想起来你来的目的,你问了问老板,“老板,侬这个店里有么得那个啥子,就是那个,嗯,那个《说文写字》”,你一着急,把书名也说错了,老板的眼神里那一丝诧异重新转为鄙视,他用手指了一下墙上的那个牌子,接着就去忙自己的了,你赶紧看了看牌子 l paizi :


仔细的研究过牌子之后,你尝试输入 list 说文 ,然后看了一下列表,别说,真是幸运,还有最后一本:


你赶紧使用 buy im_199 把这本买下来了,这样就不用跑去南昌了,竟然要2G,你不由得又心疼了一会,老板看出了你的心思,答应等你看完,可以用 8折 的价格回收,你这才感觉心里好受一些。你刚要走,忽然想起身上还有一本射雕呢,反正一次只能看一本书,要不然就把射雕存在当铺好了,别再弄丢了,于是你使用 dang shediao 命令把书存在了当铺,存完之后还不放心的使用 dang 命令看了一下序号,确实是存到里面了,你这才放心的走出了当铺。
该去哪里读书呢?要不然还回去客店吧,买上几个干粮灌满了酒袋你又回到了酒店二楼,拿出来书你就开始读了。读上书你才知道,原来刚才和夫子学习已经是很幸福的事了,读书更慢,而且容易困,没读一会,你的瞌睡虫就出来做怪了,看来还得让机器帮咱们读书,你想了想,读书的流程好像和学习差不多呢:
1. 读书:你研读了一次有关读书写字的技巧,似乎有点心得。2. 精神不足:你现在过于疲倦,无法专心下来研读新知。3. 尝试用内力回复精神:你略一凝神,精神看起来好多了。4. 内力不够回复精神的时候:你的内力不够。5. 睡觉醒了:你一觉醒来,精神抖擞地活动了几下手脚。6. 睡多了:你刚在三分钟内睡过一觉, 多睡对身体有害无益! 7. 读到书的上限:你的读书写字等级已经高于100,没法再从说文解字学到任何东西了。
你仔细对比了一下,基本上触发条件只有第一条和第二条不同,其它都是相同的,那只要把学习的触发器稍微改一下就好了呢:


使用两个 \S+ 来代替原句(你研读了一次有关读书写字的技巧,似乎有点心得。)中特定的书籍和次数,加强通用性。


同样的,使用一个 \S+ 来代替原句(你现在过于疲倦,无法专心下来研读新知。)的那个 过于 ,这是因为不同的书这里的提示也小有区别,有的书会提示 有些 疲倦,所以统一使用 \S+ 来代替就好。


这个仍然是使用内力运精之后的提示,继续读书就是。


内力不足时的提示,因为我们是在客店里读书的,所以就不用走路径了,直接倒头就睡。


睡醒照旧要吃喝一下才开始读书。


系统提示睡太多的时候和上面的处理方法是一样的,等5秒再继续睡就好。


这次你学聪明了,直接就把读到上限的语句加上了,可以看到还是那条命令 EnableTriggerGroup() 来关闭读书触发器组。
好了,现在读书也有机器代劳了,你终于可以好好打一个盹了。过了好久,你不知被什么惊醒了,看了一下技能,读书写字离100级还有一段距离呢,你没有什么可干的,就去继续看wiki了,忽然看到有一个老前辈写给新人的建议:
建议新人应该先学点基本内功和特殊内功,学个20-30级就可以,然后去打坐吐纳,新人在1000点内力之前打坐用的时间是减半的,内力和精力高了之后,对应的气血和精神都会提高,这样可以更有效率的学习和读书。
简直是醍醐灌顶啊,你以前怎么没有想到呢,一直以来都是只靠睡觉来回复精神,怪不得这么不效率呢,原来是精神太少了,你决定等说文解字读完之后就去打坐好了,其实应该在开始读说文解字前就去学点内功打坐的,不过你是一个有强迫症的人,所以既然开始读说文解字了,那就还是读完再开始打坐好了。
接下来的时间就有点煎熬了,因为你已经有了下一个目标,所以就感觉读书越发显得慢,你开始胡思乱想,一会想像自己变成了段誉,北冥神功吸来深厚的内力;一会又变成觉远老僧,从佛经的字里行间学会了易筋经,无意中练成神功;一会又变成乔峰,降龙十八掌行走天下,两军阵前胁迫皇帝退兵,断箭自尽...阿紫也随之而去....无数念头纷至沓来,忽见远处一人行来,越走越近,手持一根怪蛇杖,两鬓虽然已经有些斑白,但神情仍是不怒自威,行至近前,忽然重重一顿蛇杖,大喝一声:既入我西毒门下,为何只去羡慕他人武功?待老夫让你见识一下本门绝学,说着蹲下身去,“咕”的一声大叫,狂风四起,沙尘漫天,隐约中你仿佛看到一只蓝色的巨大蟾蜍挟着风沙泰山压顶一般向你扑来....
(欲知后事如何,请见【打坐吐纳篇】)
按惯例奉上附件:

suineg 发表于 2017-12-5 14:33:10

顶下,挺好的,适合新手学习怎么写机器

shyn 发表于 2017-12-13 23:40:27

写的很好,受益匪浅。
想请教一个问题,
走路命令与动作命令一起使用会不会很容易卡在某个地方。

比如你上面钓鱼中关于鱼儿用尽的触发命令是:
从江边走到茶馆(走路命令)-->装水、喝水(两个动作命令)-->走到当铺(走了命令)-->卖鱼(动作命令)

上面是一个连续命令,而且很长,实际执行的时候是否会卡在某一个环节执行不下去。
比如「从江边走到茶馆」执行完最后一步,刚发出进入茶馆的命令,还没等进去,
就接着把装水的命令发出去了,因为装水的命令实际是在茶馆外面执行的,所以是无效的,
你装不到水,也就喝不到水(假设酒袋是空的),因为这个连锁反映可能导致最后你无法走进当铺,也无法卖掉鱼,卡掉整个触发链。

我使用 zmud 做触发的时候,如果语句过长经常会卡在莫名奇妙的地方,
没办法只能在两个命令之间加入延时命令,但是这样很影响效率,
我想知道应该如何避免长句容易卡的问题。

我知道有些指令之后会 busy,这个是必须要延时的。
但是很多时候没有 busy 的指令也会卡,这个让我很恼火,
感觉写的简洁效率的语句却经常出问题,
不是逻辑上的问题,而是因为执行速度过快,导致发出去的命令服务器接收不到(个人感觉)
页: 1 [2] 3 4 5
查看完整版本: MUSH边用边学(抛砖引玉系列) ------- 白驼初见