北大侠客行MUD论坛

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

请教mush 一个问题

[复制链接]
发表于 2015-1-2 01:19:33 | 显示全部楼层 |阅读模式
  1. function do_job()
  2.      if string.find(task,"xiaofeng") then
  3.          Note("找到")
  4.          while true do
  5.          Execute("ask shashou about fight")
  6.          wait.make(function()
  7.         l,w=wait.regexp("^[> ]*蒙面杀手说道:「就你也配跟我讨教功夫?!」|^[> ]*蒙面杀手说道:「要打便打,不必多言!」")         
  8.          if string.find(l,"蒙面杀手说道:「就你也配跟我讨教功夫?!」") then
  9.          Note("不是你的任务目标")
  10.          --bianli_goon()  
  11.           elseif string.find(l,"蒙面杀手说道:「要打便打,不必多言!」") then
  12.             Note("找到目标")
  13.             --kuangfeng=0
  14.          --DoAfterSpecial(0.5,"t+ 萧峰;look shashou;follolw shashou;fight shashou",10)
  15.            end
  16.              end)
  17.             end
  18.     end        
复制代码


这段代码,我是设置有一个触发,set find 1, 当出现这个的时候就do_job,每次do_job mush 就崩溃了,我实在找不出问题所在,请大神们指点下!

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-1-2 02:58:35 | 显示全部楼层
回复 1# mmdntt

  1. function do_job()
  2.      if string.find(task,"xiaofeng") then
  3.          Note("找到")
  4.                  wait.make(function()
  5.          while true do
  6.          Execute("ask shashou about fight")
  7.          
  8.         l,w=wait.regexp("^[> ]*蒙面杀手说道:「就你也配跟我讨教功夫?!」|^[> ]*蒙面杀手说道:「要打便打,不必多言!」")         
  9.          if string.find(l,"蒙面杀手说道:「就你也配跟我讨教功夫?!」") then
  10.          Note("不是你的任务目标")
  11.          --bianli_goon()  
  12.           elseif string.find(l,"蒙面杀手说道:「要打便打,不必多言!」") then
  13.             Note("找到目标")
  14.             --kuangfeng=0
  15.          --DoAfterSpecial(0.5,"t+ 萧峰;look shashou;follolw shashou;fight shashou",10)
  16.            end
  17.             
  18.             end
  19.                         end)
  20.     end        
复制代码
没排版
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-1-2 03:00:52 | 显示全部楼层
另外,你这个while true的无限循环是不打算跳出来吗?既没有break也没有return。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-1-2 03:07:40 | 显示全部楼层
回复 3# cappuccino


    我去掉这个while 直接wait.make 也是崩··
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-1-2 03:17:03 | 显示全部楼层
本帖最后由 mmdntt 于 2015-1-1 07:31 PM 编辑
  1. function do_job()
  2.      Note("找到")
  3.          if string.find(task,"xiaofeng") then Execute("ask shashou about fight")
  4.                      wait.make(function()
  5.          local p,w=wait.mulregexp({
  6.                      {"^[> ]*你向蒙面杀手打听.*\\n蒙面杀手说道(\.*)\\n",true,2},
  7.                                 })        
  8.             print("line= ",p)                        
  9.                         if string.find(w[1],"也配跟我讨教") then
  10.                         Note("不是你的任务目标")
  11.                         bianli_goon()  
  12.                         elseif string.find(w[1],"要打便打") then
  13.                         Note("找到目标")
  14.                         kuangfeng=0
  15.              DoAfterSpecial(0.5,"t+ 萧峰;look shashou;follolw shashou;fight shashou",10)
  16.                         end
  17.                         end)
  18.     end               
  19.                         
  20. if string.find(task,"yuxi") then DoAfterSpecial(0.3,"t+ 玉玺;fight pantu;pq",10) return end
  21. end
复制代码

纸箱妹妹再看下啊,还是崩!!
我多次测试,好像问题是处在wait.make 上!

是不是我在mush 中做个触发器set find 1,然后调用脚本的do_job() 导致的?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-1-2 03:43:33 | 显示全部楼层
回复 5# mmdntt


    yawn...

根据你5楼的代码,俺是看不出啥了。。几点建议:

1. 不要用触发,单独手动执行一次do_job(),看是否崩溃,以确定是否是函数本身的问题
2. 在do_job里只留一个空的wait.make(function ()),检验下是否崩溃……如果崩溃,那应该是你在外层调用了太多wait.make()。。
3. 如果只留空wait.make()不会崩溃,再挨个注释掉里面的句子检查。。尤其是bianli_goon()

碎觉去了。。zzz
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-1-2 10:32:16 | 显示全部楼层
回复 7# huacuoh


    错错长老,上群可以吗?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-1-2 13:01:33 | 显示全部楼层
回复 9# yyahoo


    电老大,说仔细点吧?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-1-3 18:43:17 | 显示全部楼层
如果经常崩溃,你把wait.lua替换成原版的wait.lua。把多行wait.mulregexp先屏蔽。看看是否崩溃,若是不崩溃就说明是wait.lua的问题。崩溃了就是你的代码问题。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 11:19 AM , Processed in 0.009362 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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