北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: ptouch

寻路机器人LUA实现

[复制链接]
发表于 2011-2-12 10:55:45 | 显示全部楼层
原帖由 ptouch 于 2011-2-11 05:02 PM 发表
直接写在table 里面修改起来麻烦。数据一般要和程序分离
我用了sqlite 数据库
最短路径 一般用双向遍历算法比较快
基本上 零点几秒就能算出来了 很快。


xkxmap.lua
这样一个文件就是一个地图表,你能说它没与程序分离?
lua的表很强大,修改起来也方便,比使用数据库方便且快。
数据和程序分离没错,要灵活对待哦。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-2-12 11:18:48 | 显示全部楼层
因为地图是比较静态的一个东西,用一个lua文本文件来管理是可行的。
而且根据lua的chunk特点,你还可以在载入时根据人物属性增加或删除某个出口。
xkxmap = {
.....
        ["1021"]={
                name = "前院",
                zone = 80,
                desc = "这里是神龙教总舵的前院,...",
                npc ="陆高止,张淡月"
                com  = "",
                links= {
                      ["1020"] = "east",
                      ["1022"] = "enter",
                      ["1019"] = "west"
              }
        }
.....
}
--例如,结尾处
if   GetVariable("master_name")~="洪安通"   then
      --掐断1021房间到1020房间的出口链接,因为非洪弟子不允许过去
       xkxmap["1021"].links["1020"]=nil
end
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-2-12 19:25:33 | 显示全部楼层
原帖由 myu 于 2011-2-12 11:18 AM 发表
因为地图是比较静态的一个东西,用一个lua文本文件来管理是可行的。
而且根据lua的chunk特点,你还可以在载入时根据人物属性增加或删除某个出口。
xkxmap = {
.....
        ["1021"]={
                name = "前院" ...

我写的机器人有自己抓取地图功能。
抓取地图会自己保存到数据库中。就是类似zmud地图生成器,走一遍就会把地图记录下来,靠人工手写地图是个非常巨大工作量。
所以用数据库会比较方便。修改起来也比较方便,执行一条sql 语句就可以批量修改了。
根据人物属性增加删除出口,我也考虑的,所以房间类型里面有 虚拟房间用来根据条件生成路径。
比如进入某个房间 有特殊要求。我在direction 字段 写进一个特殊alias 然后通过执行这个alias 来动态判断出口
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-2-21 12:43:22 | 显示全部楼层
gammon的core map engine就可以直接用啊
http://mushclient.com/forum/?id=10138
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-2-21 14:08:25 | 显示全部楼层

回复 14楼 的帖子

......
Otherwise you might point out to the MUD admins that if they aren't prepared to help you get your mapper to work, there are other MUDs around that are. :)

pkuxkx 重名的房间太多了。 Wiz 估计是不愿意改的。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-2-21 15:09:46 | 显示全部楼层
这个没有关系啊
get_room是你自己写的
你可以用自己的uid

原帖由 alrighty 于 2011-2-21 02:08 PM 发表
......
Otherwise you might point out to the MUD admins that if they aren't prepared to help you get your mapper to work, there are other MUDs around that are. :)

pkuxkx 重名的房间太多了。 Wiz 估计 ...
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-6-18 22:45:56 | 显示全部楼层
翻翻帖子,想到个问题,不是很熟悉,如何在寻路过程中,不搜索某些房间呢
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-6-19 14:00:14 | 显示全部楼层
学习学习
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-6-20 00:01:47 | 显示全部楼层
活着也没用阿,还是看不懂
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-6-20 08:42:21 | 显示全部楼层
回复 21# istillsun


    科技以人为本   如果是462的。。。   我把标题名字改下 ,好好个高科技贴硬跟某些人学整个垃圾标题吸引人
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 01:25 PM , Processed in 0.010593 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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