|
[模块]机器人失败处理
本模块为 机器人 运作出问题时如何处理, 下官抛砖引玉, 意在分享和讨论思路
目的:
机器人出问题时,要做的事情有三件:判定是否出现问题;恢复正常运行(如放弃当前任务,继续新任务);以及保存错误现场.
如此才能放心睡觉,让尚未完成的机器人自己满地爬,并且把需要修改地方的线索记录下来.
思路:
第一个目标,需要根据具体任务作出相应判断,如萧峰为接受任务超过若干时间杀手消失,或者小米跟随杀手跟丢了;护镖时镖车没了;慕容接受任务超过若干时间时,认为难以找到自主放弃
第二个目标,只需能够定位,即可找到继续或放弃或等待接新任务.
第三个目标,实现方法不少,下官思路是:获取判定错误前的若干行输出,写入相应日志文件,如下,蓝色部分为生成错误日志文件名称,绿色部分为获取输出段落并写文件,很简陋,但还算实用
function Fail.WriteLog ()
local dir = "F:\\zmud\\error log\\"
local filename = os.date ("%c") .. ".txt"
filename = string.gsub (filename, "/", "")
filename = string.gsub (filename, ":", "_")
filename = dir .. filename
local f = io.output(filename)
local total_lines = GetLinesInBufferCount ()
for line = total_lines - 500, total_lines do
local str = GetLineInfo (line, 1)
if str then
f:write (str, "\r\n")
end
end
f:flush ()
f:close ()
end
输出filename=F:\zmud\error log\051109 05_27_05.txt
说明:
仅仅实现前面两个目标,机器人即可达到不中断的目标,但会掩盖错误,不利于机器人生长发育。所以需要有第三个目标作为补充功能。
本贴旨在思路讨论。附件为下官所用的一个任务失败模块,供参考。
[ 本帖最后由 duno 于 2009-5-11 05:59 AM 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|