當前位置:973游戲網(wǎng) > 手游頻道 >  游戲雜談 > 魔獸世界7.1常用宏一覽 職業(yè)宏傻瓜教程
魔獸世界7.1常用宏一覽 職業(yè)宏傻瓜教程

更新時間:2016-11-17 14:16

作者:匿名

魔獸世界7.1宏命令怎么寫用做?宏命令寫用做設置教程大全魔獸世界宏命令教程大全。一起來看看如何寫一個適合自己的宏吧~


術語

判斷表達式,判斷式(Option Set):由若干判斷項組成,封閉在方括號[]中的真值表達式。繼承自安全模板,能在受保護環(huán)境下允許運作的唯一判斷形式。

一,寫宏的基本法則

宏最主要的應用是帶有判斷的施法,這也是下文主要應用的模型。一個典型的這種宏可以抽象成以下形式:

Code(c):

/cast [表達式1-1][表達式1-2]技能1;[表達式2]技能2;技能3

--宏的模型

[項1,項2,項3, ...]

--表達式的模型

--注:表達式中定義單位target=或@不是一種判斷條件,但它重新指定了后續(xù)所有涉及目標的判斷和最終技能施放的對象。比如指定了@mouseover后,后續(xù)的help/exists/dead之類的判斷都會基于鼠標懸停的單位。

在這個模型下,討論:

1. 邏輯及判斷順序(法則一,!極為重要)

涉及判斷就有真值,但是不要被這個帶有濃重編程和數(shù)學色彩的詞嚇倒。概括來說就兩句話:

<1>方括號內(nèi)各分項之間是AND的關系,用逗號間隔,只有各個分項都為真整個方括號(表達式)才為真。方括號內(nèi)各項之間沒有順序要求。

<2>各個方括號之間是OR的關系,判斷順序是從左至右,遇到第一個方括號為真時即結(jié)束判斷,而忽略其后的所有項目。

大部分宏出錯/不能用/判斷混亂的原因就是在此。寫宏的時候必須把條件強的(或者說優(yōu)先級高的)判斷放到前面,弱的(泛用型的)判斷放到后面。舉個例子,昨天回答了問答區(qū)一個人的提問,他的宏

Code(c):

1:#showtooltip

2:/cast [nomod,spec:2]煉獄沖擊;[nomod,target=mouseover,exists,harm,spec:2]煉獄沖擊

無法對鼠標懸停目標放。究其原因就是,[nomod,spec:2]這一個表達式弱于后者[nomod,target=mouseover,exists,harm,spec:2],后者不僅需要無修飾鍵和第二專精,同時需要存在一個可攻擊的鼠標懸停目標才會為真,導致了后者為真時前者一定為真。按照上文的<2>,從左至右的順序?qū)⒂肋h是前者表達式率先為真,因而無法對懸停目標施放煉獄沖擊。修改的方法很簡單,把兩個判斷調(diào)換位置即可:

Code(c):

1:#showtooltip

2:/cast [nomod,target=mouseover,exists,harm,spec:2]煉獄沖擊;[nomod,spec:2]煉獄沖擊

3:--修改后的宏

當然我在回答中還給出了優(yōu)化方案,后文會詳細介紹如何優(yōu)化。

2. 技能整合(法則二)

對于把多個技能整合進一個/cast命令里,在不同的條件下自動判斷施放不同的技能,只有一條格式法則:不同技能之間用分號;間隔。具體可以參照本章開頭提出的宏模型。

要注意,一個/cast任何情況下至多只能施放一個技能,而且各個方括號之間仍舊遵循上文提出的<2>判斷順序法則。

3. 技能堆疊(法則三)

如果要做到一鍵同時放出兩個或更多的技能,必須有多行/cast命令,這就是技能堆疊。這種宏通常用于爆發(fā)技能,喝藥開飾品開技能需要同時完成。

其法則是:至多只能擁有一個產(chǎn)生/受到GCD影響的技能,幸運的是爆發(fā)類技能和藥水等物品幾乎都設計成不占用GCD。

Code(c):

1:#showtooltip

2:/cast 奧術強化

3:/use 13

4:/use 14

這樣的宏是可行的,因為飾品和[奧術強化]本身并不產(chǎn)生GCD,甚至再加兩行

Code(c):

/cast 氣定神閑

/cast 奧術沖擊

也是合法的。但是,形如以下的宏是非法的:

Code(c):

1:#showtooltip

2:/cast 驅(qū)邪術

3:/cast 審判

4:/cast 十字軍打擊

因為三者都產(chǎn)生GCD和/或被GCD影響,最終的效果是只相當于第一行[驅(qū)邪]有用。不要妄圖這種方法能實現(xiàn)按優(yōu)先級施放技能。

4. 技能替代(法則四)

技能替代是一個十分有意思的機制,自CTM引進。這種機制允許某[基礎技能]在特殊情況下被另一個[替代技能]替代,而即便在替代的情況下,通過宏命令施放[基礎技能]時會自動定向到[替代技能],其最終的結(jié)果是正常施放[替代技能],宏的圖標也會隨之變化。

這種機制有兩種情況:

1)單向的替代,/cast [替代技能]不會施放出基礎技能,但是/cast [基礎技能]是任何情況下通用的。

舉例:神牧的[圣言術:罰]在黃輪和藍輪下轉(zhuǎn)換成[靜]和[佑],只要宏

Code(c):

1:#showtooltip

2:/cast 圣言術:罰

就能自動根據(jù)輪的顏色轉(zhuǎn)換技能,但因為這是[罰]被單向地替代,反過來如果宏里寫[靜]或[佑],在紅輪下就會放不出技能。

2)雙向的等價,[基礎技能]和[替代技能]是完全等價的,就如同一個技能,任何情況下用宏施放任意一個技能的結(jié)果都是放出當前激活的那一個。比如[腐蝕術]和[獻祭]兩者,SS玩家可以分別在不同天賦下試試。

這種機制對于寫宏非常有利,我們不需要為了技能被替換而另開一個宏。更深入的一點,以下兩個技能需要重點提及:

Code(c):

1:#showtooltip

2:/cast 秘法炸彈

3:--這個技能對應法師75級天賦中的[虛空風暴],[寒冰炸彈]和[活動炸彈]。[秘法炸彈]被單向替代。

Code(c):

1:#showtooltip

2:/cast 神圣爆發(fā)

3:--這個技能對應牧師90級天賦,也是單向替代。

如果其他職業(yè)也有類似的天賦基礎技能,請歡迎補充。

二,寫宏的靈魂:邏輯和優(yōu)先級

筆者和自己圈子里的很多人說過,寫宏其實和編程沒多大關系,需要的是一點數(shù)學的邏輯思維。尤其是那些技能整合宏,對在各種判斷條件下到底哪一個技能才是優(yōu)先的必須心里有譜。實際上這是上文中法則一之<2>的推演,本質(zhì)上仍舊是按照越優(yōu)先越靠前的方式排列整個技能和判斷序列。正因如此,上文法則一才是宏最最重要的法則,而優(yōu)先級正是寫宏的靈魂。

Code(c):

1:#showtooltip

2:/cast [help,dead][mod:shift,help][mod:shift,@player]Soulstone;[mod]Soul Link;Unending Resolve

3:/targetlasttarget [help,dead]

4:--比如這個術士宏,它的邏輯等價于:

5:--如果[目標死亡且可協(xié)助]或[按住shift并且目標可協(xié)助]或[其他按住shift的情況下對自己]施放[靈魂石]

6:--否則,如果[有按下其他任何修飾鍵]則施放靈魂鏈接

7:--否則任何其他情況下放盾墻

8:--此外,如果[目標死亡且可協(xié)助]還會順帶切換回之前的目標,目的是戰(zhàn)復后目標切回怪身上

有人可能會問,[help,dead][mod:shift,help][mod:shift,@player]這一串看不懂,為什么先來個shift修飾后面又來一個,這里就涉及到優(yōu)先級的問題了。

首先[help,dead]指定了[目標死亡且可協(xié)助]的情況,它是優(yōu)先級最高的,只要滿足這兩個條件,其他任何條件不管滿足不滿足都會戰(zhàn)復目標。

其次,[mod:shift,help]這一判斷代表[按住shift并且目標可協(xié)助],但是它還有個隱藏條件。因為要判斷到這一層,首先必須前者[help,dead]為假,也就是當[目標不可協(xié)助或者目標不死]的情況。所以其實這個判斷應該是[(目標不可協(xié)助或者目標不死)并且按住shift并且目標可協(xié)助],由于不可協(xié)助和可協(xié)助互斥,所以實際判斷的真值應該是[目標不死并且按住shift并且目標可協(xié)助],滿足這個條件,對目標放靈魂石。

再次,[mod:shift,@player],這里只用了一個判斷即shift修飾,上文說過@player不是判斷條件。但因為前一個判斷已經(jīng)有一種按下shift的情況被取走了,那么這里的判斷表示[其他按住shift的情況下對自己]施放靈魂石。

然后,[mod]是個廣義的修飾鍵判斷,當alt/shift/ctrl中任何一個或多個被按下是都為true。當然shift在前面的判斷中被取走,那么這里表示的是[按下alt/ctrl中任何一個或兩個],他等同于[有按下其他任何修飾鍵]則施放靈魂鏈接。

最后,無盡決心沒有任何判斷,它是恒真的。也就是在其他任何條件下都會施放無盡決心。

上面這個例子有些復雜,下面會通過一個相對簡單的實例來闡述如何運用這種模式寫宏。

法師法術反制及焦點反制/懸停解詛咒整合宏

要求是:焦點可攻擊按住任何修飾鍵都是焦點反制,不按修飾鍵且敵對目標是對目標反制,鼠標懸停到友善目標是解詛咒,目標是友善目標是解詛咒,默認狀況下是對目標的反制。

首先就是厘清優(yōu)先級。

*筆者個人的習慣是修飾鍵優(yōu)先級比懸停高,也就是按了修飾鍵應該嘗試對焦點放而不是對懸停解詛咒;而同時懸停的優(yōu)先級應該比目標的優(yōu)先級高。這個優(yōu)先級可以根據(jù)自身需要調(diào)整。

那么整理之后的優(yōu)先級就是:

第一優(yōu)先級:焦點反制敵對目標,判斷式[mod,@focus,exists,harm]

第二優(yōu)先級:懸停解可協(xié)助目標詛咒,判斷式[@mouseover,exists,help]

第三優(yōu)先級:對友善目標解詛咒,判斷式[help]

第四優(yōu)先級:敵對目標反制,判斷式[harm]

第五優(yōu)先級:反制,無判斷式(恒真)

*要注意,harm和help有關系,但并不是help=noharm或者harm=nohelp。harm代表目標可攻擊,help代表目標可協(xié)助(能給他加血上buff等),此外還有一種既不能攻擊也不能協(xié)助的狀態(tài),稱為"被動(Passive)"。

現(xiàn)在可以直接寫出宏了,那就是:

Code(c):

1:#showtooltip

2:/cast [mod,@focus,exists,harm]法術反制;[@mouseover,exists,help][help]解除詛咒;[harm]法術反制;法術反制

3:--第一行的#showtooltip不是命令行,它的作用是能在鼠標提示上顯示技能的有關信息

這個宏運作起來是符合要求的,但是可以繼續(xù)優(yōu)化。從邏輯上而言,第四與第五優(yōu)先級可以合并,而且exists沒必要與harm和help連用。因此最終的宏是:

Code(c):

1:#showtooltip

2:/cast [mod,@focus,harm]法術反制;[@mouseover,help][help]解除詛咒;法術反制

相關資訊

CopyRight?2007-2021 m.rabxgs.cn All Right Reserved 晉ICP備2023022329號-1

溫馨提示:抵制不良游戲 拒絕盜版游戲 注意自我保護 謹防受騙上當 適度游戲益腦 沉迷游戲傷身 合理安排時間 享受健康生活
游戲作品版權歸原作者享有,如無意之中侵犯了您的版權,請您來信告知( 聯(lián)系郵箱:lqqsgduw132@163.com),本網(wǎng)站將應您的要求刪除。