泰坦帝国

 找回密码
 加入帝国

QQ登录

只需一步,快速开始

查看: 1941|回复: 4

[教程文章] 继续...科技和建造列表文件的修改

[复制链接]
发表于 2009-1-4 20:03:50 | 显示全部楼层

继续...科技和建造列表文件的修改

作者:CQD

创造科技
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」.可以利用布林运算来产生复杂的相依关系.
       
       
作者: 本图希
  

2006-7-23 15:09   回复此发言  
       
19         创造科技
       
DisplayPriority 在使用介面上会依照这个数字来排列建造项目.数字较小的会显示在比较上面
DisplayedName 在使用介面上所显示的名称
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,然後加入你想参考的对应文字,并且在前面加一个「$」,来达成介面的区域化(例如改成不同的语言,或是使用不同的惯用语法)
例如你想参照到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用来决定项目在使用介面上的顺序,数字较小的会显示在比较上面.
以上面的例子来说有区域化的文字,可以在下列位置找到:
Homeworld2\data\Locale\English\buildresearch.dat
「DisplayedName = $7140 」会在建造管理视窗中显示「Laser Corvette」
以上面的例子来说有区域化的文字,可以在下列位置找到:
Homeworld2\data\Locale\English\buildresearch.dat
「DisplayedName = $7141 」会在说明视窗中显示
Description: Anti-Capital Ship Corvette Squadron.
Strong vs: Frigates, Capital Ships
Weak vs: Corvettes, Capital Ships
Prerequisites: Corvette Facility, Research Module and Corvette Laser
Research

6.声明
本文件主要是翻译自Relic Developers Network所释出的"HW2_BuildandResearchScripting.pdf".
原始文件版权为Relic所有.翻译者为西加拉宇宙载具改装中心的CQD.
发表于 2010-8-9 20:50:40 | 显示全部楼层
很高兴能找到教程
发表于 2010-8-13 01:54:10 | 显示全部楼层
的确跟叉子君的博客里面的差不多。。。
编号代码应该跟buildresearch里面的一样才行
发表于 2011-7-21 18:35:51 | 显示全部楼层
{
    Type = Ship,
    ThingToBuild = "alos_Battership",
    RequiredResearch = "",
    RequiredShipSubSystems = "",
    DisplayPriority = 101,
    DisplayedName = "塔尔洛斯级战列舰",
    Description = "一种装备了大量重型火炮的压制型战列舰,拥有强大的攻防能力(heavy battleship),建造条件:4级武器科技和5级船体科技,属性:压制型单位",
  },
妖都 这个我无法加入建造列表
DisplayPriority 这应该怎么取什么数合适?
发表于 2012-1-14 19:49:01 | 显示全部楼层
很好很详细,感谢楼主

话说楼上除了加入建造列表,要在游戏中生产新的单位还需要其他一些文件的修改的
建议去参看KPR加入希格拉的帖子
您需要登录后才可以回帖 登录 | 加入帝国

本版积分规则

Archiver|手机版|小黑屋|泰坦帝国  

GMT+8, 2019-1-18 19:15 , Processed in 0.070325 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.2 Designed by 999test

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表