cappuccino 发表于 2015-3-11 16:40:59

回复 6# ltblue


    wait(wait.time, wait.regexp等)是mush函数,具体看/lua/wait.lua

44行的意思是,等待到这行出来之后,程序才开始继续执行是吗?——是的

cappuccino 发表于 2015-3-11 16:41:44

说过了,“自行领悟”,我个人对本帖的答疑到此结束

ltblue 发表于 2015-3-11 16:45:18

local m = { name = rex.new("^(\\S+) \\- $"),
                              exits = rex.new("这里.*的出口是(.*)"),
                              ex = rex.new("(\\w+)"),
                              weather = rex.new("「.*」: .*。"),
                        }

这段完全不懂
貌似m是代表一个匹配法则?就是正则表达式?rex.new是啥命令啊?lua的还是mush的?应该是lua的吧

ltblue 发表于 2015-3-11 16:49:17

for i, v in pairs(r) do
这句也不懂,一个循环2个变量?不懂lua

if string.sub(v,1,1) == ">" then
                        r = string.sub(v, 3, string.len(v))
end
这段虽然字符串操作不懂,但貌似是去除>的

哦,仔细想了一下,i和v,一个代表的是字符,一个代表的是字符串是吗?本质上是二维数组,所以两个变量?

ltblue 发表于 2015-3-11 16:51:04

后面的更复杂,明天再研究吧......
感觉吧,有些不是那么复杂的东西,写起来就特别的复杂
我还是看着费劲,想不通啊,唉

lzkd 发表于 2015-3-11 18:09:20

回复 8# cappuccino


   
这个回复爆强的.......表示赞一个
yct70

lzkd 发表于 2015-3-11 18:14:41

local m = { name = rex.new("^(\\S+) \\- $"),
                              exits = rex.new("这里. ...
ltblue 发表于 2015-3-11 04:45 PM http://www.pkuxkx.com/forum/images/common/back.gif


   
local m = { name = rex.new("^(\\S+) \\- $"),
                              exits = rex.new("这里.*的出口是(.*)"),
                              ex = rex.new("(\\w+)"),
                              weather = rex.new("「.*」: .*。"),
                        }
---
以上这些都是正则相关的内容,具体的没办法解答了,可以写一本书出来.你大致可以理解为,将抓到的东西用正则来提取需要的部分
name = rex.new("^(\\S+) \\- $")--这句是抓房间名的
exits = rex.new("这里.*的出口是(.*)"),   --这句是抓出口信息的
ex = rex.new("(\\w+)"),--代码没没细看,按我的估计,这句应该是去掉回车符
weather = rex.new("「.*」: .*。"),   -- 这句我猜是替换掉一些非法字符

seagull 发表于 2015-3-11 18:17:36

还以为你去了那边不管这边了呢

回复 17# lzkd

lzkd 发表于 2015-3-11 18:17:37

for i, v in pairs(r) do
这句也不懂,一个循环2个变量?不懂lua

if string.sub(v,1,1) == ">" then
...
ltblue 发表于 2015-3-11 04:49 PM http://www.pkuxkx.com/forum/images/common/back.gif


   
for i, v in pairs(r) do
这句也不懂,一个循环2个变量?不懂lua

if string.sub(v,1,1) == ">" then
                        r = string.sub(v, 3, string.len(v))
end
这段虽然字符串操作不懂,但貌似是去除>的

哦,仔细想了一下,i和v,一个代表的是字符,一个代表的是字符串是吗?本质上是二维数组,所以两个变量?

for i, v in pairs(r) do
--这句的意思是遍历一个数组,具体的解释,去看我新写的教程吧(虽然还没结束, 但这部分内容已经有了)

if string.sub(v,1,1) == ">" then
                        r = string.sub(v, 3, string.len(v))
end
--这些的意思,是将有时候服务器返回信息是会带出一个或者多个">"过滤掉.是用于以后进入房间时匹配的

lzkd 发表于 2015-3-11 18:22:36

回复 15# ltblue


   
从楼主的问题和回复来看,楼主观察力和想象力还是很不错的.不过对于lua的了解实在弱了一些.
如果楼主有计算机基础,可以直接去看lua中文手册,和另外一本lua编程的书.
如果楼主没什么计算机基础,那就去看我的教程吧.光这么问,基本上,是很难把这个抓房间数据学会的.
页: 1 [2] 3 4 5
查看完整版本: Mush,怎么抓取带有换行的房间描述