壹、1鍵實現3姿態間的切換
首先,菜單裏選擇按鍵設置,把8號快捷鍵的鍵位設置2,設為Q
然後,打開技能書,在戰鬥姿態下,把“狂暴姿態”圖標拖到8那格去
切換狂暴姿態,在狂暴姿態下,把“戰鬥姿態”圖標拖到8那格去
最後鼠標點壹下切換防禦姿態,把“狂暴姿態”圖標拖到8那格去
這樣,在戰鬥姿態或者防禦姿態按壹下Q,都能切成狂暴姿態。而在狂暴姿態按壹下Q,就能切回戰鬥姿態。如果要在切姿態的同時換武器,把姿態的圖標換成以下宏:
1、從任意姿態任意武器切換到戰鬥姿態+雙手武器
/script P=PickupInventoryItem;PC=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,15));if(oi) then P(17);PC(4,7);else P(17);PC(4,15);end;P(16);PC(4,11);end
/施放 戰鬥姿態
2、從任意姿態任意武器切換到防禦姿態+主手武器+盾牌
/script P=PickupInventoryItem;C=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,15));if(oi) then P(17);C(4,7);C(4,15);AutoEquipCursorItem();end;else C(4,11);P(16);C(4,15);P(17);end
/施放 防禦姿態
3、從任意姿態任意武器切換到狂暴姿態+雙持武器
/script P=PickupInventoryItem;PC=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,7));if(oi) then P(17);PC(4,15);PC(4,7);AutoEquipCursorItem();end;else PC(4,11);P(16);PC(4,7);P(17);end
/施放 狂暴姿態
副手武器放在4號背包(最左邊的背包,因為這個包是最後被拾取的物品填滿的背包,不容易因為盾或副手武器的那壹格被填滿導致宏實效)的7(副手武器)、11(主手武器或雙手武器)、15(盾)三格。
背包的數法是:
1 2
3 4 5 6
7 8 9 10
11 12 13 14
15 16 17 18
由於某些同誌提出他們只有14包,那麽可以把宏中所有的“15”都改為比如“12”,然後把盾放到12那格就可以了。
切姿態同時換武器的宏倒非我原創,只是把自己用的這個給貼出來。武器戰士倒不壹定用,狂暴戰士必備。
具體打法:起手拿慢速雙手武器,選中目標後3.8秒再沖鋒,這樣近身瞬間0秒即可砍出壹刀,然後按Q切狂暴姿態+雙持。看到閃避了再次按Q切回戰鬥姿態+雙手武器壓制。(如果怪長得太高,我們需要比如dex這樣的插件來提示狂暴姿態中打出的閃避)
二、三種姿態下的攻擊常用技能整合
首先再次打開按鍵設置,把回復對話R鍵那裏改為I。因為,第壹,戰鬥到壹半不小心把對話框按出來是很容易導致失敗的。第二,R鍵是壹個很就手的鍵,按久了不會累。
然後,把9號快捷鍵的鍵位設置2,改為R
1、在戰鬥姿態下,把以下這個宏的圖標放到9
/施放 沖鋒(等級 3)
/施放 壓制(等級 4)
/script if ( UnitHealth("target")<20 ) then CastSpellByName("斬殺(等級 5)"); else if ( UnitHealth("target")>=20 ) then CastSpellByName("致死打擊(等級 4)"); end end
/script if (UnitMana("Player")>80) then CastSpellByName("英勇打擊");end
2、在防禦姿態下,把以下圖標放到9(這個我直接給出的是防戰的版本了,其他天賦戰士記得把第四行的“盾牌猛擊”改為致死打擊或者嗜血)
/施放 盾牌格擋
/script SpellStopCasting();
/script if (UnitMana("Player")>5) then CastSpellByName("復仇");end
/script if (UnitMana("Player")>40) then CastSpellByName("盾牌猛擊");end
/script if (UnitMana("Player")>59) then CastSpellByName("英勇打擊");end
3、在狂暴姿態下,把以下宏的圖標放到9
/施放 攔截(等級 3)
/script if ( UnitHealth("target")<20 ) then CastSpellByName("斬殺(等級 5)"); else if ( UnitHealth("target")>=20 ) then CastSpellByName("致死打擊(等級 4)"); end end
/script if(UnitAffectingCombat("player")==1) then CastSpellByName("旋風斬") else end
或者
/施放 攔截(等級 3)
/script if ( UnitHealth("target")<20 ) then CastSpellByName("斬殺(等級 5)"); else if ( UnitHealth("target")>=20 ) then CastSpellByName("致死打擊(等級 4)"); end end
/script if (UnitMana("Player")>80) then CastSpellByName("英勇打擊");end
這樣壹個R鍵就實現了沖鋒、壓制、攔截、致死(嗜血、盾牌猛擊)、斬殺、旋風、英勇、盾牌擋格、復仇***9個技能的使用。大大節約了鍵位。也彌補了某些操作上的缺陷。比如斬殺前出了閃避,R按下去就自動是壓制了(壹般壓制秒人最後20%血還是可以的,還有打盜賊他很可能是開了閃避了,壹味斬殺都是閃避)。還有能很方便的保持盾牌擋格和復仇。破甲的話另外設壹個鍵吧。怒大於壹定量的時候自動用英勇打擊宣泄。狂暴戰士的話可以把宏裏面的數字改小壹點。
三、破膽怒吼+立刻繃帶,以及壹鍵繃帶宏
/施放 破膽怒吼
/script SpellStopCasting()
/script UseContainerItem(2,1)
/script TargetUnit("player")
其中
/script UseContainerItem(2,1)
/script TargetUnit("player")
就是壹鍵繃帶宏。可以單獨建壹個。繃帶放在中間那個包左上開始第壹格。
這是戰士的壹個實用技巧。雖然時機有時候難以把握,但是只要敵我雙方身上都沒有流血效果,我們就可以25怒+2000血,也就是說這個宏用好了能頂壹件+200耐的裝備。成功用出後要是都沒打贏,那基本上就是RP問題.....
壹鍵繃帶也非常有用。平時我們繃帶都是點了繃帶還要點人。或者要先F1再點繃帶。總之就是要按兩個鍵。將其簡化到壹個鍵,只要多節省1秒,那就是多獲得了250血,也就等於比不會這招的對手多25耐。25耐的優勢還不夠多麽?
3-2 鏗鏘玫瑰烈 朋友要的,壹鍵血性狂暴+切換狂暴姿態
/施放 血性狂暴
/script SpellStopCasting()
/施放 狂暴姿態
/ if (UnitHealth("target")<20) then CastSpellByName("斬殺(等級 5)"); end
/施放 嗜血(等級 4)
/ if (UnitMana("Player")>34) then CastSpellByName("旋風斬");end
/ if (UnitMana("Player")>34) then CastSpellByName("英勇打擊");end
狂暴狀態攻擊的宏,如果對方的血少於20%則斬殺
否則放嗜血. 如果怒氣大於34,則使用旋風斬, 或英勇打擊
這個數值我自己設的,具體情況可以看自己更改.
武器戰士的
/script if(UnitIsFriend("player","target")) then AssistUnit("target"); end;
/cast 壓制(等級 x)
/script if (UnitHealth("target")<20) then CastSpellByName("斬殺(等級 x)") else CastSpellByName("致死打擊(等級 x)") end
第壹行:點中目標時打目標,點中隊友時協助隊友打。
第二行:壓制亮了打壓制。
第三行:目標血少於20%時出斬殺,否則出致死打擊。
/施放 壓制(等級 4)
/ if (UnitHealth("target")<20) then CastSpellByName("斬殺(等級 5)"); end
/施放 嗜血(等級 4)
/ if (UnitMana("Player")>34) then CastSpellByName("英勇打擊");end
戰鬥狀態用的,原理同上
/ if(UnitAffectingCombat("player")==1) then CastSpellByName("旋風斬");end
只在戰鬥狀態釋放旋風斬,應某些朋友的要求添加的
/施放 破膽怒吼
/ SpellStopCasting()
/target 安達裏克
/ UseContainerItem(4,1)
/ TargetLastEnemy()
破膽繃帶宏, 第3行名字改成妳自己的
/施放 破膽怒吼
/ SpellStopCasting()
/ UseContainerItem(4,1)
/ TargetUnit("player")
這個也可以
/施放 盾牌格擋
/ SpellStopCasting();
/ if (UnitMana("Player")>14) then CastSpellByName("復仇");end
/ if (UnitMana("Player")>44) then CastSpellByName("盾牌猛擊");end
/ if (UnitMana("Player")>59) then CastSpellByName("英勇打擊");end
2月1日更新:優先使用盾牌格檔的宏,我目前TANK用
/archiver/?tid-30.html
/ P=PickupInventoryItem;PC=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,16));if(oi) then P(17);PC(4,15);else P(17);PC(4,16);end;P(16);PC(4,14);end
/施放 戰鬥姿態
/ P=PickupInventoryItem;C=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,16));if(oi) then P(17);C(4,15);C(4,16);AutoEquipCursorItem();end;else C(4,14);P(16);C(4,16);P(17);end
/施放 防禦姿態
/ P=PickupInventoryItem;PC=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,15));if(oi) then P(17);PC(4,16);PC(4,15);AutoEquipCursorItem();end;else PC(4,14);P(16);PC(4,15);P(17);end
/施放 狂暴姿態
最後壹個背包的最後3個格分別放,主手/雙手(4,14),副手(4,15),盾牌(4,16)
壹、從任意姿態任意武器切換到戰鬥姿態雙手武器
/ P=PickupInventoryItem;PC=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(背包,盾牌格));if(oi) then P(17);PC(背包,副手武器格);else P(17);PC(背包,盾牌格);end;P(16);PC(背包,主手/雙手格);end
/施放 戰鬥姿態
二、從任意姿態任意武器切換到防禦姿態主手武器+盾牌
/ P=PickupInventoryItem;C=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(背包,盾牌格));if(oi) then P(17);C(背包,副手武器格);C(背包,盾牌格);AutoEquipCursorItem();end;else C(背包,主手/雙手格);P(16);C(背包,盾牌格);P(17);end
/施放 防禦姿態
三、從任意姿態任意武器切換到狂暴姿態雙持武器
/ P=PickupInventoryItem;PC=PickupContainerItem;oi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(背包,副手武器格));if(oi) then P(17);PC(背包,盾牌格);PC(背包,副手武器格);AutoEquipCursorItem();end;else PC(背包,主手/雙手格);P(16);PC(背包,副手武器格);P(17);end
/施放 狂暴姿態
宏 Macro
相信很多人都知道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
從背包和袋子裏切換身上的武器
/script if ( not CursorHasItem() ) then PickupContainerItem(, );
PickupInventoryItem( ); end
bag# - 使用哪壹個袋子的物品(0、1、2、3、4。0是背包)
slot# - 袋子裏的位置(從0至左上)
equip# - 16 是主要武器, 17 是副武器
切換雙手武器與單手+盾或者雙手揮舞武器
/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
設定“真實鼠標視野”
/script CameraOrSelectOrMoveStart(arg1);
想取消就再次輸入。
切換近程技能欄和遠程技能欄
/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)
三:高級教程
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();
下面是另壹篇
作者:重返榮譽
來源:17173
宏只是壹種輔助的手段,希望通過下面的講解讓大家能輕松編輯屬於自己的宏。
先來看宏的結構:
/script
if (UnitHealthMax(target)>80)
then
CastSpellByName(''火球術(等級4)'')
SendChatMessage(''對 %T 使用火球術'', ''EMOTE'')
else
CastSpellByName(''奧術飛彈(等級2)'')
SendChatMessage(''對 %T 使用奧術飛彈'', ''EMOTE'')
這是壹個沒有延時功能的宏,帶延時功能的宏將在稍後說明,
第壹句/script 申明函數開始,這句是必須的,整個宏的中文意思是
如果妳選定的目標的生命值大於80,就執行4級火球術,並告知周圍的人妳對目標使用了這個動作,
%t就是代表目標,否則就執行2級飛彈,告知周圍的人妳對目標使用了這個動作。
值得註意的是比如SendChatMessage(''對 %T 使用火球術'', ''EMOTE'') 中的EMOTE 如果妳換成party就
只是隊內可見。
此例使用到的函數:
UnitHealthMax(target) 返回目標生命值
同樣此例如不要判斷就直接是
/script
CastSpellByName(''火球術(等級4)'')
SendChatMessage(''對 %T 使用火球術'', ''EMOTE'')
註意本文註重介紹思路!
下面是壹些常用的宏
MoveBackwardStart 向後移動,用時寫成 MoveBackwardStart() 註意每句後面的;號並不是必須的,主要是習慣。
MoveBackwardStop 停止後退
StrafeLeftStart 向左移動
StrafeLeftStop 停止左移
StrafeRightStart 向右移動
StrafeRightStop 停止右移
ToggleAutoRun 向正面跑
TurnLeftStart 向左轉
TurnLeftStop 停止左轉
TurnRightStart 向右轉
TurnRightStop 停止右轉
jump() 跳