术士的宏

发布网友 发布时间:2022-04-23 02:13

我来回答

1个回答

热心网友 时间:2023-10-11 08:08

由于通篇全是术士的宏所以就发到术士区来了有错误的地方还望指正

SuperMacro的下载页面http://www.curse-gaming.com/mod.php?addid=629
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ http://www.curse-gaming.com/mod.php?addid=629 ]
某些宏需要它的支持比如“RunMacro”。

MegaMacro: http://www.curse-gaming.com/mod.php?addid=5
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ http://www.curse-gaming.com/mod.php?addid=5 ]

SmartPet: http://www.curse-gaming.com/mod.php?addid=1071
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ http://www.curse-gaming.com/mod.php?addid=1071 ]

首发在http://wowhong.blogbus.com/logs/2005/08/1362344.html
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ http://wowhong.blogbus.com/logs/2005/08/1362344.html ]
这篇文章是在那看到的,这个博客也不是我的。

这是原文,作者应该是一个叫Graguk 的谢谢他了
http://wow.warcraftstrategy.com/db/print.asp?ID=1205
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ 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
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ 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
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ 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; --结束但前if
end; --结束上一个if判断
end; --结束再上一个if判断

/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 resece when you have no target.

一个小小的更新 - “TargetLastEnemy()”能够被用来恢复你选择的目标假如你命令你的宝宝去resece(

我不知道这是什么意思=.=!但我猜测是自动选择)当你没有目标时。(乱啊~我的理解是有个更新是关于“

TargetLastEnemy()”它能够用来选择你最后一个敌人……那位达人帮忙翻下)

This is an update to the original Sece macro. If you have a succubus out, it will

PetAttack (so we can assist again later), start casting Section, 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-sece macro.
If you have the Succubus out, it will assist her, then start casting Section 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)");天赋技能4级火灾
else
CastSpellByName("Immolate(Rank 7)");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,ration,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个变量有什么用?
我知道ration是魔法持续时间,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;

参考资料:http://bbs.ngacn.com/read.php?tid=260476

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com