魔獸世界宏命令完全教程
《魔獸世界宏命令完全教程》由會員分享,可在線閱讀,更多相關(guān)《魔獸世界宏命令完全教程(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
考格威爾(Cogwheels)宏命令完全指南 Cogwheel著 WOWWiki共享維護 Subelf譯 版權(quán)所有 請勿用于商業(yè)用途 一、 基本宏命令 3 1. 什么是宏? 3 2. 怎樣寫宏? 3 3. 施放法術(shù) 4 i. 關(guān)于技能名稱和等級的說明 4 4. 使用物品或者飾品 5 i. /use <裝備欄> 5 ii. /use <背包> <欄> 5 5. 集成多個動作 5 6. 選擇目標(biāo) 6 i. 其他選擇命令 6 7. 控制寵物 7 i. /petattack 7 ii. /petfollow 7 iii. /petpassive, /petdefensive 和 /petaggressive 7 iv. /petautocaston 和 /petautocastoff 7 8. 宏在動作欄的顯示控制 7 9. 其他的命令 8 i. 裝備物品 8 ii. 隊列施法或使用物品 8 iii. 隨機施法或使用物品 9 iv. 攻擊 9 v. 技能欄控制 9 vi. 移除增益效果 9 vii. 退出形態(tài) 9 viii. 中止施法 10 ix. 終止一個宏:/stopmacro 10 x. 解散坐騎 10 xi. 保存一個目標(biāo)用于后續(xù)動作 10 xii. 模擬點擊 10 10. 進階:腳本 11 i. 腳本有哪些限制? 11 ii. 什么是腳本? 11 二、 命令條件語 12 1. 什么是命令條件語? 12 2. 可以使用條件語的命令 12 3. [target=]條件語 13 4. 語法 13 i. 條件語語法簡介 14 ii. 條件語法 14 iii. 完整的EBNF語法 15 iv. 參數(shù)為空 15 v. 條件為空 15 vi. [target=]條件語與命令參數(shù) 15 5. 命令條件語 16 i. 總表 16 ii. 敵/友(help / harm) 16 iii. 存在(exists) 17 iv. 死亡(dead) 17 v. 姿態(tài)(stance:0/1/2/…/n) 17 vi. 潛行(stealth) 17 vii. 功能鍵狀態(tài)(modifier:shift/ctrl/alt) 17 viii. 功能鍵變量 18 ix. 點擊狀態(tài)(button:1/2/…/5/<虛擬按鍵號>) 18 x. 裝備(equipped:<物品類型>) 18 xi. 引導(dǎo)中(channeling:<技能名稱>) 18 xii. 技能條(actionbar:1/…/6) 19 xiii. 寵物(pet:<寵物名稱或類型>) 19 xiv. 戰(zhàn)斗(combat) 19 xv. 行動方式、室內(nèi)外狀態(tài)(mounted, swimming, flying, indoors & outdoors) 19 xvi. 允許飛行 (flyable) 19 xvii. 小隊/團隊隊友(party/raid) 19 xviii. 在小隊/團隊中(group:party/raid) 19 6. 命令條件語的應(yīng)用 19 i. 設(shè)置焦點(focus) 19 ii. 用/click進行分支判定 20 三、 附錄 22 1. 自定義圖標(biāo) 22 2. 宏的移植 22 3. 更多信息 22 4. 鳴謝 22 5. 譯者注 22 一、 基本宏命令 1. 什么是宏? 宏是由一組宏命令組成的。以下是一些普通宏命令: l /say (/s) l /whisper(/w, /talk, /t) l /emote(/e, /em, /me) l /dance l 喜愛PVP的人,應(yīng)該不會忘了這個:/spit 利用宏,我們可以把這些宏命令放到技能欄上點擊使用,而且可以同時做多個動作。寫宏的時候,每條動作寫在一行上,就像在聊天界面中輸入的一樣。比如,讓你的角色喊一聲“Everybody, dance now!”然后開始跳舞的宏: /y Everybody, dance now! /dance 一個基本完整的宏命令列表可以參考這里:《宏命令全表》,不過個別新添加的宏命令還沒有被收錄。WoWWiki有很多關(guān)于宏的資料,尤其是腳本和/run命令(后面將會提到)。 注:我先在此說一下,宏的執(zhí)行是立即進行的。這意味著當(dāng)你點擊技能欄上的一個宏時,宏命令會一條接一條地執(zhí)行,執(zhí)行完后才會返回游戲控制。這將會產(chǎn)生兩個重要問題:第一,如果寫了一個會執(zhí)行很長時間的宏(如:/run for i=1, 1000000000 do end),游戲會被卡死,直到它執(zhí)行結(jié)束;第二,也是更重要的一點,那就是宏命令不可能具有延時功能。這一現(xiàn)象在我們熟悉/cast之類的命令后就可以很清楚地感覺到。而一些提供了延時執(zhí)行命令功能的插件,只能是能執(zhí)行一些所謂的“良性命令”,如交談、表情和對于其他插件命令的調(diào)用(不過戰(zhàn)斗中更換武器是可以進行的)。 2. 怎樣寫宏? 首先,打開你的宏窗口:單擊主菜單上的“宏”按鈕,或者在聊天界面中輸入/macro(/m)回車。在宏窗口的頂端,可以看見兩個標(biāo)簽:“通用宏”和“<你的角色名>的專用宏”。通用宏被存儲在賬號專有的文件夾中,被所有角色共享。而角色專用宏則存儲在角色自己的文件夾下,是角色專用的(廢話……囧)。在標(biāo)簽下面是18個存放宏的欄位。再往下是一個欄位,用于顯示當(dāng)前選中的宏;還有一個“修改名稱/圖標(biāo)”的按鈕,用于修改選中的宏。然后是一個用于顯示、編輯當(dāng)前宏的文本框。最下面是三個按鈕,傻子也能看出它們是干什么的。 如果要創(chuàng)建一個宏,首先單擊窗口下方的“新建”按鈕,這時窗口旁邊會顯示一個對話框,用于選擇圖標(biāo)和輸入宏的名稱。如果選擇了第一個圖標(biāo)(就是那個很紅很暴力的問號),WoW會自動根據(jù)你宏命令中涉及的技能或物品選擇圖標(biāo)。選好圖標(biāo),輸入完名稱,就可以單擊“確定”按鈕了。 順便提幾點:1.使用問號圖標(biāo)的宏,可以通過使用#show指定顯示的圖標(biāo)。2.雖然可以給不同的宏起相同的名字,但是最好不要這樣做。因為有些插件和宏命令是通過宏名稱來調(diào)用宏的。3.在圖標(biāo)列表中可以添加自定義的圖標(biāo)。 現(xiàn)在,你選擇的宏圖標(biāo)被顯示在欄位中了(還會顯示部分宏名稱)。同時,新建的宏被選中,圖標(biāo)顯示在當(dāng)前選中宏的欄位中:現(xiàn)在你可以寫你的宏了。單擊編輯文本框,然后輸入吧。 注:宏限定為255個字符,傳聞這樣做是為了以后可以把用戶的宏上傳到服務(wù)器中。不過……現(xiàn)在能做的就是遵循這個限定,至于想要把宏移植到其他機器上使用,請參見第三部分的宏的移植。 寫完宏以后,只要把它的圖標(biāo)拖放到技能欄中就可以了。當(dāng)你執(zhí)行一個宏,或者是關(guān)閉宏窗口的時候,宏都會自動保存的?,F(xiàn)在點擊宏的圖標(biāo),看看效果吧! 3. 施放法術(shù) 在正常游戲過程中,很多宏命令通過聊天窗口輸入使用似乎并不好用,但是在宏中就不一樣了。在特定場合下,簡簡單單的表情宏也可以產(chǎn)生有趣的角色扮演效果哦,那么,繼續(xù)看…… 這個:/cast,它是最常見的宏命令了。作用嘛,就是施放一個技能書中的技能(包括寵物的)。最簡單的用法就是這樣: /cast 暗言術(shù):痛 把這個宏放到技能欄上點擊,將會對目標(biāo)施放你最高級的痛。這和把技能書中的痛拖到技能欄上,然后點擊的效果是一樣的。我們制作的宏同樣會在技能欄顯示你的技能冷卻狀態(tài)和射程狀態(tài),點擊后同樣能正確的施放痛。如果宏使用了問號圖標(biāo),那么還同樣會顯示痛原有的圖標(biāo)。 那直接用技能不就行了么,何必用宏呢?繼續(xù)看,在宏中通過集成多條命令可以產(chǎn)生什么效果吧,這才是宏的價值所在。比如說你是個法師,想讓隊友知道你要羊掉誰,你該怎么辦?用宏吧,一個簡單的/p命令加上一個/cast就可以了(使用這個無恥的插件可以達到更好的效果:CCWarn,不過我們現(xiàn)在需要的只是這個簡單易懂的教學(xué)例子): /cast 變形術(shù) /p 我羊了%t!誰打誰扛著哈! 注:由于宏的執(zhí)行是立即進行的,所以不管目標(biāo)是否有效技能是否冷卻,宏被點擊時/p命令就執(zhí)行了,也就是說這兩行命令的順序顛倒后效果是相同的。如果你想在確定成功施放一個技能后才執(zhí)行某條命令,你可以試試這個插件:AfterCast。AfterCast可以設(shè)定在施放某個技能后執(zhí)行一條宏命令,當(dāng)然,是在第1節(jié)末尾所提到的限制之下的。如: /aftercast /p 請隊友點門,把懶豬%t揪過來! /cast 召喚儀式 i. 關(guān)于技能名稱和等級的說明 /cast命令對技能名稱是十分嚴(yán)格的,文字、標(biāo)點、空格,一個都不能錯。為了防止出錯,編輯宏時,你可以打開你的技能書,按下Shift然后單擊你的技能圖標(biāo),技能名稱和等級就會被正確地輸入到你的宏編輯文本框中,如: /cast 暗言術(shù):痛(等級 5) 如果把“(等級5)”刪掉,宏在執(zhí)行時就會自動選擇你最高級別的技能執(zhí)行;不過在很多場合下,還是需要指定級別的技能,比如術(shù)士放逐就需要根據(jù)時間來選擇技能。另外要注意,等級指示中使用的括號是英文的半角括號,等級與數(shù)字間有一個半角空格。而一些技能名稱中的括號,比如“精靈之火(野性)”中的括號,是中文的全角括號。以下宏命令不能正常執(zhí)行: /cast 精靈之火(野性) /cast 精靈之火(野性)(等級 1) 而以下的命令是正確的: /cast 精靈之火(野性) /cast 精靈之火(野性)() 空的括號效果和沒有括號是一樣的。由于255字符限制的存在,空間還是要節(jié)省的,所以空括號可以刪掉了…… 4. 使用物品或者飾品 使用物品和飾品和施放法術(shù)是類似的。用于使用物品的命令是/use,后面只需要加上物品的名字就可以了。例如: /use 綠色機械陸行鳥 另外,還有以下其它的使用格式: i. /use <裝備欄> 這種格式可以使用指定裝備欄中的物品。具體使用請參見《裝備欄編號方式》。例如: /use 13 使用第一個飾品。 ii. /use <背包> <欄> 這種形式是在指定背包中確定物品欄的,比如你總是把貓食狗糧放在行囊的第一個欄位中,那么你就可以用這樣的宏來喂養(yǎng)寵物: /cast 喂養(yǎng)寵物 /use 0 1 背包的編號為0-4,順序是從右到左,即0是行囊。物品欄則是從上到下從左到右,從1開始依次編號的(與書寫順序相同): 1 2 3 4 5 6 7 8 …… 或者是: 1 2 3 4 5 6 7 8 9 10 …… 如果怕把/cast和/use的用法混淆了,那就徹底搞混吧,因為它們其實本來就是完全一樣。/cast可以使用物品,而/use也可以施放技能。這一點在目前看來似乎沒有什么,但是到后面,介紹命令條件語和施法隊列時,你會發(fā)現(xiàn)能把物品和技能混合在同一條命令中是多么爽的一件事。 5. 集成多個動作 首先,在一個宏中想一鍵釋放多個法術(shù)是不行的。大多數(shù)技能和很多物品會觸發(fā)公共冷卻(GCD),防止你同時做太多的動作。即使一個技能釋放失敗,如果它可以觸發(fā)GCD,那么它也會阻止后續(xù)/cast命令的執(zhí)行。這是2.0版本之后的設(shè)定,之前可能看到這樣的宏: /cast 壓制 /cast 斬殺 /cast 致死打擊 /cast 破甲 但是現(xiàn)在,記住,這種宏已經(jīng)不能正常執(zhí)行了。如果壓制施放失敗,雖然沒有觸發(fā)GCD,客戶端也不會繼續(xù)執(zhí)行后續(xù)的技能施放。不過令人欣慰的是部分技能還是可以集成到一個宏中。任何不觸發(fā)GCD的瞬發(fā)技能后面可以接上另一個技能(“下次近戰(zhàn)攻擊”型的技能,如英勇打擊也歸于此類)。一個技能可以通過看說明知道它是否瞬發(fā),至于是它是否觸發(fā)GCD通過實驗就可以知道。 2.3版本之前,在這個瞬發(fā)無GCD技能之后需要加上一個/stopcasting才可以施放其后的技能。施放第一個技能后,游戲客戶端會認為當(dāng)前在施法狀態(tài),而/stopcasting就可以解除這個狀態(tài),就可以解決后續(xù)技能不能釋放的問題。但是由于技能是瞬發(fā),/stopcasting實際上并不能取消技能的施放。 而現(xiàn)在這里可以不用/stopcasting了,例如: /use 短暫能量護符 /cast 奧術(shù)強化 //stopcasting /cast 氣定神閑 //stopcasting /cast 炎爆術(shù) 6. 選擇目標(biāo) 選擇目標(biāo)是宏的另一個主要作用。此類功能可以用專門的目標(biāo)選擇命令實現(xiàn),改變當(dāng)前的目標(biāo);也可以在一些命令中用[target=]命令條件語實現(xiàn),臨時指定施法或使用物品的目標(biāo),而不改變當(dāng)前目標(biāo)。命令條件語在第二部分將會講到到?,F(xiàn)在我先介紹目標(biāo)選擇命令。 最基本的命令是/target,用法如下: /target Cogwheel /target的選擇是經(jīng)過最佳相近匹配的,也就是說,如果我正站在你附近(并且附近沒有誰叫Cog的),你執(zhí)行/target Cog,我就會變成你的當(dāng)前目標(biāo)。至于這種機制是利是弊……那就取決于實際情況了,因為這個東東貌似不穩(wěn)定,有時會得到莫名其妙的結(jié)果。比如下面這個宏就可能不是很好用: /target 黑翼法師 /cast 痛苦詛咒 如果附近沒有黑翼法師呢?或許結(jié)果就是:選中了團里的某個人,因為他的名字在某種意義上比較相近。雖然你的詛咒不會真對他們放出來,但還是夠囧的。另外一個問題是,它可能會選擇你身后一個離你100碼的單位——根本不是你想選中的那一個……不過在2.3版之后,增加了一個/targetexact命令,第一個問題得到解決了。 除了用人名進行選擇之外,還可以通過單位標(biāo)識符進行選擇。單位標(biāo)識符(Unit ID)是用于標(biāo)識特定單位的字符串。比如你的當(dāng)前的目標(biāo)就可以用“target”來表示,而你自己對應(yīng)的標(biāo)識符是“player”,如果你有寵物,那么它的標(biāo)識符是“pet”。另外,通過在一個正確的標(biāo)識符后加上target,就可以獲取他的目標(biāo)。如此變態(tài)也可以: /target targettargettargettargettargettarget 這里是一個可用ID的全表:《單位標(biāo)識符》。 i. 其他選擇命令 以下是其他的目標(biāo)選擇命令: l /assist 不加任何其他參數(shù)時效果是選擇你目標(biāo)的目標(biāo),如果在其后加上人物名稱,那么就會選擇對應(yīng)人物的當(dāng)前目標(biāo)。例如: /assist Cogwheel 另外,在客戶端的界面選項中有一個選項,可以設(shè)置用/assist選中一個敵對目標(biāo)時是否自動進行攻擊。 l /cleartarget 清除當(dāng)前目標(biāo)。 l /targetexact 準(zhǔn)確選擇,如果附近沒有單位的名字和給出的參數(shù)完全匹配,就不會切換目標(biāo)。 l /targetlasttarget, /targetlastfriend 和 /targetlastenemy 顧名思義,分別用來選擇上一個目標(biāo)、上一個友方目標(biāo)和上一個敵對目標(biāo)。如果你之前沒有過任何目標(biāo),那么這些命令不會產(chǎn)生任何影響。 l /targetenemy 和 /targetfriend 選擇敵方目標(biāo)和選擇友方目標(biāo)。這兩條命令是按一定順序循環(huán)選擇指定類型的目標(biāo)的,和使用Tab鍵的效果類似。如果在命令后加上一個1作為參數(shù),那么就會按循環(huán)的反方向進行選擇。例如: /targetenemy 1 效果就和按下Shift+Tab鍵一樣。 注:這兩個宏命令每個宏中只能用一次。 l /targetparty 和 /targetraid 按距離循環(huán)選擇你附近的小隊或團隊隊友,與/targetenemy類似,也可以用1作為參數(shù)改變選擇的循環(huán)方向。 7. 控制寵物 之前在講施放技能的時候提到過,使用/cast命令可以施放寵物的技能。玻璃渣把法師的水寶寶的霜星起名叫“冰凍術(shù)”就是為了避免和法師自身的“冰霜新星”技能沖突,從而導(dǎo)致不能在宏內(nèi)使用。但是有寵物的職業(yè)會發(fā)現(xiàn),如果宏只能施放技能的話,甚至還不如寵物技能欄的功能。別急,燃燒的遠征中,新增了以下這些宏指令: i. /petattack 讓你的寵物去攻擊你的當(dāng)前目標(biāo)。當(dāng)然,在命令后加參數(shù)可以指定攻擊的對象。 ii. /petfollow 寵物切換到跟隨狀態(tài),同時取消攻擊。 iii. /petpassive, /petdefensive 和 /petaggressive 寵物切換被動、防御和主動攻擊狀態(tài)。同寵物技能欄上的最后3個按鈕。 iv. /petautocaston 和 /petautocastoff 打開/關(guān)閉寵物技能的自動施放。例如: /petautocaston 折磨 /petautocastoff 受難 不過美中不足,沒有直接切換自動施放狀態(tài)的宏命令,我將在后面“模擬點擊”部分提到一個解決方法。 8. 宏在動作欄的顯示控制 如果一個宏使用問號圖標(biāo),魔獸世界客戶端會默認把宏內(nèi)容中的第一個技能或物品的圖標(biāo)、冷卻狀態(tài)等信息顯示在技能欄上。比如前面所講的這個例子: /use 短暫能量護符 /cast 奧術(shù)強化 /cast 氣定神閑 /cast 炎爆術(shù) 客戶端會把奧術(shù)強化的狀態(tài)信息作為宏的狀態(tài)顯示。但是這恐怕不是我們所希望的,因為這個宏的目的是炎爆,前幾行的奧強氣定都只是為了最后把一個大大的臉盆給丟出來。如果在宏的前面加上這樣一行,炎爆術(shù)就會被當(dāng)作宏的默認技能: #show 炎爆術(shù) 如果使用了問號圖標(biāo)的話,宏還會直接顯示炎爆的圖標(biāo)。#show的參數(shù)機制和/cast類似,可以使用技能名、物品名、物品編號(如item:12345)、裝備欄或者背包+物品欄編號。 和#item類似的還有#showtooltip。正常情況下,鼠標(biāo)指向宏的時候,提示信息顯示的是宏的名字。而這在絕大多數(shù)情況下是很不好用的(除非你用了TheoryCraft之類的插件可以顯示詳細的技能信息)。而用#showtooltip就可以指定宏在鼠標(biāo)指向時顯示的信息,用法同#show。另外,如果使用了#showtooltip的話,就沒必要再用#show了。 如果客戶端自動選擇的技能符合你的要求,那么可以只用#showtooltip而不加參數(shù)來顯示該技能的說明,這樣可以節(jié)約空間。 請注意:#show和#showtooltip與/開頭的宏命令不同,是大小寫敏感的,也就是說只能用小寫字母。 9. 其他的命令 現(xiàn)在有了足夠的基礎(chǔ),以下這些命令我就只簡要地講解一下了。有些命令看似沒啥用,但如果配合將在第二部分介紹的命令條件語,它將會產(chǎn)生驚人的效果。 i. 裝備物品 用于裝備物品的命令有兩個:/equip和/equipslot。/equip的參數(shù)為物品名稱,效果是把對應(yīng)物品裝備到默認的裝備欄中,類似在背包中右鍵單擊物品(如:一件單手武器就會被裝備到主手上)。而/equipslot的參數(shù)為裝備欄編號和物品名稱,效果是把物品裝備到指定欄位中去。例: 裝備武器: /equip 虛空角斧 把飾品裝備在第二個飾品欄中: /equip 14 棍子上的胡蘿卜 注意:即使是在戰(zhàn)斗中,插件頁是可以直接使用裝備命令的。因此在AfterCast和Chronos中可以使用裝備命令。如果插件內(nèi)部會檢查命令是否經(jīng)過安全化可能就不那么好用了,因為它屬于“安全化”指令——但是事實上它并沒有受到安全限制。 ii. 隊列施法或使用物品 很多時候我們需要經(jīng)常按一定順序使用固定的一些技能或物品。這樣的操作是可用/castsequence宏命令進行傻瓜化的。/castsequence命令用法是在后面寫上一些技能或物品的名稱,之間用英文的半角逗號分隔,和/use、/cast類似。技能名、物品名、物品代號、裝備欄代號和背包位代號都可以混合使用。每次執(zhí)行宏,就使用當(dāng)前的技能或物品(從第一個開始),如果成功,隊列的當(dāng)前位置就被移至下一個技能或物品。也就是說需要反復(fù)執(zhí)行宏來按順序使用這些技能或物品。當(dāng)最后一個技能/物品成功使用后,這個隊列就被重置到開頭。比如: /castesquence 獻祭, 腐蝕術(shù), 痛苦詛咒, 生命通道 這是痛苦術(shù)士起手的招牌動作。注意,如果獻祭沒有施放成功(比如魔法不足,超出范圍,被沉默了等等),這個隊列不會繼續(xù)執(zhí)行,直到獻祭放出去。所以下面這個宏是屁用沒有的: /castesquence 壓制, 斬殺, 致死打擊 在技能列表之前,可以插入一個條件語,用于另外指定一些隊列的重置條件。語法是: reset=n/target/combat/shift/alt/ctrl 以上的這些條件都可以任意共存。其中,n是數(shù)字,表示從某次執(zhí)行宏開始,經(jīng)過n秒后沒有再次執(zhí)行這個宏,那么隊列就被重置到開頭。這一點很重要,因為這意味著無法利用reset條件語來精確計時(比如讓某技能一冷卻就用)。target條件表示當(dāng)目標(biāo)切換時,宏隊列重置;combat條件表示脫離戰(zhàn)斗后重置;shift,alt和ctrl表示當(dāng)執(zhí)行宏時指定的鍵為按下狀態(tài)時重置。例如: /castsequence reset=10/shift 第一個技能, 其他技能, 一些物品 如果這個宏圖標(biāo)使用的是問號,就會自動顯示下一個要施放技能的圖標(biāo)。但如果/castsequence前面還有其他/cast和/uses命令,這個功能就沒有了,而且玻璃渣也沒有提供什么命令來解決這個問題。 iii. 隨機施法或使用物品 最常見的例子就是希望隨機召喚一個坐騎來裝B,使用/castrandom或者/userandom宏命令很容易實現(xiàn)這個功能。用法和/castsequence類似,如: /castrandom 迅捷綠色機械路行鳥, 軍用黑色機械路行鳥, 召喚恐懼戰(zhàn)馬 iv. 攻擊 以前的宏是/attack,后面可以寫上單位名作為攻擊對象,無參數(shù)則以當(dāng)前目標(biāo)為對象。效果是切換當(dāng)前的攻擊狀態(tài)(攻擊/停止攻擊)。但是這個宏從2.2.3開始就被廢除了,只能使用/startattack和/stopattack了。分別用來攻擊和停止攻擊。如: /startattack Cogwheel v. 技能欄控制 有兩個控制技能欄翻頁的宏:/changeactionbar和/swapactionbar。前者接受一個數(shù)字作為參數(shù),表示要切換到的技能欄頁碼。常見的是獵人用來轉(zhuǎn)換近戰(zhàn)遠程攻擊狀態(tài): /cast 雄鷹守護 /changeactionbar 1 和 /cast 靈猴守護 /changeactionbar 2 /swapactionbar命令后面要寫兩個頁碼,表示來回切換指定的兩個技能頁。如果當(dāng)前技能頁不是兩個頁碼中的一個,當(dāng)前頁就會被設(shè)置為第一個頁碼指定的技能欄頁。 /swapactionbar 1 2 vi. 移除增益效果 /cancelaura命令可以移除自己不想要的增益效果(BUFF),比如主坦需要移除身上的拯救祝福: /cancelaura 拯救祝福 vii. 退出形態(tài) 除了戰(zhàn)士,任何有“形態(tài)”概念的職業(yè)(德魯伊、暗牧)都可以用/cancelform來退出當(dāng)前形態(tài): /cancelform /use 超強治療藥水 2.3版本之前,上面這個宏由于形態(tài)取消有一個延遲,為了達到效果需要執(zhí)行兩次。不過2.3版本后,小德可以只點一次就產(chǎn)生效果了。 viii. 中止施法 前面簡單提到了/stopcasting命令,不過它存在的目的顧名思義,是用來打斷當(dāng)前施法的。這對處理緊急情況很有用,比如我的術(shù)士: /stopcasting /cast 暗影灼燒 ix. 終止一個宏:/stopmacro /stopmacro如果不配合條件語來使用是沒有什么意義的。它一般用來實現(xiàn)條件執(zhí)行的功能:如果滿足了某些條件,則中止宏繼續(xù)運行。具體用例請參見設(shè)置焦點(focus)。 x. 解散坐騎 /dismount 不用再說什么了吧? xi. 保存一個目標(biāo)用于后續(xù)動作 /focus宏可以把一個目標(biāo)設(shè)為焦點(focus),然后可以在其他指令中使用這個focus。比如你的老大指定了一個目標(biāo)讓你羊著。你要做的就是選擇它,然后輸入/focus。然后你就可以用這個宏羊著它了,而不用管你當(dāng)前目標(biāo)變成了誰: /cast [target=focus] 變形術(shù) 注意,focus的作用可不僅僅如此,具體還是請參見設(shè)置焦點(focus)一節(jié)的內(nèi)容,那里有更深入的剖析。 xii. 模擬點擊 /click命令的參數(shù)為一個按鈕(本質(zhì)上來說是一個窗口)的名稱,執(zhí)行的效果就相當(dāng)于用鼠標(biāo)點擊了這個按鈕。默認情況下,它的效果相當(dāng)于左鍵單擊,也可以根據(jù)設(shè)置成其他按鍵點擊的效果。至于按鈕名稱可以通過一下方式獲知: l 使用插件。某些插件,比如MoveAnything,提供了查看窗口名稱的功能。 l 查看界面的源代碼。這一般是非常嫻熟非常牛B的插件制作者才能做到的。 l 用這樣一個宏獲取當(dāng)前鼠標(biāo)所指的窗口名稱: /run local f=GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end /click可以用于很多用途。比如利用它可以一次執(zhí)行很多宏。還有,假設(shè)你有一個宏太長了,遠遠超過255字符限制。你就可以把后面寫不下的代碼寫到另一個宏中,而前面那個宏的末尾寫上: /click MultiBarRightButton1 再把第二個宏拖到那個叫MultiBarRightButton1的欄位中。這樣執(zhí)行第一個宏就相當(dāng)于執(zhí)行了所有的宏命令。 另外,這個宏還可以用來做一些其他命令沒法辦到的事。比如前面提到的切換寵物技能自動施放狀態(tài)的功能,就可以這樣解決: /click PetAttackButton5 RightButton 這個命令的涵義就是右鍵單擊一下寵物欄上第五個按鈕。 用于指定按鍵的參數(shù)還可以是LeftButton(左鍵,默認),MiddleButton(中鍵),Button4(4號鍵)和Button5(5號鍵,職業(yè)玩家的鼠標(biāo)……)。在掌握這些之后,第二部分結(jié)尾處還會介紹更復(fù)雜的,利用/click產(chǎn)生分支判定效果的例子。 10. 進階:腳本 i. 腳本有哪些限制? 腳本是一個強大的工具,它按照LUA語言的語法執(zhí)行,利用客戶端提供的接口可以產(chǎn)生強大的智能。所以玻璃渣就給它加了限制,防止它被濫用而影響游戲平衡性。我之所以要先講腳本的限制,為的是讓大家對它別抱太大希望。雖然腳本還是很有用,但是不能用來施法、使用物品、改換技能欄或改變當(dāng)前目標(biāo)。這些功能只能依靠那些“安全化”的命令來實現(xiàn)。 ii. 什么是腳本? 魔獸世界客戶端的用戶界面是可以通過LUA腳本控制的。通過/run和/script命令就可以執(zhí)行腳本(我個人推薦使用/run,節(jié)省字符數(shù)……)。在命令后面書寫腳本內(nèi)容,中間不能換行。不過一個宏中可以包含多個/run命令。 過多關(guān)于LUA語言和編程的內(nèi)容本文就不再贅述。如果你有一定的編程經(jīng)驗,那么就可以訪問lua.org學(xué)習(xí)LUA語言。如果沒有什么基礎(chǔ),那么請先看《編程入門》了解一些基本概念。 玻璃渣提供了很多API函數(shù)(Application Programming Interface),可以在LUA腳本中調(diào)用來實現(xiàn)對界面的控制。關(guān)于API函數(shù)和相關(guān)的內(nèi)容可以看看這篇文章:《界面DIY》(如果你打算花時間好好研究魔獸世界插件的話,WoWWiki是最優(yōu)選擇)。我不可能把所有關(guān)于用戶界面的細節(jié)都講到,因此我只打算用我最常用的一個宏做例子,簡單地講一下。想了解得可以看上面給出的鏈接,或者這里:《Mod Author Resources sticky》。 下面這個宏是我給出的例子,它會向所有和你目標(biāo)相同的人發(fā)送悄悄話,通知他們改變目標(biāo)(我的插件CCWarn也是就是基于這段代碼的)。這樣就可以防止已被羊的人受到攻擊。 /cast 變形術(shù) /run for i=1,GetNumRaidMembers()-1 do local u,t="raid"..i,"target"if UnitIsUnit(u..t,t)then SendChatMessage("Change targets! Trying to sheep...","WHISPER",nil,UnitName(u))end end 呃……貌似看起來有些亂……不過沒辦法……首先,宏是有255字符數(shù)限制的,所以常常要用一些不美觀的方式去寫代碼。其次,腳本要寫在一行中。這兩個條件導(dǎo)致代碼的可讀性很低。如果把代碼單獨拿出來美化一下的話,應(yīng)該是這個樣子: for i = 1, GetNumRaidMembers() - 1 do local unit = "raid"..i if UnitIsUnit(unit.."target", "target") then SendChatMessage("Change targets! Trying to sheep...", "WHISPER", nil, UnitName(unit)) end end 二、 命令條件語 1. 什么是命令條件語? 命令條件語是插入在宏命令中,使宏根據(jù)條件執(zhí)行不同功能的語句。舉個例子,下面這個宏的作用是,如果是友方目標(biāo)就施放恢復(fù),如果是敵方目標(biāo)就上痛: /cast [help] 恢復(fù); [harm] 暗言術(shù):痛 當(dāng)這個宏執(zhí)行時,首先檢查[help]條件,判斷當(dāng)前目標(biāo)是否是一個可以接受治療/增益法術(shù)的目標(biāo)。如果[help]條件成立,那么就施放恢復(fù)并執(zhí)行下一條命令,否則(即沒有目標(biāo),或目標(biāo)不接受有益技能)繼續(xù)執(zhí)行下一個子句,也就是分號后[harm]那里,再判斷[harm]條件。[harm]條件和[help]條件相反,判斷目標(biāo)是否接受敵對法術(shù)。同上,如果條件成立就釋放“暗言術(shù):痛”并執(zhí)行下一條命令。如果條件不成立,由于后面沒有其他子句,這條宏命令就算執(zhí)行完了,但是什么動作都沒有做。 注:如果沒有寫[harm]條件,實際運行效果是差不多的。不過,如果你沒有目標(biāo)或者當(dāng)前目標(biāo)不接受任何法術(shù),那么屏幕上將會出現(xiàn)錯誤信息,或者對于某些技能,鼠標(biāo)將會變成選擇施放目標(biāo)的狀態(tài)。 2. 可以使用條件語的命令 只有那些“安全化”命令可以接受命令條件語。其實正是經(jīng)過安全化的命令才需要條件語。常規(guī)命令,比如說聊天、表情之類的,可以通過腳本來實現(xiàn)命令條件語的功能。而且暴雪不想限制大家在聊天時使用分號(;)。如果/s命令可以使用命令條件語的話,那么下面這個命令就會只說hello: /say Hello; I’m a n00b 以下是當(dāng)前客戶端中安全化命令的列表: #show1 #showtooltip1 /assist /cancelaura /cancelform /cast /castrandom /castswquence /changeactionbar /clearfocus /cleartarget /click /dismount /equip2 /equipslot2 /focus /petagressive /petattack /petautocastoff /petautocaston /petdefensive /petfollow /petpassive /petstay /startattack /stopattack /stopcasting /stopmacro /swapactionbar /target /targetenemy /targetfriend /targetlasttarget /targetparty /targetraid /use /userandom 注1:#show和#showtooltip不是真正意義上的安全化命令,但是它和/use以及/cast的內(nèi)部機制相仿。 注2:/equip和/equipslot邏輯上也不算是安全化命令,因為它們的功能是可以通過插件和腳本實現(xiàn)的。 當(dāng)然,如果你希望在常規(guī)命令中使用命令條件語,就需要安裝專門的插件。MacroTalk,這是我的一個作品,通過在非安全化命令前添加/opt,然后在/opt中處理各類條件來實現(xiàn)對不同命令的調(diào)用(當(dāng)然只能是非安全化命令)。最新版的SuperMacro中應(yīng)該也有類似的功能。 3. [target=]條件語 該條件語使得宏命令除了可以對條件進行判斷外,還可以設(shè)置動作的目標(biāo)。例如,下面這個宏運行時,無論當(dāng)前目標(biāo)是誰,玩家只會給自己綁繃帶: /use [target=player] 厚靈紋繃帶 Target條件語在指定動作目標(biāo)的同時,也指定了進行條件判斷的目標(biāo)。下面這個垃圾宏是一個純教學(xué)例子,看我的說明: /cast [help] [target=targettarget, help] [target=player] 快速治療 這個宏運行的時候,首先會檢查[help]條件。如果條件為真,那么就開始吟唱快速治療。否則就跳至第二個條件,[target=targettarget, help]。此時,判斷目標(biāo)和技能目標(biāo)都被設(shè)定為你當(dāng)前目標(biāo)的目標(biāo),然后進行help條件判斷。如果條件成立就對你當(dāng)前目標(biāo)的目標(biāo)施放快速治療,否則再跳至第三個條件。而第三個條件總是成立的,所做的只是把你自己當(dāng)作施法目標(biāo)。 4. 語法 命令條件語是按什么規(guī)則生效的?恐怕要回答這個問題很容易引起混亂。所以,趁還沒有正式開始講,我先用一些現(xiàn)實生活的例子做類比??床欢灰o,這只是些概念,技術(shù)性的內(nèi)容后面都還會再提到的。 i. 條件語語法簡介 所有的宏命令的基本工作方式是相同的:一個命令,后面帶上一個或多個參數(shù)(取決于命令的要求,有些甚至不需要任何參數(shù))??聪旅孢@些例子: /cast 猛擊 \___/ \___/ | | | 參數(shù) | 命令 /petattack \_______/ \/ | | | 參數(shù)(為空) | 命令 /castsequence reset=target 獻祭, 腐蝕術(shù), 痛苦詛咒, 生命虹吸 \_________/ \_______________________________________/ | | 命令 參數(shù) 而命令條件語可以通過對一組條件進行的判斷來選擇命令的實際參數(shù)。首先,可以用分號分隔出若干個“若干組條件+參數(shù)”這樣的子句,邏輯上,分號就相當(dāng)于高級語言中的else或是elseif。條件的組數(shù)不定,也可以沒有,同一組條件用一個方括號括在一起。而每組條件中有可以包含多個條件。就像這樣: /命令 [一組條件] [另一組條件] 參數(shù)1; [又一組條件] 參數(shù)2; …… 前面的例子已經(jīng)說明了,宏命令的解釋過程是從左至右的。當(dāng)一組條件被判定成立時,命令就會采用其對應(yīng)的條件。如果某一個子句中不包含條件,那么就被無條件判定為成立。像/cast XXX這種簡單的宏命令就可以理解為一個只有一個子句的宏,而這個子句又不包含條件。而如果一個宏的任何一組條件都不為真,那么它就完全不會執(zhí)行。 ii. 條件語法 每組條件都是由逗號分隔的一些條件語組成的,各條件不分前后次序。邏輯上,[target=]總是先發(fā)生作用,然后其他的條件才進行判定。逗號在這里可以理解為“并且”,也就是說各條件簡是邏輯“與”的關(guān)系。比如[help, nodead, target=focus]的含義就是:我的焦點是友善的,并且是只活的。 注意:條件是對大小寫敏感的,如果你把[help]寫成了[Help],宏運行時會報錯。 條件中有組合式的使用方式,比如nodead,同樣對于help,你可以用nohelp表示相反的條件。但是nohelp不等于harm:首先,help和harm都要求目標(biāo)存在才有可能成立;其次,有些目標(biāo),比如中立陣營NPC、非戰(zhàn)斗寵物或者護送任務(wù)NPC等,既不算help,也不算harm。 還有些條件可以指定一些特定的參數(shù)。比如[stance],姿態(tài),單獨使用時表示“在任一姿態(tài)中”(顯然這對戰(zhàn)士來說是廢話一句)。如果給它加上參數(shù),就可以指定在某個姿態(tài)下,格式是在條件語后寫上冒號(:),然后后面寫上參數(shù),每個參數(shù)間用斜線(/)分隔。綜上所述,一個條件語的完整格式如下(<>表示其中的部分是可選的): [- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 魔獸世界 命令 完全 教程
鏈接地址:http://m.jqnhouse.com/p-10048103.html