目前比较盛行的tmt机器是运行在4.62下面的,本文将讨论如何将其搬到zmud7.21下面。
准备工作:下载并安装zmud7.21试用版或破解版,试用版zugg官方网站(
www.zugg.com)上有,破解版三界论坛(
www.sanjie.org)上有,下载tmt机器,xy论坛上就有。
zmud721的界面和462相差不大,新建一个character,连线进入,点击settings->import->settings...下拉式菜单,找到tmt机器,点击打开,在随后出现的弹出窗口,用shift选择左面窗口所有的类,点击两个窗口中间Add按钮,然后点击OK
这样就完成了第一步工作,你会看到你的zmud使劲的触发,不停的刷屏,点击右下角的小手枪,赶快停掉它吧。造成这种混乱触发的原因主要有以下三个
1)zmud在导入settings的时候,错误将某些pattern模式的triggers转换成expression,这种也是最好改的。只需要打开triggers窗口,将右边的option选项卡打开,依次看左边的triggers有哪个的option便成了expression,直接改为pattern即可。
2)triggers中触发行对变量名和中文的区分似乎不太清楚。解决办法,将triggers触发行中所有的@var加{}变成{@var},比如说原来是“@yao的尸体”则改成“{@yao}的尸体”,但如果有其它的分界符如“~(@yao~)的尸体”就不用改。
3)变量为空导致,打开变量设置窗口,给那些在triggers中要引用的变量设置一个值,设什么都可以,只要不空就行,tmt机器在使用中会适时地调整过来。
将触发行改过来后,打开triggers和alias,你会看到,有好多语句自动缩进,加了空格,颜色等等,好看多了,但是还有部分没有自动缩排,而且报错,这一般都是由于格式不符,还好,不是很多,加{}吧,e.g.将#alias pp juezhao改成#alias pp {juezhao}。
改完了triggers和alias,再打开小手枪,那种乱触发就没有了,这个时候,将zmud462中的timer对话框中的语句复制过来,粘贴到zmud721的timer中去。机器转型基本就算完工。如果你是个精致的人,而且这种精致常常显得必要,打开class吧,改变一下class的属性,比如从枯骨洞走出来的类slow1,slow2在连线时是肯定是要 关闭的,等等若此。
----
个人认为,zmud721最大的好处是编机器方便,支持pretty格式(类同于C语言中按层次自动缩进的意思),可以搜索(查找某个变量如何定义,在哪儿别修改,用于什么判断等等),还支持简单的纠错功能。好处多多,推荐使用,欢迎交流。
=========================================================================================
补充一下
将alias中suandan,suanyao中的[]改为%int,比如hz_rep=[%len(@hz_tmp)/2]改为hz_rep=%int( %len( @hz_tmp)/2)
点击进入class设置窗口,在其中点击选中view->show hidden下拉式菜单,将系统默认的路径Direction和DirectionDlg删掉。tmt的路径定义和系统默认设置不一样。
=========================================================================================
嗯,楼主加油,我以前也试着用过这些较高版本的,因为462在xp下太容易出问题了。
1、 从555开始,path里的#back定义就和462下不同了,但是在555里面还可以回退几步,好像三步吧,如果没有记错,但是到了7版本中,只有一个方向(貌似联机之后也是如此)。所以如果用path寻妖,除非把每步的时间间隔调大些,别的方法我现在是没有想到,希望有高手可以指导。
2、乱码。721里面比方说开封的“开”,盘丝洞的“丝”这些都是乱码。555里面好像“婷”“焰”“蝗”之类的是误码,所以接任务的时候可能会造成干扰。
3、就是高版本对命令要求比较严格,462下的一些命令可能到了高版本里会有问题的。
呵呵,楼主加油,如果有了好的机器,别忘了大家。
=========================================================================================
和swordor共同商讨:
1、在高版本的path中,并不是不支持#back,只是它的每一次#back必须要得到确认后才会在当前路径中删除最后一个动作,有点绕口,比方说,#sl nesw,#stop,#4 #back,就一直给你e,e,e,e...,因为这个e没有得到确认,解决办法是用triggers确认, #trigger {"这里没有这个人"} {#stop;#back}就可以了。因为“这里没有这个人”是由服务器发送的数据,在zmud客户端将它辨识为确认信息,于是就可以一步步back回去了。
2、乱码问题。在调试中,我也发现盘丝洞会引起误码,但从屏幕截取的原始数据来看是正确的,可能是zmud内部实现的问题。是否可以考虑运用一个字触发地名,好在姓开和丝的地方不是很多,但不知道还有没有其它的盲区。
3、诚如所言,zmud高版本的语法更为严格。比如以上提到的#alias 的定义方式,suanyao中的[]等等都有所变化。但同时也提供了很多新的功能,像多行触发等等。总的来说,高版本的zmud机器人对用户更透明,流程要更明晰一些。
机器已经改得差不多了,不幸小雨宕机,无法调试。sigh
============================================================================================
又及,由于path必须得到确认才能行动,所以要想#step正确工作,应:
1. 在slowwalking中到时自动放弃项 失效;
2. 将step time改为一个较大值,如5000(5s);
3. 在触发里加上确认再继续行走,如{#stop;#step;...}