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