只爱柠七 发表于 2016-1-27 14:59:01

魔兽世界 N服宏 团队

团队部分

既然是团队部分,那就说明只有在团队下才能使用,不在团里的别跑来问我为什么不能用!

RL专用,给目标上团队标记
现在团长可以给目标上星星,三角等标记,但每次点右键很不方便,试试这个
/script SetRaidTarget("target",图标编号);
上边红色数字取值 0-8
0 = 取消图标
1 = 黄色四角星
2 = 桔黄色圆
3 = 紫色钻石
4 = 绿色三角形
5 = 白色月亮
6 = 蓝色方块
7 = 红色X
8 = 骷髅
这样可以做8个宏,快捷键分别设成Ctrl-F1 ... Ctrl-F8,这个随意,这样给团员分配目标
比如放逐,变羊,休眠等的时候能够事半功倍
而且后面有些宏需要标记作为依据,可以和这个宏搭配使用
所以,先给你的队员分配好每个人专管的数字吧!

自动锁定RL给自己分配的怪,放逐/变羊/休眠并报告,怎么处理随你便
这个宏配合上面的RL分配标记宏一起使用,首先你需要RL给你分配你专门照顾的目标的图标
具体对应关系看上边那个宏,假如是黄色四角星,就是1
把下边红色的数字换成RL给你分配的数字

术士版
/script local i,t;for i=1,GetNumRaidMembers() do t="raid"..i.."target";if GetRaidTargetIndex(t)==RL分给你的编号 then TargetUnit(t);CastSpellByName("放逐");SendChatMessage("%t放逐中","yell");break;end;end;

法师版
/script local i,t;for i=1,GetNumRaidMembers() do t="raid"..i.."target";if GetRaidTargetIndex(t)==RL分给你的编号 then TargetUnit(t);CastSpellByName("变形术");SendChatMessage("%t变羊中","yell");break;end;end;

德鲁伊版
/script local i,t;for i=1,GetNumRaidMembers() do t="raid"..i.."target";if GetRaidTargetIndex(t)==RL分给你的编号 then TargetUnit(t);CastSpellByName("休眠");SendChatMessage("%t催眠中","yell");break;end;end;

注意,这个宏不是每次都能奏效,因为它实际上是通过检查你队友目标是不是制定目标来实现的,
当包括团长的团队中没有任何人选中你的目标时你只能手动去选择了

密语团内所有指定职业 RL用比较好
一次M团队中所有指定职业,打Nef这种BOSS时应该很有用,注意别狂点,会刷屏……
指定职业,说话内容自己改
/script local i,p;for i=1,40 do p="raid"..i;if UnitClass(p)=="牧师" then SendChatMessage("停止治疗!!","whisper",nil,UnitName(p));end;end;

根据目标职业要buff
如果目标是法师就M他要智力,牧师要韧,小D要爪子
/script local x,c,i,s={["法师"]="智力",["牧师"]="韧",["德鲁伊"]="爪子"},UnitClass("target");for i,s in x do if i==c then SendChatMessage("给个"..s..",谢谢~","whisper",nil,UnitName("target"));end;end;

这个是加强版,增加了自报组号功能
根据目标职业要buff,并报自己组号,太大了,需要SuperMacro支持
左边窗口
/script RequestBuff();

右边窗口

Code (c):

function RequestBuff()
   local x,c,i,s,n,g,_={["法师"]="智力",["牧师"]="韧",["德鲁伊"]="爪子"},UnitClass("target");
   for i=1,40 do
      n,_,g=GetRaidRosterInfo(i);
      if n==UnitName("player") then break;end;
   end;
   for i,s in x do
      if i==c then
         SendChatMessage("给个"..s..",我在"..g.."组,谢谢~","whisper",nil,UnitName("target"));
      end;
   end;
end;


报告当前团队活着、死亡、掉线人数,还有boss血量宏
/script local c,o,d,i,n,a,b,_=0,0,0;for i=1,40 do n,_,_,_,_,_,_,a,b=GetRaidRosterInfo(i);if n then c=c+1;if a then o=o+1;end;if b then d=d+1;end;end;end;SendChatMessage("%t 还剩"..UnitHealth("target").."%,共"..c.."人,死亡"..d..",掉线"..c-o,"raid")

给目标所在小队加群体Buff,并报告,团队/小队均可
法师版
/script local t,n,g,i,_;CastSpellByName("奥术光辉");if UnitInRaid("player") then t=UnitName("target");for i=1,40 do n,_,g=GetRaidRosterInfo(i);if t==n then SendChatMessage(g.." 队智力已加过","yell");break;end;end;end

牧师版
/script local t,n,g,i,_;CastSpellByName("坚韧祷言");if UnitInRaid("player") then t=UnitName("target");for i=1,40 do n,_,g=GetRaidRosterInfo(i);if t==n then SendChatMessage(g.." 队韧已加过","yell");break;end;end;end

德鲁伊版
/script local t,n,g,i,_;CastSpellByName("野性赐福");if UnitInRaid("player") then t=UnitName("target");for i=1,40 do n,_,g=GetRaidRosterInfo(i);if t==n then SendChatMessage(g.." 队爪子已加过","yell");break;end;end;end

团队中自动给血最少的人刷血宏 -- 感谢 独孤九妹 提供修改意见
/script local h,m,p,q,i=UnitHealth,UnitHealthMax,"player";for j=1,GetNumRaidMembers() do q="raid"..i;if CheckInteractDistance(q,4) and m(p)-h(p)>m(q)-h(q) and h(q)>1 then p=q;end;end;TargetUnit(p);CastSpellByName("快速治疗");end

团队中自动给血比例最少的人刷血宏
/script local h,m,p,q,i=UnitHealth,UnitHealthMax,"player";for j=1,GetNumRaidMembers() do q="raid"..i;if CheckInteractDistance(q,4) and h(p)/m(p)>h(q)/m(q) and h(q)>1 then p=q;end;end;TargetUnit(p);CastSpellByName("快速治疗");end

快速治疗可以换成别的法术,看你什么职业了

团队复活宏
本宏对所有复活职业通用,但首先你要知道你的复活技能所在按钮的序号,看上边基础知识图
用你查到的复活所在的序号替换红色数字
/script local p,i,t="raid";for i=1,40 do t=p..i;if UnitIsDead(t) then TargetUnit(t);if IsActionInRange(你复活按钮编号) then UseAction(你复活按钮编号);SendChatMessage("我开始复活 %t",p);break;end;end;end;

一键驱散宏 - 256字节取代Decursive !!!

注意:
如果这个宏因为你和队友中间隔着柱子等障碍物而停止的话,请你走几步
宏只能帮你简化操作,不能帮你破坏游戏规则

牧师,德鲁伊,萨满祭司的提供了单独的 小队版 和 团队版,请注意版本,solo无效
法师和圣骑士的是团队/小队自适应版,solo无效
原因是法师,圣骑士只有一种解除魔法,而牧师,德鲁伊,萨满祭司有两种,限于256字节写不下了

牧,德,萨 小队版
牧师版
/script local s,p,i,d,t,_={["Magic"]="驱散魔法",["Disease"]="驱除疾病"};for i=1,4 do p="party"..i;if CheckInteractDistance(p,4) then d,_,t=UnitDebuff(p,1,1);if d then TargetUnit(p);CastSpellByName(s);TargetLastTarget();break;end;end;end

德鲁伊版
/script local s,p,i,d,t,_={["Poison"]="驱毒术",["Curse"]="解除诅咒"};for i=1,4 do p="party"..i;if CheckInteractDistance(p,4) then d,_,t=UnitDebuff(p,1,1);if d then TargetUnit(p);CastSpellByName(s);TargetLastTarget();break;end;end;end

萨满祭司版
/script local s,p,i,d,t,_={["Poison"]="消毒术",["Disease"]="袪病术"};for i=1,4 do p="party"..i;if CheckInteractDistance(p,4) then d,_,t=UnitDebuff(p,1,1);if d then TargetUnit(p);CastSpellByName(s);TargetLastTarget();break;end;end;end

牧,德,萨 团队版
牧师版
/script local s,p,i,d,t,_={["Magic"]="驱散魔法",["Disease"]="驱除疾病"};for i=1,40 do p="raid"..i;if CheckInteractDistance(p,4) then d,_,t=UnitDebuff(p,1,1);if d then TargetUnit(p);CastSpellByName(s);TargetLastTarget();break;end;end;end

德鲁伊版
/script local s,p,i,d,t,_={["Poison"]="驱毒术",["Curse"]="解除诅咒"};for i=1,40 do p="raid"..i;if CheckInteractDistance(p,4) then d,_,t=UnitDebuff(p,1,1);if d then TargetUnit(p);CastSpellByName(s);TargetLastTarget();break;end;end;end

萨满祭司版
/script local s,p,i,d,t,_={["Poison"]="消毒术",["Disease"]="袪病术"};for i=1,40 do p="raid"..i;if CheckInteractDistance(p,4) then d,_,t=UnitDebuff(p,1,1);if d then TargetUnit(p);CastSpellByName(s);TargetLastTarget();break;end;end;end

法,骑 团队,小队自适应版
法师版
/script local n,p,t,i,d=4,"party";if UnitInRaid("player") then n=40;p="raid";end;for i=1,n do t=p..i;if UnitDebuff(t,1,1) and CheckInteractDistance(t,4) then TargetUnit(t);CastSpellByName("解除次级诅咒");TargetLastTarget();break;end;end;

圣骑士版
/script local n,p,t,i,d=4,"party";if UnitInRaid("player") then n=40;p="raid";end;for i=1,n do t=p..i;if UnitDebuff(t,1,1) and CheckInteractDistance(t,4) then TargetUnit(t);CastSpellByName("清洁术");TargetLastTarget();break;end;end;

团队自动补单体buff宏
说明:
自动搜索团队内没有相应单体buff(真言术:韧,奥术智慧,野性印记)的团队成员,
为其补上,掉线的,死亡的,不在射程的都会忽略掉。

牧师版 - 真言术:韧
/script local i,p;for i=1,40 do p="raid"..i;if CheckInteractDistance(p,4) and not UnitBuff(p,1,1) then TargetUnit(p);CastSpellByName("真言术:韧");TargetLastTarget();break;end;end;

牧师版 - 神圣之灵
/script local i,j,b,f,p;for i=1,40 do f=nil;p="raid"..i;if CheckInteractDistance(p,4) then for j=1,16 do b=UnitBuff(p,j);if b and strfind(b,"eSpir") then f=1;break;end;end;if not f then TargetUnit(p);CastSpellByName("神圣之灵");break;end;end;end;

法师版:
/script local i,p;for i=1,40 do p="raid"..i;if CheckInteractDistance(p,4) and not UnitBuff(p,1,1) then TargetUnit(p);CastSpellByName("奥术智慧");TargetLastTarget();break;end;end;

德鲁伊版:
/script local i,p;for i=1,40 do p="raid"..i;if CheckInteractDistance(p,4) and not UnitBuff(p,1,1) then TargetUnit(p);CastSpellByName("野性印记");TargetLastTarget();break;end;end;

圣骑士版 - 王者祝福
/script local i,j,b,f,p;for i=1,40 do f=nil;p="raid"..i;if CheckInteractDistance(p,4) then for j=1,16 do b=UnitBuff(p,j);if b and strfind(b,"fKing") then f=1;break;end;end;if not f then TargetUnit(p);CastSpellByName("王者祝福");break;end;end;end;

圣骑士版 - 拯救祝福
/script local i,j,b,f,p;for i=1,40 do f=nil;p="raid"..i;if CheckInteractDistance(p,4) then for j=1,16 do b=UnitBuff(p,j);if b and strfind(b,"fSalv") then f=1;break;end;end;if not f then TargetUnit(p);CastSpellByName("拯救祝福");break;end;end;end;

圣骑士版 - 光明祝福
/script local i,j,b,f,p;for i=1,40 do f=nil;p="raid"..i;if CheckInteractDistance(p,4) then for j=1,16 do b=UnitBuff(p,j);if b and strfind(b,"fHeal") then f=1;break;end;end;if not f then TargetUnit(p);CastSpellByName("光明祝福");break;end;end;end;

可能遇到的问题:
自动选中了目标,却超出射程。那就麻烦你走两步,宏只能方便你操作,不能改变游戏规则

一些好玩的宏
有胆你就用……
/y ▅▅▅▅▅   ◢███◤
/y █●█●█    ▅█▅
/y █▅█▅█   ▅▅█▅▅
/y  ▅█▅      █
/y ▅▅█▅▅     █
/y ●● ●●    ◥█


特色笑法 发表于 2016-7-22 13:26:09

学习一下,,楼主辛苦!,,挺实用的。刚好用得到!

汪屁西 发表于 2021-9-7 19:01:53

伸手费怎么弄啊,好难!!!!{·
页: [1]
查看完整版本: 魔兽世界 N服宏 团队