0

超级宏论坛

分类导航全部

温馨提示

站内问题请先查看帮助中心
每一位侠士都有过小白经历,希望大家多一点耐心,互相帮助,江湖有你随行,步步惊(喜)心

发帖说明

  1. 求助类问题请在提问前请先搜索已解决方案,并描述清楚问题。
  2. 宏与工具的提问时请在帖子中“@ 用户名”,以便作者收到通知,否则作者可能无法知晓。
关闭生成文章|
无色幽明 关注 发布时间: 2014-03-26 最后更新: 2014-03-26 61530 0
打印
分享
正序查看
无色幽明 40 认证团队 认证玩家 签约作者 1# 最后更新 2014-03-26
更多 回复
藏剑实例
主稿:洛水龙渊







前言
其实10大门派当中, 藏剑宏是一个比较简单容易写的宏,不需要用到太多的生僻函数命令,因为藏剑没有DOT。
但是,写一个优秀的宏首先是建立在你对这个职业的有着深刻的理解上面的,如果说你都不知道“该写什么”,我怎么做到“教你如何写”。写宏的目标和思路是你自己的,我能够做到的就是帮你实现你要写的那个宏。写法是大同小异,但是写出来的宏却是与众不同。就如同同样是26个英文字母,有的人用它们来拿诺贝尔文学奖,但是更多人却用来问候别人的家人。
写宏是一个过程,并不是一蹴而就的,每个宏作者发表的一个完整的宏,背后都有着严格的测试,不断的寻找BUG来解决,而且在后续的时间里,不断的更新来修复后来发现的BUG,不断的添加新的功能,不断的优化宏的执行效率和阅读性以及准确度。
所以本篇教程作为一个中级教程的门派实例讲解,没有牵扯到很多细节方面和实战中需要处理的一些问题,只做基本循环的介绍。如果你认为你的宏在“XX副本里面的XXboss该自己执行XX”的想法时,请自己来完成这个想法吧!
全文最后有一个以【龙渊藏剑宏】为蓝本的全文注释详解,如果你理解了我上面说的话,而且看懂了下面讲的东西的话,我想这将很适合你!下面我先说点基础点的东西。

主要循环
最重要的是重剑循环部分的语句,【听雷云飞断潮听雷夕照】是基本的循环。
当然还有【听雷云飞断潮听雷夕照夕照】的双夕照循环,不过对加速有要求,所以这里不作介绍。

藏剑PVE要点【映波锁澜】这个奇穴,所以在判断条件上,打【听雷】之后产生的【凤鸣】BUFF是一个常用的判断参数。举个例子:
/skill [nobuff:凤鸣]听雷
这个语句的意思就是,在没有【凤鸣】BUFF的时候打听雷。这是重剑循环中的一个基本语句。

其次是【云飞玉皇】这个技能,这个技能不同于夕照雷峰。因为他是一个站桩读条的技能。
判断人物状态的是【state】这个命令,而能定义的这个参数的有很多,【stand】为站立状态,【run】为移动状态,【jump】为跳跃状态。
因为【夜雨】这个奇穴的存在,【云飞玉皇】能实现瞬发,也就是说在你移动或跳跃状态的时候,你有【夜雨】buff也是可以打【云飞玉皇】的。
于是关于【云飞玉皇】的判断可以这么写:
/skill [state:stand;state:run|jump,buff:夜雨]云飞玉皇
这个语句的意思就是,在站立状态或者是有【夜雨】BUFF的时候移动和跳跃也打【云飞玉皇】

然后是关于【夕照雷峰】这个技能的判断,首先要明白,【夕照雷峰】这个技能是在没有【云飞玉皇】和【听雷】可以打的时候才会去打的一个技能。
所以它的优先级是最低的。因为【云飞玉皇】和【听雷】都是有CD的技能,而【夕照雷峰】是没有CD的,所以这个时候我们就会用到一个【cd】的判断命令。
而且最重要的是【夕照雷峰】是可以移动跳跃状态也可以完成读条的技能,所以在移动跳跃状态的时候,没有办法打【云飞玉皇】,【夕照雷峰】的优先级仅限于【听雷】。
举个例子:
/skill [cdtime:云飞玉皇>1.375,cd:听雷;state:run|jump]夕照雷峰
这个语句的意思是,在【云飞玉皇】的CD大于1.375秒,而且【听雷】也才CD中的时候,或者是移动跳跃状态的时候就打【夕照雷峰】
在这里就运用到了两个判断技能CD的命令,分别是判断技能是否在CD的【cd】命令和判断技能CD大于或者小于多少时间的【cdtime】命令,【cd】命令无需参数,后面直接写技能名称即刻,而【cdtime】需要一个判断时间大于或者小于的参数,也就是【cdtime:云飞玉皇>1.375】,后面代入具体的时间及判断符号。

最后是【断潮】这个技能的定义,对于一个需要BUFF触发才能使用的技能,很多人在这个技能的输出循环上面有分歧,所以你在写宏的时候,首先要考虑好:我决定什么时候打【断潮】。
有的人是【断潮】CD好了就打,实战中为了不覆盖掉【凤鸣】的BUFF,所以在【听雷云飞听雷夕照】的循环中,【云飞玉皇】的后面不打【断潮】,下次机会也就只有【夕照雷峰】的后面打【断潮】了。
而【云飞玉皇】在【夕照雷峰】后的一个【听雷】后,正常冷却的话CD也该好了。所以这个【断潮】仅仅只是重置掉了一个1.5秒的CD的【云飞玉皇】,没有真正的作为一个重置技能的作用,而仅仅只是作为一个输出技能打出去。而且是没有【凤鸣】的低质量会心的断潮。
所以我的写法是:【断潮】只在【云飞玉皇】后面打,做到完美重置【云飞玉皇】,之前的版本更新技能修改,增加的【剑鸣】这个BUFF的持续时间为10S,而【云飞玉皇】的CD仅6S,所以【断潮】不管什么时候触发,都足够等到【云飞玉皇】进入CD然后完美重置。
所以我的断潮的写法应该就是:
/skill [nobuff:凤鸣,lastota:云飞玉皇)]断潮
这个语句的意思是在没有【凤鸣】BUFF的时候,并且上个读条技能是【云飞玉皇】的时候就打【断潮】。
这里运用到了一个【lastota】命令,这个命令的意思是判断上个读条技能是什么。判断的范围默认是1.2S,小于GCD,所以不用担心卡到【听雷】。

写完这四条命令了,但是宏存在一个运行的优先级问题。也就是说什么写在前面什么写在后面。写在前面的会优先运行。
举个例子:
/skill 云飞玉皇
/skill 夕照雷峰
这个简单的宏运行的结果就是【云飞玉皇】好了就打,【云飞玉皇】在CD的话就打【夕照雷峰】。
再举个例子:
/skill 夕照雷峰
/skill 云飞玉皇
这个宏运行的结果就是无限【夕照雷峰】,而【云飞玉皇】可一个都不打。
原因是因为【夕照雷峰】是没有CD的,所以【skill】命令无限满足【夕照雷峰】造成后面的语句无法执行的情况。
所以我们写宏的顺序是,把多判断限制和技能CD很长的语句,不容易满足条件释放的技能写在前面。
根据这个宗旨,我们把上面写的宏综合在一起就是:
/skill [nobuff:凤鸣,lastota:云飞玉皇)]断潮
/skill [nobuff:凤鸣]听雷
/skill [state:stand;state:run|jump,buff:夜雨]云飞玉皇
/skill [cdtime:云飞玉皇>1.375,cd:听雷;state:run|jump]夕照雷峰
好吧,一个最基本的藏剑宏的雏形就完成了,但是你会发现在运行过程中会出现很多问题,或者说是BUG。我们来一步步的来看。——




首先遇到的问题就是点【夜雨】奇穴的时候,触发【夜雨】BUFF不打【断潮】的问题。
为什么?
就是因为【lastota】只判断上个【读条技能】,而有【夜雨】的【云飞玉皇】是瞬发的,不满足【断潮】的释放条件。所以造成瞬发【云飞玉皇】不打【断潮】的BUG。
所以我们要会找出问题的原因,一个宏写出来之后多多少少会存在很多BUG,这个是正常情况,需要我们一步步的解决。
我们要解决瞬发【云飞玉皇】之后也要打【断潮】,这个时候我们要运用到一个我们前面使用过的命令【cdtime】,因为是完美重置【云飞玉皇】,所以要在【云飞玉皇】刚刚进入CD的时候就打【断潮】。
我们已知【云飞玉皇】的CD是6S,然后GCD是1.5S(加速之后是1..44或者是1.38),我们在这里写一个【cdtime:云飞玉皇>4】就行了,当然也可以把4改成合适的数值,单位是秒。
所以我们的断潮命令就会变成:
/skill [nobuff:凤鸣,(lastota:云飞玉皇;cdtime:云飞玉皇>4)]断潮

好了,【夜雨】的问题解决了,我们再打木桩看看,恩,站桩输出没问题了,可是实战中是不是要移动输出。
移动输出的时候,没有【夜雨】BUFF的【云飞玉皇】是不是还是打不出去。【云飞玉皇】打不出造成的后果就是【断潮】也不跟着打。

好,新的问题又出现了。这个问题怎么解决呢?
我们想想看,我们是怎么定义【云飞玉皇】的站桩和移动状态的。对,就是【state】命令
首先我们要在脑袋里面模拟一下【断潮】的释放,用文字表述一下,然后转化成命令实现。
我们要在移动或跳跃的时候,即使【云飞玉皇】没有进入CD,也要去打【断潮】。
于是我们的命令再修改一下:
/skill [nobuff:凤鸣,(lastota:云飞玉皇;cdtime:云飞玉皇>4;state:run|jump)]断潮
很简单吧!但是需要注意的是【;】这个符号,是【或】的意思,【,】是【且】的意思,看过初级教程的应该会明白。【,且】的优先级高于【;或】,所以在判断的优先级方面会优先判断【,且】。
如果需要人为的改变判断顺序,就需要【()】来改变,这个以后会讲到。

好了,一个简单的重剑循环完成了,大概就是:
/skill [nobuff:凤鸣,(lastota:云飞玉皇;cdtime:云飞玉皇>4;state:run|jump)]断潮
/skill [nobuff:凤鸣]听雷
/skill [state:stand;state:run|jump,buff:夜雨]云飞玉皇
/skill [cdtime:云飞玉皇>1.375,cd:听雷;state:run|jump]夕照雷峰
但是,这个宏远远还不够,为什么?因为考虑到实战情况,会出现除了移动输出,还有8尺输出的情况。
8尺输出该如何处理?首先我们要定义一个4尺输出的判断,超过4尺输出的就默认为8尺。
【听雷】是一个4尺输出的技能,所以带入【听雷】的技能循环,要判定为4尺之内用上面所说的循环。
【四季剑法】和【听雷】都可以判定距离,用【sktest】命令来判断技能是否亮。于是判定写为:
[sktest:听雷]
这个命令只是一个参数,不能直接这么写。
我们的要求是在4尺内作上述输出。
这里要用到【/if】来判断:
/if [sktest:听雷]
/end
上述的4个技能就放在【/if】和【/end】之间。这里一定要记得【/if】和【/end】是对应的,两者是相互存在的。

于是我们的宏便成为:
/if [sktest:听雷]
/skill [nobuff:凤鸣,(lastota:云飞玉皇;cdtime:云飞玉皇>4;state:run|jump)]断潮
/skill [nobuff:凤鸣]听雷
/skill [state:stand;state:run|jump,buff:夜雨]云飞玉皇
/skill [cdtime:云飞玉皇>1.375,cd:听雷;state:run|jump]夕照雷峰
/end
至于8尺输出就很简单了。
我个人写的宏是8尺输出的时候,有【夜雨】打【云飞玉皇】,其余时间打【夕照雷峰】。
当然这个根据自己的习惯来。
/skill [buff:夜雨]云飞玉皇
/skill 夕照雷峰
如果你是8尺要读条【云飞玉皇】,就去除掉【buff:夜雨】的判断就好了。
上述就一个完整的藏剑重剑输出宏。但是十分简单,我们需要丰富起来。

完成最基本的藏剑重剑循环之后,其次是完善剑气续航和常驻的【梅隐香】的BUFF保持。——


剑气续航【莺鸣柳雪断桥斩岳雪断桥莺鸣柳】【雪断桥莺鸣柳雪断桥斩岳雪断桥莺鸣柳】【莺鸣柳斩岳雪断桥斩岳莺鸣柳】这里我是取雪断桥莺鸣柳雪断桥的循环。具体选择哪种循环,自己来判断,写法上面都是大同小异。
这里需要加入很多东西,比如【雪断桥】和【莺鸣柳】。然后还有自动【梅隐香】。
【雪断桥】和【莺鸣柳】很简单。只需要用到判断CD时间的【cdtime】就行了,然后需要用到的是一个判断剑气多少的【rage】。
/skill [rage<20]雪断桥
这个命令的意思就是:当你的剑气低于20点时,就是用【雪断桥】。
至于【莺鸣柳】你是想没有【雪断桥】的时候放。这个时候只需要加一个CD判断就行了。
/skill [rage<20,cdtime:雪断桥<59,cdtime>雪断桥7]莺鸣柳
这个命令的意思是:当你的剑气低于20点,并且你的【雪断桥】CD小于59S并大于7S的时候就开【莺鸣柳】。
至于【梅隐香】同理,需要的判断就是判断目标身上的BUFF和自身的BUFF。
/skill [nobuff:香梅,(tnobuff:梅隐香;tbufftime:梅隐香<5)]梅隐香
这个命令的意思是:自身没有【香梅】的BUFF或者是目标没有【梅隐香】的buff或者是目标身上【梅隐香】的buff时间小于5S的时候上【梅隐香】。
藏剑是双心法职业,所以切换轻重剑心法的变换就变得尤为重要。所以一个完整的藏剑宏需要判断心法来使用不同的技能

这个时候我们要用到一个对于藏剑来说是至关重要的命令——【mount】。


心法判定
【mount】这个命令实际中的运用下面举个实例。
/if [mount:山居剑意]
/skill [rage<20]雪断桥
/skill [rage<20,cdtime:雪断桥<59,cdtime>雪断桥7]莺鸣柳
/skill [nobuff:香梅,(tnobuff:梅隐香;tbufftime:梅隐香<5)]梅隐香
/if [sktest:听雷]
/skill [nobuff:凤鸣,(lastota:云飞玉皇;cdtime:云飞玉皇>4;state:run|jump)]断潮
/skill [nobuff:凤鸣]听雷
/skill [state:stand;state:run|jump,buff:夜雨]云飞玉皇
/skill [cdtime:云飞玉皇>1.375,cd:听雷;state:run|jump]夕照雷峰
/end
/skill [buff:夜雨]云飞玉皇
/skill 夕照雷峰
/end
这里用【/if /end】来把上面完成的重剑循环部分的语句全部加入进去。这样一来,就做到了只有在重剑下面才会使用上述技能。做到了在轻剑下面不会释放【雪断桥】和【莺鸣柳】以及打【听雷】的判断。尤其是【听雷】,因为轻剑下面打【听雷】是没有【凤鸣】BUFF的。
有重剑心法判断就有轻剑心法判断。
/if [mount:问水诀]
/end
轻剑循环部分放在里面就行了,这样一来就能做到不同心法下的不同技能循环,主要是应对一些双心法都能够使用的技能但是使用的条件缺不同的技能。
完成轻重剑循环的分离,这个时候就需要考虑到一个藏剑的核心技能——【啸日】的定义。
这个定义也是最为重要的,仅次于重剑循环里面的【凤鸣】和【断潮】技能的完美覆盖。



啸日控制
我前面也提到一个剑气循环的3种方式,而啸日就是一个和剑气循环紧紧绑定的一个关键技能,选用不同的剑气循环方式,啸日的写法也天差地别。
我们还是以上述的优先雪断桥,然后考虑莺鸣柳,最后才考虑切轻剑的剑气循环来举例。这个是我们的啸日应该这么写:
/skill [rage<20]雪断桥
/skill [rage<20,cdtime:雪断桥<59,cdtime>雪断桥7]莺鸣柳
/skill [rage<20,cdtime:雪断桥<62,cdtime:雪断桥>7,cdtime:莺鸣柳<112,cdtime:莺鸣柳>7]啸日
我们来仔细看看啸日的定义:在雪断桥CD小于62秒并大于7秒,并且莺鸣柳CD小于112并大于7秒的时候才释放啸日。
这就造成了,必须【雪断桥】和【莺鸣柳】都进入CD并都大于7秒的时候才会使用【啸日】。也就是说【啸日】的优先级在最后,这就是我们的一个【雪断桥莺鸣柳雪断桥啸日】的循环。
但是如果我们用【莺鸣柳雪断桥啸日雪断桥莺鸣柳】的剑气循环呢?我们该怎么写?
/skill [rage<20]莺鸣柳
/skill [rage<20,cdtime:莺鸣柳<112,cdtime>7]雪断桥
/skill [rage<20,cdtime:雪断桥<62,cdtime:雪断桥>7,cdtime:莺鸣柳<112,cdtime:莺鸣柳>7]啸日
这个时候,因为【莺鸣柳】和【雪断桥】的优先级互换之后,【啸日】还是作为一个最后优先级的技能,所以判断条件还是不变。而且是,优先级越靠后,判断命令就越多。
那我们试把【啸日】的优先级提前,把【雪断桥】放到最后,这就是上面提到的第三种剑气续航方式【莺鸣柳斩岳雪断桥斩岳莺鸣柳】的循环。
/skill [rage<20]莺鸣柳
/skill [rage<20,cdtime:莺鸣柳<112,cdtime>7,buff:斩岳]雪断桥
/skill [rage<20,(nobuff:斩岳;bufftime:斩岳<7),cdtime:莺鸣柳<112,cdtime:莺鸣柳>7]啸日
请注意我标注的蓝色字体,这就是一个改变优先级的判断。
【雪断桥】的判断里面多了一个【buff:斩岳】,【斩岳】这个BUFF只有在切【啸日】之后然后满剑气刷新【啸日】才会出现的DEBUFF。所以在没有用【啸日】之前是不会使用【雪断桥】的,这样一来就解决了让【雪断桥】在【啸日】释放的问题。
但是还有一个问题,【啸日】优先【雪断桥】使用,而且是作为一个剑气续航的技能,必须在点奇穴【斩岳】的情况下才有优势,不然是自掉DPS。
所以在【啸日】的判断里面加入的蓝色字体,只有在没有【斩岳】这个DEBUFF的时候或者是【斩岳】这个DEBUFF小于7S的时候才会切轻剑打剑气。
而这个循环也是我的宏里面在点【莺鸣柳】和【斩岳】之后默认的一个剑气循环方式,是兼容剑气续航和爆发技能最大化的输出循环。
最后我们来完善整个宏的收尾部分,也就是不怎么重要,但是却是影响到一个输出节奏的轻剑部分。——



轻剑结构
首先我们要明白我们轻剑部分的循环应该是什么?该如何最大化轻剑部分的作用?
轻剑是用来干什么的?输出?——NO!我们是为了续航,如果剑气够的话,我压根不想切轻剑,所以我们在问水诀下面第一考虑的就应该是快速的集剑气,尤其是在有斩岳这个满剑气就重置啸日的奇穴的情况下,越快速的集剑气就等于减少轻剑的使用时间,间接的提升重剑使用时间来提升DPS。而第二考虑的才是轻剑的DPS问题。
那我们来看那些技能能快速集剑气:
【梦泉虎跑]:一个只要1.5SGCD释放,但是能造成多次攻击的技能,尤其是在装备最新的秘籍时候,集剑气的威力强大。
【听雷】:CD短,轻剑下使用直接获得20点剑气。
【平湖黄龙】:这个就不说了,黄龙的高输出加上秘籍,集剑气是一个丧心病狂。而且这两个技能只要一个GCD。
所以我们【梦泉虎跑】作为第一个使用的技能,因为越早使用,虎跑的次数越多,剑气和DPS当然也就越多。
其次是听雷,为什么是【听雷】而不是【平湖黄龙】?——因为【听雷】是有CD的,【听雷】之后接【平湖黄龙】后面又可以马上打个【听雷】,让【听雷】的次数最大化,当然这不是最重要的,最重要的一个理由后面再说,这牵扯到一个整体循环节奏和细节优化方面的问题。
所以我们的轻剑宏应该是:
/skill 梦泉虎跑
/skill 听雷
/skill 平湖断月
/skill 黄龙吐翠
/skill 九溪弥烟
额~,这只是一个技能优先级的排序,当然我们后面会加入更多的。
首先,我们的【梦泉虎跑】要在目标有梅隐香的时候才会使用,不然虎跑变狗刨。
/skill [tbuff:梅隐香]梦泉虎跑
其次呢,我们要保证【平湖黄龙】一定是在【听雷】之后打,为了防止出意外。
/skill [cd:听雷]平湖断月
然后【黄龙吐翠】这个没有GCD的技能,必须要在【平湖断月】之后使用。所以我们的【黄龙吐翠】就应该是:
/skill [lastcasted:平湖断月]黄龙吐翠
这里运用到了一个【lastcasted】命令,这个命令的意思是上个释放的技能是什么。
当然也可以用CD判断,以前的多玩宏的【平湖黄龙】就是判断【平湖断月】的技能CD来卡【黄龙吐翠】的,同样成立。
最后是【九溪弥烟】,这个技能是个特殊的存在,虽然是攻击技能,但是不需要锁定目标和规定距离释放,如果直接这样写的结果就是无脑九溪弥烟。
所以我们的九溪就要变成:
/skill [fight,(cd:听雷;dis<6.5)]九溪弥烟
这个命令的意思是:首先是要自身处于战斗状态,并且听雷进入CD,也就是说攻击距离是够的,打过听雷了;或者是距离小于6.5尺,这个当然是作为一个听雷打不到的一个距离的判断。
这样一来就解决了无脑【九溪弥烟】的问题。
最后我们依然加上【啸日】
/skill [rage>90]啸日
这样一来一个初步的藏剑完整宏就算完成了,但是还有许多需要完善的地方,比如说啸日雪断桥的释放距离判定,需要判断与目标的距离和战斗状态,不然会在非战斗状态或者是不需要输出的状态也会自己使用浪费技能。
至于技能输出的微调,完善循环的流畅性和合理性上面,以及副本的定制方面,都数据添加功能,不是必须的。

但是对于超级宏来说,就是为了实战考虑,为了完善应对各种副本状况而定制的各种功能。



以【龙渊藏剑宏】v1.0版本为蓝本的注释详解。这里是对一个完整宏的各种详细定制的详解,具体个参数可以自己添加和修改。
#name 龙渊藏剑宏
——宏的名称,可以自定义
#tip 血战天策v1.0版
——显示在宏面板的一个注释,可以自定义
#hello 欢迎〖$name〗使用龙渊藏剑宏!
——运行宏时候显示的欢迎语句,可以自定义,该内容显示在系统聊天。
#icon 4936
——宏面板的图标ID,可以自定义ID,作用显示为不同的宏图标
#varbool v_特效腰坠, icon:1211
——定义特效腰坠的变量开关,icon后的ID为图标ID
#varnum v_心法模式,3,tip_1:混合模式,tip_2:轻剑模式,tip_3:重剑模式,icon_2:2376,icon_3:2377,icon_1:2369
——定义心法模式的多个变量开关
#varnum v_风车模式,2,tip_1:群怪模式,tip_2:爆发模式,icon_1:2922,icon_2:2995
——定义风来吴山使用的两个变量开关
#varnum v_扶摇模式,2,tip_1:全程扶摇,tip_2:智能扶摇,icon_1:3315,icon_2:3316
——定义扶摇直上的两个变量开关
#varnum v_剑气模式,2,tip_1:优先莺鸣柳,tip_2:优先雪断桥,icon_1:2388,icon_2:2389
——定义剑气输出循环模式的两个变量开关
#skillbox 平湖断月,梦泉虎跑,风来吴山,扶摇直上,莺鸣柳
——设置加入开关模式的技能
/var [v_心法模式=1;v_心法模式=3]v_混合重剑
——定义心法模式1和心法模式3的情况为混合重剑模式
/var [v_心法模式=1;v_心法模式=2]v_混合轻剑
——定义心法模式1和心法摸是2的情况为混合轻剑模式
/var [tar:安禄山,(tlife>0.7;tlife<0.12);tar:独孤问俗,tlife<0.12;tar:无名,tlife<0.41;tar:澹台枯火;tar:萧沙;tar:沙叱博,tlife<0.7;buff:沙暴|内伤]v_扶摇
——定义目标位安禄山时目标血量70%以上和12%以下;目标位独孤问俗时目标血量在12%以下;目标是无名时血量在41%以下;目标是沙叱博是目标血量在70%一下;目标是澹台枯火和萧沙时;自身有沙暴或者是内伤时为扶摇模式
/var [rage<10,lastota:夕照雷峰,tarisem;sktest:听雷,!sktest:夕照雷峰]v_剑气不足
——定义自身剑气低于10点并上个读条技能是夕照雷峰并且目标是敌对时或者是上个技能是听雷并且无法释放夕照雷峰时为剑气不足
/return [ota]
——自身在读条的时候返回不执行下面的语句,用于保护引导
/skill [tmaxlife>2000000,(nobuff:香梅,tnobuff:梅隐香;tbufftime:梅隐香<5)]梅隐香
——在目标总血量大于200万,自身没有香梅BUFF并且目标身上没有梅隐香BUFF,或者梅隐香BUFF持续时间小于5秒的时候使用梅隐香
/skill [(v_扶摇模式=1;v_扶摇模式=2,v_扶摇),fight]扶摇直上
——在扶摇模式为1或者扶摇模式为2满足定义的扶摇直上的变量的情况下,并且自身处于战斗状态时使用扶摇直上
/delbuff [tpre:雷涌|骨牢|皇之怒|震地颤尘锤|飞云回转刀|狼之怒;state:jump]梦泉虎跑
——在目标读条雷涌|骨牢|皇之怒|震地颤尘锤|飞云回转刀|狼之怒(之间是或者的关系),或者自身处于跳跃状态时,自动取消梦泉虎跑的BUFF
/skill [nobuff:镇山河,(tpre:掷锤>0.7;tpre:吞云吐纳>0.7,cd:鹤归孤山)]后撤
——自身没有获得镇山河BUFF并且目标读条掷锤在大于70%的时候或者是目标读条吞云吐纳在大于70%且自身的鹤归孤山在CD时后跳
/if [mount:山居剑意]
——如果自身现在的心法是山居剑意的时,则执行下面的命令
/skill [v_风车模式=1,emdis:10>=2]风来吴山
——如果变量开关风车模式为1的时候,并且自身周围10尺内敌对目标大于或者等于2的时候使用风来吴山
/skill [v_风车模式=2,cd:云飞玉皇,sktest:醉月,(sklv:残雪>0,bufftime:残雪<3;sklv:莺鸣柳>0,buff:莺鸣)]风来吴山
——如果变量开关风车模式位,并且云飞玉皇在CD,并且能够使用醉月,并且奇穴残雪大于0残雪BUFF的时间小于3秒或者是奇穴莺鸣柳大于0并且自身有莺鸣BUFF的时候使用风来吴山
/if [(banskill:莺鸣柳;sklv:残雪>0),fight]
——如果自身处于战斗状态,并且莺鸣柳禁止使用或者奇穴残雪大于0的时,则执行下面的命令
/skill [v_剑气不足]雪断桥
——在满足定义变量剑气不足的情况下,使用雪断桥
/skill [(tar:boss;tname:木),v_特效腰坠,sktest:醉月,(nocd:雪断桥;rage>80),buff:凤鸣,ggcd<0.3]腰坠
——在目标是BOSS或者是目标的名称里面含有“木”字的时候,并且定制的特效腰坠变量开关为开启时,并且能够是用醉月的情况下,并且雪断桥没有进入CD或者是自身剑气大于80点的时候,并且自身有凤鸣BUFF,并且自身公CD小于0.3秒的时候使用腰坠
/skill [v_混合轻剑,v_剑气不足,cdtime:雪断桥<58,cdtime:雪断桥>7]啸日
——在定义变量为混合轻剑的时候,并且满足剑气不足变量的条件下,并且雪断桥CD小于58秒并且雪断桥CD大于7秒的时候使用啸日
/end
——对应【/if [(banskill:莺鸣柳;sklv:残雪>0),fight]】的结束
/if [sklv:莺鸣柳>0,fight]
——如果奇穴莺鸣柳大于0,并且自身处于战斗状态时,则执行下面的命令
/skill [(tar:boss;tname:木),v_特效腰坠,sktest:醉月,buff:莺鸣&凤鸣,ggcd<0.3]腰坠
——目标是BOSS或者是目标的名称里面含有“木字的时候,并且定制的特效腰坠变量开关为开启时,并且能偶是用醉月的情况下,并且同时存在莺鸣和凤鸣BUFF是,并且自身公CD小于0.3秒的时候使用腰坠
/if [v_剑气不足,v_剑气模式=1]
——如果满足定义变量剑气不足,并且剑气模式开关为1时,则执行下面的命令
/skill [sklv:斩岳>0;sklv:探梅>0,cdtime:雪断桥<69,cdtime:雪断桥>5] 莺鸣柳
——奇穴斩岳大于0时,或者是奇穴探梅大于0并且雪断桥CD小于69秒并且雪断桥CD大于5秒的时候使用莺鸣柳
/skill [sklv:探梅>0;sklv:斩岳>0,cdtime:莺鸣柳<119,cdtime:莺鸣柳>5,buff:斩岳]雪断桥
——奇穴探梅大于0时,或者是奇穴斩岳大于0并且莺鸣柳CD小于119秒并且莺鸣柳CD大于5秒的时候并且有斩岳BUFF的时候使用雪断桥
/end
——对应【/if [sklv:莺鸣柳>0,fight]】的结束
/if [v_剑气不足,v_剑气模式=2]
——如果满足定义变量剑气不足,并且剑气模式开关为2时,则执行下面的命令
/skill 雪断桥
——使用雪断桥
/skill [cdtime:雪断桥<69,cdtime:雪断桥>5] 莺鸣柳
——在雪断桥CD小于69并且雪断桥CD大于5的时候使用莺鸣柳
/end
——对应【/if [v_剑气不足,v_剑气模式=2]】的结束
/if [v_混合轻剑,v_剑气不足]
——如果满足定义变量混合轻剑,并且条件满足定义变量剑气不足时,则执行下面的命令
/skill [v_剑气模式=1,sklv:斩岳>0,(nobuff:斩岳;bufftime:斩岳<7),cdtime:莺鸣柳>7,cdtime:莺鸣柳<112,nobuff:莺鸣]啸日
——如果定义变量剑气模式开关为1,并且奇穴斩岳大于0,并且没有斩岳BUFF或者斩岳BUFF的时间小于7秒并且莺鸣柳CD大于7秒并且莺鸣柳CD小于112秒并且没有莺鸣BUFF的时候使用啸日(注意逗号分号和括号的优先级,文字表述可能有点麻烦)
/skill [(v_剑气模式=2;sklv:探梅>0),cdtime:雪断桥<62,cdtime:雪断桥>7,cdtime:莺鸣柳>7,cdtime:莺鸣柳<112,nobuff:莺鸣]啸日
——如果定义变量剑气模式开关为2或者是奇穴探梅大于0,并且雪断桥CD小于62秒并且雪断桥CD大于7并且莺鸣柳CD大于7并且莺鸣柳CD小于112秒并且没有莺鸣BUFF的时候使用啸日
/end
——对应【/if [v_混合轻剑,v_剑气不足]】的结束
/end
——对应【/if [sklv:莺鸣柳>0,fight]】的结束
/if [sktest:听雷]
——如果能够释放听雷就执行下面的语句(这里是用来判断4尺距离)
/skill [nobuff:凤鸣,lastcast:云飞玉皇;state:run|jump;!sktest:夕照雷峰]断潮
——如果自身没有凤鸣BUFF并且上个释放的技能是云飞玉皇,或者自身处于移动或者跳跃状态或者不能够释放夕照雷峰的时候用断潮
/skill [nobuff:凤鸣;!sktest:夕照雷峰]听雷
——自身没有凤鸣BUFF或者不能释放夕照雷峰的时候用听雷
/return [tpre:掷锤,nobuff:夜雨;tpre:吞云吐纳,cd:鹤归孤山]
——在目标读条掷锤并且自身没有夜雨BUFF的时候,或者目标读条吞云吐纳并且鹤归孤山在CD的时候返回不执行下面的语句
/skill [state:stand;state:run|jump,buff:夜雨]云飞玉皇
——自身处于站立状态,或者是自身处于移动或者跳跃状态并且自身有夜雨BUFF的时候用云飞玉皇
/skill [cdtime:云飞玉皇>1.25,cd:听雷;state:run|jump]夕照雷峰
——云飞玉皇CD大于1.25秒并且听雷在CD的时候,或者自身处于移动或者跳跃状态的时候用夕照雷峰
/else
——对应【/if [sktest:听雷]】,不满足则执行下面的语句(用来判断大于4尺的情况)
/skill [buff:夜雨]云飞玉皇
——自身有夜雨BUFF的时候用云飞玉皇
/skill 夕照雷峰
——使用夕照雷峰
/end
——对应【/if [sktest:听雷]】的结束
/else
——对应【/if [mount:山居剑意]】,不满足则执行下面的语句(不满足山居剑意的心法只可能是问水诀,用来定义轻剑状态)
/skill [fight,v_混合重剑,rage>90,sktest:醉月,sktest:听雷,ggcd<1]啸日
——自身处于战斗状态,并且定义变量开关为混合重剑,并且自身剑气大于90点,并且能够释放醉月并且能够释放听雷,并且自身公CD小于1的时候用啸日
/skill [cd:听雷]断潮
——听雷在CD的时候用断潮
/skill [(tbuff:梅隐香;emdis:15=1),nostate:jump]梦泉虎跑
——目标存在梅隐香BUFF或者自身周围15尺范围内目标只有一个的时候,并且自身不是跳跃状态的时候用梦泉虎跑
/skill 听雷
——使用听雷
/skill [nostate:jump,(cd:听雷;!sktest:听雷)]平湖断月
——自身不是跳跃状态,并且听雷在CD或者是不能够使用听雷的时候用平湖断月
/skill [lastcasted:平湖断月]黄龙吐翠
——上一个释放的技能是平湖断月的时候用黄龙吐翠
/skill [fight,(dis<6.5;cd:听雷),tarisem]九溪弥烟
——自身处于战斗状态,并且自身与目标的距离小于6.5或者听雷在CD的时候,并且目标是敌对的时候用九溪弥烟
/end
——对应【/if [mount:山居剑意]】的结束
#net http://www.yylmacro.com/cloud/854
——这是一个云端标示,用于游戏内部的更新
如果上述宏的完整注释都能够看懂,而且明白为什么要这么写,那么你就基本弄懂编写藏剑宏的一些问题点。
有些看来莫名其妙或者是无关紧要的判断命令,往往却是决定着一个宏输出节奏的重要部分。



点击开关回复楼层
没有更多了
请先登录

试一试@用户名 立即召唤神龙 小伙伴会收到通知喔:)无需加好友即可通知到

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

本版积分规则


您当前使用的浏览器版本过低,网站部分功能可能失效,请更换合适的浏览器。了解更多