本帖最后由 xspe 于 2012-4-8 03:53 PM 编辑
我没有什么编程经验,我按自己的理解把Istillsun大侠的程序翻译一下,不懂的地方请Istillsun和其他大侠指教
- require "wait" ---读取模块"wait"
- require "tprint" ---读取模块"tprint"
- path={
- ["西门"]={"out;w;w;w;w", "e;e;e;e;enter shudong"},
- ["东门"]={"out;e;e;e;e", "w;w;w;w;enter shudong"},
- ["北门"]={"out;n;n;n", "s;s;s;enter shudong"},
- ["南门"]={"out;s;s;s;s", "n;n;n;n;enter shudong"},
- } ---创建了一个名字为path的数组,里面包含有四个类似为“西门”的数组,数组含有两组值
- go_quest=function() ---创建了一个名字为go_quest的function函数
- wait.make(function() ---调用了wait模块里的wait.make函数
- Execute("ask zuo about job") --在mushclient里命令行里执行"ask zuo about job"
- l,w=wait.regexp("你向左全打听有关『job』的消息。") ---这句和下面一句我不太懂了,是调用了wait模块里的wait.regexp,同时为何要触发这句呢?
- l,w=wait.regexp("打探消息就靠你们这些跑腿的了,你去(.*)打听") ---接上面的,这个写法我不太懂,是大概知道需要触发句,同时需要正则来获取变量
- local place=w[1] ---获取一个局部变量,就是接任务的地点,但是这个写法啥意思?"place=w[1]"这个"[1]"表示获取就是变量吗?为何是1呢?而上句的"l,w"一直没搞懂
- Execute(path[place][1]) ---按获取的变量,来执行path数组对应的值(也就是路径)
- while true do ---这句不理解,意思是当获取了变量的值,则执行?是这个意思吗?
- Execute("dating") ---同上
- l,w=wait.regexp("你已经完成了打听消息的任务,可以回去复命了!",3) ---这个写法不理解,并且触发后还跟了个",3",不明白...
- if l~=nil then ---这句判断是什么意思?
- print("10s后返回...") ---输出信息“10s后返回...”
- wait.time(10) ---等待10秒
- break ---这个"break"的作用是结束if判断吗?
- end
- end
- Execute(path[place][2]) ---当根据上面的判断,结束任务,按path数组里的place数组的第二个值来执行回去的路径
- end)
- end
复制代码
既然LUA是计算机语言,以上就是我能理解的语言,并且给出翻译,各位大神一看就知道我确实是个编程小白,请大神能用通俗易懂的语言来帮我解释一下,谢谢 |