魔獸世界經典版盜賊宏設置教程

魔獸世界60年代懷舊服中,盜賊玩法難題有很多,例如盜賊宏設置。那麼在經典懷舊服版本中,盜賊宏怎麼設置?下面就為大傢帶來魔獸世界60懷舊服盜賊宏設置教程。

《魔獸世界》懷舊服盜賊宏設置教程

魔獸世界懷舊服盜賊宏怎麼設置

宏從入門到精通(盜賊專用)

一直看各種宏的教學,沒有一片足夠清晰嚴格的。

在這些教學裡,函數的變量和作用都沒有說明,宏的語法也沒有說明,這樣對玩傢自己改進宏十分不利。

那些寫宏教程的也很奇怪,難道都不屑於說明語法麼?或者就是直接從國外網站照樣copy過來的?

恩,對大多數人可能不管黑貓白貓復制下來能用的宏就萬事ok瞭...但我個人不喜歡不求甚解的態度,

而且看見過的多數拿出來分享給別人用的宏,用計算機專業的標準衡量,代碼往往冗餘,這就意味著

效率的損失,也就意味著片刻的延時,或許片刻就是生死的分界線....

這篇宏的經驗文章寫給那些想多瞭解一些宏的知識的玩傢,

如果不想自己動手寫宏的玩傢不用往下看。

1,宏的基本常識

宏是一個腳本,發送到服務器端執行。這個腳本由一組命令序列構成,長度不超過255個字符。

序列中的每一個命令,由一個/ 開頭,例如/say /script 等等。

/script 後面跟隨腳本特有的語句和函數。

你可以羅列多個/script命令在一個腳本裡,也可以在一個/script命令中寫多個函數,這都可以。

因為宏就是依次執行所有的命令,所以不需要在宏的最後添加end 標記,或在命令之間加;

事實上,end標記 是if語句的組成部分,你在寫if語句時才用到end關鍵字。命令和命令之間用

換行或; 隔開都可以,我喜歡用換行..呵呵,省掉不必要的; 代碼也清楚些

常用的if語句語法如下:

/script if [條件表達式] then [命令序列] end

or

/script if [條件表達式] then [命令序列1] else [命令序列2] end

這裡條件表達式不需要在外面套括號,和C,java的習慣不同,應該是為瞭減少不必要的字符數,

畢竟WOW宏有長度限制。

條件表達式 中 相等用 == , 否定用not, 不等於可以寫 not (A == B),

暴雪沒有提供!= 作為不等於,很奇怪。 例子:

if sword == GetInventoryItemLink("player", 16) then ....

if not (sword == GetInventoryItemLink("player", 16)) then ....

註1,這裡的sword是全局變量。每一個全局變量的生命周期是一次登陸中從聲明變量到退出魔獸,

通常在每次登陸後額外運行一個設定宏來設定我們所需要的全局變量。

註2,GetInventoryItemLink()是一個取裝備link的函數,

GetInventoryItemLink("player", number)是從人物身上取裝備的link,number代表人物裝備畫面的不同槽, 頭部,頸部,依次遞增,於是16代表主手武器,17代表副手武器

GetInventoryItemLink("player", 16) 就代表瞭主手武器的link

2,盜賊專用宏的編制思路,

其實用宏就是為瞭切換武器,既不放棄匕首的背刺和伏擊,也能用高攻的單手劍,達成兩全其美的效果。

一般有兩種風格的切換宏,

1,主手劍副手匕首,用背刺,伏擊時把匕首換到主手。用其他技能時把劍換到主手。

2,主手劍副手劍,背包裡放一把匕首,用背刺,伏擊時,把背包裡的匕首換到主手。用其他技能時把劍換回來。

前一種方案的切換武器的宏如下:

PickupInventoryItem(16) PickupInventoryItem(17)

還記得吧,16代表主手武器,17代表副手武器。

PickupInventoryItem就是相當於打開人物裝備面板(Inventory, 按C)

做點擊數字對應位置的動作。這個宏很簡單,

就是先點擊主手武器,然後鼠標上應該有主手武器,然後點擊副手武器,

這時候兩把武器就會交換。瞬間執行的效果當然就是瞬間交換,但這個宏有能夠感覺得到的明顯延時,

因為PickupInventoryItem這個函數執行比較慢。推薦用下一個方案。

後一種方案的切換武器的宏如下:

PickupContainerItem(0, 1) PickupInventoryItem(16) PickupContainerItem(0, 1)

PickupContainerItem是從背包裡取裝備,第一個參數指背包,第2個參數指背包裡的槽位,

這裡的約定是0代表主背囊,然後從右向左,依次是1,2,3,4

背包裡槽位從上到下,從左往右排序,註意!從1開始。這和一般從0開始的習慣有點不同。

因此PickupContainerItem(0, 1) 就是點取我主背包上數第一排左數第一格的物品。

然後PickupInventoryItem(16) 放到主手位置,

然後把原先主手位置的物品PickupContainerItem(0, 1)放到背包裡。完成一次武器交換。

這個切換動作明顯比前一個更快。推薦使用,而且副手因此可以保持用高DPS的劍,有助於提高攻擊效率麼,當然,你愛在副手保持什麼武器都可以,呵呵。

現在我們有瞭一個基本的切換宏,但每次用技能都手工切換很難忍,我們繼續實踐很多人想到過的,

為特定技能寫不同的宏,保證不同技能使用合適的武器。

基本思路是用全局變量記錄主手使用的劍,在用不同技能時判斷主手位武器是劍或否,看情況切換。

全局變量的設置宏:

/script setglobal("sword", GetInventoryItemLink("player", 16))

/script SendChatMessage("主手劍"..sword, "say", this.language,"")

第二句命令把你的主手武器說出來,讓自己能夠看見。如果碰巧是匕首在主手(例如上次斷線不巧等等),就切換一次,重新運行設置宏。保證sword變量對應自己的主手劍。

先用邪惡攻擊舉例:我們要保證每次邪惡攻擊都使用高攻擊的劍,所以先判斷主手武器,如果需要切換就切換,然後執行邪惡攻擊。

/script if not (sword == GetInventoryItemLink("player", 16)) then PickupContainerItem(0, 1) PickupInventoryItem(16) PickupContainerItem(0, 1) end

/script CastSpellByName("邪惡攻擊(等級 5)")

但類似寫背刺的宏會有問題,背刺的有效性判斷在宏執行之前,

這就使得流傳的一些背刺宏需要連按兩下,第一下隻能完成切換,第二下才能背刺,這很是不方便。

因此,我的思路是在鑿擊之後直接切換武器,因為鑿擊通常接著就要背刺。這樣背刺就可以直接進行瞭。而且背刺後應該換回劍繼續,因為背刺的60能量開銷使得它在絕大多數情況不能連續進行,除瞭某些升主動天賦的賊...

鑿擊宏如下:

/script CastSpellByName("鑿擊(等級 3)")

/script if ( sword == GetInventoryItemLink("player", 16) ) then PickupContainerItem(0, 1) PickupInventoryItem(16) PickupContainerItem(0, 1) end

背刺宏如下:

/script CastSpellByName("背刺(等級 5)");

/script PickupContainerItem(0, 1) PickupInventoryItem(16) PickupContainerItem(0, 1)

如果敵人已經暈瞭,而我在他背後,例如偷襲之後,

那麼這個宏連按兩下,也可以起到第一下切換,第二下背刺的效果。

通常偷襲後是連續邪惡攻擊攢點還是背刺傷害 要視情況而定,所以偷襲的宏後面我沒有加固定切換的

代碼。

暫無評論

相關推薦

微信掃一掃,分享到朋友圈

魔獸世界經典版盜賊宏設置教程