北大侠客行MUD论坛

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

学习MUSH第三日(续)---抓取房间,出口,地点

[复制链接]
发表于 2013-1-31 22:16:51 | 显示全部楼层 |阅读模式
都是收集别人的帖子,copy代码,加自己实践出来的(mush4.43绿色版)。
直接上例子:抓取一个房间的名称,描述,出口
房间格式类似如下:
一个小房间 -
     这里是一个小房间,是花一朵的小屋,淡雅,恬静。屋子中间放着几张座椅,普拉普拉普拉
   普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉
   普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉。
     这里明显的出口是 up, out 和 west。

1,抓ROOM名称:触发器匹配:^(.{2,})\s\-\s$   发送就不写了,抓到了干什么都可以。
2,copy别人的,匹配:


  1.    name="room_desc"
  2.    id="026692aaf3e3f8a2ef495057"
  3.    language="Lua"
  4.    save_state="y"
  5.    date_written="2012-01-08 19:17:28"
  6.    requires="4.43"
  7.    version="1.0"
  8.    >


  9.   
  10.    enabled="y"
  11.    group="map"
  12.    lines_to_match="4"
  13.    match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^\s+"
  14.    multi_line="y"
  15.    name="map_desc1"
  16.    regexp="y"
  17.    send_to="12"
  18.    sequence="101"
  19.    variable="map_desc1"
  20.   >
  21.   getRoomDesc("room_desc","%1")
  22.   
  23.   
  24.    enabled="y"
  25.    group="map"
  26.    lines_to_match="5"
  27.    match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^(\S+)\s*$\n^\s+"
  28.    multi_line="y"
  29.    name="map_desc2"
  30.    regexp="y"
  31.    send_to="12"
  32.    sequence="102"
  33.    variable="map_desc2"
  34.   >
  35.   getRoomDesc("room_desc","%1".."%2")
  36.   
  37.   
  38.    enabled="y"
  39.    group="map"
  40.    lines_to_match="6"
  41.    match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^\s+"
  42.    multi_line="y"
  43.    name="map_desc3"
  44.    regexp="y"
  45.    send_to="12"
  46.    sequence="103"
  47.    variable="map_desc3"
  48.   >
  49.   getRoomDesc("room_desc","%1".."%2".."%3")
  50.   
  51.   
  52.    enabled="y"
  53.    group="map"
  54.    lines_to_match="7"
  55.    match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^\s+"
  56.    multi_line="y"
  57.    name="map_desc6"
  58.    regexp="y"
  59.    send_to="12"
  60.    sequence="104"
  61.    variable="map_desc6"
  62.   >
  63.   getRoomDesc("room_desc","%1".."%2".."%3".."%4")
  64.   
  65.   
  66.    enabled="y"
  67.    group="map"
  68.    lines_to_match="8"
  69.    match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^\s+"
  70.    multi_line="y"
  71.    name="map_desc5"
  72.    regexp="y"
  73.    send_to="12"
  74.    sequence="105"
  75.    variable="map_desc5"
  76.   >
  77.   getRoomDesc("room_desc","%1".."%2".."%3".."%4".."%5")
  78.   





复制代码
3,出口:
  1. require "wait"
  2. require "tprint"
  3. place=nil
  4. desc=nil
  5. ways=nil
  6. function way_t()
  7.     local l,w
  8.     local find=string.find
  9. Note(1)
  10.     while 1 do
  11. Note(7)
  12.     l,w=wait.regexp("这里没有任何明显的出路|这里唯一的出口是 ([a-z]+)。|这里明显的出口是 ([a-z]+) 和 ([a-z]+)|这里明显的出口是 ([a-z]+)、([a-z]+) 和 ([a-z]+)|这里明显的出口是 ([a-z]+)、([a-z]+)、([a-z]+) 和 ([a-z]+)|这里明显的出口是 ([a-z]+)、([a-z]+)、([a-z]+)、([a-z]+) 和 ([a-z]+)|这里明显的出口是 ([a-z]+)、([a-z]+)、([a-z]+)、([a-z]+)、([a-z]+) 和 ([a-z]+)|这里明显的出口是 ([a-z]+)、([a-z]+)、([a-z]+)、([a-z]+)、([a-z]+)、([a-z]+) 和 ([a-z]+)")
  13. Note(l)
  14. Note(w)
  15. ways=nil
  16.           ways={}
  17.           local id=1
  18.           if find(l,"-") then
  19.            for i,v in ipairs(w) do
  20.             if v~=nil and v~=false and (not find(v,">")) and v~="" and i>2 then
  21.              Note(v)
  22.              ways[id]=v
  23.              id=id+1
  24.             end
  25.            end
  26.           else
  27.            for i,v in ipairs(w) do
  28.             if v~=nil and v~=false and v~="" then
  29.              Note(v)
  30.              ways[id]=v
  31.              id=id+1
  32.             end
  33.            end
  34.           end
  35.          tprint(ways)
  36.     end
  37. Note(6)
  38. end
  39. function init()
  40.     wait.make(way_t);
  41. end
  42. init()
复制代码
基本都是收集的,不过看懂了,用起来还是蛮爽的。

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-1-31 22:36:33 | 显示全部楼层
看着像是2毛的代码风格
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-2-1 03:41:38 | 显示全部楼层
出口处理的不全,丐帮暗道梁长老那里的出口你这个捕获不到
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 08:06 PM , Processed in 0.009153 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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