魔獸世界宏命令完全教程_第1頁(yè)
魔獸世界宏命令完全教程_第2頁(yè)
魔獸世界宏命令完全教程_第3頁(yè)
魔獸世界宏命令完全教程_第4頁(yè)
魔獸世界宏命令完全教程_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

考格威爾(Cogwheel's)宏命令完全指南Cogwheel著WOWWiki共享維護(hù)Subelf譯版權(quán)全部請(qǐng)勿用于商業(yè)用途TOC\o"1-4"\h\z\u考格威爾(Cogwheel's)宏命令完全指南 1一、 基本宏命令 31. 什么是宏? 32. 如何寫宏? 43. 施放法術(shù) 5i.有關(guān)技能名稱和等級(jí)的闡明 64. 使用物品或者飾品 7i./use<裝備欄> 7ii./use<背包><欄> 85. 集成多個(gè)動(dòng)作 9二、 命令條件語(yǔ) 121. 什么是命令條件語(yǔ)? 122. 能夠使用條件語(yǔ)的命令 123. [target=]條件語(yǔ) 164. 語(yǔ)法 16i.條件語(yǔ)語(yǔ)法介紹 17ii.條件語(yǔ)法 18iii.完整的EBNF語(yǔ)法 20iv.參數(shù)為空 20v.條件為空 21vi.[target=]條件語(yǔ)與命令參數(shù) 225. 命令條件語(yǔ) 23i.總表 23ii.敵/友(help/harm) 25iii.存在(exists) 25iv.死亡(dead) 25v.姿態(tài)(stance:0/1/2/…/n) 25vi.潛行(stealth) 27vii.功效鍵狀態(tài)(modifier:shift/ctrl/alt) 27viii.功效鍵變量 28ix.點(diǎn)擊狀態(tài)(button:1/2/…/5/<虛擬按鍵號(hào)>) 28x.裝備(equipped:<物品類型>) 29xi.引導(dǎo)中(channeling:<技能名稱>) 30xii.技能條(actionbar:1/…/6) 31xiii.寵物(pet:<寵物名稱或類型>) 31xiv.戰(zhàn)斗(combat) 31xv.行動(dòng)方式、室內(nèi)外狀態(tài)(mounted,swimming,flying,indoors&outdoors) 31xvi.允許飛行(flyable) 32xvii.小隊(duì)/團(tuán)體隊(duì)友(party/raid) 32xviii.在小隊(duì)/團(tuán)體中(group:party/raid) 326. 命令條件語(yǔ)的應(yīng)用 32i.設(shè)立焦點(diǎn)(focus) 32ii.用/click進(jìn)行分支鑒定 35三、 附錄 371. 自定義圖標(biāo) 372. 宏的移植 373. 更多信息 374. 鳴謝 375. 譯者注 38

基本宏命令什么是宏?宏是由一組宏命令構(gòu)成的。下列是某些普通宏命令:/say(/s)/whisper(/w,/talk,/t)/emote(/e,/em,/me)/dance愛(ài)慕PVP的人,應(yīng)當(dāng)不會(huì)忘了這個(gè):/spit運(yùn)用宏,我們能夠把這些宏命令放到技能欄上點(diǎn)擊使用,并且能夠同時(shí)做多個(gè)動(dòng)作。寫宏的時(shí)候,每條動(dòng)作寫在一行上,就像在聊天界面中輸入的同樣。例如,讓你的角色喊一聲“Everybody,dancenow!”然后開(kāi)始跳舞的宏:/yEverybody,dancenow!/dance一種基本完整的宏命令列表能夠參考這里:《宏命令全表》,但是個(gè)別新添加的宏命令還沒(méi)有被收錄。WoWWiki有諸多有關(guān)宏的資料,特別是腳本和/run命令(背面將會(huì)提到)。注:我先在此說(shuō)一下,宏的執(zhí)行是立刻進(jìn)行的。這意味著當(dāng)你點(diǎn)擊技能欄上的一種宏時(shí),宏命令會(huì)一條接一條地執(zhí)行,執(zhí)行完后才會(huì)返回游戲控制。這將會(huì)產(chǎn)生兩個(gè)重要問(wèn)題:第一,如果寫了一種會(huì)執(zhí)行很長(zhǎng)時(shí)間的宏(如:/runfori=1,00doend),游戲會(huì)被卡死,直到它執(zhí)行結(jié)束;第二,也是更重要的一點(diǎn),那就是宏命令不可能含有延時(shí)功效。這一現(xiàn)象在我們熟悉/cast之類的命令后就能夠很清晰地感覺(jué)到。而某些提供了延時(shí)執(zhí)行命令功效的插件,只能是能執(zhí)行某些所謂的“良性命令”,如交談、表情和對(duì)于其它插件命令的調(diào)用(但是戰(zhàn)斗中更換武器是能夠進(jìn)行的)。如何寫宏?首先,打開(kāi)你的宏窗口:?jiǎn)螕糁鞑藛紊系摹昂辍卑粹o,或者在聊天界面中輸入/macro(/m)回車。在宏窗口的頂端,能夠看見(jiàn)兩個(gè)標(biāo)簽:“通用宏”和“<你的角色名>的專用宏”。通用宏被存儲(chǔ)在賬號(hào)專有的文獻(xiàn)夾中,被全部角色共享。而角色專用宏則存儲(chǔ)在角色自己的文獻(xiàn)夾下,是角色專用的(廢話……囧)。在標(biāo)簽下面是18個(gè)寄存宏的欄位。再往下是一種欄位,用于顯示現(xiàn)在選中的宏;尚有一種“修改名稱/圖標(biāo)”的按鈕,用于修改選中的宏。然后是一種用于顯示、編輯現(xiàn)在宏的文本框。最下面是三個(gè)按鈕,傻子也能看出它們是干什么的。如果要?jiǎng)?chuàng)立一種宏,首先單擊窗口下方的“新建”按鈕,這時(shí)窗口旁邊會(huì)顯示一種對(duì)話框,用于選擇圖標(biāo)和輸入宏的名稱。如果選擇了第一種圖標(biāo)(就是那個(gè)很紅很暴力的問(wèn)號(hào)),WoW會(huì)自動(dòng)根據(jù)你宏命令中涉及的技能或物品選擇圖標(biāo)。選好圖標(biāo),輸入完名稱,就能夠單擊“擬定”按鈕了。順便提幾點(diǎn):1.使用問(wèn)號(hào)圖標(biāo)的宏,能夠通過(guò)使用#show指定顯示的圖標(biāo)。2.即使能夠給不同的宏起相似的名字,但是最佳不要這樣做。由于有些插件和宏命令是通過(guò)宏名稱來(lái)調(diào)用宏的。3.在圖標(biāo)列表中能夠添加自定義的圖標(biāo)?,F(xiàn)在,你選擇的宏圖標(biāo)被顯示在欄位中了(還會(huì)顯示部分宏名稱)。同時(shí),新建的宏被選中,圖標(biāo)顯示在現(xiàn)在選中宏的欄位中:現(xiàn)在你能夠?qū)懩愕暮炅恕螕艟庉嬑谋究?,然后輸入吧。注:宏限定?55個(gè)字符,傳聞這樣做是為了后來(lái)能夠把顧客的宏上傳到服務(wù)器中。但是……現(xiàn)在能做的就是遵照這個(gè)限定,至于想要把宏移植到其它機(jī)器上使用,請(qǐng)參見(jiàn)第三部分的宏的移植。寫完宏后來(lái),只要把它的圖標(biāo)拖放到技能欄中就能夠了。當(dāng)你執(zhí)行一種宏,或者是關(guān)閉宏窗口的時(shí)候,宏都會(huì)自動(dòng)保存的?,F(xiàn)在點(diǎn)擊宏的圖標(biāo),看看效果吧!施放法術(shù)在正常游戲過(guò)程中,諸多宏命令通過(guò)聊天窗口輸入使用似乎并不好用,但是在宏中就不同了。在特定場(chǎng)合下,簡(jiǎn)簡(jiǎn)樸單的表情宏也能夠產(chǎn)生有趣的角色扮演效果哦,那么,繼續(xù)看……這個(gè):/cast,它是最常見(jiàn)的宏命令了。作用嘛,就是施放一種技能書中的技能(涉及寵物的)。最簡(jiǎn)樸的使用方法就是這樣:/cast暗言術(shù):痛把這個(gè)宏放到技能欄上點(diǎn)擊,將會(huì)對(duì)目的施放你最高級(jí)的痛。這和把技能書中的痛拖到技能欄上,然后點(diǎn)擊的效果是同樣的。我們制作的宏同樣會(huì)在技能欄顯示你的技能冷卻狀態(tài)和射程狀態(tài),點(diǎn)擊后同樣能對(duì)的的施放痛。如果宏使用了問(wèn)號(hào)圖標(biāo),那么還同樣會(huì)顯示痛原有的圖標(biāo)。那直接用技能不就行了么,何必用宏呢?繼續(xù)看,在宏中通過(guò)集成多條命令能夠產(chǎn)生什么效果吧,這才是宏的價(jià)值所在。例如說(shuō)你是個(gè)法師,想讓隊(duì)友懂得你要羊掉誰(shuí),你該怎么辦?用宏吧,一種簡(jiǎn)樸的/p命令加上一種/cast就能夠了(使用這個(gè)無(wú)恥的插件能夠達(dá)成更加好的效果:CCWarn,但是我們現(xiàn)在需要的只是這個(gè)簡(jiǎn)樸易懂的教學(xué)例子):/cast變形術(shù)/p我羊了%t!誰(shuí)打誰(shuí)扛著哈!注:由于宏的執(zhí)行是立刻進(jìn)行的,因此不管目的與否有效技能與否冷卻,宏被點(diǎn)擊時(shí)/p命令就執(zhí)行了,也就是說(shuō)這兩行命令的次序顛倒后效果是相似的。如果你想在擬定成功施放一種技能后才執(zhí)行某條命令,你能夠試試這個(gè)插件:AfterCast。AfterCast能夠設(shè)定在施放某個(gè)技能后執(zhí)行一條宏命令,固然,是在第1節(jié)末尾所提到的限制之下的。如:/aftercast/p請(qǐng)隊(duì)友點(diǎn)門,把懶豬%t揪過(guò)來(lái)!/cast召喚典禮有關(guān)技能名稱和等級(jí)的闡明/cast命令對(duì)技能名稱是十分嚴(yán)格的,文字、標(biāo)點(diǎn)、空格,一種都不能錯(cuò)。為了避免出錯(cuò),編輯宏時(shí),你能夠打開(kāi)你的技能書,按下Shift然后單擊你的技能圖標(biāo),技能名稱和等級(jí)就會(huì)被對(duì)的地輸入到你的宏編輯文本框中,如:/cast暗言術(shù):痛(等級(jí)5)如果把“(等級(jí)5)”刪掉,宏在執(zhí)行時(shí)就會(huì)自動(dòng)選擇你最高級(jí)別的技能執(zhí)行;但是在諸多場(chǎng)合下,還是需要指定級(jí)別的技能,例如術(shù)士放逐就需要根據(jù)時(shí)間來(lái)選擇技能。另外要注意,等級(jí)批示中使用的括號(hào)是英文的半角括號(hào),等級(jí)與數(shù)字間有一種半角空格。而某些技能名稱中的括號(hào),例如“精靈之火(野性)”中的括號(hào),是中文的全角括號(hào)。下列宏命令不能正常執(zhí)行:/cast精靈之火(野性)/cast精靈之火(野性)(等級(jí)1)而下列的命令是對(duì)的的:/cast精靈之火(野性)/cast精靈之火(野性)()空的括號(hào)效果和沒(méi)有括號(hào)是同樣的。由于255字符限制的存在,空間還是要節(jié)省的,因此空括號(hào)能夠刪掉了……使用物品或者飾品使用物品和飾品和施放法術(shù)是類似的。用于使用物品的命令是/use,背面只需要加上物品的名字就能夠了。例如:/use綠色機(jī)械陸行鳥另外,尚有下列其它的使用格式:/use<裝備欄>這種格式能夠使用指定裝備欄中的物品。具體使用請(qǐng)參見(jiàn)《裝備欄編號(hào)方式》。例如:/use13使用第一種飾品。/use<背包><欄>這種形式是在指定背包中擬定物品欄的,例如你總是把貓食狗糧放在行囊的第一種欄位中,那么你就能夠用這樣的宏來(lái)喂養(yǎng)寵物:/cast喂養(yǎng)寵物/use01背包的編號(hào)為0-4,次序是從右到左,即0是行囊。物品欄則是從上到下從左到右,從1開(kāi)始依次編號(hào)的(與書寫次序相似):1 2 3 45 6 7 8……或者是:1 23 4 5 67 8 9 10……如果怕把/cast和/use的使用方法混淆了,那就徹底搞混吧,由于它們其實(shí)原來(lái)就是完全同樣。/cast能夠使用物品,而/use也能夠施放技能。這一點(diǎn)在現(xiàn)在看來(lái)似乎沒(méi)有什么,但是到背面,介紹命令條件語(yǔ)和施法隊(duì)列時(shí),你會(huì)發(fā)現(xiàn)能把物品和技能混合在同一條命令中是多么爽的一件事。集成多個(gè)動(dòng)作首先,在一種宏中想一鍵釋放多個(gè)法術(shù)是不行的。大多數(shù)技能和諸多物品會(huì)觸發(fā)公共冷卻(GCD),避免你同時(shí)做太多的動(dòng)作。即使一種技能釋放失敗,如果它能夠觸發(fā)GCD,那么它也會(huì)制止后續(xù)/cast命令的執(zhí)行。這是版本之后的設(shè)定,之前可能看到這樣的宏:/cast壓制/cast斬殺/cast致死打擊/cast破甲但是現(xiàn)在,記住,這種宏已經(jīng)不能正常執(zhí)行了。如果壓制施放失敗,即使沒(méi)有觸發(fā)GCD,客戶端也不會(huì)繼續(xù)執(zhí)行后續(xù)的技能施放。但是令人欣慰的是部分技能還是能夠集成到一種宏中。任何不觸發(fā)GCD的瞬發(fā)技能背面能夠接上另一種技能(“下次近戰(zhàn)攻擊”型的技能,如英勇打擊也歸于這類)。一種技能能夠通過(guò)看闡明懂得它與否瞬發(fā),至于是它與否觸發(fā)GCD通過(guò)實(shí)驗(yàn)就能夠懂得。版本之前,在這個(gè)瞬發(fā)無(wú)GCD技能之后需要加上一種/stopcasting才能夠施放其后的技能。施放第一種技能后,游戲客戶端會(huì)認(rèn)為現(xiàn)在在施法狀態(tài),而/stopcasting就能夠解除這個(gè)狀態(tài),就能夠解決后續(xù)技能不能釋放的問(wèn)題。但是由于技能是瞬發(fā),/stopcasting事實(shí)上并不能取消技能的施放。而現(xiàn)在這里能夠不用/stopcasting了,例如:/use短暫能量護(hù)符/cast奧術(shù)強(qiáng)化100碼2.2.3i,"target"ifUnitIsUnit(u..t,t)thenSendChatMessage("Changetargets!Tryingtosheep...","WHISPER",nil,UnitName(u))endend呃……貌似看起來(lái)有些亂……但是沒(méi)措施……首先,宏是有255字符數(shù)限制的,因此經(jīng)常要用某些不美觀的方式去寫代碼。另一方面,腳本要寫在一行中。這兩個(gè)條件造成代碼的可讀性很低。如果把代碼單獨(dú)拿出來(lái)美化一下的話,應(yīng)當(dāng)是這個(gè)樣子:fori=1,GetNumRaidMembers()-1dolocalunit="raid"..iifUnitIsUnit(unit.."target","target")thenSendChatMessage("Changetargets!Tryingtosheep...","WHISPER",nil,UnitName(unit))endend

命令條件語(yǔ)什么是命令條件語(yǔ)?命令條件語(yǔ)是插入在宏命令中,使宏根據(jù)條件執(zhí)行不同功效的語(yǔ)句。舉個(gè)例子,下面這個(gè)宏的作用是,如果是友方目的就施放恢復(fù),如果是敵方目的就上痛:/cast[help]恢復(fù);[harm]暗言術(shù):痛當(dāng)這個(gè)宏執(zhí)行時(shí),首先檢查[help]條件,判斷現(xiàn)在目的與否是一種能夠接受治療/增益法術(shù)的目的。如果[help]條件成立,那么就施放恢復(fù)并執(zhí)行下一條命令,否則(即沒(méi)有目的,或目的不接受有益技能)繼續(xù)執(zhí)行下一種子句,也就是分號(hào)后[harm]那里,再判斷[harm]條件。[harm]條件和[help]條件相反,判斷目的與否接受敵對(duì)法術(shù)。同上,如果條件成立就釋放“暗言術(shù):痛”并執(zhí)行下一條命令。如果條件不成立,由于背面沒(méi)有其它子句,這條宏命令就算執(zhí)行完了,但是什么動(dòng)作都沒(méi)有做。注:如果沒(méi)有寫[harm]條件,實(shí)際運(yùn)行效果是差不多的。但是,如果你沒(méi)有目的或者現(xiàn)在目的不接受任何法術(shù),那么屏幕上將會(huì)出現(xiàn)錯(cuò)誤信息,或者對(duì)于某些技能,鼠標(biāo)將會(huì)變成選擇施放目的的狀態(tài)。能夠使用條件語(yǔ)的命令只有那些“安全化”命令能夠接受命令條件語(yǔ)。其實(shí)正是通過(guò)安全化的命令才需要條件語(yǔ)。常規(guī)命令,例如說(shuō)聊天、表情之類的,能夠通過(guò)腳原來(lái)實(shí)現(xiàn)命令條件語(yǔ)的功效。并且暴雪不想限制大家在聊天時(shí)使用分號(hào)(;)。如果/s命令能夠使用命令條件語(yǔ)的話,那么下面這個(gè)命令就會(huì)只說(shuō)hello:/sayHello;I’man00b下列是現(xiàn)在客戶端中安全化命令的列表:#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邏輯上也不算是安全化命令,由于它們的功效是能夠通過(guò)插件和腳本實(shí)現(xiàn)的。固然,如果你但愿在常規(guī)命令中使用命令條件語(yǔ),就需要安裝專門的插件。MacroTalk,這是我的一種作品,通過(guò)在非安全化命令前添加/opt,然后在/opt中解決各類條件來(lái)實(shí)現(xiàn)對(duì)不同命令的調(diào)用(固然只能是非安全化命令)。最新版的SuperMacro中應(yīng)當(dāng)也有類似的功效。[target=]條件語(yǔ)該條件語(yǔ)使得宏命令除了能夠?qū)l件進(jìn)行判斷外,還能夠設(shè)立動(dòng)作的目的。例如,下面這個(gè)宏運(yùn)行時(shí),無(wú)論現(xiàn)在目的是誰(shuí),玩家只會(huì)給自己綁繃帶:/use[target=player]厚靈紋繃帶Target條件語(yǔ)在指定動(dòng)作目的的同時(shí),也指定了進(jìn)行條件判斷的目的。下面這個(gè)垃圾宏是一種純教學(xué)例子,看我的闡明:/cast[help][target=targettarget,help][target=player]快速治療這個(gè)宏運(yùn)行的時(shí)候,首先會(huì)檢查[help]條件。如果條件為真,那么就開(kāi)始吟唱快速治療。否則就跳至第二個(gè)條件,[target=targettarget,help]。此時(shí),判斷目的和技能目的都被設(shè)定為你現(xiàn)在目的的目的,然后進(jìn)行help條件判斷。如果條件成立就對(duì)你現(xiàn)在目的的目的施放快速治療,否則再跳至第三個(gè)條件。而第三個(gè)條件總是成立的,所做的只是把你自己當(dāng)作施法目的。語(yǔ)法命令條件語(yǔ)是按什么規(guī)則生效的?恐怕要回答這個(gè)問(wèn)題很容易引發(fā)混亂。因此,趁還沒(méi)有正式開(kāi)始講,我先用某些現(xiàn)實(shí)生活的例子做類比??床欢灰o,這只是些概念,技術(shù)性的內(nèi)容背面都還會(huì)再提到的。條件語(yǔ)語(yǔ)法介紹全部的宏命令的基本工作方式是相似的:一種命令,背面帶上一種或多個(gè)參數(shù)(取決于命令的規(guī)定,有些甚至不需要任何參數(shù))??聪旅孢@些例子:/cast猛擊\___/\___/|||參數(shù)|命令/petattack\_______/\/|||參數(shù)(為空)|命令/castsequencereset=target獻(xiàn)祭,腐蝕術(shù),痛苦詛咒,生命虹吸\_________/\_______________________________________/||命令參數(shù)而命令條件語(yǔ)能夠通過(guò)對(duì)一組條件進(jìn)行的判斷來(lái)選擇命令的實(shí)際參數(shù)。首先,能夠用分號(hào)分隔出若干個(gè)“若干組條件+參數(shù)”這樣的子句,邏輯上,分號(hào)就相稱于高級(jí)語(yǔ)言中的else或是elseif。條件的組數(shù)不定,也能夠沒(méi)有,同一組條件用一種方括號(hào)括在一起。而每組條件中有能夠包含多個(gè)條件。就像這樣:/命令[一組條件][另一組條件]參數(shù)1;[又一組條件]參數(shù)2;……前面的例子已經(jīng)闡明了,宏命令的解釋過(guò)程是從左至右的。當(dāng)一組條件被鑒定成立時(shí),命令就會(huì)采用其對(duì)應(yīng)的條件。如果某一種子句中不包含條件,那么就被無(wú)條件鑒定為成立。像/castXXX這種簡(jiǎn)樸的宏命令就能夠理解為一種只有一種子句的宏,而這個(gè)子句又不包含條件。而如果一種宏的任何一組條件都不為真,那么它就完全不會(huì)執(zhí)行。條件語(yǔ)法每組條件都是由逗號(hào)分隔的某些條件語(yǔ)構(gòu)成的,各條件不分前后次序。邏輯上,[target=]總是先發(fā)生作用,然后其它的條件才進(jìn)行鑒定。逗號(hào)在這里能夠理解為“并且”,也就是說(shuō)各條件簡(jiǎn)是邏輯“與”的關(guān)系。例如[help,nodead,target=focus]的含義就是:我的焦點(diǎn)是友善的,并且是只活的。注意:條件是對(duì)大小寫敏感的,如果你把[help]寫成了[Help],宏運(yùn)行時(shí)會(huì)報(bào)錯(cuò)。條件中有組合式的使用方式,例如nodead,同樣對(duì)于help,你能夠用nohelp表達(dá)相反的條件。但是nohelp不等于harm:首先,help和harm都規(guī)定目的存在才有可能成立;另一方面,有些目的,例如中立陣營(yíng)NPC、非戰(zhàn)斗寵物或者護(hù)送任務(wù)NPC等,既不算help,也不算harm。尚有些條件能夠指定某些特定的參數(shù)。例如[stance],姿態(tài),單獨(dú)使用時(shí)表達(dá)“在任一姿態(tài)中”(顯然這對(duì)戰(zhàn)士來(lái)說(shuō)是廢話一句)。如果給它加上參數(shù),就能夠指定在某個(gè)姿態(tài)下,格式是在條件語(yǔ)后寫上冒號(hào)(:),然后背面寫上參數(shù),每個(gè)參數(shù)間用斜線(/)分隔??偠灾环N條件語(yǔ)的完整格式以下(<>表達(dá)其中的部分是可選的):[<no>condition<:parameter</parameter</parameter<…>>>>]下面舉個(gè)例子,如果在戰(zhàn)斗或防御姿態(tài)施放盾擊,否則轉(zhuǎn)入防御姿態(tài):/cast[stance:1/2]盾擊;防御姿態(tài)這個(gè)宏用偽代碼寫的話就是:IF現(xiàn)在在姿態(tài)1或姿態(tài)2THEN用盾擊ELSE切換防御姿態(tài)注意:“no”前綴是對(duì)整個(gè)條件和全部參數(shù)的修飾,即把原來(lái)的真變?yōu)榧伲僮優(yōu)檎?。例如[nostance:1/2]表達(dá)“不在姿態(tài)1也不在姿態(tài)2中”。完整的EBNF語(yǔ)法對(duì)EBNF規(guī)范很熟悉的人,以上內(nèi)容能夠概括為:command="/",command-verb,[{command-object,";"}command-object]]command-verb=?anysecurecommandword?command-object={condition}parametersparameters=?anythingwhichmaybepassedtothecommandword?condition="["condition-phrase{","condition-phrase}"]"condition-phrase=["no"],option-word,[":"option-argument{"/"option-argument}]option-argument=?anyone-wordoption,suchas'shift,'ctrl','target','1','2'?參數(shù)為空有些命令是能夠沒(méi)有參數(shù)的,這里就存在著一種陷阱。例如:/petattack[target=focus,harm];諸多初學(xué)者一看,認(rèn)為這個(gè)宏的含義應(yīng)當(dāng)就是判斷焦點(diǎn)與否為敵對(duì),如果是,就把寵物送上去咬。而事實(shí)上呢?讓我們分析一下:/petattack[target=focus,harm];\________/\______________/VVV|||||命令條件語(yǔ)1||參數(shù)2(為空)|||條件語(yǔ)2(為空)|參數(shù)1(為空)現(xiàn)在看出來(lái)了吧?由于那個(gè)分號(hào)的存在,這個(gè)語(yǔ)句事實(shí)上包含兩個(gè)子句,而一種條件語(yǔ)為空的子句是被當(dāng)作條件成立解決的,因此即使前面的條件語(yǔ)1不成立,也會(huì)執(zhí)行一種/petattack。條件為空有時(shí)我們需要在特定條件下對(duì)特定目的施放技能,并在條件不成立的狀況下按常規(guī)施放。這中效果能夠通過(guò)使用一組空條件來(lái)獲得。下面例子中的宏在執(zhí)行時(shí)會(huì)對(duì)你鼠標(biāo)指向的友方單位施放圣光閃現(xiàn)。如果鼠標(biāo)沒(méi)有指向任何單位或者指向的目的不是友善的,那么就會(huì)按常規(guī)對(duì)現(xiàn)在目的施放,或者根據(jù)設(shè)立(如自動(dòng)自我施法、自我施法功效鍵)對(duì)自己施放。/cast[target=mouseover,help][]圣光閃現(xiàn)[target=]條件語(yǔ)與命令參數(shù)諸多命令的參數(shù)是能夠直接指定目的的。例如/targetparty1就能夠把小隊(duì)中第一種隊(duì)友作為你的目的。而用/target[target=party1]的話,即使看起來(lái)別扭,但是效果也是同樣的。但是宏的設(shè)計(jì)者不但愿我們根據(jù)一種單位的狀態(tài)而對(duì)另一種單位執(zhí)行動(dòng)作,因此大多數(shù)狀況下[target=]條件和命令參數(shù)只能有一種發(fā)生作用。例如:/target[target=focus,dead]party1客戶端會(huì)把party1直接忽視掉——由于你已經(jīng)指定了[target=focus]。但是這種狀況也有例外,就是個(gè)別命令擁有一種“特殊單位”(其實(shí)也就是該命令會(huì)影響的單位標(biāo)志符)。見(jiàn)下表:命令 特殊單位/target target/focus focus/startattack target/petattack pettarget當(dāng)在[target=]中使用的是該命令的“特殊單位”時(shí),命令執(zhí)行目的不會(huì)被設(shè)立為該單位,而命令參數(shù)中指定的目的也不會(huì)被忽視。例如/focus[target=focus,dead][target=focus,noharm]target由于focus是/focus命令的特殊單位,因此/focus的目的就不會(huì)被[target=focus]設(shè)立成焦點(diǎn),而是target,即現(xiàn)在目的。如果沒(méi)有指定target,/focus就相稱于沒(méi)有參數(shù),同樣是把現(xiàn)在目的設(shè)為焦點(diǎn)。命令條件語(yǔ)下面給出一張條件總表,每一種條件在背面我都會(huì)再給出更具體的介紹。總表在對(duì)宏命令系統(tǒng)的更新中,宗旨就是把玩家從按“一鍵萬(wàn)能宏”按到手抽筋的狀態(tài)中“解脫”出來(lái)。但是有某些宏的使用方法是被官方承認(rèn)了的,它們獲得了“玻璃渣祝愿”的效果——能夠通過(guò)使用條件語(yǔ)來(lái)重現(xiàn)。下面列出宏命令系統(tǒng)中支持的全部條件語(yǔ)。如果你需要的判斷條件沒(méi)有在此列出,那么就不可能通過(guò)該條件來(lái)執(zhí)行安全化命令的動(dòng)作。這是中央的死龜腚,誰(shuí)都沒(méi)措施,但是后來(lái)也有可能會(huì)再增加某些。help 目的能夠接受增益法術(shù)harm 目的能夠受到攻擊exists 目的存在dead 目的已經(jīng)掛了stance:0/1/2../n 玩家在某姿態(tài)下stealth 玩家在潛行狀態(tài)下modifier:shift/ctrl/alt 某功效鍵被按下button:1/…/5/<虛擬按鍵號(hào)> 宏通過(guò)某鍵點(diǎn)擊執(zhí)行equipped:<裝備類型> 玩家裝備了某類型物品,參見(jiàn)《裝備類型》channeling:<法術(shù)名稱> 玩家正在引導(dǎo)某法術(shù)actionbar:1/…./6 現(xiàn)在技能欄為某動(dòng)作欄pet:<寵物名稱或類型> 玩家現(xiàn)在寵物為某寵物combat 玩家正在戰(zhàn)斗狀態(tài)mounted 玩家在騎乘狀態(tài)swimming 玩家在游泳flying 玩家在飛行狀態(tài)flyable 玩家正處在一種允許飛行的地界indoors 玩家在室內(nèi)outdoors 玩家在戶外party 目的在玩家的小隊(duì)中raid 目的在玩家的小隊(duì)或團(tuán)體中g(shù)roup:party/raid 玩家在某集體中(小隊(duì)/團(tuán)體)敵/友(help/harm)沒(méi)什么好說(shuō)的,保存空地一塊,等待補(bǔ)充。存在(exists)如果目的存在條件為真。例如[exists],如果你沒(méi)有目的,該條件就不成立。而對(duì)于[target=focus,exists],如果你設(shè)立了焦點(diǎn)目的,條件就成立。但是諸多狀況下該條件用不到,由于[help],[harm],[dead],[party]和[raid]條件成立的狀況下,[exists]條件是必然成立的。死亡(dead)如果判斷對(duì)象已經(jīng)掛了,條件就成立。姿態(tài)(stance:0/1/2/…/n)姿態(tài)是指對(duì)技能能否施放有影響的狀態(tài),例如戰(zhàn)士的姿態(tài),小德、薩滿、暗牧的形態(tài),盜賊的潛行狀態(tài)。而騎士的光環(huán)、獵人的守護(hù)都算是姿態(tài)。單獨(dú)用[stance]是指在任意一種姿態(tài)下,就相稱于[stance:1/2/…/n]這樣把全部姿態(tài)列出來(lái),對(duì)戰(zhàn)士來(lái)說(shuō)就是永遠(yuǎn)成立的。而[stance:0]就相稱于[nostance]表達(dá)不在任何形態(tài)下。而[stance:0/3]就表達(dá)在形態(tài)3下或者不在任何形態(tài)下。姿態(tài)的編號(hào)和面板上的次序是對(duì)應(yīng)的。下面給出各職業(yè)的姿態(tài)表:編號(hào) 小德 戰(zhàn)士 暗牧 盜賊 薩滿1 熊形態(tài) 戰(zhàn)斗姿態(tài) 暗影形態(tài) 潛行 幽靈狼2 海豹形態(tài) 防御姿態(tài)3 豹形態(tài)4 旅行形態(tài)5 梟獸/樹形態(tài)6 飛行形態(tài)注意:上面給出的是全表。如果少了某個(gè)姿態(tài),其下方的形態(tài)就依次上移。我承認(rèn),我這話是針對(duì)小德說(shuō)的……下面給出例子:/cancelform[nostance:0/1/3]/cast[stance:1/3]精靈之火(野性);[nostance]精靈之火如果在熊/貓形態(tài),施放精靈之火(野性);在人形態(tài),施放精靈之火;在其它形態(tài)就先退出,然后施放精靈之火(后來(lái)能夠這樣,之前該宏只能退出形態(tài))。潛行(stealth)對(duì)于盜賊來(lái)說(shuō)由于[stance]的存在反而顯得多出。這個(gè)是給暗夜、法師、貓德用的,我的意思是它能夠用來(lái)判斷影遁、隱形和貓的潛行。功效鍵狀態(tài)(modifier:shift/ctrl/alt)它是節(jié)省技能欄的好幫手,能夠讓一種宏對(duì)不同功效鍵做不同動(dòng)作,例如:/cast[modifier,help][modifier,target=targettarget,help]快速治療;[help][target=targettarget]強(qiáng)效治療術(shù)該宏會(huì)依次判斷你的目的和目的的目的與否友善,條件成立的話,如果按下了某功效鍵,施放快速治療,否則施放強(qiáng)效治療術(shù)。固然也能夠指定特定的功效鍵。[modifier:shift/ctrl]表達(dá)Shift或者Ctrl被按下;如果想表達(dá)兩個(gè)鍵同時(shí)按下則能夠這樣實(shí)現(xiàn):[modifier:shift,modifier:ctrl]。但是要注意這樣一種狀況,例如你的宏是通過(guò)A鍵執(zhí)行的,然后根據(jù)Shift來(lái)做判斷。但是你的Shift+A被設(shè)立了另外一種動(dòng)作,那么你按下Shift+A的時(shí)候,執(zhí)行的就是其對(duì)應(yīng)的動(dòng)作,而不是你的宏。另外,modifier能夠被簡(jiǎn)寫做mod以節(jié)省空間。功效鍵變量即使說(shuō)mod指定的只能是shift、ctrl或alt,但是還能夠通過(guò)某些系統(tǒng)變量來(lái)間接指定。例如SELFCAST這個(gè)系統(tǒng)變量,是指“自我施法功效鍵”,默認(rèn)值為alt,能夠通過(guò)某些插件修改,表達(dá)按下該鍵后執(zhí)行的動(dòng)作都是針對(duì)玩家本身的。下面看這個(gè)例子:/cast[modifier:SELFCAST,target=player][target=mouseover][]強(qiáng)效治療術(shù)這樣的話,不管你系統(tǒng)設(shè)立的自我施法鍵是什么,宏命令都會(huì)正常執(zhí)行。下面給出其它的某些系統(tǒng)變量,括號(hào)內(nèi)為默認(rèn)值,背面為中文含義:AUTOLOOTTOGGLE(shift) 自動(dòng)拾取鍵STICKYCAMERRA(ctrl) 鏡頭跟隨SPLITSTACK(shift) 物品堆疊分離PICKUPACTION(shift) 拖動(dòng)技能欄按鈕COMPAREITEMS(shift) 物品比較OPENALLBAGS(shift) 打開(kāi)全部背包QUESTWATCHTOGGLE(shift) 任務(wù)追蹤點(diǎn)擊狀態(tài)(button:1/2/…/5/<虛擬按鍵號(hào)>)與[modifier]類似,[botton]能夠根據(jù)不同的鼠標(biāo)點(diǎn)擊按鈕做不同動(dòng)作。1為左鍵,2為右鍵,3為中鍵,4和5則對(duì)應(yīng)五鍵鼠標(biāo)上另外兩個(gè)擴(kuò)展鍵。如果是通過(guò)鍵盤觸發(fā)宏,那么也相稱于左鍵點(diǎn)擊。例如我的坐騎宏:#show迅捷綠色機(jī)械陸行鳥/userandom[nobutton:2,flyable,nomounted]黑色獅鷲;[nomounted]黑色戰(zhàn)豹,迅捷綠色機(jī)械陸行鳥/dismount[noflying][button:2]非右鍵鍵點(diǎn)擊時(shí),如果沒(méi)在坐騎上就召喚坐騎;如果右鍵點(diǎn)擊并且不在飛行狀態(tài)則取消坐騎。而虛擬按鍵號(hào)普通能夠忽視,有些動(dòng)作條插件能夠在不同條件下向宏按鈕提供不同的虛擬按鍵號(hào),具體狀況請(qǐng)查看插件闡明,我們?cè)诖瞬蛔饔懻?。裝備(equipped:<物品類型>)[equipped]條件能夠判斷指定類型的物品與否被裝備。物品類型號(hào)能夠是裝備欄名稱,物品類別或者物品子類別。例如我根據(jù)盾牌裝備狀態(tài)判斷該用盾擊還是拳擊:#show[equipped:Shields]盾擊;拳擊/cast[equipped:Shields,stance:1/2]盾擊;[equipped:Shields]防御姿態(tài);[stance:3]拳擊;狂暴姿態(tài)運(yùn)用[equipped]這里的#show能夠根據(jù)裝備顯示不同的圖標(biāo)。下面的偽代碼用來(lái)解釋上面/cast命令的執(zhí)行過(guò)程:if裝備了盾牌and在防御姿態(tài)then/cast盾擊elseif裝備了盾牌then/cast防御姿態(tài)elseif在狂暴姿態(tài)then/cast拳擊else/cast狂暴姿態(tài)下面再給出一種變態(tài)的壓制宏作例子:/equip[noequipped:Two-HandedAxes]水晶熔鑄戰(zhàn)斧/cast[nostance:1]戰(zhàn)斗姿態(tài);[equipped:Two-HandedAxes]壓制引導(dǎo)中(channeling:<技能名稱>)在引導(dǎo)法術(shù)的狀態(tài)下,如果施放另外一種法術(shù)將會(huì)打斷施法。這個(gè)條件語(yǔ)就是用來(lái)避免這一狀況的。固然,它尚有些其它的用途,例如只打斷特定的引導(dǎo)技。只用[channeling]的話表達(dá)正在引導(dǎo)任意技能,或者背面能夠指定任意個(gè)引導(dǎo)技能的名稱表達(dá)正在引導(dǎo)其中一種。注意:引導(dǎo)和吟唱是兩碼事,[channeling]條件只對(duì)引導(dǎo)技能,如奧書飛彈、吸取生命、精神鞭笞等有用。技能條(actionbar:1/…/6)系統(tǒng)默認(rèn)的界面中有一種主技能條,能夠翻頁(yè)。而用這個(gè)條件就能夠根據(jù)現(xiàn)在技能頁(yè)作出不同反映。例如獵人能夠拿來(lái)扼守護(hù)做成姿態(tài):/swapactionbar12/cast[actionbar:1]雄鷹守護(hù);靈猴守護(hù)這樣就能夠切換1號(hào)和2號(hào)兩個(gè)技能頁(yè),換到1頁(yè)時(shí)施放雄鷹守護(hù),2頁(yè)時(shí)則施放靈猴守護(hù)。寵物(pet:<寵物名稱或類型>)對(duì)任何有寵職業(yè)來(lái)說(shuō)這個(gè)條件都很有用,它能夠根據(jù)你寵物狀態(tài)來(lái)執(zhí)行動(dòng)作,能夠根據(jù)寵物名字,也能夠是類型(例如Voidwalker,Boar,Imp,Wolf等),如果只用[pet]的話表達(dá)帶著任意寵物。例如法師能夠根據(jù)與否有水寶寶施放不同的霜星:/cast[pet]冰凍術(shù);冰霜新星戰(zhàn)斗(combat)如果在戰(zhàn)斗狀態(tài)則條件成立。行動(dòng)方式、室內(nèi)外狀態(tài)(mounted,swimming,flying,indoors&outdoors)這些都無(wú)庸贅述,要說(shuō)的就是它們都是對(duì)玩家本身狀態(tài)的判斷,而不是目的。允許飛行(flyable)用于判斷與否處在能夠使用飛行坐騎的地區(qū)。小隊(duì)/團(tuán)體隊(duì)友(party/raid)判斷目的與否是自己的小隊(duì)或團(tuán)體中的隊(duì)友。在小隊(duì)/團(tuán)體中(group:party/raid)注意和前面的區(qū)別。這個(gè)用于判斷玩家自己與否處在小隊(duì)或團(tuán)體中,并且團(tuán)體涉及小隊(duì)。這對(duì)加狀態(tài)很有用,例如:/cast[group,nomodifier]奧術(shù)光輝;[help][target=player]奧術(shù)智慧如果在隊(duì)伍中,施放奧數(shù)光輝;如果按下功效鍵或者不在隊(duì)伍中則施放奧術(shù)智慧。命令條件語(yǔ)的應(yīng)用在第一部分中提到的諸多命令,如果不配合條件語(yǔ)的使用,是沒(méi)有什么價(jià)值的。而上述內(nèi)容也只給出了一小部分的應(yīng)用示例。作為本部分的壓軸內(nèi)容,下面兩段將會(huì)把你帶入一種更高的境界。設(shè)立焦點(diǎn)(focus)focus是一種單位標(biāo)記符(參見(jiàn)《單位標(biāo)記符》),就像target、player、raidpet1target同樣。你能夠?qū)⑺O(shè)定為某一種單位,玩家或者NPC。比較簡(jiǎn)樸的設(shè)立辦法是通過(guò)按鍵設(shè)立。在按鍵設(shè)立中有兩個(gè)選項(xiàng):“焦點(diǎn)目的”和“目的焦點(diǎn)”。我不懂得這是哪個(gè)腦殘翻譯的,其實(shí)際含義分別是“以目的為焦點(diǎn)”和“以焦點(diǎn)為目的”。當(dāng)你設(shè)立了焦點(diǎn)后來(lái),就能夠用focus這個(gè)標(biāo)記符了,也能夠通過(guò)“目的焦點(diǎn)”綁定的按鍵把你設(shè)的focus作為你的現(xiàn)在目的。話說(shuō)按鍵綁定也太小兒科了,下面來(lái)看看什么是職業(yè)玩家的focus使用方法。作為一種有控制技能的專業(yè)DPS,我們最慣用的就是控場(chǎng)宏。我們能夠預(yù)先把你的“被監(jiān)護(hù)人”設(shè)為你的焦點(diǎn),然后用這種宏來(lái)調(diào)教他——而此過(guò)程中并不用切換目的:/cast[target=focus]變形術(shù)而作為一種灰常牛逼灰常嫻熟的治療,你能夠把焦點(diǎn)設(shè)為你的主坦。另外還能夠通過(guò)某些頭像增強(qiáng)插件,例如FocusFrame來(lái)觀察你焦點(diǎn)的狀態(tài)。但是職業(yè)玩家普通不用按鍵綁定設(shè)立焦點(diǎn),而是用/focus和/clearfocus宏命令來(lái)設(shè)立或去除焦點(diǎn)。/focus直接就能夠達(dá)成按鍵綁定的效果了,而通過(guò)參數(shù)指定/focus的目的更是按鍵綁定所沒(méi)有的功效:/focusparty3target上面的只但是是教學(xué)示例,事實(shí)上職業(yè)玩家是這樣用的:/focus[target=focus,noharm][target=focus,dead][modifier]/stopmacro[target=focus,noexists]/cast[target=focus]變形術(shù)第一行先判斷下列三個(gè)條件,如果滿足任意一種,就把你的現(xiàn)在目的設(shè)為焦點(diǎn)(不要忘記,focus是/focus命令的特殊單位,參見(jiàn)[target=]條件語(yǔ)與命令參數(shù)):你的現(xiàn)在焦點(diǎn)不是敵對(duì)目的(如果焦點(diǎn)不存在該條件也成立)你的焦點(diǎn)已經(jīng)死了某個(gè)功效鍵被按下了第二行判斷你的焦點(diǎn)與否存在,如果不存在就終止宏的運(yùn)行。這樣控場(chǎng)是不是很方便?我們注意到這里用了/stopmacro命令,而不是在/cast命令中對(duì)焦點(diǎn)與否存在進(jìn)行判斷。這樣的好處是我們能夠在宏的最后加上更多的內(nèi)容,例如一種小隊(duì)喊話。下面這個(gè)宏也很有用,能夠把你的目的和焦點(diǎn)交換:/cleartarget[target=target,dead]/clearfocus[target=focus,dead]/targetfocus/cleartarget[target=focus,noexists]/targetlasttarget/focustarget/targetlasttarget前

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論