泰坦帝国

 找回密码
 加入帝国

QQ登录

只需一步,快速开始

查看: 20414|回复: 59

[教程文章] [教程]家园2MOD教程(出自www.9ccn.net)

[复制链接]
发表于 2009-6-25 11:22:24 | 显示全部楼层

[教程]家园2MOD教程(出自www.9ccn.net)

本教程介绍如何将BIG文件解压,并提取家园2单位的模型,贴图,以及在精确位置添加武器.
游客,如果您要查看本帖隐藏内容请回复

4.确定新增hardpoint的精确位置.
选Create\Locator建立一个虚拟物体locator1,附图中8里的图标会别为移动,旋转,缩放,选移动.将locator1移动到你想增加武器的位置,这时,在通道栏(附图 9)处可以看到它的坐标. Translate为位置,Rotate为旋转.它与hardpoint的数值一一对应.如:
以下是希格拉的拦截机的Weapon_FrontGun hardpoint的结构:
Weapon_FrontGun_Position
Root
0.577608 -0.606758 7.028312 对应于maya里的Translate值
0.000000 0.000000 0.000000 对应于maya里的Rotate值,但这里的单位为弧度,即是Rotate值除57.
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Muzzle
Weapon_FrontGun_Position
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Rest
Weapon_FrontGun_Position
0.000000 0.000000 4.803081
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Direction
Weapon_FrontGun_Position
0.000000 3.679605 0.091561
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439

增加hardpoint,主要是确定translate,rotate的数值就行了,即hier文件中_Position处的数值,而Muzzle,Rest,Direction的数值不用修改,直接copy到新增hardpoint的_posttion下即可,如
Weapon_FrontGun2_Position
Root
0.5 2 7 对应于maya里的Translate值
0.000000 0.000000 0.000000 对应于maya里的Rotate值,但这里的单位为弧度,即是Rotate值除57.
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun2_Muzzle
Weapon_FrontGun2_Position
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun2_Rest
Weapon_FrontGun2_Position
0.000000 0.000000 4.803081
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun2_Direction
Weapon_FrontGun2_Position
0.000000 3.679605 0.091561
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439

确定了hardpoint后,可以用hmanager将它加到hod文件里
 楼主| 发表于 2009-6-25 11:22:37 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

程:子系统速成教程
本教程简单介绍子系统制作的基本方法.

1.模型:
在MAYA3里,确保现在处于Modeling(建模)模块,见图中1.  
选Create\PolygonPrimitives\Sphere 建立一个球,名字是pSphere1. ctrl+a打开它的Attribute Editor(属性编辑器),选polySphere1项,将adius设为20, Subdivisions  
Axis和 Subdivisions Height都设成8. 然后沿Y轴(上)移动到20单位处.这时,球的坐标应该是(0,20,0)

2.材质
选windows\Hypershade 打开Hypershade窗口,在RelicTools选HW shade(附图 2)创建一个HW材质,名字为hw2Shader.

3.贴图
这里使用原希格拉航母的Fighter模块的贴图, 找到它的hod文件hgn_c_production_fighter.hod,并解出它的贴图(具体的方法请看我的相关教程).并将它save成bmp文件,其文件名应该是Hgn_C_Production_Fighter_EXPORT[1].BMP和Hgn_C_Production_Fighter_EXPORT[2].BMP
在photoshop里将刚才的bmp打开,新建一个和刚才的贴图文件同样大小的psd文件(这里应该是128x64象素),选Hgn_C_Production_Fighter_EXPORT[1].BMP,在layers窗口里,按住shift,然后用左键将图层拖到新建的文件里.这时它就会作为图层Layer2.在Layers窗口右键选Layer2,选Layer Properties,然后将Name改为 $diffuse.  
用同样的方法将Hgn_C_Production_Fighter_EXPORT[2].BMP作为新建文件的图层,其名字为: $glow. 将多余的图层del掉,确保只有 $diffuse和$glow 图层,然后存盘,文件名为subsys_test.psd.
注意,如果你自己做贴图的话,它的长,宽应该是能被16整除的数(如128x64,512x512...),否则在导出时会出错甚至maya自动退出.
在maya3里,将subsys_test.psd连到材质hw2Shader的color节点.选hw2Shader材质,ctrl+a打开它的属性编辑器(Attribute Editor),找到 HW2 Shader Attributes项(附图 3),
按Shader Script Name后面的文件夹图标,然后打....\homeworld\data\shaders\ship.st.

4 Hardpoint.
在MAYA里,是用joint来作为Hardpoint的.
在附图1处,将当前模块(modeling)切换成Animation(快捷键是F2),选Skeleton\Joint Tool,然后在坐标原点(0,0,0)处按一下左键,然后按回车键创建一个joint.将它改名成Root(注意大小写). 用同样的方法创建一个名为joint2的joint(位置应该是(0,41,0)),在后面会将它设成导航灯.  

5 导航灯
选joint2将它的名字改为以NavLight为前缀的名字,如NavLightT,在RelicTools里按一下导航灯图标(附图 4),然后按ctrl+a打开NavLightT的属性编辑器,找到 Extra Attributes,将 Red,Green,Blue分别设为0,255,0(纯绿色) 将Frequency设成2(每秒闪2次)

6 导出hod文件
将NavLightT和步骤1创建的球作为Root的子物体,见附图 5.确保场景中没有其它多余的物体,然后选File\Optimize Scene Size将没有使用的节点del掉.  
最后选File\Export All后面的方形图标,打开 Export all的设置.  
File Type 选 hod.  
Export Type选 Ship
TextureOptions选DXT5
OptimizationOptions 选 Triangle Strip 和 Merge
NormalMappingOptions选 None
然后输出成hgn_c_production_fighter.hod

7 在Game里测试:
在家园2Game目录下,将刚才输出的hgn_c_production_fighter.hod 放到你的mod的相应目录(...\date\subsystem\hgn_c_production_fighter), 然后运行你的mod,在game里建造一个航母的战斗机建造模块后,将会看到你刚才自己创建的子系统.

关于mod的运行及所需文件,以前的贴子有说明,在此不再解释.同样,你也可以把它作为新增的子系统.
关于子系统参数的设置文件.subs可看RND Tools里的相关文档.
 楼主| 发表于 2009-6-25 11:22:51 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

hmanager的使用方法:
http://www.brambletyefarm.com/p/HManager.exe
(1)hmanager -r hodfile.hod yourfile.hier
将hodfile.hod里的 hierarchy级联结构(hardpoint结构)写到file.hier文件里.hier是文本文件编辑.
(2)hmanager -w hodfile.hod yourfile.hier newhodfile.hod
将 file.hier写入 hodfile.hod文件中,并生成新的hod文件:newhodfile.hod

级联结构定义了将要挂到hardpoint上各物体的运动关系(有点象坐标变换).
<Number of Entries> 类的数量
<Entry Name> 类的名字
<Parent Name ("none" for Root)> 父物体的名字
<Offset from parent> 偏侈量
<Orientation> (原始)方位
<Scale> 缩放值
<Shear???> 放置量
<Unknown (always -872349439)> 类数据结束的标志
<Entry Name>
<Parent Name ("none" for Root)>
<Offset from parent>
<Orientation>
<Scale>
<Shear???>
<Unknown (always -872349439)>
...
坐标轴的定义:船头方向为+Z方向,船尾为-Z方向,左右分别是-X,+X方向,上下分别是+Y,-Y方向. 熟悉MAYA的朋友应该知道,这正是MAYA的坐标系统.我估计hardpoint在MAYA里是用joint来表示的.

这里,以hgn_interceptor为例:

1: 导出hier文件
hmanager -r hgn_interceptor.hod hgn_interceptor.hier  
这样可以得到hgn_interceptor.hod的级联结构文件: hgn_int.hier.如下:

8
Root
none
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
EngineNozzle1
Root
-1.334036 -0.374619 -8.343287
0.000000 3.141593 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
EngineNozzle2
Root
1.334247 -0.374619 -8.343287
0.000000 3.141593 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Position
Root
0.577608 -0.606758 7.028312
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Muzzle
Weapon_FrontGun_Position
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Rest
Weapon_FrontGun_Position
0.000000 0.000000 4.803081
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Direction
Weapon_FrontGun_Position
0.000000 3.679605 0.091561
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
EngineNozzle3
Root
-0.050440 -0.419020 -8.370760
0.000000 3.141593 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
加入以下两个hardpoint:
Weapon_M1
Root
-3.666000 -1.174600 -3.666000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_M2
Root
3.666000 -1.174600 -3.666000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
2.修改hier文件.
将hgn_interceptor.hod用HODView导出它的模型,一般是obj文件.在MAYA里定好你想加hardpoint的位置,记下它的坐标. 不会使用3D软件的朋友可以大概估计一下自己加hardpoint的坐标,不过这样不是很精确.
假设加入两个hardpoint:Weapon_M1,Weapon_M2坐标分别是(-3.666000 -1.174600 -3.666000
),(3.666000 -1.174600 -3.666000),那么最后得到的文件应该如下:
10
Root
none
0.000000 0.000000 0.000000
 楼主| 发表于 2009-6-25 11:23:11 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_M1
Root
-3.666000 -1.174600 -3.666000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_M2
Root
3.666000 -1.174600 -3.666000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
EngineNozzle1
Root
-1.334036 -0.374619 -8.343287
0.000000 3.141593 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
EngineNozzle2
Root
1.334247 -0.374619 -8.343287
0.000000 3.141593 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Position
Root
0.577608 -0.606758 7.028312
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Muzzle
Weapon_FrontGun_Position
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Rest
Weapon_FrontGun_Position
0.000000 0.000000 4.803081
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
Weapon_FrontGun_Direction
Weapon_FrontGun_Position
0.000000 3.679605 0.091561
0.000000 0.000000 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
EngineNozzle3
Root
-0.050440 -0.419020 -8.370760
0.000000 3.141593 0.000000
1.000000 1.000000 1.000000
0.000000 0.000000 0.000000
-872349439
注意,要修改类的数量,即第一个数字.

3,生成hod文件:
hmanage -w hgn_interceptor.hod hgn_interceptor.hier hgn_int.hod
这样就可以在hod文件里加入两个hardpoint了.
然后把hgn_int.hod代替copy到ship\hgn_interceptor\下,并改名:hgn_interceptor.hod

为hgn_interceptor增加导弹:
在.ship文件里,在StartShipWeaponConfig(NewShipType,"Hgn_KineticAutoGun","Weapon_FrontGun","Fire")这行前面加上:
StartShipWeaponConfig(NewShipType,"Ftr_IntMissileLauncher","Weapon_M1","FireM")
StartShipWeaponConfig(NewShipType,"Ftr_IntMissileLauncher","Weapon_M2","FireM")

这样hgn_interceptor就可以发射导弹了.
只要有hardpoint,就可以加武器了......不过,先别高兴太早.不同的武器有不同的运动结构,也就是说hardpoin点的结构不一样.大家可以参考现成的文件来做不同结构的hardpoint.
 楼主| 发表于 2009-6-25 11:23:19 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

比如,你把hmanager, 以及想改的.hod文件都copy到d:\hw_temp下 假如你的hod文件名是 hodfile.hod  
然后你在DOS下打入:
hmanager -r hodfile.hod yourfile.hier  
这时,会生成一个文件: yourfile.hier  
当你改好.hier文件后。
就打入:
hmanager -w hodfile.hod yourfile.hier newhodfile.hod
来生成改好后的.hod文件,即newhodfile.hod  

DataSrc是源文件.
Documents是说明书
Maya..这个不用说了.
ResourceRace 这个还不清楚
tools; FX和photoshop plugin  

在toos目录下fx tools,做特效的.  
其实,可以用FX tools,换贴图,改大小,就可以做出新的wf文件了.
 楼主| 发表于 2009-6-25 11:23:37 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

使用RND TOOLS 的MAYA PLUGIN,可以做很多东西比如新单位(新战机,新战舰...), 地图,任务,NIS(过场动画甚至战机战舰的FlightManeuvers(机动)...等等.
安装可以参考RND TOOLS里提供的HW2_Maya_Install_Doc.pdf说明去装,但这个方法有些缺陷.下面给出我的方法.
以下例子假设 家园2装在c:\homeworld2; MAYA3.0装在C:\AW\MAYA3.0; RND TOOLS已安装,并且已把rnd tools的 maya目录copy到c:\homeworld2下.

1. 设置环境变量:  
右键选"我的电脑",选属性--高级--环境变量,增加环境变量:
HW2_ROOT--C:\Homeworld2
MAYA_INSTALL_DIR--c:\AW\MAYA3.0
官方说明这里会加上 MAYA_APP_DIR,这样做并不好,会破坏MAYA的默认值,使有些工具栏(shelf)无效.

2. 将 c:\homeworld2\maya\3.0\plugin 下的msvci70.dll copy 到 c:\aw\maya3.0\bin
Relic官方提供的imfpsd.dll(maya支持psd格式的plugin)实际上无法使用,大家可到
http://www.highend3d.com/maya/plugins/?section=rendering#1773
找一个IMFPsd v1.1来替代Relic提供的那个imfpsd.dll.
将imfpsd.dll copy 到 c:\aw\maya3.0\bin\plug-ins\image .

3. 将 c:\homeworld2\maya\3.0\下的maya.env文件和prefs,scripts目录copy到 c:\Documents and Settings\Administrator(或你的用户名)\My Documents\maya\3.0\
用记事本打开maya.env,将%MAYA_APP_DIR%改为c:\homeworld2\maya

将\homeworld2\bin\release\下的msvcp70.dll msvcr70.dll copy到 winnt\system\system32下.

4 运行maya, 选择 windows\settings\preferences\Plug-in Manager, 将
AnimExport.mll  
Annotation.mll  
FlightManeuversExport.mll  
FreezeShipScale.mll  
Homeworld2Export.mll  
HW2GetBB.mll  
LeverExport.mll  
Shizoom.mll
后面的 auto load打上勾.然后退出maya

5.运行maya,选择 windows\settings\preferences\Plug-in Manager 将所有RND tools maya plugin后面的 auto load 打上勾,

这样,以后每次运行MAYA,就会自动加载 RND TOOLS MAYA PLUGIN.

把...\homeworld\bin\release\下的 msvcp70.dll,msvcr70.dll copy到你maya3\bin下,然后重启再试试.

把 Display\UI Elements\Layer Bar 选上 就可以显示层

现在能用的maya5plugin好象只有这个吧:HW2Maya5PluginsR0a
这个maya5 plugin据说是老外某个个人拿maya3.0plugin的原代码用maya5.0的dek编译成maya5的了. 模型文件(hod)能正常导出,但其它功能,比如mad,nis,地图编辑...还是有问题.
安装方法:
按要求装好RND tools. 注意里面关于maya的环境变量的设置.  
特别是%MAYA_APP_DIR%,若你的plugin打算安装在 c:\game\homeworld2\maya\5.0 则%MAYA_APP_DIR%应设为 c:\game\homeworld2\maya
将HW2Maya5PluginsR0a\imfpsd\下的文件copy到 ..\maya5.0(maya5的目录)\bin\plug-ings\image 下.
将RND tools maya3.0 plugins下的prefs2个目录copy到 c:\game\homeworld2\maya\5.0 下
将 HW2Maya5PluginsR0a的 plugins和scripts目录 copy到 c:\game\homeworld2\maya\5.0 下
将RND tools maya3.0 plugins下的maya.env copy到c:\game\homeworld2\maya\5.0 下
并用记事本打开maya.env,将里面所有的3.0改为5.0
maya.env是maya的用户环境设置文件.你可以打开它检查一下,你的文件所放的地方是否符合里面的设置所指向的目录. plugin不正常工作通常是因为目录没设置正确引起的.
将HW2Maya5PluginsR0a的runtime下的文件copy到 winnt(或windows)\system下并重启.(这一步有的机子要,有的则不需要,这可能取决于系统安装的文件有关)
然后按Rnd tools里的HW2_Maya_Install_Doc.pdf的说明的 第7步按顺序(一定要按顺序)加载各个plugin.
 楼主| 发表于 2009-6-25 11:23:45 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:轶名

在data/ship目录中,每个舰船名称目录下一般都有一个events文件,这其实记载了舰船发射武器、受损、爆炸等时的声音及视频效果。以hgn_defensefieldfrigate目录下的hgn_defensefieldfrigate.events为例。
其实每个效果都是一段动画,既然是动画就有动画名称、播放时间和播放地点。文件开头在effects后面列出了所有触发动画的事件名称,如:
animation2 = {
name = "Weapon_TurretTop",
length = 3,
loop = 0,
parent = "",
minimum = 0,
maximum = 0,
markers = {
"",
},
Weapon_TurretTop这个事件名称可以在同目录下hgn_defensefieldfrigate.ship中找到,也就是 StartShipWeaponConfig(NewShipType,"Hgn_VulcanKineticTurretWeak","Weapon_TurretTop","Weapon_TurretTop")。最后一个参数就是了。
events后面就是具体的动画效果了,以Weapon_TurretTop这个动画为例。其代码如下:
event2 = {
{
"anim",
"Weapon_TurretTop",
},
{
"animtime",
"0",
},
{
"marker",
"Weapon_TurretTop_Muzzle",
},
{
"fx",
"muzzle_flash_combo_small_frigate",
},
{
"sound",
"WEAPON/FRIGATE/FIRE/WEAPON_FRIGATE_FLAK_CANNON_SHELL",
},
{
"fx_nlips",
"on",
},
},
event3 = {
{
"anim",
"Weapon_TurretTop",
},
{
"animtime",
"1",
},
{
"marker",
"Weapon_TurretTopSlave_Muzzle",
},
{
"fx",
"muzzle_flash_combo_small_frigate",
},
{
"sound",
"WEAPON/FRIGATE/FIRE/WEAPON_FRIGATE_FLAK_CANNON_SHELL",
},
{
"fx_nlips",
"on",
},
},
由于炮塔有两根炮管,所以动画有两段,分别对应两根炮管。
anim后就是事件名称。animtime后的参数是事件触发后动画的播放时间。marker后就是动画播放地点,也是hardpoint,它应该出现在该舰船的hier文件中。fx后面是视频效果。sound后是音频效果。fx_nlips后面我就不知道了 ,我们可以探讨以下。
 楼主| 发表于 2009-6-25 11:23:56 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

转自Relic Forums
原文:Simple Madstate Tutorial (Now with source files!)  
地址:http://forums.relicnews.com/showthread.php?t=55428
作者:DeathWish
翻译:沸腾金属

首先正确地安装完整maya3以及所有rnd tools plusin。本教程中对于maya中建模、材质、贴图、joints创建的知识也不再作赘述。这里我只描述一下家园2里的动作(animating)。
在开始这篇教程之前下载这个源文件(http://www.slothworks.com/MadstateTut/MadstateTut.rar)而后按照说明一步一步作。这个文档里包含了和家园里一样的源文件。
把包含的hgn探针文件(被替换成了hw1里库申的单位,作者认为它的函数比较典型)放到游戏目录里相应位置可以预览一下最后的结果。(※这个过程我就不翻译了)
hgn_probe_after.ma 的内容可以让你先看看我们最后在游戏里可以实现的maya片断。
现在我们继续教程,打开hgn_probe_before.ma 然后按如下步骤进行:

第一步:

给你的动作定义关键帧;确定只移动model的joints,而不是parts。为了实现这个,把你的模型里要移动的parts放到hypergraph里相应的joint下面。你需要遵循一些重要的原则:
* Joints需要放在pivot points上。
* 沿着同一个pivot移动的Parts应该在一个joint上
* 总是让第0帧里模型的动作和空闲或者初始时的状态一样。因为船出现(比如说建造或者从超空间出来)的时候,动作默认为第0帧时的状态。而动作总是开始于第1帧,这和空闲时的状态不冲突。
*0帧中的x,y, z方向的rotation为0.0 且scale 为1.0。通过拷贝这个0帧可以在你需要的时候实现状态的初始化。(在这时另外开一个写字板的窗口用来往过会要用到的其他帧的参数里拷贝和粘贴要用的translation、rotation和scale值会方便一点)
*家园2的动作为1秒24帧,所以要做足1秒的动作就要作24个帧。

第二步:

把你的动作标记设为关键帧。你可以在不选中任何东西的情况下点hypergraph里的空白区域接着按<CTRL> + <G>建立一个null marker,来建立动作标记(anim markers)。然后选中建立null marker的点matey 按钮,建立包含该marker的关键帧,并且这样建立从开始到结束每一个关键帧。一个动作过程中对于一个joints,你可以建立任意数目的关键帧,但是对于每个marker你只能建立开始和结束两个关键帧。最好可以注意保持对于marker的命名,以免最后的时候会弄混。

第三步:

把结果Export成<shipname>.mad。

第四步:

把结果Export成<shipname>.hod。

第五步:

建立<shipname>.madstate文件,参考vgr_probe.madstate以及vgy_heavymissilefrigate.madstate的语法。阅读rnd documentation中关于Madstate的描述实践意义不大。在本例中你可以参考hgn_probe.madstate的语法。

第六步:

把动作加入到<shipname>.events文件里。这对动作的音效定义很重要,这对动作本身的实现是否有影响还不知道。

如果你最终可以实现和例子里一样的结果,你就成功了。现在就剩下测试和检查log文件中的报错了。多多进行各种动作的测试,尝试把动作的状态改成别的名称(改变动作发生的触发?)。如果你想让攻击行为触发动作,你还要新建一个武器hardpoint。


parts指部分,即参与动画的模型

matey 这个是rnd for maya的一个功能

导出的时候才按matey  

标记是在maya里的空组

要做动画.先要在3d软件里为它标记一个状态. 选取TranstateX,Y,Z这3行. 然后在Channels下选Key select ,然后,把时间改成25 ,然后移动球,比如移到 5 0 0,再 选取TranstateX,Y,Z这3行 然后在Channels下选Key select,就成了另一个关键帧.
 楼主| 发表于 2009-6-25 11:24:46 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:家园唯一高手

NewShipType = StartMissileConfig()
NewShipType.displayedName="$1558"
NewShipType.sobDescription="$1559"
NewShipType.TOScale=1
NewShipType.TODistanceFade0=7000
NewShipType.TODistanceDisappear0=5000
NewShipType.TODistanceFade1=350
NewShipType.TODistanceDisappear1=300
NewShipType.TODistanceFade2=25000
NewShipType.TODistanceDisappear2=12000
NewShipType.TOGroupScale=1
NewShipType.TOGroupMergeSize=0
NewShipType.mouseOverMinFadeSize=0.045
NewShipType.mouseOverMaxFadeSize=0.1
NewShipType.maxhealth=40---------------------------------------装甲
NewShipType.regentime=0
NewShipType.sideArmourDamage=1---------------------------------侧面伤害系数
NewShipType.rearArmourDamage=1---------------------------------背面伤害系数
NewShipType.maxShield=0
NewShipType.shieldRechargeTime=0
NewShipType.nlips=0.0004
NewShipType.nlipsRange=75000
NewShipType.nlipsFar=0.0005
NewShipType.nlipsFarRange=100000
NewShipType.SMRepresentation="Invisible"
NewShipType.meshRenderLimit=4000
NewShipType.dotRenderLimit=4000
NewShipType.minLOD=0.2
NewShipType.upLOD=300------------------------------------------拉近开启LOD1的距离
NewShipType.upLOD=500------------------------------------------拉近开启LOD2的距离
NewShipType.downLOD=305----------------------------------------拉远开启LOD1的距离
NewShipType.downLOD=500----------------------------------------拉远开启LOD2的距离
NewShipType.minimumZoomFactor=0.55
NewShipType.selectionPriority=30
NewShipType.weaponName="Hgn_TorpedoLauncher"-------------------名称描述(唯一的)
NewShipType.lifeTime=20----------------------------------------发射之后的生存时间
NewShipType.launchTime=0---------------------------------------发射的时间
NewShipType.detectionDistance=1000-----------------------------失去目标后的搜索范围
NewShipType.clusterDistance=750--------------------------------距离目标多远处释放下一级导弹
NewShipType.numberSubMunitions=4-------------------------------下一级导弹的数量
NewShipType.subMunitionName="Hgn_ClusterTorpedoB"--------------下一级导弹的名称
NewShipType.clusterAngle=65
NewShipType.proximityDetonationDist=85--------------------------爆炸范围
NewShipType.sobDieTime=0.5
NewShipType.density=1
NewShipType.thrusterMaxSpeed=250-------------------------------侧移最大速度
NewShipType.mainEngineMaxSpeed=250-----------------------------直行最大速度
NewShipType.rotationMaxSpeed=260-------------------------------转向速度,每秒多少度
NewShipType.thrusterAccelTime=3--------------------------------侧移加速到全速的时间
NewShipType.thrusterBrakeTime=3--------------------------------侧移减速到0的时间
NewShipType.mainEngineAccelTime=3------------------------------直行加速到全速的时间
NewShipType.mainEngineBrakeTime=3------------------------------直行减速到0的时间
NewShipType.rotationAccelTime=0.6------------------------------转向加速到全速的时间
NewShipType.rotationBrakeTime=0.6------------------------------转向减速到0的时间
NewShipType.thrusterUsage=0.5
NewShipType.accelerationAngle=60-------------------------------加速度
NewShipType.mirrorAngle=30
NewShipType.maxBankingAmount=85
NewShipType.descendPitch=0
NewShipType.goalReachEpsilon=5
NewShipType.controllerType="Missile"
NewShipType.slowdownFactor=0.5
NewShipType.tumbleStaticX=0
NewShipType.tumbleStaticY=0
NewShipType.tumbleStaticZ=0
NewShipType.tumbleDynamicX=0
NewShipType.tumbleDynamicY=0
NewShipType.tumbleDynamicZ=0
NewShipType.tumbleSpeed=0
NewShipType.targetAngle=5------------------------------------------弹体摆动幅度
NewShipType.spiralsPerSecondMin=0.5
NewShipType.spiralsPerSecondMax=0.6
NewShipType.BuildFamily="NotBuildable"
NewShipType.AttackFamily="UnAttackable"----------------------------攻击类型
NewShipType.DockFamily="CantDock"
NewShipType.AvoidanceFamily="DontAvoid"
NewShipType.DisplayFamily="Munition"
NewShipType.AutoFormationFamily="Fighter"
NewShipType.ArmourFamily="Unarmoured"------------------------------装甲类型
LoadHODFile(NewShipType,1);
setEngineTrail(NewShipType,0,15,"trail_ribbon.tga",0.2,0.5,0.025,8);-----------------尾焰参数
setEngineBurn(NewShipType,15,0.5,1,15,0,0.7,0.2,25);
loadShipPatchList(NewShipType,"data:sound/sfx/ship/hiigaran/NonMilitary/Engines/"
,0,"HTorpedoEng");

注:导弹拖尾效果的长度和setEngineTrail(NewShipType,0,10,"trail_ribbon.tga",0.2,0.5,0.025,8)里面第3个参数有关,例如上面那个10。8 雾化效果
 楼主| 发表于 2009-6-25 11:25:21 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:家园唯一高手

NewShipType = StartShipConfig()
NewShipType.displayedName = "$1544"--------------------点击舰船以后所显示的名字
NewShipType.sobDescription = "$1545"-------------------点击该单位以后所显示的说明
NewShipType.maxhealth = 460000----------------------------最大HP
NewShipType.regentime = 1000---------------------------恢复到满HP所用的时间
NewShipType.minRegenTime = 1000------------------------恢复到满HP的时间系数
NewShipType.sideArmourDamage = 1---------------------侧面装甲伤害系数
NewShipType.rearArmourDamage = 1---------------------后面装甲伤害系数
NewShipType.isTransferable = 0-------------------------可否在对战中将该单位送给友军
NewShipType.useEngagementRanges = 1
NewShipType.unitCapsNumber = 11
NewShipType.addedUnitCaps = 101
NewShipType.paradeData = "hgn_mothership_parade"----------阅兵列队方案
NewShipType.SquadronSize = 1------------------------------每组数量
NewShipType.formationSpacing = 60-------------------------编队之间的间隔距离
NewShipType.passiveformation = "Spear"----------------------被动模式下的阵型
NewShipType.defensiveformation = "x"------------------------防御模式下的阵型
NewShipType.aggressiveformation = "Claw"--------------------攻击模式下的阵型
NewShipType.mass = 2000----------------------------------舰船质量
NewShipType.collisionMultiplier = 1----------------------碰撞系数,跟碰撞判定有关
NewShipType.thrusterMaxSpeed = 15-----------------------侧移最大速度
NewShipType.mainEngineMaxSpeed = 15---------------------直行最大速度
NewShipType.rotationMaxSpeed = 22 ----------------------转向速度,每秒多少度
NewShipType.thrusterAccelTime = 7 -------------------------侧移加速到全速的时间 NewShipType.thrusterBrakeTime = 2 -------------------------侧移减速到0的时间 NewShipType.mainEngineAccelTime = 8 -----------------------直行加速到全速的时间 NewShipType.mainEngineBrakeTime = 2 -----------------------直行减速到0的时间 NewShipType.rotationAccelTime = 0.75 ----------------------转向加速到全速的时间
NewShipType.rotationBrakeTime = 0.4 -----------------------转向减速到0的时间  
NewShipType.thrusterUsage = 1
NewShipType.accelerationAngle = 30-----------------------加速度
NewShipType.mirrorAngle = 0
NewShipType.secondaryTurnAngle = 0
NewShipType.maxBankingAmount = 10
NewShipType.descendPitch = 10
NewShipType.goalReachEpsilon = 25-----------------------报告到达目的地时离目标的距离
NewShipType.slideMoveRange = 350
NewShipType.controllerType = "Ship"---------------------该单位是否可以被玩家控制
NewShipType.tumbleStaticX = 0
NewShipType.tumbleStaticY = 0
NewShipType.tumbleStaticZ = 0
NewShipType.tumbleDynamicX = 0
NewShipType.tumbleDynamicY = 0
NewShipType.tumbleDynamicZ = 0----------------以上6条是该单位在静止和移动中的颠簸范围
NewShipType.tumbleSpecialDynamicX = 0
NewShipType.tumbleSpecialDynamicY = 0
NewShipType.tumbleSpecialDynamicZ = 0 --------以上3条是该单位在使用特殊能力时的颠簸范围
NewShipType.relativeMoveFactor = 1------------这个变量决定相邻的两艘船在移动时的距离  
NewShipType.swayUpdateTime = 10
NewShipType.swayOffsetRandomX = 10
NewShipType.swayOffsetRandomY = 10
NewShipType.swayOffsetRandomZ = 10
NewShipType.swayBobbingFactor = 0
NewShipType.swayRotateFactor = 0--------------以上6条定义该单位摇摆的幅度和偏移范围
NewShipType.useTargetRandom = 1---------------可否用武器随机攻击目标
NewShipType.targetRandomPointXMin = -0.1
NewShipType.targetRandomPointXMax = 0.5
NewShipType.targetRandomPointYMin = -0.3
NewShipType.targetRandomPointYMax = 0.3
NewShipType.targetRandomPointZMin = -0.9
NewShipType.targetRandomPointZMax = 0.82-----------以上6条定义对敌人追击时偏移量
NewShipType.dustCloudDamageTime = 280---------------在被激星尘中的生存时间
NewShipType.nebulaDamageTime = 500------------------在辐射星云中的生存时间
NewShipType.MinimalFamilyToFindPathAround = "MotherShip"
NewShipType.BuildFamily = "Shipyard_Hgn"------------------建造级别
NewShipType.AttackFamily = "BigCapitalShip"---------------攻击类型
NewShipType.DockFamily = "Shipyard"-----------------------建造和停泊的级别
NewShipType.AvoidanceFamily = "MotherShip"
NewShipType.DisplayFamily = "Capital"---------------------点击舰船以后显示的级别
NewShipType.AutoformationFamily = "SuperCap"--------------编队级别
NewShipType.CollisionFamily = "Big"-------------------------碰撞等级
NewShipType.ArmourFamily = "HeavyArmour"--------------------装甲类型
NewShipType.UnitCapsFamily = "Capital"----------------------人口大类里的级别
NewShipType.UnitCapsShipType = "Shipyard"---------------------在人口小类里面的类型
NewShipType.fightervalue = 0------------------------战机单位评估
NewShipType.corvettevalue = 0-----------------------艇单位评估
NewShipType.frigatevalue = 1------------------------护卫舰单位评估
NewShipType.neutralvalue = 5------------------------中立单位评估
NewShipType.antiFightervalue = 5------------------对该单位反战机能力的评估
NewShipType.antiCorvettevalue = 0-----------------对该单位艇能力的评估
NewShipType.antiFrigatevalue = 0------------------对该单位护卫舰能力的评估
NewShipType.totalvalue = 20-------------------------价值总评估
NewShipType.buildCost = 3500--------------------------建造消耗资源
NewShipType.buildTime = 75----------------------------建造需要的时间
NewShipType.buildPriorityOrder = 20---------------------建造优先权
NewShipType.retaliationRange = 4800-------------------主动攻击的范围
NewShipType.retaliationDistanceFromGoal = 160---------主动攻击追击未果返回的距离
NewShipType.visualRange = 1000----------------该单位在电磁屏蔽中被敌方发现的最大距离
NewShipType.prmSensorRange = 5000-------------感应器范围,能够清楚观察敌人的最大距离
NewShipType.secSensorRange = 6000-------------感应器范围,能够发现敌人的最大距离
NewShipType.detectionStrength = 1--------------能否看到隐形或者其他状态的敌人
NewShipType.TOIcon = "Triangle"---------------点击该单位显示的战术级别框
NewShipType.TOScale = 1-------------------该单位在屏幕上显示的大小比例
NewShipType.TODistanceFade0 = 7000
NewShipType.TODistanceDisappear0 = 5000
NewShipType.TODistanceFade1 = 2500
NewShipType.TODistanceDisappear1 = 2000
NewShipType.TODistanceFade2 = 12000
NewShipType.TODistanceDisappear2 = 35000-------------以上6条定义战术级别框的一些相关设定。


NewShipType.TOGroupScale = 1-------------------------组队选择参数
NewShipType.TOGroupMergeSize = 0---------------------组队选择参数
NewShipType.mouseOverMinFadeSize = 0.08500000000000001
NewShipType.mouseOverMaxFadeSize = 0.1
NewShipType.healthBarstyle = 2------------------血条的形式
NewShipType.nlips = 0---------------------------模型的显示比例值
NewShipType.nlipsRange = 10000------------------
NewShipType.nlipsFar = 0
NewShipType.nlipsFarRange = 0---------------以上3条定义模型显示(nlips)的相关设定
NewShipType.SMRepresentation = "Mesh"-----------------在星图上显示的方式
NewShipType.alwaysInRenderList = 1--------------------是否显示在星图上
NewShipType.meshRenderLimit = 32500-------------------清楚显示的最大距离
NewShipType.dotRenderLimit = 10-----------------------逐渐显示的递增参数
NewShipType.visibleInSecondary = 1
NewShipType.goblinsStartFade = 400-----------------显示船体细节的最大距离
NewShipType.goblinsOff = 400-----------------------关闭船体细节的距离
NewShipType.upLOD = 800-----------------------------拉近开启LOD1的距离
NewShipType.upLOD = 1300----------------------------拉近开启LOD2的距离
NewShipType.upLOD = 2500----------------------------拉近开启LOD3的距离
NewShipType.downLOD = 815--------------------------拉远开启LOD1的距离
NewShipType.downLOD = 1315-------------------------拉远开启LOD2的距离
NewShipType.downLOD = 2515-------------------------拉远开启LOD3的距离
NewShipType.minimumZoomFactor = 0.5
NewShipType.selectionLimit = 150000----------------选择该单位的最大距离
NewShipType.preciseSelectionLimit = 3000-----------精确选择的最大距离
NewShipType.preciseATILimit = 0
NewShipType.selectionPriority = 754----------------选择该单位的优先权(0不能选择)
NewShipType.militaryUnit = 0-----------------------该单位是否属于军事单位
addAbility(NewShipType,"MoveCommand",1,0)----------可否移动;移动的次数
addAbility(NewShipType,"CanDock",1,0)--------------停泊类。
NewShipType.dockTimeBetweenTwoformations = 1
NewShipType.dockTimeBeforeStart = 2
NewShipType.dockNrOfShipsInDockformation = 11------以上3条定义停泊过程中间隔距离等相关设定
NewShipType.dockformation = "delta"--------------------停泊阵型
NewShipType.queueformation = "dockline"----------------列队阵型
NewShipType.dontDockWithOtherRaceShips = 1
NewShipType.ignoreRaceWhenDocking = 0----------------------忽视出入坞问题,跳跃出现
addAbility(NewShipType,"CanLaunch")------------------------能否被发射
NewShipType.launchTimeBetweenTwoformations = 1
NewShipType.launchTimeBeforeStart = 21
NewShipType.launchNrOfShipsInDockformation = 1-------------以上3条定义发射过程中的相关设定
NewShipType.launchformation = "delta"----------------------发射阵型
addAbility(NewShipType,"ShipHold",1,0,5,"rallypoint","Fighter",25,
Fighter = "12",
})---------定义该单位是否能停泊收留单位和收留单位的类型,数量和补给的速度
addAbility(NewShipType,"ParadeCommand",1)----------------是否有阅兵列队能力
addAbility(NewShipType,"WaypointMove") ------------------指定路线行进能力
addAbility(NewShipType,"HyperSpaceCommand",0,1,200,500,0,3)--------------------跳跃能力



addAbility(NewShipType,"CanAttack",1,1,0,0,0.35,1.5,"Capturer, Frigate, SmallCapitalShip, BigCapitalShip, Mothership, Utility, Corvette, Fighter","BroadSide",
Fighter = "MoveToTargetAndShoot"
Corvette = "MoveToTargetAndShoot"
Munition = "MoveToTargetAndShoot"
SubSystem = "BroadSideVsSubSystem"
})---------------------------攻击能力和攻击优先级别。排在最前面攻击优先级别最高。"BroadSide"攻击方式,后面的"MoveToTargetAndShoot"表示对付特定目标的特定攻击方式
addAbility(NewShipType,"GuardCommand",1,3000,1000)-----------保护模式下的出击范围和追击范围
addAbility(NewShipType,"CanBuildShips",1,"Fighter_Hgn, Corvette_Hgn, Frigate_Hgn, SuperCap_Hgn, Utility_Hgn, Platform_Hgn, SubSystem_Hgn, SubSystemLarge_Hgn, Battlecruiser_Hgn, battlecruiser_vgr,Shipyard_Hgn, Probe_Hgn","Utility, Fighter, Corvette, Frigate, Capital, Platform, SubSystemModule, SubSystemSensors")---------可以建造的相关类型
addAbility(NewShipType,"CanBeCaptured",300,0.1)----------------能否被捕捉,以及捕捉时间
addAbility(NewShipType,"CanBeRepaired")------------------------能否被修理
addAbility(NewShipType,"CloakAbility",0,1,2000,4000,3,100,1,1000)---------隐形能力相关参数
addAbility(NewShipType,"RetireAbility",1,0)--------------------能否回收,0是不可以
addAbility(NewShipType,"HyperspaceInhibitorAbility",0,12000)
LoadModel(NewShipType,1)---------------------------------------舰船所用的模型
StartShipWeaponConfig(NewShipType,"Vgr_LightPlasmaLance2","Weapon_HullDefense1","Weapon_BigGun1")---武器调用参数
addShield(NewShipType,"EMP",10000,20)------是否可以被EMP瘫痪。前面一个是需要的EMP数量,后面一个是瘫痪时间
StartShipHardPointConfig(NewShipType,"bcKineticBurstCannonLeft","HardpointProduction1","weapon","innate","Damageable","hgn_battlecruiserkineticburstcannonleftside","","","","","","","","")----模块调用相关参数
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Lrg03",1,0.75,0,0,0,50,0,0,0,200,0,0,0,50,0,0,0,50)
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Lrg02",1,0.05,30,-20,200,25,300,150,85,50,0,0,0,85,0,0,0,50)
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Lrg04",1,0.05,50,40,-150,50,65,25,5,25,0,0,0,95,0,0,0,50)
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Lrg05",1,0.05,25,10,-100,30,35,75,62,75,0,0,0,80,0,0,0,50)
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Lrg01",1,0.05,60,30,150,25,35,125,65,75,0,0,0,60,0,0,0,50)
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Sml01",1,0.01,80,125,60,75,125,80,65,75,0,0,0,60,0,0,0,50)
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Sml02",1,0.01,25,0,-125,50,80,35,120,75,0,0,0,60,0,0,0,50)
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Sml03",1,0.01,60,95,200,50,15,200,20,125,0,0,0,60,0,0,0,50)
SpawnSalvageOnDeath(NewShipType,"Slv_Chunk_Sml04",1,0.01,10,60,-300,25,35,80,65,75,0,0,0,60,0,0,0,50)------------------以上是爆炸后的残骸调用代码
NewShipType.battleScarMaxTriBase = 200
NewShipType.battleScarMaxTriInc = 300
NewShipType.sobDieTime = 8-----------------------------该单位被摧毁到消失的时间
NewShipType.sobSpecialDieTime = 1
NewShipType.specialDeathSpeed = 40
NewShipType.chanceOfSpecialDeath = 0
NewShipType.deadSobFadeTime = 0.1
NewShipType.trailLinger = 2
setEngineBurn(NewShipType,9,0.2,0.5,300,1.02,0.1,0.25,380)---------------------尾焰参数
loadShipPatchList(NewShipType,"data:sound/sfx/ship/",0,"Hiigaran/Megaship/Engines/HShipYardEng","",1,"Hiigaran/Megaship/Ambience/HShipYardAmb","",3,"Megaliths/RandomEmit/HANGAR_EMITTERS","Root")-----引擎相关文件,声音等
 楼主| 发表于 2009-6-25 11:25:40 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:家园唯一高手

NewSubSystemType = StartSubSystemConfig()
NewSubSystemType.displayedName = "$2148"---------------------------点击子系统以后所显示的名字
NewSubSystemType.sobDescription = "$2139"--------------------------点击该单位以后所显示的说明
NewSubSystemType.tacticalIcon = "hexagon"--------------------------点击该单位显示的战术级别框
NewSubSystemType.tacticalIconMinSize = 0.0035
NewSubSystemType.tacticalIconMinFadeSize = 0.0045
NewSubSystemType.tacticalIconMaxFadeSize = 0.008-------------------以上3条是战术级别框的显示方式
NewSubSystemType.groupMergeSize = 0.001
NewSubSystemType.mouseOverMinFadeSize = 0.045
NewSubSystemType.mouseOverMaxFadeSize = 0.1
NewSubSystemType.maxhealth = 40000---------------------------------装甲
NewSubSystemType.regentime = 1-------------------------------------装甲回复时间
NewSubSystemType.nlips = 0
NewSubSystemType.nlipsRange = 0
NewSubSystemType.nlipsFar = 0
NewSubSystemType.nlipsFarRange = 0
NewSubSystemType.meshRenderLimit = 0.004
NewSubSystemType.minimumZoomFactor = 0.6800000000000001
NewSubSystemType.selectionLimit = 0---------------------------------选择的距离
NewSubSystemType.preciseATILimit = 0--------------------------------精确选择的距离
NewSubSystemType.selectionPriority = 37.5---------------------------选择优先权
NewSubSystemType.type = "Weapon"------------------------------------类型描述
NewSubSystemType.typeString = "hgn_hdd"-----------------------------单位描述
NewSubSystemType.collateralDamage = 100
NewSubSystemType.inactiveTimeAfterDamage = 80
NewSubSystemType.activateHealthPercentage = 0.1
NewSubSystemType.costToBuild = 700----------------------------------建造价格
NewSubSystemType.timeToBuild = 40-----------------------------------建造时间
NewSubSystemType.isResearch = 0
NewSubSystemType.visible = 1----------------------------------------显示透明度
LoadHODFile(NewSubSystemType,1)-------------------------------------舰船所用的模型
NewSubSystemType.BuildFamily = "SubSystem_Hgn"----------------------建造类型
NewSubSystemType.AttackFamily = "UnAttackable"----------------------攻击类型
NewSubSystemType.DockFamily = "CantDock"----------------------------建造和停泊的级别
NewSubSystemType.DisplayFamily = "SubSystemModule"------------------点击舰船以后显示的级别
NewSubSystemType.ArmourFamily = "SubSystemArmour"-------------------装甲类型
StartSubSystemWeaponConfig(NewSubSystemType,"hgn_LBCkineticburstcannondestroyerTop","Weapon_TurretTop","Weapon_TurretTop")--调用的武器
-------------
AddSubSystemMultiplier(NewSubSystemType,"Speed","ThisShipOnly","Linear",1,0,0)---------调用引擎控制能力
-------------
AddSubSystemMultiplier(NewSubSystemType,"WeaponAccuracy","OwnShipsWithinRadiusExcludingThisShip","Linear",1.15,1.15,4500)--调用攻击精度能力
AddSubSystemMultiplier(NewSubSystemType,"WeaponDamage","OwnShipsWithinRadiusExcludingThisShip","Linear",1.15,1.15,4500)---调用攻击伤害系数能力
-------------
AddSubSystemAbility(NewSubSystemType,"Cloak",1,"ThisShipOnly",0)---------------------调用隐形能力
-------------
AddSubSystemAbility(NewSubSystemType,"Hyperspace",1,"OwnShipsWithinRadius",3500)-----调用跳跃能力
-------------
AddSubSystemAbility(NewSubSystemType,"HyperspaceInhibitor",1,"ThisShipOnly",0)-------调用反跳跃能力
-------------
AddSubSystemMultiplier(NewSubSystemType,"BuildSpeed","ThisShipOnly","Linear",1.3,1,0)-----调用加速建造能力
-------------
AddSubSystemMultiplier(NewSubSystemType,"CloakDetection","ThisShipOnly","None",4,4,0)--调用反隐形侦察能力
AddSubSystemMultiplier(NewSubSystemType,"VisualRange","ThisShipOnly","None",4,4,0)-----调用隐形侦察能力
-------------
AddSubSystemMultiplier(NewSubSystemType,"PrimarySensorsRange","ThisShipOnly","Linear",2,2,0)---扩大主要侦察器范围
AddSubSystemMultiplier(NewSubSystemType,"SecondarySensorsRange","ThisShipOnly","Linear",2,2,0)--扩大次要侦察器范围
-------------
 楼主| 发表于 2009-6-25 11:25:49 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:山贼

希拉格
母舰-------------------hgn_mothership

侦察机-----------------hgn_scout
战斗机-----------------hgn_interceptor
轰炸机-----------------hgn_attackbomber

护航炮艇---------------hgn_assaultcorvette
脉冲炮艇---------------hgn_pulsarcorvette
布雷艇-----------------hgn_minelayercorvette

鱼雷护卫舰-------------hgn_torpedofrigate
防空炮护卫舰-----------hgn_assaultfrigate
离子炮护卫舰-----------hgn_ioncannonfrigate
登陆舰-----------------hgn_marinefrigate
防御场护卫舰-----------hgn_defense fieldfrigate

驱逐舰-----------------hgn_destroyer
战列巡洋舰-------------hgn_battlecruiser
航母-------------------hgn_carrier
船坞-------------------hgn_shipyard

火炮平台---------------hgn_gunturret
离子炮平台-------------hgn_ionturret
  
采矿船-----------------hgn_resourcecollector
采矿精练船-------------hgn_resourcecontroller

探测器-----------------hgn_probe
电子对抗感应器---------hgn_ecmprobe
临近感应器-------------hgn_proximitysensor

船坞(剧情)-----------hgn_shipyard_elohim
船坞(剧情)-----------hgn_shipyard_spg
超太空核(剧情)-------hgn_hscore
无畏舰(剧情)---------hgn_dreadnaught
运输船(剧情)---------sp_tanker-sp_tanker6
=====================================================================
先祖
雄峰战斗机-------------kpr_attackdroid

守护者-----------------kpr_destroyer

漫步者-----------------kpr_mover

萨尤卡-----------------kpr_sajuuk
萨尤卡(遗迹)---------kpr_sajuuk_nosensors
======================================================================
伟格
母舰-------------------vgr_mothership

侦察机-----------------vgr_scout
战斗机-----------------vgr_interceptor
轰炸机-----------------vgr_bomber
长枪战机---------------vgr_lancefighter

激光炮艇---------------vgr_lasercorvette
指挥艇--------------- vgr_commandcorvette
布雷艇-----------------vgr_minelayercorvette
导弹护航艇-------------vgr_missilecorvette

突袭舰-----------------vgr_assaultfrigate
导弹护卫舰-------------vgr_heavymissilefrigate
渗透舰-----------------vgr_infiltratorfrigate

驱逐舰-----------------vgr_destroyer
战列巡洋舰-------------vgr_battlecruiser
航母-------------------vgr_carrier
船坞-------------------vgr_shipyard

采矿船-----------------vgr_resourcecollector
采矿精练船-------------vgr_resourcecontroller

跳跃门-----------------vgr_hyperspace_platform
火炮平台---------------vgr_weaponplatform_gun
导弹平台---------------vgr_weaponplatform_missile

探测器-----------------vgr_probe
电子对抗感应器---------vgr_probe_ecm
临近感应器-------------vgr_probe_prox

指挥中心(剧情)-------vgr_commstation
指挥中心废墟(剧情)---vgr_prisonstation
行星杀手(剧情)-------vgr_planetkiller
行星杀手鱼雷(剧情)---vgr_planetkillermissile
马坎旗舰(剧情)-------vgr_mothership_makaan
 楼主| 发表于 2009-6-25 11:25:59 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者: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」.可以利用布林运算来产生复杂的相依关系.
 楼主| 发表于 2009-6-25 11:26:24 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

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.
 楼主| 发表于 2009-6-25 11:27:00 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:轶名

跳关文件嘛,这个以前也发过了。再贴一次吧。这篇文章是我从论坛上抄下来的,忘记作者的名字的,不好意思。
每一关结尾都会生成一个.lua文件,存储过关数据,包括已经打开的研究项目,颜色,还有所有舰队信息

用记事本打开可以看到有四大项目,分别是
Research = :研究
TeamColours = :势力颜色
Squadrons = :部队
RUs = :资源

通过修改每个项目中的数据就可以达到在剧情模式里提前建造主力舰,使用敌方或者任何方的舰船,以及修改资源的目的

首先是研究,简单到没什么好说的,想从第二关就能造所有舰船的朋友可以复制粘贴下面的内容到persist2.lua中的 Research = { 下面

[1] = {
name = "InstaAdvancedFrigateTech",
progress = 1,
},
[2] = {
name = "SensorsDowngrade1",
progress = 1,
},
[3] = {
name = "SensorsDowngrade2",
progress = 1,
},
[4] = {
name = "SensorsDowngrade3",
progress = 1,
},
[5] = {
name = "AssaultCorvetteEliteWeaponUpgrade",
progress = 1,
},
[6] = {
name = "AttackBomberEliteWeaponUpgrade",
progress = 1,
},
[7] = {
name = "InterceptorMAXSPEEDUpgrade1",
progress = 1,
},
[8] = {
name = "SensorsBackToNormal1",
progress = 1,
},
[9] = {
name = "SensorsBackToNormal2",
progress = 1,
},
[10] = {
name = "SensorsBackToNormal3",
progress = 1,
},
[11] = {
name = "MothershipHealthUpgrade1",
progress = 1,
},
[12] = {
name = "RepairAbility",
progress = 1,
},
[13] = {
name = "AssaultCorvetteHealthUpgrade1",
progress = 1,
},
[14] = {
name = "AttackBomberImprovedBombs",
progress = 1,
},
[15] = {
name = "AttackBomberMAXSPEEDUpgrade1",
progress = 1,
},
[16] = {
name = "AttackBomberMAXSPEEDUpgrade2",
progress = 1,
},
[17] = {
name = "PulsarCorvetteHealthUpgrade1",
progress = 1,
},
[18] = {
name = "PulsarCorvetteMAXSPEEDUpgrade1",
progress = 1,
},
[19] = {
name = "PlatformIonWeapons",
progress = 1,
},
[20] = {
name = "TorpedoFrigateHealthUpgrade1",
progress = 1,
},
[21] = {
name = "TorpedoFrigateMAXSPEEDUpgrade1",
progress = 1,
},
[22] = {
name = "AssaultFrigateHealthUpgrade1",
progress = 1,
},
[23] = {
name = "AssaultCorvetteMAXSPEEDUpgrade1",
progress = 1,
},
[24] = {
name = "InterceptorMAXSPEEDUpgrade2",
progress = 1,
},
[25] = {
name = "GraviticAttractionMines",
progress = 1,
},
[26] = {
name = "AssaultFrigateMAXSPEEDUpgrade1",
progress = 1,
},
[27] = {
name = "PulsarCorvetteHealthUpgrade2",
progress = 1,
},
[28] = {
name = "PulsarCorvetteMAXSPEEDUpgrade2",
progress = 1,
},
[29] = {
name = "ImprovedTorpedo",
progress = 1,
},
[30] = {
name = "ResourceCollectorHealthUpgrade1",
progress = 1,
},
[31] = {
name = "MothershipMAXSPEEDUpgrade1",
progress = 1,
},
[32] = {
name = "IonCannonFrigateHealthUpgrade1",
progress = 1,
},
[33] = {
name = "IonCannonFrigateMAXSPEEDUpgrade1",
progress = 1,
},
[34] = {
name = "CarrierMAXSPEEDUpgrade1",
progress = 1,
},
[35] = {
name = "CarrierHealthUpgrade1",
progress = 1,
},
[36] = {
name = "ResourceCollectorHealthUpgrade2",
progress = 1,
},
[37] = {
name = "ScoutPingAbility",
progress = 1,
},
[38] = {
name = "ResourceControllerHealthUpgrade1",
progress = 1,
},
[39] = {
name = "SensDisProbe",
progress = 1,
},
[40] = {
name = "ScoutEMPAbility",
progress = 1,
},
[41] = {
name = "DefenseFieldFrigateShield",
progress = 1,
},
[42] = {
name = "MothershipBUILDSPEEDUpgrade1",
progress = 1,
},
[43] = {
name = "DamageMoverTech",
progress = 1,
},
[44] = {
name = "DestroyerTech",
progress = 1,
},
[45] = {
name = "MothershipHealthUpgrade2",
progress = 1,
},
[46] = {
name = "AssaultFrigateHealthUpgrade2",
progress = 1,
},
[47] = {
name = "AssaultFrigateMAXSPEEDUpgrade2",
progress = 1,
},
[48] = {
name = "DestroyerMAXSPEEDUpgrade1",
progress = 1,
},
[49] = {
name = "DestroyerHealthUpgrade1",
progress = 1,
},
[50] = {
name = "CarrierMAXSPEEDUpgrade2",
progress = 1,
},
[51] = {
name = "CarrierBUILDSPEEDUpgrade1",
progress = 1,
},
[52] = {
name = "ECMProbe",
progress = 1,
},
[53] = {
name = "MothershipMAXSPEEDUpgrade2",
progress = 1,
},
[54] = {
name = "ResourceControllerHealthUpgrade2",
progress = 1,
},
[55] = {
name = "IonTurretHealthUpgrade1",
progress = 1,
},
[56] = {
name = "GunTurretHealthUpgrade1",
progress = 1,
},
[57] = {
name = "AssaultCorvetteHealthUpgrade2",
progress = 1,
},
[58] = {
name = "AssaultCorvetteMAXSPEEDUpgrade2",
progress = 1,
},
[59] = {
name = "CarrierHealthUpgrade2",
progress = 1,
},
[60] = {
name = "GunTurretHealthUpgrade2",
progress = 1,
},
[61] = {
name = "IonTurretHealthUpgrade2",
progress = 1,
},
[62] = {
name = "TorpedoFrigateHealthUpgrade2",
progress = 1,
},
[63] = {
name = "TorpedoFrigateMAXSPEEDUpgrade2",
progress = 1,
},
[64] = {
name = "DestroyerHealthUpgrade2",
progress = 1,
},
[65] = {
name = "DestroyerMAXSPEEDUpgrade2",
progress = 1,
},
[66] = {
name = "IonCannonFrigateHealthUpgrade2",
progress = 1,
},
[67] = {
name = "IonCannonFrigateMAXSPEEDUpgrade2",
progress = 1,
},
[68] = {
name = "BattlecruiserIonWeapons",
progress = 1,
},
[69] = {
name = "RadiationDefenseField",
progress = 1,
},
[70] = {
name = "BattlecruiserHealthUpgrade1",
progress = 1,
},
[71] = {
name = "BattlecruiserMAXSPEEDUpgrade1",
progress = 1,
},
},

注意有几项剧情研究和建造是不能提前的,比如anti mover和mover控制塔,只要不用就不会造成跳出或者死机


其次是“Squadrons = {” 项目,举例说明吧

这是shipyard的完整参数

{
tactic = 1,(战术类型,0是一般,1是逃逸型,2是攻击型)  
type = "Hgn_Shipyard_Elohim",(类型,船名)
subsystems = { (子系统)
{
index = 0,
name = "HGN_MS_PRODUCTION_FIGHTER",(战斗机制造舱)
},
{
index = 0,
name = "HGN_MS_PRODUCTION_CORVETTE",(巡航舰制造舱)
},
{
index = 0,
name = "HGN_MS_PRODUCTION_FRIGATE",(护卫舰制造舱)
},
{
index = 0,
name = "HGN_SY_PRODUCTION_CAPSHIP",(主力舰制造舱)
},
{
index = 0,
name = "HGN_MS_MODULE_RESEARCH",(研究舱)

},
{
index = 0,
name = "HGN_MS_MODULE_RESEARCHADVANCED",(高级研究舱)
},
{
index = 0,
name = "HGN_MS_MODULE_PLATformCONTROL",(炮台控制舱)
},
{
index = 0,
name = "HGN_SY_INNATE_ENGINE",(引擎)
},
{
index = 0,
name = "HGN_SY_INNATE_RESOURCE",(资源采集仓)
},
},
buildjobs = { (正在建造的项目)
[0] = {
[0] = {
name = "Hgn_Interceptor",(建造种类)
rusSpent = 385.59277, (已经投入的资源)
},
[1] = {
name = "Hgn_PulsarCorvette",
rusSpent = 45,
},
[2] = {
name = "Hgn_Battlecruiser",
rusSpent = 0,
},
[3] = {
name = "Hgn_Battlecruiser",
rusSpent = 0,
},
[4] = {
name = "Hgn_Interceptor",
rusSpent = 0,
},

},
},
size = 1,(本部队数量,比如战斗机是5,巡航舰3,战舰1)
shiphold = {
},(停泊中的船)
name = "Hgn_Shipyard",(船名)
teamColourHandle = 23,(颜色)
hotkey = 67108864,(编队)
},


以上就是完整的带建造能力的船的参数,战舰就比较简单,如下是驱除舰参数

{
tactic = 1,
type = "Hgn_Destroyer",
subsystems = {
{
index = 0,
name = "HGN_DES_ENGINE",
},
},
buildjobs = {
},
size = 1,
shiphold = {
},
name = "",
teamColourHandle = 0,
hotkey = 32,
},


也就是说,你想要一关开始时增加什么船,只要把这种船的参数加进去就行了,而且不论敌我都可以,

举例,多要一只无畏舰的话,只要增加以下就行了

{
tactic = 1,
type = "Hgn_Dreadnaught",
subsystems = {
},
buildjobs = {
},
size = 1,
shiphold = {
},
name = "NIS_Squad",
teamColourHandle = 24,
hotkey = 0,
},

多两只就粘贴两次,如果要别的船只,只要把引号中的船名 Hgn_Dreadnaught 改成需要的就行了
其他所有船名:
hgn_assaultcorvette
hgn_assaultcorvetteelite
hgn_assaultfrigate
hgn_attackbomber
hgn_attackbomberelite
hgn_carrier
hgn_gunturret
hgn_hscore
hgn_interceptor
hgn_ioncannonfrigate
hgn_ionturret
hgn_marinefrigate
hgn_marinefrigate_soban
hgn_mothership
hgn_probe
hgn_pulsarcorvette
hgn_resourcecollector
hgn_resourcecontroller
hgn_scout
hgn_targetdrone
hgn_torpedofrigate
meg_chimera
meg_sajhulknose
meg_sajhulkpanels
meg_sajhulkturret
meg_tanis
meg_tanisstructure_medium
meg_tanisstructure_medium2
neu_soundtest
neu_transport
sp_tanker
sp_tanker2
sp_tanker3
sp_tanker4
sp_tanker5
sp_tanker6
vgr_assaultfrigate
vgr_battlecruiser
vgr_bomber
vgr_carrier
vgr_destroyer
vgr_heavymissilefrigate
vgr_hyperspace_platform
vgr_interceptor
vgr_lancefighter
vgr_lasercorvette
vgr_missilecorvette
vgr_mothership
vgr_probe
vgr_resourcecollector
vgr_resourcecontroller
vgr_scout
vgr_weaponplatform_gun
vgr_weaponplatform_missile
kpr_attackdroid
kpr_destroyer
kpr_destroyerm10
kpr_mover
kpr_sajuuk

至于资源就别改了吧,你开场时的的资源和敌人是相同的,不用说了吧

如果修改后哪一关出现死机或跳出现象,提前把修改出来的战舰自爆就行了,下一关再改回来
 楼主| 发表于 2009-6-25 11:27:12 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:轶名

以下是直译:
-debug
未知----->调试模式,会在hw2.log中写入日志信息
-useRandomSeed
未知----->使用随机种子,可能与多人游戏有关(原文如此)
-dumpPlayBalanceStats
未知----->储存游戏平衡统计,可能多人游戏有关,使游戏进入GameSpy时自动查找
-quickLoad
未知----->快速载入
-port <port Num>
强制使用指定的端口
-lowTex
使用低纹理(texture)模式
-datapath <path>
使用指定的数据位置,默认是..\..\data\
--sXXW Take black & white screenshots.
截取黑白图像
--sXXoth Take black & white, and colour screenshots.  
截取黑白和彩色图像
--ssTGA Take screenshots in TGA format.
使用.tga储存截图
--ssJPG Take screenshots in JPG format.  
使用.JPG储存截图
-startFleet <int>
使用不同的舰队资料,默认是scripts\startingfleets目录里的 Hiigaran00.lua和 vaygr00.lua,建立新的文件(如:Hiigaran01.lua和Vaygr01.lua)后,可以用这个参数选择
-superTurbo
加速模式,类似于HWC里的“\"(8X模式)
-noS3TC
不使用S3纹理压缩
-noDisplayLists
不使用显示列表
-nopbuffer
不使用像素缓冲
-noRenderToTexture
不使用纹理补偿( 这些词比较专业,偶不懂的说~~~)
-noRenderToDepthTexture->未知(不使用深度纹理补偿??)
-noSoundData Unknown->未知(无声音数据??)

-nosound  
使用无声模式,一般在声音有问题时使用

-noRender
不使用显示补偿

-texLoadNoROT 未知

-texLoadPreferROT 未知

-texLoadMostRecent 未知(读取最近使用的纹理??)

-texLoadAlwaysROT 未知

-noMipMap  
不使用小地图
-hardwareCursor
使用硬件光标
-fragment_program <int> 未知(碎片程序??)

-nv_reg_combiners2 <int> Unknown.  
-nv_reg_combiners_up <int> Unknown.  
-nv_reg_combiners <int> Unknown.  
-env_combine_up <int> Unknown.  
-ATI_combine3 <int> Unknown.  
-env_combine4 <int> Unknown.  
-env_combine3 <int> Unknown.  
-env_crosXXar2 <int> Unknown.  
-env_combine2 <int> Unknown.
未知,可能跟显示芯片和环境变量有关

-gameendexec <str> Unknown.  
原文未知,可能是在游戏结束运行命令( <str>为命令 )
-scriptFile <file?> Unknown.  
  未知
-syncCheckingLevel <int> Unknown.未知(同步检查频率??)

-unitCapsMode <str>
  未知,可能是scripts/unitcaps下.lua数据文件有关(原文如此,应为scripts\unitcaps)

-noVideoErrors未知 (无视频错误??)

-noMovies或--noMovies
跳过所有动画,包括与情节有关的那些
-NoATITOSetting
关闭所有ATI和TO(游戏中单位上的那些图形)
-noVBO
关闭对顶点缓冲对象的支持

-noHSClip Unknown.  
-noHSRender Unknown.  
-noBattleScar Unknown.  
-battleScar_noHealthCap Unknown.  
-battleScar_noTriCap Unknown.  
-syncCheckingLevel <int> Unknown.  
-noWinLose <bool> Unknown.  
-outOfSync <int> Unknown.  
-exec <str> Unknown.  
-notForPublic Unknown.
未知


以下是未经验证的(原文如此):
-bunny  
-noShadowBatch  
-persist  
-silentErrors  
-Init <?>  
-load <?>  
-debugName <?>  
-movieRecord <?>  
-absCoord <bool>  
-movieFPS <float>

-------------------------------------------------------------------------------------------------------原文:
-overrideBigFile Enables the data folder on the disk to be loaded over any data in the .big files.  
-locale <language> Loads the specified <language>.big instead of English.big (or whatever language version you have.)
 楼主| 发表于 2009-6-25 11:27:23 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

-mod <modification.big> Loads <modification.big> after the other .big files are loaded, this implies -overrideBigFile.  
-luatrace Lua debugging will be outputted to hw2.log.  
-w <width> Screen resolution width, has to be used in conjunction with correct height.  
-h <height> Screen resolution height, has to be used in conjunction with correct width.  
-d <int> Unknown, likely BPP.  
-refresh <refresh rate> Changes the refresh rate. Set it to your desktop resolution and refresh rate for quick alt-tabbing.  
-fullscreen Enables fullscreen view.  
-windowed Enables windowed view.  
-debug Unknown.  
--useRandomSeed Unknown, something to do with multiplayer.  
-dumpPlayBalanceStats Unknown, something to do with multiplayer.; Causes the game to lock up when entering Gamespy. -Mikail  
-quickLoad Unknown.  
-port <port number> Force Homeworld 2 to use the given port.  
-freeMouse In windowed mode free the mouse from being constrained by the window boundaries.  
-noInt3 turns off debug code which exits the game with an error.  
-lowTex Unknown.  
-datapath <path> Sets the data path, where data will be loaded from. (Internally, by default, it is ..\..\Data\)  
-filelog Unknown.  
-logfiles <path?> Unknown.  
--produceHODMemoryInfo Unknown.  
--sXXW Take black & white screenshots.  
--sXXoth Take black & white, and colour screenshots.  
--ssTGA Take screenshots in TGA format.  
--ssJPG Take screenshots in JPG format.  
--ssNoLogo Take screenshots without logo.  
-startFleet <int> The files in the scripts\startingfleets directory are Hiigaran00.lua and Vaygr00.lua. Create new ones with different contents called Hiigaran01.lua and Vaygr01.lua. Now you can use the -startFleet 0 or -startFleet 1 to switch between the starting lineups.  
-superTurbo Makes the in-game timer go very fast. (Eg, the Hiigaran Mothership moves about the same speed as a Hiigaran Fighter in normal speed.)  
--bgSim Unknown.  
-noS3TC Disables S3 Texture Compression.  
-noDisplayLists Disables display lists.  
-nopbuffer Disables pixel buffer.  
-noRenderToTexture Unknown.  
-noRenderToDepthTexture Unknown.  
-noSoundData Unknown.  
-nosound Runs the game without sound. Useful if trying to rule out sound problems.  
-noRender Disables display rendering.  
-texLoadNoROT Unknown.  
-texLoadPreferROT Unknown.  
-texLoadMostRecent Unknown.  
-texLoadAlwaysROT Unknown.  
-noMipMap Disables mip-mapping.  
-hardwareCursor enable hardware cursor.  
-fragment_program <int> Unknown.  
-nv_reg_combiners2 <int> Unknown.  
-nv_reg_combiners_up <int> Unknown.  
-nv_reg_combiners <int> Unknown.  
-env_combine_up <int> Unknown.  
-ATI_combine3 <int> Unknown.  
-env_combine4 <int> Unknown.  
-env_combine3 <int> Unknown.  
-env_crosXXar2 <int> Unknown.  
-env_combine2 <int> Unknown.  
-GameRules <str> Unknown.  
-gameendexec <str> Unknown.  
-scriptFile <file?> Unknown.  
-syncCheckingLevel <int> Unknown.  
-unitCapsMode <str> Unknown. Probably the name of a DATA:scripts/unitcaps .lua to load?  
-noVideoErrors Unknown.  
-noMovies (or --noMovies?) Skips ALL movies, including story-related ones.  
-NoATITOSetting Turn off all ATI and TO (the graphics that appear over units in game).  
-noVBO Disables support for Vertex Buffer Objects.  
-noHSClip Unknown.  
-noHSRender Unknown.  
-noBattleScar Unknown.  
-battleScar_noHealthCap Unknown.  
-battleScar_noTriCap Unknown.  
-syncCheckingLevel <int> Unknown.  
-noWinLose <bool> Unknown.  
-outOfSync <int> Unknown.  
-exec <str> Unknown.  
-notForPublic Unknown.

Unverified

-bunny  
-noShadowBatch  
-persist  
-silentErrors  
-Init <?>  
-load <?>  
-debugName <?>  
-movieRecord <?>  
-absCoord <bool>  
-movieFPS <float>
 楼主| 发表于 2009-6-25 11:27:39 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:家园唯一高手

本篇不涉及hardpoint的添加,改变已有的舰船模型,只在已有的DATA的基础上对武器进行修改。
家园2的武器总体上可以分为三类:光线类武器,射击类武器,导弹类武器。它们各自的特点决定武器的属性,因此我们在修改时常常不能随心所欲。我写这篇教程就是想要解决一些困惑大家很久的问题。

基础篇:

最简单的修改就是改武器本身的参数,在戴阿米德航空航天署的参数帖中有详细的描述。这样修改只能改本身武器的攻击力,射击距离,连续射击的能力等。但是要注意:
setPenetration(NewWeaponType,100,1,{
PlanetKillerArmour = 0, (行星杀手装甲)
},{
SubSystemArmour = 0.3, ( 子系统装甲)
},{
MediumArmour = 0.5, (中型装甲)
},{
HeavyArmour = 2, (重型装甲)
})
setAccuracy(NewWeaponType,1,{
Fighter = 0, (战机级 )  
},{  
Corvette = , (护航机级)  
},{
munition = 0.1, (资源船级)
})
setAngles(NewWeaponType,0,-180,180,-30,60)  
(1)每种武器都有对不同装甲的杀伤系数,直接改对装甲的伤害系数就可以提高武器的攻击力,而在游戏的攻击力栏目数值不变。
(2)每种武器都有对不同级别敌人射击精确度,设置0就表示不攻击,1就表示精度为百分之百。越大越精确。
(3)最后5个数值就是本武器的射击范围,第2,3表示在水平面上面的可转动度数;4,5表示垂直面的。第一个数值是水平和垂直的综合,在不转动的情况下的射击角度。如果设成180,那么后面的都没有意义了,不转动就可以做到全(球)面攻击!

中级篇:

首先要熟悉每种船的名称,和它们的武器名称,性能和效果。在游戏中看到哪个船的武器好就让自己的船发射本不属于自己的武器。说明白点,就是用武器的调用来实现发射不同武器。通过观察发现:在家园2里面武器发射口有活动的和固定的两种,炮台和炮塔类是活动的可以旋转;鱼雷导弹发射口和炸弹发射口一般是固定的,不能旋转。还有一种看不到发射口的近身防空小炮(枪),它也是旋转的,但是活动范围很有限。
weapon文件夹里面的武器都分为以下三种:
(1)Gimble :光线武器,防御小炮和机枪大多都是这一类型。可以发射InstantHit,和Bullet类型;
(2)AnimatedTurret:所有可以转动的炮口,也可以发射Bullet和InstantHit两个类型;
(3)Fixed:导弹和鱼雷发射口专用的。
了解武器的类型就可以做到在调用的时候不会出现错误而死机跳出。
具体做法就是:直接调用相同的武器类型。不同的类在调用的时候可能会出现不能发射,没办法瞄准或者干脆死机。
以H拦截机interceptor为例,我很崇拜sajuuk的主炮,sajuukheavycannon跟拦截机武器kineticautogun同是Gimble类型,因此可以调用sajuuk的主炮到拦截机上面:
进入ship\hgn_interceptor\hgn_interceptor.ship
看到关于武器的那行StartShipWeaponConfig(NewShipType,"hgn_kineticautogun","Weapon_FrontGun","Fire")
改为
StartShipWeaponConfig(NewShipType,"kpr_sajuukheavycannon","Weapon_FrontGun","Fire")
保存退出,进入游戏就可以看到效果。
同样的修改方法可以应用的所有的武器上面,只要是相同类型的武器之间就可以放心的调用而不会出问题!
注意,这个修改还可以变通一下,H重巡的激光主炮battlecruiserturretedioncannon虽然是AnimatedTurret类型,但是同sajuukheavycannon一样是光线武器,光线武器可以在Gimble类型发射,因此所有的光线武器都能在Gimble类型发射。还包括hgn_pulsar,hgn_pulsarside等。
同上原理,AnimatedTurret类型也可以发射所有Bullet和InstantHit两个类型的所有武器。但是不同的是当AnimatedTurret类型的发射口发射属于Gimble类型的武器时会出现无法移动炮口瞄准的情况。直接调用的时候要避免。

高级篇:

简单的在SHIP文件里面调用武器显然不能够满足修改的要求,很多情况下这样的调用根本就无法使用,最终还是要在weapon下面修改。一般有两种方法:一 可以改被调用的武器让它符合发射的条件;二 也可以干脆重新建立一个weapon文件被用来调用。在家园2里的weapon文件名称是没有限制的,大家可以尽情的创造自己喜欢的武器。任何发射口发射任何武器的规则就是:只要你调用的武器符合了发射的条件就可以了。
前面提到过的武器类型已经能做到的修改这里就不讲了,主要讲前面的方法还不能实现的:

(1)Gimble :在能发射InstantHit和Bullet类型武器的基础上发射Missile类型(导弹,鱼雷)。
方法:其实用前面提到的直接在SHIP文件里面直接调用Missile类型的武器就可以了^*^(因为不导弹不存在瞄准的问题,可以全方位发射) Gimble发射口本来就可以直接发射所有Missile类型的武器,只是在游戏中我们看不到罢了。
(2)AnimatedTurret:发射所有Missile类型武器。
用H驱逐舰做例子,把4门炮台都改为发射自己的鱼雷。
方法一: AnimatedTurret发射口发射Missile类型武器也可以用直接调用的方法,但是这样修改之后旋转炮台加载导弹发射的时候不会转动很不好看。为了让Missile类型的武器符合旋转炮台的发射条件(旋转瞄准发射),还要做如下调整:
进入weapon\hgn_destroyertorpedolauncher\hgn_destroyertorpedolauncher.wepn
将武器发射类型Fixed改为AnimatedTurret;武器参数:120,4500,0,0,0,0,1,0,1,16,0,0,1,0,0,0,0.1,改为120,4500,0,0,0,0,1,0,1,16,0,0,1,0,120,120,0.1, ;炮台旋转角度:setAngles(NewWeaponType,179,0,0,0,0)改为setAngles(NewWeaponType,0,-180,180,-20,60)
保存后退出。 通过这个修改驱逐舰的炮台都能旋转发射鱼雷但是有个问题就是原来的鱼雷发射口也变成了旋转发射了,不再是向前弹射。
方法二: 建立一个新的导弹武器的weapon文件,然后调用。修改如下:
进入weapon文件夹,复制hgn_destroyertorpedolauncher然后粘贴并重命名为hgn_destroyertorpedolauncher2,进入hgn_destroyertorpedolauncher2将hgn_destroyertorpedolauncher.wepn重命名为hgn_destroyertorpedolauncher2.wepn进入hgn_destroyertorpedolauncher2.wepn按照方法一修改具体参数。
建议大家用第二种方法修改,这样就不会破坏原武器weapon文件,而修改效果是一样的。在SHIP文件调用武器名的时候要注意用改动后的hgn_destroyertorpedolauncher2为武器名。  
另外AnimatedTurret发射口发射其它非旋转类型武器都可以参考方法二来修改。

(3)Fixed:发射InstantHit和Bullet类型武器。
主要是解决无法瞄准的问题,用上面方法二就可以轻松搞定了。

用以上的方法就可以实现任何一个发射口发射任何武器了。现在再加入复数调用就可以实现一门发射口发射N种武器。
以H驱逐舰为例,给它的顶炮复数调用H重巡激光主炮和舰炮,无畏副炮和防空炮,V重巡量子炮和导弹,H离子炮,H丛集飞弹,H防空炮,。代码如下:
StartShipWeaponConfig(NewShipType,"Hgn_DestroyerTorpedoLauncher","Weapon_Torpedo","Weapon_Torpedo")

StartShipWeaponConfig(NewShipType,"hgn_battlecruiserturretedioncannon","Weapon_TurretTop","Weapon_TurretTop")
StartShipWeaponConfig(NewShipType,"hgn_battlecruiserkineticburstcannon","Weapon_TurretTop","Weapon_TurretTop")
StartShipWeaponConfig(NewShipType,"hgn_dreadnaughtchinturret","Weapon_TurretTop","Weapon_TurretTop")
StartShipWeaponConfig(NewShipType,"vgr_bcforwardweapon","Weapon_TurretTop","Weapon_TurretTop")
StartShipWeaponConfig(NewShipType,"vgr_heavyfusionmissilelauncherbc","Weapon_TurretTop","Weapon_TurretTop")
StartShipWeaponConfig(NewShipType,"hgn_ioncannon","Weapon_TurretTop","Weapon_TurretTop")
StartShipWeaponConfig(NewShipType,"hgn_clustertorpedolauncher","Weapon_TurretTop","Weapon_TurretTop")
StartShipWeaponConfig(NewShipType,"hgn_kineticburstcannon","Weapon_TurretTop","Weapon_TurretTop")

StartShipWeaponConfig(NewShipType,"hgn_kineticburstcannondestroyer","Weapon_TurretBottom","Weapon_TurretBottom")
 楼主| 发表于 2009-6-25 11:27:59 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

StartShipWeaponConfig(NewShipType,"hgn_kineticburstcannondestroyer","Weapon_TurretFront","Weapon_TurretFront")
StartShipWeaponConfig(NewShipType,"hgn_kineticburstcannondestroyer","Weapon_TurretBack","Weapon_TurretBack")
其中vgr_bcforwardweapon,hgn_ioncannon和hgn_clustertorpedolauncher不能正常发射(它门分别属于Gimble和Fixed类型发射口,直接调用不能瞄准),需要按照方法二进行修改。大家可以试试^*^!!!


新的导弹类的添加:
如需要在missile里面添加一个vgr_heavymissile2武器文件。
首先需要vgr_heavymissile的HOD文件,拷贝到vgr_heavymissile2下面,再将vgr_heavymissile.hod和vgr_heavymissile.miss和vgr_heavymissile.events重新命名为vgr_heavymissile.hod2和vgr_heavymissile.miss2和vgr_heavymissile.events2然后在scripts/weaponfire文件夹下面添加一个vgr_heavymissile2文件夹将vgr_heavymissile.wf文件复制过来重命名为vgr_heavymissile2即可!

新子系统武器和新船在系统栏小图的修改:
在SHIP/icons/shipicons里面修改。

修改武器的爆炸效果:
在scripts/weaponfire文件夹下面修改

双管炮火间开火间隔:
setMiscValues(NewWeaponType,4,0.3)
前面的4是炮管退堂时间,后面的0.3是双管炮火间开火间隔

如果觉得在weapon里面修改实在是太麻烦了,干脆把子系统武器的模型直接调用到已有的武器位置使用吧。这个方法修改可就顾不到模型的美观了,推荐新手使用。
子系统武器一共有5个,在subsystem文件夹里分别是:hgn_battlecruiserionbeamturret;hgn_battlecruiserkineticburstcannon;hgn_battlecruiserkineticburstcannonleftside;hgn_battlecruiserkineticburstcannonrightside;vgr_heavyfusionmissilelauncher战列巡洋舰。
它们都是使用单独的模型因此可以添加到武器位置直接使用。
修改的时候把以下3条:
StartShipHardPointConfig(NewShipType,"HeavyFusionMissileLauncher","-----","Weapon","Innate","Damageable","Vgr_HeavyFusionMissileLauncherbc","","","","","","","","") (V巡洋舰导弹)

StartShipHardPointConfig(NewShipType,"battlecruiserionbeamturret","-----","Weapon","Innate","Damageable","hgn_battlecruiserionbeamturret","","","","","","","","") ( H巡洋舰离子炮)

StartShipHardPointConfig(NewShipType,"battlecruiserkineticburstcannon","-----","Weapon","Innate","Damageable","hgn_battlecruiserkineticburstcannon","","","","","","","","") (H巡洋舰前炮) 。
中的一条写到你想改的船的SHIP文件里面,在“----”位置填写武器位置就可以了。虽然每一个武器位置都可以同时加几个子系统武器的模型,但是没有必要,因为被别的模型覆盖了就不能完全发射了。>;
武器位置在每个SHIP文件里面找到如:StartShipWeaponConfig(NewShipType,"Hgn_KineticAutoGun","Weapon_FrontGun","Fire")中的"Weapon_FrontGun",将它代入上面的3条代码写入SHIP文件就可以了。
 楼主| 发表于 2009-6-25 11:28:10 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:家园唯一高手

玩久了家园2自然想在对战中拥有强大的战舰,下面这个例子就教你如何把无畏舰和守护者添加到H族的建造列表里面,在任务和对战中都可以建造。

步骤:
1. 拷贝kpr_destroyerm10文件夹,新命名为hgn_keep,同时重命名里面的SHIP文件;复制kpr_destroyer文件夹里面的kpr_destroyer.events文件到hgn_keep文件夹,并重命名为hgn_keep

2. 在hgn_keep的SHIP文件里面找到如下代码:
NewShipType.MinimalFamilyToFindPathAround = "SuperCap"
NewShipType.BuildFamily = "NotBuildable"
NewShipType.AttackFamily = "SmallCapitalShip"
NewShipType.DockFamily = "SuperCap"
NewShipType.AvoidanceFamily = "SuperCap"
NewShipType.DisplayFamily = "Capital"
NewShipType.AutoformationFamily = "CapShip"
NewShipType.CollisionFamily = "Big"
NewShipType.ArmourFamily = "HeavyArmour"
NewShipType.UnitCapsFamily = "SinglePlayerMisc"
改成:
NewShipType.MinimalFamilyToFindPathAround = "MotherShip"
NewShipType.BuildFamily = "SuperCap_Hgn"
NewShipType.AttackFamily = "SmallCapitalShip"
NewShipType.DockFamily = "SuperCap"
NewShipType.AvoidanceFamily = "Capital"
NewShipType.DisplayFamily = "Capital"
NewShipType.AutoformationFamily = "CapShip"
NewShipType.CollisionFamily = "Big"
NewShipType.ArmourFamily = "HeavyArmour"
NewShipType.UnitCapsFamily = "Capital"
NewShipType.UnitCapsShipType = "Destroyer"

3. 拷贝hgn_dreadnaught文件夹,新命名为hgn_dreadnaught2,同时重命名里面的2个文件,并修改ship文件里面的LoadModel(NewShipType,1)为LoadSharedModel(NewShipType,"hgn_dreadnaught")

4. 在hgn_dreadnaught2的SHIP文件里面找到如下代码:
NewShipType.MinimalFamilyToFindPathAround = "MotherShip"
NewShipType.BuildFamily = "Flagship_Hgn"
NewShipType.AttackFamily = "BigCapitalShip"
NewShipType.DockFamily = "UltraCap"
NewShipType.AvoidanceFamily = "SuperCap"
NewShipType.DisplayFamily = "Flagship"
NewShipType.AutoformationFamily = "SuperCap"
NewShipType.CollisionFamily = "Big"
NewShipType.ArmourFamily = "HeavyArmour"
NewShipType.UnitCapsFamily = "Dreadnaught"
改成:
NewShipType.MinimalFamilyToFindPathAround = "MotherShip"
NewShipType.BuildFamily = "Shipyard_Hgn"
NewShipType.AttackFamily = "BigCapitalShip"
NewShipType.DockFamily = "Shipyard"
NewShipType.AvoidanceFamily = "MotherShip"
NewShipType.DisplayFamily = "Capital"
NewShipType.AutoformationFamily = "CapShip"
NewShipType.CollisionFamily = "Big"
NewShipType.ArmourFamily = "HeavyArmour"
NewShipType.UnitCapsFamily = "Capital"
NewShipType.UnitCapsShipType = "Destroyer"

5. 增加下列代码到Homeworld2\Data\SCRIPTS\building and research\hiigaran\build文件中
{
Type = Ship,
ThingToBuild = "hgn_keep",
RequiredResearch = "",
RequiredShipSubSystems = "CapShipProduction",
DisplayPriority = 900,
DisplayedName = "$1700",
Description = "$1701",
},
{
Type = Ship,
ThingToBuild = "Hgn_Dreadnaught2",
RequiredResearch = "",
RequiredShipSubSystems = "CapShipProduction",
DisplayPriority = 1000,
DisplayedName = "$1540",
Description = "$1541",
},

6. 增加下列代码到Homeworld2\Data\Ship\ICONS\shipicons文件中
Hgn_Dreadnaught2 = {
LargeIcon = {
texture = "DATA:\\Ship\\Icons\\icon_ships.mres",
textureUV_TL = {
600,
64,
},
textureUV_WH = {
200,
64,
},
stretchOnDraw = 1,
},
}
hgn_keep = {
LargeIcon = {
texture = "DATA:\\Ship\\Icons\\icon_ships.mres",
textureUV_TL = {
600,
128,
},
textureUV_WH = {
200,
64,
},
stretchOnDraw = 1,
},
}

7. 增加下列代码到Homeworld2\Data\SCRIPTS\formations\hgn_mothership_parade文件中
paradeSlot("Hgn_keep",{
871,
-448,
2406,
},{
0,
0,
1,
},{
1,
0,
0,
},500)
paradeSlot("Hgn_Dreadnaught2",{
-1283,
-439,
2540,
},{
0,
0,
1,
},{
1,
0,
0,
},0)
现在已经可以建造守护者和无畏舰了,他们占用的是驱逐舰人口。
 楼主| 发表于 2009-6-25 11:28:18 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:戈戈虎二号

R的插件里有一个 图标 是路胫的 按一下, 就会生成一个箭头 然后把那个箭头移到想要发射飞机的地方按CTAL加A打开属性 . 选择最后一项 会看到有各种船的级别 然后你需要这个箭头代表哪个船的话,你就打上钩 然后选择左上角第1项 再选择最后一项 就可以看到距离和速度2个选项了 如果是发射飞机的话,距离就设成20。速度的话,你自己定。300到500都可以 定好这2个后,按一下R插件的路径图标 然后就可以在动画时间滑块那里看到有1条红线 这就是第1贞 注意。不能在第0贞开始。要在第1贞。你可以到MAYA的属性设定里把动画的属性设成NTSC30贞 现在拖动时间滑块到第10贞。然后把箭头拖动到你想要战机飞出来的位置。然后把距离设成80到100。再按一下R插件的路径图标 。这这样战机的发射路径就完成了 .要注意的是:箭头物体是不和ROOT点关联的。而且在钩选船的类型时,如果是发射的路径,那么一定要钩选择第1项。是反回的就不用钩第1项 ,反回的设定和发射的反过来。动画是30贞。具体的可以参考R给的航母的例子
 楼主| 发表于 2009-6-25 11:28:33 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:家园唯一高手

武器参数说明
以离子炮为例子
StartWeaponConfig(NewWeaponType,"Gimble","InstantHit","IonBeam","Normal",0,4000,0,4,2,0,20,0,1,7,0,0,0,0,0,0,0.1,"Normal",0,0,1000)
AddWeaponResult(NewWeaponType,"Hit","DamageHealth","Target",2200,2200,"") 最后的2200,2200是攻击力
AddWeaponResult(NewWeaponType,"Hit","Push","Target",-100,-100,"") 被打击目标的推动参数
-------------
AddWeaponResult(NewWeaponType,"Hit","SpawnWeaponFire","Target",0,0,"Hgn_BurstCannonBurst")
AddWeaponResult(NewWeaponType,"Miss","SpawnWeaponFire","Target",0,0,"Hgn_BurstCannonBurst")调用下一级武器
setPenetration(NewWeaponType,30,1,{---------设置武器的有效半径和对这种装甲的总伤害系数
PlanetKillerArmour = 0,
},{
SubSystemArmour = 0.3,
},{
ResArmour = 0.2,
})
setAccuracy(NewWeaponType,1,{---------------设置对各种类型舰只的总命中率
Fighter = 0.1,
},{
Corvette = 0.08,
},{
munition = 0.1,
})
setAngles(NewWeaponType,6,0,0,0,0)-----可以射击的有效角度,左转角度,右转角度,下俯角度,上仰角度。其中左转和下俯角度为负值。如果设为正值(+30)则炮台的初始角度反向调整30度;其他参数反之亦然


StartWeaponConfig
下的括号里的内容(已逗号间隔)分别是
1- ---------------------武器描述头文件。
2- ---------------------武器的类型
3- ---------------------武器的开火类型
4- ---------------------武器调用的特效代码
5- ---------------------武器的升级类型
6- ---------------------武器速度,光线武器是0
7- ---------------------武器射程
8- ---------------------杀伤半径,如防空炮杀伤半径
9- ---------------------子弹存在时间,这里是光线持续时间
10- --------------------离子武器开始开火到离子光束真正发射出的时间
11- 发射的时候导弹的弹射出机舱的方向。例如H的鱼雷是向前发射的,而V的BC上的导弹是向上弹射的。
12- max Effects Spawned 可能是视觉效果相关的
13- Use Velocity Pred
14- ---------------------是否在开火前确认弹道上没有友军,否则可能会打到自己人。
15- ---------------------两次开火的中间间隔时间
16- ---------------------每次开火持续射击时间
17- ---------------------每轮射击完成之后等待时间
18- ---------------------是否在无法射击主要目标时自动射击次要目标
19- ---------------------是否在无法射击主要目标时射击周围邻近的敌人
20- --------------------方位角速度
21- --------------------方位角速度
22- speedMultiplierWhenPointingAtTarget - when the weapon is over the target ship it&#39;s speed is modified by this, use < 1 to make beams sweep slowly over the target  
23- --------------------
24- ---------------------是否主动追击射击范围外的敌人
25- ---------------------是否先执行武器动画才可以开火(例如开启仓门)
26- ---------------------低于此数字的HP的时候光线武器穿透目标
 楼主| 发表于 2009-6-25 11:28:47 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:家园唯一高手

改变船的外型或者添加武器点之类就必须要这样几个工具:HW2ICArchive(用来解开游戏的BIG文件,可以得到舰船的HOD文件),HODTool(用来解开HOD文件,可以得到OBJ文件和帖图文件,用来倒入MAYA),MAYA3。0(将OBJ文件倒入可以得到舰船的模型,帖图,添加武器点,捕捉位置,灯光,引擎位置,飞船着陆点,损伤特效点等都可以在MAYA中实现),homeworld2_RDN1.1(RDN提供的一系列修改工具的支持工具包,其中有MAYA3。0的插件包),帖图修改方面还必须要Photoshp,另外还有几个软件也需要安装,为的是给上面的一些修改工具提供库文件(不装的话前两个工具就可能不能使用)有:RelicArchiveExtractorFullInstall,Hwse2Package,.NET 1.1 Framework。如果不想在MAYA里面修改那么麻烦可以用HManager这个DOS命令行工具直接解开舰船的HOD文件成HIER文件在里面直接加点和武器。luaDC这个小工具也很必要,可以方便你观察舰船的级联结构,在使用HManager进行修改的时候很有帮助。
如果要修改参数,调用武器,舰船属性,武器属性之类的话可以在论坛上找找老帖下栽DATA文件包,里面的文件可以直接用记事本打开修改设置参数。
 楼主| 发表于 2009-6-25 11:28:55 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:轶名

家园二使用的音乐和音效的档案都储存在.big档案里面.一代的 big的声音文件扩展名为.aif,而二代声音文件扩展名则是.fda.虽然扩展名不同,他们的格式是几乎完全一样的,都是.aifr档案,只是 Relic的aifr是自订的格式,不同于一般标准的aif/aifr.想要用Winamp听这些档案,需要用到Relic的In_Aif.dll.

简单的说,要修改家园二的音效/音乐,可以分成下面几个步骤:

* 将所想要汇入游戏中的声音档案(例如.mp3)转换成未压缩的.wav档
* 利用Relic的音效编码器把wav档案转成aifr格式,并放到适当位置

* 将声音文件转成未压缩的wav
有很多音效编辑程序可以做到这件工作.例如Nero内附的Nero Wave Editor,或是Audacity之类的免费工具.不过如果只是要把mp3转换成wav而不打算做任何修改,而且手上又有Winamp2.x版的话,也可以用Winamp来做转换.其它细节就不在此详述,请自己研究这些工具怎么用吧.

* 将Wav编码成aifr
首先到下载[Relic Audio Encoder],把他解压缩以后可以看到四个档案.其中enc.exe是音效编码程序的本体.要使用enc.exe来把wav转成Relic的aifr档案.首先进入文字模式,切换目录到你的enc.exe所在的目录,并且把你要转换的wav档案跟enc.exe放在同一个目录,然后执行这一行指令

enc <wav_file> <aifr_file>

其中<wav_file>是你要转换的wav档的名字,而<aifr_file>是转换完成的文件名字.这时你看到的画面会像[这样].

转换的过程需要数分钟,可以趁这个时间去上个厕所吃块饼干.等到出现"Done."的字样,表示档案已经转换完成.若是没办法适应文字接口作,那可以把要转的wav文件名称改为"src.wav",并且把wav档,EZenc.bat,跟enc.exe放在同一个目录里面,再连点两下 EZenc.bat,就会自动把src.wav转换成"dst.aif".

这时候请在家园二安装目录=>Data目录中建立sound目录,sound里面建立一个music目录,music里面再建立一个staging目录,然后把刚刚的转换好的档案的档名改成staging_01.fda,并且放到staging目录中.就像是[这张图]一样

最后记得把家园二加上"-overrideBigFile"参数,然后进入游戏,由于staging_01.fda对应的是主选单的背景音乐,所以在进入游戏后会发现主选单的背景音乐已经变成我们刚刚自订的音乐了.其实家园二好像在不加这个参数的状况下也会自动加载音乐档案.不过我是觉得还是养成这个习惯比较好.

当然你也可以把其它的音乐,甚至声音文件改成你想要的档案,只要找到对应的档名就可以了.至于有哪些档案就由各位自行在.big里面研究了.当然,你也可以为自己做的地图加上自己喜欢的音乐.只要把他转成.fda后放在适当的位置,地图里面也有设定音乐的文件名就可以了.
 楼主| 发表于 2009-6-25 11:29:14 | 显示全部楼层

Re: 家园2MOD教程(出自www.9ccn.net)

作者:轶名

使用Photoshop7制作


图像为64 x64 像素。

图像为 24 或 32 bit 的Targa(.tga)格式文件.

为了要使用透明,图像一定有一个Alpha通道并且是 32 bit 。

图像不能是压缩的。

在Alpha通道中,黑色是透明的,白色是不透明的,剩下的都介于两者之间的半透明。


好的。 现在进入PS的教学。 先假定你有一幅图像,想导入HW2中作为徽章。 我来掩饰该如何将它做成部份透明;如果你不需要透明,完成第 1 步骤然后直接HJ到第 5 步骤。 制做一个徽章的过程十分简单。 一旦你做出一个你满意的徽章,你会情不自禁的大笑出来。

第 1 步
打开文件。  

第 2 步
裁减掉你需要作为透明的部份。  


第 3 步
找到 "Channels(通道)"标签, 或者点击菜单栏上的windows(窗口)->Channel(通道)。 将鼠标移过去点击那个像new layer(新图层)的按钮。


这时应该创建了叫"Alpha1”的新图层,并且图像应该全部变成黑色。用油漆桶工具将他涂成白色。


第 4 步
按在通道标签里的 &#39;RGB通道&#39; 。 这时你的图像应该和步骤2的图像一样。 选择需要变成透明的区域。  


现在,注意不要取消选择,按通道里面的 &#39;Alpha 1&#39; 。 可以看到除了那只老鹰其他的地方都被选中了。


按键盘上的delete键。 这时在alpha通道中有一块剪切出的白色区域,周围填满了黑色。


第 5 步骤
在菜单栏中,选择image(图像)->image size(图像大小)

取消 “Constrain Proportions(约束比例)”的选择, 将Pixel Dimensions(象素大小)下面的高度和宽度都设为64. 按确定 。

第 6 步骤
剩下的就是把图像存为一个合适的格式。在菜单栏,选择FILE(文件)->SAVE AS(另存为)

将文件存为Targa(.tga)格式,32bits色深, 保存到...Homeworld2\Sierra\Homeworld2\Bin\Profiles\Badges\下。

下次在你进入家园2的时候,选择使用了profile maker,你就能看到你的新徽章了。如果你收到一个怪异的错误消息,或者背景出现了问题,可能是你忘记了上面的某一步,重新试一次吧。

还要先解除锁定的背景
发表于 2009-7-14 23:54:06 | 显示全部楼层
[代码]家园2,武器 .weapon参数说明

敎程目录索引页面
关键字:[武器代码 .weapon]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
武器参数说明
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者:家园唯一高手
出自:家园官方论坛

以离子炮为例子
StartWeaponConfig(NewWeaponType,“Gimble“,“InstantHit“,“IonBeam“,“Normal “,0,4000,0,4,2,0,20,0,1,7,0,0,0,0,0,0,0.1,“Normal“,0,0,1000)
AddWeaponResult(NewWeaponType,“Hit“,“DamageHealth“,“Target“,2200,2200,““) 最后的2200,2200是攻击力
AddWeaponResult(NewWeaponType,“Hit“,“Push“,“Target“,-100,-100,““)
setPenetration(NewWeaponType,30,1,{---------设置武器对防御场的穿透概率、武器对各种装甲的伤害系数(总)。
PlanetKillerArmour = 0,-------------------对各种装甲的伤害系数
},{
SubSystemArmour = 0.3,
},{
ResArmour = 0.2,
})
setAccuracy(NewWeaponType,1,{---------------设置对各种类型舰只的命中率(总)
Fighter = 0.1,,{---------------设置对各种类型舰只的命中率
},{
Corvette = 0.08,
},{
munition = 0.1,
})
setAngles(NewWeaponType,6,0,0,0,0)-----可以射击的有效角度,左转角度,右转角度,下俯角度,上仰角度。其中左转和下俯角度为负值。如果设为正值(+30)则炮台的初始角度反向调整30度;其他参数反之亦然


StartWeaponConfig
下的括号里的内容(已逗号间隔)分别是
1- ---------------------武器描述头文件。
2- ---------------------武器的类型
3- ---------------------武器的开火类型
4- ---------------------武器调用的特效代码
5- ---------------------武器的升级类型(
6- ---------------------武器速度,光线武器是0
7- ---------------------武器射程
8- ---------------------杀伤半径,如防空炮杀伤半径
9- ---------------------子弹存在时间,这里是光线持续时间
10- --------------------离子武器开始开火到离子光束真正发射出的时间
11- 发射的时候导弹的弹射出机舱的方向。例如H的鱼雷是向前发射的,而V的BC上的导弹是向上弹射的。(0,向前)
12- max Effects Spawned 可能是视觉效果相关的
13- Use Velocity Pred
14- ---------------------是否在开火前确认弹道上没有友军,否则可能会打到自己人。
15- ---------------------两次开火的中间间隔时间
16- ---------------------每次开火持续射击时间
17- ---------------------每轮射击完成之后等待时间
18- ---------------------是否在无法射击主要目标时自动射击次要目标
19- ---------------------是否在无法射击主要目标时射击周围邻近的敌人
20-  --------------------方位角速度
21-  --------------------方位角速度
22- speedMultiplierWhenPointingAtTarget - when the weapon is over the target ship it’s speed is modified by this, use 〈 1 to make beams sweep slowly over the target
23- --------------------
24- ---------------------是否主动追击射击范围外的敌人
25- ---------------------是否先执行武器动画才可以开火(例如开启仓门)
26- ---------------------低于此数字的HP的时候光线武器穿透目标
发表于 2009-7-14 23:54:45 | 显示全部楼层
[代码]高阶武器.weapon修改教程,细节参数的使用

敎程目录索引页面
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
武器终极修改教程
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者:家园唯一高手
出处:家园官方论坛
本篇不涉及hardpoint的添加,改变已有的舰船模型,只在已有的DATA的基础上对武器进行修改。
家园2的武器总体上可以分为三类:光线类武器,射击类武器,导弹类武器。它们各自的特点决定武器的属性,因此我们在修改时常常不能随心所欲。我写这篇教程就是想要解决一些困惑大家很久的问题。

基础篇:

最简单的修改就是改武器本身的参数,在戴阿米德航空航天署的参数帖中有详细的描述。这样修改只能改本身武器的攻击力,射击距离,连续射击的能力等。但是要注意:
setPenetration(NewWeaponType,100,1,{
  PlanetKillerArmour = 0,  (行星杀手装甲)
},{
  SubSystemArmour = 0.3,  ( 子系统装甲)
},{
  MediumArmour = 0.5,     (中型装甲)
},{
  HeavyArmour = 2,      (重型装甲)
})
setAccuracy(NewWeaponType,1,{
  Fighter = 0,          (战机级 )
},{
  Corvette = ,         (护航机级)   
},{
  munition = 0.1,         (资源船级)
})
setAngles(NewWeaponType,0,-180,180,-30,60)
(1)每种武器都有对不同装甲的杀伤系数,直接改对装甲的伤害系数就可以提高武器的攻击力,而在游戏的攻击力栏目数值不变。
(2)每种武器都有对不同级别敌人射击精确度,设置0就表示不攻击,1就表示精度为百分之百。越大越精确。
(3)最后5个数值就是本武器的射击范围,第2,3表示在水平面上面的可转动度数;4,5表示垂直面的。第一个数值是水平和垂直的综合,在不转动的情况下的射击角度。如果设成180,那么后面的都没有意义了,不转动就可以做到全(球)面攻击!

中级篇:

首先要熟悉每种船的名称,和它们的武器名称,性能和效果。在游戏中看到哪个船的武器好就让自己的船发射本不属于自己的武器。说明白点,就是用武器的调用来实现发射不同武器。通过观察发现:在家园2里面武器发射口有活动的和固定的两种,炮台和炮塔类是活动的可以旋转;鱼雷导弹发射口和炸弹发射口一般是固定的,不能旋转。还有一种看不到发射口的近身防空小炮(枪),它也是旋转的,但是活动范围很有限。
weapon文件夹里面的武器都分为以下三种:
(1)Gimble :光线武器,防御小炮和机枪大多都是这一类型。可以发射InstantHit(瞬间),和Bullet(子弹)类型;
(2)AnimatedTurret:所有可以转动的炮口,也可以发射Bullet和InstantHit两个类型;
(3)Fixed:导弹和鱼雷发射口专用的。
了解武器的类型就可以做到在调用的时候不会出现错误而死机跳出。
具体做法就是:直接调用相同的武器类型。不同的类在调用的时候可能会出现不能发射,没办法瞄准或者干脆死机。
以H拦截机interceptor为例,我很崇拜sajuuk的主炮,sajuukheavycannon跟拦截机武器kineticautogun同是Gimble类型,因此可以调用sajuuk的主炮到拦截机上面:
进入ship\hgn_interceptor\hgn_interceptor.ship
看到关于武器的那行StartShipWeaponConfig(NewShipType,“hgn_kineticautogun“,“Weapon_FrontGun“,“Fire“)
改为
StartShipWeaponConfig(NewShipType,“kpr_sajuukheavycannon“,“Weapon_FrontGun“,“Fire“)
保存退出,进入游戏就可以看到效果。
同样的修改方法可以应用的所有的武器上面,只要是相同类型的武器之间就可以放心的调用而不会出问题!
注意,这个修改还可以变通一下,H重巡的激光主炮battlecruiserturretedioncannon虽然是AnimatedTurret类型,但是同sajuukheavycannon一样是光线武器,光线武器可以在Gimble类型发射,因此所有的光线武器都能在Gimble类型发射。还包括hgn_pulsar,hgn_pulsarside等。
同上原理,AnimatedTurret类型也可以发射所有Bullet和InstantHit两个类型的所有武器。但是不同的是当AnimatedTurret类型的发射口发射属于Gimble类型的武器时会出现无法移动炮口瞄准的情况。直接调用的时候要避免。

高级篇:

简单的在SHIP文件里面调用武器显然不能够满足修改的要求,很多情况下这样的调用根本就无法使用,最终还是要在weapon下面修改。一般有两种方法:一可以改被调用的武器让它符合发射的条件;二也可以干脆重新建立一个weapon文件被用来调用。在家园2里的weapon文件名称是没有限制的,大家可以尽情的创造自己喜欢的武器。任何发射口发射任何武器的规则就是:只要你调用的武器符合了发射的条件就可以了。
前面提到过的武器类型已经能做到的修改这里就不讲了,主要讲前面的方法还不能实现的:

(1)Gimble :在能发射InstantHit和Bullet类型武器的基础上发射Missile类型(导弹,鱼雷)。
方法:其实用前面提到的直接在SHIP文件里面直接调用Missile类型的武器就可以了^*^(因为不导弹不存在瞄准的问题,可以全方位发射) Gimble发射口本来就可以直接发射所有Missile类型的武器,只是在游戏中我们看不到罢了。
(2)AnimatedTurret:发射所有Missile类型武器。
用H驱逐舰做例子,把4门炮台都改为发射自己的鱼雷。
方法一:  AnimatedTurret发射口发射Missile类型武器也可以用直接调用的方法,但是这样修改之后旋转炮台加载导弹发射的时候不会转动很不好看。为了让Missile类型的武器符合旋转炮台的发射条件(旋转瞄准发射),还要做如下调整:
进入weapon\hgn_destroyertorpedolauncher\hgn_destroyertorpedolauncher.wepn
将武器发射类型Fixed改为AnimatedTurret;武器参数:120,4500,0,0,0,0,1,0,1,16,0,0,1,0,0,0, 0.1,改为120,4500,0,0,0,0,1,0,1,16,0,0,1,0,120,120,0.1,  ;炮台旋转角度:setAngles (NewWeaponType,179,0,0,0,0)改为setAngles(NewWeaponType,0,-180,180,-20,60)
保存后退出。  通过这个修改驱逐舰的炮台都能旋转发射鱼雷但是有个问题就是原来的鱼雷发射口也变成了旋转发射了,不再是向前弹射。
方法二:  建立一个新的导弹武器的weapon文件,然后调用。修改如下:
进入weapon文件夹,复制hgn_destroyertorpedolauncher然后粘贴并重命名为 hgn_destroyertorpedolauncher2,进入hgn_destroyertorpedolauncher2将 hgn_destroyertorpedolauncher.wepn重命名为hgn_destroyertorpedolauncher2.wepn进入hgn_destroyertorpedolauncher2.wepn按照方法一修改具体参数。
建议大家用第二种方法修改,这样就不会破坏原武器weapon文件,而修改效果是一样的。在SHIP文件调用武器名的时候要注意用改动后的hgn_destroyertorpedolauncher2为武器名。
另外AnimatedTurret发射口发射其它非旋转类型武器都可以参考方法二来修改。

(3)Fixed:发射InstantHit和Bullet类型武器。
主要是解决无法瞄准的问题,用上面方法二就可以轻松搞定了。

用以上的方法就可以实现任何一个发射口发射任何武器了。现在再加入复数调用就可以实现一门发射口发射N种武器。
以H驱逐舰为例,给它的顶炮复数调用H重巡激光主炮和舰炮,无畏副炮和防空炮,V重巡量子炮和导弹,H离子炮,H丛集飞弹,H防空炮,。代码如下:
StartShipWeaponConfig(NewShipType,“Hgn_DestroyerTorpedoLauncher“,“Weapon_Torpedo“,“Weapon_Torpedo“)

StartShipWeaponConfig(NewShipType,“hgn_battlecruiserturretedioncannon“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_battlecruiserkineticburstcannon“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_dreadnaughtchinturret“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“vgr_bcforwardweapon“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“vgr_heavyfusionmissilelauncherbc“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_ioncannon“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_clustertorpedolauncher“,“Weapon_TurretTop“,“Weapon_TurretTop“)
StartShipWeaponConfig(NewShipType,“hgn_kineticburstcannon“,“Weapon_TurretTop“,“Weapon_TurretTop“)

StartShipWeaponConfig(NewShipType,“hgn_kineticburstcannondestroyer“,“Weapon_TurretBottom“,“Weapon_TurretBottom“)
StartShipWeaponConfig(NewShipType,“hgn_kineticburstcannondestroyer“,“Weapon_TurretFront“,“Weapon_TurretFront“)
StartShipWeaponConfig(NewShipType,“hgn_kineticburstcannondestroyer“,“Weapon_TurretBack“,“Weapon_TurretBack“)
其中vgr_bcforwardweapon,hgn_ioncannon和hgn_clustertorpedolauncher不能正常发射(它门分别属于Gimble和Fixed类型发射口,直接调用不能瞄准),需要按照方法二进行修改。大家可以试试^*^!!!


新的导弹类的添加:
如需要在missile里面添加一个vgr_heavymissile2武器文件。
首先需要vgr_heavymissile的HOD文件,拷贝到vgr_heavymissile2下面,再将vgr_heavymissile.hod 和vgr_heavymissile.miss和vgr_heavymissile.events重新命名为vgr_heavymissile2.hod 和vgr_heavymissile2.miss和vgr_heavymissile2.events然后在scripts/weaponfire文件夹下面添加一个vgr_heavymissile2文件夹将vgr_heavymissile.wf文件复制过来重命名为 vgr_heavymissile2即可.

新子系统武器和新船在系统栏小图的修改:
在SHIP/icons/shipicons里面修改。

修改武器的爆炸效果:
在scripts/weaponfire文件夹下面修改

双管炮火间开火间隔:
setMiscvalues(NewWeaponType,4,0.3)
前面的4是炮管退堂时间,后面的0.3是双管炮火间开火间隔

如果觉得在weapon里面修改实在是太麻烦了,干脆把子系统武器的模型直接调用到已有的武器位置使用吧。这个方法修改可就顾不到模型的美观了,推荐新手使用。
子系统武器一共有5个,在subsystem文件夹里分别是:hgn_battlecruiserionbeamturret; hgn_battlecruiserkineticburstcannon; hgn_battlecruiserkineticburstcannonleftside; hgn_battlecruiserkineticburstcannonrightside; vgr_heavyfusionmissilelauncher战列巡洋舰。
它们都是使用单独的模型因此可以添加到武器位置直接使用。
修改的时候把以下3条:
StartShipHardPointConfig(NewShipType,“HeavyFusionMissileLauncher“,“----- “,“Weapon“,“Innate“,“Damageable“,“Vgr_HeavyFusionMissileLauncherbc“,““, ““,““,““,““,““,““,““)    (V巡洋舰导弹)

StartShipHardPointConfig(NewShipType,“battlecruiserionbeamturret“,“----- “,“Weapon“,“Innate“,“Damageable“,“hgn_battlecruiserionbeamturret“,““,““, ““,““,““,““,““,““)    ( H巡洋舰离子炮)

StartShipHardPointConfig(NewShipType,“battlecruiserkineticburstcannon“, “-----“,“Weapon“,“Innate“,“Damageable“, “hgn_battlecruiserkineticburstcannon“,““,““,““,““,““,““,““,““)      (H巡洋舰前炮) 。
中的一条写到你想改的船的SHIP文件里面,在“----”位置填写武器位置就可以了。虽然每一个武器位置都可以同时加几个子系统武器的模型,但是没有必要,因为被别的模型覆盖了就不能完全发射了。〉;
武器位置在每个SHIP文件里面找到如:StartShipWeaponConfig(NewShipType,“Hgn_KineticAutoGun “,“Weapon_FrontGun“,“Fire“)中的“Weapon_FrontGun“,将它代入上面的3条代码写入SHIP文件就可以了。
发表于 2009-7-14 23:56:28 | 显示全部楼层
[其他]制作舰徽

敎程目录索引页面
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
制作舰徽
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者:五月
出处:家园官方论坛

使用Photoshop7制作


图像为64 x64 像素。

图像为 24 或 32 bit 的Targa(.tga)格式文件.

为了要使用透明,图像一定有一个Alpha通道并且是 32 bit 。

图像不能是压缩的。

在Alpha通道中,黑色是透明的,白色是不透明的,剩下的都介于两者之间的半透明。

好的。 现在进入PS的教学。 先假定你有一幅图像,想导入HW2中作为徽章。 我来掩饰该如何将它做成部份透明;如果你不需要透明,完成第 1 步骤然后直接HJ到第 5 步骤。 制做一个徽章的过程十分简单。 一旦你做出一个你满意的徽章,你会情不自禁的大笑出来。

第 1 步
打开文件。

第 2 步
裁减掉你需要作为透明的部份。


第 3 步
找到 “Channels(通道)“标签, 或者点击菜单栏上的windows(窗口)-〉Channel(通道)。 将鼠标移过去点击那个像new layer(新图层)的按钮。
这时应该创建了叫“Alpha1”的新图层,并且图像应该全部变成黑色。用油漆桶工具将他涂成白色。


第 4 步
按在通道标签里的 ’RGB通道’ 。 这时你的图像应该和步骤2的图像一样。 选择需要变成透明的区域。
现在,注意不要取消选择,按通道里面的 ’Alpha 1’ 。 可以看到除了那只老鹰其他的地方都被选中了。
按键盘上的delete键。 这时在alpha通道中有一块剪切出的白色区域,周围填满了黑色。

第 5 步骤
在菜单栏中,选择image(图像)-〉image size(图像大小)
取消 “Constrain Proportions(约束比例)”的选择, 将Pixel Dimensions(象素大小)下面的高度和宽度都设为64. 按确定 。

第 6 步骤
剩下的就是把图像存为一个合适的格式。在菜单栏,选择FILE(文件)-〉SAVE AS(另存为)
将文件存为Targa(.tga)格式,32bits色深, 保存到...Homeworld2\Sierra\Homeworld2\Bin\Profiles\Badges\下。
下次在你进入家园2的时候,选择使用了profile maker,你就能看到你的新徽章了。如果你收到一个怪异的错误消息,或者背景出现了问题,可能是你忘记了上面的某一步,重新试一次吧。
发表于 2009-7-28 18:26:01 | 显示全部楼层
[s:82]高手
发表于 2009-10-3 00:14:44 | 显示全部楼层
好贴....
好贴.
您需要登录后才可以回帖 登录 | 加入帝国

本版积分规则

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

GMT+8, 2023-5-30 23:51 , Processed in 0.200102 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4 Designed by 999test

© 2001-2013 Comsenz Inc.

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