北大侠客行MUD论坛

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

新人学mush,想求指教

[复制链接]
发表于 2012-11-17 19:20:54 | 显示全部楼层 |阅读模式
哪位高手写个打坐机器人和hp之后能自动显示血量的机器人,最好能注明 “发送给”哪里选哪个

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-11-17 19:23:26 | 显示全部楼层
自己写的那个
匹配 ^[>]*\s*【 气血 】\s+(\d+)\s+/\s+(\d+)\s+\[\s*(\d+)\%]\s+【 内力 】\s+(\d+)\s+./\s+(\d+)\s+.*$
发送 say %1 %2 %3 %4 %5
发送到:选  脚本解释器

但是无法触发到
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-11-17 19:23:30 | 显示全部楼层
自己写的那个
匹配 ^[>]*\s*【 气血 】\s+(\d+)\s+/\s+(\d+)\s+\[\s*(\d+)\%]\s+【 内力 】\s+(\d+)\s+./\s+(\d+)\s+.*$
发送 say %1 %2 %3 %4 %5
发送到:选  脚本解释器

但是无法触发到
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-11-17 19:26:53 | 显示全部楼层
回复 2# canglan


    发送到选第一个(默认的那个)
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-11-17 21:48:05 | 显示全部楼层
本帖最后由 dnd 于 2012-11-18 01:51 AM 编辑
  1. require "wait"
  2. -- ------------------------------------------------- 初始化一些必要的数据-- -----------------------------------------------function init ()        wait.make (function()                while true do                        cmd_count = 0                        cmd_count_start = GetInfo (232)                        wait.time (1)                end        end)end
  3. -- ------------------------------------------------- 防止输入指令过快-- -----------------------------------------------function anti_toofast()        local t        cmd_count = cmd_count + 1        if cmd_count < 15 then return end        cmd_count_end = GetInfo (232)        t = cmd_count_end - cmd_count_start        t = 1 - (t - t%0.1) + 0.1        if t < 0.1 then t = 0.1 end        print ("输入指令速度控制:等待"..t.."秒...")        wait.time (t)end
  4. -- ------------------------------------------------- 执行函数,加入了anti_toofast()-- -----------------------------------------------runre = rex.new ("([^;*\\\\]+)")function exe (str)        if str == "" or str == nil then return end        _cmds = {}        local i = 0        n = runre:gmatch (str, function (m, t)                i = i + 1                _cmds[i] = m        end)        if (_cmds == nil) then return end        for i, cmd in pairs (_cmds) do                anti_toofast()                Queue (cmd, 0)                        Note (cmd)        endend

  5. -- -----------------------------------------------
  6. -- 获取hp信息
  7. -- -----------------------------------------------
  8. function get_hpinfo()
  9.         local m={}
  10.         exe("hpbrief")
  11.         l,w=wait.regexp("#(.*),(\\d+),(\\d+),(\\d+),(\\d+),(\\d+)")
  12.         m.exp=w[1]
  13.         m.pot=w[2]
  14.         m.neili_max=w[3]*1
  15.         m.neili_cur=w[4]*1
  16.         m.jingli_max=w[5]*1
  17.         m.jingli_cur=w[6]*1
  18.         l,w=wait.regexp("#(.*),(\\d+),(\\d+),(\\d+),(\\d+),(\\d+)")
  19.         m.qixue_max=w[1]*1
  20.         m.qixue_percent=w[2]*1
  21.         m.qixue_cur=w[3]*1
  22.         m.jingshen_max=w[4]*1
  23.         m.jingshen_percent=w[5]*1
  24.         m.jingshen_cur=w[6]*1
  25.         m.qixue_zb=m.qixue_cur*100/m.qixue_max
  26.         m.neili_percent=m.neili_cur*100/m.neili_max
  27.         m.hpb=m.qixue_cur*10/(m.neili_cur+1)
  28.         return m
  29. end

  30. -- -----------------------------------------------
  31. -- dazuo到双倍内力,误差小于26内力小点
  32. -- -----------------------------------------------
  33. function dazuo()
  34.         while true do
  35.                 hp=get_hpinfo()
  36.                 if hp.qixue_cur>=hp.qixue_max*0.9 then
  37.                         if hp.jingshen_cur>=hp.jingshen_max*0.9 then
  38.                                 if hp.neili_cur>=(hp.neili_max*2-26) then
  39.                                         print("打坐双倍内力完毕!")
  40.                                         break
  41.                                 else
  42.                                         if (hp.neili_max*2-hp.neili_cur-10) > (hp.qixue_cur*0.91-1) then
  43.                                                 exe("dazuo "..(hp.qixue_cur*0.91-1)/1.3)
  44.                                                 l,w=wait.regexp("你运功完毕,深深吸了口气,站了起来。|你将真气在体内沿脉络运行了一圈,缓缓纳入丹田,放下手,长吐了一口气。|你只觉神元归一,全身精力弥漫,无以复加,忍不住长啸一声,徐徐站了起来。")
  45.                                         else
  46.                                                 exe("dazuo "..(hp.neili_max*2-hp.neili_cur-10)/1.3)
  47.                                                 l,w=wait.regexp("你运功完毕,深深吸了口气,站了起来。|你将真气在体内沿脉络运行了一圈,缓缓纳入丹田,放下手,长吐了一口气。|你只觉神元归一,全身精力弥漫,无以复加,忍不住长啸一声,徐徐站了起来。")
  48.                                         end
  49.                                 end
  50.                         else
  51.                                 exe("exert regenerate")
  52.                         end
  53.                 else
  54.                         exe("exert recover")
  55.                 end
  56.         end
  57. end
复制代码

这个可以做成插件,比如上述代码作为mylib.lua,插件代码为:








  1.    name="dazuo"
  2.    id="b6a5dab140f604c9559af393"
  3.    language="Lua"
  4.    date_written="2012-11-09 08:46:53"
  5.    requires="4.84"
  6.    version="1.0"
  7.    >











  8.   
  9.    name="dazuo_start"
  10.    script="main"
  11.    match="#dazuo"
  12.    enabled="y"
  13.    sequence="100"
  14.   >
  15.   









复制代码


把F12的宏设置成#dazuo,
这样以后按F12就会自动打坐到双倍内力。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-11-17 21:50:29 | 显示全部楼层
额。。排版乱了,凑乎看吧
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-11-18 00:01:55 | 显示全部楼层
本帖最后由 labaz 于 2012-11-18 12:03 AM 编辑
额。。排版乱了,凑乎看吧
dnd 发表于 2012-11-17 09:50 PM


少了一堆函数,你这插件给谁用啊
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-11-18 09:45:37 | 显示全部楼层
少了一堆函数,你这插件给谁用啊
labaz 发表于 2012-11-17 04:01 PM



    我封装了一下,你可能没有仔细看,没关系,我解释一下:
插件require wait和mylib。wait是lua线程封装库,mylib是自己写的库,实现dazuo()函数。
dazuo()用的是get_hpinfo()提取hp信息,exe()是发送命令,支持分号,自动防止一次性指令过长,自动断点停顿。

工作很正常啊,dazuo到双倍内力,误差小于26内力小点,缺点没有疗伤,自己加上就好。我9号写好用到现在,还没有出现问题。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-11-18 10:00:16 | 显示全部楼层
附上插件,函数库编译过。用法:
1,把mylib.lua放到mush根目录,或根目录里的lua文件夹下。
2,载入插件dazuo.xml
3,游戏中输入#dazuo
4,为了方便,按键F12可以设置成#dazuo,以后按下F12就自动打坐双倍内力。

本帖子中包含更多资源

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

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-11-18 10:16:41 | 显示全部楼层
回复 9# dnd


    没想到啊,童童居然是技术流选手……赶紧开发全自动机器人~
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 09:45 PM , Processed in 0.013471 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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