高分求DLY宏

2024-11-21 20:24:51
推荐回答(2个)
回答1:

  首先在通用宏里建立如下几个宏,作为全局的函数:

  1、HL1:找出团队中健康值最低的,返回组员名称和健康值,g是队团前缀(组party,团raid),n团队人数不包括自己:

  /scriptfunctionHL1(g,n)t,p,UHM,UH=0,"player",UnitHealthMax,UnitHealthm=UH(p)/UHM(p)fori=1,ndoifIR(g..i)==1thent=UH(g..i)/UHM(g..i)ift1thenp="raid"i=i-1elsei=GetNumPartyMembers()ifi>0thenp="party"endendifi>0thenreturnHL1(p,i)elsereturnp,UnitHealthMax(p)-UnitHealth(p)endend

  3、减益:检查减益魔法是否施加在目标身上,p为目标名称,s魔法名,前面几个字符就行,好像中文名称不行:

  /scriptfunctionBU(s,p)ifp==nilthenp="target"endfori=1,16dof=UnitDebuff(p,i)iffthenifstring.find(f,s)thenreturntrueendelsereturnfalseendendreturnfalseend

  4、初始:初始化全局函数

  /scriptfori=49,60doUseAction(i)end

  5、在场:是否可以施法,判断是否存在施法区域,p为目标名称,

  /scriptfunctionIR(p)if(UnitIsDead(p))thenreturn0endifUnitIsVisible(p)==1thenreturn1endreturn0end

  6、增益:检查增益魔法是否施加在目标身上,p为目标名称,s魔法名,前面几个字符就行,好像中文名称不行:

  /scriptfunctionB(s,p)ifp==nilthenp="player"endfori=1,16dof=UnitBuff(p,i)iffthenifstring.find(f,s)thenreturntrueendelsereturnfalseendendreturnfalseend

  7、救助:救治团队或小组中健康度最低的成员,包括自己一个人。s医疗魔法名,mh最少的治疗量,为了不浪费魔法

  /scriptfunctionH(s,mh)p,d=HL()ifd>=mhthenTargetUnit(p)C(s)endend

  8、施法:施放魔法,检查魔法值

  /scriptfunctionC(s,m)ifm==nilorUnitMana("player")>=mthenCastSpellByName(s)endend

  9、法助:如果没有目标,则选择自己作为施法对象,用于释放增益魔法

  /scriptfunctionTS(p)ifp==nilthenp="player"endifSpellIsTargeting()thenSpellTargetUnit(p)endend

  10、锁敌:没有目标,则选定最近的敌人;如果目标为友方单位,则协助友方

  /scriptfunctionTE()ifUnitName("target")==nilorUnitIsDead("target")thenTargetNearestEnemy()elseifUnitIsFriend("player","target")thenifUnitCanAssist("player","target")thenAssistUnit("target")elseTargetNearestEnemy()endendend

  11、怒击:施放终极技,检查能量点

  /scriptfunctionCP(s,m,e)ifGetComboPoints()>=eandUnitMana("player")>=mthenCastSpellByName(s)endend

  12、破甲:精灵之火

  /scriptfunctionFA()ifnotBU("Faerie")thenC("精灵之火(野性)")endend

  13、猛虎:猛虎之怒

  /scriptfunctionTG()ifnotB("Tiger")thenC("猛虎之怒",30)endend

  然后在人物专用宏里建立治疗宏

  以我的小德鲁伊为例:

  1、愈合

  /scriptH("愈合",800)

  /scriptH("愈合(等级4)",600)

  /scriptH("愈合(等级3)",500)

  /scriptH("愈合(等级2)",300)

  /scriptp,d=HL()ifnotB("Rejuvenation",p)thenTargetUnit(p)C("回春术")end

  2、治疗

  /scriptH("治疗之触",900)

  /scriptH("治疗之触(等级5)",700)

  /scriptH("治疗之触(等级4)",450)

  /scriptH("治疗之触(等级3)",250)

  /scriptp,d=HL()ifnotB("Rejuvenation",p)thenTargetUnit(p)C("回春术")end

  注意在每个治疗魔法宏后面加入一个瞬发的治疗宏,德鲁伊是回春术,这样在跑动中会自动释放这个瞬发魔法

  这两个治疗宏能够实现

  *自动选取自己所在团队或小组中受伤最严重的进行治疗,包括自己

  *根据被治疗对象所损失的得血量自动选择合适的魔法以及合适等级的魔法

  *根据被治疗者的等级选择合适的治疗魔法

  *如果自己在跑动中施放法术,则自动选取瞬发魔法进行治疗

  *如果已经释放了长效的治疗术,则不再追加释放

  当我变身为豹子的时候:

  我的盗贼类似的豹子德攻击宏:

  这个宏实现:

  *如果没有目标,则选中最近的敌人

  *如果目标是战友,则选中战友正在攻击的敌人

  *如果处于隐形状态,则施展毁灭背刺,否则施展撕碎背刺

  1、攻击

  /scriptFA()TE()CP("凶猛撕咬",35,4)ifnotBU("GhoulFrenzy")thenCP("撕扯",30,4)endifnotBU("Disembowel")thenC("扫击",40)endC("畏缩",60)C("爪击",45)TG()

  /scriptif(notPlayerFrame.inCombat)thenC("攻击")end

  2、背刺

  /scriptTE()ifB("Ambush")thenC("毁灭",60)elseC("撕碎",60)end

  3、突袭

  /scriptTE()ifB("Ambush")thenC("突袭",50)elseC("撕碎",60)end

  当我变身为熊时

  /scriptFA()TE()ifnotBU("Physical")thenC("低吼")endifnotBU("Demoralizing")thenC("挫志咆哮",10)endC("槌击",10)

  /scriptif(notPlayerFrame.inCombat)thenC("攻击")end

  宏建立好后,把上面的通用宏,除了初始,放置到第5个工具栏;把初始和几个人物专用宏放置到手边的工具栏上,以后进入游戏首先按初始,初始化运行环境,就可以使用智能宏了。

  现在团队副本最实用的:

  /*** SpellStopCasting()
  /施放 自然迅捷
  /*** SpellStopCasting()
  /施放 治疗之触(等级 11)
  /*** SendChatMessage("超大治疗→仇恨","whisper",this.language,UnitName("target"))
  自然迅捷和治疗之触一起放出来,并且对目标说悄悄话请他注意拉住仇恨,每次点这个技能的时候都象发射炮弹一样,被我加过的目标都说很爽特别是我们的MT 。

  施放 激活
  /*** SendChatMessage("激活-激活-注意囬蓝","whisper",this.language,UnitName("target"))
  激活目标并告诉他注意回蓝
  /*** SendChatMessage("亲爱的-哥哥要水水-","whisper",this.language,UnitName("target"))
  跟目标要水的宏不用次次都打字了

  常用的都写上了,宏是需要自己编的,每个人的操作习惯都不一样。

回答2:

上面那位真实D爷了!~~
我玩了2年多小D了~~除了在FB里用过几个简单的宏之外都没怎么用过其他宏~~
我相信我的微操~~!!!