1.什麽是宏命令?
玩過EQ的都知道壹點宏的知識,比如組隊時用來告訴隊友妳的行動,告訴目標等。最簡單的比如puller 常用的: /v %t過來了,大家集中火力。 法師常用的: /v 我要催眠%t,大家不要打醒他 這些宏個性鮮明,是EQ的壹大樂趣之壹。
然而EQ畢竟是N年前的遊戲,宏也比較簡單,和它比起來。WOW的宏就復雜和強大的多了。它的函數就有上千種,如果都掌握,能實現許多匪夷所思的功能。
壹個宏可以完成壹個相對比較復雜的命令.比如戰鬥中發布命令,如果打字當然不算麻煩,但在戰鬥中卻很要命.浪費了時間和生命.壹個簡單的宏便可以用壹個鍵來完成這壹切.
2.宏命令的設置流程:
首先,回車,再敲/MACRO。看見了吧?會彈出壹個窗口,上面有New(新建宏命令)和Complete(完成宏命令)兩個按鍵。點New,又會彈出壹個窗口,哇,花花綠綠的,裏面包括了WOW幾乎所有的技能圖標,隨妳喜歡,隨便選壹個!它就是妳設置的宏命令的圖標了,給它取個名字吧!方便妳用的時候好找。然後回到第壹個窗口,在它上面有壹個輸入菜單(別告訴我找不到…它可是占了這個窗口的壹半多…)在裏面輸入特定的內容,然後點Complete。接下來妳要做的就是把這個代表妳宏命令的圖標用鼠標左鍵拉到快捷欄裏,想怎麽用就怎麽用…
3.下面就是怎樣設置宏的內容了,簡單的設置大家可以看我們網站上"基礎"篇的宏介紹.
相信很多人都知道WOW中的斜杠"/"和表情命令.宏可以將這些命令按照自己對條件的設置串聯起來,比如:/Kneel是讓妳跪下來的動作而/say就是最基礎的對話動作
我們現在用壹個宏把他們串起來:
第壹行內容:“/Kneel”
第二行內容:“/say 如果妳不嫁給我,那麽我就壹輩子不起來…” ”
這樣妳的人物就會先下跪再說:"如果妳不嫁給我,那麽我就壹輩子不起來…"
宏可以應用所有WOW中已經定義了的斜杠"/"和表情命令,更要命的是,宏甚至可以應用人物的魔法和技能,
只需要在宏的定義過程中應用"/cast"命令,下面是已知的壹些常用命令:
/Assist 這是個援助進攻的命令。當妳的隊伍同時面對幾個敵人時,只要點擊自己的隊友(壹般是隊伍中的戰士),然後使用這個命令,妳的目標就會變成戰士所選中的目標。大家集中火力消滅壹個起!
/Cast 這是個使用技能的命令。當妳在宏命令裏輸入/Cast 技能名(技能等級)或者只要按住Shift同時用鼠標點擊壹下妳想要輸入的技能的圖標。例如當妳是壹個戰士,想制作壹個使用戰鬥怒吼的宏時,妳可以輸入/Cast Battle Shout(Rank 1)或者是直接按住Shift點擊Battle Shout這個技能的圖標。當然妳可以在壹個宏的不同行上輸入幾個技能,那麽當妳使用這個宏時,幾個技能就會壹起釋放出來,再用不著妳像章魚壹樣同時按下幾個鍵了 。
%t 這個符號也許會經常出現在妳的宏命令裏,它是壹個代碼,代表妳當前所選中的人名。例如,妳在宏裏寫下這麽壹句。(註意:後面要加壹空格。) “/g %t ,今天天氣真好,有沒興趣和我壹起上山采蘑菇…”
如果妳點中壹位名叫苯笨的玩家,那麽當妳按下這個宏時,妳就會說:“笨笨,今天天氣真好,有沒興趣和我壹起上山采蘑菇…”
/Target 這是壹個自動選擇目標的命令,妳可以在宏裏輸入/Target (xxx),那麽當妳按下這個宏時,妳將自動選定這個叫xxx的目標。
/in 這是壹個延時命令,時間以秒為單位.同時它不支持攻擊指令.格式:/in 3 dance 三秒後跳舞,如/in 3 dance,就是在3秒後跳舞,
/say start!
/in 3 say 3s later
/in 6 say 6s later
二:進階教程
壹些有用的 Macro
1。允許妳在窗口和全屏狀態之間切換
/script SetCVar("gxWindow", 1 - GetCVar("gxWindow"));
/console gxRestart
2。對於法師,必須要有的:將“X”換為妳目前的變形術等級(下同);用它替換掉變形術技能。當妳在隊伍之外時使用它會得到“妳不在隊伍中。”的信息,但在隊伍中的時候其它同伴會了解到妳將釋放的變形術目標。
/p Sheeping >>> %t <<<
/cast Polymorph (Rank X)
3。作為壹個術士,這是在隊伍中使用的宏:首先將目標轉為拖怪手或者坦克正在攻擊的目標,然後命令寵物向前攻擊,跟著壹個虛弱詛咒。
/assist 隊伍中的拖怪手或者坦克的名字
/script PetAttack();
/cast Curse of Weakness (Rank X)
4。從背包和袋子裏切換身上的武器
/script if ( not CursorHasItem() ) then PickupContainerItem(, );
PickupInventoryItem( ); end
bag# - 使用哪壹個袋子的物品(0、1、2、3、4。0是背包)
slot# - 袋子裏的位置(從0至左上)
equip# - 16 是主要武器, 17 是副武器
5。這個宏治療隊伍裏妳指定的人,如果妳不在隊伍中它會治療妳自己。然後會自動將目標切換回妳最後壹個敵人。它同時還會使用隊聊提醒隊友妳會治療哪壹個人。
/script if (UnitName("target") ~=nil and UnitIsFriend("player","target")) then
CastSpellByName("Heal(Rank X)") SendChatMessage("Incoming Heal to %T", "Party") else
TargetUnit("player") CastSpellByName("Heal(Rank X)") TargetLastEnemy(); end
6。加速任務顯示速度
/script QUEST_DEscriptION_GRADIENT_CPS = 600000
/script RegisterForSave("QUEST_DEscriptION_GRADIENT_CPS")
/script DEFAULT_CHAT_FRAME:AddMessage("quest text will scroll faster now");
7。消除等待接受任務的時間
/script AcceptQuest()
8。這個宏可以在路上自動護送玩家做任務。
/assist [player name]
/cast 法術(Rank X)
/target [player name]
/follow [player name]
9。切換主副武器,詳情看第四條
/script PickupInventoryItem(16); PickupInventoryItem(17);
10。在沒有目標或者目標是敵人的時候給自己加增益魔法或治療。
CastSpellByName("Spell Name(Rank X)");
if ((SpellIsTargeting()) and (not UnitIsFriend("player","target")))
then
SpellTargetUnit("player");
end;
TargetLastEnemy();
11。切換雙手武器與單手+盾或者雙手揮舞武器
/script PickupInventoryItem(17);if(CursorHasItem()) then PickupContainerItem
(4,2);PickupContainerItem(4,1);PickupInventoryItem(16);else PickupContainerItem
(4,1);PickupInventoryItem(16);PickupContainerItem(4,2);PickupInventoryItem(17);end
12。設定“真實鼠標視野”
/script CameraOrSelectOrMoveStart(arg1);
想取消就再次輸入。
13。切換近程技能欄和遠程技能欄
/script CURRENT_ACTIONBAR_PAGE = 2;
/script ChangeActionBarPage();
/cast aspectofmonkey (just use the left click)
/script CURRENT_ACTIONBAR_PAGE = 1;
/script ChangeActionBarPage();
/cast aspectofhawk (just use the left click)
14。牧師對隊友的壹鍵加血,比如壹號鍵給第壹隊友加血,二號鍵給第二隊友加血,免除了還要鼠標確
定目標的操作。依次類推,從第壹個人到最後壹個
給隊友1加血:
/script TargetUnit(GetPartyMember(1))
CastSpellByName(Heal(Rank X)) TargetLastEnemy()
給隊友2加血:
/script TargetUnit(GetPartyMember(2)) CastSpellByName(Heal(Rank X)) TargetLastEnemy()
給隊友3加血:
/script TargetUnit(GetPartyMember(3)) CastSpellByName(Heal(Rank X)) TargetLastEnemy()
15。壹鍵解決餵養寵物:這個宏會從最左邊的袋子裏的第壹個位置拿出食物餵養寵物,如果所在的位置
沒有食物,它會自動打開袋子。
/script if (not PlayerFrame.inCombat) then if (not GetContainerItemLink(4, 1)) then
OpenBag(4); else CastSpellByName("Feed Pet"); PickupContainerItem(4, 1); end end
16。術士宏
1)如果目標生命大於20,釋放抽取生命法術,否則使用靈魂抽取。
/script if (UnitHealth("target")>20) then CastSpellByName("Drain Life(Rank X)") else
CastSpellByName("Drain Soul(Rank 2)") end;
2)虛弱詛咒版本
/script if (UnitMana("target")>0) then CastSpellByName("Curse of Tongues(Rank X)") else
CastSpellByName("Curse of Weakness(Rank X)") end;
17.先治療自己,然後自動選中上次的敵人
/target Pugar //選擇自己,假設自己的名字是Pugar
/cast Lesser Heal (Rank 1) //施展次級治療rank1
/script TargetLastEnemy(); //重新選擇剛剛選擇的敵人
/script AttackTarget(); //攻擊,等同於右鍵點擊敵人
18.對於壹個術士很有用的宏:首先將目標轉為拖怪手或者坦克正在攻擊的目標,然後命令寵物向前攻擊
,跟著壹個虛弱詛咒。
/assist 隊伍中的拖怪手或者坦克的名字
/script PetAttack();
/cast Curse of Weakness (Rank X)
19.等治療完之後提醒別人註意下自己有可能被怪打,不加延時的話,就沒這個效果了。
/p healing %T, need 3s, don"t run away
/cast heal (rank 1)
/in 4 p cured %T 300HP,please notice the enemies turn on me^_^
20.在路上自動護送朋友做任務。
/assist [player name]
/cast 法術(Rank X)
/target [player name]
/follow [player name]
三:高級教程
WOW的宏函數庫可以去這兩個地方查:
] /index.php/World_of_Warcraft_API
函數的使用比較簡單,學習過編程的都比較容易上手,基本的用法是在函數前加/script 來使用。比如
/script CURRENT_ACTIONBAR_PAGE = X;
/script ChangeActionBarPage();
就是將妳的快捷欄翻到第X頁。
函數庫中有許多函數都是非常有用和方便的,比如壹次打開所有包包:
/script OpenAllBags();
配合關閉包包的函數,壹次關閉所有包的宏也可以實現:
/script CloseBag(0);
/script CloseBag(1);
/script CloseBag(2);
/script CloseBag(3);
/script CloseBag(4);
怎麽樣,下次妳賣東西的時候不會壹個個開包關包了吧?
使用函數還不是最恐怖的,恐怖的是WOW的宏是可以用條件判斷的,看下面這兩個:
/script if ( GetComboPoints() >= 3 ) then CastSpellByName("Rip(Rank 2)"); else if (
UnitMana("player") >= 40 ) then CastSpellByName("Rake(Rank 1)"); end end
據說這個包含if,then的宏可以讓盜賊實現自動根據combo點數來使用技能(未測試),其中還使用了角
色MANA值的調用,恐怖吧?還有這個查找spell的宏:
function GetSpellIdByItsName(myWantedSpell, myWantedRank)
local spellId = 1;
local spellBook = "spell";
local spellName, rankName;
spellName, rankName = GetSpellName(spellId, spellBook);
while (spellName ) do
if ( ( spellName == myWantedSpell ) and ( ( not myWantedRank ) or ( rankName = myWantedRank
) ) ) then return spellId; end
spellName, rankName = GetSpellName(spellId, spellBook);
end
return -1;
end
裏面可以自己定義function,還使用了while,do這樣的循環,是不是讓妳想到了N種應用的可能呢?
遺憾的是,目前官方似乎沒有提供延時的宏,所以在戰鬥中使用多種有延時的技能是無法實現的(無延時的技能可以實現同時使用),類似換其他武器-使用技能或法術-換回武器這樣的功能也無法實現,
(所謂用宏實現劍盾戰士換雙手武器MS再換回來是行不通的),不過使用COSMOS的朋友可以用/in 來實現非戰鬥指令的延時,比如
/in 3 say hi 就會在3秒後說句hi。
/in 6 /script MoveForwardStart(arg1);
就會在6秒後向前跑。
雖然法術和技能無法用/in指令來延時,但這樣已經很強大了,比如,妳可以編出各種運動的宏,如兜後,轉身等。PVP時估計是必不可少的。
下面是壹個玩家寫的雙手武器戰士自動逃跑的宏:
/script UseContainerItem(0, 2);ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown
(12);ActionButtonUp(12);
/cast Thunder Clap(Rank 1);
/script TurnLeftStart(arg1);
/in 1 /script TurnLeftStop(arg1);ToggleAutoRun();
使用這個宏的條件:在大包包第二格放了回復藥,快捷欄第11,12分別是壹單手壹盾的快捷方式。
使用這個宏後,角色自動喝回復藥,裝備上盾,使用Thunder Clap(這三個動作同時進行),向後轉180度後開自動跑步鍵逃走。其中技能等可以根據需要自己改。怎麽樣,是不是很誇張啊,哈哈。
還有壹些有用的宏:
切換裝備,
雙手切換單手並換第二個快捷欄,快捷欄第11,12分別是壹單手壹盾的快捷方式
/script ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown(12);ActionButtonUp(12);
/script CURRENT_ACTIONBAR_PAGE = 2;
/script ChangeActionBarPage();
單手切換雙手並換回第壹快捷欄,快捷欄12是壹雙手武器快捷方式
/script ActionButtonDown(12);ActionButtonUp(12);
/script CURRENT_ACTIONBAR_PAGE = 1;
/script ChangeActionBarPage();