cordial 发表于 2011-9-25 19:23:46

别的mud 用mush的疑问,特来请教高手!

大体是这样的,我完成一个job后,想把奖励的exp等信息抓取,如何做?

这个是奖励的触发:

> 岳不群看了看你的令牌。
岳不群对着你竖起了右手大拇指,好样的。
岳不群说道:「还望壮士日后多行善事,必有好报。」
恭喜你!你成功的完成了华山任务!你被奖励了:
五十二点经验!
十四点潜能!
二十八点正神!
你给岳不群一块令牌。
> 你现在不忙。

这个写的有关抓取变量的job.lua的部分

function huashan:exps()
   wait.make(function()
      local l,w=wait.regexp("^(> |)恭喜你!你成功的完成了华山任务!你被奖励了:\n(.*)点经验!\n(.*)点潜能!\n(.*)正神!$",5)
          if l==nil then
      self:exps()
   return
   end
   if string.find(l,"恭喜你") then
       world.AppendToNotepad (WorldName(),os.date()..": 华山job 经验:".. ChineseNum(w).." 潜能:"..ChineseNum(w).."\r\n")
    local exps=world.GetVariable("get_exp")
    exps=tonumber(exps)+ChineseNum(w)
    world.SetVariable("get_exp",exps)
    world.AppendToNotepad (WorldName(),os.date().."目前获得总经验值"..exps.."\r\n")
    return
   end
   wait.time(5)
end)
end

执行起来没问题,就是奖励的数值抓不到,那位高手给我看看!
bow all

北大侠客行MUD,中国最好的MUD

trace 发表于 2011-9-25 19:30:20

trigger的多行触发开关开了吗?

cordial 发表于 2011-9-25 19:30:57

没有关,不是要打开么?

cordial 发表于 2011-9-25 19:34:42

调用的titgger的时候,\n都没有了,所以造成无法触发?为什么呢?

mygame 发表于 2011-9-25 19:37:07

用\\n

cordial 发表于 2011-9-25 19:42:50

还是抓不到啊?究竟是哪里的问题?

littleknife 发表于 2011-9-25 20:33:03

ChineseNum是啥函数哦?楼主是不是没有这函数,所以没法把【五十四】转换成54呢?

mygame 发表于 2011-9-25 20:41:39

local l,w=wait.regexp("^(> |)恭喜你!你成功的完成了华山任务!你被奖励了:\n(.*)点经验\!\n(.*)点潜能\!\n(.*)正神!$",5)

mygame 发表于 2011-9-25 20:43:57

这个!有的是双字节,有的单字节
页: [1]
查看完整版本: 别的mud 用mush的疑问,特来请教高手!