老师们你们辛苦了!
关于心跳的原理,这是我自己总结出来的,以前有源码的时候没好好看,现在没源码也没机会看了,也不知道对不对:
首先,调好心跳,然后一定要有一个“观战”的大米,我一开始一直想不通为什么一定要这样一个东西,后来想了想,应该是和心跳有关,不用观战大米,也有调准心跳的时候,但是,一旦主id离开这个场景后,下次再进来fight,则刚调好的心跳又会乱套。放一个大米在这里,相当于锁定了心跳,因为大米一直不曾离开这个场景(同样的,如果大米发生了走动,心跳又会乱套),再想深一层,为什么需要心跳? 我的分析是:对于MUD而言,同一场景的所有人物(包括NPC),必须保持统一的心跳频率,否则就有可能发生那边已经打完了这边还在战斗的时空错乱情况(当然网速慢可能会造成这种局面,但至少在服务器端不允许发生这种混乱)。心跳的最小单位应该是一个可视的场景,不可能整体统一,否则服务器负担将会极其沉重,这就解释了为什么走出一个场景后心跳会发生错乱的情况。
我的机器人是这样的:
第一步调心跳: 大米,NPC,练功ID 处于同一房间,练功ID Fight all NPC,Halt,走开,Quit(相当于心跳被大米锁定)
练功ID再次连线,进入同一场景,Fight ALL NPC, 让自己忙,
关于让自己忙,经试验,有多种方法:
1. unwield jitui wield jitui
2. perform 一个不存在的招式
3. yun recover , yun regenerate
4. eat, drink
上述的这些忙,虽然都是忙,但是有区别的,实际只有yun recover , yun regenerate可用,因为其他的忙时间太长了,一般都要维持两个周期以上,这样对练功ID来说是吃亏的,忙的周期太长,根本顶不住,而且busy fight也并不需要忙这么久。事实上我们需要的是,一个心跳周期内,忙一次就可以了,我的设定是间隔一秒执行一次yun recover,特别注意的是,当气为满值的时候,也就是“你的气力充沛”时,ID 是不会陷入忙状态的。一旦发生这种情况,就执行一次yun regenerate,让自己忙一次,一旦进入忙状态,必然会被npc打到,也就是气肯定会减,这时候,再不断执行yun recover即可保持忙的循环。另外,当force过低的时候,也就是“你的内力不够”时,也不会进入忙状态,这种时候,就离开sleep啦,不用担心心跳紊乱,因为“观战”的大米ID替你锁定着心跳呢,嘿嘿!