|
都是收集别人的帖子,copy代码,加自己实践出来的(mush4.43绿色版)。
直接上例子:抓取一个房间的名称,描述,出口
房间格式类似如下:
一个小房间 -
这里是一个小房间,是花一朵的小屋,淡雅,恬静。屋子中间放着几张座椅,普拉普拉普拉
普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉
普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉。
这里明显的出口是 up, out 和 west。
1,抓ROOM名称:触发器匹配:^(.{2,})\s\-\s$ 发送就不写了,抓到了干什么都可以。
2,copy别人的,匹配:
-
- name="room_desc"
- id="026692aaf3e3f8a2ef495057"
- language="Lua"
- save_state="y"
- date_written="2012-01-08 19:17:28"
- requires="4.43"
- version="1.0"
- >
-
- enabled="y"
- group="map"
- lines_to_match="4"
- match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^\s+"
- multi_line="y"
- name="map_desc1"
- regexp="y"
- send_to="12"
- sequence="101"
- variable="map_desc1"
- >
- getRoomDesc("room_desc","%1")
-
-
- enabled="y"
- group="map"
- lines_to_match="5"
- match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^(\S+)\s*$\n^\s+"
- multi_line="y"
- name="map_desc2"
- regexp="y"
- send_to="12"
- sequence="102"
- variable="map_desc2"
- >
- getRoomDesc("room_desc","%1".."%2")
-
-
- enabled="y"
- group="map"
- lines_to_match="6"
- match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^\s+"
- multi_line="y"
- name="map_desc3"
- regexp="y"
- send_to="12"
- sequence="103"
- variable="map_desc3"
- >
- getRoomDesc("room_desc","%1".."%2".."%3")
-
-
- enabled="y"
- group="map"
- lines_to_match="7"
- match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^\s+"
- multi_line="y"
- name="map_desc6"
- regexp="y"
- send_to="12"
- sequence="104"
- variable="map_desc6"
- >
- getRoomDesc("room_desc","%1".."%2".."%3".."%4")
-
-
- enabled="y"
- group="map"
- lines_to_match="8"
- match="^$\n^\S+\s-\s$\n^\s+(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^(\S+)\s*$\n^\s+"
- multi_line="y"
- name="map_desc5"
- regexp="y"
- send_to="12"
- sequence="105"
- variable="map_desc5"
- >
- getRoomDesc("room_desc","%1".."%2".."%3".."%4".."%5")
-
复制代码 3,出口:- require "wait"
- require "tprint"
- place=nil
- desc=nil
- ways=nil
- function way_t()
- local l,w
- local find=string.find
- Note(1)
- while 1 do
- Note(7)
- 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]+)")
- Note(l)
- Note(w)
- ways=nil
- ways={}
- local id=1
- if find(l,"-") then
- for i,v in ipairs(w) do
- if v~=nil and v~=false and (not find(v,">")) and v~="" and i>2 then
- Note(v)
- ways[id]=v
- id=id+1
- end
- end
- else
- for i,v in ipairs(w) do
- if v~=nil and v~=false and v~="" then
- Note(v)
- ways[id]=v
- id=id+1
- end
- end
- end
- tprint(ways)
- end
- Note(6)
- end
- function init()
- wait.make(way_t);
- end
- init()
复制代码 基本都是收集的,不过看懂了,用起来还是蛮爽的。
北大侠客行MUD,中国最好的MUD |
|