分页: 2 / 3

Re: 法师宏

发表于 : 2017-12-11 17:26:29
绿色土豆
Bluememo 写了: 2017-12-10 16:36:47 按ALT 你想实现什么功能?
不按ALT是羊当前目标,按ALT羊指向目标

Re: 法师宏

发表于 : 2017-12-11 17:32:37
Bluememo
这不多此一举啊,鼠标指向宏又不丢失当前目标......,何必。

不能加ALT也能实现鼠标指向,这个宏优先羊你鼠标指向的目标。你是怕目标一个怪,鼠标又指向另外一个怪?

Re: 法师宏

发表于 : 2017-12-12 10:51:12
绿色土豆
Bluememo 写了: 2017-12-11 17:32:37 这不多此一举啊,鼠标指向宏又不丢失当前目标......,何必。

不能加ALT也能实现鼠标指向,这个宏优先羊你鼠标指向的目标。你是怕目标一个怪,鼠标又指向另外一个怪?
其实这个宏主要是pvp用,我找不到60的shift.ctrl.alt按键的命令,求指点!

Re: 法师宏

发表于 : 2017-12-12 11:04:42
Bluememo
这样的变羊宏?按住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: 法师宏

发表于 : 2017-12-12 18:11:45
Raininsun
顺便问下,castsequence在这个版本可用不

Re: 法师宏

发表于 : 2017-12-13 08:50:47
Bluememo
Raininsun 写了: 2017-12-12 18:11:45 顺便问下,castsequence在这个版本可用不
不行

Re: 法师宏

发表于 : 2017-12-13 17:08:03
facqou
好贴顶下,不过授人以渔或许更好,现在继续对语法更深入了解,不太明白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循环?

Re: 法师宏

发表于 : 2017-12-18 16:20:46
绿色土豆
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;
试了下,按ALT有效,Shift和ctrl无效,不知道什么情况。

Re: 法师宏

发表于 : 2017-12-18 16:32:17
Bluememo
绿色土豆 写了: 2017-12-18 16:20:46
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;
试了下,按ALT有效,Shift和ctrl无效,不知道什么情况。
你看你的按键设置,SHift和CTRL肯定被其他功能占用了,解除下就行。比如SHIFT+数字键是翻动作栏。

Re: 法师宏

发表于 : 2017-12-18 16:50:50
绿色土豆
应该是,SHIFT和CTRL默认的我没改过