|)你使出「一苇渡 ... 高手来帮我批注一下每一句都是啥意思,有点看不明白 ,北大侠客行MUD论坛" />

北大侠客行MUD论坛

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

高手来帮我批注一下每一句都是啥意思,有点看不明白

[复制链接]
发表于 2011-9-13 07:40:35 | 显示全部楼层 |阅读模式
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
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-9-13 09:08:40 | 显示全部楼层
这个不难理解吧,不过不太熟悉java。
大概翻译以下:
渡河函数:
发送 duhe,
等待文字反馈。
没有反馈,继续调用渡河函数。

反馈1:
成功渡河,返回。
反馈2:
渡河失败,调用yellboat(),返回。
反馈3:
渡河异常,输出“出现异常”,返回。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-9-13 09:43:58 | 显示全部楼层
java?我怎么看着不像啊,是不是lua啊?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-9-13 09:46:34 | 显示全部楼层
原帖由 pizzagoo 于 2011-9-13 09:08 AM 发表
这个不难理解吧,不过不太熟悉java。
大概翻译以下:
渡河函数:
发送 duhe,
等待文字反馈。
没有反馈,继续调用渡河函数。

反馈1:
成功渡河,返回。
反馈2:
渡河失败,调用yellboat(),返回。
反馈3 ...



框架当然看的懂了,这个不需要解释
具体是一些语法是使用方法,意义
最好是一句一句注释下
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-9-13 09:47:33 | 显示全部楼层
这个是lua,不是java
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-9-13 09:51:49 | 显示全部楼层
这里好像使用lua的面向对象,通过这个想学习下,这方面的内容
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-9-13 09:52:38 | 显示全部楼层
原帖由 onlinego 于 2011-9-13 09:47 AM 发表
这个是lua,不是java

这是是lua吗?你确信?真的确信?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-9-13 09:53:25 | 显示全部楼层
原帖由 mml 于 2011-9-13 09:43 AM 发表
java?我怎么看着不像啊,是不是lua啊?

看错了,sigh

[ 本帖最后由 pizzagoo 于 2011-9-13 09:55 AM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-9-13 09:54:04 | 显示全部楼层
牵扯到的其他部分

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[id] =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[status])
end -- function wait

[ 本帖最后由 onlinego 于 2011-9-13 07:12 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-9-13 09:55:22 | 显示全部楼层
原帖由 pizzagoo 于 2011-9-13 09:53 AM 发表

看错了,怀疑是vbscript



的确是lua
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 06:31 PM , Processed in 0.009978 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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