学习MUSH第三日(续)---抓取房间,出口,地点
都是收集别人的帖子,copy代码,加自己实践出来的(mush4.43绿色版)。直接上例子:抓取一个房间的名称,描述,出口
房间格式类似如下:
一个小房间 -
这里是一个小房间,是花一朵的小屋,淡雅,恬静。屋子中间放着几张座椅,普拉普拉普拉
普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉
普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉普拉。
这里明显的出口是 up, out 和 west。
1,抓ROOM名称:触发器匹配:^(.{2,})\s\-\s$ 发送就不写了,抓到了干什么都可以。
2,copy别人的,匹配:
<muclient>
<plugin
name="room_desc"
id="026692aaf3e3f8a2ef495057"
language="Lua"
save_state="y"
date_written="2012-01-08 19:17:28"
requires="4.43"
version="1.0"
>
</plugin>
<triggers>
<trigger
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"
>
<send>getRoomDesc("room_desc","%1")</send>
</trigger>
<trigger
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"
>
<send>getRoomDesc("room_desc","%1".."%2")</send>
</trigger>
<trigger
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"
>
<send>getRoomDesc("room_desc","%1".."%2".."%3")</send>
</trigger>
<trigger
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"
>
<send>getRoomDesc("room_desc","%1".."%2".."%3".."%4")</send>
</trigger>
<trigger
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"
>
<send>getRoomDesc("room_desc","%1".."%2".."%3".."%4".."%5")</send>
</trigger>
</triggers>
<!--Script-->
<script>
<![CDATA[
function getRoomDesc(room,roomdesc)
proomdesc = roomdesc
Note(proomdesc)
end
]]>
</script>
</muclient>
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("这里没有任何明显的出路|这里唯一的出口是 (+)。|这里明显的出口是 (+) 和 (+)|这里明显的出口是 (+)、(+) 和 (+)|这里明显的出口是 (+)、(+)、(+) 和 (+)|这里明显的出口是 (+)、(+)、(+)、(+) 和 (+)|这里明显的出口是 (+)、(+)、(+)、(+)、(+) 和 (+)|这里明显的出口是 (+)、(+)、(+)、(+)、(+)、(+) 和 (+)")
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=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=v
id=id+1
end
end
end
tprint(ways)
end
Note(6)
end
function init()
wait.make(way_t);
end
init()基本都是收集的,不过看懂了,用起来还是蛮爽的。
北大侠客行MUD,中国最好的MUD 看着像是2毛的代码风格 出口处理的不全,丐帮暗道梁长老那里的出口你这个捕获不到
页:
[1]