2013-01-15 | #1 |
月影花雨蝶
注册: 02年12月30日
来自: 蝴蝶谷
帖子: 1,330
声望力: 37
声望:
174
积分:9
精华:10
现金:1899两梁山币
资产:426171两梁山币
致谢数: 0
获感谢文章数:4
获会员感谢数:4 |
手把手启发新人制作袁天罡找怪机器人
经常看到新人或回来寻梦的旧人求问机器人。敢情机器人就是一块肥猪肉,下了就能完美的自动运转?其实不是的。绝大部分都需要因应自己的等级、武学和技能去调整,调整得不对那是自虐。 打个比方:你下了一个找怪机器人,原主人的等级有200以上,遇到吴刚、龙宫力士、云阳真人等路障会自动下kill,一招秒掉。你呢?难道也跟着对路障下kill,然后被对方秒掉吗? 所以,新人与其乱求乱下一些不适合自己用的找怪机器人,为何不自己动手做一个呢? 我原本是不会机器的,上礼拜花了两天时间研究,发现还不算太恐怖。 所谓找怪机器人,其实主要是由路径(path)和触发器(triggers)组成的,远不如你想象的复杂。相信90%的人都知道怎么用触发器,但不会写机器的人大多不明白怎么用路径。我们用图解来说明一下路径,你马上就懂了。 首先,我们来点击一下路径(path)。以zmud5.55版本为例,path在上面triggers图标的左边。点击path之后会出现这样一个框框,但先不用在上面输入任何东西(图一)。记录路径最好使用record path(图二),沿路走一遍,然后储存。 路径呢,是用单个字母或者符号记录方向的。像那个path 的框框,如果你在上面写”ne”,它会理解成north和east,而不是你想要的northeast东北方向,这就乱套了。如若要记录northeast东北方向,首先要给它设一个方向指令代号(Direction command)。 我们从view当中选择directions,会跳出来一个设置方向代号的框框。我的zmud版本已经为我设好了10个原始内建的基本方向(图三)。分别是:d=down; e=east; n=north; j=northeast; h=northwest; s=south; l=southeast; k=southwest; u=up; w=west。当然,西游记的地图中绝对不止这10个方向,原始设置中没有的方向,你可以添加和自定义甚至更改旧有的,只是注意不要重复使用同样的代表字母和符号。(如果你用的是7.21版本,听说是在setting editor,new下拉选new direction)。 现在我们来做一个示范,从长安十字街头走到月宫(桂树以下)逛一圈的路径。在前往月宫的路上有6个方向(wu, ed, su, nd, nu, sd)尚未在directions中设定。我在directions中点击添加,用a代表wu, b代表ed, c代表 su, f代表nd, m代表nu, o代表sd(图四)。 好了,现在可以record path录制路径了(图二)。我事前已经探过路,知道从长安十字街头到月宫游一圈要怎么走(#7 w; nw; ne; #3 nw; w; wu; #2 su; #2 wu; nu; #3 w; #4 e; w; n; w; e; n; s; e; w)。 首先从actions里头选择record path,接下来按着正确的方向和顺序走,边走边被记录。走完了就save recording,会跳出来一个define path的小框框,给这段路径起个名字。我给它取名为moon(图五)。 是不是这样就做好了呢?还差那么一丁点。到十字街头测试刚才做好的路径,输入#slow moon慢行月宫路径,你会发现它走第一步之后就停了,显示slow walking aborted。 【水泊梁山】依蝶嗲~嗲~地说:“为~什么呢!?” 因为它没有等到你允许它继续前行的指令啊。允许继续前行的指令是#ok,而且每一步都要接收到这个指令才会走下一步。那是不是让你每一步都必须手动输入#ok呢?呵呵,其实可以使用trigger触发器自动输入#ok。 西游记中95%的路上都有这么一句描述:“这里明显的出口是……(某某方向)”或者“这里唯一的出口是……(某某方向)” 我们就利用这句来触发机器自动帮忙输入#ok,同时也用来控制行走的速度。 例如: 需要抓的对应句子(pattern):这里(%x)的出口是 触发时下达的指令(commands):#wa 800;#ok 好了,月宫走路的机器做好了。在长安十字街头输入#slow moon测试一下,它会很通畅地以每步#wa 800的速度慢行。觉得走太慢的可以调整快一点,例如#wa 500;觉得走太快的可以调整慢一点,例如#wa 1000。(注意:#wa 800后面的分号和#ok 之间不要打空格) 最后一步,再设一个触发,在走路的过程中看到你的怪就触发它输入#stop来停止行走。不懂得抓怪名字当触发的,你就自己手动#stop吧!(偷笑~) 开玩笑啦。这个版块有很多贴子详细解释该怎样抓怪名字,例如: 新手看看,不要回帖! (13楼,含高老庄走法详解) 新手如何制作xyj2000灭妖机器的一些意见 这里的23楼有长安、高老庄、龙宫、开封和长安西等5个地方的路径行走示范供参考。 新手看看,不要回帖! 剩下的,你们应该会举一反三了吧? |
问花花不语,为谁落?为谁开?算春色三分,半随流水,半入尘埃... |
|
|
2013-01-16 | #2 |
月影花雨蝶
注册: 02年12月30日
来自: 蝴蝶谷
帖子: 1,330
声望力: 37
声望:
174
积分:9
精华:10
现金:1899两梁山币
资产:426171两梁山币
致谢数: 0
获感谢文章数:4
获会员感谢数:4 |
回复: 手把手启发新人制作袁天罡找怪机器人
如果实在看不明白Mdcfil自动抓妖怪名字的复杂触发,那我只好建议你像Locale示范的那样,手动输入怪的名字了。 Locale在她本人教学帖13楼的示范中建立了两个变量(variable)和一个触发(trigger),用来做找到妖怪后自动停步的触发。 第一个变量是妖怪的中文名字,变量代号随你起,我就随意起了一个叫guainame好了。 第二个变量是妖怪的汉语拼音,变量代号也随你,我随意起了姑且叫guaiid,容易理解。 在游戏下方的命令输入条框中输入:#VAR guainame xxx 这样做相等于单击variables图标,从variables 设定的框框里添加新变量,分别写上variable和value的内容(图六)。接着,我们把 guaiid也用同样的方式添加上去。 下一步,添加一个触发:#trigger {@guainame(@guaiid)} {#stop} 这个输入相等于单击triggers图标,添加新触发,以@guainame(@guaiid)为触发句,对应命令是#stop。记得自己设个class,不用的时候就关闭,防止误触发(图七)。 [更正:不好意思,这里的@guainame(@guaiid)应该是@guainame~(@guaiid)才对,不然光看到前面的中文名它就触发了.] 手动输入怪名字的示范,嗯……去月宫找麻姑好了,虽然她不是怪但主要是测试机器见到她会不会成功停下来#stop。 是的,月宫管家 麻姑(Magu)。 麻姑的中文名字是“麻姑”,汉语拼音是Magu。于是我可以这样手动输入: guainame=麻姑 guaiid=Magu 这时候,你会发现变量里头guainame的赋值(value)变成了麻姑,guaiid的value成了Magu(图八)。 现在走到长安十字街头输入#slow moon ,测试它是不是自动走到麻姑面前停下。同样的,如果袁天罡要你找一只小小狐狸精(Huli Jing),你也可以手动输入: guainame=狐狸精 guaiid=Huli Jing 当然了,最好用的还是从接受任务的句子里自动抓下来怪的中文和拼音。详细解释,你还是看Mdcfil的贴子吧。 此帖于 2013-01-20 03:48 被 ding 编辑. |
|
2013-01-17 | #3 |
月影花雨蝶
注册: 02年12月30日
来自: 蝴蝶谷
帖子: 1,330
声望力: 37
声望:
174
积分:9
精华:10
现金:1899两梁山币
资产:426171两梁山币
致谢数: 0
获感谢文章数:4
获会员感谢数:4 |
回复: 手把手启发新人制作袁天罡找怪机器人
Locale的示范贴中,还提及了Define Status Bar这个东西。可以在不妨碍其它程式运转的情况下,在状态栏显示你想要注意的东西。例如说:你的妖怪叫什么名字,蹲在哪里。你知道的啦,有时候街上对你流口水自动攻击的怪(简称口水怪)不一定是你的,搞半天或许跟你半毛钱关系也没有,难道你要往上翻页翻半天检查一下到底是不是自己的吗? Define Status Bar可以帮助你。在状态栏点击右键勾选Define Status Bar或者从上面的Actions下点选Define Status Bar会跳出一个Status Bars的框框。新添加一个,在status line行输入一句你喜欢的提示短句,这样你就不会找错怪了。 例如:本轮灭妖:@guainame (@guaiid) 在@place 然后你会看到左下方,输入指令条的上面显示了怪的名字拼音和地点(图九)。 噢,忘了说,我在变量那里新添加了一个”place”用来代表怪的地点。刚才我使用麻姑来测试,所以现在显示了麻姑。 看到这里,你可能已经不满足于手动输入怪名和地点这么驴的方法。能不能用trigger触发器自动抓呢?当然可以。在Mdcfil的贴子里就给了示范。 原句是这样子的: #trigger {^{~>李|李}靖对你说道:近有(%x)~((%*)~)在(%x)为非作歹*} {killname=%1;killid=%2;killwhere=%3;#ts 200;#show 灭妖地点:@killwhere} {} {519} 但是,我在变量(variables)中用来代表怪名字和地点的词语跟他不一样。他用“killname”来代表怪的中文名字,而我用的是“guainame”。所以,在抄他的触发句子之前,我把killname换成guainame,killid换成guaiid,killwhere换成place。 好了,现在改成 #trigger {^{~>李|李}靖对你说道:近有(%x)~((%*)~)在(%x)为非作歹*} {guainame=%1; guaiid=%2;place=%3} mieyao 后面那截我就不抄了,是他用来配合其他触发的。为了不容易被误触发,我设了个class(类别),不必要时处于关闭状态。(图十) 现在测试一下。先跟李靖要个怪。 李靖对你说道:近有灰狐狸精(Huihuli jing)在盘丝岭为非作歹,速去降服! 下方的状态栏仍然显示麻姑的名字,看来有点不太对了。进入triggers把这个找出来看看,在testing那边将李靖那句话贴在第二行,按test trigger测试。结果显示句子不匹配(Pattern does not match),自然也就无法正常触发。要找出原因,直到它显示匹对为止。(图十一) 经过一轮测试,在紧贴在大括号后面的~符号删除,终于匹对上了(图十二)。我并不是说Mdcfil错了,也许是版本的问题或其他原因,别人做的机器自己拿来用时出现问题是很正常的事,修改修改就行了。 抓袁天罡的话做触发也是大同小异。 你向袁天罡打听有关『kill』的消息。 袁天罡将手中桃木剑向四方一划,对你说道: 近有猩猩精(Xingxing jing)在开封城出没,为害不小,请速去收服! 这里我们看到,袁的话是分开两行的。我有个比较笨的方法,分开两句触发。 第一个触发: ^你向袁天罡打听有关『kill』的消息。 我对这个触发唯一的指令是,触发后关闭自己并启动第二个触发。 Pattern: ^你向袁天罡打听有关『kill』的消息。 Commands: #t- askguai; #t+ mieyao Class: askguai 第二个触发: Pattern: 近有(%x)~((%*)~)在(%x)出没,为害不小,请速去收服! Commands: #t- mieyao; %1=guainame; %2=guaiid; %3=place Class: mieyao 同样是触发后通过t- 类别名字(class)关闭自己,避免之后被别人影响而错误触发。 为了方便,我还添加了个热键(aliases): Name: askyuan Commands: #t+ askguai; ask yuan about kill 以后我对着袁天罡输入askyuan的时候,就会执行开启第一个触发和问袁要任务这两个命令。两个触发的开启和关闭之间顶多也只是一秒左右的事情。 [更正:呃...我收回做热键的话.第一次测试的时候完全没问题,第二天测试就出毛病了,也许不太适合这么做.你还是自己做个触发关闭class和要任务吧.] 要做完善的机器人,后续的事情还有很多。比如说,你可以在找到怪的同时#stop并follow它。Follow它之后触发开始打它,用什么招数各人都不一样。受伤了,触发自己吸气。打不过了,触发自己逃跑。诸如此类,很多很多...... 我机器学得不好,只能说些皮毛,希望能对大家有启发。 此帖于 2013-01-20 03:51 被 ding 编辑. |
|
2013-04-29 | #4 |
高级会员
注册: 05年04月16日
来自: 东海龙宫
帖子: 244
声望力: 22
声望:
52
积分:4
精华:1
现金:122两梁山币
资产:322两梁山币
致谢数: 2
获感谢文章数:1
获会员感谢数:1 |
回复: 手把手启发新人制作袁天罡找怪机器人
很有用的教材 我这不会编机器人的都能自己写出自动找怪的机器了 还在慢慢完善中
|
|
2013-05-17 | #5 |
高级会员
注册: 07年04月17日
来自: 客栈
帖子: 106
声望力: 19
声望:
19
现金:6两梁山币
资产:278两梁山币
致谢数: 2
获感谢文章数:0
获会员感谢数:0 |
回复: 手把手启发新人制作袁天罡找怪机器人
顶了先
|
|
2013-06-21 | #6 |
初级会员
注册: 08年12月24日
来自: 江苏
帖子: 39
声望力: 0
声望:
10
现金:99两梁山币
资产:99两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
回复: 手把手启发新人制作袁天罡找怪机器人
超实用的帖子啊,感谢楼主分享111
|
From:紫金飞鸿
|
|
|
2013-07-25 | #7 |
正式会员
注册: 10年07月25日
来自: 长安西
帖子: 8
声望力: 0
声望:
10
现金:19两梁山币
资产:19两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
回复: 手把手启发新人制作袁天罡找怪机器人
但是我的是4.62的ZMUD啊,很多东西都不一样的,而且现在我也找不到下5.55的地方,首页的那个链接坏了下不到...
|
|
2014-11-14 | #8 |
中级会员
注册: 07年04月10日
来自: 客栈
帖子: 60
声望力: 18
声望:
11
现金:85两梁山币
资产:85两梁山币
致谢数: 0
获感谢文章数:1
获会员感谢数:1 |
回复: 手把手启发新人制作袁天罡找怪机器人
能不能手把手教我做task机器人?beep,sos
|
|
2016-03-19 | #9 |
中级会员
注册: 11年10月14日
来自: 长安城
帖子: 60
声望力: 14
声望:
20
现金:88两梁山币
资产:88两梁山币
致谢数: 1
获感谢文章数:0
获会员感谢数:0 |
回复: 手把手启发新人制作袁天罡找怪机器人
先赚点梁山币,版主见谅啊。。。
|
|
2018-10-04 | #10 |
中级会员
注册: 07年05月06日
来自: 四川
帖子: 92
声望力: 18
声望:
10
现金:19两梁山币
资产:19两梁山币
致谢数: 3
获感谢文章数:0
获会员感谢数:0 |
回复: 手把手启发新人制作袁天罡找怪机器人
赚钱第一位!!!!!!!!!!!
|
|