北大侠客行MUD论坛

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

zMUD 支持Lua脚本插件,功能强大到爆炸,你怕不怕!支持zmud5.55 ...

[复制链接]
发表于 2019-12-21 12:22:49 | 显示全部楼层 |阅读模式
插件支持zMUD版本zMUD5.55 - zMUD7.21
一、使用方法:
    1, 全部使用Lua插件附加功能。
        zMUD7.21 - 菜单 - 插件
        zMUD5.55 - www.pkuxkx.net主页下载zMUD5.55 用zmud555_lorder打开自动加载;
    2, 一个zMUD有不同窗口,部分窗口使用Lua部分不使用
        2.1 使用lua的窗口,默认加载命令是require 'main', 当然你可以设置自己需要加载的独特的lua,比如#var reloadlua {require 'pangyazi'}
              插件自动加载reloadlua变量下的内容。
        2.2 不使用lua的窗口,#var reloadlua 0
    3, 全部不使用Lua
        直接卸载lua插件

二、实际运行中重新加载lua环境
      输入:reloadlua

               

北大侠客行MUD,中国最好的MUD
2019/12/22 更新一个退出程序时候正则释放内存的bug
2019/12/24 修复一个窗口关闭时lua环境方法未释放的bug。 可以输入 `testdll自行测试每次加载释放100次
2019/12/26 原来zmud发送PChar 转成String 再转成PChar发给Lua,改成直接PChar发给Lua
2020/11/10 v1.1修改reloadlua命令,增加unloadlua命令

本帖子中包含更多资源

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

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2019-12-21 12:23:22 | 显示全部楼层
本帖最后由 man 于 2019-12-24 05:05 AM 编辑

二、Lua函数介绍
    主要函数我在main.lua里加载了base.lua以最终封装好的函数为例
    2.1 print
        等同功能函数Echo、Show,主要往zMUD界面输入一串汉字,相当于zmud的#echo;
        print('白公公好猛')

    2.2send
        往ZMUD服务器发送一串命令;
        send('say 白公公好猛')
        更正:
        原函数Send('haha')无法正常工作,需要改成Send('haha\n'),zmud好像默认没有换行符在Send函数后,Run函数不受换行影响。

        目前可以正常使用send('haha')

    2.3Run
        发给zmud解析一串命令,zmud自己的alias也可以正常运行
        Run('say 白公公好猛;#wa 2000;sweat')

    2.4exe
        解析Lua自己的alias,然后发送给Run,也可以继续使用zmud的alias
        比如zmud:#alias bb {say 白公公好猛}
        比如Lua: add_alias('aa',function()   exe('haha')  end)
        exe('aa;bb')

    2.5add_timer
       设置一个运行一次的定时器,可以嵌套
       add_timer('delay',1,function()
           exe('haha')
       end)
       或,
       add_timer('delay',1,function()
           add_timer('delay',1,function()
               exe('haha')
           end)
       end)
     2.6set_timer
      设置一个一直运行的定时器
      set_timer('timer',1,function()  exe('haha') end)

      2.7del_timer
      删除一个timer
      del_timer('timer')

      2.8别名
      add_alias('aa',function()   exe('kk;nn') end)
      del_alias('aa')

      2.9触发
      add_trigger('123','^[>]*你(.*)哈哈(.*)',function(p)
           print(p[1])
           print(p[2])
           exe('faint')
      end)
      close_trigger('123')
      open_trigger('123')
      del_trigger('123')

      2.10 GetAppPath()
       获取zmud当前路径比如c:\zmud5.55

      2.11 GetPathFiles
       获取某个路径下的文件名称,可以存放到一个table里
       a={GetPathFiles(GetAppPath())}

      2.12 Regex
      正则匹配,结果是一个table
      a={Regex('你哈哈大笑','你(.*)')}
      a[1]是匹配结果 '0'表示失败,n表示有n个匹配结果,-1表示可以匹配但是没有结果,因为没有用括号
      a[2] - a[n]就是匹配结果

      2.13 GetVar
      获取一个Zmud变量值,不太建议频繁使用这个功能
      local a=GetVar('a')
      如果需要写入zmud变量值可以使用
      Run('#var aa 10')

      2.14 GetBytes
      获取本游戏窗口zmud传入多少字节的文字

      local a=GetBytes()
      比如你可以一分钟获取一次,如果5分钟内字计数未增加,那么本窗口可能掉线了你可以执行重新连线

      Run("#disconnect;#connect")
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2019-12-21 12:32:20 | 显示全部楼层
本帖最后由 man 于 2019-12-21 05:12 AM 编辑

三、用lua扩展zmud功能
      比如先设置一个lua的alias
      add_alias('test',function()
             a=10
             b=50
             c=a*b+b/a
             Run('#var test '..c)
      end)

      zmud中可以
      #var aa 50;test;#var bb %eval(@a+@test)

      当然由于Run可以执行很多zmud命令,所以不再举例了,自己想怎么搞就怎么搞吧

四,lua可以单独完成所有机器人任务
     利用lua内部触发,别名,定时器,可以完成几乎所有job和练功机器,这里就不介绍了,可以去书剑mud下载zmud lua机器参考一下。
     实际上推荐使用lua内部函数编写机器更有运行效率。

五,附属文件
    lsqlite.dll -- lua调用sql的文件
    lc.dll   转码utf8 ansi互相转换
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2019-12-21 12:42:47 | 显示全部楼层
我记得你发过一次了 怎么又发一遍
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2019-12-21 13:16:10 | 显示全部楼层
...
我刚胡乱写了一把,你就未卜先知了啊

回复 4# suzhige
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2019-12-26 11:58:45 | 显示全部楼层
我选够浪
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2019-12-27 12:19:07 | 显示全部楼层
浪毛线
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2021-1-13 02:14:47 | 显示全部楼层
qiang qiang
学习中
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 02:37 AM , Processed in 0.011430 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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