|
发表于 2010-12-10 11:15:31
|
显示全部楼层
以打坐机器人来说,我写个我的基本思路流程,你看看和你用线程的wait.lua哪个更好。
paths={}
path[dazuoloc][sleeploc]="e"
path[foodloc][dazuoloc]="e,w"
path[foodloc][sleeploc]="dd,"
path[drinkloc]][sleeploc]="kk,"
.....................
//既然反全自动机器人,就发path型的机器人。
char={}角色信息
//以下为hp取得的信息,由hp()函数自动取得
char.hp=0
char.hpmax=0
char.neili=0
char.neilimax=0
//一下为i 取得的信息,由item()函数自动取得
char.foodcount=0
char.dirinkcount=0
//以下为行走信息.
char.nowloc=dazuoloc
char.toloc=dazuoloc.
//以下为dazuo的信息
char.dazuobediantime=os.time()//取得打坐开始的时间,用于打坐时间过长的判断。
char.busy="dazuo"。
char.busytimeout=os,time
char.lastsleep=os.time
主函数:
function main=(
if busy!=null then
if os.time
return end//如果在忙则不处理。忙超时的内容由其他函数处理。
else
busytimeout(busy时间比预期的长,检查是否还在busy)
elseif nowloc~=toloc then char.busy="walking",walkpath(nowloc,toloc) end
elseif hp不足 then
if os,time-lastsleep>sleepdelay then if nowloc==sleep loc doleep else walkpath(nowloc,sleeploc)//测试是否可以睡觉,以及是否在睡觉的地方。
else yun recover,hp()
elseif food不足 then do_buyfood,参照sleep部分
elseif drink不足then do_buydrunk 参考food
elseif nowloc~=dazuoloc walkpath(nowloc,dazuoloc)
else 开始打坐 char.busytimeout = ostime + 3000,char.busy = "dazuo" ,do_dazuo
end
reset 主计时
end |
|