|
| 机器人小技巧
|
|
|
|
|
|
| 首先声明,我对编机器人不是很在行。以前自己用过的机器人基本上是靠打着“拿来主意”的招牌共产过来的 |
|
| 。这篇文章主要是写给一些新手看的,希望对他们今后编机器人能够有所帮助。用一句比较流行的话来结束这 |
|
| 段开场白吧:兄弟抛块砖,有玉的尽管砸过来! |
|
| 一:关于应付pk。
|
|
|
|
| 1,自动提示 你是否有过这样的经历:挂上一个机器人,然后去做别的事情(比如上BBS),过了一会回 |
|
| 去一看,竟然被别人PK了。为了防止这种情况,我们可以做一个自动提示的trigger。只要一句话就 |
|
| 可以实现: |
|
| #TRIGGER {^看起来(*)想杀死你!} {pker=%1;#mess 救命呀,@pker |
|
| 要杀我啦 !} {} 519 |
|
| (直接在zmud的命令栏中输入即可,下同)
|
|
| 这样,当有人要杀你的时候。zmud就会自动弹出一个对话窗进行提示。顺便说一下,这里还需要考虑到一 |
|
| 些特殊的pk方法,例如冰刀,瞌睡虫,迷魂,蚀月之类。原理同上,不再赘述。 |
|
|
|
| 2,自动保护 首先,可以在受重伤的情况下quit。这也是大家经常使用的方法。例如:
|
|
| #TRIGGER {^( 你受伤过重,已经有如风中残烛,随时都可能断气。 )} {quit} { |
|
| quit} 519 |
|
| #TRIGGER {^( 你已经陷入半昏迷状态,随时都可能摔倒晕去。 )} {quit} {qu |
|
| it} 519 |
|
| #TRIGGER {^( 你受伤过重,已经奄奄一息,命在旦夕了。 )} {quit} {quit |
|
| } 519 |
|
| #TRIGGER {^( 你上一个动作还没有完成,不能退出。)} {#wa 500;quit} |
|
| {quit} 519 |
|
| 注意最后一句话一定不能少,以防止你在busy的状态下遭到pk。顺便说一个命令:#di,输入后,z |
|
| mud就会自动断线。在一些mud中,是不能对断线的玩家进行攻击的,所以可以利用这个命令进行断线保 |
|
| 护。:)) |
|
|
|
| 3,自动记录 如何知道你不在的时候,是谁PK了或者试图PK你呢?这里有两种方法可以实现。
|
|
| 第一种:使用zmud的自动记录功能。只要在zmud的file菜单中选择new log,指定保存目 |
|
| 录和保存文件名。或者直接使用#log命令,例如,输入#log abc.txt,即可生成abc.t |
|
| xt的记录文件。想停止输入时输入#log即可。这样,zmud就可以将所有的内容都储存成为txt文 |
|
| 件。这样,只要打开该文件,你就可以看到自己不在的时候发生的所有事情了。 |
|
| 第二种:通过trigger将pker的id,中文名字记录下来,推荐使用。方法为:
|
|
| #TRIGGER {^看起来(*)想杀死你!} {pker=%1;id here;alias p |
|
| ker @pker} {} 519 |
|
| #TRIGGER {(@pker)(%s)= (%x)} {pkid=%1;alias pkid |
|
| @pkid;#case %random(1,4) {chat @pkid,我会报仇的} {ch |
|
| at @pkid,我记住你了} {chat @pkid,为什么要杀我?} {chat @pkid |
|
| ,走着瞧!} } {1} 519 |
|
| #TRIGGER {^你死了。} {#t+ rumor} {die} 519
|
|
| #TRIGGER {【谣言】某人:洒水车被(*)吃掉} {pker=%1;alias pker |
|
| @pker;#t- rumor} {rumor} 518 } {rumor} 518 |
|
| 这样就可以把最后一个要杀你的玩家的id设为alias中的pkid,中文名字为alias中的pke |
|
| r,并且随机给他一个警告(玩家可以根据自己的喜好更改这些警告)。如果你不幸被杀,它还可以把系统的 |
|
| 谣言记录下来,即使pker变成别的玩家也无所遁形。这样,不管你下一次使用的是不是同一台机器。只要 |
|
| 进入游戏,看一下自己设定的alias中的pker和pkid。就可以知道仇家是谁了。 |
|
|
|
| 4,防止误触发
|
|
| 先举两个误触发的例子。例如,我在chat中谈道自己被妖怪打得不行,随便说了一句
|
|
| “【闲聊】洒水车(Sanfeng):( 你已经陷入半昏迷状态,随时都可能摔倒晕去。 )”。
|
|
| 这就有可能触发你的自动保护trigger,导致你quit。这是无意的误触发。还有一些恶意的误触发 |
|
| 更令人讨厌。举个例子,我和你在一起打山妖或者是水蛭精。你的trigger是当潜能为100时就飞回 |
|
| 去和师父学武功。我就可以在你身边“say 潜能: 100”,把你赶走。嘿嘿,够阴险吧? |
|
| 解决误触发也很简单在。首先,可以在需要触发的语句前加一个^(shift+6)符号。这就是用来防止 |
|
| 误触发的,可以强制pattern从每行的开头开始匹配。其次,可以通过#t+和#t-命令来开启或关 |
|
| 闭一类trigger,从而避免误触发。例如上面通过记录谣言来确认pker的trigger就是使用 |
|
| 的这个方法:先将记录谣言的trigger起个名字(我用的是rumor)。当系统出现“你死了”的提 |
|
| 示后,用#t+ rumor命令打开rumor类trigger。而rumor这个trigger本身 |
|
| ,可以在记录完pker的名字以后将自己关闭(#t- rumor)。这样,就不 |
|
| 会再被触发了。顺便介绍一个命令:#ig,这是一个很有用的命令,它使zmud禁用所有的trigge |
|
| r.(就是在zmud右下角的枪形图标上打叉的效果) |
|
|
|
| 二,关于全自动机器人。
|
|
| 所谓的“全自动机器人”是指能够长时间运行,无须人看管的机器人。
|
|
| 长时间运行,首先就需要解决食物和饮水的问题。这里以西游记450为例:
|
|
| 可以做一个自动判断食物的trigger,当食物小于某一固定数值(例如100)的时候,就去天竺买一 |
|
| 颗 |
|
| “养身丹”补充。具体方法为:
|
|
| #TRIGGER {食物:%s(%d)/ 400%s} {food=%1;#if (@food< |
|
| 100) {fly tianzhu;#8 w;s |
|
| ;s;e;buy dan from hou;eat dan}} {food} 519
|
|
| (这里的数值400为食物最大值,因人而异)
|
|
| 无人看管,就需要自动连线来应付断线。自动连线主要有两种方法。
|
|
| 第一种是设置alias,方法为:
|
|
| #ALIAS atconnect {gb;no;YOURNAME;YOURPASSWORD}
|
|
| 这种方法比较简单,易用,推荐使用。不过需要注意的是,这样一来,你的PASSWORD就被储存在AL |
|
| IAS之中了。如果不是在自己的机器上的话,最好不要SAVE,这样ZMUD被关闭后就找不到你的tr |
|
| igger了。或者干脆及时删除。 |
|
| 第二种是用trigger。
|
|
| 第一句:#TRIGGER {您的英文名字:} {%char} { autolog} 963
|
|
| 第二句:#TRIGGER {请输入密码:} {%pass;#T- autolog} { auto |
|
| log} 963 |
|
| 其实,当你的character第一次连线进入的时候,zmud都会提问你是否设置自动连线的。只要选 |
|
| 择“YES”即可。此时,你的PASSWORD将会以*****的形式被储存下来。这也是极不安全的, |
|
| 只要使用一些黑客软件(例如snadboy)就可以轻松破解,从而获得你的密码。 |
|
|
|
| 还有一种特殊情况:mudos重启或者你由于发生意外被迫quit。此时,你重新连进游戏后,进入的是 |
|
| 南城客栈或者其它你save的地方,而且身上除了法宝和钱之外一无所有。这种情况,可以用一些特殊的语 |
|
| 句来触发。所谓特殊的语句,就是指只有当你第一次连线进入的时候才会出现的提示的话。例如: “目前权 |
|
| 限:(*)”等等。 |
|
| 如果因为遇到pker或者其它情况而不想自动连线。可以通过更改密码的方法来破坏自动连线。
|
|
| 要想实现机器人的全自动,需要考虑到非常多的情况。但是,无论如何仔细,也没有绝对的把握保证你的机器 |
|
| 人不出问题。一般来讲,越是复杂的机器人就越容易出错,越容易停下来。万一出现这种情况,该怎么办呢? |
|
| 这就需要用到finger命令了。finger 某人,就可以得知有关该玩家的连线,权限等资料。例如 |
|
| :finger sanfeng就可以看到: |
|
|
|
| 英文代号: sanfeng
|
|
| 姓 名: 洒水车
|
|
| 权限等级: (player)
|
|
| 电子邮件地址: 不告诉你
|
|
| 上次连线: Fri Aug 25 10:35:34 2000
|
|
| 洒水车目前正在连线中。
|
|
| 当该玩家连续60秒以上未输入任何命令时,就会出现如下的话:
|
|
| 洒水车目前正在连线,已发呆 100 秒钟。
|
|
| 利用finger命令,我们就可以应付机器人停止的意外情况了。先找一个 dummy,放在南城客栈, |
|
| set no_accept(防止别人用毒刀暗算)。每隔60秒就finger你的主id,如果出现发 |
|
| 呆的情况下就tell他一句话。而当主ID接收到dummy发送的信息后就可以继续运行了。 |
|
|
|
| 5 关于自动升级。
|
|
| 很多自动的机器人都是打架长潜能,然后去和师父学武功的。当你的武功比师父低的时候,机器人很好做。但 |
|
| 是,到了后期,你的武功高于师父,就需要判断是否学够了。否则,将会浪费大量的潜能。 |
|
| 下面这个trigger可以进行自动判断(这个是针对xyj450的原码的)
|
|
| #TRIGGER {基本轻功*%s(%d)/(*)$ } {#if %eval((%1+1)*( |
|
| %1+1)-%trim(%2))<0 {...} {...} } {} 519 |
|
| 上面是以基本轻功为例的。
|
|
|
|
| 三,杂七杂八
|
|
| 先说说一个简单的命令:#cap。这个命令 可以把你想要的信息抓下来,在另外一个窗口储存下来,从而 |
|
| 方便浏览。例如,你想把所有聊天的内容放到talk窗口中去,就可以用下面这个trigger来实现。 |
|
| #TRIGGER {【} {#cap talk} {} 519
|
|
| 一些人气很旺的站点,由于在线玩家比较多,所以聊天内容也很多,从而导致聊还动速度过快。既然我们已经 |
|
| 用#cap命令将聊天内容抓到talk窗口中,就可以用#gag命令把主窗口中的聊天内容摒闭掉。方法 |
|
| 为: |
|
| #TRIGGER {【} {#gag} {} 519
|
|
| 这样,即使打开聊天频道,聊天的内容也不会出现在你的主窗口中了。
|
|
| #gag命令还可以摒闭掉你不想看到的内容,例如某某人走了过来什么的。
|
|
| 对一些重要的或者是敏感的字符,例如你要杀的妖怪,仇家,黄金什么的,可以用#cw或#co来改变颜色 |
|
| ,达到便于识别的目的。。#cw可以使一个字符串改变颜色,#co可以使字符串所在的整行改变颜色。 |
|
| #TRIGGER {洒水车} {#cw 10} {} 519
|
|
| 如果想让一个颜色更亮丽一些,就在它原来的值上加8,比如9就表示更亮的兰色;如果是想改变背景的颜色 |
|
| ,就将它原来的值乘16;比如要想得到红色的背景则使用的颜色代码为64;改变前景的字体要再加上12 |
|
| 8。 |
|
| 比如:
|
|
| #co 159 设置最后接受的一行文本是蓝底粗黑白体(1*16+15+128)
|
|
| 其中的10代表亮绿色。至于具体哪个数字对应什么颜色嘛,大家自己慢慢试验吧,呵呵@_@
|
|
| 最后,再简单说说zmud中的button,key,status以及paths,也就是按钮,宏键, |
|
| 状态条和自动行走。 |
|
| 我们可以把一些常用的命令做成按钮。只要在Action菜单中选择Make button即可(或者直 |
|
| 接ctrl+b)。可以设置button的位置,种类,尺寸,颜色,开启或者关闭时的显示等等。至于具 |
|
| 体的做法则很简单,不再多说。如果你看不太懂英语的话,可以下载一个中文版的zmud。 |
|
| keys就是用某一个键值代替具体的命令。例如,可以用F12代替quit(方便逃命的说)。zmud |
|
| 提供了一些默认的宏键。小键盘区的方向键就分别表示south,north,east,west等。可 |
|
| 以用如下的方法设置宏键:按ctrl+k键,zmud会提示你“Press key combinat |
|
| ion to define/edit”,按下你想要定义的键(例如F12),这时zmud又会提示你 |
|
| “Enter definat ion for this key”,输入你想要用宏键代替的命令(例 |
|
| 如quit)。 |
|
| 状态条还是蛮有用处的。它可以提示你要做的任务或者是要灭的妖怪的名字,更可以帮你计算做任务或者是灭 |
|
| 妖的速度和效率。比如用状态条来记录要灭的妖,灭妖次数以及奖励。先定义一个trigger来提取相应 |
|
| 的变量(假设@yaoguai和@jiangli分别为灭妖对象和奖励数目)。再用鼠标右击状态条,选 |
|
| Define status bar,在status line里输入“要灭的妖:@yaoguai” |
|
| 和“奖励:@jiangli”。至于次数统计,先在变量中定义“jiang”的数值为1,再做一个每次 |
|
| 奖励的时候#add jiang 1的trigger,最后在状态条中输入“奖励次数:@jiang” |
|
| 即可。 |
|
| 自动行走容许你将走过的一段路定义为一个路名,然后在路的起点与终点间你可以高速短时的行走这对于找妖 |
|
| 怪是非常有用的。有了自动行走,就不用自己费力地敲键盘到处找妖怪了。很多mud网站都可以下载到自动 |
|
| 找妖怪的机器人。最简单的自动行走的制作方法,就是在path菜单中选择“开始录制(start re |
|
| cording)”,然后把你想要自动行走的路径走一遍,走完以后“结束录制(stop record |
|
| ing)”,再按照提示给这段路径起一个名字就可以了。另外,在paths菜单中的settings选 |
|
| 项中还可以设置更改每走一步的时间间隔。默认数值为五秒,太长了。开始自动行走也很简单,比如先做一个 |
|
| 走遍长安城的paths,并命名为changan,这时只要输入#slow changan(这是慢速 |
|
| 行走,如果想快速行走,使中间没有时间间隔,输入“.changan”),就可以按照既定的路径行走了 |
|
| ,当你想停下来的时候,输入#stop即可。如果你走错了方向,你可以用#BACKUP 来走回去。# |
|
| REVERSE还可以让你反方向行走。 |
|
| 自动行走是建立在定义好的方向上的,如north 等,可以增加这些定义做更多的事,比如增加o 作为 |
|
| open door;那么你就可以在走动中开门入房了了. |
|
| 【本页链接】http://www.skymud.com/article/2004-11/article-1099415037.htm |