Subversion-Projekte sthq.gbs

Revision

Revision 830 | Revision 857 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
606 TickNSwist 1
// EF2 Level Script File
2
//
665 lars 3
// Level:		map09.bsp
855 Avenger 4
// Script By:		DrBob & Argyle & TickNSwisted & Sam "Bicko" Bickley & LTiefland & Chrissstrahl
748 ticknswist 5
// Geometry By:		TickNSwisted & Argyle & Sam "Bicko" Bickley
606 TickNSwist 6
// Created on:		02/04/04
855 Avenger 7
// Last Edited on:		31.01.2006
8
// Last Edited By:		Chrissstrahl
606 TickNSwist 9
//**************************************************************************
855 Avenger 10
//   MAP 9SCRIPT
606 TickNSwist 11
//**************************************************************************
12
//INCLUDES
855 Avenger 13
#include "maps/global_scripts/global_common.scr"
14
#include "maps/global_scripts/global_archetype.scr"
606 TickNSwist 15
#include "maps/global_scripts/global_playerLoadout.scr"
16
 
855 Avenger 17
//NOTES
18
/*
19
sound/doors/door_locked.wav
20
sound/ships/romulan/rom_beep_yes.wav
21
sound/ships/romulan/rom_beep_no.wav
22
sound/ships/romulan/rom_beep_activate.wav
23
sound/ships/romulan/rom_redalert.wav
24
*/
25
 
26
 
27
//VARS
28
//**************************************************************************
29
float romulan1_active;
30
float elevator1_pos = 1;
31
float door_01_pos = 1;
32
float lift_02_pos = 0;
33
 
34
 
35
//STAGE 0
36
void main();
37
void setupWorld();
38
 
39
//STAGE 1
40
void granade_romulan1();
41
void fire_lift_01() ;
42
void lift_01_romulaner();
43
//
606 TickNSwist 44
void fire_lift_01();
45
void fire_lift_02();
46
void fire_lift_03();
47
void fire_ff_01();
48
void fire_steam_01();
49
void fire_steam_02();
855 Avenger 50
//
606 TickNSwist 51
void cin_cells();
628 ticknswist 52
void cin_cells_skip();
855 Avenger 53
//
772 avenger 54
void shuttle_entrance();
55
void shuttle_entrance_skip();
855 Avenger 56
//
628 ticknswist 57
void cin_shuttle();
58
void cin_shuttle_skip();
812 lars 59
void stammheimEnteringShuttle();
60
void illiaEnteringShuttle();
61
 
62
 
606 TickNSwist 63
 
64
 
855 Avenger 65
void fire_lift_02 ()
66
{
67
	if ( lift_02_pos == 0 )
68
	{
69
		$lift_02.playsound ( "sound/environment/machine/lift3.wav" );
70
		$lift_02.time ( 4 );
71
		$lift_02.movedown ( 280 );
72
		wait ( 4 );
73
		$lift_02.playsound ( "sound/environment/machine/lift3stop.wav" );
74
		wait ( 3 );
75
		lift_02_pos = 1;
76
	}
77
	else
78
	{
79
		if ( lift_02_pos == 1 )
80
		{
81
			$lift_02.playsound ( "sound/environment/machine/lift3.wav" );
82
			$lift_02.time ( 4 );
83
			$lift_02.moveup ( 280 );
84
			wait ( 4 );
85
			$lift_02.playsound ( "sound/environment/machine/lift3stop.wav" );
86
			wait ( 3 );
87
			lift_02_pos = 0;
88
		}
89
	}
90
}
606 TickNSwist 91
 
92
void fire_lift_03 ()
93
{
855 Avenger 94
	$lift_03.playsound ( "sound/environment/machine/lift3.wav" );
95
	$lift_03.time ( 3 );
96
	$lift_03.moveup ( 262 );
97
	wait ( 3 );
98
	$lift_03.playsound ( "sound/environment/machine/lift3stop.wav" );
99
	wait ( 4 );
100
	$lift_03.playsound ( "sound/environment/machine/lift3.wav" );
101
	$lift_03.time ( 3 );
102
	$lift_03.movedown ( 262 );
103
	wait ( 3 );
104
	$lift_03.playsound ( "sound/environment/machine/lift3stop.wav" );
105
	wait ( 3 );
606 TickNSwist 106
}
107
 
108
void fire_baydoors ()
109
{
855 Avenger 110
	$bay_door_01.playsound ( "sound/environment/machine/lift4.wav");
111
	$bay_door_01.time ( 5 );
112
	$bay_door_01.movenorth ( 500 );
113
	$bay_door_02.time ( 5 );
114
	$bay_door_02.movesouth ( 500 );
115
	wait ( 5 );
116
	$bay_door_01.playsound ( "sound/environment/machine/lift4stop.wav" );
606 TickNSwist 117
}
118
 
119
void fire_ff_01 ()
855 Avenger 120
//Removes the ff to the controll center.
121
{
122
	$trigger_ff.playsound( "sound/ships/romulan/rom_beep_activate.wav" );
123
	wait( 2 );
124
 
125
	$sparks_ff.selfdetonate();
126
	wait( 0.1 );
127
	$device_ff_origin.angles( '90 -90 0' );
128
	$ff_01.remove ();
129
	$sparks_ff.show();
130
	$cable_ff.show();
131
	wait( 3 );
606 TickNSwist 132
}
133
 
134
 
135
void fire_steam_01()
136
{
855 Avenger 137
	$knob_steam_01.rotateZ(50);
138
	//  $knob_steam_01.movenorth(1);
139
	$knob_steam_01.playsound( "sound/environment/metal/crank_switch.wav" );
140
	wait(1);
141
	$knob_steam_01.rotateZ(0);
142
	$trig_steam_01.nottriggerable();
143
	$enty_steam_01.remove ();
606 TickNSwist 144
}
145
 
146
void fire_steam_02()
147
{
855 Avenger 148
	$knob_steam_02.rotateX(64);
149
	//  $knob_steam_02.movenorth(1);
150
	$knob_steam_02.playsound( "sound/environment/metal/crank_switch.wav" );
151
	wait(1);
152
	$knob_steam_02.rotateX(0);
153
	$trig_steam_02.nottriggerable();
154
	$enty_steam_02.remove ();
606 TickNSwist 155
}
156
 
157
//**************************************************************************
158
//MAIN
159
//**************************************************************************
160
void main()
161
{
855 Avenger 162
	soundtrack( "music/map9.mus" );
163
	$sky.rendereffects( "+skyorigin" );
164
	thread setupWorld();
165
 
166
	//Wait for the Player to be Ready
167
	waitForPlayer();
168
 
169
	//Equip developers with something special, like tricorder to chek all the model archetypes
170
	if( getCvar( "developer" ) == "1" )
171
	{
172
		$player.give ( "models/weapons/worldmodel-tricorder-STX.tik" );
173
		stuffcmd( "sv_showInfo", "1" );
174
		stuffcmd( "sv_showInfodist", "512" );
175
	}
176
 
177
 
178
	//Euip player with weapons
179
	$player.give( "models/weapons/worldmodel-compressionrifle.tik" );
180
	$player.give( "models/weapons/worldmodel-rom-disruptor.tik" );
606 TickNSwist 181
 
855 Avenger 182
	//Give some Ammo
183
	$player.ammo( "Plasma", 200 );
184
	$player.armor( "BasicArmor", 100 );
185
 
186
	//Make the player use this weapon now
187
	$player.use( "romulanDisruptor" );
188
 
189
	//Show the mission objective
190
	$player.setobjectiveshow( "findstammheim", 1 );
191
	wait( 1.5 );
606 TickNSwist 192
}
193
 
194
void setupWorld()
855 Avenger 195
{
196
	//Setup The Archetypes
197
	thread globalArchetype_Setup( $console_0, "RomulanGenericUsableConsole");
198
	thread globalArchetype_Setup( $console_1, "RomulanSecurityUsableConsole");
199
	thread globalArchetype_Setup( $console_2, "RomulanGenericUsableConsole");
200
	thread globalArchetype_Setup( $console_3, "RomulanSecurityUsableConsole");
201
 
202
	//Setup The OnUse Threads
203
	thread globalCommon_OnUse( $trigger_fire_lift_01, "lift_01_romulaner" );
204
 
205
	//Loop Sounds
206
	$stammheim_forcefield.loopsound( "sound/ships/enterprise/ent_forcefield.wav" , 1, 125 );
207
 
208
	//Force Field Generator Device (Not the ventilator system)
209
	$device_ff.bind( $device_ff_origin );
210
	$sparks_ff.hide();
211
	$cable_ff.hide();
212
	$device_ff_origin.angles( '0 -90 0' );
213
 
214
	//Granade Romulaner
215
	$romulan1.ai_off();//Sleep till we need you
216
 
217
	//TEMORARY -> Lock Cell Door and disable cinematics
218
	//Till player finds the console to unlock the cell
219
	$cell_door.lock();
220
	$trigger_cin_cells.nottriggerable();
221
	//Lock door for the shuttlebay
222
	$baydoor.lock();
223
 
224
	//Cells, outside gards
225
	$romulan2.ai_off();
226
	$romulan3.ai_off();
227
	$romulan4.ai_off();
228
	$romulan2.hide();
229
	$romulan3.hide();
230
	$romulan4.hide();
231
	$romulan2.notsolid();
232
	$romulan3.notsolid();
233
	$romulan4.notsolid();
234
 
235
	//Video Screen
786 lars 236
	$screen_on.hide();
855 Avenger 237
    $screen_pattern.show();
238
 
239
	//Shuttle, Romulan Patrols
785 lars 240
	$shuttle_attacker1.ai_off();
241
	$shuttle_attacker2.ai_off();
242
	$shuttle_attacker3.ai_off();
243
	$shuttle_attacker4.ai_off();
784 lars 244
	$shuttle_attacker1.hide();
855 Avenger 245
	$shuttle_attacker2.hide();
246
	$shuttle_attacker3.hide();
247
	$shuttle_attacker4.hide();
784 lars 248
	$shuttle_attacker1.notsolid();
249
	$shuttle_attacker2.notsolid();
250
	$shuttle_attacker3.notsolid();
251
	$shuttle_attacker4.notsolid();
772 avenger 252
 
855 Avenger 253
	//Shuttle, Bind Models
829 lars 254
	$drull_shuttle.bind($shuttle_bind);
255
	$shuttle_main.bind($shuttle_bind);
606 TickNSwist 256
 
829 lars 257
	//Change the player's model
258
	$player.model( "char/hazardteam_jurot.tik" );
606 TickNSwist 259
 
829 lars 260
	//Load the mission objectives
261
	$player.loadobjectives( "GBS10" );
262
 
855 Avenger 263
	//Make Stammheim so that he isn't allowed to be killed by you
264
	$stammheim.not_allowed_to_kill();
606 TickNSwist 265
 
855 Avenger 266
	//Remove Stammheim's toy
267
	$stammheim.removeactorweapon( "CompressionRifle" );
606 TickNSwist 268
 
855 Avenger 269
	$illia_cockpit.removeactorweapon( "CompressionRifleEnhanced" );
270
	$stammheim_cockpit.removeactorweapon( "CompressionRifle" );
772 avenger 271
 
272
 
855 Avenger 273
	//Spawn cameras
274
	spawn( "Camera", "targetname", "cam1" );
784 lars 275
	spawn( "Camera", "targetname", "cam2" );
855 Avenger 276
	spawn( "Camera", "targetname", "cam3" );
277
	spawn( "Camera", "targetname", "cam4" );
278
	spawn( "Camera", "targetname", "cam5" );
279
	spawn( "Camera", "targetname", "cam6" );
280
	spawn( "Camera", "targetname", "cam7" );
281
	spawn( "Camera", "targetname", "cam8" );
606 TickNSwist 282
 
855 Avenger 283
	//Remove NPCs AI
284
	$stammheim.ai_off();
285
	$stammheim_cockpit2.ai_off();
286
	$stammheim_cockpit2.hide();
287
	$stammheim_cockpit.ai_off();
288
	$illia_cockpit.ai_off();
289
	$imdead.ai_off();
290
	$arrest1.ai_off();
291
	$arrest2.ai_off();
292
	$arrest3.ai_off();
293
	$arrest4.ai_off();
606 TickNSwist 294
 
855 Avenger 295
	//Set NPCs sides
296
	$stammheim.actortype( "teammate" );
297
	$player.addrosterteammate1( $stammheim );
606 TickNSwist 298
 
855 Avenger 299
	//Make it so that Romulans wont attack Stammheim, only you
300
	$stammheim.flags( "+notarget" );
772 avenger 301
 
855 Avenger 302
	//Make Stammheim a mission target
303
	$stammheim.missionobjective( 1 );
304
 
305
	//Setup NPC animations
306
	$stammheim.anim( "idle_breathing" );
307
	$imdead.anim("dead_in_captain_chair");
308
 
309
	//Setup NPC facial animation
310
	$stammheim.morph( "exp_eyes_heavy" );
311
	$stammheim.morph( "exp_Nervous" );
312
	$stammheim.morph( "exp_Fear" );
313
	$stammheim.morph( "exp_Sad" );
314
 
315
	$entrance_trigger.nottriggerable();
316
	$trigger_final.nottriggerable();
317
 
318
	//Make NPCs non-pushable
319
 
320
	//Loop redalert Sound
321
	//$player.loopsound("sound/ships/romulan/rom_redalert.wav", 1 );
322
}
323
 
324
 
325
//STAGE 1
326
//**************************************************************************
327
// Reach the lift
328
//**************************************************************************
329
 
330
void granade_romulan1()
331
//Romulan Grenadier
332
{
333
	//Chek if he is still alive, then make him think
334
	if( doesEntityExist( $romulan1 ) )
335
	{
336
		$romulan1.ai_on();
337
	}
338
}
339
 
340
void fire_lift_01()
341
{
342
	//Check if the grenadier is still allive, if make him sleep
343
	//ELSE he will make noise all the time
344
	if( doesEntityExist( $romulan1 ) )
345
	{
346
		$romulan1.sleep();
347
	}
348
 
349
	//Check if the Lift was active
350
	if( romulan1_active != 1 )
351
	{
352
		thread lift_01_romulaner();
353
		romulan1_active = 1;
354
	}
355
	//Move the lift down, lock the trigger, wait and move the lift up again
356
	$trigger_fire_lift_01.nottriggerable();
357
	$lift_01.playsound ( "sound/environment/machine/lift3.wav" );
358
	$lift_01.time ( 6 );
359
	$lift_01.movedown ( 432 );
360
	wait ( 6 );
361
	$lift_01.playsound ( "sound/environment/machine/lift3stop.wav" );
362
 
363
	wait ( 5 );
364
 
365
	$lift_01.playsound ( "sound/environment/machine/lift3.wav" );
366
	$lift_01.time ( 6 );
367
	$lift_01.moveup ( 432 );
368
	wait ( 6 );
369
	$lift_01.playsound ( "sound/environment/machine/lift3stop.wav" );
370
	$trigger_fire_lift_01.triggerable();
606 TickNSwist 371
}
372
 
855 Avenger 373
 
374
void lift_01_romulaner()
375
{
376
	//Spawn a Romulan Solider at the lift01
377
	$romulan2.ai_on();
378
	$romulan2.displayeffect( "TransportIn", "Romulan" );
379
	$romulan2.show();
380
	wait( 2 ); //Wait a moment to simulate the transporter effect
381
	$romulan2.solid();
382
}
383
 
384
 
385
 
386
//STAGE 2
387
//**************************************************************************
388
// Manage to open the hall door
389
//**************************************************************************
390
 
391
void secret_dancer1()
392
//Secret dancer, if player enters the room she starts dancing
393
{
394
	//Let her dance
395
	while( doesEntityExist( $dancer1 ) )
396
	{
397
		$dancer1.anim( "dance1" );
398
		wait( 10 );
399
	}
400
}
401
 
402
void grp_hall_door()
403
//Unlock and open the hall door for stage 3
404
{
405
	$trigger_grp_hall_door.nottriggerable();
406
	$grp_hall_door.unlock();
407
	$grp_hall_door.open( $trigger_grp_hall_door );
408
}
409
 
410
//STAGE 3
411
//**************************************************************************
412
// -
413
//**************************************************************************
414
void grp_hall_door_lock()
415
//lock and open the hall door
416
{
417
	$grp_hall_door.close();
418
	$grp_hall_door.lock();
419
}
420
 
421
void unlock_cells()
422
{
423
	$trigger_unlock_cells.playsound("sound/ships/romulan/rom_beep_yes.wav", 1, 1, 10 );
424
	$trigger_cin_cells.triggerable();
425
	$cell_door.unlock();
426
	$romulan3.show();
427
	$romulan3.solid();
428
	$romulan3.ai_on();
429
}
606 TickNSwist 430
//CINEMATIC FUNCTIONS
431
void cin_cells()
855 Avenger 432
{
433
	//Unlock Bay Door,
434
	$baydoor.unlock();
435
 
436
	//Activate a nother soldier (he will patrol until player comes in viewrange)
437
	$romulan4.show();
438
	$romulan4.solid();
439
	$romulan4.ai_on();
440
 
441
 
442
	skipthread( "cin_cells_skip" );
443
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
606 TickNSwist 444
 
855 Avenger 445
	//Make Illia holster any weapon she might have acquired
446
	$player.holster();
447
	//Bring up a fake player model
448
	fakeplayer();
606 TickNSwist 449
 
855 Avenger 450
	//Make the fakeplayer use the same weapon as you
451
	globalCommon_AiActorUseWeapon( $fakeplayer, "current" );
606 TickNSwist 452
 
855 Avenger 453
	//Initialize the fake player
454
	$fakeplayer.strictlyfollowpath( 1 );
455
	$stammheim.strictlyfollowpath( 1 );
606 TickNSwist 456
 
855 Avenger 457
	$cam1.follow( $cin_cells_cam1_pos1, $fakeplayer );
458
	$cam1.cut();
606 TickNSwist 459
 
855 Avenger 460
	//Make it a cinematic
461
	cinematic();
462
	letterbox( 0.5 );
606 TickNSwist 463
 
855 Avenger 464
	wait( 0.5 );
606 TickNSwist 465
 
855 Avenger 466
	cam_fadein( 1, 0, 0, 0, 1, 0 );
467
	wait( 0.1 );
468
	cuecamera($cam1);
606 TickNSwist 469
 
855 Avenger 470
	//Make Illia walk up to the doors
471
	$fakeplayer.walkto( "$cin_cells_illia_pos_enter" );
472
	waitFor( $fakeplayer );
606 TickNSwist 473
 
855 Avenger 474
	//Open the door
475
	//thread fire_door_01();
606 TickNSwist 476
 
855 Avenger 477
	//Make the camera pan down to look through the door
478
	$cam1.follow( $cin_cells_cam1_pos2 );
606 TickNSwist 479
 
855 Avenger 480
	//Make Illia hesitate slightly
481
	wait( 0.3 );
482
	cuecamera($cam1);
606 TickNSwist 483
 
855 Avenger 484
	//Make Illia walk to inside the cell room
485
	//$fakeplayer.walkto( "$cin_cells_illia_pos_inside", "run", 0, -1 );
486
	$fakeplayer.walkto( "$cin_cells_illia_pos_inside" );
487
	waitFor( $fakeplayer );
488
	$fakeplayer.headwatch( $stammheim );
489
	$fakeplayer.walkto( "$cin_cells_illia_pos_nearcell" );
490
	wait( 1 );
606 TickNSwist 491
 
855 Avenger 492
	//Close the door again, just to be tidy
493
	//fire_door_01();
606 TickNSwist 494
 
855 Avenger 495
	//Fade the camera out
496
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
497
	wait( 2 );
606 TickNSwist 498
 
855 Avenger 499
	//Setup the camera inside the cell room
500
 
501
	$cam1.follow( $cin_cells_cam1_pos3 );
502
	$cam1.cut();
606 TickNSwist 503
 
855 Avenger 504
	wait( 1 );
505
	cuecamera($cam1);
606 TickNSwist 506
 
855 Avenger 507
	cam_fadein( 0.1, 0, 0, 0, 1, 0 );
606 TickNSwist 508
 
855 Avenger 509
	//POSSIBLE ANIMATIONS FOR STAMMHEIM:
510
	//   cheer              :   Arms above head
511
	//   conv-embarrassment :   Head in hands
512
	//   conv-gesture1      :   Looking around, scared
513
	//   conv-laugh1        :   Pain
514
	//   conv-look          :   Looking around, scared
515
	//   conv-shakehead     :   Pain in head, voices
516
	//   idle_breathing     :   Hard to breathe
606 TickNSwist 517
 
855 Avenger 518
	//Illia: Stammheim.
519
	$fakeplayer.morph( "exp_Relief" );
520
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/stammheim.mp3", 1, 10000, 0 );
521
	waitForDialog( $fakeplayer );
522
	$fakeplayer.unmorph( "exp_Relief" );
606 TickNSwist 523
 
855 Avenger 524
	wait( 0.5 );
606 TickNSwist 525
 
855 Avenger 526
	//Turn Stammheim towards the player
527
	$stammheim.turntowardsplayer();
528
	$stammheim.headwatch( $fakeplayer );
606 TickNSwist 529
 
855 Avenger 530
	wait( 0.5 );
606 TickNSwist 531
 
855 Avenger 532
	//Stammheim: Who...who are you?
533
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/whoareyou.mp3", 2, 10000, 0 );
534
	waitForDialog( $stammheim );
606 TickNSwist 535
 
855 Avenger 536
	//Start the camera panning up on Illia
537
	$cam1.follow( $cin_cells_cam1_pos4 );
538
	$cam1.cut();
606 TickNSwist 539
 
855 Avenger 540
	//Illia: You know me Stammheim.
541
	$fakeplayer.anim( "conv-gesture1" );
542
	$fakeplayer.morph( "exp_Skeptical" );
543
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/youknowme.mp3", 1, 10000, 0 );
544
	waitForDialog( $fakeplayer );
545
	$fakeplayer.anim( "idle" );
606 TickNSwist 546
 
855 Avenger 547
	//Illia: The mission on Cardassia Prime?
548
	$fakeplayer.anim( "conv_shrug" );
549
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/cardassiaprime.mp3", 1, 10000, 0 );
550
	waitForDialog( $fakeplayer );
551
	$fakeplayer.anim( "idle" );
606 TickNSwist 552
 
855 Avenger 553
	wait( 0.5 );
606 TickNSwist 554
 
855 Avenger 555
	//Illia: Doesn't that ring a bell?
556
	$fakeplayer.unmorph( "exp_Skeptical" );
557
	$fakeplayer.morph( "exp_Confused" );
558
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/ringabell.mp3", 1, 10000, 0 );
559
	waitForDialog( $fakeplayer );
606 TickNSwist 560
 
855 Avenger 561
	wait( 0.5 );
606 TickNSwist 562
 
855 Avenger 563
	//Pointing at Stammheim through the forcefield
564
	$cam1.follow( $cin_cells_cam1_pos5 );
565
	$cam1.cut();
606 TickNSwist 566
 
855 Avenger 567
	//Stammheim: No more questions...please...please...
568
	$stammheim.anim( "conv-shakehead" );
569
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/noquestions.mp3", 2, 10000, 0 );
570
	waitForDialog( $stammheim );
606 TickNSwist 571
 
855 Avenger 572
	wait( 1.5 );
573
 
574
	//Stammheim: My head...
575
	$stammheim.anim( "cheer" );
576
	$stammheim.morph( "exp_Pain" );
577
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/myhead.mp3", 2, 10000, 0 );
578
	waitForAnimation( $stammheim, "cheer" );
579
	$stammheim.anim( "idle" );
580
	waitForDialog( $stammheim );
581
 
582
	//Stammheim: The Romulan said the pain would stop...but it hasn't.
583
	$stammheim.anim( "conv-shakehead" );
584
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/painstop.mp3", 2, 10000, 0 );
585
	waitForDialog( $stammheim );
586
 
587
	wait( 0.5 );
588
 
589
	//Looking at Illia
590
	$cam1.follow( $cin_cells_cam1_pos6, $fakeplayer );
591
	$cam1.cut();
592
 
593
	//Illia: The Romulans didn't exactly handle him with kid gloves, it seems.
594
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/romulans.mp3", 1, 10000, 0 );
595
	waitForDialog( $fakeplayer );
596
	$fakeplayer.unmorph( "exp_Confused" );
597
	$fakeplayer.morph( "exp_Serious" );
598
 
599
	wait( 0.5 );
600
 
601
	//Make Illia walk over to the console & deactivate the forcefield
602
	$fakeplayer.walkto( "$cin_cells_illia_pos_console" );
603
	waitFor( $fakeplayer );
604
 
605
	wait( 0.1 );
606
 
607
	//Make Illia use the console and play a sound
608
	//$fakeplayer.turntowardsentity( $console );
609
	$fakeplayer.headwatch( $console );
610
	$fakeplayer.turntoangle( 0 );
611
	waitFor( $fakeplayer );
612
	$fakeplayer.anim( "ent-transporter-rear-gesture" );
613
	$console.playsound( "sound/ships/romulan/rom_beep_yes.wav", 0, 1 );
614
 
615
	$cam1.lookat( $fakeplayer );
616
 
617
	waitForAnimation( $fakeplayer, "ent-transporter-rear-gesture" );
618
	$fakeplayer.anim( "idle" );
619
 
620
	$cam1.follow( $cin_cells_cam1_pos7, $stammheim );
621
	$cam1.cut();
622
 
623
	//Stop the forcefield sound, and play the forcefield_down sound
624
	$stammheim_forcefield.stoploopsound();
625
	$stammheim_forcefield.playsound( "sound/ships/enterprise/ent_forcefield_down.wav", 0, 1 );
626
	$stammheim_forcefield.remove();
627
 
628
	wait( 0.1 );
629
 
630
	//Illia: Come on Alexander. I'll get you out of here.
631
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/comeonalexander.mp3", 1, 10000, 0 );
632
	waitForDialog( $fakeplayer );
633
 
634
	//Illia: Try to follow me, ok?
635
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/follow.mp3", 1, 10000, 0 );
636
	waitForDialog( $fakeplayer );
637
 
638
	wait( 1 );
639
 
640
	//Illia: Do you understand?
641
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/understood.mp3", 1, 10000, 0 );
642
	$stammheim.anim( "idle_breathing" );
643
	waitForDialog( $fakeplayer );
644
 
645
	wait( 1.5 );
646
 
647
	//Stammheim: Follow...Yes...
648
	$stammheim.anim( "conv-yes" );
649
	$cam1.follow( $cin_cells_cam1_posstammheim, $stammheim );
650
	//$cam1.cut();
651
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/follow.mp3", 2, 10000, 0 );
652
	waitForDialog( $stammheim );
653
	$stammheim.anim( "idle_breathing" );
654
 
655
	wait( 0.5 );
656
 
657
	//Stammheim: Follow...
658
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/follow2.mp3", 2, 10000, 0 );
659
	wait( 1 );
660
 
661
	cin_cells_skip();
606 TickNSwist 662
}
663
 
664
void cin_cells_skip()
665
{
855 Avenger 666
	skipthread( "Null" );
667
	killthread( "cin_cells" );
606 TickNSwist 668
 
855 Avenger 669
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
670
	wait( 2 );
606 TickNSwist 671
 
855 Avenger 672
	//Remove all evidence of before the cin
673
	$stammheim_forcefield.remove();
674
	$fakeplayer.warpto( "$cin_cells_illia_pos_inside" );
675
	removefakeplayer();
606 TickNSwist 676
 
855 Avenger 677
	//End the cinematic
678
	noncinematic();
679
	clearletterbox( 0.1 );
680
	cueplayer();
681
	wait( 0.1 );
682
 
683
	cam_fadein( 0.1, 0, 0, 0, 1, 0 );
606 TickNSwist 684
 
855 Avenger 685
	//Now that the cinematic is over, make Stammheim follow you
686
	$stammheim.ai_on();
606 TickNSwist 687
 
855 Avenger 688
	//Unholster the crap
689
	$player.holster();
690
 
691
	//Make the objective complete
692
	$player.setobjectivecomplete( "findstammheim", 1 );
693
	$stammheim.missionobjective( 0 );
694
 
695
	//Show the new objective
696
	$player.setobjectiveshow( "escapewithshuttle", 1 );
697
 
698
	$entrance_trigger.triggerable();
606 TickNSwist 699
}
628 ticknswist 700
 
772 avenger 701
void shuttle_entrance()
702
{
855 Avenger 703
	skipthread( "shuttle_entrance_skip" );
704
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
628 ticknswist 705
 
855 Avenger 706
	//Make Illia holster any weapon she might have acquired
707
	$player.holster();
772 avenger 708
 
855 Avenger 709
	//Bring up a fake player model
710
	fakeplayer();
711
	$stammheim.ai_off();
772 avenger 712
 
855 Avenger 713
	$fakeplayer.warpto( "$shuttle_cin_illia" );
714
	$stammheim.warpto( "$shuttle_cin_stammheim" );
772 avenger 715
 
855 Avenger 716
	//Make the fakeplayer use the same weapon as you
717
	globalCommon_AiActorUseWeapon( $fakeplayer, "current" );
718
 
719
	$cam3.follow( $cin_enter_shuttle, $fakeplayer );
720
	$cam3.cut();
721
 
722
	//Make it a cinematic
723
	cinematic();
724
	letterbox( 0.5 );
725
 
726
	wait( 0.5 );
727
 
728
	cam_fadein( 1, 0, 0, 0, 1, 0 );
729
	wait( 0.1 );
730
	cuecamera($cam3);
731
 
732
 
733
	//Make Illia walk to the shuttle
734
	//$fakeplayer.strictlyfollowpath(1);
735
	//################################
736
	//Entering Shuttle
737
	thread illiaEnteringShuttle();
738
	stammheimEnteringShuttle();
739
 
740
 
741
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
742
	$illia_cockpit.show();
809 lars 743
	$illia_cockpit.solid();
855 Avenger 744
	$stammheim_cockpit.show();
809 lars 745
	$stammheim_cockpit.solid();
855 Avenger 746
	$cam4.follow( $cam_cockpit );
747
	$cam4.cut();
748
	cam_fadein( 1, 0, 0, 0, 1, 0 );
749
	wait( 0.1 );
750
	cuecamera($cam4);
814 lars 751
	//Cockpit
752
	$illia_cockpit.walkto( "$shuttle_illia01" );
753
	$stammheim_cockpit.walkto( "$shuttle_stammheim01" );
754
	waitfor($stammheim_cockpit);
855 Avenger 755
	$stammheim.notsolid();
756
	$stammheim.hide();
782 lars 757
 
855 Avenger 758
	$illia_cockpit.playdialog( "localization/sound/dialog/map09/Illia/sitdownalexander.mp3", 2, 10000, 0 );
759
	waitForDialog( $illia_cockpit );
760
	$illia_cockpit.playdialog( "localization/sound/dialog/map09/Illia/doorsofshuttlebay.mp3", 2, 10000, 0 );
761
	waitForDialog( $illia_cockpit );
762
	wait(1.5);
763
	$stammheim_cockpit.playdialog( "localization/sound/dialog/map09/Stammheim/myhead2.mp3", 2, 10000, 0 );
764
	waitForDialog( $stammheim_cockpit );
765
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
772 avenger 766
 
855 Avenger 767
	$fakeplayer.warpto("$shuttle_exit1");
768
	$cam5.follow( $shuttle_exit_cin, $fakeplayer );
769
	$cam5.cut();
770
	wait(.5);
771
	cuecamera($cam5);
772
	cam_fadein( 1, 0, 0, 0, 1, 0 );
773
	$fakeplayer.walkto("$shuttle_exit2");
774
	waitfor( $fakeplayer );
775
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/deja-vu.mp3", 2, 10000, 0 );
776
	waitfordialog( $fakeplayer );
772 avenger 777
 
855 Avenger 778
	shuttle_entrance_skip();
779
}
772 avenger 780
 
781
 
782
void shuttle_entrance_skip()
783
{
855 Avenger 784
	skipthread( "Null" );
785
	killthread( "shuttle_entrance" );
786
	$stammheim.remove();
787
	$illia_cockpit.remove();
788
	$stammheim_cockpit.remove();
789
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
772 avenger 790
 
855 Avenger 791
	wait( 2 );
772 avenger 792
 
855 Avenger 793
	//Lock door for the shuttlebay
794
	$baydoor.close();
795
	$baydoor.lock();
796
	$fakeplayer.warpto( "$shuttle_exit2" );
797
	removefakeplayer();
798
	$player.holster();
772 avenger 799
 
855 Avenger 800
	//End the cinematic
801
	noncinematic();
802
	clearletterbox( 0.1 );
803
	cueplayer();
772 avenger 804
 
855 Avenger 805
	wait( 0.1 );
806
 
807
	cam_fadein( 0.1, 0, 0, 0, 1, 0 );
808
 
809
	$trigger_final.triggerable();
810
 
811
	$shuttle_attacker1.displayeffect( "TransportIn", "Romulan" );
812
	$shuttle_attacker2.displayeffect( "TransportIn", "Romulan" );
813
	$shuttle_attacker3.displayeffect( "TransportIn", "Romulan" );
814
	$shuttle_attacker4.displayeffect( "TransportIn", "Romulan" );
784 lars 815
	wait(2);
816
	$shuttle_attacker1.show();
817
	$shuttle_attacker1.solid();
818
	$shuttle_attacker2.show();
819
	$shuttle_attacker2.solid();
820
	$shuttle_attacker3.show();
821
	$shuttle_attacker3.solid();
822
	$shuttle_attacker4.show();
823
	$shuttle_attacker4.solid();
855 Avenger 824
	wait(.4);
825
	$shuttle_attacker1.ai_on();
826
	$shuttle_attacker1.attack($player);
827
	$shuttle_attacker2.ai_on();
828
	$shuttle_attacker2.attack($player);
829
	$shuttle_attacker3.ai_on();
830
	$shuttle_attacker3.attack($player);
831
	$shuttle_attacker4.ai_on();
832
	$shuttle_attacker4.attack($player);
772 avenger 833
}
834
 
628 ticknswist 835
void cin_shuttle()
836
{
855 Avenger 837
	skipthread( "cin_shuttle_skip" );
628 ticknswist 838
 
814 lars 839
	$stammheim_cockpit2.ai_off();
840
	$stammheim_cockpit2.show();
841
	$stammheim_cockpit2.solid();
842
	$stammheim_cockpit2.anim( "bar_sitting_forward" );
855 Avenger 843
 
844
	//Imo Player, stuck there
845
	$player.immobilize( 1 );
846
 
847
	//Close Shuttle Doors
848
	$drull_shuttle.anim( "closing" );
849
	$drull_shuttle.playsound( "sound/doors/enterprise_door1.wav", 1 ,800 );
850
	waitforanimation( $drull_shuttle, "closing" );
851
	$drull_shuttle.anim( "closed" );
852
 
853
	//Open Bay Sky Door
814 lars 854
	$bay_door_01.playsound ( "sound/environment/machine/lift4.wav");
855
	$bay_door_01.time ( 5 );
856
	$bay_door_01.movenorth ( 500 );
857
	$bay_door_02.time ( 5 );
858
	$bay_door_02.movesouth ( 500 );
859
	wait ( 5 );
860
	$bay_door_01.playsound ( "sound/environment/machine/lift4stop.wav" );
855 Avenger 861
 
862
	//Remove the Shuttle Clip,( no reason given why)
814 lars 863
	$shuttle_clip.remove();
855 Avenger 864
	wait(1);
865
 
866
	//Shuttle Takeoff
867
	$shuttle_bind.followpath($shuttle_path);
868
	$shuttle_bind.playsound( "sound/vehicles/shuttlecraft/shuttle_takeoff.wav", 0, 4 );
628 ticknswist 869
 
855 Avenger 870
 
871
	waitfor($shuttle_bind);
872
	$shuttle_bind.hide();
873
 
874
	//Make the fakeplayer use the same weapon as you
875
	globalCommon_AiActorUseWeapon( $fakeplayer, "current" );
876
 
877
	//Holster Player Weapon
878
	$player.holster();
879
 
880
	//Fade Out Cam
881
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
882
 
883
	//Bring up a fake player model
884
	fakeplayer();
772 avenger 885
 
855 Avenger 886
	//Make it a cinematic
887
	cinematic();
888
	letterbox( 0.5 );
889
	wait( 0.5 );
772 avenger 890
 
855 Avenger 891
	$cam6.follow( $cin_final_pos1, $fakeplayer );
892
	$cam6.cut();
893
	cam_fadein( 1, 0, 0, 0, 1, 0 );
894
	wait(.5);
895
	cuecamera($cam6);
772 avenger 896
 
855 Avenger 897
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/no.mp3", 2, 10000, 0 );
898
	waitfordialog($fakeplayer);
772 avenger 899
 
855 Avenger 900
	wait(1);
772 avenger 901
 
855 Avenger 902
	$screen_pattern.hide();
814 lars 903
	$screen_on.show();
855 Avenger 904
	$fakeplayer.lookat( $screen_pos );
905
	wait(1);
772 avenger 906
 
855 Avenger 907
	//$cam7.follow( $cin_final_pos2 );
908
	//$cam7.cut();
909
	//wait(.5);
910
	//cuecamera($cam7);
911
	//wait(.2);
912
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/Sorry.mp3", 2, 10000, 0 );
814 lars 913
	waitfordialog($stammheim_cockpit2);
914
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/really.mp3", 2, 10000, 0 );
915
	waitfordialog($stammheim_cockpit2);
916
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/danger.mp3", 2, 10000, 0 );
917
	waitfordialog($stammheim_cockpit2);
918
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/played.mp3", 2, 10000, 0 );
919
	waitfordialog($stammheim_cockpit2);
920
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/hetlek.mp3", 2, 10000, 0 );
921
	waitfordialog($stammheim_cockpit2);
922
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/greet.mp3", 2, 10000, 0 );
923
	waitfordialog($stammheim_cockpit2);
924
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/youwill.mp3", 2, 10000, 0 );
925
	waitfordialog($stammheim_cockpit2);
926
	$screen_on.hide();
927
	$screen_pattern.show();
772 avenger 928
 
855 Avenger 929
	wait(.5);
772 avenger 930
 
855 Avenger 931
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/youbastard.mp3", 2, 10000, 0 );
932
	waitfordialog($fakeplayer);
772 avenger 933
 
855 Avenger 934
	$cam8.follow( $cin_final_pos3, $fakeplayer );
935
	$cam8.cut();
936
	wait(.5);
937
	cuecamera($cam8);
938
	$fakeplayer.walkto( "$illia_final" );
939
	waitfor($fakeplayer);
772 avenger 940
 
855 Avenger 941
	$sec_door.moveup(192);
942
	$sec_dppr.playsound("sound/doors/klingon_jtube.wav");
943
	waitfor($sec_door);
944
	$arrest1.walkto( "$arrest_dest1", "run" );
945
	$arrest2.walkto( "$arrest_dest2", "run" );
946
	$arrest3.walkto( "$arrest_dest3", "run" );
947
	$arrest4.walkto( "$arrest_dest4", "run" );
772 avenger 948
 
855 Avenger 949
	wait(8);
772 avenger 950
 
951
 
855 Avenger 952
 
748 ticknswist 953
	//FAKE ILLIA TO "cin_shuttle_illia_01"
954
	//STANHEIM WALK TO "cin_shuttle_stan_01"
955
	//CAMERA FOLLOW "cin_shuttle_cam1_pos1"
956
	//MODEL "int_door" ANIMATION OPEN
957
	//STANHEIM RUN TO "cin_shuttle_stan_02"
958
	//NPC "cin_shuttle_guard_A" WALK TO "cin_shuttle_guard_01"
959
	//NPC "cin_shuttle_guard_B" WALK TO "cin_shuttle_guard_02"
960
	//NPC "cin_shuttle_guard_C" WALK TO "cin_shuttle_guard_03"
961
	//NPC "cin_shuttle_guard_D" WALK TO "cin_shuttle_guard_04"
962
	//CAMERA "cin_shuttle_cam2_pos1"
963
	//FAKE ILLIA ANIMATION HANDS UP
964
	//CAMERA FADE OUT
965
 
768 avenger 966
	thread cin_shuttle_skip();
628 ticknswist 967
}
968
 
969
 
970
void cin_shuttle_skip()
971
{
855 Avenger 972
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
973
	skipthread( "Null" );
974
	killthread( "cin_shuttle" );
781 lars 975
	$player.immobilize(0);
855 Avenger 976
	//End the cinematic
977
	noncinematic();
978
	clearletterbox( 0.1 );
979
	cueplayer();
768 avenger 980
	stuffcmd("map map10");
855 Avenger 981
	cam_fadein( 1, 0, 0, 0, 1, 0 );
628 ticknswist 982
}
812 lars 983
 
984
 
985
void illiaEnteringShuttle()
986
{
814 lars 987
	$fakeplayer.notsolid();
988
	$fakeplayer.walkto( "$enter_shuttle2" );
812 lars 989
	waitfor( $fakeplayer );
990
 
991
	$fakeplayer.walkto( "$enter_waypoint1" );
992
	waitfor( $fakeplayer );
814 lars 993
 
812 lars 994
	$fakeplayer.walkto( "$enter_waypoint3" );
995
	waitfor( $fakeplayer );
996
 
997
	$fakeplayer.walkto( "$enter_waypoint5" );
998
	waitfor( $fakeplayer );
999
 
1000
	$fakeplayer.walkto( "$enter_waypoint7" );
1001
	waitfor( $fakeplayer );
1002
}
1003
 
1004
void stammheimEnteringShuttle()
1005
{
814 lars 1006
	$stammheim.notsolid();
812 lars 1007
 
814 lars 1008
	$stammheim.walkto( "$enter_shuttle1" );
812 lars 1009
	waitfor( $stammheim );
1010
 
814 lars 1011
	$stammheim.walkto( "$enter_waypoint0" );
812 lars 1012
	waitfor( $stammheim );
814 lars 1013
	wait(2);
1014
 
812 lars 1015
	$stammheim.walkto( "$enter_waypoint2" );
1016
	waitfor( $stammheim );
1017
 
1018
	$stammheim.walkto( "$enter_waypoint4" );
1019
	waitfor( $stammheim );
1020
 
1021
	$stammheim.walkto( "$enter_waypoint6" );
1022
	waitfor( $stammheim );
1023
 
1024
	$stammheim.walkto( "$enter_waypoint7" );
1025
	waitfor( $stammheim );
1026
}