hasea 发表于 2013-12-9 22:03:21

本帖最后由 hasea 于 2013-12-9 10:13 PM 编辑

回复 34# chinali

这个是mushclient程序本身触发的设置。其实是wait.lua这个模块外的问题了。

1、能否说一下为什么需要抓第二行。我也抓过房间的出口。我记得不用抓第二行的数据。因为下一行数据一般是npc。

2、我使用多行触发的时候,没有抓过前面的内容。你可以把wait.regexp返回的三个值都打出看是不是有前一行的内容。记得我打印过,但我忘了。

3、如果实在不行,而你又有这个需求。那有两种办法。
    A、使用GetLinesInBufferCount 和GetLineInfo 来完成这功能
    B、也可以用如以下这样写来获得第一行及第二行数据            while true do
      l1,z1=wait.regexp( "^\\s*这里.*的出口是\\s*(.*)")
      l2,z2=wait.regexp(".*")   
         if string.find(l2,"%s*.*")~=nil thenbreakend
      end


如果你想抓取npc..我记得好像应该不用多行触行来做的。

chinali 发表于 2013-12-9 22:15:07

遍历需要获得出口,在unset biref下,现在的出口有这样一行的
    这里明显的出口是 north、south、east 和 west。
也有这样两行的
    这里明显的出口是 north、east、southeast、northeast、west、southdown、southwest
、northwest 和 eastdown。

一行的触发以及获得出口没问题了,现在就是两行的出口,我该如何获得全部出口?

hasea 发表于 2013-12-9 22:34:38

本帖最后由 hasea 于 2013-12-9 10:36 PM 编辑

回复 36# chinali

你应该测试下。下面是我测试的代码。w将打印出两行的数据。!。
    local l,w,s
    wait.make (function ()
      Execute("look")
      l,w,s=wait.regexp("^\\s*这里.*的出口是\\s*(.*)\\n\\s*(.*)。$",nil,nil,true,2)
      Note(w)
    end)
我上面说的第二条建议,你没有尝试。

qdz 发表于 2013-12-14 00:16:42

mobai

dengtaliyi 发表于 2020-8-28 17:34:39

学习

mathematics 发表于 2021-9-3 00:20:23

顶!!!

tiiger 发表于 2022-3-16 21:20:31

顶2
页: 1 2 [3]
查看完整版本: Mushclient中wait.lua模块的扩展