以下我已经掌握的部分,和大家分享,内容会不断更新,已有的内容中的不足欢迎大家补充,我也会加上去。 MOD基础部分 MOD的核心文件为 MOD.XML,在此文件里包含所有需要进入MOD的xml文件 其他XML文件都可以从Mod SDK\CnC3Xml文件夹下出来。 如果要修改武器的话,可以到l,但是我想做出我的武器来,不想把那么多原始 武器信息也一起放入MOD,我是这么做的: 打开l 出头和尾 《?xml version="1.0" encoding="us-ascii" ?》 《AssetDeclaration xmlns="uri:ea:eala:asset"》 《Tags /》 《Includes》 《Include type="all" source="DATA:l" /》 《/Includes》 中间是武器设置语句,我可以把需要的武器设置复制进来 最后用《/AssetDeclaration》结尾以对应上面的《AssetDeclaration xmlns="uri:ea:eala:asset"》 xml语句和HTML语句是一样需要开头和结尾的,会HTML 语言的人应该没有问题。 l此文件的修改可以在samplemod里面的l为基础修改 语法为 《Include type="all" source="DATA:SampleMod/l" /》 其中 l是包含的文件名, DATA:SampleMod 是说明MOD的名 称,如果MOD文件夹名称是supernod ,那么就写成 DATA:supernod 其中 《Include type="reference" source="l" /》 《Include type="reference" source="l" /》 这两句我暂时认为是必须的,曾经去掉之后出错过。 用于修改的XML文件存在于 Mod SDK\CnC3Xml文件夹里,基本上游戏里所有的属性文件都在 了,活用这些东西完全可以做出全新的游戏来。 现在以GDI的APC为例子,文件为GDIAPC.XML,以我的修改做说明。 《GameObject id="GDIAPC" 这个是游戏中识别这个单位的名称,我需要在游戏中新增一个APC,就改成了 GDIAPC1 同时把文件名也改成了GDIAPC1.XML,复制到了SAMPLEMOD\DATA文件夹下。 inheritFrom="BaseVehicle" 使用车辆的基本设置,这个文件在Mod SDK\CnC3Xml\l 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\l,修改那个文件可以让单位有悬浮之类的效果,当 然你也可以直接改成别的单位的移动行为比如OrcaLocomotor,这样就会像奥卡一样飞起来 了。 C Speed="180.0" 这是单位的行进速度,原来是72 /》 下面的说明从 《WeaponSetUpdate id="ModuleTag_WeaponSetUpdate"》开始 《WeaponSlotTurret ID="1"》 《Weapon Ordering="PRIMARY_WEAPON" Template="GDIAPCAutoCannon" /》 后面是武器名称,从l里可以到 《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" 使用的武器,同样可以在l里到 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" 引号内是武器的名称,可以在l内查到 接下来我们看l内关于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\l 同样可以把头尾复制出来,然后加入自己的定义进去。 再以神像为例 <LocomotorTemplate id="JuggernaughtLocomotor" 这是用来调用的名称,不想改掉默认的话就复制一份出来,修改掉ID的名称 Name="JuggernaughtLocomotor" Surfaces="GROUND RUBBLE CRUSHABLE_OBSTACLE" 可以移动的地点,其实简单的换成AIR就可以完全不受限制了 TurnTimeSeconds="2.5s" 转向需要的时间游戏xml文件修改 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那么就可以炸到它了。 ------------------------------------------------------- 下一次更新写建筑物的文件 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论