最近更新
手機(jī)版
手機(jī)版

掃描查看手機(jī)站

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

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

作者:匿名

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


術(shù)語

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

一,寫宏的基本法則

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

Code(c):

/cast [表達(dá)式1-1][表達(dá)式1-2]技能1;[表達(dá)式2]技能2;技能3

--宏的模型

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

--表達(dá)式的模型

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

在這個模型下,討論:

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

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

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

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

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

Code(c):

1:#showtooltip

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

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

Code(c):

1:#showtooltip

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

3:--修改后的宏

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

2. 技能整合(法則二)

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

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

3. 技能堆疊(法則三)

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

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

Code(c):

1:#showtooltip

2:/cast 奧術(shù)強(qiáng)化

3:/use 13

4:/use 14

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

Code(c):

/cast 氣定神閑

/cast 奧術(shù)沖擊

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

Code(c):

1:#showtooltip

2:/cast 驅(qū)邪術(shù)

3:/cast 審判

4:/cast 十字軍打擊

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

4. 技能替代(法則四)

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

這種機(jī)制有兩種情況:

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

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

Code(c):

1:#showtooltip

2:/cast 圣言術(shù):罰

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

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

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

Code(c):

1:#showtooltip

2:/cast 秘法炸彈

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

Code(c):

1:#showtooltip

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

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

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

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

筆者和自己圈子里的很多人說過,寫宏其實和編程沒多大關(guān)系,需要的是一點(diǎn)數(shù)學(xué)的邏輯思維。尤其是那些技能整合宏,對在各種判斷條件下到底哪一個技能才是優(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:--比如這個術(shù)士宏,它的邏輯等價于:

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

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

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

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

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

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

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

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

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

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

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

法師法術(shù)反制及焦點(diǎn)反制/懸停解詛咒整合宏

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

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

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

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

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

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

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

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

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

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

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

Code(c):

1:#showtooltip

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

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

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

Code(c):

1:#showtooltip

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

相關(guān)資訊

CopyRight?2007-2021 ropkwcs.com All Right Reserved 晉ICP備2023022329號-1

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