讨论魔兽牧师依照血量智能一键加血宏,高手进

我现在20小牧师 血大概是400左右 加血技能有(恢复3,快速治疗1,治疗1),想制作一个根据费血量只能选择加血的宏。进测试如下一个简单的宏已经成功/script if ((UnitHealthMax("target"))-(UnitHealth("target"))<=100) then CastSpellByName("恢复(等级 3)");end/script if ((UnitHealthMax("target"))-(UnitHealth("target"))>100) then CastSpellByName("快速治疗(等级 6)");end((说明, (UnitHealthMax("target"))为人物最大血量,(UnitHealth("target")为人物当前血量。那么前者减去后者就是费血量。如上的宏能成功实现 费血100以下用恢复技能,100以上用快速治疗技能。但并不算太智能。我现在想实现如下功能,1,费血100以下用恢复技能2,费血100-220用快速治疗技能3,费血220以上并且当前血量大于100 用治疗技能4,当前血量小于100 使用开盾技能并使用恢复技能由于魔兽对宏的篇幅有限制,所以第三条可以省去。由于我对编程一窍不通。下面几个问题想请问一下高手,1,费血100-220 是否可以用这样的格式来表示:100<((UnitHealthMax("target"))-(UnitHealth("target"))<=2202,费血220以上并当前血量大于100 中间是否用and连接?即((UnitHealthMax("target"))--(UnitHealth("target"))>220 and -(UnitHealth("target"))>1003,开盾和恢复都是瞬法,不知道可否通过SpellStopCasting();实现?即if (UnitHealth("target"))<=100 then CastSpellByName("真XX盾(等级 X)");SpellStopCasting();CastSpellByName("恢复(等级 3)")如上有语法错误吗?这样下来就是:/script if ((UnitHealthMax("target"))-(UnitHealth("target"))<=100) then CastSpellByName("恢复(等级 3)");end/script if 100<((UnitHealthMax("target"))-(UnitHealth("target"))<=220) then CastSpellByName("快速治疗(等级 1)");end/script if ((UnitHealthMax("target"))-(UnitHealth("target"))>220) and (UnitHealth("target")>100 then CastSpellByName("治疗(等级 1)");end/script if (UnitHealth("target"))<=100 then CastSpellByName("真XX盾(等级 X)");SpellStopCasting();CastSpellByName("恢复(等级 3)")不知道如上宏代码能否实现,因为就算去掉“3,费血220以上并且当前血量大于100 用治疗技能”代码还是大过225字节。现在就看怎么来缩短这个代码。连成一句用if then else if其实字节差不多。我有一个比较幼稚的想法,能不能各用一个字母来代替(UnitHealthMax("target"))和 (UnitHealth("target")) 比如用a和b,这样只要之前定义一下,后面即可用a-b,这样篇幅就省出来了。不知道我这想法可以不可以实现,如果可以,请问格式怎么来。以上问题是哆了点,希望会有高手帮我解答。。提前谢谢一声。

1340 浏览 2 回复
  100   target   治疗   技能   费血  

回复

    i DONOT KNOW.

    王安良

    我同学有一个类似的查件,用来下20人G团副本和其他中低端副本用很合适,一键加血,自动驱散,治疗量永远第一甚至常常2倍于第二(TAQ水平装备).如果有兴趣给我QQ或者Email,发给你研究去.

    闫会亮

相关提问


友情链接: