北大侠客行MUD论坛

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

721mapper求教

[复制链接]
发表于 2015-3-17 17:23:19 | 显示全部楼层 |阅读模式
如果我知道某个房间了,怎么取得周围房间的编号呢?

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-18 00:12:40 | 显示全部楼层
前两天你刚问?我举例cmud了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-3-18 09:23:55 | 显示全部楼层
没有啊,我现在只解决了找某个区域某个房间的编号,但是我还想继续找一下这个房间相邻房间的编号。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-3-18 16:00:11 | 显示全部楼层
详细见sg的cmud精华介绍。
主要流程:
1,首先要得到一个目标房间列表,比如“青石大道” job_room_list="100|101|102"
2,遍历范围,比如“周围三格” job_range="3"
然后计算,详见sg文章吧。主要code举例如下:
#CALL @rs.Close
#var rs ""
#VAR rs %comcreate( "ADODB.Recordset")
$connStr=""
$sql=""
$ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Mymud\Mymud.mdb"
$loopnum=""
#loop 1,$job_range {
$loopnum=1
#loop 1,%numitems($job_search_list) {
$Sql=%concat("SELECT ToID from ExitTbl where FromID = ",%item($job_search_list,$loopnum))
#CALL @rs.Open($Sql,$ConnStr)
#CALL @RS.MoveFirst
#WHILE (not @RS.eof) {
#if (%roomcost(@rs.fields(0).value)<10000 and %null(%pathfrom(%item($job_search_list,$loopnum),@rs.fields(0).value))=0) {
#additem $job_search_list @rs.fields(0).value}
#CALL @RS.MoveNext
}
$loopnum=$loopnum+1
#CALL @RS.close
}
}
$ConnStr=""
#var rs ""
$Sql=""
#var job.search_list $job_search_list
不过这个查询出来是广度优先,自己做优化吧。这个code只是cmud部分code,自己要修改的。。。

有了房间列表知道怎么遍历了?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2015-3-18 16:17:48 | 显示全部楼层
谢谢回复,我也有了一个的思路,翻了一下你之前的帖子,上面也有类似的解答,回头先去试试,谢谢oolong的热心回答
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 03:46 PM , Processed in 0.010132 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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