Subversion-Projekte sthq.gbs

Revision

Revision 829 | Revision 857 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

// EF2 Level Script File 
// 
// Level:               map09.bsp
// Script By:           DrBob & Argyle & TickNSwisted & Sam "Bicko" Bickley & LTiefland
// Geometry By:         TickNSwisted & Argyle & Sam "Bicko" Bickley 
// Created on:          02/04/04 
// Last Edited on:      11/18/06
// Last Edited By:      LTiefland
//************************************************************************** 
//   MAP 10 SCRIPT 
//************************************************************************** 
//INCLUDES 
#include "maps/global_scripts/global_common.scr" 
#include "maps/global_scripts/global_playerLoadout.scr" 
#include "maps/global_scripts/global_archetype.scr"

//void fire_door_01(); 
//void open_door_01(); 
//void shut_door_01(); 
void fire_lift_01(); 
void fire_lift_02(); 
void fire_lift_03(); 
void fire_ff_01();
void fire_steam_01();
void fire_steam_02();

void main(); 
void setupWorld(); 

void cin_cells(); 
void cin_cells_skip();

void shuttle_entrance();
void shuttle_entrance_skip();

void cin_shuttle();
void cin_shuttle_skip();

void t15_attack();
void rom_1();

void grp_hall_door();

float elevator1_pos = 1; 
float door_01_pos = 1; 
float lift_02_pos = 0; 


void stammheimEnteringShuttle();
void illiaEnteringShuttle();


 
//void fire_door_01()
//{ 
//        if( door_01_pos == 0 ) 
//        { 
//                shut_door_01(); 
//        } 
//        else 
//        { 
//                if( door_01_pos == 1 ) 
//                { 
//                        open_door_01(); 
//                           wait( 5 ); 
//                           shut_door_01(); 
//                } 
//        } 
//        thread globalCommon_OnUse( $door1_left, "fire_door_01" ); 
//} 
 
//void open_door_01() 
//{ 
//        door_01_pos = 1; 
//        $door1_init.movesouth( 102 );  
//        waitfor( $door1_init ); 
//        $door1_right.movesouth( 116 ); 
//        $door1_left.movenorth( 116 ); 
//        waitFor( $door1_left ); 
//        door_01_pos = 0;
//} 
 
//void shut_door_01()
//{ 
//        door_01_pos = 0; 
//        $door1_left.movesouth( 116 );  
//        $door1_right.movenorth( 116 ); 
//        waitfor ( $door1_right );  
//        $door1_init.movesouth( 102 ); 
//        waitFor( $door1_init ); 
//        door_01_pos = 1; 
//} 

void fire_lift_01 () 
{ 
        $lift_01.playsound ( "sound/environment/machine/lift3.wav" ); 
        $lift_01.time ( 6 ); 
        $lift_01.movedown ( 432 ); 
        wait ( 6 ); 
        $lift_01.playsound ( "sound/environment/machine/lift3stop.wav" ); 
        wait ( 3 ); 
        $lift_01.playsound ( "sound/environment/machine/lift3.wav" ); 
        $lift_01.time ( 6 ); 
        $lift_01.moveup ( 432 ); 
        wait ( 6 ); 
        $lift_01.playsound ( "sound/environment/machine/lift3stop.wav" ); 
        wait ( 3 );
} 

void fire_lift_02 () 
{ 
        if ( lift_02_pos == 0 )  
        {  
                $lift_02.playsound ( "sound/environment/machine/lift3.wav" );  
                $lift_02.time ( 4 ); 
                $lift_02.movedown ( 280 ); 
                wait ( 4 ); 
                $lift_02.playsound ( "sound/environment/machine/lift3stop.wav" ); 
                wait ( 3 ); 
                lift_02_pos = 1; 
        } 
        else 
        { 
                if ( lift_02_pos == 1 )  
                {  
                        $lift_02.playsound ( "sound/environment/machine/lift3.wav" );  
                        $lift_02.time ( 4 );  
                        $lift_02.moveup ( 280 ); 
                        wait ( 4 ); 
                        $lift_02.playsound ( "sound/environment/machine/lift3stop.wav" );  
                        wait ( 3 );  
                        lift_02_pos = 0;  
                } 
        } 
} 

void fire_lift_03 () 
{ 
        $lift_03.playsound ( "sound/environment/machine/lift3.wav" ); 
        $lift_03.time ( 3 ); 
        $lift_03.moveup ( 262 );
        wait ( 3 ); 
        $lift_03.playsound ( "sound/environment/machine/lift3stop.wav" ); 
        wait ( 4 ); 
        $lift_03.playsound ( "sound/environment/machine/lift3.wav" ); 
        $lift_03.time ( 3 ); 
        $lift_03.movedown ( 262 ); 
        wait ( 3 ); 
        $lift_03.playsound ( "sound/environment/machine/lift3stop.wav" );
        wait ( 3 ); 
}

void fire_baydoors ()
{
        $bay_door_01.playsound ( "sound/environment/machine/lift4.wav");
        $bay_door_01.time ( 5 );
        $bay_door_01.movenorth ( 500 );
        $bay_door_02.time ( 5 );
        $bay_door_02.movesouth ( 500 );
        wait ( 5 );
        $bay_door_01.playsound ( "sound/environment/machine/lift4stop.wav" );
}

void fire_ff_01 () 
{ 
        $ff_01.remove (); 
}


void fire_steam_01()
{
  $knob_steam_01.rotateZ(50);
//  $knob_steam_01.movenorth(1);
  $knob_steam_01.playsound( "sound/environment/metal/crank_switch.wav" );
  wait(1);
  $knob_steam_01.rotateZ(0);
  $trig_steam_01.nottriggerable();
  $enty_steam_01.remove ();
}

void fire_steam_02()
{
  $knob_steam_02.rotateX(64);
//  $knob_steam_02.movenorth(1);
  $knob_steam_02.playsound( "sound/environment/metal/crank_switch.wav" );
  wait(1);
  $knob_steam_02.rotateX(0);
  $trig_steam_02.nottriggerable();
  $enty_steam_02.remove ();
}

//************************************************************************** 
//MAIN
//**************************************************************************
void main() 
{ 
        soundtrack( "music/m10l1-romulan_installation.mus" ); 
                thread globalArchetype_Setup( $rom_bay_door, "rom_bay_door");

        $player.give( "models/weapons/worldmodel-phaser-STX.tik" ); 
        $player.give( "models/weapons/worldmodel-compressionrifle.tik" ); 
        $player.give( "models/weapons/worldmodel-rom-disruptor.tik" ); 
        $player.ammo( "Phaser", 200 ); 
        $player.ammo( "Disruptor", 200 ); 
        $player.ammo( "Fed", 200 ); 
        $player.armor( "BasicArmor", 100 ); 
        $player.use( "romulanDisruptor" ); 

        $sky.rendereffects( "+skyorigin" ); 

        setupWorld(); 

        waitForPlayer(); 

        //Show the mission objective 
        $player.setobjectiveshow( "findstammheim", 1 ); 
} 

void setupWorld()
{ 
        $t15.ai_off();
        $t15.notsolid();
        $t15.hide();
        $rom_1.ai_off();
        $rom_1.notsolid();
        $rom_1.hide();
        $screen_on.hide();
        $screen_pattern.show();
        $shuttle_attacker1.ai_off();
        $shuttle_attacker2.ai_off();
        $shuttle_attacker3.ai_off();
        $shuttle_attacker4.ai_off();
        $shuttle_attacker1.hide();
        $shuttle_attacker1.notsolid();
        $shuttle_attacker2.hide();
        $shuttle_attacker2.notsolid();
        $shuttle_attacker3.hide();
        $shuttle_attacker3.notsolid();
        $shuttle_attacker4.hide();
        $shuttle_attacker4.notsolid();

        $drull_shuttle.bind($shuttle_bind);
        $shuttle_main.bind($shuttle_bind);
        //Setup onUse threads... 
        thread globalCommon_OnUse( $door1_left, "fire_door_01" ); 

        //Change the player's model 
        $player.model( "char/hazardteam_jurot.tik" ); 

        //Load the mission objectives 
        $player.loadobjectives( "GBS10" ); 
        
        //Take away weapons from player!
        //No tricorder in this map!
        $player.take ( "models/weapons/worldmodel-compressionrifle.tik" );
        $player.take ( "models/weapons/worldmodel-fieldassaultrifle.tik" );
        $player.take ( "models/weapons/worldmodel-burstrifle.tik" );
        $player.take ( "models/weapons/worldmodel-attrex-rifle.tik" );
        $player.take ( "models/weapons/worldmodel-compressionrifle.tik" );
        $player.take ( "models/weapons/worldmodel-phaser-STX.tik" );    
        $player.take ( "models/weapons/worldmodel-tricorder-STX.tik" ); 
        //Give the player her weapons 
        globalLoadout_GiveWeapon( WEAPON_TRICORDER_STX ); 
        globalLoadout_GiveWeapon( WEAPON_ROMULAN_DISRUPTOR ); 
        $player.give( "models/weapons/worldmodel-rom-disruptor-rifle.tik" ); 

        //Make Stammheim so that he isn't allowed to be killed by you 
        $stammheim.not_allowed_to_kill(); 
 
        //Remove Stammheim's toy 
        $stammheim.removeactorweapon( "CompressionRifle" ); 

        $illia_cockpit.removeactorweapon( "CompressionRifleEnhanced" );
        $stammheim_cockpit.removeactorweapon( "CompressionRifle" );


        //Spawn cameras 
        spawn( "Camera", "targetname", "cam1" );
        spawn( "Camera", "targetname", "cam2" ); 
        spawn( "Camera", "targetname", "cam3" );
        spawn( "Camera", "targetname", "cam4" );
        spawn( "Camera", "targetname", "cam5" );
        spawn( "Camera", "targetname", "cam6" );
        spawn( "Camera", "targetname", "cam7" );
        spawn( "Camera", "targetname", "cam8" );

        //Remove NPCs AI 
        $stammheim.ai_off();
        $stammheim_cockpit2.ai_off();
        $stammheim_cockpit2.hide();
        $stammheim_cockpit.ai_off();
        $illia_cockpit.ai_off();
        $imdead.ai_off();
        $arrest1.ai_off();
        $arrest2.ai_off();
        $arrest3.ai_off();
        $arrest4.ai_off();
 
        //Set NPCs sides 
        $stammheim.actortype( "teammate" ); 
        $player.addrosterteammate1( $stammheim ); 

        //Make it so that Romulans wont attack Stammheim, only you 
        $stammheim.flags( "+notarget" ); 
 
        //Make Stammheim a mission target 
        $stammheim.missionobjective( 1 ); 
 
        //Setup NPC animations
        $stammheim.anim( "idle_breathing" ); 
        $imdead.anim("dead_in_captain_chair");
 
        //Setup NPC facial animation 
        $stammheim.morph( "exp_eyes_heavy" ); 
        $stammheim.morph( "exp_Nervous" ); 
        $stammheim.morph( "exp_Fear" ); 
        $stammheim.morph( "exp_Sad" ); 

        $entrance_trigger.nottriggerable();
        $trigger_final.nottriggerable();

        //Make NPCs non-pushable 
} 

//CINEMATIC FUNCTIONS 
void cin_cells() 
{ 
        skipthread( "cin_cells_skip" ); 

        cam_fadeout( 0.1, 0, 0, 0, 1, 0 ); 
 
        //Make Illia holster any weapon she might have acquired 
        $player.holster(); 
 
        //Bring up a fake player model 
        fakeplayer(); 
 
        //Make the fakeplayer use the same weapon as you 
        globalCommon_AiActorUseWeapon( $fakeplayer, "current" ); 
 
        //Initialize the fake player 
        $fakeplayer.strictlyfollowpath( 1 ); 
        $stammheim.strictlyfollowpath( 1 ); 
 
        $cam1.follow( $cin_cells_cam1_pos1, $fakeplayer ); 
        $cam1.cut(); 
 
        //Make it a cinematic 
        cinematic(); 
        letterbox( 0.5 ); 

        wait( 0.5 ); 

        cam_fadein( 1, 0, 0, 0, 1, 0 );
        wait( 0.1 ); 
        cuecamera($cam1);

        //Make Illia walk up to the doors
        $fakeplayer.walkto( "$cin_cells_illia_pos_enter" ); 
        waitFor( $fakeplayer ); 

        //Open the door 
        //thread fire_door_01(); 
 
        //Make the camera pan down to look through the door 
        $cam1.follow( $cin_cells_cam1_pos2 ); 

        //Make Illia hesitate slightly 
        wait( 0.3 ); 
        cuecamera($cam1);

        //Make Illia walk to inside the cell room 
        //$fakeplayer.walkto( "$cin_cells_illia_pos_inside", "run", 0, -1 ); 
        $fakeplayer.walkto( "$cin_cells_illia_pos_inside" ); 
        waitFor( $fakeplayer ); 
        $fakeplayer.headwatch( $stammheim ); 
        $fakeplayer.walkto( "$cin_cells_illia_pos_nearcell" ); 
        wait( 1 ); 

        //Close the door again, just to be tidy 
        //fire_door_01(); 

        //Fade the camera out 
        cam_fadeout( 1, 0, 0, 0, 1, 0 ); 
        wait( 2 ); 

        //Setup the camera inside the cell room 
            
        $cam1.follow( $cin_cells_cam1_pos3 ); 
        $cam1.cut();

        wait( 1 ); 
        cuecamera($cam1);

        cam_fadein( 0.1, 0, 0, 0, 1, 0 ); 

        //POSSIBLE ANIMATIONS FOR STAMMHEIM: 
        //   cheer              :   Arms above head 
        //   conv-embarrassment :   Head in hands 
        //   conv-gesture1      :   Looking around, scared 
        //   conv-laugh1        :   Pain 
        //   conv-look          :   Looking around, scared 
        //   conv-shakehead     :   Pain in head, voices
        //   idle_breathing     :   Hard to breathe

        //Illia: Stammheim. 
        $fakeplayer.morph( "exp_Relief" ); 
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/stammheim.mp3", 1, 10000, 0 );
        waitForDialog( $fakeplayer ); 
        $fakeplayer.unmorph( "exp_Relief" ); 

        wait( 0.5 ); 

        //Turn Stammheim towards the player 
        $stammheim.turntowardsplayer(); 
        $stammheim.headwatch( $fakeplayer ); 
 
        wait( 0.5 ); 

        //Stammheim: Who...who are you? 
        $stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/whoareyou.mp3", 2, 10000, 0 );
        waitForDialog( $stammheim ); 
 
        //Start the camera panning up on Illia 
        $cam1.follow( $cin_cells_cam1_pos4 ); 
        $cam1.cut(); 
 
        //Illia: You know me Stammheim.
        $fakeplayer.anim( "conv-gesture1" ); 
        $fakeplayer.morph( "exp_Skeptical" ); 
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/youknowme.mp3", 1, 10000, 0 );
        waitForDialog( $fakeplayer ); 
        $fakeplayer.anim( "idle" ); 
 
        //Illia: The mission on Cardassia Prime? 
        $fakeplayer.anim( "conv_shrug" ); 
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/cardassiaprime.mp3", 1, 10000, 0 );
        waitForDialog( $fakeplayer ); 
        $fakeplayer.anim( "idle" ); 
 
        wait( 0.5 ); 

        //Illia: Doesn't that ring a bell? 
        $fakeplayer.unmorph( "exp_Skeptical" ); 
        $fakeplayer.morph( "exp_Confused" ); 
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/ringabell.mp3", 1, 10000, 0 );
        waitForDialog( $fakeplayer ); 

        wait( 0.5 ); 
 
        //Pointing at Stammheim through the forcefield 
        $cam1.follow( $cin_cells_cam1_pos5 ); 
        $cam1.cut(); 

        //Stammheim: No more questions...please...please... 
        $stammheim.anim( "conv-shakehead" );
        $stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/noquestions.mp3", 2, 10000, 0 );
        waitForDialog( $stammheim ); 
 
        wait( 1.5 ); 
 
        //Stammheim: My head... 
        $stammheim.anim( "cheer" ); 
        $stammheim.morph( "exp_Pain" ); 
        $stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/myhead.mp3", 2, 10000, 0 );
        waitForAnimation( $stammheim, "cheer" ); 
        $stammheim.anim( "idle" ); 
        waitForDialog( $stammheim ); 

        //Stammheim: The Romulan said the pain would stop...but it hasn't. 
        $stammheim.anim( "conv-shakehead" ); 
        $stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/painstop.mp3", 2, 10000, 0 );
        waitForDialog( $stammheim ); 
 
        wait( 0.5 ); 

        //Looking at Illia 
        $cam1.follow( $cin_cells_cam1_pos6, $fakeplayer ); 
        $cam1.cut(); 
 
        //Illia: The Romulans didn't exactly handle him with kid gloves, it seems. 
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/romulans.mp3", 1, 10000, 0 );
        waitForDialog( $fakeplayer );
        $fakeplayer.unmorph( "exp_Confused" ); 
        $fakeplayer.morph( "exp_Serious" ); 

        wait( 0.5 ); 
 
        //Make Illia walk over to the console & deactivate the forcefield 
        $fakeplayer.walkto( "$cin_cells_illia_pos_console" ); 
        waitFor( $fakeplayer ); 
 
        wait( 0.1 ); 
 
        //Make Illia use the console and play a sound 
        //$fakeplayer.turntowardsentity( $console ); 
        $fakeplayer.headwatch( $console ); 
        $fakeplayer.turntoangle( 0 ); 
        waitFor( $fakeplayer ); 
        $fakeplayer.anim( "ent-transporter-rear-gesture" ); 
        $console.playsound( "sound/ships/romulan/rom_beep_yes.wav", 0, 1 ); 

        $cam1.lookat( $fakeplayer ); 

        waitForAnimation( $fakeplayer, "ent-transporter-rear-gesture" ); 
        $fakeplayer.anim( "idle" ); 

        $cam1.follow( $cin_cells_cam1_pos7, $stammheim ); 
        $cam1.cut(); 
 
        //Stop the forcefield sound, and play the forcefield_down sound 
        $stammheim_forcefield.stoploopsound(); 
        $stammheim_forcefield.playsound( "sound/ships/enterprise/ent_forcefield_down.wav", 0, 1 ); 
        $stammheim_forcefield.remove(); 

        wait( 0.1 ); 

        //Illia: Come on Alexander. I'll get you out of here.
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/comeonalexander.mp3", 1, 10000, 0 );
        waitForDialog( $fakeplayer ); 

        //Illia: Try to follow me, ok? 
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/follow.mp3", 1, 10000, 0 );
        waitForDialog( $fakeplayer ); 
 
        wait( 1 ); 
 
        //Illia: Do you understand? 
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/understood.mp3", 1, 10000, 0 );
        $stammheim.anim( "idle_breathing" ); 
        waitForDialog( $fakeplayer ); 

        wait( 1.5 ); 

        //Stammheim: Follow...Yes... 
        $stammheim.anim( "conv-yes" ); 
        $cam1.follow( $cin_cells_cam1_posstammheim, $stammheim ); 
        //$cam1.cut(); 
        $stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/follow.mp3", 2, 10000, 0 );
        waitForDialog( $stammheim ); 
        $stammheim.anim( "idle_breathing" ); 

        wait( 0.5 );
 
        //Stammheim: Follow... 
        $stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/follow2.mp3", 2, 10000, 0 );
        wait( 1 ); 
 
        cin_cells_skip(); 
} 
 
void cin_cells_skip() 
{ 
        skipthread( "Null" ); 
        killthread( "cin_cells" ); 
 
        cam_fadeout( 1, 0, 0, 0, 1, 0 ); 
//       thread fire_door_01();
 
        wait( 2 ); 
 
        //Remove all evidence of before the cin 
        $stammheim_forcefield.remove(); 
 
        $fakeplayer.warpto( "$cin_cells_illia_pos_inside" ); 
        removefakeplayer(); 

        //End the cinematic 
        noncinematic(); 
        clearletterbox( 0.1 ); 
        cueplayer();
 
        wait( 0.1 ); 

        cam_fadein( 0.1, 0, 0, 0, 1, 0 ); 

        //Now that the cinematic is over, make Stammheim follow you 
        $stammheim.ai_on(); 

        //Make the objective complete 
        $player.setobjectivecomplete( "findstammheim", 1 ); 
        $stammheim.missionobjective( 0 ); 

        //Show the new objective 
        $player.setobjectiveshow( "escapewithshuttle", 1 ); 
       
        $entrance_trigger.triggerable();
}

void shuttle_entrance()
{
        skipthread( "shuttle_entrance_skip" ); 

        cam_fadeout( 0.1, 0, 0, 0, 1, 0 ); 
 
        //Make Illia holster any weapon she might have acquired 
        $player.holster();
 
        //Bring up a fake player model 
        fakeplayer(); 
        $stammheim.ai_off();

        $fakeplayer.warpto( "$shuttle_cin_illia" );
        $stammheim.warpto( "$shuttle_cin_stammheim" ); 
 
        //Make the fakeplayer use the same weapon as you 
        globalCommon_AiActorUseWeapon( $fakeplayer, "current" ); 
  
        $cam3.follow( $cin_enter_shuttle, $fakeplayer ); 
        $cam3.cut(); 
 
        //Make it a cinematic 
        cinematic(); 
        letterbox( 0.5 ); 

        wait( 0.5 ); 

        cam_fadein( 1, 0, 0, 0, 1, 0 );
        wait( 0.1 ); 
        cuecamera($cam3);
        
           
        //Make Illia walk to the shuttle
        //$fakeplayer.strictlyfollowpath(1);
//################################          
        //Entering Shuttle
        thread illiaEnteringShuttle();
        stammheimEnteringShuttle();
        
        
                        
        cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
        $illia_cockpit.show();
        $illia_cockpit.solid();
        $stammheim_cockpit.show();
        $stammheim_cockpit.solid();
        $cam4.follow( $cam_cockpit ); 
        $cam4.cut();
        cam_fadein( 1, 0, 0, 0, 1, 0 );
        wait( 0.1 ); 
        cuecamera($cam4);
        //Cockpit
        $illia_cockpit.walkto( "$shuttle_illia01" );
        $stammheim_cockpit.walkto( "$shuttle_stammheim01" );
        waitfor($stammheim_cockpit);
        $stammheim.notsolid();
        $stammheim.hide();

        $illia_cockpit.playdialog( "localization/sound/dialog/map09/Illia/sitdownalexander.mp3", 2, 10000, 0 );
        waitForDialog( $illia_cockpit );
        $illia_cockpit.playdialog( "localization/sound/dialog/map09/Illia/doorsofshuttlebay.mp3", 2, 10000, 0 );
        waitForDialog( $illia_cockpit );
        wait(1.5);
        $stammheim_cockpit.playdialog( "localization/sound/dialog/map09/Stammheim/myhead2.mp3", 2, 10000, 0 );
        waitForDialog( $stammheim_cockpit ); 
        cam_fadeout( 1, 0, 0, 0, 1, 0 );

        $fakeplayer.warpto("$shuttle_exit1");
        $cam5.follow( $shuttle_exit_cin, $fakeplayer ); 
        $cam5.cut();  
        wait(.5);
        cuecamera($cam5);
        cam_fadein( 1, 0, 0, 0, 1, 0 );
        $fakeplayer.walkto("$shuttle_exit2");
        waitfor( $fakeplayer );
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/deja-vu.mp3", 2, 10000, 0 ); 
        waitfordialog( $fakeplayer );
        
        shuttle_entrance_skip();

        


}

void shuttle_entrance_skip()
{
        skipthread( "Null" );
        killthread( "shuttle_entrance" );
        $stammheim.remove();
        $illia_cockpit.remove();
        $stammheim_cockpit.remove();
        cam_fadeout( 1, 0, 0, 0, 1, 0 ); 
 
        wait( 2 );  
 
        $fakeplayer.warpto( "$shuttle_exit2" ); 
        removefakeplayer(); 

        //End the cinematic 
        noncinematic(); 
        clearletterbox( 0.1 ); 
        cueplayer();
 
        wait( 0.1 ); 

        cam_fadein( 0.1, 0, 0, 0, 1, 0 );

        $trigger_final.triggerable();

        $shuttle_attacker1.displayeffect( "TransportIn", "Romulan" );
        $shuttle_attacker2.displayeffect( "TransportIn", "Romulan" );
        $shuttle_attacker3.displayeffect( "TransportIn", "Romulan" );
        $shuttle_attacker4.displayeffect( "TransportIn", "Romulan" );
        wait(2);
        $shuttle_attacker1.show();
        $shuttle_attacker1.solid();
        $shuttle_attacker2.show();
        $shuttle_attacker2.solid();
        $shuttle_attacker3.show();
        $shuttle_attacker3.solid();
        $shuttle_attacker4.show();
        $shuttle_attacker4.solid();
        wait(.4);  
        $shuttle_attacker1.ai_on();
        $shuttle_attacker1.attack($player);
        $shuttle_attacker2.ai_on();
        $shuttle_attacker2.attack($player);
        $shuttle_attacker3.ai_on();
        $shuttle_attacker3.attack($player);
        $shuttle_attacker4.ai_on();
        $shuttle_attacker4.attack($player);
}

void cin_shuttle()
{

        skipthread( "cin_shuttle_skip" ); 
                
        $stammheim_cockpit2.ai_off();
        $stammheim_cockpit2.show();
        $stammheim_cockpit2.solid();
        $stammheim_cockpit2.anim( "bar_sitting_forward" );
                
        $player.immobilize(1);
        $bay_door_01.playsound ( "sound/environment/machine/lift4.wav");
        $bay_door_01.time ( 5 );
        $bay_door_01.movenorth ( 500 );
        $bay_door_02.time ( 5 );
        $bay_door_02.movesouth ( 500 );
        wait ( 5 );
        $bay_door_01.playsound ( "sound/environment/machine/lift4stop.wav" );
                
        $shuttle_clip.remove();
        $drull_shuttle.anim( "closing" );
        $drull_shuttle.playsound( "sound/doors/enterprise_door1.wav", 1 ,800 ); 
        waitforanimation( $drull_shuttle, "closing" );
        $drull_shuttle.anim( "closed" );

        wait(1);
        $shuttle_bind.followpath($shuttle_path);
        $shuttle_bind.playsound( "sound/vehicles/shuttlecraft/shuttle_takeoff.wav", 0, 4 );
        //$shuttle_bind.moveup(1216);
        
        waitfor($shuttle_bind);
        $shuttle_bind.hide();

        

        cam_fadeout( 0.1, 0, 0, 0, 1, 0 ); 
 
 
        //Make Illia holster any weapon she might have acquired 
        $player.holster(); 
 
        //Bring up a fake player model 
        fakeplayer(); 

        //Make the fakeplayer use the same weapon as you 
        globalCommon_AiActorUseWeapon( $fakeplayer, "current" ); 
 
        //Make it a cinematic 
        cinematic(); 
        letterbox( 0.5 ); 

        wait( 0.5 ); 

        $cam6.follow( $cin_final_pos1, $fakeplayer ); 
        $cam6.cut();
        cam_fadein( 1, 0, 0, 0, 1, 0 );
        wait(.5);
        cuecamera($cam6);

        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/no.mp3", 2, 10000, 0 );
        waitfordialog($fakeplayer);

        wait(1);

        $screen_pattern.hide();
        $screen_on.show();
        $fakeplayer.lookat( $screen_pos ); 
        wait(1);

        //$cam7.follow( $cin_final_pos2 ); 
        //$cam7.cut();
        //wait(.5);
        //cuecamera($cam7);
        //wait(.2);
        $stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/Sorry.mp3", 2, 10000, 0 );
        waitfordialog($stammheim_cockpit2);
        $stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/really.mp3", 2, 10000, 0 );
        waitfordialog($stammheim_cockpit2);
        $stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/danger.mp3", 2, 10000, 0 );
        waitfordialog($stammheim_cockpit2);
        $stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/played.mp3", 2, 10000, 0 );
        waitfordialog($stammheim_cockpit2);
        $stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/hetlek.mp3", 2, 10000, 0 );
        waitfordialog($stammheim_cockpit2);
        $stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/greet.mp3", 2, 10000, 0 );
        waitfordialog($stammheim_cockpit2);
        $stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/youwill.mp3", 2, 10000, 0 );
        waitfordialog($stammheim_cockpit2);
        $screen_on.hide();
        $screen_pattern.show();

        wait(.5);
        
        $fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/youbastard.mp3", 2, 10000, 0 );
        waitfordialog($fakeplayer);

        $cam8.follow( $cin_final_pos3, $fakeplayer ); 
        $cam8.cut();
        wait(.5);
        cuecamera($cam8);
        $fakeplayer.walkto( "$illia_final" );
        waitfor($fakeplayer);

        $sec_door.moveup(192);
        $sec_dppr.playsound("sound/doors/klingon_jtube.wav");
        waitfor($sec_door);
        $arrest1.walkto( "$arrest_dest1", "run" );
        $arrest2.walkto( "$arrest_dest2", "run" );
        $arrest3.walkto( "$arrest_dest3", "run" );
        $arrest4.walkto( "$arrest_dest4", "run" );

        wait(8);



        //FAKE ILLIA TO "cin_shuttle_illia_01"
        //STANHEIM WALK TO "cin_shuttle_stan_01"
        //CAMERA FOLLOW "cin_shuttle_cam1_pos1"
        //MODEL "int_door" ANIMATION OPEN
        //STANHEIM RUN TO "cin_shuttle_stan_02"
        //NPC "cin_shuttle_guard_A" WALK TO "cin_shuttle_guard_01"
        //NPC "cin_shuttle_guard_B" WALK TO "cin_shuttle_guard_02"
        //NPC "cin_shuttle_guard_C" WALK TO "cin_shuttle_guard_03"
        //NPC "cin_shuttle_guard_D" WALK TO "cin_shuttle_guard_04"
        //CAMERA "cin_shuttle_cam2_pos1"
        //FAKE ILLIA ANIMATION HANDS UP
        //CAMERA FADE OUT

        thread cin_shuttle_skip();
}


void cin_shuttle_skip()
{
        cam_fadeout( 1, 0, 0, 0, 1, 0 );
        skipthread( "Null" ); 
        killthread( "cin_shuttle" );
        $player.immobilize(0);
        //End the cinematic 
        noncinematic(); 
        clearletterbox( 0.1 ); 
        cueplayer();
        stuffcmd("map map10"); 
        cam_fadein( 1, 0, 0, 0, 1, 0 );
}


void illiaEnteringShuttle()
{
        $fakeplayer.notsolid();
        $fakeplayer.walkto( "$enter_shuttle2" );
        waitfor( $fakeplayer );
        
        $fakeplayer.walkto( "$enter_waypoint1" );
        waitfor( $fakeplayer );

        $fakeplayer.walkto( "$enter_waypoint3" );
        waitfor( $fakeplayer );

        $fakeplayer.walkto( "$enter_waypoint5" );
        waitfor( $fakeplayer );

        $fakeplayer.walkto( "$enter_waypoint7" );
        waitfor( $fakeplayer );
}

void stammheimEnteringShuttle()
{
        $stammheim.notsolid();
 
        $stammheim.walkto( "$enter_shuttle1" );
        waitfor( $stammheim );
        
        $stammheim.walkto( "$enter_waypoint0" );
        waitfor( $stammheim );
        wait(2);

        $stammheim.walkto( "$enter_waypoint2" );
        waitfor( $stammheim );

        $stammheim.walkto( "$enter_waypoint4" );
        waitfor( $stammheim );

        $stammheim.walkto( "$enter_waypoint6" );
        waitfor( $stammheim );

        $stammheim.walkto( "$enter_waypoint7" );
        waitfor( $stammheim );
}

void t15_attack()
{
        $t15.show();
        $t15.solid();
        $t15.ai_on();
        $t15.attack($player);
}

void rom_1()
{
        $rom_1.show();
        $rom_1.solid();
        $rom_1.ai_on();
        $rom_1.attack($player);
}

void grp_hall_door()
{
        cam_fadeout( 0.1, 0, 0, 0, 1, 0 ); 
        $cam2.follow( $entrance ); 
        $cam2.cut(); 
        cinematic();
        freezeplayer();
        letterbox( 0.5 ); 
        wait( 0.5 ); 

        cam_fadein( 1, 0, 0, 0, 1, 0 );
        wait( 0.1 ); 
        cuecamera($cam2);
        $grp_hall_door.open($grp_hall_door);
        triggerentity($door_sound);
        wait(3);
        noncinematic();
        clearletterbox( 0.1 ); 

        releaseplayer();
        cueplayer();

        wait( 0.1 ); 

        cam_fadein( 0.1, 0, 0, 0, 1, 0 ); 
}