高手来帮我批注一下每一句都是啥意思,有点看不明白
alias 处理特殊房间一个渡河的alias
function alias:duhe()
wait.make(function()
world.Send("duhe")
local l,w=wait.regexp("(> |)你使出「一苇渡江」渡过了.*。$|^(> |)你的修为不够!$|(> |)这里的水太深太急,你渡不过去。$|^(> |)什么?$|^(> |)你的内力修为不够,怎能支持!?",5)
if l==nil then
self:duhe()
return
end
if string.find(l,"你使出「一苇渡江」") then
local b
b=busy.new()
b.interval=0.3
b.Next=function()
self:finish()
end
b:check()
return
end
if string.find(l,"你的修为不够") or string.find(l,"这里的水太深太急,你渡不过去") or string.find(l,"你的内力修为不够,怎能支持") then
self:yellboat()
return
end
if string.find(l,"什么") then
print("出现异常")
self:finish()
end
wait.time(5)
end)
end
北大侠客行MUD,中国最好的MUD 这个不难理解吧,不过不太熟悉java。
大概翻译以下:
渡河函数:
发送 duhe,
等待文字反馈。
没有反馈,继续调用渡河函数。
反馈1:
成功渡河,返回。
反馈2:
渡河失败,调用yellboat(),返回。
反馈3:
渡河异常,输出“出现异常”,返回。 java?我怎么看着不像啊,是不是lua啊? 原帖由 pizzagoo 于 2011-9-13 09:08 AM 发表 http://www.pkuxkx.net/forum/images/common/back.gif
这个不难理解吧,不过不太熟悉java。
大概翻译以下:
渡河函数:
发送 duhe,
等待文字反馈。
没有反馈,继续调用渡河函数。
反馈1:
成功渡河,返回。
反馈2:
渡河失败,调用yellboat(),返回。
反馈3 ...
框架当然看的懂了,这个不需要解释
具体是一些语法是使用方法,意义
最好是一句一句注释下 这个是lua,不是java 这里好像使用lua的面向对象,通过这个想学习下,这方面的内容 原帖由 onlinego 于 2011-9-13 09:47 AM 发表 http://pkuxkx.net/forum/images/common/back.gif
这个是lua,不是java
这是是lua吗?你确信?真的确信? 原帖由 mml 于 2011-9-13 09:43 AM 发表 http://pkuxkx.net/forum/images/common/back.gif
java?我怎么看着不像啊,是不是lua啊?
看错了,sigh
[ 本帖最后由 pizzagoo 于 2011-9-13 09:55 AM 编辑 ] 牵扯到的其他部分
busy={
interval=0.1,
timeout=10,
new=function()
local b={}
setmetatable(b,{__index=busy})
return b
end,
}
function busy:Next() -- 接口函数
end
function busy:check()
wait.make(function()
world.Execute("halt;set busy")
local l,w=wait.regexp("^(> |)你现在不忙。$|^(> |)设定环境变量:busy \\= \\\"YES\\\"$",self.timeout) --超时
if l==nil then
print "网络太慢或是发生了一个非预期的错误"
self:check()
return
end
if string.find(l,"你现在不忙") then
self:Next()
return
end
if string.find(l,"设定环境变量:busy") then
local f=function() self:check() end
f_wait(f,self.interval)
return
end
wait(self.timeout) --timeout
end)
end
-- 在脚本中调用这个函数来暂停当前的线程
function f_wait(address, seconds)
id = "wait_timer_" .. GetUniqueNumber ()
hours = math.floor(seconds / 3600)
seconds = seconds - (hours * 3600)
minutes = math.floor(seconds / 60)
seconds = seconds - (minutes * 60)
--print("等待",seconds,"s"," ",id)
wait_table =coroutine.create(function()
-- print("执行")
address()
end)
status = AddTimer (id, hours, minutes, seconds, "",
timer_flag.Enabled + timer_flag.OneShot +
timer_flag.Temporary + timer_flag.Replace,
"wait_timer_resume")
assert(status == error_code.eOK, error_desc)
end -- function wait
[ 本帖最后由 onlinego 于 2011-9-13 07:12 PM 编辑 ] 原帖由 pizzagoo 于 2011-9-13 09:53 AM 发表 http://www.pkuxkx.net/forum/images/common/back.gif
看错了,怀疑是vbscript
的确是lua