北大侠客行MUD论坛

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

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

[复制链接]
发表于 2015-3-11 18:23:32 | 显示全部楼层
另外~~~~因为本人最近工作及身体原因,照抄子襄同学的话----我个人对本帖的答疑到此结束
楼主见谅哈~~
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-11 18:24:13 | 显示全部楼层
我没基础,就等着你的更新呢,加油

回复 20# lzkd
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-11 18:25:15 | 显示全部楼层
回复 18# seagull


   
因为时间关系,没时间玩MUD,但最近论坛也没什么帖,基本上,用不着做啥.
但有能回答的问题,还是会回答的说.
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-12 10:10:36 | 显示全部楼层
多谢两位的解答哈
我的确是一点lua也不懂,其他程序也只停留在if for这个级别
看来要去啃一啃lua手册了,不过估计够呛
小刀的教程,制定的和wiki的都看过了
mush的函数库也下载了,但wait系列没找到,是mush的函数吗?还是lua的?

另外,想请教一个问题
玩一些其他游戏,经常能看到.lua文件,这类文件经常可以用记事本打开,里面都是对象,就是
XXXX{
  XXX=XXX
  XXX{
        XXX=XXX
        }
}
这类的
lua可以很方便的记录和读取这类文件吗?直接存一个对象进去?如果能的话,请问关键命令是什么?我自行百度学习。
看到一些地图,用的是db文件,我完全不懂,但貌似也不好改
有些数据靠程序自己跑,是跑不出来的,比如迷宫什么的,必须手动添加
用.lua(其实就是txt啦)记录地图,会不会更好呢?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-12 10:19:26 | 显示全部楼层
另外,我猜测一下哈
l,w = wait.regexp
这里l是以字符串格式记录的总文本
w是正则匹配的,括号里的文本,用数组形式调用,比如正则有2个括号,w(2)就代表第二个括号里匹配项?
各种百度,没看到wait.regexp的说明,只会自己猜测,不知道对不对
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-12 11:01:49 | 显示全部楼层
wait.regexp这个函数会返回三个值。第一个值的意思是整个触发行字符串,第二个值是正则表达式下的变量列表,第三个是触发行的style表。
具体的意思看mush\lua\wait.lua文件。
最后,想用wait.lua的模式,必须看懂lua的协程。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-12 17:15:18 | 显示全部楼层
回复 24# ltblue


   
lua中,载入文件方法有三个loadfile、dofile、require
loadfile---只编译,不运行(这里编译的意思是,检测有无语法错误,有无少括号,end之类)
dofile---载入,并且执行
require---载入,并且只执行一次
跟C差不多吧?具体用法可以度娘了.

另外,你说的那个打开不能的地图文件.那个基本上是SQLite格式的数据库,找个工具就可以打开,SQLite Developer比较不错,记录论坛有下载,可以找一找
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-12 17:26:33 | 显示全部楼层
另外,再补充一点,对于地图数据存放的一些心得,这个本来应该也整理一个教程的,不过最近实在是...哈哈....大家都懂的,就简单在理说一下.

txt,access,SQLite这三个,目前都可以做为地图数据库的载体,这点已经可以肯定了.
经有高人测试,我记得不清楚,是ddid,还是killunix,或者就是seagate,百万条数据的测试access比txt,和SQLite稍微慢一点点,但也是毫秒级的.
不过,access的使用有一个麻烦,得对本机电脑配置一下子.相对不是很方便.所以,个人就把access排除了.

余下两者,个人的理解是这样-----
如果你的sql水平不错,那就SQLite吧,这个完全符合你的要求;如果你对lua的table操作心得比较强大,那就直接txt吧.效果那是刚刚的.

说了好象没说一下,实际上,从性能上来说,的确很难分出高下来.

最后讲下小刀自己的处理方式.
在画地图的过程中,使用SQLite,等地图ok以后,导出数据,变成txt,在运行机器人的时候,直接用lua调用tabel这种.
当然,这是一家之言...就不在这里细说优劣之处了......
闪人了......
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-17 23:55:44 | 显示全部楼层
在网上找到如下代码,很短,不知道能不能用他,把table做成txt

function saveTable(tb)--简单的递归将表写入  
if type(tb) == "table" then  
  file:write("{")  
  for k,v in pairs(tb) do   if type(v) == "table" then  
   file:write("\n")  
   end   if type(k) == "number" then  
    file:write("    ["..k.."] = ")  
   elseif type(k) == "string" then  
    file:write("    "..k.." = ")  
   end   saveTable(v)  
   file:write(",")  end  
  file:write("    }")  
elseif type(tb) == "number" then  
  file:write(tb)  
elseif type(tb) == "string" then  
  file:write(string.format("%q",tb))  
else  
  error("not the type")  
end  
end  


据说,可以“用require是可以引用这个表,很方便地取每一个节点,每一个值”

看起来好像很高大上,不知道行不行
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2015-3-19 16:09:24 | 显示全部楼层
啊,折腾了2天,终于把最简单的“抓当前房间信息”的功能做完了
代码写的很丑,就不发了,不过目前看来能用
就是抓范围、图形、名称、描述和出口而已
效果大概是这样的:
club
look
@@
你晃动着手中的木棒,到处寻找目标。
> 【你现在正处于武馆】
                           白石路              
                             |     
                   厨房-----西廊-----西廊      
                             |     
                          西练武场            
西廊 -
    这是一条走廊,廊顶描绘着江南秀美的风景。每两根翠绿色的柱子间相隔
也就两三尺的距离,朱红色的琉璃瓦,嫩黄色的地砖。在走廊里面,丫鬟、奴
仆们走来走去,都忙着自己的事情,不敢有一点怠慢。西面传出阵阵诱人的香
气,往北走就到了后院,南面是一个练武场。
    这里明显的出口是 east、north、south 和 west。
> 你的一双眼睛瞪得比铜铃还大!
现在的区域是武馆
现在的名称是西廊
本地的位置有
白石路

厨房-----西廊-----西廊

西练武场
本地的描述有
这是一条走廊,廊顶描绘着江南秀美的风景。每两根翠绿色的柱子间相隔
也就两三尺的距离,朱红色的琉璃瓦,嫩黄色的地砖。在走廊里面,丫鬟、奴
仆们走来走去,都忙着自己的事情,不敢有一点怠慢。西面传出阵阵诱人的香
气,往北走就到了后院,南面是一个练武场。
本地的出口有
w
s
e
n



多谢几位的指点
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 07:01 AM , Processed in 0.009590 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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