Blueimp 論壇首頁
  首頁  | 討論區  | 最新話題  | 搜尋  | XML  |  登入
博客來購書 | 《主管這樣帶人就對了!》
貝殼鯨魚兒童程式啟蒙(點我去報名)

此話題中所有文章數: 6 [ 話題狀態: 一般 ]
上一話題 此文章已經觀看 5940 次 而且有 5 篇回應 下一話題
會員大頭照
男寶寶 Moonnight 《護衛隊長》
文章: 726
v3.8.8

巨集教學 - 2007/02/26 更新

作者  :落日沼澤 玫瑰十字騎士團 碧藍怒火
最後更新:2007/02/26 更新
性質  :提供給公會、網站成員瀏覽、使用、修改、散佈

                             

巨集教學

Lesson 1 在遊戲裡使用巨集
 1.開啟編輯視窗的方式
  (1)基本對話視窗的左邊有選項
  (2)按Esc後的選單裡也有
 2.新建巨集
  (1)選擇圖案
  (2)設定名稱
 3.打入巨集
 4.把剛剛建立的圖案拉到快速列,之後也可以當作一個快速鍵使用

Lesson 2 基本巨集觀念
 1.WOW 裡的巨集分成使用 / 開頭和呼叫 function 兩種。
 2./ 開頭的指令底層其實是呼叫某個 function ;
  而 function 使用 LUA 這個語言。大致上類似 C , Perl 等等語言。
 3./ 開頭的指令無法在其中呼叫 function,例如:
  UnitName("target") :能夠顯示選擇的目標名稱,
  /s + 字串:能夠使用說話頻道
  經測試不能夠用底下方式顯示出目標名稱「/s UnitName("target")」
 4.巨集不等於自動執行
  他能夠一連執行許多動作,但限制也多。像是不能連續執行有冷卻時間的技能。
 5.魔獸裡每個角色只能擁有有限且固定的個人巨集,每個帳號也有限制數量。因此在編輯使用上,要做些取捨。
 6.大量巨集,可以採用插件模式撰寫,將不會有限制。但是插件模式有點繁瑣,留待後面章節說明。

Lesson 3 使用插件
 插件通常是強大的巨集、Script 所組成。
 由於目前遊戲提供的聚集有字數限制,因此某些功能便會受到字數而有限制。
 這時可以考慮將一部份程式碼寫在插件中。
 在此有一個很重要的觀念,插件裡,並不一定包含了 UI。
 插件基本上是放在 ./遊戲目錄/interface/addon/
 可以參考 WowWiki 更詳細的說明:連結

Lesson 4 製作插件
  插件裡頭可能包含了幾個檔案,分列是 toc檔、lua檔、xml檔,分別描述於下:
 1. toc 檔:定義插件的標頭資訊,如版本、插件名稱、作者等等。
  此外還必須記載這個插件所有用到的檔案內容。
  請留意,標頭檔的格式必須很嚴謹,多一個空白都可能造成插件載入失敗。
  他的將可能類似底下範例:
 

## Interface: 11200
## Title: NAME
## Notes: API of Macro
## Author: Fin
## SavedVariables:
## SavedVariablesPerCharacter:
## Version: 1.00
## Dependencies:
fin.lua
fin2.lua


 2. lua 檔:這個檔案裡將會是以 LUA 語言撰寫的程式碼。
 假如把範例中的找尋位置巨集寫成 function,就會變成這樣:
 

function Loc01()
px, py = GetPlayerMapPosition("player");DEFAULT_CHAT_FRAME:AddMessage(format("[%s]%i,%i",GetZoneText(),px*100,py*100));
end


 將來只要輸入 /script Loc01() 就能達到原本的功能。將來還可以做成 /Loc01  的方式呈現。

 3.xml檔,用來定義較短的 script ,以及所有使用到的檔案名稱、UI的規格。範本如下:
 


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\..\FrameXML\UI.xsd">

[2006/9/26 上午 09:56:28]   [返迴此篇文章頂端 ]  回到頂端 
會員大頭照
男寶寶 Moonnight 《護衛隊長》
文章: 726
v3.8.8

巨集教學 - 自動施放「真言術:韌」的巨集範例

一、自動施放「真言術:韌」的巨集
最後更新:2007/02/26

由於牧師的韌會區分目標的等級,比如等級二的韌只能放給 9 級以上的玩家,等級三的韌只能放給等級15以上玩家。因此若是要全方位地為隊友施放,可能需要用掉很多快速鍵。但若用巨集,則可以精簡成一個。

經不可靠消息指出,在 2.0 版本後,將可能有內建功能取代這個巨集效果。

範例:
 

/script r=6;l={1,9,15,26,38,50};
/script if not UnitIsFriend("player","target")then TargetUnit("player");end;
/script t=UnitLevel("target");
/script for i=r,1,-1 do if (t>=l) then CastSpellByName("真言術:韌(等級 "..i..")");break;end;end


使用:
把上列 script 剪貼到遊戲提供的巨集編輯器內,再把那個圖示拉到快捷列,就能當作一個法術使用。能夠依據目標等級來判斷用使用哪個適合的法術

幕後秘辛:
那個等級列表是辛苦找人測試出來的,找了很多不同等級玩家測出來的。
一開始拿到時的巨集範本很無腦。會有等級夠但是誤判成較低等級的韌。

延伸:
這個範本可以延伸到很多地方,例如牧師的神聖之靈、盾;德魯伊的野性印記、荊棘術;法師的智慧秘法...等等很多地方。這些法術都會依據目標等級而有限制,當你是個很熱心幫助同陣營玩家時,這個巨集範例將會很有價值。

DIY 說明:
可以配合角色所學到的技能等級修改。我 60 級時的韌有 6 級,相對應會有 6 個可施放等級。
 

/script r=6;l={1,9,15,26,38,50};


要是角色的技能只有三級,那麼必須作類似的修改。有其他狀況可以類推..
 

/script r=3;l={1,9,15};


至於用 {} 包起來的數值為對方的等級下限,若設定不正確會無法正確施放。
----------------------------------------
[編輯文章 12 次, 最後修改: Moonnight 於 2007/2/26 上午 11:51:05]
[2006/9/28 下午 01:43:19]   [返迴此篇文章頂端 ]  回到頂端 
會員大頭照
男寶寶 Moonnight 《護衛隊長》
文章: 726
v3.8.8

巨集教學 - 目前位置的座標巨集範例

二、目前位置的座標巨集

底下 script 可以幫助玩家找到目前位置的座標。有些網站會使用座標來表達任務怪、NPC的位置,這時這個 script 將會很有用。

範例:
 

/script px, py = GetPlayerMapPosition("player");DEFAULT_CHAT_FRAME:AddMessage(format("[%s]%i,%i",GetZoneText(),px*100,py*100));


使用:
也是將它剪貼到巨集編輯器內。

注意事項:
有些地方沒有座標,會顯示 0,0。這是正常的...
----------------------------------------
[編輯文章 3 次, 最後修改: Moonnight 於 2006/9/28 下午 03:01:16]
[2006/9/28 下午 03:00:04]   [返迴此篇文章頂端 ]  回到頂端 
會員大頭照
男寶寶 Moonnight 《護衛隊長》
文章: 726
v3.8.8

巨集教學 - 看 HP 巨集範例

三、看 HP
某些王可能要監督血量,而補血時可能需要了解某些玩家最大血量。

範例:
 

/script DEFAULT_CHAT_FRAME:AddMessage(format("%s HP=%i/%i",UnitName("target"),UnitHealth("target"),UnitHealthMax("target")))


使用:
剪貼到巨集編輯器,將所選的圖示拉到快捷列。

效果:
隊友會顯示出正確血量,非隊友只會顯示百分比

延伸:
1.可以將 UnitHealthMax("target") 改成 UnitManaMax("target") ; 將 UnitHealth("target") 改成 UnitMana("target") 就會變成看對方魔力。
2.可以再配合「/目標 xxxxx」使用,變成固定指像某一個玩家或NPC。如:
 

/目標 xxxxx
/script DEFAULT_CHAT_FRAME:AddMessage(format("%s HP=%i/%i",UnitName("target"),UnitHealth("target"),UnitHealthMax("target")))

----------------------------------------
[編輯文章 3 次, 最後修改: Moonnight 於 2006/9/28 下午 03:09:52]
[2006/9/28 下午 03:07:35]   [返迴此篇文章頂端 ]  回到頂端 
會員大頭照
男寶寶 Moonnight 《護衛隊長》
文章: 726
v3.8.8

自動換裝備

四、自動換裝

目前能找到的 script 都必須將特定裝備放在包包固定位置才能運作。基本上我覺得這類型換裝方式不夠友善...參考看看囉^^"

範例:
 

/script UseContainerItem(0, 1);
/script PickupInventoryItem( 8 )
/script UseContainerItem(0, 2);
/script PickupInventoryItem(13)



使用:
將上述 script 建在提供的巨集編輯視窗裡。同時必須在相對應位置擺上可以裝備物品才能正確換裝。

參數說明:
使用最左邊包包,左上第一個位置: /script UseContainerItem(0, 1);

將所選物品裝備上: /script PickupInventoryItem(n)
 

1=頭
2=項鍊
3=肩部
4=襯衣
5=胸部
6=腰部
7=腿部
8=腳部
9=手腕
10=手指
11,12=戒指
13,14=飾品
15=背部
16=主手武器
17=副手武器
18=遠程武器

----------------------------------------
[編輯文章 2 次, 最後修改: Moonnight 於 2006/10/4 下午 12:00:35]
[2006/10/4 上午 11:58:50]   [返迴此篇文章頂端 ]  回到頂端 
會員大頭照
男寶寶 Moonnight 《護衛隊長》
文章: 726
v3.8.8

Re: 巨集教學 - 2007/02/26 更新

2007/02/26
異動內容:
1.將巨集教學由公會版搬到巨集版。
2.修正授權內容,允許網站成員瀏覽、使用、修改、散佈

****

不過,我覺得大部分的玩家應該是要包裝好,可以馬上使用的巨集。
可能只有少數玩家想自己開發...
[2007/2/26 上午 11:57:45]   [返迴此篇文章頂端 ]  回到頂端