找回密码
 注册
搜索
楼主: newbie@tj

活跃下气氛,对公版机器遍历函数find()的一点看法

[复制链接]
门派:明教
发表于 2019-4-10 18:20:21 | 显示全部楼层
newbie@tj 发表于 2019-4-10 16:50
版主你犯了两个错误,说明你对函数调用及lua表的格式处理理解不并深入

第一,我昨天说的,newrooms ...

我很认真的看了你的回答,但是感觉没有正面回答我的问题呀!

第一,if table.getn(getRooms(job.room, job.area))>1 and flag.times==1 then
                road.rooms={}
                road.rooms=getRooms(job.room, job.area)
        end

这段代码没有调用newrooms,我就是用getrooms返回所有同名房间列表而已,然后赋值给road.rooms,再用程序自带的getpath来处理,肯定是路径生成出错了,但跟newrooms没有丝毫关系!

因为road.rooms={},这里完全清空,newrooms计算出来的东西,我压根都没用啊!

第二,效率问题是第二步考虑的,先要证明这个同名房间搜索可行,尤其四个角的同名房间距离很远,你这算法也可行,接下来才是考虑效率问题的。

第三,你另外放出的code,我会找时间测测的,有结果随时反馈,多谢分享!
门派:明教
 楼主| 发表于 2019-4-10 19:21:10 | 显示全部楼层
这段代码没有调用newrooms,我就是用getrooms返回所有同名房间列表而已,然后赋值给road.rooms,再用程序自带的getpath来处理,肯定是路径生成出错了,但跟newrooms没有丝毫关系!

请仔细思考经过searchPre()处理过的road.rooms和你自己加的road.rooms之间的区别,我打个比方,经过searchPre()处理过的road.rooms是你的档案,上面写满了关于你的一切,你自己加的road.rooms,也是你的档案,不过上面就只有一个名字,除此之外确定不了任何事,getpath()需要的是前者
门派:桃花岛
发表于 2019-4-12 20:24:57 来自手机 | 显示全部楼层
这个收藏,学习学习,跟上形式
门派:昆仑派
发表于 2019-4-14 10:27:42 | 显示全部楼层
大神不更新了啊…………
门派:武当派
发表于 2019-4-14 14:44:06 | 显示全部楼层
为什么大神要交newbie呢 让我等newbie情何以堪
门派:明教
 楼主| 发表于 2019-4-15 23:58:08 | 显示全部楼层
前面讲了那么多,强调了road.rooms的重要性,那怎么用呢?下面以华山村碎石路为例做个说明
华山村地图】其中■■■表示你所在房间位置,■■■表示目标Npc位置
2: ─────────────────────────────────────────────────
3:
4:                           ※※※※※
5:    ┏━━━━━━━┓     ※ 菜地 ※
6:    ┃【长安】南城门┃     ※※※※※
7:    ┗━━━━━━━┛酒肆  \     /  杂货铺
8:               \       |     \   /     |                     ┏━━━━━━━━┓
9:             碎石路─碎石路─村中心─碎石路─碎石路─东村口─┃【华山】华山脚下┃
10:               |               |                             ┗━━━━━━━━┛
11:             玄坛庙          碎石路─铁匠铺
12:                               |
13:                      民房─碎石路
14:                               |
15:                             南村口
16:                               |
17:                             黄土路
18:                               |
19:                       ┏━━━━━━━┓
20:                       ┃【襄阳】土路①┃
21:                       ┗━━━━━━━┛

华山村地图】其中■■■表示你所在房间位置,■■■表示目标Npc位置
2: ─────────────────────────────────────────────────
3:
4:                           ※※※※※
5:    ┏━━━━━━━┓     ※ caidi ※
6:    ┃【长安】南城门┃     ※※※※※
7:    ┗━━━━━━━┛jiusi  \     /  zahuopu
8:               \       |     \   /     |                     ┏━━━━━━━━┓
9:             shilu5─shilu3─zhongxin─shilu4─shilu6─eexit─┃【华山】华山脚下┃
10:               |               |                             ┗━━━━━━━━┛
11:             miaoyu          shilu2─tiejiangpu
12:                               |
13:                   minfang1─shilu1
14:                               |
15:                             sexit
16:                               |
17:                             hsroad3
18:                               |
19:                       ┏━━━━━━━┓
20:                       ┃【襄阳】土路①┃
21:                       ┗━━━━━━━┛

  1. rooms = getAroundRooms(p_room,p_dest,l_distance,'all')

  2. for id in pairs(rooms) do
  3.         table.insert(newrooms,id)
  4. end
复制代码


这是公版机器代码,作用是得到以road.id为中心,范围6格内所有相邻房间,转换下格式储存在newsrooms这个表里
下面结合华山村碎石路分析,road.id="village/shilu1",newrooms这个表的实际内容如下:
1="huashan/shanhong"
2="group/entry/caeroad3"
3="changan/eastroad1"
4="village/shilu5"
5="village/zhongxin"
6="huashan/qianchi"
7="village/caidi"
8="village/minfang1"
9="gumu/xiaolu1"
10="changan/eastroad2"
11="changan/neijie7"
12="changan/bingying"
13="village/shilu2"
14="huashan/shaluo"
15="xiangyang/caiyongmanor"
16="xiangyang/henanroad1"
17="huashan/shulinn1"
18="village/hsroad3"
19="huashan/yuquan"
20="huashan/path1"
21="changan/eastjl2"
22="huashan/shulinn2"
23="xiangyang/hanshui1"
24="village/shilu3"
25="village/zahuopu"
26="changan/eastjie3"
27="changan/southroad2"
28="huashan/baichi"
29="huashan/shulinn"
30="changan/eastjie4"
31="village/shilu4"
32="village/minfang2"
33="changan/eastmen"
34="changan/southroad3"
35="changan/eastchl"
36="village/shilu1"
37="huashan/v-road-1"
38="xiangyang/shanxiroad1"
39="xiangyang/outnroad2"
40="huashan/qingke"
41="village/shilu6"
42="village/eexit"
43="huashan/kongdi"
44="huashan/shulin1"
45="village/jiusi"
46="gumu/fchuan"
47="village/miaoyu"
48="changan/eastjl1"
49="xiangyang/shanxiroad2"
50="xiangyang/outnroad3"
51="village/tiejiangpu"
52="xiangyang/lantian"
53="huashan/shulin"
54="village/sexit"

记住这时候是newrooms是没有经过排序的,公版机器同时也给出了FastDFS这个函数进行了排序,排序结果储存在road.rooms这个表,
里面的实际内容如下:
1="huashan/shanhong"
2="huashan/shaluo"
3="huashan/path1"
4="huashan/yuquan"
5="village/eexit"
6="village/shilu6"
7="village/shilu4"
8="village/zhongxin"
9="village/shilu2"
10="village/shilu1"
11="village/minfang1"
12="village/sexit"
13="village/hsroad3"
14="xiangyang/shanxiroad2"
15="xiangyang/shanxiroad1"
16="gumu/fchuan"
17="gumu/xiaolu1"
18="xiangyang/outnroad3"
19="xiangyang/henanroad1"
20="xiangyang/hanshui1"
21="xiangyang/outnroad2"
22="xiangyang/lantian"
23="changan/southroad3"
24="xiangyang/caiyongmanor"
25="changan/southroad2"
26="village/tiejiangpu"
27="village/shilu3"
28="village/shilu5"
29="group/entry/caeroad3"
30="changan/eastroad2"
31="changan/eastroad1"
32="changan/eastmen"
33="changan/eastjie4"
34="changan/neijie7"
35="changan/bingying"
36="changan/eastjie3"
37="changan/eastchl"
38="changan/eastjl2"
39="changan/eastjl1"
40="village/miaoyu"
41="village/jiusi"
42="village/zahuopu"
43="village/minfang2"
44="huashan/shulin"
45="huashan/shulinn"
46="huashan/shulinn1"
47="huashan/shulinn2"
48="huashan/shulin1"
49="huashan/kongdi"
50="huashan/v-road-1"
51="huashan/qingke"
52="huashan/qianchi"
53="huashan/baichi"
54="village/caidi"
结合上面的华山村的地图,显然这个搜索次序和我们的预期不符合,如果是手动走路的话,第一反应当然是先把所有的碎石路遍历一遍,然后再走剩余的房间,
我们根据这个思路对 searchPre做个小改动,在哪里动手术,简单的办法是在排序前对newrooms预先进行处理,然后再用FastDFS函数进行排序,
当然有能力的话也可以自己写个排序算法,这个不在讨论范围内。
下面讲下步骤:
1 把遍历路径分成两部分,一是华山村所有碎石路的id,二是以road.id为中心,范围6格内所有相邻房间
2 把两部分遍历路径分别放进newrooms,然后用DFS()函数进行排序(DFS函数是原searchPre的一部分,这里进行了封装处理,因为要调用两次)
我们看看调整后的结果:
1="village/shilu1"
2="village/shilu2"
3="village/shilu6"
4="village/shilu4"
5="village/shilu3"
6="village/shilu5"
7="huashan/shanhong"
8="huashan/shaluo"
9="huashan/path1"
10="village/eexit"
11="village/shilu6"
12="village/shilu4"
13="village/zhongxin"
14="village/shilu2"
15="village/shilu1"
16="village/minfang1"
17="village/sexit"
18="village/hsroad3"
19="xiangyang/shanxiroad2"
20="xiangyang/shanxiroad1"
21="gumu/fchuan"
22="gumu/xiaolu1"
23="xiangyang/outnroad3"
24="xiangyang/henanroad1"
25="xiangyang/hanshui1"
26="xiangyang/outnroad2"
27="xiangyang/lantian"
28="changan/southroad3"
29="xiangyang/caiyongmanor"
30="changan/southroad2"
31="village/tiejiangpu"
32="village/shilu3"
33="village/shilu5"
34="group/entry/caeroad3"
35="changan/eastroad2"
36="changan/eastroad1"
37="changan/eastmen"
38="changan/eastjie4"
39="changan/neijie7"
40="changan/bingying"
41="changan/eastjie3"
42="changan/eastchl"
43="changan/eastjl2"
44="changan/eastjl1"
45="village/miaoyu"
46="village/jiusi"
47="village/zahuopu"
48="village/minfang2"
49="huashan/shulin"
50="huashan/shulinn"
51="huashan/shulinn1"
52="huashan/shulinn2"
53="huashan/shulin1"
54="huashan/kongdi"
55="huashan/v-road-1"
56="huashan/yuquan"
57="huashan/qingke"
58="huashan/qianchi"
59="huashan/baichi"
60="village/caidi"

显然,调整后的次序最先遍历的就是6个碎石路房间,初步达到了目的,当然这只是初步方案,
碎石路房间遍历完后的第二部分路径同样是可以进行优化的,这个后面在讨论。

给出测试代码,有兴趣的同学可以试试
  1. function searchPre()
  2.         if flag.times then
  3.         print(road.id)       
  4.         print("第"..flag.times.."次遍历")
  5.         end
  6.         road.rooms={}
  7.     local p_room = map.rooms[road.id].name
  8.         local p_dest = getLookCity(road.id)
  9.         local l_distance = 6
  10.   if job.name and (job.name=="clb" or job.name=='tdh' or job.name=='tmonk') and flag.times==1 then
  11.            l_distance = 2
  12.         end
  13.         if job.name and job.name=='xueshan' and flag.times==1 then
  14.        l_distance = 3
  15.   end
  16.         if p_dest==nil then
  17.            p_dest=map.rooms[road.id].outdoor
  18.         end
  19.         newrooms = {}
  20.         local rooms ={}       
  21.         rooms = getAroundRooms(p_room,p_dest,l_distance,'all')
  22.         local SN_rooms={}
  23.         if job.name=='huashan' then
  24.                 job.room=dest.room
  25.                 job.area=dest.area
  26.         end
  27.         if job.room and job.area then SN_rooms=getRooms(job.room, job.area) end
  28.         if #SN_rooms>1 then        
  29.                 print('找到'..#SN_rooms..'个同名房间')
  30.                 local Firstroom=getNearRoom({road.id},SN_rooms)
  31.                 table.insert(newrooms,Firstroom)
  32.                 for _,v in pairs(SN_rooms) do
  33.                         if v~=Firstroom then                        
  34.                                 table.insert(newrooms,v)
  35.                         end
  36.                 end       
  37.         DFS()               
  38.         newrooms = {}
  39.         end
  40.        
  41.         for id in pairs(rooms) do                       
  42.                 table.insert(newrooms,id)
  43.         end       
  44.         DFS()
  45. end
  46. function DFS()
  47.                 myrt={}
  48.        
  49.         for _,roomid in pairs(newrooms) do --插入房间链表
  50.                         roomV = List.new(roomid)
  51.                         local node = roomV
  52.                         for k,v in pairs(newrooms) do --所有的房间id
  53.                                 for route,link_way in pairs(map.rooms[roomid].ways) do  --当前id的出口
  54.                                         local routeLength = map.rooms[roomid]:length(route) --获取路径方向是否可达,返回false标示此路不通,那么这个方向的路就不插入出口链表
  55.                                         --print("k="..k.."|link_way="..link_way.."|v="..v)
  56.                                         if routeLength then
  57.                                                 ---by fqyy 20170429 加入room.lengths的数值判断
  58.                                                 if routeLength ==1 or routeLength >1 and flag.times>1 then
  59.                                                         if v==link_way then
  60.                                                                 node = List.addNode(node,List.new(k)) --插入节点生成第一个房间的出口链表
  61.                                                         end
  62.                                                 end
  63.                                         end
  64.                                 end
  65.                         end
  66.                         table.insert(myrt,roomV)
  67.         end
  68.         visited={}

  69.         for i=1 ,countTab(newrooms) do
  70.                 visited[i]=false --初始化所有节点未曾访问
  71.         end
  72.        
  73.         if not visited[1] then
  74.                 FastDFS(myrt,1) --计算起点的连通图
  75.         end
  76.         for i=1 ,countTab(newrooms) do
  77.                 if visited[i]==false then--未曾访问的节点测试一下跟第一个起点的连通性,如果能联通,则递归这个节点
  78.                         local path, len = map:getPath(myrt[1].index,myrt[i].index)
  79.                         if path then
  80.                                 FastDFS(myrt,i) --继续遍历指定的myrt[i]这个节点
  81.                                 --messageShow("发现通路,遍历下一个节点!通路长度="..len,"red")
  82.                         end
  83.                 end
  84.         end                       
  85. end
复制代码
门派:明教
 楼主| 发表于 2019-4-16 00:08:43 | 显示全部楼层
本帖最后由 newbie@tj 于 2019-4-16 00:14 编辑

刚好有个log,贴一下
<!-- Produced by MUSHclient v 4.84 - www.mushclient.com -->


忽然从树林深处窜出一个蒙面人一把抢去你的令牌,向碎石路方向夺路逃去。
你一把抓向蒙面人试图抢回令牌,但被蒙面人敏捷得躲了过去,你顺手扯下蒙面人的面罩,发现原来是曾经名震江湖的焦济。
Path Cal GetDestRooms 0 Error!
树林 - east、north、west
> 没有这个技能种类,用 enable ? 可以查看有哪些种类。
> 你现在不忙。
> 设定环境变量:look = "YES"
> 【你现在正处于华山
                           松树林              
                             |     
                 松树林-----
树林-----松树林   
                                    
                                               
树林 -
松树林|松树林-----树林-----松树林树林
    这里是华山村里的一片杨树林,如果你没有好身手,可千万不要在此地久
留,据说这里强盗出没,抢劫、杀人的事情经常发生。
  
这是一个阳春三月的下午,太阳正高挂在西方的天空中。
    这里明显的出口是 east、northwest
第五
> 现在是书剑辛未年三月二十日申时正。
您参与游戏的主机北京时间是 星期二 2019-四月-16 00:07:13
                悉尼时间是 星期二 2019-四月-16 02:07:13
      奥克兰、惠灵顿时间是 星期二 2019-四月-16 04:07:13
      温哥华、洛杉矶时间是 星期一 2019-四月-15 09:07:13 (夏令时间)
        多伦多、纽约时间是 星期一 2019-四月-15 12:07:13 (夏令时间)
    柏林、罗马、巴黎时间是 星期一 2019-四月-15 18:07:13 (夏令时间)
您已经连续玩了二天九小时四十三分十八秒。
你最近玩了二天十五分五十六秒。
贵宾系统提示:您的贵宾有效期已经到期,请及时续费。
贵宾生效时间:二零一九年三月十四日十九时四十分八秒。
你共有贵宾累计时间:五十七天十七小时二十一分五十秒。
> Ok.
> 你把 "action" 设定为 "等待一下" 成功完成。
> 你现在不忙。
> 你现在不忙。
> 松树林 - east、north、south、west
  南霞(Nan xia)
> 松树林 - east、north、south、west
  星宿派第二代弟子 星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  星宿派第二代弟子 星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  星宿派第二代弟子 星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  桃花岛第二代弟子「华山任务中」慕容姗姗(Dbin)
  星宿派第二代弟子
星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」
慕容姗姗(Dbin)
  星宿派第二代弟子
星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」
慕容姗姗(Dbin)
  星宿派第二代弟子
星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」
慕容姗姗(Dbin)
  星宿派第二代弟子
星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」
慕容姗姗(Dbin)
  星宿派第二代弟子
星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」
慕容姗姗(Dbin)
  星宿派第二代弟子
星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」
慕容姗姗(Dbin)
  星宿派第二代弟子
星宿子(Xingxiuz)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
  
铁掌帮上官帮主弟子某某(Tzren)
  
大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 你长长地舒了一口气。
> 你把 "action" 设定为 "正在赶路中" 成功完成。
> 松树林 - east、north、south、west
  天龙寺第十三代弟子「华山任务中」本凤(Monksl) <战斗中>
  贝宇(Bei yu) <战斗中>
> 松树林 - east、north、south、west
  南霞(Nan xia)
> 松树林 - east、north、south、west
  天龙寺第十三代弟子「华山任务中」本凤(Monksl) <战斗中>
  贝宇(Bei yu) <战斗中>
> 松树林 - east、north、south、west
  天龙寺第十三代弟子「华山任务中」本凤(Monksl) <战斗中>
  贝宇(Bei yu) <战斗中>
> 松树林 - east、north、south、west
  天龙寺第十三代弟子「华山任务中」本凤(Monksl) <战斗中>
  贝宇(Bei yu) <战斗中>
> 松树林 - east、north、south、west
  天龙寺第十三代弟子「华山任务中」本凤(Monksl) <战斗中>
  贝宇(Bei yu) <战斗中>
> 松树林 - east、north、south、west
  南霞(Nan xia)
> 松树林 - east、north、south、west
  南霞(Nan xia)
> 松树林 - east、north、south、west
  姑苏慕容第二代弟子「慕容红秀(Minga) <战斗中>
  星宿派第二代弟子 那拉星渊(Hhhhhh)
  伍鼎(Wu ding)
<战斗中>
  左丘前(Zuoqiu qian)
> 空地 - north、southdown
  桃花岛第二代弟子「做菜在洪七公」虎胆风(Dalaohu)
  
华山派风清扬传人「华山任务中」金刚(Tzwhen)
> 这个方向没有出路。
什么?

> 这个方向没有出路。
什么?

> 松树林 - east、north、south、west
  第二代大帅比「华山任务中」无法风(Kkfromch)
  星宿派第二代弟子
星宿子(Xingxiuz)
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  第二代大帅比「华山任务中」无法风(Kkfromch)
  星宿派第二代弟子
星宿子(Xingxiuz)
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  第二代大帅比「华山任务中」无法风(Kkfromch)
  星宿派第二代弟子
星宿子(Xingxiuz)
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  天龙寺第十三代弟子「华山任务中」本凤(Monksl) <战斗中>
  贝宇(Bei yu) <战斗中>
> 松树林 - east、north、south、west
  华山派风清扬传人「华山任务中」金刚(Tzwhen)
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  
第二代大帅比「华山任务中」无法风(Kkfromch)
  星宿派第二代弟子
星宿子(Xingxiuz)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  华山派风清扬传人「华山任务中」金刚(Tzwhen)
  武当派第二代弟子「华山任务中」大仙儿(Taoism)
  
第二代大帅比「华山任务中」无法风(Kkfromch)
  星宿派第二代弟子
星宿子(Xingxiuz)
  桃花岛第二代弟子「华山任务中」云雨风(Hssp)
<战斗中>
  大轮寺金轮法王座下弟子「华山任务中」石达客(Stack) <战斗中>
  谈奉(Tan feng) <战斗中>
  杜峻(Du jun) <战斗中>
> 松树林 - east、north、south、west
  天龙寺第十三代弟子「华山任务中」本凤(Monksl) <战斗中>
  贝宇(Bei yu) <战斗中>
> 松树林 - east、north、south、west
  桃花岛第二代弟子「做菜在洪七公」虎胆风(Dalaohu)
  
古墓派神雕侠侣传人「华山任务中」飞雪(Yanghuan)
  姑苏慕容第二代弟子「
慕容红秀(Minga) <战斗中>
  星宿派第二代弟子 那拉星渊(Hhhhhh)
  伍鼎(Wu ding)
<战斗中>
  左丘前(Zuoqiu qian)
> 石屋 - west
  大梦初醒「任务中」铃兰子(Feicui)
  武当派第二代弟子「华山任务中」柴进(Sbkaj)
  
古墓派神雕侠侣传人「华山任务中」夜瞳(Darkeye)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
  腐烂的尸体(Shi ti)
  华山派第十二代弟子「神剑轩辕」穆人清(Mu renqing)
> 这个方向没有出路。
什么?

> 这个方向没有出路。
什么?

> 这个方向没有出路。
什么?

> 你把 "action" 设定为 "正在赶路中" 成功完成。
> 松树林 - east、north、south、west
  大梦初醒「任务中」铃兰子(Feicui)
  
铁掌帮上官帮主弟子某某(Tzren)
  峨嵋派第三代弟子「华山任务中」慕容二狗(Alphago)
  姑苏慕容第二代弟子「
慕容红秀(Minga) <战斗中>
  星宿派第二代弟子 那拉星渊(Hhhhhh)
  伍鼎(Wu ding)
<战斗中>
  左丘前(Zuoqiu qian)
> 山脚下 - north、south、southeast、west
  武当派第二代弟子「华山任务中」风无痕(Zawd)
  往事随风
鬼鲛(Windy)
  挑夫(Tiao fu)
> 东村口 - east、west
> 碎石路 - east、south、west
  华山派第十三代弟子「赶路中」室火猪(Sccoilzz)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
<战斗中>
  姑苏慕容第二代弟子「华山任务中」慕容散花(Sanh) <战斗中>
  火焰(Huo yan)
  佰赏明异(Baishang mingyi)
<战斗中>
  丐帮帮众 中年乞丐(Qi gai)
  任滔(Ren tao)
<战斗中>
> > 你长长地舒了一口气。
> 你把 "action" 设定为 "正在赶路中" 成功完成。
火焰 = huo yan
> 设定环境变量:look = "YES"
> 【你现在正处于华山村
                                               
                                    
                 碎石路----
碎石路----东村口   
                             |     
                            民房               
碎石路 -
碎石路----碎石路----东村口|民房碎石路
    这是一个宁静的小村子,稀稀落落的分布着几十间土坯泥房,看来村中人
家不多,而且大都生活很艰辛。这是一条东西向的碎石路,南面是间普通的民
房。
  
这是一个阳春三月的下午,太阳正高挂在西方的天空中。
    这里明显的出口是 east、southwest
第五
village/shilu6
第1次遍历
找到6个同名房间
1="village/shilu6"
2="village/shilu4"
3="village/shilu2"
4="village/shilu1"
5="village/shilu3"
6="village/shilu5"
7="huashan/shanhong"
8="huashan/shaluo"
9="huashan/path1"
10="huashan/yuquan"
11="village/eexit"
12="village/shilu6"
13="village/shilu4"
14="village/zhongxin"
15="village/shilu2"
16="village/shilu1"
17="village/minfang1"
18="village/sexit"
19="village/hsroad3"
20="xiangyang/shanxiroad2"
21="xiangyang/shanxiroad1"
22="gumu/fchuan"
23="gumu/xiaolu1"
24="xiangyang/outnroad3"
25="xiangyang/henanroad1"
26="xiangyang/hanshui1"
27="xiangyang/outnroad2"
28="xiangyang/lantian"
29="changan/southroad3"
30="xiangyang/caiyongmanor"
31="changan/southroad2"
32="village/tiejiangpu"
33="village/shilu3"
34="village/shilu5"
35="group/entry/caeroad3"
36="changan/eastroad2"
37="changan/eastroad1"
38="changan/eastmen"
39="changan/eastjie4"
40="changan/neijie7"
41="changan/bingying"
42="changan/eastjie3"
43="changan/eastchl"
44="changan/eastjl2"
45="changan/eastjl1"
46="village/miaoyu"
47="village/jiusi"
48="village/zahuopu"
49="village/minfang2"
50="huashan/shulin"
51="huashan/shulinn"
52="huashan/shulinn1"
53="huashan/shulinn2"
54="huashan/shulin1"
55="huashan/kongdi"
56="huashan/v-road-1"
57="huashan/qingke"
58="huashan/qianchi"
59="huashan/baichi"
60="village/caidi"
  武当派第二代弟子「华山任务中」万达影院(Wdyy) <战斗中>
  姑苏慕容第二代弟子「华山任务中」慕容散花(Sanh) <战斗中>
  火焰(Huo yan)
  佰赏明异(Baishang mingyi)
<战斗中>
  丐帮帮众 中年乞丐(Qi gai)
  任滔(Ren tao)
<战斗中>
> 现在是书剑辛未年三月二十日申时正。
您参与游戏的主机北京时间是 星期二 2019-四月-16 00:07:16
                悉尼时间是 星期二 2019-四月-16 02:07:16
      奥克兰、惠灵顿时间是 星期二 2019-四月-16 04:07:16
      温哥华、洛杉矶时间是 星期一 2019-四月-15 09:07:16 (夏令时间)
        多伦多、纽约时间是 星期一 2019-四月-15 12:07:16 (夏令时间)
    柏林、罗马、巴黎时间是 星期一 2019-四月-15 18:07:16 (夏令时间)
您已经连续玩了二天九小时四十三分十八秒。
你最近玩了二天十五分五十六秒。
贵宾系统提示:您的贵宾有效期已经到期,请及时续费。
贵宾生效时间:二零一九年三月十四日十九时四十分八秒。
你共有贵宾累计时间:五十七天十七小时二十一分五十秒。
> Ok.
> 碎石路 -
    这是一个宁静的小村子,稀稀落落的分布着几十间土坯泥房,看来村中人
家不多,而且大都生活很艰辛。这是一条东西向的碎石路,南面是间普通的民
房。
  
这是一个阳春三月的下午,太阳正高挂在西方的天空中。
    这里明显的出口是 east、southwest
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
<战斗中>
  姑苏慕容第二代弟子「华山任务中」慕容散花(Sanh) <战斗中>
  火焰(Huo yan)
  佰赏明异(Baishang mingyi)
<战斗中>
  丐帮帮众 中年乞丐(Qi gai)
  任滔(Ren tao)
<战斗中>
> 碎石路 -
    这是一个宁静的小村子,稀稀落落的分布着几十间土坯泥房,看来村中人
家不多,而且大都生活很艰辛。这是一条东西向的碎石路,南面是间普通的民
房。
  
这是一个阳春三月的下午,太阳正高挂在西方的天空中。
    这里明显的出口是 east、southwest
  神龙教第二代弟子「赶路中」
白晶晶(Bjj)
  武当派第二代弟子「华山任务中」万达影院(Wdyy)
<战斗中>
  姑苏慕容第二代弟子「华山任务中」慕容散花(Sanh) <战斗中>
  火焰(Huo yan)
  佰赏明异(Baishang mingyi)
<战斗中>
  丐帮帮众 中年乞丐(Qi gai)
  任滔(Ren tao)
<战斗中>
> 你现在不忙。
> 你现在不忙。
> > 碎石路 - east、north、west
  穷汉(Qiong han)
> 村中心 - east、northeast、northwest、south、west
  女孩(Girl)
  
火焰(Huo yan)
  男孩(Boy)
> 碎石路 - east、north、south
  火焰(Huo yan)
  慕容狄的尸体(Corpse)
> 碎石路 - north、south、west
  舒权(Shu quan)
  腐烂的女尸(Nv shi)
> 碎石路 - east、north、south
  火焰(Huo yan)
  慕容狄的尸体(Corpse)
> 村中心 - east、northeast、northwest、south、west
  女孩(Girl)
  
火焰(Huo yan)
  男孩(Boy)
> 碎石路 - east、north、west
> 碎石路 - east、northwest、south
  朝天一柱「蝶梦楼战斗中」玄小武(Caihong) <战斗中>
  司马罡(Sima gang) <战斗中>
> 碎石路 - east、north、west
> 村中心 - east、northeast、northwest、south、west
  女孩(Girl)
  
火焰(Huo yan)
  男孩(Boy)
> 碎石路 - east、north、west
  穷汉(Qiong han)
> 碎石路 - east、south、west
  武当派第二代弟子「华山任务中」万达影院(Wdyy) <战斗中>
  姑苏慕容第二代弟子「华山任务中」慕容散花(Sanh) <战斗中>
  火焰(Huo yan)
  佰赏明异(Baishang mingyi)
<战斗中>
  丐帮帮众 中年乞丐(Qi gai)
  任滔(Ren tao)
<战斗中>
> 东村口 - east、west
> 山脚下 - north、south、southeast、west
  古墓派神雕侠侣传人「赶路中」玲珑(Linglong)
  挑夫(Tiao fu)
> 莎萝坪 - northeast、northwest、southup
  江湖豪客(Hao ke)
  郑拓哉(Zheng tuozai)
> 山洪瀑布 - southwest
> 莎萝坪 - northeast、northwest、southup
  江湖豪客(Hao ke)
  郑拓哉(Zheng tuozai)
> 山脚下 - north、south、southeast、west
  古墓派神雕侠侣传人「赶路中」玲珑(Linglong)
  挑夫(Tiao fu)
> 玉泉院 - south
  天龙寺第十三代弟子「华山任务中」本大(Zhu) <战斗中>
  火焰(Huo yan)
  苗罡敌(Miao gangdi)
  陶潜松(Tao qiansong)
<战斗中>
  李铁嘴(Li tiezui)
> 山脚下 - north、south、southeast、west
  挑夫(Tiao fu)
> 东村口 - east、west
> 碎石路 - east、south、west
  武当派第二代弟子「华山任务中」万达影院(Wdyy) <战斗中>
  姑苏慕容第二代弟子「华山任务中」慕容散花(Sanh) <战斗中>
  火焰(Huo yan)
  佰赏明异(Baishang mingyi)
<战斗中>
  丐帮帮众 中年乞丐(Qi gai)
  任滔(Ren tao)
<战斗中>
> 碎石路 - east、north、west
  穷汉(Qiong han)
> 村中心 - east、northeast、northwest、south、west
  桃花岛第二代弟子「华山任务中」涛涛风(Mythd)
  女孩(Girl)
  
火焰(Huo yan)
  男孩(Boy)
> 碎石路 - east、north、south
  火焰(Huo yan)
  焦济(Jiao ji)
  慕容狄的尸体(Corpse)
> 你的动作还没有完成,不能移动。
> 什么?

> Ok.
> 设定环境变量:wimpy = 100
> 你决定打架时还手反击。
> 你决定跟随焦济一起行动。
>
你对着焦济喝道:「臭贼!你死期已到,今天就让大和尚我送你上西天吧!」

看起来焦济想杀死你!
> 焦济说道:「想跑,大爷今天就超渡你!!!」
看起来焦济想杀死你!


门派:昆仑派
发表于 2019-4-16 12:54:21 | 显示全部楼层
啊……  这可真是程序大神了呀 厉害厉害
门派:明教
发表于 2019-4-16 13:53:44 来自手机 | 显示全部楼层
这个代码直接就能用了呗?对重名房间都有效吗
门派:明教
 楼主| 发表于 2019-4-16 14:29:00 | 显示全部楼层
从我挂机情况看没发现什么问题,欢迎用小号挂机测试,有bug可以贴上来反馈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-11 04:21 , Processed in 0.033365 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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