找回密码
 注册
搜索
查看: 1125|回复: 17

请教一个抓取jiali max变量的问题。

[复制链接]
门派:丐帮
发表于 2019-2-23 13:45:06 | 显示全部楼层 |阅读模式
这个jiali max后面括号里面有个 +,怎么处理……

评分

1

查看全部评分

门派:武当派
发表于 2019-2-23 16:06:35 | 显示全部楼层
你是指抓到的正则?  +号是保留字符,,要转义的...\

评分

1

查看全部评分

门派:丐帮
 楼主| 发表于 2019-2-23 16:40:31 | 显示全部楼层
vingi@tj 发表于 2019-2-23 16:06
你是指抓到的正则?  +号是保留字符,,要转义的...\

所以我就搞不懂了。{:3_104:}      
门派:古墓派
发表于 2019-2-23 16:40:50 | 显示全部楼层
本帖最后由 joyce@tj 于 2019-2-23 16:41 编辑

·气血·  91950 /   91980 (100%)  ·内力· 169916 /  182006(+612)

最后面的正则可以这样写,抓取612这个加力的数值:......\\(\\+(\\d+)\\)


d+代表有一个或者多个数字。

D代表非数字字符,包含空格等。

s代表空格

S代表非空格字符。

评分

1

查看全部评分

门派:丐帮
 楼主| 发表于 2019-2-23 16:43:00 | 显示全部楼层
joyce@tj 发表于 2019-2-23 16:40
·气血·  91950 /   91980 (100%)  ·内力· 169916 /  182006(+612)

最后面的正则可以这样写,抓取612 ...

hp_qixue_check=function(n,l,w)
         hp.qixue    =tonumber(w[1])
         hp.qixue_max=tonumber(w[2])
         hp.qixue_per=tonumber(w[3])
         hp.neili    =tonumber(w[4])
         hp.neili_max=tonumber(w[5])            
end

我看shujian.lua里面气血这行的这几个变量是这样的,jiali max这里我就搞不懂怎么办了。
门派:丐帮
 楼主| 发表于 2019-2-23 17:08:52 | 显示全部楼层
^·气血·\s*(\d*)\s*\/\s*(\d*)\s*\(\s*(\d*)\%\)\s*·内力·\s*(\d*)\s*\/\s*(\s*\d*)\(\+\d*\)$

我看到触发句型里面有jiali_max,为什么这么抓的变量不对呢?
hp_qixue_check=function(n,l,w)
         hp.qixue    =tonumber(w[1])
         hp.qixue_max=tonumber(w[2])
         hp.qixue_per=tonumber(w[3])
         hp.neili    =tonumber(w[4])
         hp.neili_max=tonumber(w[5])
         hp.jiali_max=tonumber(w[6])           
end

门派:明教
发表于 2019-2-23 17:55:09 | 显示全部楼层
honglian@tj 发表于 2019-2-23 17:08
^·气血·\s*(\d*)\s*\/\s*(\d*)\s*\(\s*(\d*)\%\)\s*·内力·\s*(\d*)\s*\/\s*(\s*\d*)\(\+\d*\)$

我看 ...

红版啊!以后说问题最好说清楚一些,附上例子什么的!

我第一眼看到问题后,愣是不知道那个+号出现在哪里?想给你奖励也给不了,都不知道问题是啥啊!

现在看明白了,讨论正则是机器人中比较高端的问题,非常有价值,必须好好奖励啊!
门派:桃花岛
发表于 2019-2-23 18:08:20 | 显示全部楼层
honglian@tj 发表于 2019-2-23 17:08
^·气血·\s*(\d*)\s*\/\s*(\d*)\s*\(\s*(\d*)\%\)\s*·内力·\s*(\d*)\s*\/\s*(\s*\d*)\(\+\d*\)$

我看 ...

create_trigger_t('hp2',"^·气血·\\s*(\\d*)\\s*\\/\\s*(\\d*)\\s*\\(\\s*(\\d*)\\%\\)\\s*·内力·\\s*(\\d*)\\s*\\/\\s*(\\s*\\d*)\\(\\+\\d*\\)$",'','hp_qixue_check')

这是公版shujian.lua里抓气血和内力的触发器正则。

hp_qixue_check=function(n,l,w)
         hp.qixue    =tonumber(w[1])
         hp.qixue_max=tonumber(w[2])
         hp.qixue_per=tonumber(w[3])
         hp.neili    =tonumber(w[4])
         hp.neili_max=tonumber(w[5])            
end

这是处理的函数,然后你想在这里边抓取加力数值对吧?

很简单,一个(\\d*)是对应一个变量抓取,从头数到尾,(^ >*)这个也算。

然后依次排序——

(^ >*):w[1]
(\\d*):w[2]
(\\d*):w[3]
……

从上边函数内可以看到,已经排到了w[5],所以加力数值的抓取会赋予保留变量w[6]内。

create_trigger_t('hp2',"^·气血·\\s*(\\d*)\\s*\\/\\s*(\\d*)\\s*\\(\\s*(\\d*)\\%\\)\\s*·内力·\\s*(\\d*)\\s*\\/\\s*(\\s*\\d*)\\(\\+(\\d*)\\)$",'','hp_qixue_check')

给它套上一个括弧()就行了,表明要抓这个数字变量的内容了!

评分

1

查看全部评分

门派:丐帮
 楼主| 发表于 2019-2-23 18:10:50 | 显示全部楼层
liumaisj@tj 发表于 2019-2-23 18:08
create_trigger_t('hp2',"^·气血·\\s*(\\d*)\\s*\\/\\s*(\\d*)\\s*\\(\\s*(\\d*)\\%\\)\\s*·内力·\\s ...

{:3_110:}这个问题困扰我一下午。我就想做个jiali max/2,内力不够的时候加力减半,然后换上恢复武器。这样auto pfm还能正常生效。
门派:丐帮
 楼主| 发表于 2019-2-23 18:12:22 | 显示全部楼层
liumaisj@tj 发表于 2019-2-23 18:08
create_trigger_t('hp2',"^·气血·\\s*(\\d*)\\s*\\/\\s*(\\d*)\\s*\\(\\s*(\\d*)\\%\\)\\s*·内力·\\s ...

要不直接jiali 0的话,无影拳和5h、9d就不破防了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-8 23:50 , Processed in 0.051371 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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