北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: bbz

Mush,怎么抓取带有换行的房间描述

[复制链接]
发表于 2015-3-11 16:40:59 | 显示全部楼层
回复 6# ltblue


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

44行的意思是,等待到这行出来之后,程序才开始继续执行是吗?——是的
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-11 16:41:44 | 显示全部楼层
说过了,“自行领悟”,我个人对本帖的答疑到此结束
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 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的吧
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-11 16:49:17 | 显示全部楼层
for i, v in pairs(r) do
这句也不懂,一个循环2个变量?不懂lua

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

哦,仔细想了一下,i和v,一个代表的是字符,一个代表的是字符串是吗?本质上是二维数组,所以两个变量?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-11 16:51:04 | 显示全部楼层
后面的更复杂,明天再研究吧......
感觉吧,有些不是那么复杂的东西,写起来就特别的复杂
我还是看着费劲,想不通啊,唉
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-11 18:09:20 | 显示全部楼层
回复 8# cappuccino


   
这个回复爆强的.......表示赞一个
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-11 18:14:41 | 显示全部楼层
local m = { name = rex.new("^(\\S+) \\- $"),
                                exits = rex.new("这里. ...
ltblue 发表于 2015-3-11 04:45 PM



   
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("「.*」: .*。"),   -- 这句我猜是替换掉一些非法字符
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-11 18:17:36 | 显示全部楼层
还以为你去了那边不管这边了呢

回复 17# lzkd
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 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



   
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
--这些的意思,是将有时候服务器返回信息是会带出一个或者多个">"过滤掉.是用于以后进入房间时匹配的
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-11 18:22:36 | 显示全部楼层
回复 15# ltblue


   
从楼主的问题和回复来看,楼主观察力和想象力还是很不错的.不过对于lua的了解实在弱了一些.
如果楼主有计算机基础,可以直接去看lua中文手册,和另外一本lua编程的书.
如果楼主没什么计算机基础,那就去看我的教程吧.光这么问,基本上,是很难把这个抓房间数据学会的.
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 11:22 AM , Processed in 0.009622 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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