Advanced Trick 4 - How to make turrets into shield generators or grenades that fire ordnance.
Hidden/Spoiler:
It's really unbelievabely simple, and based on a few lines of code. These lines I found while ;looking through the naboo assets from BF1. The fambaa uses them
I've added them to a standard deployable imperial turret, and changed its weapons. Here's the ODF. The crucial lines are in green.
[GameObjectClass]
ClassParent = "com_bldg_inf_autoturret"
GeometryName = "com_weap_inf_dropturret.msh"
[Properties]
// NOBODY has override textures for this!
//OverrideTexture = "com_prop_dropturret_imp"
BUILDINGSECTION = "BODY"
GeometryName = "com_weap_inf_dropturret"
ExplosionName = "imp_bldg_inf_autoturret_exp"
BUILDINGSECTION = "TURRET1"
TurretNodeName = "aimer_y"
TURRETSECTION = "TURRET1"
PilotType = "self"
Controllable = "0"
AutoFire = "1"
WeaponName = "zom_weap_fly_stap_shield"
WeaponAmmo = "2"
AimerNodeName = "aimer_x"
FirePointName = "hp_fire"
AutoFire makes things fire immediately. Whether they detect enemies or not. This needs a little adjustment for a shield, otherwise it just fires constantly (goes on and off). So ammo for the weapon is set to two (look at the fambaa's shield weapon for reference).
With a custom effect added and the shield size changed (shield's odf), we now have a fully functional portable shield generator. Hurrah!
More advanced - making effect grenades.
(Note: they do have one problem - you don't get counted as the killer of those they kill, 'Auto Turret' does. If anyone can get a way around this then please let me know.)
So...now its time to make something a bit more impressive. There are several things needed for an effect grenade (such as a cluster bomb, gas canister or stasis mine).
1. A change in the Throwstrength of the projectile if you want it to act like a grenade and not like a placed mine or turret.
2. An InitialSalvoDelay for the weapon to be used so it doesn't blow up in your face.
3. A short lifetime for the 'turret' being used so that it actually blows up.
Here's an example: a cluster grenade.
1. This is in the 'dispenser' odf file. Look at the autoturret setup if you don't know what I'm talking about. This makes the object be thrown rather than just dropped.
MinStrength = "1.5"
MaxStrength = "1.8"
2. Here's important stuff in the weapon that the turret uses odf file:
InitialSalvoDelay = "1.0" //used to control when the ordnance fires (in this case, cluster bomblets, 1 second after throwing the bomb)
RoundsPerClip = "11" //number of bomblets to be used.
YawSpread = "360.0" //gives spherical fire pattern. Bomblets fired kin any and every direction.
PitchSpread = "360.0" // " "
SalvoCount = "11" // together with RPC, controls bomblet count.
3. And here's the turret. Important stuff is in green.
[GameObjectClass]
ClassParent = "imp_bldg_inf_nade"
GeometryName = "com_weap_inf_dropturret2.msh"
[Properties]
OverrideTexture = "com_prop_dropturret_clu"
LifeTime = "1.1" //turret blows up 1.1 seconds after being thrown. Gives the illusion that an explosion launches bomblets.
Velocity = "16.0"
Gravity = "1.35"
Rebound = "0.1"
Friction = "3.0"
BUILDINGSECTION = "BODY"
GeometryName = "com_weap_inf_dropturret2"
ExplosionName = "imp_bldg_inf_autoturret_exp" //custom effects used for this. This is what controls what the 'bombs' intial explosion is.
ExplosionExpire = "imp_bldg_inf_autoturret_exp"
BUILDINGSECTION = "TURRET1"
TurretNodeName = "aimer_y"
TURRETSECTION = "TURRET1"
PilotType = "self"
Controllable = "0" //<<IMPORTANT!!!
AutoFire = "1" //<<IMPORTANT!!!
WeaponName = "im1_weap_inf_wave" //the weapon the turret uses. Launches the secondary bomblets.
WeaponAmmo = "1"
AimerNodeName = "aimer_x"
FirePointName = "hp_fire"
Well, from that you now (hopefully) can figure out how to make your own effect grenades, shield generators and probably a heap of other things too.
I've added them to a standard deployable imperial turret, and changed its weapons. Here's the ODF. The crucial lines are in green.
[GameObjectClass]
ClassParent = "com_bldg_inf_autoturret"
GeometryName = "com_weap_inf_dropturret.msh"
[Properties]
// NOBODY has override textures for this!
//OverrideTexture = "com_prop_dropturret_imp"
BUILDINGSECTION = "BODY"
GeometryName = "com_weap_inf_dropturret"
ExplosionName = "imp_bldg_inf_autoturret_exp"
BUILDINGSECTION = "TURRET1"
TurretNodeName = "aimer_y"
TURRETSECTION = "TURRET1"
PilotType = "self"
Controllable = "0"
AutoFire = "1"
WeaponName = "zom_weap_fly_stap_shield"
WeaponAmmo = "2"
AimerNodeName = "aimer_x"
FirePointName = "hp_fire"
AutoFire makes things fire immediately. Whether they detect enemies or not. This needs a little adjustment for a shield, otherwise it just fires constantly (goes on and off). So ammo for the weapon is set to two (look at the fambaa's shield weapon for reference).
With a custom effect added and the shield size changed (shield's odf), we now have a fully functional portable shield generator. Hurrah!
More advanced - making effect grenades.
(Note: they do have one problem - you don't get counted as the killer of those they kill, 'Auto Turret' does. If anyone can get a way around this then please let me know.)
So...now its time to make something a bit more impressive. There are several things needed for an effect grenade (such as a cluster bomb, gas canister or stasis mine).
1. A change in the Throwstrength of the projectile if you want it to act like a grenade and not like a placed mine or turret.
2. An InitialSalvoDelay for the weapon to be used so it doesn't blow up in your face.
3. A short lifetime for the 'turret' being used so that it actually blows up.
Here's an example: a cluster grenade.
1. This is in the 'dispenser' odf file. Look at the autoturret setup if you don't know what I'm talking about. This makes the object be thrown rather than just dropped.
MinStrength = "1.5"
MaxStrength = "1.8"
2. Here's important stuff in the weapon that the turret uses odf file:
InitialSalvoDelay = "1.0" //used to control when the ordnance fires (in this case, cluster bomblets, 1 second after throwing the bomb)
RoundsPerClip = "11" //number of bomblets to be used.
YawSpread = "360.0" //gives spherical fire pattern. Bomblets fired kin any and every direction.
PitchSpread = "360.0" // " "
SalvoCount = "11" // together with RPC, controls bomblet count.
3. And here's the turret. Important stuff is in green.
[GameObjectClass]
ClassParent = "imp_bldg_inf_nade"
GeometryName = "com_weap_inf_dropturret2.msh"
[Properties]
OverrideTexture = "com_prop_dropturret_clu"
LifeTime = "1.1" //turret blows up 1.1 seconds after being thrown. Gives the illusion that an explosion launches bomblets.
Velocity = "16.0"
Gravity = "1.35"
Rebound = "0.1"
Friction = "3.0"
BUILDINGSECTION = "BODY"
GeometryName = "com_weap_inf_dropturret2"
ExplosionName = "imp_bldg_inf_autoturret_exp" //custom effects used for this. This is what controls what the 'bombs' intial explosion is.
ExplosionExpire = "imp_bldg_inf_autoturret_exp"
BUILDINGSECTION = "TURRET1"
TurretNodeName = "aimer_y"
TURRETSECTION = "TURRET1"
PilotType = "self"
Controllable = "0" //<<IMPORTANT!!!
AutoFire = "1" //<<IMPORTANT!!!
WeaponName = "im1_weap_inf_wave" //the weapon the turret uses. Launches the secondary bomblets.
WeaponAmmo = "1"
AimerNodeName = "aimer_x"
FirePointName = "hp_fire"
Well, from that you now (hopefully) can figure out how to make your own effect grenades, shield generators and probably a heap of other things too.
Advanced Trick 3 - Thanks to Dann_Boeing for this trick
Hidden/Spoiler:
Example 1: Target-Lock:
Target-Lock allows you to lock on to an object/unit/vehicle by pressing the Lock-On key. Target-Lock only works for weapons that shoot missiles (however, there are a variety of ways of making a missile look like a laser by using special effects, like com_sfx_weap_spyrifle_ord.fx or spa1_sfx_lasertrail.fx.
Step 1: Setting up the Main Weapon ODF
Open the main weapon odf, com_weap_inf_rocket_launcher.odf for example.
Under [WeaponClass], make the ClassLabel "Launcher" if it isn't that already. Only the Launcher class can use Target-Lock.
First, you need to designate what types of things you want it to be able to lock on to. There are 2 functions for each type of object that you can lock on to. 1 fuction for what the player is able to lock on to (Target---), and 1 function that sets what the AI are programmed to target and are able to lock on to (AITarget---). Each function is either set to 1 or 0, 1 to target, 0 to not target. If you want to lock to everything, you set everything to 1, like so:
Code:
TargetPerson = "1"
TargetAnimal = "1"
TargetDroid = "1"
TargetVehicle = "1"
TargetBuilding = "1"
AITargetPerson = "1"
AITargetAnimal = "1"
AITargetDroid = "1"
AITargetVehicle = "1"
AITargetBuilding = "1"
Next, you need to set the Lock-On properties. LockOnAngle determines the maximum angle away from your reticule that you can lock on to. LockOffAngle sets the angle at which you lose your lock. LockTime determines the amount of time it takes to lock on to something, this cannot be set to 0. This is how i typically set my lockon's up:
Code:
LockOnRange = "5000.0"
LockOnAngle = "26.0"
LockOffAngle = "40.0"
LockTime = "0.1"
These are the most important 2 lines to get it to work: TargetLockMaxDistance and TargetLockMaxDistanceLose. TargetLockMaxDistance is how close an object has to be to lock on to it. TargetLockMaxDistanceLose is how far the object has to go to make you lose the lock. I typically set mine like this:
Code:
TargetLockMaxDistance = "20000"
TargetLockMaxDistanceLose = "25000"
Step: 2: Setting up the Weapon Ordnance ODF
First off, the ord file needs to be the "missile" class at the top. The only other thing you need is a TurnRate, which represents how sharply a missile can turn towards what it's locked on to.
Example 2: "Heat-Seeking"
This is actually a "glitch" in the game that you can set up pretty easily. It's like Target-Lock, but instead of having to press the Lock-On key, all you have to do is shoot, and the ordnances automatically target an enemy if they go near it. To have heat-seeking, the weapon must use a Target-Locked weapon as a ClassParent for its ordnance, but not be set up for Target-Lock itself.
Step One: The Parent Weapon ODF
You need to find a weapon, and set it to Target-Lock like in Example 1.
Step Two: The "Child" Weapon ODF
The Main Weapon ODF that heat seeks does not have to be a Launcher class, but it can be any class, and it cannot have any Parent ODF, nor can it be set to target-lock. Open the Ordnance ODF. Instead of having a ClassLabel set up specially for this ODF, we are going to give it a ClassParent. So change the ClassLabel at the top to ClassParent. Then in the quotes, give the name of the ordnance ODF of the weapon that you set to Target-Lock. For example, com_weap_inf_rocket_launcher_ord, if you gave com_weap_inf_rocket_launcher target-lock. And that's all you have to do for that.
Target-Lock allows you to lock on to an object/unit/vehicle by pressing the Lock-On key. Target-Lock only works for weapons that shoot missiles (however, there are a variety of ways of making a missile look like a laser by using special effects, like com_sfx_weap_spyrifle_ord.fx or spa1_sfx_lasertrail.fx.
Step 1: Setting up the Main Weapon ODF
Open the main weapon odf, com_weap_inf_rocket_launcher.odf for example.
Under [WeaponClass], make the ClassLabel "Launcher" if it isn't that already. Only the Launcher class can use Target-Lock.
First, you need to designate what types of things you want it to be able to lock on to. There are 2 functions for each type of object that you can lock on to. 1 fuction for what the player is able to lock on to (Target---), and 1 function that sets what the AI are programmed to target and are able to lock on to (AITarget---). Each function is either set to 1 or 0, 1 to target, 0 to not target. If you want to lock to everything, you set everything to 1, like so:
Code:
TargetPerson = "1"
TargetAnimal = "1"
TargetDroid = "1"
TargetVehicle = "1"
TargetBuilding = "1"
AITargetPerson = "1"
AITargetAnimal = "1"
AITargetDroid = "1"
AITargetVehicle = "1"
AITargetBuilding = "1"
Next, you need to set the Lock-On properties. LockOnAngle determines the maximum angle away from your reticule that you can lock on to. LockOffAngle sets the angle at which you lose your lock. LockTime determines the amount of time it takes to lock on to something, this cannot be set to 0. This is how i typically set my lockon's up:
Code:
LockOnRange = "5000.0"
LockOnAngle = "26.0"
LockOffAngle = "40.0"
LockTime = "0.1"
These are the most important 2 lines to get it to work: TargetLockMaxDistance and TargetLockMaxDistanceLose. TargetLockMaxDistance is how close an object has to be to lock on to it. TargetLockMaxDistanceLose is how far the object has to go to make you lose the lock. I typically set mine like this:
Code:
TargetLockMaxDistance = "20000"
TargetLockMaxDistanceLose = "25000"
Step: 2: Setting up the Weapon Ordnance ODF
First off, the ord file needs to be the "missile" class at the top. The only other thing you need is a TurnRate, which represents how sharply a missile can turn towards what it's locked on to.
Example 2: "Heat-Seeking"
This is actually a "glitch" in the game that you can set up pretty easily. It's like Target-Lock, but instead of having to press the Lock-On key, all you have to do is shoot, and the ordnances automatically target an enemy if they go near it. To have heat-seeking, the weapon must use a Target-Locked weapon as a ClassParent for its ordnance, but not be set up for Target-Lock itself.
Step One: The Parent Weapon ODF
You need to find a weapon, and set it to Target-Lock like in Example 1.
Step Two: The "Child" Weapon ODF
The Main Weapon ODF that heat seeks does not have to be a Launcher class, but it can be any class, and it cannot have any Parent ODF, nor can it be set to target-lock. Open the Ordnance ODF. Instead of having a ClassLabel set up specially for this ODF, we are going to give it a ClassParent. So change the ClassLabel at the top to ClassParent. Then in the quotes, give the name of the ordnance ODF of the weapon that you set to Target-Lock. For example, com_weap_inf_rocket_launcher_ord, if you gave com_weap_inf_rocket_launcher target-lock. And that's all you have to do for that.
Charge Up Weapons
Hidden/Spoiler:
This is really useful. The charge up weapons in assets are the bowcaster, grenade launchers and the arc caster, but you can do so much more using charge Up weapons. Here is how to make one.
Step 1: How to get your weapon to Charge Up
Under 'properties' in your weapon's odf you MUST have the following:
ChargeRateLight = "1.0"
MaxChargeStrengthLight = "1.0"
ChargeDelayLight = "0.1"
ChargeRateHeavy = "1.0"
MaxChargeStrengthHeavy = "0.5"
ChargeDelayHeavy = "0.75"
You should also add:
ChargeUpEffect = "com_sfx_chargeup"
for the charge effect.
In order to charge up, your weapon needs these firing parameters
TriggerSingle = "1"
MaxPressedTime = "1.5"
Trigger single gives you non-automatic fire (neccessary).
MaxPressedTime is how long your weapon takes to charge to full power. This can be anything, it doesn't have to be 1.5
These parameters allow your weapon to charge up, but so far they don't actually do anything. On to step 2!!!
Step 2: Charge Up Parameters and Ordnance
These must go at the END of the 'properties' section of your weapon's odf.
NextCharge = 0.5
This line tells your weapon what percent to charge at. By percent I mean percent of the recticle coloured. So 0.5 means half way around the recticle, 1.0 means all the way etc.
Now, under this you can put ANY weapon parameters, like the ones used for your weapons standard 'properties.'
Eg:
NextCharge = 0.5
SalvoCount = "2"
SalvoDelay = "0.05"
HeatPerShot = "0.05"
This will cause the weapon to fire 2 shots, with 0.05 seconds between them and 0.05 heat each. This was originally used for a pistol.
You can use multiple charge up types, like so:
NextCharge = 0.25
SalvoCount = "1"
ShotsPerSalvo = "20"
SalvoDelay = "0.0"
NextCharge = 0.6
SalvoCount = "1"
ShotsPerSalvo = "30"
SalvoDelay = "0.0"
NextCharge = 0.96
SalvoCount = "1"
ShotsPerSalvo = "48"
SalvoDelay = "0.0"
Here the longer the charge is built up, the higher the number of shots fired. Originally used for a ridiculously powerful shotgun.
Another use of Charge Up ordnance is changing the ordnance a weapon fires.
NextCharge = 0.5
OrdnanceName = "her_weap_discgun_ord1"
NextCharge = 0.9
OrdnanceName = "her_weap_discgun_ord2"
This was used on my discgun to fire increassingly powerful ordnances at different charges. A similar set up is used by the grenade launchers to fire grenades rather than shells when fully charged.
Example of a charge up weapon: Dark Trooper 'Elite Blast Cannon'
[hide][WeaponClass]
ClassParent = "imb_weap_inf_rifle"
GeometryName = "imp_weap_inf_rifle.msh"
[Properties]
GeometryName = "imp_weap_inf_rifle"
HighResGeometry = "imp_1st_weap_inf_rifle"
OrdnanceName = "im1_weap_inf_rifle_ord"
FirePointName = "hp_fire"
ChargeUpEffect = "com_sfx_chargeup"
ShotDelay = "0.8"
YawSpread = "2.75"
PitchSpread = "2.75"
SpreadPerShot = "6.75"
SpreadRecoverRate = "2.0"
SpreadThreshold = "2.0"
SpreadLimit = "2.75"
SalvoCount = "8"
SalvoDelay = "0.0"
TriggerSingle = "1"
MaxPressedTime = "1.8"
ChargeRateLight = "1.0"
MaxChargeStrengthLight = "1.0"
ChargeDelayLight = "0.1"
ChargeRateHeavy = "1.0"
MaxChargeStrengthHeavy = "0.5"
ChargeDelayHeavy = "0.75"
NextCharge = 0.99
SalvoCount = "5"
SalvoDelay = "0.04"
YawSpread = "0.0"
PitchSpread = "0.0"
SpreadPerShot = "0.0"
SpreadRecoverRate = "0.0"
SpreadThreshold = "0.0"
SpreadLimit = "0.0"
OrdnanceName = "im1_weap_inf_hevrifle_ord2"
Step 1: How to get your weapon to Charge Up
Under 'properties' in your weapon's odf you MUST have the following:
ChargeRateLight = "1.0"
MaxChargeStrengthLight = "1.0"
ChargeDelayLight = "0.1"
ChargeRateHeavy = "1.0"
MaxChargeStrengthHeavy = "0.5"
ChargeDelayHeavy = "0.75"
You should also add:
ChargeUpEffect = "com_sfx_chargeup"
for the charge effect.
In order to charge up, your weapon needs these firing parameters
TriggerSingle = "1"
MaxPressedTime = "1.5"
Trigger single gives you non-automatic fire (neccessary).
MaxPressedTime is how long your weapon takes to charge to full power. This can be anything, it doesn't have to be 1.5
These parameters allow your weapon to charge up, but so far they don't actually do anything. On to step 2!!!
Step 2: Charge Up Parameters and Ordnance
These must go at the END of the 'properties' section of your weapon's odf.
NextCharge = 0.5
This line tells your weapon what percent to charge at. By percent I mean percent of the recticle coloured. So 0.5 means half way around the recticle, 1.0 means all the way etc.
Now, under this you can put ANY weapon parameters, like the ones used for your weapons standard 'properties.'
Eg:
NextCharge = 0.5
SalvoCount = "2"
SalvoDelay = "0.05"
HeatPerShot = "0.05"
This will cause the weapon to fire 2 shots, with 0.05 seconds between them and 0.05 heat each. This was originally used for a pistol.
You can use multiple charge up types, like so:
NextCharge = 0.25
SalvoCount = "1"
ShotsPerSalvo = "20"
SalvoDelay = "0.0"
NextCharge = 0.6
SalvoCount = "1"
ShotsPerSalvo = "30"
SalvoDelay = "0.0"
NextCharge = 0.96
SalvoCount = "1"
ShotsPerSalvo = "48"
SalvoDelay = "0.0"
Here the longer the charge is built up, the higher the number of shots fired. Originally used for a ridiculously powerful shotgun.
Another use of Charge Up ordnance is changing the ordnance a weapon fires.
NextCharge = 0.5
OrdnanceName = "her_weap_discgun_ord1"
NextCharge = 0.9
OrdnanceName = "her_weap_discgun_ord2"
This was used on my discgun to fire increassingly powerful ordnances at different charges. A similar set up is used by the grenade launchers to fire grenades rather than shells when fully charged.
Example of a charge up weapon: Dark Trooper 'Elite Blast Cannon'
[hide][WeaponClass]
ClassParent = "imb_weap_inf_rifle"
GeometryName = "imp_weap_inf_rifle.msh"
[Properties]
GeometryName = "imp_weap_inf_rifle"
HighResGeometry = "imp_1st_weap_inf_rifle"
OrdnanceName = "im1_weap_inf_rifle_ord"
FirePointName = "hp_fire"
ChargeUpEffect = "com_sfx_chargeup"
ShotDelay = "0.8"
YawSpread = "2.75"
PitchSpread = "2.75"
SpreadPerShot = "6.75"
SpreadRecoverRate = "2.0"
SpreadThreshold = "2.0"
SpreadLimit = "2.75"
SalvoCount = "8"
SalvoDelay = "0.0"
TriggerSingle = "1"
MaxPressedTime = "1.8"
ChargeRateLight = "1.0"
MaxChargeStrengthLight = "1.0"
ChargeDelayLight = "0.1"
ChargeRateHeavy = "1.0"
MaxChargeStrengthHeavy = "0.5"
ChargeDelayHeavy = "0.75"
NextCharge = 0.99
SalvoCount = "5"
SalvoDelay = "0.04"
YawSpread = "0.0"
PitchSpread = "0.0"
SpreadPerShot = "0.0"
SpreadRecoverRate = "0.0"
SpreadThreshold = "0.0"
SpreadLimit = "0.0"
OrdnanceName = "im1_weap_inf_hevrifle_ord2"
Advanced Weapons Tricks #1
Dual Ordnance:
Hidden/Spoiler:
Simply put, this gives a weapon two ordnances. This can be used for weapons like the shotgun and chaingun, where there are so many bullets the game would crash if they were all lasars (bullets are invisible), to give a gun alternating shots (not used in any default weapons), to give a weapon two explosions or to give an ordnance two trails without having to make custom effects. Putting SecondaryOrdnancePeriod = 1 makes the two shots fire simultaneously and use up only 1 ammo together.
Example:
OrdnanceName = "rbt_weap_inf_emp_chucker_ord" //normal ordnance//
SecondaryOrdnanceName = "rbt_weap_inf_emp_chucker_ord_conc" //second ordnance//
SecondaryOrdnancePeriod = 1 //when it should be added. 1 means each shot is really two shots, ordnance and SecondaryOrdnance. play around with to understand better. 5 means fire secondaryordnance once every 5 shots etc...//
In the above case, the secondary ordnance is used to fire a second grenade. The first creates an emp blast (damages droids, useless vs. all else), whereas the second (which has a grenade with a fractionally shorter lifespan, discussed later) makes a small concussion exp - smaller than the emp blast, with a lot of push to throw troops and a decent anti-vehicle damage. Also, the effects used make the grenade blow up in a concussion exp and shoot an emp wave rather than just vanish into an emp wave without having to make custom effects.
Example 2:
OrdnanceName = "rcs_weap_predator_ord"
SecondaryOrdnanceName = "rcs_weap_predator_ord1"
SecondaryOrdnancePeriod = 1
In this case I used two ordnances to give two trails- a green blinking like and a contrail. Note that one of these has no geometry to safe processing power. The first weapon makes a Radiation blast, the second makes a custom gas explosion.
Example 3:
OrdnanceName = "ci2_weap_inf_snoutgun_ord"
SecondaryOrdnanceName = "ci2_weap_inf_snoutgun_ord1"
SecondaryOrdnancePeriod = 1
This is a bit more complicated. Here I used dual ordnance to make a weapon with a special effect. The weapon is a very fast travelling grenade that hits people, hurls them backwards while stcking to them and explodes after several seconds. You can't make a grenade push someone before it blows up so here's how it works.
The first ordnance is a shell - it blows up on contact. It also has no trail and no geometry. It has a very small spark explosion as its explosion. The explosion does a little damage and high push, but has a very very small effect radius.. The second ordnance is a sticky - a blinking red grenade that attaches itself to people and blows up after several seconds.
The two ordnances have the same airspeed. Both will hit the target at the same time, the invisible shell will explode, hurling the target backwards (very small exp so won't affect others). The grenade sticks to the target, blowing up a few seconds later. BTW these grenades stick to anything except walls.
Example:
OrdnanceName = "rbt_weap_inf_emp_chucker_ord" //normal ordnance//
SecondaryOrdnanceName = "rbt_weap_inf_emp_chucker_ord_conc" //second ordnance//
SecondaryOrdnancePeriod = 1 //when it should be added. 1 means each shot is really two shots, ordnance and SecondaryOrdnance. play around with to understand better. 5 means fire secondaryordnance once every 5 shots etc...//
In the above case, the secondary ordnance is used to fire a second grenade. The first creates an emp blast (damages droids, useless vs. all else), whereas the second (which has a grenade with a fractionally shorter lifespan, discussed later) makes a small concussion exp - smaller than the emp blast, with a lot of push to throw troops and a decent anti-vehicle damage. Also, the effects used make the grenade blow up in a concussion exp and shoot an emp wave rather than just vanish into an emp wave without having to make custom effects.
Example 2:
OrdnanceName = "rcs_weap_predator_ord"
SecondaryOrdnanceName = "rcs_weap_predator_ord1"
SecondaryOrdnancePeriod = 1
In this case I used two ordnances to give two trails- a green blinking like and a contrail. Note that one of these has no geometry to safe processing power. The first weapon makes a Radiation blast, the second makes a custom gas explosion.
Example 3:
OrdnanceName = "ci2_weap_inf_snoutgun_ord"
SecondaryOrdnanceName = "ci2_weap_inf_snoutgun_ord1"
SecondaryOrdnancePeriod = 1
This is a bit more complicated. Here I used dual ordnance to make a weapon with a special effect. The weapon is a very fast travelling grenade that hits people, hurls them backwards while stcking to them and explodes after several seconds. You can't make a grenade push someone before it blows up so here's how it works.
The first ordnance is a shell - it blows up on contact. It also has no trail and no geometry. It has a very small spark explosion as its explosion. The explosion does a little damage and high push, but has a very very small effect radius.. The second ordnance is a sticky - a blinking red grenade that attaches itself to people and blows up after several seconds.
The two ordnances have the same airspeed. Both will hit the target at the same time, the invisible shell will explode, hurling the target backwards (very small exp so won't affect others). The grenade sticks to the target, blowing up a few seconds later. BTW these grenades stick to anything except walls.