wow60懷舊服盜賊巨集設定教程 - 魔獸世界懷舊服盜賊巨集怎麼設定
魔獸世界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("主手劍"d, "say", uage,"")
第二句命令把你的主手武器說出來,讓自己能夠看見。如果碰巧是匕首在主手(例如上次斷線不巧等等),就切換一次,重新執行設定巨集。保證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)
如果敵人已經暈了,而我在他背後,例如偷襲之後,
那麼這個巨集連按兩下,也可以起到第一下切換,第二下背刺的效果。
通常偷襲後是連續邪惡攻擊攢點還是背刺傷害 要視情況而定,所以偷襲的巨集後面我沒有加固定切換的
程式碼。