法师宏

一些相关攻略都可以发到这里
版面规则
本版只能发攻略相关的帖子,无关帖子一律删除
小宝宋
帖子: 1
注册时间: 2017年12月 18日, 23:49

Re: 法师宏

帖子 小宝宋 » 2017年12月 19日, 00:23

facqou 写了:
2017年12月 13日, 17:08
好贴顶下,不过授人以渔或许更好,现在继续对语法更深入了解,不太明白for循环的作用。
相关的api已经通过别的贴上去翻了。

举例提问,每行我都后面加注释:
1、冰箭奥蛋宏(平常打寒冰箭,触发节能丢奥蛋,适合装备差的法师)
/script
local c,i,b,f=CastSpellByName; #申明变量,但这里声明了4个c、i、b、f难道都定义为CastSpellByName?
for i=1,16 do b=UnitBuff("player",i); #for循环,“i=1,16”是初始为1,循环16次。 “do b=UnitBuff("player",i)”是:unitbuff返回的是字符串,16代表自己buff上限?
if b and strfind(b,"ManaB") then f=1; #条件判断,上面的16次循环中如果b且字段中包含“ManaB”,那么f=1是什么?重新申明变量?
break; #跳出判断
end; #结束循环
end; #结束该段宏
if f then SpellStopCasting(); #如果f=1停止施法?f是上一个判断中的重申变量?
c("奥术飞弹"); #接上面停止施法,使用奥术
else c("寒冰箭"); #否则使用寒冰箭
end; #结束语句

思考,其实不应该直接判断是否有节能,有就奥弹,没有就寒冰箭么?
伪代码:if b=UnitBuff("player",节能) then 奥弹 else 寒冰箭 end;
这样不是更简单么?为什么要走for循环?
其实就是因为,,所以,, UnitBuff命令中的参数 1是对象 2是BUFF对应的数字,这样你就明白了;再就是开始定义的本地变量,只有C指代了施法命令。

dz匕守
帖子: 106
注册时间: 2017年9月 04日, 21:55

Re: 法师宏

帖子 dz匕守 » 2018年1月 10日, 17:20

Bluememo 写了:
2017年12月 10日, 16:36
按ALT 你想实现什么功能?
可能是想节省一个技能栏
不按ALT 对目标 羊,
按alt对鼠标指向目标羊

回复