0

焦点头条

官方内置宏语法攻略

2014-02-23 07:56| 查看: 7489 |作者: 小雪+陈雨



如何写宏
步骤1:
写宏最先要知道的就是技能的ID,将鼠标移到技能上面按住CTRL,会出现一个调试用信息,如下图

由于金山截图机制貌似有点改动,所以图片不是很清楚。
如图所示,有个ID的地方写着561,level 9
这就是技能的ID与等级,在写使用技能的宏时非常有用。

步骤2:
IF条件判断:
这是剑三宏里面最常用的语句,其他的语句类型由于不常用则不做另外介绍
if 条件 then
语句
end ;
if就是如果的意思,如果 “条件” 则执行 “语句” 如果达不到条件,则直接结束 if 语句块。

扩展格式:
if 条件 then
语句
else (if 条件 then)
语句
end
如果 “条件” 则执行 “语句” 如果达不到条件,则执行ELSE的语句,然后结束 if 语句块。

for循环:
for 循环变量 = 初值, 终值 do
语句块
end

扩展格式:
for 循环变量 = 初值, 终值,每次的增量 do
语句块
end

函数封装:
function 函数名(参数列表)
语句块
end
这是比较高级的运用,目的是为了简化宏,在判断同一类型条件的时候会用到,后面会详细介绍。

步骤3:
判断条件以及数值的表达式。
最常用的表达式为and,用于判断多个条件。其次是一些数值的判断例如:


<= 
>=
=
==
~=
双等号是判断,单等号是赋值,最后一个是不等于(可能出现未知错误,尽量少用不等于这个符号),其他的,嗯,不多解释。

步骤4:
思考要做一个什么宏。
例如我想做一个减少键位的宏,将坐忘无我,回春妙手跟猛虎下山这三个技能合并为一个键上,属于装备猛虎下山秘籍后的PVP宏。
首先去寻找技能ID:
猛虎下山 58,1
回春妙手 52,2
坐忘无我 312,X
这里由于坐忘没有满级,可能在战斗中提升等级,而导致宏不能用,那么在下面将提出解决方法。

步骤5:
写一个宏。
写宏的时候尤其要注意大小写的问题以及括号的问题- -,本人多次因为有一个字母本该小写却打成大写后导致运行不成功。
看以下例子:
/script N=GetClientPlayer()
/script a,b,c=N.GetSkillCDProgress(312,N.GetSkillLevel(312))
/script d,e,f=N.GetSkillCDProgress(58,1)
/script g,h,i=N.GetSkillCDProgress(52,2)
/script if f==0 then OnUseSkill(58,1) end
/script if c==0 then OnUseSkill(312,N.GetSkillLevel(312)) end
/script if i==0 then OnUseSkill(52,2) end
第一行是宣告一个变量N作为GetClientPlayer()的代替,大致上就跟数学里的设X一样,属于一种简单的函数封装,为了简化下面的语句。
第二,三,四行为判断技能冷却的语句,由于这里并不是很多,所以不用通过FUNCTION来封装。
第二行有一个获取技能等级的是因为不确定技能等级为多少,如果错误的填一个数字进去,则整个宏作用失效。当然如果知道技能等级则可以像第三,四行一样简化。
这里每行设置的三个数,a到i,其中每行的第二个字母,为该技能的公共冷却,第三个字母为技能冷却。
则:a,d,g为空。b,e,h为技能当前冷却时间,c,f,i为技能总共冷却时间,所以说随便判断一个都是一样的。例如a,b,c是获取天地低昂的调息时间,那么a为空,b的值为剩余秒数乘以16,c的值为90秒乘以16(带秘籍)。
B,C在初始的时候为0,在有技能释放,例如江海凝光,B,C虽然是天地低昂的调息时间判断,却会改变自身的值,B为剩余公共冷却秒数乘以16,C为24。所以说公共调息时间为24除以16=1.5秒。如果使用不占用公共调息的技能时,则B,C值不变。
第五行,如果技能猛虎下山(58)冷却为零,则使用猛虎下山
第六行,如果技能坐忘无我(312)冷却为零,则使用坐忘无我
第七行,如果技能回春妙手(52)冷却为零,则使用回春妙手

步骤6:
检查宏的效果,如果达到预期效果,那么这个宏就算做好了。
如果出错则要看看错误是在哪里,比如说,回春妙手用不出来,那么就检查第四跟七行是否有语句上的基本错误,如果没有再从第一行开始检查。


收藏 分享 邀请

发表评论

关注订阅号"剑网3PVE"
获取第一手剑三资讯


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