为了读懂宏提供Lua编程教材
发表于 : 2017-12-13 17:57:40
链接:http://www.runoob.com/lua/lua-for-loop.html
上面有详细的语法介绍,用来学习看懂1.12中相关宏,并自己衍生编写其他宏。
以绿色土豆提供的宏为例:
1、冰箭奥蛋宏(平常打寒冰箭,触发节能丢奥蛋,适合装备差的法师)
/script
local c,i,b,f=CastSpellByName; #申明变量,但这里声明了4个c、i、b、f难道都定义为CastSpellByName?语法中只有c被赋值,i/b/f应该是空值nil?
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; #结束语句
我分别列出相关的语法及提问,至于某些API可以通过http://wowwiki.wikia.com/index.php/World_of_Warcraft_API中查找。
上面有详细的语法介绍,用来学习看懂1.12中相关宏,并自己衍生编写其他宏。
以绿色土豆提供的宏为例:
1、冰箭奥蛋宏(平常打寒冰箭,触发节能丢奥蛋,适合装备差的法师)
/script
local c,i,b,f=CastSpellByName; #申明变量,但这里声明了4个c、i、b、f难道都定义为CastSpellByName?语法中只有c被赋值,i/b/f应该是空值nil?
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; #结束语句
我分别列出相关的语法及提问,至于某些API可以通过http://wowwiki.wikia.com/index.php/World_of_Warcraft_API中查找。