找回密码
 注册
搜索
查看: 2000|回复: 35

举例说明下,bishen 代码的使用方式

[复制链接]
门派:姑苏慕容
发表于 2020-7-27 12:56:34 | 显示全部楼层 |阅读模式
本帖最后由 ryru@tj 于 2020-7-27 13:18 编辑

之前给在机器板块的是基本功能,含了pfm判断和skill的数据库,具体要用起来还是自己要做的,我这里举个栗子给大家看下

我这里用官府任务举例

目前官府我的基本思路是,先用连环打,连环有16 s的cd,连环出完了判断对方有否大招,如果有大招就用对方大招再放个,所以这里就有CD判断和合气判断,还有对方skill判断3个地方

几个变量解释下
                ---CD_lianhuan 连环的CD时间,连环本身有3s时间,所以我CD是-13的,连环CD结束1s之前也不处理,等连环
                ---CD_bishen bishen的CD时间
                ---tonumber(heqi)是目前的合气值

下面这段代码是放在合气判断里面的,每次合气判断的时候,判断是否满足条件


合气判断我就不说了,基本功能,其他的后面一个个讲

  1. local l_targetSkill = targetSkill or sxjob.skills  --记录对方的技能,例如targetSkill==龙爪功
  2.                 if l_targetSkill and bs_skills[l_targetSkill] and CD_lianhuan and os.time()>CD_lianhuan-13 and os.time()<CD_lianhuan-1 and (not CD_bishen or (CD_bishen and os.time()>CD_bishen)) then
  3.                         print('lianhuan CD期间,检查是否有对方大招')
  4.                         for i=1,table.getn(bs_skills[l_targetSkill]["PFM"]) do
  5.                                 if bs_skills[l_targetSkill]["PFM"][i]["Frozen"]~="Y" then
  6.                                         if tonumber(bs_skills[l_targetSkill]["PFM"][i]["heqi"])>=480 then --判断对方Skill是否有>=480合气的pfm
  7.                                                 if tonumber(heqi)>=tonumber(bs_skills[l_targetSkill]["PFM"][i]["heqi"])+40 then
  8.                                                 print('对手功夫有大招用')
  9.                                                 exe('perform parry.bishen')   
  10.                                                 end
  11.                                         end
  12.                                 end
  13.                         end
  14.                 end
复制代码

门派:姑苏慕容
 楼主| 发表于 2020-7-27 13:06:56 | 显示全部楼层
本帖最后由 ryru@tj 于 2020-7-27 13:16 编辑

CD的抓取

这个很简单,放在job的fight trigger里面

  1. create_trigger_t('fight800','^(> )*你使出慕容剑法之精髓「七剑连环指」','','fight_cd_check')
  2. SetTriggerOption("fight800","group","fight")
  3. function fight_cd_check(n,l,w)
  4.         CD_lianhuan=os.time()+16
  5. end
复制代码

bishen的cd我和pfm放一起了,后面贴
门派:姑苏慕容
 楼主| 发表于 2020-7-27 13:12:47 | 显示全部楼层
本帖最后由 ryru@tj 于 2020-7-28 16:51 编辑

bishen后放pfm

也是放在job.lua里面的
  1. create_trigger_t('fight801','^(> )*你仰天狂笑\\D*成名绝技『(\\D*)』','','bishen_fight_check')
  2. SetTriggerOption("fight801","group","fight")
  3. function bishen_fight_check(n,l,w)
  4.         CD_bishen=os.time()+14
  5.         targetSkill = w[2]
  6.         messageShow('对手功夫:'..targetSkill)
  7.         kezhiwugongclose()
  8.         if job.name and job.name=='guanfu'then
  9.                 if bs_pfm(targetSkill,job.id,heqi-40) then
  10.                         print('bishen后的和气为:'..heqi-40)
  11.                         exe(bs_your_pfm)
  12.                         print('用你的大招弄死你!')
  13.                 end
  14.         end
  15. end
复制代码



门派:姑苏慕容
 楼主| 发表于 2020-7-27 13:32:01 | 显示全部楼层
上山有点复杂,目前感觉bishen的可用性不是那么大,能做一点补充      
门派:明教
发表于 2020-7-28 11:24:50 | 显示全部楼层
create_trigger_t('fight801','^(> )*你仰天狂笑\\D*成名绝技『(\\D*)』','','bishen_fight_check')
SetTriggerOption("fight801","group","fight")
这个是加在fight_trigger=function()下面么,
可是为什么我的function bishen_fight_check(n,l,w)  这个方法感觉没有执行呢print打印出来的东西没有出现
门派:天龙寺
发表于 2020-7-28 12:50:11 来自手机 | 显示全部楼层
不错,收藏有空了研究下。     
门派:天龙寺
发表于 2020-7-28 12:54:01 来自手机 | 显示全部楼层
不知道上山用这个如何? 不过上山做bishen触发更容易点,已经对手技能,直接可以出大招了
门派:姑苏慕容
 楼主| 发表于 2020-7-28 16:52:10 | 显示全部楼层
louisss@tj 发表于 2020-7-28 11:24
create_trigger_t('fight801','^(> )*你仰天狂笑\\D*成名绝技『(\\D*)』','','bishen_fight_check')
SetTr ...

是放在这里的,我看看你的trigger打开了没有  
门派:姑苏慕容
 楼主| 发表于 2020-7-28 16:54:38 | 显示全部楼层
semic@tj 发表于 2020-7-28 12:54
不知道上山用这个如何? 不过上山做bishen触发更容易点,已经对手技能,直接可以出大招了


上山有几种思路,目前我是要看对方等级和看对方是否有大招
如果地方是黄级,不要copy,不然反而打不动
如果对方等阶比你高,可以copy,哪怕没有大招,但skill等阶上去了也更好

我目前是连环放完,看对方的skill,然后copy 放大招,不过基本用不上,基本一个连环两个都倒了

其实也可以先copy放对手大招,然后再放自己的连环
门派:明教
发表于 2020-8-5 14:29:46 | 显示全部楼层
louisss@tj 发表于 2020-7-28 11:24
create_trigger_t('fight801','^(> )*你仰天狂笑\\D*成名绝技『(\\D*)』','','bishen_fight_check')
SetTr ...

if bs_pfm(targetSkill,job.id,heqi-40) then
                        print('bishen后的和气为:'..heqi-40)
                        exe(bs_your_pfm)
                        print('用你的大招弄死你!')
                end

感觉是bs_pfm没有执行,我在if bs_pfm 之外打了一个print()内容执行了。
但是bs_pfm里面的东西没有打印出来,也不出pfm,
其实我就是想在山下跑的时候,出一下对方的PFM,看着很炫~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-30 06:45 , Processed in 0.032131 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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