标题: [原创] MOD制作详细教程(不断更新中)
本主题由 baby331 于 2007-11-9 17:43 设置高亮
hcck
游侠会员



Rank: 1

精华 1
积分 402
帖子 173

金钱 454
经验 20
荣誉 10
互助 10

醒目提示:游侠武林三国大型游戏将在26号下午3点正式开服!无需下载客户端,直接进入即可游戏!
MOD制作详细教程(不断更新中)

本帖最近评分记录
baby331 2007-11-9 17:41 金钱 +50 原创内容,值得鼓励!
baby331 2007-11-9 17:41 互助 +2 原创内容,值得鼓励!



以下我已经掌握的部分,和大家分享,内容会不断更新,已有的内容中的不足欢迎大家补充,我也会加上去。

MOD基础部分
MOD的核心文件为 MOD.XML,在此文件里包含所有需要进入MOD的xml文件
其他XML文件都可以从Mod SDK\CnC3Xml文件夹下找出来。

如果要修改武器的话,可以找到weapon.xml,但是我想做出我的武器来,不想把那么多原始
武器信息也一起放入MOD,我是这么做的:
打开weapon.xml 找出头和尾

《?xml version="1.0" encoding="us-ascii" ?》
《AssetDeclaration xmlns="uri:ea.com:eala:asset"》
《Tags /》
《Includes》
《Include
type="all"
source="DATA:GlobalData/GlobalDefines.xml" /》
《/Includes》
中间是武器设置语句,我可以把需要的武器设置复制进来
最后用《/AssetDeclaration》结尾以对应上面的《AssetDeclaration
xmlns="uri:ea.com:eala:asset"》 xml语句和HTML语句是一样需要开头和结尾的,会HTML
语言的人应该没有问题。


mod.xml此文件的修改可以在samplemod里面的mod.xml为基础修改
语法为
《Include type="all" source="DATA:SampleMod/Data/SampleUpdatedLogicCommand.xml"
/》
其中 SampleUpdatedLogicCommand.xml是包含的文件名, DATA:SampleMod 是说明MOD的名
称,如果MOD文件夹名称是supernod ,那么就写成 DATA:supernod
其中
《Include type="reference" source="DATA:static.xml" /》
《Include type="reference" source="DATA:global.xml" /》
这两句我暂时认为是必须的,曾经去掉之后出错过。
用于修改的XML文件存在于 Mod SDK\CnC3Xml文件夹里,基本上游戏里所有的属性文件都在
了,活用这些东西完全可以做出全新的游戏来。
现在以GDI的APC为例子,文件为GDIAPC.XML,以我的修改做说明。

《GameObject
id="GDIAPC"  这个是游戏中识别这个单位的名称,我需要在游戏中新增一个APC,就改成了
GDIAPC1 同时把文件名也改成了GDIAPC1.XML,复制到了SAMPLEMOD\DATA文件夹下。

inheritFrom="BaseVehicle" 使用车辆的基本设置,这个文件在Mod
SDK\CnC3Xml\BaseObjects\BaseVehicle.xml
SelectPortrait="Portrait_GDIAPC"
Butt 按钮图片
Side="GDI"  说明这是GDI方的,实际情况下我改成NOD也没有影响。
EditorSorting="UNIT"  说明这个是“单位”而不是“建筑”
TransportSlotCount="1"  运输过程中占用的运输空间是1
BuildCost="700"  建造成本
BuildTime="7"  建造时间,单位是秒
CommandSet="GDIAPCCommandSet"  此车辆可以使用的命令。
CommandPoints="100"   这个据说是以前CNC用的参数,现在没有用到,只是放在那里
KindOf="PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT
CAN_CAST_REFLECTIONS SCORE TRANSPORT VEHICLE CAN_REVERSE_MOVE
CAN_BE_FAVORITE_UNIT"  说明车辆的一些属性和类别
RadarPriority="UNIT"  雷达上显示为“单位”
ThreatLevel="10"  
Producti  建造的时候在车辆队列中,应该就是重工厂队列
UnitCategory="VEHICLE"  单位的属性是车辆
Weap  武器属于GUN 应该也是说明性的东西
VoicePriority="176"  
EditorName="GDIAPC"  在地图编辑器里面的名称
Description="Desc:GDIAPC"  在游戏里的单位说明文字
TypeDescription="Type:GDIAPC"
EnergyProduction="2000"  这是我添加的,产生电力2000,出一辆APC就不用第二个电厂了
,哈哈。
》  GAMEOBJECT部分完毕
下面是单位行为设定
《LocomotorSet
Locomotor="GDIAPCLocomotor"  移动行为的类型是GDIAPCLocomotor,这个内容在Mod
SDK\CnC3Xml\GlobalData\Locomotor.xml,修改那个文件可以让单位有悬浮之类的效果,当
然你也可以直接改成别的单位的移动行为比如OrcaLocomotor,这样就会像奥卡一样飞起来
了。
C
Speed="180.0" 这是单位的行进速度,原来是72  /》
下面的说明从
《WeaponSetUpdate
id="ModuleTag_WeaponSetUpdate"》开始
《WeaponSlotTurret
ID="1"》
《Weapon
Ordering="PRIMARY_WEAPON"
Template="GDIAPCAutoCannon" /》 后面是武器名称,从weapon.xml里可以找到
《TurretSettings  APC的炮塔设定
TurretTurnRate="200"   旋转速度
TurretPitchRate="200"  上下角度的速度
AllowsPitch="true"  
MinimumPitch="-15d"  最小角度是-15度
MinIdleScanTime="1.0s"  空闲时间炮塔转动,这是空闲1秒
MaxIdleScanTime="5.0s"  空闲时间炮塔转动的持续时间
MinIdleScanAngle="0.0"  空闲时转动的最小角度
MaxIdleScanAngle="90.0"》  空闲时转动的最大角度
《TurretAITargetChooserData
CanAcquireDynamicIfAssignedOutOfRange="true" /》 这是炮塔索敌的AI
《/TurretSettings》
《/WeaponSlotTurret》
重要的装人部分来了
《HordeTransportContain
id="ModuleTag_Contain"
ObjectStatusOfC
C 最大装入单位的数量
Slots="1" 显示槽的数量,最好设成和上面一样
AllowEnemiesInside="false"  是否允许敌人进入
AllowAlliesInside="true"  是否允许自己人进入
AllowNeutralInside="false"  是否允许自然单位进入
AllowOwnPlayerInsideOverride="true"
ShowPips="true"
EnterSound="VehicleEnter"
ExitSound="VehicleExit"
KillPassengers》 是否在死亡时杀死所有内部单位,这个我设置了false还
是一样全死,不知道为什么。
《PassengerFilter  装入单位的过滤,这里是只允许步兵进入
Rule="ANY"
Include="INFANTRY" /》
《DieMuxData
DeathTypes="ALL" /》
《PassengerData
B》
《Filter
Rule="NONE"
Include="INFANTRY" /》
《/PassengerData》
《MemberTemplateStatusInfo 这里是狙击手的特殊设定,据这个设定来看,狙击手可以在
车内给神像轰炸定位。
ThingTemplate="GDISniperSquad"
ObjectStatus="CAN_SPOT_FOR_BOMBARD" /》
《/HordeTransportContain》

下面这部分是被APC死亡后的行为,设定是死亡后3秒钟慢慢下沉,下沉速度每秒2,这个2是
CNC3里面的长度单位。
《SlowDeath
id="ModuleTag_Death"
SinkDelay="3s"
SinkRate="2.0"
Destructi》

下面是特殊能力部分
《SpecialPower
id="ModuleTag_FireMinefield"  
SpecialPowerTemplate="SpecialPowerGDI_APCMinefield" 特殊能力名称为地雷场
UpdateModuleStartsAttack="true" /》
《WeaponFireSpecialAbilityUpdate
id="ModuleTag_FireMinefieldUpdate"
SpecialPowerTemplate="SpecialPowerGDI_APCMinefield"
SpecialWeapon="GDIAPCMinefield" 使用的武器,同样可以在weapon.xml里找到
StartAbilityRange="10.0" 可以使用能力的最小距离
UnpackTime="1.5s" 整个使用过程的时间
PackTime="1.0s"
Options="CHECK_SPECIALPOWER_REQUIREMENTS_DURING_UPDATE"/》
《AISpecialPowerUpdate
id="ModuleTag_APCMineLayer"
CommandButt
SpecialPowerRadius="100.0" 这是地雷场的直径
SpecialPowerAIType="SPECIAL_POWER_RANGED_AOE_ATTACK" /》

单位HP的部分
《ActiveBody
id="ModuleTag_Body"
MaxHealth="2800" /》 默认是2800,不经打呀,加两个零就差不多了。
《Shape  单位外框设置,估计是用来做碰撞,碾压判定之类的
Type="BOX"
MajorRadius="20.0"
MinorRadius="10.0"
Height="11.5"
ContactPointGeneration="VEHICLE" /》
《VisionInfo
Visi  自动索敌范围,进入这个范围内的敌人会被攻击
ShroudClearingRange="400" /》 单位去除地图迷雾的范围,如果设置50000,那么就是地
图全开了。
《CrusherInfo  碾压等级
CrusherLevel="0"  0是什么都不能压 MM是3
CrushEqualLevelProps="true"
CrushableLevel="2" /》 被碾压等级,MM是3,可以压2的。
-------------------------------------------------------------------------
关于修改武器方面,以神像为例。
<WeaponSlotTurret
ID="1">
<Weapon
Ordering="PRIMARY_WEAPON"
Template="GDIJuggernaughtArtillery" />
<TurretSettings
TurretTurnRate="360"炮塔转速,度/秒
TurretPitchRate="360"炮塔上下倾斜速度,同样是 度/秒
AllowsPitch="true"是否允许上下倾斜
MinimumPitch="-60d"最大倾斜度是向下60度
PitchHeight="90%"
MinIdleScanTime="1.0s"
MaxIdleScanTime="5.0s"
MinIdleScanAngle="0.0"
MaxIdleScanAngle="90.0">
<TurretAITargetChooserData />
</TurretSettings>
</WeaponSlotTurret>
这样是一个完整的装在炮塔上的武器的描述,炮塔的参数我已经修改过,转动更加灵活。
Template="GDIJuggernaughtArtillery"  引号内是武器的名称,可以在weapon.xml内查找找到
接下来我们看weapon.xml内关于GDIJuggernaughtArtillery武器的描述。
<WeaponTemplate
id="GDIJuggernaughtArtillery"  ID是用来识别武器的,我的新神像不想影响到原来神像的武器,就在名称后加上个1,神像文件内调用的时候也改成Template="GDIJuggernaughtArtillery1" 就可以了。
Name="GDIJuggernaughtArtillery" 这个不需要改
AttackRange="500.0"  攻击距离
MinimumAttackRange="100.0" 神像的炮为了避免炸到自己,有最小攻击距离,如果不想要有最小距离,删掉这行就可以。
MinTargetPitch="-15d"
MaxTargetPitch="15d"
Weap 炮弹的速度,500算是很慢的了,飞机速度一般也有175了,所以我会改成2500
ScatterRadius="50" 炮弹散布的直径
ScatterLength="50" 散布范围长度 --- 这两项我改成250和150,但是实际散布还是一直线。
FireFX="FX_GDI_JuggernaughtArtilleryFire" 开火效果
FireVeteranFX="FX_GDI_JuggernaughtArtilleryFireHeroic"  升级成精英单位后的开火效果
Weap 武器的后坐力,这个度数估计是发射后炮管上跳的角度
RadiusDamageAffects="ALLIES ENEMIES NEUTRALS"  杀伤范围,这里是所有单位都可以杀伤,如果不想伤到自己人的话就把里面的ALLIES删掉就是。
CanFireWhileMoving="false"  能不能在移动中开火,神像比较特殊,改成TRUE也是不行的,因为下面有一句开火需要一个展开状态状态。
CanFireWhileCharging="false"  能不能在装弹的时候发射
ClipSize="3"  弹夹一共几发炮弹
ReAcquireDetailType="PER_SHOT" 每次发射后重新矫正着弹点散布。
Flags="ORTHOGONAL_SCATTER" 翻译为直角——散布 可能就是说明炮弹散布的类型
ShotsPerBarrel="1" 每次发射几发
RequiredFiringObjectStatus="DEPLOYED" 发射需要的动作“展开”这个是在神像文件中定义的,神像需要把脚后的支撑板放下才能射击,如果要神像真正的移动中射击,删除这行,然后把CanFireWhileMoving="false" 改成true
CheckStatusFlagsInRangeChecks="false"
ProjectileCollidesWith="ALLIES ENEMIES NEUTRAL STRUCTURES WALLS"  炮弹飞行过程中可以碰撞的物体
这部分中另外会出现的是下面两句
AutoReloadsClip="AUTO" 自动装填弹药,火鹰战机中这句是AutoReloadsClip="RETURN_TO_BASE",是返回基地填装,只要换成AUTO,就可以无限制了。
AntiMask="ANTI_GROUND ANTI_AIRBORNE_VEHICLE ANTI_AIRBORNE_INFANTRY" 这句是武器攻击的单位,只能对地或者只能对空的武器换上这一句的内容就可以通吃了。

<ClipReloadTime 这是两个重新装弹的时间,秒为单位
MinSeconds="5s"
MaxSeconds="5s" />
<Nuggets>
<ProjectileNugget
ProjectileTemplate="FXArtilleryShell"
WarheadTemplate="JuggernaughtArtilleryWarhead"> 注意:这里的WarheadTemplate说明还有相应弹头语句可以修改,稍后我将在下面给出弹头的语句
<VeterancyProjectiles  这些是开火的效果语句,具体数值还没有详细测试。
VeterancyLevel="HEROIC"
ProjectileTemplate="FXArtilleryShell_Veteran"/>
</ProjectileNugget>
<SuppressionNugget
  Radius="100.0"
  Suppression="100"
  Durati />
</Nuggets>
<ScatterRadiusVsType
Radius="50.0">
<Filter
Rule="NONE"
Include="INFANTRY" />
</ScatterRadiusVsType>
<ScatterRadiusVsType
Radius="25.0">
<Filter
Rule="NONE"
Include="VEHICLE" />
</ScatterRadiusVsType>
</WeaponTemplate>
下面是神像大炮的弹头
<WeaponTemplate
  id="JuggernaughtArtilleryWarhead" 如果不想改变游戏中默认的武器,也可以修改ID名称,同样上面引用的弹头名称也要相应的修改
  Name="JuggernaughtArtilleryWarhead"
  ProjectileCollidesWith  = "ALLIES ENEMIES NEUTRAL STRUCTURES WALLS"  弹头可以撞击的东西
  RadiusDamageAffects="ALLIES ENEMIES NEUTRALS"> 单位伤害类型
<Nuggets>
<DamageNugget
  Damage="1000.0"  弹头伤害值
  Radius="25.0"  弹头伤害范围直径,在这个直径加大的话效果是非常可怕的,目前我的超级神像设置的是250,天上的空中单位高度不过是200左右,所以连飞机也能炸下来。
  DamageTaperOff="0" 伤害逐渐减少的参数,没有去研究过,估计就是越到范围边的伤害越小吧。
  DelayTimeSeconds="0.0s"  弹头爆炸延时
  DamageType="CANNON"  弹头伤害类型,CANNON会有伤害范围,SNIPER的话只能伤步兵,对装甲单位和建筑伤害非常的小,是GUN的话为机枪类型的伤害,没有伤害范围。
  DamageFXType="GDI_LASER"单位受伤害的表现。
  DeathType="NORMAL" />
</Nuggets>
</WeaponTemplate>
弹头设置结束
-------------------------
接下来是单位移动行为的修改,文件在Mod SDK\CnC3Xml\GlobalData\Locomotor.xml 同样可以把头尾复制出来,然后加入自己的定义进去。
再以神像为例
<LocomotorTemplate
id="JuggernaughtLocomotor" 这是用来调用的名称,不想改掉默认的话就复制一份出来,修改掉ID的名称
Name="JuggernaughtLocomotor"
Surfaces="GROUND RUBBLE CRUSHABLE_OBSTACLE"  可以移动的地点,其实简单的换成AIR就可以完全不受限制了
TurnTimeSeconds="2.5s" 转向需要的时间
TurnTimeDamagedSeconds="5s"
MaxSpeedDamaged="75%"
FastTurnRadius="9.0" 转向最大直径
SlowTurnRadius="1.0" 转向最小直径
Accelerati 0.5秒后开始加速
Formati  队形的类型,神像好像没有固定的队形。
BrakingSeconds="1s" 刹车时间,移动掉停止所需要的时间,
MinTurnSpeed="0%"
BehaviorZ="NO_MOTIVE_FORCE" 移动的方式 还有一种是SURFACE_RELATIVE_HEIGHT 意思是和地形表面高度相适应,飞机就属于这样的。
Appearance="TWO_LEGS" 移动的动作,神像是2脚移动,飞机之类是WINGS,悬浮类是ORCA是HOVER,
StickToGround="true" 紧贴地面的移动,这个没有测试过
CanMoveBackward="true" 单位可以倒退行走,这个我倒是没见过,神像似乎没有倒退的指令可以用。
BackingUpSpeed="33%" 倒退的速度是前进速度的33%
/>
PreferredHeight="150" 空中单位还有飞行高度参数。这个是火鹰的高度150,如果炮弹伤害范围设置超过150那么就可以炸到它了。
-------------------------------------------------------
下一次更新写建筑物的文件

[ 本帖最后由 hcck 于 2007-9-18 10:31 编辑 ]

顶部
枫之寒 (已离任)
版主
梦里花落知多少
『欧美战略游戏区』
游侠制作组
游侠战略游戏工作组【新闻】
命令与征服3专题站工作组副组长
冥斗士·天马流星拳·凤凰幻魔拳

★★★★


精华勋章 版主勋章 互助勋章 命令与征服GDI上将勋章 命令与征服专题站资深成员勋章 命令与征服系列勋章制作奖章 命令与征服精华勋章

Rank: 6Rank: 6

精华 10
积分 4964
帖子 2529

金钱 11617
经验 1908
荣誉 100
互助 241

来自 沙罗双树园

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。
LZ的贴子很好,不过是不是写得太过专业,能不能附上详细的图文介绍,毕竟大多数人还没有入门,他们看这些教程肯定就像是在看天书,我想cnc3MOD要流行起来还是得靠群众基础,如果只能成为高人的玩物,那mod也就失去了它的意义
另外我看到LZ参加了MOD教程活动,根据活动规则,活动是不能以链接转贴的形式参与的,请你把这篇贴子复制一下到活动贴回贴,至于评钱奖励,并不会比单开一个主题贴的少。。另外如果获得前三名,还可以获得“命令与征服3  MOD达人\高手”的游侠荣誉会员称号


[ 本帖最后由 枫之寒 于 2007-9-13 12:47 编辑 ]





顶部
EspAlex
分区版主
游侠资深版主
★★★★★★★★


元老版主勋章 版主勋章 资深版主勋章

Rank: 7Rank: 7Rank: 7

精华 1
积分 652
帖子 1157

金钱 16698
经验 0
荣誉 0
互助 1

来自 E&A Theo
参与论坛活动,赚取LTB!

这个改xml的实际上就等于以前的修改ini文件,很多项目都是一样的。
这里的几个教程连起来看应该就能上手了。

[ 本帖最后由 EspAlex 于 2007-9-13 13:07 编辑 ]

顶部
zzz555777
游侠会员


Rank: 1

精华 0
积分 48
帖子 127

金钱 207
经验 0
荣誉 0
互助 2

醒目提示:游侠武林三国大型游戏将在26号下午3点正式开服!无需下载客户端,直接进入即可游戏!

楼主很厉害啊,再接再厉
让更多的fans更容易接触

顶部
hcck
游侠会员



Rank: 1

精华 1
积分 402
帖子 173

金钱 454
经验 20
荣誉 10
互助 10

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。

等我能写的都写完了贴过去吧
其实MOD制作并不需要什么图片,MOD制作最关键的都是XML里面的文字,读懂了就能行,图片最多用来说明一些游戏中的效果。

顶部
baby331
离任版主


Rank: 5Rank: 5Rank: 5

精华 1
积分 573
帖子 360

金钱 2227
经验 99
荣誉 10
互助 33

来自 太阳系以外的Scrin星球
参与论坛活动,赚取LTB!

捧个场! hcck 同志最有可能获得前 3名哟!

其实 hcck 同志说的已经算简单了,以前我只是看他的原代码自己对照学习的呢!

例如我要修改圣灵机甲的生命值,只须用记事本打开圣灵文件:NODAvatar.xml , 然后查找 MaxHealth ,等号后面的数字就是生命值 ,把数字改 999999,已经算是血牛打不死那种了!

其他方面的修改就如此类推!

顶部
liuxh3388
游侠会员



Rank: 1

精华 0
积分 2
帖子 5

金钱 6
经验 0
荣誉 0
互助 0

醒目提示:游侠武林三国大型游戏将在26号下午3点正式开服!无需下载客户端,直接进入即可游戏!

好东西。。哇哈哈。。这东西太简单了。。。。。。

顶部
topspeedhyfm
游侠会员


Rank: 1

精华 0
积分 92
帖子 306

金钱 365
经验 0
荣誉 0
互助 0

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。

希望楼主搞个图文。。。。。。。。。。。。。。。

顶部
xtaypm
游侠会员



Rank: 1

精华 0
积分 49
帖子 79

金钱 161
经验 0
荣誉 0
互助 5

参与论坛活动,赚取LTB!

楼主可不可以弄个 对照列表   我现在很头疼找不到要改的目标..

顶部
胸甲龙骑兵
游侠会员



Rank: 1

精华 0
积分 11
帖子 37

金钱 73
经验 0
荣誉 0
互助 0

醒目提示:游侠武林三国大型游戏将在26号下午3点正式开服!无需下载客户端,直接进入即可游戏!

我不喜欢修改原有部队属性 那样容易BT...最喜欢修改资源获得途径 玩将军的时候就修改基地可以每10秒增加1000$~
希望LZ在介绍建筑修改的时候能告诉我如何让我的建筑可以获得经济能力或者如何建造泰矿塔~
谢谢~

顶部
愚头蟑螂
游侠会员



Rank: 1

精华 0
积分 11
帖子 35

金钱 67
经验 0
荣誉 0
互助 0

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。

能不能给介绍下怎样能修改电脑的AI??

如果能有一个如同人类般的对手对战,

感觉一定不错

(是否可以修改,俺不晓得, 说错了话大家表见怪

顶部
炭烧摩卡
游侠会员


Rank: 1

精华 0
积分 3
帖子 11

金钱 12
经验 0
荣誉 0
互助 0

来自 北京
参与论坛活动,赚取LTB!

新建单位我会了....

但,在不新建立一个单位的情况下,只修改原有单位的属性该怎么做?需要复制那些XML到DATA目录? 需要修改哪些参数?

比如: 我想修改GDI的APC,但又不想重新创建一个GDIAPC1.XML. 我该怎么做?

请高手指教!

我把APC同名文件复制到DATA,在MOD.XML里索引,但最后提示我严重错误,游戏都进不去了.

顶部
takchun213
禁止访问





精华 0
积分 192
帖子 639

金钱 687
经验 0
荣誉 0
互助 0

来自 火星
醒目提示:游侠武林三国大型游戏将在26号下午3点正式开服!无需下载客户端,直接进入即可游戏!
*** 作者被禁止或删除 内容自动屏蔽 ***
响尾蛇
游侠会员


Rank: 1

精华 0
积分 20
帖子 32

金钱 104
经验 0
荣誉 0
互助 2

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。

下面呢??
……………………………………

顶部
lyj790101
游侠会员


Rank: 1

精华 0
积分 70
帖子 132

金钱 189
经验 0
荣誉 0
互助 6

参与论坛活动,赚取LTB!

我按照楼主的介绍,自己做了一个MOD试一试,不过在制作过程中出现这样的问题(如图),修改没有效果!



附件: 您所在的用户组无法下载或查看附件




lyj
顶部



www.netshowbbs.com game.ali213.net
我们每天在进步 游侠游戏社区 游侠网


当前时区 GMT+8, 现在时间是 2008-10-11 16:22
增值电信业务经营许可证 沪B2-20050044

Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 游侠NETSHOW论坛 - Archiver - WAP