北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 5256|回复: 4

Mush Lua脚本Execute挂接

[复制链接]
发表于 2015-11-7 20:49:05 | 显示全部楼层 |阅读模式
MushClient的Lua脚本对命令的原始发送采用的是Send函数,而Execute是其命令解释器封装,其不同之处是Execute可以调用alias、解析脚本标识符标识的简单脚本等以完成复杂动作指令。
我们对Execute函数再次挂接封装,可以达到一些意想不到的好处。这里,为啥不直接对Execute再封装而是要挂接呢?
例如
MyExecute=function(doing)
   --之前处理
   Execute(doing)
   --之后处理
end
以后调用MyExecute就可以了吧,但是已有的很多代码很多是用最终要调用Execute的,所以除非全部替换Execute,那么还是挂接Execute的好。
好处有哪些呢?
其一 行走状态的直接切换:
假设我们给定的脚本标识符是`(左上角~`这个键上的符号),我们一般爱把走路直接绑定到数字键盘上,如north绑定到8,按8可以向北走,我们也可以用脚本解析绑定例如`Execute("north"),绑定到8,可以按8向北走。
把下面的代码写到脚本文件中,确保加载时调用一次
_Execute=Execute
Execute=function(doing)
        Note("执行"..doing)
        _Execute(doing)
end
这时执行按键8操作时,不仅会向北走,还会显示执行north,已经挂接上Execute函数了,很多脚本以Execute执行的内容都会显示,算是比较中层的挂接(挂接Send为底层的)。
假如有正常行走状态和赶车行走状态我们可以这样处理一下
Execute=function(doing)
if doing是基本方向指令 and 在赶车状态中 then
     _Execute("gan che to "..doing)
else
    _Execute(doing)
end
end
建立Alias ganche,发送脚本标记赶车状态后,输入ganche,当再按键方向键操作时就可以直接支持赶车操作了。

其二 复杂指令流记录:
当我们给一个记录指令流标记,就可以实时记录指令流。
        建立个指令流池ExecutedPool={}
       当有标记时,可以把实时把所有doing指令用table.insert(ExecutePool,doing)插入池中。
记录了复杂指令流,其简单用途就是非常方便的制作遍历路径,按键操作路径都可以被正常记录下来。
复杂用途,是分析制作更复杂的机器人,例如记录所有指令后,可以按照,时间、地点、人物、状态、npc等,情况直接给出各种状态下对应指令的学习,完成自动执行,能够分析的维度越多则可以学习的更加聪明,人是什么时间、什么地点、什么状态、什么任务、什么npc等等情况下执行了什么指令,机器人可以同样按照这些情况直接自动回放学习的记录。

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-11-9 19:45:17 | 显示全部楼层
楼主的思路非常好~~。目前你的用途主要是记录键盘操作,或指令流。。。要是还能举例说明其他用法就更完美了,比如:这个部分::>>。
例如记录所有指令后,可以按照,时间、地点、人物、状态、npc等,情况直接给出各种状态下对应指令的学习,完成自动执行,能够分析的维度越多则可以学习的更加聪明,人是什么时间、什么地点、什么状态、什么任务、什么npc等等情况下执行了什么指令,机器人可以同样按照这些情况直接自动回放学习的记录
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-11-21 10:44:27 | 显示全部楼层
对于我这类目标是全自动机器人的来说,貌似键盘流没啥意义
不过,你们游戏里没有nd或者nu这类的情况吗?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-11-21 10:58:55 | 显示全部楼层
回复 3# ltblue
这个不是按键流,是指令流。绑定nd,nu是很简单的,比如加上ctrl键等等。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-11-21 11:59:45 | 显示全部楼层
回复 4# suwuji


    我打算全自动,所以尽量减少手动输入
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-24 03:49 PM , Processed in 0.009674 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表