posted 12-03- 04:09 AM
The following link will download a zip with two files. The P51D.sm and a ReadMe.txt P51D Test Plane
Below is the ReadMe.txt and it is long....
Let me know if you have any questions.
BTW this thing is a blast to fly in the 51 vs 51 mission. It has
Visible bullet holes
Gun jams
Radiator damage
Aileron damage
Engine fire and fire suppression
Brake failure
Flat tires
P-51D Test Plane
12-02-2000
If you have questions, please send an email to Raider at jamjr@zeus.chapel1.com
CONTENTS
=========
TO INSTALL
INTRODUCTION
THINGS TO TEST
FIRE SUPPRESSION
BRAKE FAILURE
FLAT TIRES
USING THE DISABLE FEATURE OF A DOF
TO INSTALL
1. Unzip to a temporary location. When unziped there will be a folder called "P51D Test" that will contain the "P51D.sm" and this "ReadMe.txt"
2. Copy the P51D.sm and paste into the following directory.
\FIGHTER SQUADRON\Media\Aircraft\P51D
3. Use Notepad to edit the \FIGHTER SQUADRON\Keyboard.inp file and add the following line.
cmdExtinguish1 = Alt 1
***That is Alt and the number one***
INTRODUCTION
This is simply a test plane (not even a beta) and is not part of the Online Standard. I am posting it to help show the Fire Suppression System, Brake Failure and Flat Tires.
The only engine damage is an engine fire on the first hit to the engine. For test purposes the engine is Fire Resistant. This allows you to test the system without having to be in a hurry. Without the Fire Resistance, you have to extinguse the fire quickly or the engine will explode.
I test in the following manner. I start the Training Mission to Take Off. Once the game loads, I press "s" to enter Slew mode, I get into postion so that I can shoot a certian part of the aircraft to test the damage to that part.
THINGS TO TEST
1. Shoot the engine to start a fire, then press Alt 1 to activate the fire suppression system. (The plane must be moving at least 60 mph for the system to work)
2. Shoot the right wing tip. You should see black smoke from the wingtip to indicate Brake Failure.
3. Shoot the left wing tip. You should see black smoke from the wingtip to indicate that the left tire is flat.
4. The aileron damage has been modified and left in using progressive obProb. So if you test this in a dogfight you may lose the use of ailerons.
FIRE SUPPRESSION SYSTEM
One shot to the nose of the aircraft (between the cockpit and prop) should start an engine fire. After shooting the engine area and starting the fire, from Slew mode, press F6 to hop back into the plane. Take off, in order for the Fire Suppression system to work you must have an IAS of at least 60 mph. Once you are airborne hold down the Alt key and press 1.
This will trigger the Fire Suppression System. You should see white smoke, followed by the flames going out and then black smoke for a short time.
How it works.
1. An object (Eng1Fire) was added as a child to the (engine).
2. An object (Eng1Ext) was added as a child to (Eng1Fire) The (Eng1Ext) has air properties and two dof's. One dof is used to disable the air properties until Alt 1 is pressed. The other dof has a Spring/Break so it will break and activate "onDetach".
3. When the (engine) is damaged to level 1, it calls an obExec/Func to (Eng1Fire) to start a "obSmokeTrail" with "smkFire" - Note - the fire originates from the (Eng1Fire) object, not the (engine)
4. When Alt 1 is pressed, it activates the dof in (Eng1Ext) that activates it's air properties. If the airspeed is over 60 mph it will break the Spring/Break dof. "onDetach" sends two obExec/Func to the (engine) one for White smoke (to appear as a fire extingusher), the other for Black smoke to trail for a short time after the fire is out. It also sends an obExec/Func to (Eng1Fire) to "obKillDelay 3" so in 3 seconds the (Eng1Fire) object dies and kills the fire.
Problems to be worked out.
If you press Alt 1 before there is an engine fire, it will show the white smoke (which is ok) but it also displays the black smoke. More importantly, If you press Alt 1 at the begining of a mission the (Eng1Fire) will be killed so that if the engine is damaged it cannot start the fire in it.
Solution for pressing Alt 1 at the begining of the mission. I will try adding another dof that will disable the air properties for the (Eng1Ext) until a fire is started. A simular system may work to disable the black smoke unless there is a fire.
Future features.
1. Add obProb so that the Extingusher may not work every time.
2. When the normal engine damage is added back in it will also call engine fires located on the (engine) so the Extingusher cannot put these fires out.
3. Add another air property object that is activated when a fire starts on the (Eng1Fire) object that can be detached at high speed. That way if the Extinguisher failed to put out the fire you may be successful by going into a high speed dive.
BRAKE FAILURE
Shoot the right wing tip. You should see black smoke from the wingtip to indicate Brake Failure.
How it works.
1. The (leftWheel) was copied and pasted back to (leftGearPiston) then renamed to (LWBrakeFail)
The same was done for the right wheel.
2. For the two new wheels the "tireBrake" property was deleted and in their "obBodyPts" the "ptTireABS" property was deleted. "obHidden" and an "obFunc" to "obKillDelay .1" were added.
3. In the parent object (P51D) an obExec/Func was added called "BrakeFailure" This sends obExec/Func to the (leftWheel) and (rightWheel) to "obKillDelay .1" and to "obUnhide" the (LWBrakeFail) and (RWBrakeFail) wheels
4. To actavite the Brake Failure use "onDmg" from any object (right wingtip in this case) to send the obExec/Func "BrakeFailure" to (P51D) This will kill the existing wheels and unhide the two wheels that have no brakes.
FLAT TIRES
Shoot the left wing tip. You should see black smoke from the wingtip to indicate that the left tire is flat.
How it works.
1. The (leftWheel) was copied and pasted back to (leftGearPiston) then renamed to (LWFlat)
The same was done for the right wheel.
2. In the parent object (P51D) the "vehTire" property was edited to include "LWFlat" and "RWFlat" If this is not done the brakes will not work on the new wheels.
3. In "obBodyPts" the "ptTireRadius" was edited from "1.265" to ".7" This allows the tires to sink into the ground a little and appear to be flat.
4. The dof was moved up one notch (one press of the up cursor key) This made the wheel off-center and makes the plane wobble when it rolls at low speed (1 to 10 mph)
5. The "LWFlat" and "RWFlat" were moved up one notch (one press of the up cursor key) This keeps them from touching the ground until the "leftWheel" or "rightWheel" is killed.
6. Add obHidden to both new wheels.
7. In the parent object (P51D) two obFunc was added called "LeftTireFlat" and "RightTireFlat" When these are called they will first send an obExec/Func to (P51D) to "BrakeFailure", this kills the two original wheels. Then if it is a left flat an obExec/Func is sent to the (LWBrakeFail) wheel to "obKillDelay .1" this kills that wheel on that side and allows the (LWFlat) wheel to contact the ground and it is unHidden.
***The reason the "BrakeFailure" was called is so that now only the Flat tire has a brake. When you try to apply the brakes the plane will pull to that side.
8. To actavite the a flat tire use "onDmg" or "onDetach" from any object (left wingtip in this case) to send the obExec/Func "LeftTireFlat" to (P51D) This calls the "BrakeFailure" to kill the original wheels, then Kills the (LwBrakeFail) wheel and unHides the (LWFlat) wheel
Future features.
1. Add resistance to the roll of the flat tire, so that it pulls to that side, even when the brakes are not used.
2. Activate a flat tire if you land too hard.
USING THE DISABLE FEATURE OF A DOF
The oscBeginDisable feature only works if the dof has been activated and returned to it's begining. This does not help if you want to suppress the air properties of an object so it does not detach until you call for it using a key command. It is ok if you start on the ground and can call the command and reset it to the begining before the plane starts to move, but if you start in the air, the air properties are active when the game starts and will brake before you can call/reset it. Here is the work-around.
Instead of using oscBeginDisable, I used oscEndDisable. I gave the dof a "Max .1" and an "oscRuntime .01" That means that when activated it only takes 1/100th of a second to move to it's end.
Then I added the key command to activate the dof "cmdExtinguish1" to the properties of the parent object (P51D) This way as soon as the game loads the "cmdExtinguish1" is activated and moves the dof to it's end in 1/100th of a second and it is oscEndDisabled, so the properties are disabled at this point. To activate the properties, just press the key command to activate "cmdExtinguish1" which was "Alt 1" As soon as the dof starts to return to it's original position it is no longer disables and the properties work again.
[This message has been edited by Raider (edited 12-03-2000).]