Plane Tutorial

 

 

Summary of States

 

Parked � A plane that has its landing gear down.

�����������������������

Strafing � A plane can be set to target an object on the ground.The plane will continue to attack that object until it is destroyed or told otherwise.

 

Dog fighting � Two planes are set to target each other and begin to dog fight.

 

Spline Paths � Makes a plane fly along a spline path.There are two options on using a spline path:The plane uses the old method and turns with the angles you set in radiant or use autopilot and the plane will figure out how to fly along the path itself.

 

New Features

 

��������� Variables

 

����������������������� $targetname maxyawrate 30���� � Adjusts the speed at which the ��������������������������������������������� ����������������������������������� plane turns.The higher the number ����������������������������������������������������������������������������� the faster the plane will turn.The �������������������������������������������������������������������������� range you can give it is (0 � 360).

 

����������������������� $targetname maxpitchrate 60��� - Adjusts the rate at which the plane ���������������������������������������� ����������������������������������� will climb and dive.The lower the ������������������������������������������������������������������� ����������� number the longer it takes the plane ����������������������������������������������������������������������������� to get its nose up or down.The ����������������������������������������������������������������������������� range of values is (0 -360).

 

����������������������� $targetname maxrollrate 100 � Adjust the speed the plane will ������������������������������������������������� ����������������������� roll at.The higher the number the �������������������������������������������������������������������������������� faster the plane will move from the ��������������������������������������������������������������������������������� horizontal position to the angle ����������������������������������������������������������������������� desired.The range of values is (0 � ���������������������������������������� ����������������������������������� 360).

 

����������������������� $targetname maxroll 80 ����������� - Sets the maximum angle that the �������������������������������������������� ����������������������������������� plane will roll to.If the number is �������������������������������������������������������������������������������� 90, then the plane will be able to roll ���������������������������������������������������������������������������������� 90 degrees.The range of values is (0 ����������������������������������������������������������������� � 90).

 

 

Plane Models

�����������

����������� Grounded Planes

 

Models:

����������������������� P38_Static_plane.tik

����������������������� hellcat.tik

 

����������������������� Animations: (hellcat.tik only)

����������������������� idle -��� Prop doesn�t move.

 

����������������������� start � The prop runs an animation that looks like the plane is starting it�s engine.

 

����������������������� start_idle � The prop spins at full speed.

 

����������� Flying Planes

 

����������������������� Models:

����������������������� P38_plane.tik

����������������������� hellcat_fly.tik

����������������������� zero.tik

 

����������������������� Animations:

����������������������� idle � Prop spins

 

����������������������� (hellcat_fly.tik and zero.tik only)

����������������������� start_smoke � Starts the plane emitting a smoke trail.

 

����������������������� stop_smoke � Stops the plane from emitting a smoke trail.

 

����������� Destroyed Planes

�����������

����������������������� Models:

����������������������� hellcat_explode.tik

����������������������� zero_d.tik

 

����������������������� Animations:

����������������������� idle � no animation.

 

����������������������� (hellcat_explode.tik only)

����������������������� explode � plane runs it�s blowing up animation.

 

NOTE: The zero_d.tik must be used as a bonecaster.When destroyed the pieces use the Havok system.

 

Hook�n It up

 

Starting up a grounded Hellcat

 

����������� This is the script command for getting a hellcat to start up its engine.

 

����������������������� $hellcat anim start

������������������������������� $hellcat waittill animdone

������������������������������� $hellcat anim start_idle

�����������

Setting up a plane to strafe an object/NPC/player

 

����������� In radiant create a vehicle_plane, give it a model and set the following values:

 

����������������������� Key:���� $targetname

����������������������� Value:�� plane

�����������

Set up the planes target.If it is an object make sure it has a $targetname.Add the following lines to your script for the plane to attack an object or the player:

 

$plane speed 3700������������������������������� // Sets the planes speed

$plane patrolalt 6000��������������������������� // Sets the Altitude the plane will fly to after a strafe

$plane minimumAlt 1000���� // Sets the Altitude the plane will pull up at in a dive

$plane strafeattack 1��������������������������� // if set to 0 the plane hits its target with every shot if set to 1 the plane will strafe its target

$plane attack $object�������������������������� // or $player.Plane will target the object or player

 

Setting up a plane to target an NPC and the NPC dodges the plane strafing.Create an NPC with a $targetname.

 

����������������������� Key:���� $targetname

����������������������� Value:�� dude

 

Add the following to your script.The first part sets up the plane and the second sets up the NPC.

 

$plane speed 3700�������������������������������

$plane patrolalt 6000���������������������������

$plane minimumAlt 1000����

$plane strafeattack 1���������������������������

$plane attack $dude

 

$dude target_plane $plane

$dude morale_off

$dude nodamage�����������

 

 

The Dogfight

 

When setting up two planes to dogfight, one plane is the chaser, and the other is the evader.This is how to set up your map file:

 

Create an allied plane and give it a $targetname:

 

����������������������� Key:���� $targetname

����������������������� Value:�� alliedplane

 

����������� Create an axis plane and give it a $targetname:

 

����������������������� Key:���� $targetname

����������������������� Value:�� axisplane

 

����������� Create a script_origin and give it a targetname:

 

����������������������� Key:���� $targetname

����������������������� Value:�� plane_level_origin

�����������

The origin is used by the planes as a home.They try and stay at the altitude of the origin and with in the leash of the origin that you give them.

 

Now select the plane you want to be the chaser then select the plane that you want to be the evader and press ctrl + k.

 

Add the following lines to your script and watch Maverick and Goose take out some bogies.

 

//----------------------------------------------------------------------------

SetupPlanes:

//

//������������ Setup planes to go after each other..

//----------------------------------------------------------------------------

���������������

������������������������������� //*** Starts DogFighting Planes

���������������

����������������������������������������������� $axisplane waitthread axisInit

����������������������������������������������� $alliedplane waitthread allyInit

 

end

 

//----------------------------------------------------------------------------

axisInit:

//

//������������ Apply the needed values to each plane

//----------------------------------------------------------------------------

���������������

self scale 1���������������������������� //sets the scale, the zero is smaller than the //hellcat so setting the hellcat to 0.75 and the //zero to 1.0 makes them about the same size

 

��������������� ������������������������������� local.speed = 4000��������������� // set a variable for speed

������������������������������� self home $plane_level_origin���������� //sets the plane to its origin

�������������������������������

// Some good values for the Zero

��������������� ��������������� self maxyawrate 30������������������������������ //sets the rate of turn (0 � 360)

��������������� ��������������� self maxpitchrate 60���������������������������� //sets the rate of climb (0 � 360)

��������������� ��������������� self maxrollrate 100������������������������������ //sets the rate of roll (0 � 360)

��������������� ��������������� self maxroll 80������ //sets the max angle the plane will role to

���������������

��������������� ��������������� self speed local.speed ������� //sets the planes speed to the above variable

 

��������������� ��������������� self waitthread planeInit

 

��������������� end

 

//----------------------------------------------------------------------------

allyInit:

//

//������������ Apply the needed values to each plane

//----------------------------------------------------------------------------

 

������������������������������� self scale 0.75

������������������������������� local.speed = 4000���������������

������������������������������� self home plane_level_origin

 

������������������������������� // Some good values for the hellcat

������������������������������� self maxyawrate 30

������������������������������� self maxpitchrate 60

������������������������������� self maxrollrate 100

������������������������������� self maxroll 80

 

������������������������������� // Some good values for the P38

������������������������������� //self maxyawrate 20

������������������������������� //self maxpitchrate 60

������������������������������� //self maxrollrate 50

������������������������������� //self maxroll 90

�������������������������������

��������������� ��������������� self speed local.speed

 

��������������� ��������������� self waitthread planeInit

 

��������������� end

 

 

//----------------------------------------------------------------------------

planeInit:

//

//������������ Sets the plane to chase if it has a target and it's target to evade.If //the plane has no target then do nothing.

//----------------------------------------------------------------------------

 

��������������� ��������������� self anim idle������������������������ // start the prop spinning

��������������� ��������������� if ( self.target )

��������������� ��������������� {

��������������� ������������������������������� self attack self.target���������� //sets the chaser to target the evader

��������������� ������������������������������� self.target evade self���������� //sets the evader to evade the chaser

��������������� ��������������� ��������������� self nodamage

��������������� ������������������������������� self.target nodamage

��������������� ��������������� }

���������������

��������������� ��������������� //*** sets the distance the planes will travel from there home

��������������� ��������������� self leash 13000

���������������

��������������� ��������������� //*** sets the maximum altitude that a plane will travel

��������������� ��������������� self altleash 5000

��������������� end

 

Flying along a Spline path

 

There are currently two ways to make a plane fly along a spline path.Flypath is the old way where the plane moves on the angles you give each node and Autopilot which figures out itself how to fly smoothly along a path.The initial setup in the map file is the same.

 

Create your plane and give it a $targetname:

 

����������������������� Key:���� $targetname

����������������������� Value:�� plane

 

Create a spline path by right-clicking and choosing Info > splinepath.To connect your spline path nodes select the first node then the second and press �ctrl + k�.Continue till your path is fully connected.Now select the first node in the sline path and give it a $targetname:

 

Key:���� $targetname

����������� ����������� Value:�� plane_path

 

Make sure that the plane is really close to the first node.

 

NOTE:In the script you must tell your plane to stop when the level loads up.The new changes to the code make any plane in the level start flying.If the plane isn�t told to stop it will just fly out of the level.

 

FlyPath

 

If you wish to use the fly path feature, you have to set the angles that the plane will fly at each node.Select all the nodes in the spline path and add the following key values:

 

Key:���� Model

����������������������������������� Value:�� models/vehicles/hellcat_fly.tik�� (or whatever model you ��������������������������������������������� ����������������������������������������������������������������������� are using)

 

����������� Set the scale to 0.1.This will give you a small plane model at each node ���������� so you can see your adjustments to the angles.Select the first node that ����� you wish to adjust and press �r�.Change your window view in radiant (top, side, front) to set the angles that you want.Once you have adjusted �������� all the nodes you wish to change move to the script.

 

//----------------------------------------------------------------------------�������

InitPlane:

//----------------------------------------------------------------------------

 

��������������� $plane stop

 

��������������� // you can use mess with these values to adjust the smoothness the plane �����������

��������������� // will transition between the nodes

 

��������������� $plane maxyawrate 360

��������������� $plane maxpitchrate 360

��������������� $plane maxrollrate 150

 

��������������� $plane thread PlaneFly $plane_path ���������������

��������������� end

���������������

//----------------------------------------------------------------------------�������

PlaneFly local.path:

//----------------------------------------------------------------------------

����������������������������������������������� //�� Acceleration - Speed - Look ahead

������������������������������� self flypath local.path 3000 3000 256

������������������������������� self waitmove����������������������� // waits till plane has flown the path

������������������������������� self remove��������������������������� // deletes plane after it has finish the path

 

��������������� end

�����������

����������� NOTE - By adding the maxyawrate, maxpitchrate and maxrollrate you can ������ adjust how the smooth the plane makes the transition from node to node.

 

AutoPilot

 

����������� This is a new feature where the plane will figure out how to fly smoothly ����������� along a path, you don�t need to adjust the angles at each node.Just add ������ the following script and watch the birdie fly.

 

//----------------------------------------------------------------------------�������

InitPlane:

//----------------------------------------------------------------------------

 

��������������� $plane stop

 

��������������� // you can use mess with these values to adjust the smoothness the plane �����������

��������������� // will transition between the nodes

 

��������������� $plane maxyawrate 360

��������������� $plane maxpitchrate 360

��������������� $plane maxrollrate 150

 

��������������� $plane thread PlaneFly $plane_path ���������������

��������������� end

���������������

//----------------------------------------------------------------------------�������

PlaneFly local.path:

//----------------------------------------------------------------------------

 

������������������������������� self autopilot local.path

������������������������������� self waitmove����������������������� // waits till plane has flown the path

������������������������������� self remove��������������������������� // deletes plane after it has finish the path

 

��������������� end