|
发表于 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,自己要修改的。。。
有了房间列表知道怎么遍历了? |
|