Jet with Missles - from The QuakeLab

The QuakeLab - http://www.in2nett.com/stevefu/QuakeLab

If you want to make a jet yourself instead of copying the brushes, here
is how we did it:

TEXTURES:

        COP3_1 for the wings (fwd & rear), fins, and fuselage. WALL9_3 for
        canopy. SFLOOR4_4 for the wingtip pylons. *LAVA1 for the exhaust glow.
        METAL2_8 for the exhaust ports. WIZMET1_2 for the engines. DOOR02_7
        for the intakes. TECH04_2 for the nose cone.

ENTITIES:

        func_train & path_corner & info_player_start

WHAT TO DO:

        Start by making a player start position entity. This is only if you
        care about the plane's scale. Assume 2-3 sq.ft for a player, an F-16
        is 41 feet long, wingspan, 31 feet.

        1. Fuselage - long rectangular box, clip so that it has an octagonal
        cross section.

        2. Wings - thin rectangular brush through middle of fuselage, clip to
        desired shape.

        3. Rear wings - thin rectangular brush through rear of fuselage, clip
        to shape.

        4. Fins - copy & reshape rear wings, rotate to angle/vertical, place
        in fuselage.

        5. Engines - 2 long rectangular boxes. Place against fuselage and
        under wings. Clip front end of each box at an angle - the angled face
        becomes the intake. The front-most edge should not go past the
        front-most part of the wings.

        6. Exhaust ports - 2 short engine-like boxes, clip on four sides to
        get a blunt-topped pyramid. The base of this pyramid should be stuck
        to the back of the fuselage, spaced apart appropriately. Texture the
        pyramid tops with the recommended exhaust glow texture.

        7. Wingtip pylons - 2 thin, rectangular sticks. Put them on the tips
        of the wings.

        8. Canopy - 2 rectangular boxes. Rotate one about 20 degrees, rotate
        the other about 30 degrees (you'll have to experiment) and fit them
        together so it looks like a rough A-frame. Submerge the two into the
        forward area so that the forward canopy brush sticks out a bit to the
        front.

        9. Nose - Make a short square box (a cap) and cover up the front
        where the canopy brush sticks out a bit. The front should now be flat
        and clean. Copy the square brush and make it a bit longer. Carve this
        brush into a pointed pyramid, and fit the base against the cap.

MAKING IT MOVE:

        Select all the brushes that make up the jet fighter. Designate this
        group a func_train. Assign it a speed of at least 1000. Make
        path_corner entities to designate the path it will travel in.

USEFUL TIPS ON FUNC_TRAINS:

        The jet's target should be a path_corner placed at the bottom left
        hand portion of the rear left wing (assuming the nose is pointed to
        the top of the screen.) This is where the jet will start moving FROM.
        You can put the jet wherever you want in the level, but as soon as it
        starts, it will start AT THE TARGET PATH_CORNER. Func_trains do not
        dynamically light up as they pass through lit areas. They are lit
        based on where they were placed. See the MAP file.

        If you want it to go outside the level to perform a circuit, each
        path_corner outside the level must be contained in an enclosed space.
        Make a little room for each path_corner that is outside valid player
        space. Otherwise, the 'poisonous gas' in the void will make contact
        with an outside path_corner (an entity) and this triggers off the
        'leak' business, preventing you from VISing.

        Finally, if you want the func_train to stop at the last path_corner,
        the last path_corner should be given a WAIT of -1. The last
        path_corner still needs a target, which will be ignored during
        gameplay.

OPTIONS:

        Sounds - working on it...just need to figure out how to get the game
        to use them. Try unpacking pak0.pak, rename pak0.pak to temp.pak, and
        copy a jet sound over the train1.wav in /id1/sounds/plats/.

        The Intakes - instead of making the intakes flat faces, you can make
        a brush that is a few pixels smaller in width & height than the
        engine brushes, and subtract it from each engine brush. This way,
        the engine brushes are hollowed out and should look even better.

        Retexturing - up to you! Might want to use less, since it's pretty
        big filesizewise.

MISSLES:

	TEXTURES:

	SFLOOR4_4 for missle, SLIPLITE for missle fins.

	ENTITIES:

	func_train & path_corner for missles. trap_spikeshooter & 
	misc_explobox for explosions. trigger_once for setting timing stages 
	for attack sequence. light_flame_large_yellow for the aftermath. 
	func_wall for target structures that will vanish (ie: be destroyed.) 

	WHAT TO DO:

	Make everything move correctly first: Assuming your jet is in place 
	with it's path_corners, and is already set on a flight path, use the 
	missles in the AIRPACK.ZIP file and treat them like miniature 
	aircraft, giving them path_corners. The last path_corners should be 
	out of sight and given a WAIT of -1. These end-of-the-line
        path_corners still need a TARGET which will be ignored by the program.

        Pyrotechnics: Use the hollowed out crate brush-collection supplied
        in the MAP file. Designate the hollow crates as func_walls - do the
        crate all at once, not brush by brush. Give each crate a targetname
        (eg. 'vanish'.) Pile these crates wherever you want an explosion.
        Inside each crate, put a couple of trap_spikeshooters pointing at a
        misc_explobox - it's a tight fit, but there's enough room. Keep the
        misc_explobox out of sight unless you want it visible - don't make
        it stick halfway out of a crate because that looks sloppy. You need
        the following triggers:

        1. Start the jet on it's path.
        2. Start the missles. Their SPEEDs should be faster than the jet.
        3. Trigger with killtarget on crates so they vanish.
        4. Set off the spikeshooters which blow up the misc_exploboxes.

        Timing is important for the explosions to coincide with the
        disappearance of the crates. The explosions should happen 0.1 seconds
        after the crates vanish. Put some light_flame_large_yellows (bonfires)
        inside the crates - it's OK for the spikeshooters & exploboxes to
        overlap with the flames. When the crates disappear and the explosions
        do their bit, you've got a bit of wreckage. If you want more carnage,
        put exploboxes with spikeshooters (which are invisible) outside for
        decoration - they will do major damage to the local wildlife.

        OPTIONS:

        Debris is what would make this even better. Little chunks
        (func_doors) that popped up through the floor quickly at prearranged
        positions and angles would make the effect quite entertaining. Don't
        use this jet fighter stuff all over the place - one is big enough
        (filesize) and it's really just a spectacular decoration with a bit
        of functionality. Cool nonetheless.
