北大侠客行MUD论坛

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

再次请教mush 的遍历

[复制链接]
发表于 2009-8-25 16:21:05 | 显示全部楼层 |阅读模式
这几天学习mush和lua。感觉还是很有兴趣。我现在的工作主要是作数值计算,搞fortran的。和lua差距相当大。
所以又要麻烦各位高手了。

这个是mape大侠r的以前的回帖:
天龙寺的遍历
bianli["tls"]="enter shudong;say 天堂有路你不走呀\nd;8;se;s;sw;sw;s;w;ne;ne;ne;n;n;n;n;n;n;s;s;s;s;s;sw;nw;n;s;nu;nu;nu;sd;sd;sd;se;wu;nu;n;n;e;w;w;e;n;w;e;s;s;s;sd;ed;ne;ne;ne;ne;w;w;"
这样可以根据;分解成数组,然后就一个一个的发送,感觉还是很方便。

我的问题是怎么把这个遍历分解成数组,然后发送啊?lua 的数组是不是就是table 啊?感觉lua 的数据类型table很强大。也比较难掌握。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-25 16:45:25 | 显示全部楼层

    local path = "a;b;c;d;e;fff"
    local str = ""
    for _, v in ipairs (utils.split (path, ";")) do
        if string.len (v) == 1 then
            str = str .. v .. " "
        else
            str = str .. "(" .. v .. ") "
        end
    end
    Execute ("#" .. str)

7n5s型的格式没有处理
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-25 16:48:18 | 显示全部楼层
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-25 17:09:17 | 显示全部楼层
我怎么觉得fortran和lua很象呢?fortran俺在学校里也学过,不过忘得就记住一点:Fortran是Basic之母。

Lua中的table是LUA的两大显著特点之一,掌握table是学习lua的必经之路。

MUSH对LUA的table做了一个小扩展,utils.split 函数,在单纯的lua环境中没有utils.split,split函数可以自己写以实现相应的功能(我刚开始用LUA的时候就不知道有utils.split,就自己写了split的function并结合table.getn和table.insert实现utils.split的功能,我挖金子的代码中的select语句就是这么实现的)

下面放上例子:
  1. -- -- -- -- -- -- -- --

  2. function test_table()

  3. require "tprint"

  4. bianli_tls="enter shudong;say 天堂有路你不走呀\nd;8;se;s;sw;sw;s;w;ne;ne;ne;n;n;n;n;n;n;s;s;s;s;s;sw;nw;n;s;nu;nu;nu;sd;sd;sd;se;wu;nu;n;n;e;w;w;e;n;w;e;s;s;s;sd;ed;ne;ne;ne;ne;w;w;"

  5. local t = utils.split(bianli_tls, ";")

  6. print(bianli_tls)
  7. tprint(t)

  8. end -- test_table()

  9. -- -- -- -- -- -- -- --
复制代码
正回复着呢,就发现duno又比我快一步

[ 本帖最后由 ddid 于 2009-8-25 05:10 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-25 17:34:51 | 显示全部楼层
关于发送,也可以用以下代码实现:


  1. table.foreach(t, function(i, v)
  2.   local dir = "(" ..v ..")"
  3.   world.Execute("#" ..dir)
  4.   end)
复制代码
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-25 17:37:54 | 显示全部楼层
多谢啊。感觉table 不太象fortran 的数组,
类似自定义类型,相当活。我还用的不好。
以后还要多多请教
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-25 17:42:16 | 显示全部楼层
原帖由 trace 于 2009-8-25 17:37 发表
多谢啊。感觉table 不太象fortran 的数组,
类似自定义类型,相当活。我还用的不好。
以后还要多多请教


addoil

北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-25 17:47:04 | 显示全部楼层
原帖由 duno 于 2009-8-25 16:45 发表


7n5s型的格式没有处理


请教duno大牛,怎么实现7n5s的格式哩?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-25 18:26:23 | 显示全部楼层
先判断数字是指令的一部分还是下一指令的重复次数
  指令的一部分: 加括号
  下一指令的重复次数: do n x 或者 x x x x x ...(n次)
俺不属牛
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-25 18:39:48 | 显示全部楼层
大侠。再次请教,如果遍历遇到npc想停止怎么办?
如果是坐船怎么处理啊?

[ 本帖最后由 trace 于 2009-8-25 06:44 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-2 01:21 AM , Processed in 0.012386 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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