metatrader 发表于 2015-3-17 17:23:19

721mapper求教

如果我知道某个房间了,怎么取得周围房间的编号呢?

北大侠客行MUD,中国最好的MUD

oolong 发表于 2015-3-18 00:12:40

前两天你刚问?我举例cmud了

metatrader 发表于 2015-3-18 09:23:55

没有啊,我现在只解决了找某个区域某个房间的编号,但是我还想继续找一下这个房间相邻房间的编号。

oolong 发表于 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,自己要修改的。。。

有了房间列表知道怎么遍历了?

metatrader 发表于 2015-3-18 16:17:48

谢谢回复,我也有了一个的思路,翻了一下你之前的帖子,上面也有类似的解答,回头先去试试,谢谢oolong的热心回答
页: [1]
查看完整版本: 721mapper求教