|
楼主 |
发表于 2013-1-4 10:58:40
|
显示全部楼层
本帖最后由 lzkd 于 2013-1-9 11:02 AM 编辑
第三章 #ok行走方式
很抱歉,工作实在是忙,到现在才能挤出一点时间来写教程,先向大家说声对不起了。
所谓#ok行走方式,就小刀所见,是maper第一个提出来的。首先在这里,让我们向这位北侠史上了不起MUSHer表示一下敬意,他的存在,影响了一大批MUSH的使用者。
我们先来了解一下,#ok行走方式的工作原理。
在set brief 2的情况下,我们每行走一步,都可以看见如
这里明显的出口是 eastup、north、south 和 west。
这样的字。每当这行字出现一次,我们就可以认为,已经行走了一步。
首先,我们将路径取出,放到一个table里,大致是这样一个格式。
- mypath = {
- "n",
- "ne",
- "nw",
- -- ...
- }
复制代码
第二,我们设置一个全局变量,初始值设置为1(因为lua的table默认下标为1),每走一步则加1(怎么算是走了一步,见下)。
第三,我们写一个tri,match部分就是
这里明显的出口是 eastup、north、south 和 west。
类似这样的内容。每触发一次,我们的全局变量就+1,然后,根据全局变量的值,从table中,取出当前应该行走哪一步,并且发送出去。
好了,到这里#ok行走方式的工作原理,就全部讲完了。
下面,我们来说一下,#ok行走方式的优缺点。先说优点。
1、很明显,这种行走方式,解决了一下输入太多命令,会被服务器吃掉的问题。
2、因为是通过tri进行触发行走的。所以,哪怕网络速度再卡,都不会有问题,因为只有每成功了一步,才会继续下一步。
3、这种行走方式的实现,比较简单,小巧。基本上可以说是看了就会,容易上手。
然后是缺点。
1、很明显,这种方式对付不了拦路npc,不过这是另外一个难题了。
2、行走的过程中,网络卡没问题,但一旦出现“被拌了一下”,或者如推车乱入这种情况,那就完蛋了。
3、这种行走方式,当中不能停止(其实,真的要停止也不是不可以,但不经济),比如说,看见盗宝人了,就没办法停下来开打。
好了,到这里#ok行走方式,已经全部介绍完了。按说,应该根据这个思路,已经可以写出完整的代码了。也不知道,现在北侠各位大虾的MUSH水准如何了,是否需要给出一个参考代码。这个,就看各位同学的反应吧。 |
|