不按ALT是羊当前目标,按ALT羊指向目标
法师宏
版主: 花希来了
版面规则
本版只能发攻略相关的帖子,无关帖子一律删除
本版只能发攻略相关的帖子,无关帖子一律删除
Re: 法师宏
这样的变羊宏?按住Shift键+变羊快捷键时是正常变羊法术,直接按变羊快捷键则是瞬发变羊。
功能键的宏一般都是这样写
代码: 全选
/script SpellStopCasting();if(IsShiftKeyDown()) then CastSpellByName('变形术(等级 3)');elseif (UnitExists("target") and UnitIsEnemy("player","target")) CastSpellByName('气定神闲');SpellStopCasting();CastSpellByName('变形术(等级 3)');end;代码: 全选
/script if IsShift(或者Alt)KeyDown() then CastSpellByName('技能名') else CastSpellByName('技能名') end;沙漠,扬起你的沙砾,遮蔽太阳的光芒吧!
Re: 法师宏
好贴顶下,不过授人以渔或许更好,现在继续对语法更深入了解,不太明白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循环?
相关的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循环?
YOU ARE NOT PERPARE!
伦鲁迪洛尔,上古守护者的长弓(1/1)
断牙(1/1)
伦鲁迪洛尔,上古守护者的长弓(1/1)
断牙(1/1)
Re: 法师宏
试了下,按ALT有效,Shift和ctrl无效,不知道什么情况。Bluememo 写了: 2017-12-12 11:04:42 这样的变羊宏?按住Shift键+变羊快捷键时是正常变羊法术,直接按变羊快捷键则是瞬发变羊。
功能键的宏一般都是这样写代码: 全选
/script SpellStopCasting();if(IsShiftKeyDown()) then CastSpellByName('变形术(等级 3)');elseif (UnitExists("target") and UnitIsEnemy("player","target")) CastSpellByName('气定神闲');SpellStopCasting();CastSpellByName('变形术(等级 3)');end;代码: 全选
/script if IsShift(或者Alt)KeyDown() then CastSpellByName('技能名') else CastSpellByName('技能名') end;
Re: 法师宏
你看你的按键设置,SHift和CTRL肯定被其他功能占用了,解除下就行。比如SHIFT+数字键是翻动作栏。绿色土豆 写了: 2017-12-18 16:20:46试了下,按ALT有效,Shift和ctrl无效,不知道什么情况。Bluememo 写了: 2017-12-12 11:04:42 这样的变羊宏?按住Shift键+变羊快捷键时是正常变羊法术,直接按变羊快捷键则是瞬发变羊。
功能键的宏一般都是这样写代码: 全选
/script SpellStopCasting();if(IsShiftKeyDown()) then CastSpellByName('变形术(等级 3)');elseif (UnitExists("target") and UnitIsEnemy("player","target")) CastSpellByName('气定神闲');SpellStopCasting();CastSpellByName('变形术(等级 3)');end;代码: 全选
/script if IsShift(或者Alt)KeyDown() then CastSpellByName('技能名') else CastSpellByName('技能名') end;
沙漠,扬起你的沙砾,遮蔽太阳的光芒吧!