|
創造科技 |
1.簡介
2.檔案結構
3.研究
3.1 總論
3.2 研究欄位
4.建造
4.1 總論
4.2 建造欄位
5.實作
5.1 創造研究項目
5.2 創造建造項目
6.聲明 |
1.簡介 |
這份文件解釋如何去使用建造和研究的腳本(script).這兩個腳本裡面描述了建造,研究,和昇級的一切項目 |
2.檔案結構
|
每個種族都有自己的腳本集(script set).在萬艦二安裝目錄下的:
Data\Scripts\Building and Research\
資料夾中,每個種族的目錄中都有兩個檔案,build.lua和research.lua |
3.研究 |
3.1 總論
研究檔案其實是一個大表格,裡面每個該種族能夠研究的項目都各自有著自己的次表格.每個研究項目都有幾個核心欄位,也有一些選擇性的項目,用來指定升級的資訊.升級系統是研究系統的一部分,指定了要升級哪些船以及升級的種類
3.2
研究欄位
Name (必需) |
研究項目的名稱.檢查研究項目以及建造項目的相依性時會使用這個名字. |
RequiredResearch (必需) |
研究此項科技所需要的前置科技.你可以用布林運算(Boolean operation)來產生複雜的相依關係.運算符號有:「&」(and),「|」(or),「!」(negation).你也可以使用括號. |
RequiredSubSystems (必需) |
研究此項科技時所需要有的子系統.在這裡使用的名稱是子系統的typeString而不是子系統的本身的名字,所以應該要使用「AdvancedFighterProduction」,而不是「Hgn_AdvancedFighterProduction」.可以利用布林運算來產生複雜的相依關係. |
Cost (必需) |
研究項目所需要的RU |
Time (必需) |
當只有一個研究子系統時研究這項科技所需要的時間,單位為秒.如果有不只一個研究設施的話研究速度會加快. |
DisplayedName (必需) |
在使用介面上所顯示的名稱 |
DisplayPriority (必需) |
在使用介面上會依照這個數字來排列研究項目.數字較小的會顯示在比較上面 |
Description (必需) |
研究項目的敘述,會顯示在使用介面上 |
UpgradeType |
此項研究所帶來的升級類別,其值可以是Modifier(修正量)或Ability(能力) |
TargetType |
因為這項研究而受惠的單位類型.其值為AllShips(玩家艦隊中的所有單位),Family(某個指定的attack
family,例如護衛艦),或是Ship(某種特定的船艦,例如離子砲艦) |
TargetName |
指定研究所影響的目標.這個參數對於Allship來說不需要,對於Family來說會是某個attack family的名稱.而對於Ship來說就會是某一個單位的名稱,例如Hgn_Scout(西加拉的偵察機) |
UpgradeName |
研究後會變更的數值或是能力.細節請看HW2_MultipliersAndAbilitiesHowTo.doc(譯註:RDN釋出的文件裡面並沒有這一份) |
UpgradeValue |
對於Modifer來說,這個值乘上要改變的數值就是新數值.對於Ability來說0表示取消掉某項能力,1表示啟動某項能力
(譯註:在釋出版本的遊戲中的research.lua中,UpgradeType = Ability的研究項目都沒有UpgradeValue的參數) |
|
4.建造 |
4.1
總論
研究檔案其實是一個大表格,裡面每個該種族能夠研究的項目都各自有著自己的次表格.造價和建造時間並不包含在裡面,這兩樣資訊記載在每個單位各自的.ship(船隻單位)或是.subs(子系統)文件中
4.2
建造欄位
Type |
Ship(船隻單位)或是SubSystem(子系統) |
ThingToBuild |
所要建造的項目的名稱.例如Hgn_Scout(西加拉偵察機)或是Hgn_AdvancedFighterProduction(某個子系統,正式遊戲中沒這個東西) |
RequiredResearch |
建造此單位所需要的前置科技.你可以用布林運算(Boolean operation)來產生複雜的相依關係.運算符號有:「&」(and),「|」(or),「!」(negation).你也可以使用括號.
|
RequiredShipSubSystems |
建造此單位所需要有的子系統.在這裡使用的名稱是子系統的typeString而不是子系統的本身的名字,所以應該要使用「AdvancedFighterProduction」,而不是「Hgn_AdvancedFighterProduction」.可以利用布林運算來產生複雜的相依關係. |
DisplayedName |
在使用介面上所顯示的名稱 |
DisplayPriority |
在使用介面上會依照這個數字來排列建造項目.數字較小的會顯示在比較上面 |
Description |
建造項目的敘述,會顯示在使用介面上 |
|
5.實作 |
5.1
創造研究項目
創造新的科技是很有趣的!這個例子告訴你如何增加新的研究項目到Vaygr的科技樹中.
{ |
|
|
3 |
Name = |
"MissileCorvette", |
4 |
RequiredResearch = |
"", |
RequiredShipSubSystems = |
"Research & CorvetteProduction", |
5
|
Cost = |
750, |
Time = |
40, |
6 |
DisplayedName = |
"Missile Corvette Technology", |
7 |
DisplayPriority = |
2, |
8 |
Description = |
"Researching this technology will allow you
to build Missile Corvettes", |
9 |
TargetName = |
"vgr_missilecorvette", |
10 |
Icon = |
Icon_Tech, |
11 |
ShortDisplayedName = |
"Missile Corvette" |
} |
|
|
- 開啟Homeworld2/Data/Scripts/Vaygr/Research.lua
- 決定你要加入什麼科技.以這裡來說讓我們增加一項建造Vaygr飛彈攻擊艇的必要條件.
- 給這個科技一個名字,讓我們叫他「MissileCorvette」.這個名字可以在research.lua和build.lua中交替使用
- 給這個科技一些前置需求.如果你希望這項科技不需要前置研究就能取得,將其留空.在我們的例子中,玩家需要Research和CorvetteProduction(研究和攻擊艇生產)模組.
- 利用下面的符號來創造更複雜的相依關係,也可以使用括號.例如
| = or
& = and
! = not
- 給這個科技成本以及時間.例子中的MissileCorvette科技需要花費750 RU以及40秒來研究
- DisplayedName會顯示在說明文字的標題列
- DisplayPriority用來決定項目在使用介面上的順序,數字較小的會顯示在比較上面.如果有兩個科技的DisplayPriority相同並且同時都能夠被研究,則只有其中一個會顯示出來.
- Description的文字是說明視窗的內容
- 可以利用\Homeworld2\data\Locale\English\buildresearch.dat,然後加入你想參考的對應文字,並且在前面加一個「$」,來達成介面的 localize (指改成不同的語言,或是使用不同的慣用語法)
- 例如你想參照到buildresearch.dat中的line 7035的話,打入「Description = $7035」
- 有許多方式可以用來將說明視窗文字作排版.下面是幾個例子:
- <b>Description:</b>會在說明文字中顯示成「Description」(粗體字)
- /n可以用來斷行,幫助你做文字分段
- TargetName是在UI上顯示的科技名稱
- 圖示(icon)用來告訴使用者這項科技的作用
- 你可以藉由加入新的圖案以及位在research.lua最上方的參照來增加新的圖示.Icon_Tech參考到其他檔案的方法是:
- Icon_Tech = "data:ui/newui/research/icons/tech.mres"
- 最後一項你必須增加的是ShortDisplayedName(科技的簡名).這一欄會顯示在研究管理視窗中,長度不能超過14個字元.
5.2
創造建造項目
{ |
|
|
3 |
Type = |
Ship |
4 |
ThingToBuild = |
"Vgr_LaserCorvette", |
5 |
RequiredResearch = |
"CorvetteLaser", |
6 |
RequiredShipSubSystems = |
"CorvetteProduction", |
7 |
DisplayPriority = |
105, |
8 |
DisplayedName = |
"$7140", |
9 |
Description = |
"$7141", |
} |
|
|
- 開啟Homeworld2/Data/Scripts/Vaygr/Build.lua
- 決定你要讓玩家能夠建造什麼東西.以這裡來說讓我們想像我們要增加雷射攻擊艇到遊戲中.
- 首先你要描述這個單位的類型,可以是Ship或者Subsystem.以這裡來說是一艘船(Ship)
- 接下來要填入把你想建造的東西.這個名字應該要和利用shiptuning.xls所輸出的船隻檔案名字相同
- 給他一些前置科技.本例中雷射攻擊艇需要corvettelaser科技,這個已經在research.lua中定義.
- 接下來加入建造船隻需要的子系統.攻擊艇需要CorvetteProduction
- CorvetteProduction是在subsytemtuning.xls所能找到的typestring.可以好幾個子系統共用相同的typestring
- DisplayPriority用來決定項目在使用介面上的順序,數字較小的會顯示在比較上面.
- 以上面的例子來說有 localize 的文字,可以在下列位置找到:
- Homeworld2\data\Locale\English\buildresearch.dat
- 「DisplayedName = $7140 」會在建造管理視窗中顯示「Laser Corvette」
- 以上面的例子來說有 localize 的文字,可以在下列位置找到:
- Homeworld2\data\Locale\English\buildresearch.dat
|
6.聲明 |
本文件主要是翻譯自Relic Developers Network所釋出的"HW2_BuildandResearchScripting.pdf".
翻譯者為西加拉宇宙載具改裝中心的CQD.原始文件版權為Relic所有. |