xspe 发表于 2012-4-5 21:06:49

我的插件运行不了,请教一下

各位大神,我的插件为何运行不了,这个插件我写得比较难看,但是不知道错误处在哪来,mushclient只是提示我插件错误,无法解析
我的这个是想写个丐帮的打听(dating)任务,通过获取NPC给的任务关键词去相应的城门
另外想请教,我这样写是不是思路是不是非常笨,还有没有更简洁的写法?require "wait"

require "tprint"

go_quest=function()
      place=GetTriggerInfo("get_quest", 102)---得到做任务的地点信息
      while place=("北门") do
      go_n()                  ---去北门做任务
      end                  
      while place=("东门") do
      go_e()                  
      end                  
      while place=("南门") do
      go_s()                  
      end                  
      while place=("西门") do
      go_w()                  
      end                  
end

go_n=function()
      wait.make (function ()--- coroutine below here
      wait.time(3)
      Execute( "out;n;n;n;n" ) ---去北门了
      send('l') ---通过看城门进行触发
      end)-- end of coroutine

end

go_e=function()
      wait.make (function ()--- coroutine below here
      wait.time(3)
      Execute( "out;e;e;e;e" ) ---去东门了
      send('l') ---通过看城门进行触发
      end)-- end of coroutine

end

go_s=function()
      wait.make (function ()--- coroutine below here
      wait.time(3)
      Execute( "out;s;s;s;s" ) ---去南门了
      send('l') ---通过看城门进行触发
      end)-- end of coroutine

end

go_w=function()
      wait.make (function ()--- coroutine below here
      wait.time(3)
      Execute( "out;w;w;w;w" ) ---去西门了
      send('l') ---通过看城门进行触发
      end)-- end of coroutine

end

北大侠客行MUD,中国最好的MUD

xspe 发表于 2012-4-5 21:08:24

Mushclient提示:
"go_quest()
Trigger 函数 "dating" 无法被执行 - 脚本已被禁用 或者 解析错误。"

xuesheng 发表于 2012-4-7 18:35:53

学习了!

xspe 发表于 2012-4-8 23:50:53

本帖最后由 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   ---获取一个局部变量,就是接任务的地点,但是这个写法啥意思?"place=w"这个""表示获取就是变量吗?为何是1呢?而上句的"l,w"一直没搞懂

    Execute(path)   ---按获取的变量,来执行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)   ---当根据上面的判断,结束任务,按path数组里的place数组的第二个值来执行回去的路径

end)

end


既然LUA是计算机语言,以上就是我能理解的语言,并且给出翻译,各位大神一看就知道我确实是个编程小白,请大神能用通俗易懂的语言来帮我解释一下,谢谢yct38

xspe 发表于 2012-4-10 00:40:44

谢谢istillsu大侠,这下明白了,我个人认为使用Mushclient来编程玩MUD也是MUD的乐趣之一
以后请多多指教~yct6
页: [1]
查看完整版本: 我的插件运行不了,请教一下