< 魔兽世界百科 >
您尚未注册/登录
搜索帮助
搜索提示已开启 输入搜索关键词时将自动出现其他玩家的同类搜索词 开启搜索提示 搜索关键词时仍按普通搜索提交框方式输入 什么是智能搜索提示
职业技能 (1199)专业技能 (423)
武器 (2209)防具 (15620)药品 (0)任务道具 (1677)材料 (0)其它 (10399)
商人NPC (981)任务NPC (952)怪物 (7220)其他NPC (10639)
1-10级11-20级21-30级31-40级41-50级50级以上
全部地图 (10091)
WOW动态 (267)WOW学院 (778)职业研究 (27159)副本心得 (1319)天赋交流 (559)任务攻略 (1885)专业技能心得 (740)战场PVP (803)宏与插件交流 (222)
游戏百科 > 魔兽世界 > WOW手册 > 宏与插件交流 > 术士 > 百科资料
资源苗 基于游戏百科共建计划 - 了解 | 加入
在魔兽世界中已有97,734项百科条目,如果你有任何可以分享的请
【翻译】术士宏大杂烩超级的长
好东西!投票支持(6)
匿名投票,确认投票给dailytoy
资料版本 1.0,更新时间:2005年8月21日 来源地址

作者:bhu

这是昨天和今天早上自己刚翻译完的术士宏,里面有不少以前没见过的函数消化中……

SuperMacro的下载页面
http://www.curse-gaming.com/mod.php?addid=629
某些宏需要它的支持比如“RunMacro”。

MegaMacro:
http://www.curse-gaming.com/mod.php?addid=564

SmartPet: http://www.curse-gaming.com/mod.php?addid=1071

首发在http://wowhong.blogbus.com/logs/2005/08/1362344.html
这篇文章是在那看到的,这个博客也不是我的。

这是原文,作者应该是一个叫Graguk 的谢谢他了
http://wow.warcraftstrategy.com/db/print.asp?ID=1205



===============以下是正文=================


Announcing our first of many MEGAMACROS! Using the addon SuperMacro (
http://www.curse-gaming.com/mod.php?addid=629), we can now split our macros into multiple /script commands (each /script is still limited to 255 character) and run them all.

宣布我们许多MEGAMACROS中的第一个宏!利用了SuperMacro这个插件,现在我们可以把我们的宏分成若干个/script命令(每个/script依然限制在255个字符那)并且能运行它。
SuperMacro的下载页面
http://www.curse-gaming.com/mod.php?addid=629


Thanks Daemorius for the original Megamacro request (and some help) and for helping me iron out the bugs with some testing and his own macro skills.

感谢Daemorius对于这个原始的Megamacro (request怎么翻?)(及其一些小帮助)Revenant(灵魂?)并且帮助我寻找测试bugs方面他自己的能力(大致意思就是感谢对于我在寻找bugs、测试方面的帮助)

This is a smart megamacro - it will cast Siphon Life, Corruption, and Curse of Agony in that order if those debuffs are not found on your target. In addition, if your target is dispelling class (priest or paladin), it will only cast the curse. Also, if your target is a curse curing class, it will only cast the magic debuffs.

这是一个痛苦宏 - 使用了生命虹吸、腐化、痛苦诅咒在使用这些命令后假如你的目标还是没有发现那些debuffs。另外假如你的目标是能够趋散的职业(牧师或者骑士)就要使用语言诅咒。并且,如果你的目标是诅咒的治疗职业,就只用语言诅咒。

Unfortunately, there’s no way to know if the debuff it found was yours, so if 2 warlocks are dot’ing the same target, the macro assumes the debuffs are yours and doesn’t try to stack them.

遗憾的是,他们是没有方式去知道是谁放的假如这个debuff被发现是你放的,这样假设有2个术士正在对同一个目标使用dot,这个宏会假设这些debuffs是你施放的并且不再试图去叠加他(说白了就是这个宏不重复对同一个目标使用同一个debuff)

Make seperate macros for each /script command, and name them z1, z2, z3, and z4 respectively. You then drag the last macro onto your UI and activate that one.

制作其它的宏都要使用/script命令,并且分别对他们命名就如z1,z2,z3,z4。你可以在你的插件里托动the last macro(最后?最近?的宏)并且去激活它们。

上篇最后一句话应该是”最后你可以对你的宏进行命名并去激活它(就是使用)“

/script
hasAgony=false;
hasCorruption=false;
hasSiphon=false;


--建立全局变量“hasAgony”、“hasCorruption”、“hasSiphon”并对它们分别赋值为false

/script
local i,l;
for i=1,16,1 do
    GameTooltip:SetUnitDebuff("target",i);
--[[游戏工具小帖示:建立目标debuff索引。对目标的所有debuff查找找到需要的后对于相应的debuff赋值]]
    l=GameTooltipTextLeft1:GetText(); --对 局部变量赋值(这里好像涉及到字体的设置)
    if l=="Curse of Agony" then --假如 变量“l”等于“Curse of Agony”(痛苦诅咒)那么
       hasAgony=true; --对 变量“hasAgony”值为“true” 并结束循环
    else --否则
       if l=="Corruption" then --假如 局部变量“l”等于“Corruption”(腐化)那么
          hasCorruption=true; --对 变量“hasCorruption” 赋值为 “ture” 并结束条件判断
       else --否则
          if l=="Siphon Life" then --再来个判断假如 变量“l”等于“Siphon Life”(生命虹吸)那么
             hasSiphon=true; --对 变量“hasSiphon” 赋值为 “true” 并结束循环
          end; --结束当前if
       end;  --结束上一个if
    end; --结束再上一个if
end; --结束for循环

--[[注意“==”不是赋值而是一个判断
建立了2个局部变量“i”、“l”,建立一个循环语句初值是1,终止是16,步长是1
for i=1,16,1 do 这个我是故意把8改成16的1.6.1以后BLZ增加了buff的位置我们要紧跟时代的潮流所以把8改成了16]]

/script
if UnitClass("target") == ("Paladin" or "Priest") then
--假如目标职业是 骑士或者牧师 那么
   hasCorruption=true; --变量“hasCorruption”值为“true”
   hasSiphon=true; --变量“hasSiphon”值为“true”
else --否则
   if UnitClass("target") == ("Mage" or "Druid") then --假如目标职业是 法师或者德鲁伊 那么
      hasAgony = true; --变量“hasAgony”值为“true”
   end; --结束当前if
end;

/script
if hasSiphon==false then
--假如 变量“hasSiphon”等于“false” 那么
   CastSpellByName("Siphon Life(Rank 4)"); --使用技能 "Siphon Life(Rank 4)" (4级 生命虹吸)
else --否则
   if hasCorruption==false then --再判断 变量“hasCorruption”值为“false” 那么
      CastSpellByName("Corruption(rank 6)"); --使用技能 "Corruption(rank 6)"(6级 生命虹吸)
   else --否则
      if hasAgony==false then --再判断 变量“hasAgony”值为“false” 那么
         CastSpellByName("Curse of Agony(rank 6)"); --使用技能 "Curse of Agony(rank 6)" (6级 痛苦诅咒)
      else --否则
         TargetNearestEnemy(); --选择最最近的一个敌人
      end;
   end;end;

/script
RunMacro("z1");
RunMacro("z2");
RunMacro("z3");
RunMacro("z4")


--[[RunMacro就是运行宏的意思这需要那个叫SuperMacro的插件来支持它(就如同“in”一个延时命令需要cosmos的支持一样)
“z1”之类的应该是它对4个/script的命名]]

8th June 2005:
2005年6月8日
TargetLastEnemy()

(another minor update - TargetLastEnemy() can be used to recover your target if you command your pet to reseduce when you have no target.
一个小小的更新 - “TargetLastEnemy()”能够被用来恢复你选择的目标假如你命令你的宝宝去reseduce(我不知道这是什么意思=.=!但我猜测是自动选择)当你没有目标时。(乱啊~我的理解是有个更新是关于“TargetLastEnemy()”它能够用来选择你最后一个敌人……那位达人帮忙翻下)
This is an update to the original Seduce macro. If you have a succubus out, it will
PetAttack (so we can assist again later), start casting Seduction, and cast Curse of Shadow
(rank 2). If you have the Felhunter out, it will Devour Magic on your target. There may be
times when you want to devour your enemy, there may be times you want to devour yourself.. I figured I’d leave it up to the user to hit F1 to target himself if required (I also ran out of space :P).

--[[这是在原先媚惑的宏上更新的。
假如你在野外招了个媚魔,就会有宠物攻击(所以在后面我们协助攻击),开始使用媚惑并且施放2级暗影诅咒。
假如你在野外招了狗狗,它将吞噬你目标的魔法(应该就是指打断魔法)。
在你想要打败你的敌人时或许那就时个机会,翻不下去了……还是看看他编的宏]]

/script
b=UnitCreatureFamily("pet");
--对 变量“b” 赋值为 “自己的宠物”
c=CastPetAction; --对 变量“c” 赋值为 “宠物技能”
d=UnitName("target").." is being SEDUCED <3 <3"; --对 变量“d” 赋值为 “目标..正在被媚惑”
if b=="Succubus" then --假如 变量“b” 等于 媚魔(就是说召唤的宠物是媚魔)那么
   PetAttack(); --宠物攻击目标
   c(6); --使用第6个技能,我猜应该是媚惑,我的10级术士虚空任务刚接……
   SendChatMessage(d,"PARTY"); --在队伍频道输出 变量“d” 什么效果不用我说了吧
   CastSpellByName("Curse of Shadow(rank 2)"); --使用技能 2级 暗影诅咒
else --否则
   if b=="Felhunter" then --判断假如 变量“b” 等于 地狱犬 那么
      c(4); --[[宠物使用第4个技能,谁能告诉我第4个是什么技能如果知道第4个技能那么那几句英文应该猜的出来了]]
  
end;
end;

--[[一段根据召唤的宠物使用不同的技能并且在队伍频道告诉其他人。比起那段英文容易多了]]

This is an update to the re-seduce macro.
If you have the Succubus out, it will assist her, then start casting Seduction again, then TargetLastEnemy.
If you have the Felhunter out, it will spell lock your target.

这是根据二次媚惑修改的宏。
假如你在野外召唤了媚魔,在她再次使用媚惑时就要协助她攻击刚才那个目标。
假如你在野外召唤了地狱犬就会锁定你的目标。

/script
b=UnitCreatureFamily("pet");
--对 变量“b” 赋值为 “自己的宠物”
c=CastPetAction; --对 变量“c” 赋值为 “宠物技能”
if b=="Succubus" then --假如 变量“b” 等于 媚魔那么
   ClearTarget(); --取消目标选择
   c(6); --使用宠物技能第6个,谁能告诉我是什么技能?有什么用?
   TargetLastEnemy(); --选择上一个敌人
else --否则
    if b=="Felhunter" then --判断 变量“b” 等于 “地狱犬” 那么
      c(6); --使用宠物第6个技能,还是那个问题谁能告诉我
    end;
end;


--由于对宠物技能的不了解我也不知道这个宏有什么意义。

23rd May 2005:
2005年5月23日

Sends in the pet, casts curse of agony. If health is getting low, hit again to curse of recklessness to stop it running. (by Stix)

(这里的sends怎么翻?是送?牺牲?)宠物,使用痛苦诅咒。假如目标生命值很低,再次使用鲁莽诅咒阻止对方逃跑。

/script
PetAttack();
/script
if (UnitHealth("target")<90) then
   CastSpellByName("Curse of Recklessness(Rank 1)")
else
   CastSpellByName("Curse of Agony(Rank 4)")
end;


--[[太简单了我不解释了自己看"Curse of Recklessness(Rank 1)" 1级 鲁莽诅咒,"Curse of Agony(Rank 4)" 4级 痛苦诅咒]]

16th May 2005:
2005年5月16日

PVP macro: Scan current target for Siphon Life, cast it if it’s not present, if it is, try
to target another enemy.
pvp 宏:分析目标目前是否适合使用生命虹吸,如果目标没有生命虹吸就对它使用,假如目标已经有了就选择另外一个敌人。

/script
z=0;
for i=1,16 do
   UnitDebuff("target", i);
   GameTooltip:SetUnitDebuff("target",i);
   if GameTooltipTextLeft1:GetText()=="Siphon Life" then
      z=1;
   end;
end;
if z==1 then
   TargetNearestEnemy();
else
   CastSpellByName("Siphon Life(Rank 4)");
end;


--同样简单具体自己分析,我说下它的功能根据目标的debuff来判断施放使用4级 生命虹吸。

Curse of Shadow, then Enslave Demon.

暗影诅咒,并且奴役恶魔。

/script
x=CastSpellByName;
z=0;
for i=1,8 do
   UnitDebuff("target", i);
   GameTooltip:SetUnitDebuff("target",i);
   if GameTooltipTextLeft1:GetText()=="Curse of Shadow" then
      z=1;
   end;
end;
if z==1 then
   x("Enslave Demon(Rank 3)");
else
   x("Curse of Shadow(Rank 2)");
end;


--实现的方法同上一个自己分析吧"Enslave Demon(Rank 3)" 3级 奴役恶魔,"Curse of Shadow(Rank 2)" 2级 暗影诅咒


13th May 2005:
2005年5月13日

Searing Pain macro that check to see if Nightfall/Shadow Trance has proceed and if so cast Shadow Bolt.
灼热之痛的宏检查是否有黑夜降临/暗影状态就继续并且使用暗影箭

/script
z=0;
for i=1,16 do
   UnitBuff("player", i);
   GameTooltip:SetUnitBuff("player",i);
   if GameTooltipTextLeft1:GetText()=="Shadow Trance" then
      z=1;
   end;
end;
if z==1 then
   CastSpellByName("Shadow Bolt(Rank 9)");暗影箭
else
   CastSpellByName("Searing Pain(Rank 6)");灼热之痛
end;


--同上同上~!"Searing Pain(Rank 6)" 6级 灼热之痛,"Shadow Bolt(Rank 9)" 9级 暗影箭

9th May 2005:
2005年5月9日

Today’s macros are new and untested. Please post feedback. :)

今天的宏是新的没有没有被测试过,请各位告诉我效果如何。:)

--[[This is an update to Yvero’s conflagrate else Immolate macro.
Please note this is experimental and I need to know if using GameTooltip in this way has any adverse effect on tooltips in game.

这是根据Yvero的火灾和献祭宏来修改的。
请注意这是实验过的并且我需要了解如果在游戏提示里利用GameTooltip有什么不好的影响。]]

/script
z=0;
for i=1,16 do
   UnitDebuff("target", i);
   GameTooltip:SetUnitDebuff("target",i);
   if GameTooltipTextLeft1:GetText()=="Immolate" then
      z=1;
   end;
end;
if z==1 then
   CastSpellByName("Conflagrate(Rank 4)");
else
   CastSpellByName("Immolate(Rank 7)");
end;


--没新意思~~:"Conflagrate(Rank 4)" 天赋技能 4级 火灾,"Immolate(Rank 7)" 7级 献祭

Amplify Curse, else Curse of Exhaustion:

增强诅咒,否则使用疲劳诅咒:

/script
local e, f, g = GetSpellCooldown(16, SpellBookFrame.bookType);
if (f<= 0) then
   CastSpellByName("Amplify Curse");
else
   CastSpellByName("Curse of Exhaustion");
end


--[[这有了一个新的函数“GetSpellCooldown”是一个显示技能冷却时间的函数
基本格式:local start,duration,enable= GetSpellCooldown(id, SpellBookFrame.bookType)
对于它的意义运用消化中,也就不误人子弟了 "Amplify Curse" 增强诅咒,"Curse of Exhaustion" 疲劳诅咒]]

2nd May 2005:
2005年5月2日

Fel Domination/Summon Voidwalker/Sacrifice Voidwalker macro (updated)

邪恶控制、召唤、控制虚空,牺牲虚空的宏(更新过)

/script
local a=CastSpellByName;
local e,f,g=GetSpellCooldown(16, SpellBookFrame.bookType);
if UnitCreatureFamily("pet") == "Voidwalker" then
   CastPetAction(5);
else
   if f<=0 then
      a("Fel Domination");
   else
      a("Summon Voidwalker");
   end;
end;


--[[对于“GetSpellCooldown”函数依然没有完全理解,谁能告诉我那3个变量有什么用?
我知道duration是魔法持续时间,start是魔法开始时间,enable呢?是不是使用指定的技能?
id这有是什么意思?是指定技能的编号吗?怎么确定的?
“Summon Voidwalker” 召唤虚空,"Fel Domination" 邪恶控制

NOTE: You MUST change the 16 in GetSpellCooldown to the index of Fel Domination.
Every time you learn a new spell, you need to check if the index has incremented.
In order to find the ID, execute the following macro:

注意:你必须更新 "Fel Domination" 邪恶控制 在GetSpellCooldown里的索引编号。
每次你学完一个新的技能,你需要去检查一下索引编号是否又增加了。
为了找到这个编号,需要执行以下的宏~(原来这个技能编号这么来的要看的要看的)]]

/script
for id = 1, 180, 1 do
   local spellName, subSpellName = GetSpellName(id, SpellBookFrame.bookType);
   if spellName and string.find(spellName, "Fel Domination", 1, true) then
      ChatFrame1:AddMessage("ID is "..id, 1.0, 1.0, 0.5);
   end;
end;

--[[又是一个新的函数“GetSpellName”返回技能的名称和排名(就是那个索引编号)
基本格式:local spellName, subSpellName = GetSpellName(id, SpellBookFrame.bookType);

NOTE2: Some people have reported problems with the Summon Voidwalker part of this macro.
If you have this problem, please do the following to make it work:

注意2:有人告诉我一些问题是是关于召唤虚空的那段宏。
假如你也有这些问题请照着下面的去做:

Execute the following macro to determine the spell ID of Summon Voidwalker
(note you’ll have to re-run this any time you learn a new spell as the ID may change).

执行判断 召唤虚空 技能编号的宏。
(注意你每次学了一个新的技能后这个编号都可能会改变)]]

/script
for id = 1, 180, 1 do
   local spellName, subSpellName = GetSpellName(id, SpellBookFrame.bookType);
   if spellName and string.find(spellName, "Summon Voidwalker", 1, true) then
      ChatFrame1:AddMessage("ID is "..id, 1.0, 1.0, 0.5);
   end;
end;

--[[Now you have the ID for Summon Voidwalker, replace the index 100 in the CastSpell function
in the following macro with the ID in *your* spellbook
(as above, you still need to change 16 to whatever the ID of Fel Domination is in your spellbook):

现在你有了召唤虚空的技能编号,更换索引编号在施法函数里在以下的宏里这个id就是在你的技能书里
【好像翻的不对~】(同上面一样,你还是需要更换你在技能书里的技能编号):]]

/script
local a=CastSpellByName;
local e,f,g=GetSpellCooldown(16, SpellBookFrame.bookType);
if UnitCreatureFamily("pet") == "Voidwalker" then
   CastPetAction(5);
else
   if f<=0 then
      a("Fel Domination");
   else
      CastSpell(100, SpellBookFrame.bookType);
   end;
end;

--[[由于对于几个新的函数了解不深所以这个我不解释了免得误人子弟,残害他人那幼小的心灵终于剩下这最后一段了]]

1st May 2005:
(Graguk post)

2005年5月1日
(Graguk 公告)那天是我在ngacn注册的那天

This macro scans your Spellbook and reports the ID of the spell you are interested in on your Main Chat frame.
Replace Fel Domination with the spell whose index you are interested in.

这段宏是分析你所感兴趣的技能并在你的主聊天窗口里报告它的id。(后面那句翻不来)

/script
for id = 1, 180, 1 do
   local spellName, subSpellName = GetSpellName(id, SpellBookFrame.bookType);
   if spellName and string.find(spellName, "Fel Domination", 1, true) then
      ChatFrame1:AddMessage("ID is "..id, 1.0, 1.0, 0.5);
   end;
end;

PVP marco: Each press of this macro will scan your target for Corruption,
if it’s not present, it will Cast Corruption(Rank 1), if it is present, it will TargetNearestEnemy (same as hitting TAB).
This macro is based on one of Yvero’s macros. (updated with correct string)

PVP 宏:如果对方不是平民,每次运行宏都会检查你目标是否有腐化,并使用1级的腐化,如果是平民,就选择最近一个敌人(相当于按下Tab)。这个宏的基础是Yvero的宏中的一个。(修正了string<不知道怎么翻>)

The benefit is three-fold..

它有3个好处……(翻的比较差,原谅我吧~!)

1. Dispellers using CTRaidAssist will see the debuff and dispell it - they don’t know it’s rank 1.

Dispellers【亚没查一下(就是估计的意思)<趋散诅咒的人>】利用CTRaidAssist可以看到这个debuff并去趋散它,但是他们不知道这是一个1级的诅咒。
(浪费对方的魔法?趋散是瞬发的吧?那是锻炼对方的操作?)

2. Little DoTs like this drive rogues up the wall because they can’t stealth.

一些dots可以把盗贼逼出来,因此他们不再变得诡秘。

3. Nightfall proc chance :)

使用的过程中有机会出黑夜降临:)

/script z=0
for i=1,8 do
   t=UnitDebuff("target", i)
   if (t and string.find(t,"Spell_Shadow_AbominationExplosion")) then
      z=1
   end;
end;
if z==1 then
   TargetNearestEnemy()
else
   CastSpellByName("Corruption(Rank 1)")
end;

Shadow bolt/Pet Attack/Dark Pact macro:

暗影箭/宠物攻击/黑暗契约 宏:

If you have an enemy target, when you hit this macro it will start casting shadow bolt and send in the pet.
If you have no target and you hit this macro, it will Dark Pact your pet.

假如你有一个目标(敌人),在你运行这个宏以后它将施放暗影箭并且宠物上前攻击。
假如你没有目标并且你也运行了这个宏就是用黑暗契约。

/script
if UnitName("target")~=nil and UnitIsEnemy("target", "player") then
   CastSpellByName("Shadow Bolt(rank 9)");
   PetAttack();
else
   CastSpellByName("Dark Pact(rank 3)");
end;


暂时没有补充内容 您可以第一个补充内容


引用百科资源:多种方式引用本页 | 浏览引用了本页的网站/网页(1646)
关闭
百科引用链使您能方便地在其他网页插入本资源的引用链接,让优秀的百科资源通过引用链对更多玩家造成帮助。
越多的玩家通过您的引用链访问百科将为您带来更多的百科威望!

引用本页地址(点击复制到粘贴板) 粘贴到你想引用的网页。
HTML形式的传播:

论坛形式的传播:

关闭
本页有下列读者,字体越大、颜色越深的玩家阅读本页的次数越多。
*如果您的玩家名称未刊载于此,因为只有百科成员才能记录阅读体验。
在魔兽世界中已有97,734项百科条目,如果你有任何可以分享的请

本页由 dailytoy 创建,希望能用你我的开放思维帮助下得到不断完善。
共有 0 条评论 浏览全部评论
匿名发表,您可以马上注册/登录成为百科玩家后用属于自己个性名称发表。

《【翻译】术士宏大杂烩超级的长》的任何感想和见解请发于此。

热门资料推荐
请和我们一起建造全球最大的人工游戏百科
在本目录提交一笔资料 - 我们的计划 - 成为目录编辑
搜游的搜索内容将在 游戏百科共建计划 的基础上不断完善与加强。
当前目录下还没有目录编辑负责管理。
 

想把自己的网站也加上搜索功能?来这里获得免费的魔兽世界搜索条

搜游大全 - 免责声明 - 投放广告 - 商务合作

© 2005 - 2007 搜友游戏百科 SOUYO.com