ltblue 发表于 2015-4-9 15:46:02

回复 20# silvent


我慢慢看哈,水平有限,看不太懂估计
我的菜地节点是这样的
= {
      area = "华山村",
      descriptions = {
             = "这里是华山村民们赖以为生的菜地,空旷的一片,你一眼忘不到头,你走",
             = "着走着,忽然忘记了来时的路了。",
      },
      exits = {
            east = {
                cmd = "e",
                                gto = 397,
            },
            north = {
                cmd = "n",
                                gto = 397,
            },
            south = {
                cmd = "s",
                gto = 397,
            },
            west = {
                cmd = "w",
                                gto = 397,
            },
                        toout = {
                cmd = "s",
                                trytimes = 100,
                                okmsg = "你乱走了一通,居然发现自己走回了原地。",
                                stop = 1,
                gto = 386,
                needtime = 150,
            },
      },
      location = {
             = "菜地",
             = "|",
             = "菜地-----菜地-----菜地",
             = "|",
             = "菜地",
      },
      maze = "华山村菜地",
      name = "菜地",
    },

ltblue 发表于 2015-4-9 15:49:07

self:caidi_cunzhongxin()
这句话是什么意思?
重新运行本函数?跟直接caidi_cunzhongxin()有啥区别?
self后面加冒号是哪部分的知识,请告诉我名字,我去查,多谢

ltblue 发表于 2015-4-9 16:00:25

本帖最后由 ltblue 于 2015-4-9 04:02 PM 编辑

看不懂,太高科技......
冒号这个不是很明白,感觉很多
我对这个的想法,就是
1.确保不忙
2.往南走
3.一直走到出”你乱走了一通,居然发现自己走回了原地。“为止
我觉得大部分迷宫都是这个路数

1.确保不忙
2.行走固定路径
3.发现走出来为止
4.如果一直没走出来,重新启动本路径

大体都应该是这类吧

littleknife 发表于 2015-4-9 20:08:21

self:的用法是面向对象的写法。你的东西的思路不错,不过个人认为相对数据结构复杂些。

self可以理解为对象本体的意思。由定义setmetable设定lua的元表,就是指定继承关系的意思。
一般冒号表示方法,点号用来表示属性。但有时Lua对这两种混用也可以。唯一的区别是冒号里面的函数可以继续引用self,而点号的函数无法再次引用self自身。

你自己的解决思路不错,就像你自己说的不一定一定采用面向对象的思维编程。good luck~~.

ltblue 发表于 2015-4-9 21:14:53

回复 24# littleknife


果然是这样啊......
我现在经常出现这样的情况
某个方向出口,比如是south,他里面有各种内容,比如去向,命令等
我用属性的方式传到函数里,我就不知道方向本身(就是south)是什么了
所以我得传两个参数,一个就是字符串south,一个是south的内容
这应该就是点号的作用吧?

继承?太面向对象了,老实说,java看得心潮澎湃,可是就是不会写代码,更别说用lua这种半对象的语言了......

ltblue 发表于 2015-4-9 21:16:08

回复 24# littleknife


我的table里,只有属性,没有方法,得靠“解码器”来,把属性+if,转换成方法才行......
这是典型的非面向对象啊......
看来活该找不到对象,呵呵

silvent 发表于 2015-4-10 11:42:02

面向对象比较好 看起来容易理解。。你的我自己看起来头大得很

silvent 发表于 2015-4-10 11:43:31

回复littleknife


果然是这样啊......
我现在经常出现这样的情况
某个方向出口,比如是south,他里 ...
ltblue 发表于 2015-4-9 09:14 PM http://pkuxkx.com/forum/images/common/back.gif

lua其实理解透有点难度,但是你模仿举一反三还是不难的。另外你在哪儿玩啊,有兴趣得话,可以来我这边得站点玩,一起研究mush一起优化 开发 哈哈

silvent 发表于 2015-4-10 11:47:13

看不懂,太高科技......
冒号这个不是很明白,感觉很多
我对这个的想法,就是
1.确保不忙
2.往南走
3. ...
ltblue 发表于 2015-4-9 04:00 PM http://pkuxkx.com/forum/images/common/back.gif

迷宫都是要看代码怎么写的。不是你说的这么简单得,说简单点其实就是若干个room.c ,然后代码一般都是几个方向随机到几比如east方向是room4.c...快速进出迷宫看源代码就不难写。但是迷宫遍历,就复杂多了。一般都是出口和入口两个固定,然后看walk多少步发现job npc,知道这个基本多遍历几次能找到npc..当然npc不断移动,就有偏差。

ltblue 发表于 2015-4-10 16:28:30

回复 29# silvent


的确,我设置了一个toout或者toin或者towest之类的虚拟方向,然后寻路的时候加上,行走的时候直接用路径即可
而在迷宫内找人,我设置了walk属性,里面是walk的路径,进到迷宫后按路径行走即可
当然,有些迷宫的随机性太强,就不好弄了,不过那个即使是人也够呛,机器就更够呛了,所以我也没奢望可以直接破解迷宫
页: 1 2 [3]
查看完整版本: 关于在地图文件里部分解决迷宫问题的思路