You don't need to copy the entire code for the particle cannon, just the module tag that holds the the stuff about the damage. But the reason why it's crashing, is because you need to do some extra stuff about module tag when using them in Map.ini files.
Here is what you can use in the Map.ini file:
Object AmericaParticleCannonUplink
ReplaceModule ModuleTag_12
Behavior = ParticleUplinkCannonUpdate ModuleTag_12_Override
SpecialPowerTemplate = SuperweaponParticleUplinkCannon
;The values trigger the various pre-stages before being ready to actually fire.
;The total combined value of these determines the first sign of activity in the
;cannon.
BeginChargeTime = 5000 ;The outer nodes begin to charge.
RaiseAntennaTime = 4667 ;The hatch opens and raises antenna (matches animation speed)
ReadyDelayTime = 2000 ;The time after antenna is raised prior to being ready to fire.
;***NOTE -- these values effect gameplay*****
TotalFiringTime = 10000 ;The total ground contact time of the beam
DamagePerSecond = 1000000 ;Amount of damage inflicted per second
TotalDamagePulses = 500 ;The total number of damage pulses -- less means more damage per pulse, but less accurate
WidthGrowTime = 20 ;The amount of time it takes for the beam to reach full diameter (same value used for shrinking)
BeamTravelTime = 1000 ;How long it takes for the beam to hit the ground after leaving the firing dish.
DamageType = PARTICLE_BEAM ;Type of damage inflicted.
DamageRadiusScalar = 10000 ;Multiplies the radius (relative to beam diameter) so that things close to the beam can get hit too!
RevealRange = 150.0 ;Grants gratuitous vision for the player launching the target as the beam cuts it's swath of death.
;********************************************
;Bone names for required elements
OuterEffectBoneName = FX ;The base name for the outer node bones.
OuterEffectNumBones = 5 ;The number of outer nodes.
ConnectorBoneName = FXConnector ;The name of the bone where the connector lasers meet.
FireBoneName = FXMain ;The name of the bone where the main beam is fired from.
;These are particle systems tied to the outer nodes in varying intensities.
OuterNodesLightFlareParticleSystem = ParticleUplinkCannon_OuterNodeLightFlare
OuterNodesMediumFlareParticleSystem = ParticleUplinkCannon_OuterNodeMediumFlare
OuterNodesIntenseFlareParticleSystem = ParticleUplinkCannon_OuterNodeIntenseFlare
;The connectors system connects each of the outer nodes to the central node that receives
;the lasers from outside.
ConnectorMediumLaserName = ParticleUplinkCannon_MediumConnectorLaser
ConnectorIntenseLaserName = ParticleUplinkCannon_IntenseConnectorLaser
;Currently commented out -- These
;ConnectorMediumFlare = ParticleUplinkCannon_InnerConnectorMediumFlare
;ConnectorIntenseFlare = ParticleUplinkCannon_InnerConnectorIntenseFlare
;This is the name of the bone on the building where the beam is fired from
LaserBaseLightFlareParticleSystemName = ParticleUplinkCannon_LaserBaseReadyToFire
ParticleBeamLaserName = ParticleUplinkCannon_OrbitalLaser
GroundHitFX = FX_ParticleUplinkCannon_BeamHitsGround ;TotalScorchMarks determines how many times this gets called.
;The flare fxlist that is played over and over during the beam firing process. Be
;mindful of the delay because that effects both art and sound.
BeamLaunchFX = FX_ParticleUplinkCannon_BeamLaunchIteration
DelayBetweenLaunchFX = 1000
;Each scorch mark creates an object in the world, so while making more looks better
;it becomes a performance issue. The scalar will calculate the size of the scorch
;mark to make based on the current size of the beam (which changes dynamically). The
;number also matches the number of times the "GroundHitFX" is called.
TotalScorchMarks = 20
ScorchMarkScalar = 2.4
;***NOTE -- these values effect gameplay***
;The swath of death is the path the laser tracers centered on the targeted position.
;If the amplitude is zero, the line will go straight, with a higher value, it'll do
;a sine wave iteration, but always goes through the target point.
SwathOfDeathDistance = 200.0
SwathOfDeathAmplitude = 50.0
ManualDrivingSpeed = 20
ManualFastDrivingSpeed = 40
DoubleClickToFastDriveDelay = 500
;***SOUNDS!****
PoweringUpSoundLoop = ParticleUplinkCannon_PowerupSoundLoop
UnpackToIdleSoundLoop = ParticleUplinkCannon_UnpackToIdleSoundLoop
FiringToPackSoundLoop = ParticleUplinkCannon_FiringToPackSoundLoop
GroundAnnihilationSoundLoop = ParticleUplinkCannon_GroundAnnihilationSoundLoop
;The trail left behind creates an object that inflicts extra damage for a short period of time.
DamagePulseRemnantObjectName = ParticleUplinkCannonTrailRemnant
End
End
End
So when modifying any module tag code:
1) Copy & Paste in the first line, that defines the name.
2) Under that put in the module tag code.
3) Then put an
End at the end of it all. (There should then be two End's)
4) Now put in the text,
ReplaceModule ModuleTag_## (## is just the module tag number) between the name line, and the module tag text.
5) Then add
_Override to the end of the original module tag number so it looks like this: ModuleTag_##_Override
6) & Last of all, put in another
End between the other two.
If you look in the Map.ini files in the MapsZH.big files, you'll see stuff like this in them.
Edited by user
17 years ago |
Reason: Not specified