找回密码
 注册
搜索
查看: 2809|回复: 26

放大招了!根据伤害高低,判断克制!

[复制链接]
门派:明教
发表于 2019-1-10 14:49:11 | 显示全部楼层 |阅读模式
首先感谢岛主和小猪猪,没有这两位高手的启发,我大概还是困在触发器不工作的难题里,其实问题很简单,怪我自己疏忽了!

现在进入正题,说说今天的大招是关于什么的?为什么它用处很大?

---------------

我们知道,克制是否对路对于现在的书剑底层而言,可谓非常重要!

同样的武功,在130克制下,也许直接出必杀,或者把npc打得像稻草一样飞出去!
而在40的克制下,也许根本打不中,或者即便打中也和挠痒痒似的,只会出现绿字。

比如说号称bug武功的少林般若掌,它正常的属性是慢,但是假如npc偷偷bei了一指禅的话,它就变成了正。
而这个是无法识别出来的,因为同样的招式,bei的话也是隐藏的,但是偏偏属性有“慢”或“正”的不同。

以前我们都说武当任务的般若掌难打,一打就要打5-6分钟,就是因为它的属性是正,而我们当成慢来打的。
但是呢?
有时候般若掌是正常的慢属性,我们打它又很容易!

所以有的办法是既然无法识别,就把它丢去空属性里,然后用金蛇剑法或者太祖拳对付。
又或者设置一个判断,内力消耗超过一半,般若掌敌人还没打死的话,就切换别的武功;或者战斗时间太长,也需要切换!

还有的门派,比如天龙寺,有一阳指,一阳指就是正属性,对付拥有慢和正两种属性的,不存在问题。

但是像桃花岛,玉箫剑法用箫为险,用剑为妙,打慢用险,打正用妙,其区别就大相径庭,一旦判断错误就是40的克制,却是比较头疼!

评分

1

查看全部评分

门派:明教
 楼主| 发表于 2019-1-10 14:53:23 | 显示全部楼层
那么,有没有办法类似人工一样,通过看伤害高低,来判断克制是否对路呢?

我从论坛里找到一段书剑底层判断伤害高低的代码——

                case "击伤":
                        if( damage < 200 )  return "结果在$n的伤处造成一处瘀青。\n";
                        if( damage < 400 )  return "结果一击命中,$n的伤处登时肿了一块老高!\n";
                        if( damage < 800 )  return "结果「砰」地一声,$n退了两步!\n";
                        if( damage < 1600 ) return "结果这一下「砰」地一声打得$n连退了好几步,差一点摔倒!\n";
                        if( damage < 3200 ) return "结果只听见「砰」地一声巨响,$n像一捆稻草般飞了出去!!\n";
                        return "只听见$n一声惨叫,整个身体象断了线的风筝一样飞了出去!!\n";
门派:桃花岛
发表于 2019-1-10 14:54:43 | 显示全部楼层
kkfromch@tj 发表于 2019-1-10 14:53
那么,有没有办法类似人工一样,通过看伤害高低,来判断克制是否对路呢?

我从论坛里找到一段书剑底层判 ...

然后 接下来  改 怎么做呢                        
门派:明教
 楼主| 发表于 2019-1-10 15:00:23 | 显示全部楼层
通过抓取战斗log,例如——
http://www.sjever.net/bbs/forum.php?mod=viewthread&tid=219333

我发现克制不对路的话,伤害分为以下几种情况——

1.打不中。
你右手挥出,拇指与食指扣起,余下三指略张,手指如一枝兰花般伸出,拂向玄福,姿势美妙已极!
玄福只感「膻中穴」上一麻,总算变招迅速,没给你拂中穴道。


2.打中了,但是伤害很低。
你右手挥出,拇指与食指扣起,余下三指略张,手指如一枝兰花般伸出,拂向玄福,姿势美妙已极!
玄福只感「清灵穴」上一麻,被你拂中穴道。
结果在玄福的伤处造成一处瘀青。
( 玄福似乎有些疲惫,但是仍然十分有活力。 )


3.几乎没有造成任何伤害。
你右手挥出,拇指与食指扣起,余下三指略张,手指如一枝兰花般伸出,拂向玄福,姿势美妙已极!
玄福只感「至阳穴」上一麻,总算变招迅速,没给你拂中穴道。
结果几乎没有对玄福造成任何伤害。


-----------
也就是说,伤害级别是低于200的,不论是否打出了黄字,还是红字,击伤描述从来没有超过“淤青”这个程度!
门派:明教
 楼主| 发表于 2019-1-10 15:06:39 | 显示全部楼层
那么,我们根据这个思路,就可以设计code,分别对“淤青”,“没有造成任何伤害”,“没给你拂中穴道”        ,三种情况进行抓取,每出现一次,计数器+1,直到超过5次后,将其识别为正属性般若掌。

   if npc_wugong and npc_wugong=="般若掌" then
              if string.find(tmpdes,"的伤处造成一处瘀") then
                     damage_level=damage_level+1
              end
              --[[if string.find(tmpdes,"造成任何") then
                     damage_level=damage_level+1
              end]]
              if string.find(tmpdes,"没给你拂中") then
                    damage_level=damage_level+1
              end
              print("damage_level="..damage_level)
              if damage_level>5 then
                     return kezhiwugongValue("正",i,"般若掌")
              end
           end
门派:丐帮
发表于 2019-1-10 15:07:01 | 显示全部楼层
高端帖啊,我先收藏慢慢看,现在的克制越来越完善了。
门派:姑苏慕容
发表于 2019-1-10 15:15:36 | 显示全部楼层
966) 气血伤害描述更新                                    (News)(Tue Mar 28 17:18)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
气血伤害描述改为以百分比为
依据:
绿色 < 5%
高绿 5-10%
黄色 10-20%
红色 20-30%
暗红 30-40%
暗红 >40%
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[ 本 篇 完 ]
门派:明教
 楼主| 发表于 2019-1-10 15:16:25 | 显示全部楼层
下边说说这个坑爹的触发器设计,简直是太坑太坑了!

原程序触发器——

                        create_trigger_t('afight1'..i,'^(> )*(\\D*)'..npc_name..'(\\D*)'..'!$','','kezhiwugongcheck'..i)


我给大家解读一下,它是通过抓取npc的名字做关键字的。

例如:npc姓名- 张三。

它抓取的匹配为——

xxxx张三xxxx!

也就是说,不论战斗中发生了什么,只要是带有“张三”字样,并且结尾为!号的句式,统统抓取,交给函数kezhiwugongcheck()进行判断。

例如——
你一招「蛇影无踪」,身子稍侧,长臂直伸,左掌虚晃,右手奇招突起,三才无极箫反刺玄福的左手!

这句话里,以“玄福”为分界点,前边的语句内,假如识别出“你”字,则是我们出招打npc,如果没有,则是npc出招。

然后,对前后XXXX的内容进行识别,假如识别出武功招式名称,则说明是npc出招,武功为啥啥,属性为啥啥!

这就是克制模块工作的原理。
门派:明教
 楼主| 发表于 2019-1-10 15:20:28 | 显示全部楼层
接下来我单独贴一下为了抓取淤青伤害的触发器,因为贴完之后这个帖子下边就会变成斜体字,我在下一楼再解释:
                        create_trigger_t('afight3'..i,'^(> )*(\\D*)'..npc_name..'(\\D*)'..'(青|穴道|伤害)。$','','kezhiwugongcheck'..i)
门派:明教
 楼主| 发表于 2019-1-10 15:27:23 | 显示全部楼层
模式为——

xxxx张三xxxx(青|穴道|伤害)。

为什么要这么设计呢?接下来我要说说这里面的触发器有多坑了!

第一,所有描述被打击的语句结尾是。号,而非!号。

也就是说,只要是我们出招打别人,或者别人打我们,只要是打的那一下,都是!号结尾的句式。
而只要描述被打的,不论打没打中,或者击伤效果如何,统统都是。号结尾的句式。

例如:
你一招「蛇影无踪」,身子稍侧,长臂直伸,左掌虚晃,右手奇招突起,三才无极箫反刺玄福的左手
结果只是轻轻地刺破玄福的皮肉
( 玄福似乎有些疲惫,但是仍然十分有活力。 )

从上边例子可以看到,描述敌人总体状态的,是这种()括弧的句式。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-9 06:56 , Processed in 0.042042 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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