/施放 血性狂暴
/script local t;
/script for i=1,15,1 do t=GetPlayerbuffTexture(i);if (t and string.find(t,”Ability_Racial_BloodRage”)) then CancelPlayerBuff(i);end;end;
/施放 冲锋;
我们来研究上面这个宏,第一行是激活血性狂暴这个技能,第二行是定义局部变量t,第三行是从1到15,步长为1,搜索血性狂暴这个buff,然后取消该buff。该宏从表面上看是激活血性狂暴然后再去掉然后脱离战斗状态冲锋,但是,事实并非如此,激活血性狂暴后需要大概1.5秒才可点掉,点掉血性狂暴后又大概需要1秒才可脱离战斗状态!于是,当我们激活该宏时,程序从第一行命令开始依次执行:第一步:施放血性狂暴
第二步:由于延迟1.5秒,该宏停止执行
然后,我们需要再次激活该宏,可以发现,程序提示:“另一个动作正在执行中”或者“技能还没有准备好”!
Bllizard之所以不提供解决顺发技能所产生延迟的宏并且对于宏命令的字符长度(255)进行限制,是因为不想让游戏太简单,否则我们可以编制自定义函数Undefined Funtion将一连串技能让程序自动执行,而我们自身只需要操作方向即可。
签于以上分析,我们应该手动激活血性狂暴,然后激活下面这个宏:
/script local t;
/script for i=1,15,1 do t=GetPlayerbuffTexture(i);if (t and string.find(t,”Ability_Racial_BloodRage”)) then CancelPlayerBuff(i);end;end;
/施放 冲锋;
这个宏可以替代冲锋快捷键。在实战中,如果你先手偷袭敌人,那么直接激活该宏即可,此时宏命令执行了前面两行后,未搜索到血性狂暴这个buff,然后立即执行了第三行。如果你正处于战斗中,那么你需要先激活血性狂暴,然后把握好距离,在8码以内激活该宏,1秒之后,你将脱离战斗状态,由于1秒的延迟,宏命令执行到第二行后停止执行,此时你只需要在上一次激活宏后停顿1秒就再次激活该宏(因为1秒的时间很短难以抱握,可连续按该宏所对应的快捷键)便可向敌人发起冲锋。
注:该宏实行的前提是你切换到战斗姿态