Subversion-Projekte sthq.gbs

Revision

Revision 857 | Revision 880 | 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
857 lars 7
// Last Edited on:		03.02.2006
8
// Last Edited By:		ltiefland
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
877 lars 170
/*	if( getCvar( "developer" ) == "1" )
855 Avenger 171
	{
172
		$player.give ( "models/weapons/worldmodel-tricorder-STX.tik" );
173
		stuffcmd( "sv_showInfo", "1" );
174
		stuffcmd( "sv_showInfodist", "512" );
877 lars 175
	}*/ //Removed by Chrissstrahl for beta3 relase
855 Avenger 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
{
857 lars 405
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
406
	$cam2.follow( $entrance );
407
	$cam2.cut();
408
	cinematic();
409
	freezeplayer();
410
	letterbox( 0.5 );
411
	wait( 0.5 );
412
 
413
	cam_fadein( 1, 0, 0, 0, 1, 0 );
414
	wait( 0.1 );
415
	cuecamera($cam2);
855 Avenger 416
	$trigger_grp_hall_door.nottriggerable();
417
	$grp_hall_door.unlock();
418
	$grp_hall_door.open( $trigger_grp_hall_door );
857 lars 419
	triggerentity($door_sound);
420
	wait(3);
421
	noncinematic();
422
	clearletterbox( 0.1 );
423
 
424
	releaseplayer();
425
	cueplayer();
426
 
427
	wait( 0.1 );
428
 
429
	cam_fadein( 0.1, 0, 0, 0, 1, 0 );
855 Avenger 430
}
431
 
432
//STAGE 3
433
//**************************************************************************
434
// -
435
//**************************************************************************
436
void grp_hall_door_lock()
437
//lock and open the hall door
438
{
439
	$grp_hall_door.close();
440
	$grp_hall_door.lock();
441
}
442
 
443
void unlock_cells()
444
{
445
	$trigger_unlock_cells.playsound("sound/ships/romulan/rom_beep_yes.wav", 1, 1, 10 );
446
	$trigger_cin_cells.triggerable();
447
	$cell_door.unlock();
448
	$romulan3.show();
449
	$romulan3.solid();
450
	$romulan3.ai_on();
451
}
606 TickNSwist 452
//CINEMATIC FUNCTIONS
453
void cin_cells()
855 Avenger 454
{
455
	//Unlock Bay Door,
456
	$baydoor.unlock();
457
 
458
	//Activate a nother soldier (he will patrol until player comes in viewrange)
459
	$romulan4.show();
460
	$romulan4.solid();
461
	$romulan4.ai_on();
462
 
463
 
464
	skipthread( "cin_cells_skip" );
465
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
606 TickNSwist 466
 
855 Avenger 467
	//Make Illia holster any weapon she might have acquired
468
	$player.holster();
469
	//Bring up a fake player model
470
	fakeplayer();
606 TickNSwist 471
 
855 Avenger 472
	//Make the fakeplayer use the same weapon as you
473
	globalCommon_AiActorUseWeapon( $fakeplayer, "current" );
606 TickNSwist 474
 
855 Avenger 475
	//Initialize the fake player
476
	$fakeplayer.strictlyfollowpath( 1 );
477
	$stammheim.strictlyfollowpath( 1 );
606 TickNSwist 478
 
855 Avenger 479
	$cam1.follow( $cin_cells_cam1_pos1, $fakeplayer );
480
	$cam1.cut();
606 TickNSwist 481
 
855 Avenger 482
	//Make it a cinematic
483
	cinematic();
484
	letterbox( 0.5 );
606 TickNSwist 485
 
855 Avenger 486
	wait( 0.5 );
606 TickNSwist 487
 
855 Avenger 488
	cam_fadein( 1, 0, 0, 0, 1, 0 );
489
	wait( 0.1 );
490
	cuecamera($cam1);
606 TickNSwist 491
 
855 Avenger 492
	//Make Illia walk up to the doors
493
	$fakeplayer.walkto( "$cin_cells_illia_pos_enter" );
494
	waitFor( $fakeplayer );
606 TickNSwist 495
 
855 Avenger 496
	//Open the door
497
	//thread fire_door_01();
606 TickNSwist 498
 
855 Avenger 499
	//Make the camera pan down to look through the door
500
	$cam1.follow( $cin_cells_cam1_pos2 );
606 TickNSwist 501
 
855 Avenger 502
	//Make Illia hesitate slightly
503
	wait( 0.3 );
504
	cuecamera($cam1);
606 TickNSwist 505
 
855 Avenger 506
	//Make Illia walk to inside the cell room
507
	//$fakeplayer.walkto( "$cin_cells_illia_pos_inside", "run", 0, -1 );
508
	$fakeplayer.walkto( "$cin_cells_illia_pos_inside" );
509
	waitFor( $fakeplayer );
510
	$fakeplayer.headwatch( $stammheim );
511
	$fakeplayer.walkto( "$cin_cells_illia_pos_nearcell" );
512
	wait( 1 );
606 TickNSwist 513
 
855 Avenger 514
	//Close the door again, just to be tidy
515
	//fire_door_01();
606 TickNSwist 516
 
855 Avenger 517
	//Fade the camera out
518
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
519
	wait( 2 );
606 TickNSwist 520
 
855 Avenger 521
	//Setup the camera inside the cell room
522
 
523
	$cam1.follow( $cin_cells_cam1_pos3 );
524
	$cam1.cut();
606 TickNSwist 525
 
855 Avenger 526
	wait( 1 );
527
	cuecamera($cam1);
606 TickNSwist 528
 
855 Avenger 529
	cam_fadein( 0.1, 0, 0, 0, 1, 0 );
606 TickNSwist 530
 
855 Avenger 531
	//POSSIBLE ANIMATIONS FOR STAMMHEIM:
532
	//   cheer              :   Arms above head
533
	//   conv-embarrassment :   Head in hands
534
	//   conv-gesture1      :   Looking around, scared
535
	//   conv-laugh1        :   Pain
536
	//   conv-look          :   Looking around, scared
537
	//   conv-shakehead     :   Pain in head, voices
538
	//   idle_breathing     :   Hard to breathe
606 TickNSwist 539
 
855 Avenger 540
	//Illia: Stammheim.
541
	$fakeplayer.morph( "exp_Relief" );
542
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/stammheim.mp3", 1, 10000, 0 );
543
	waitForDialog( $fakeplayer );
544
	$fakeplayer.unmorph( "exp_Relief" );
606 TickNSwist 545
 
855 Avenger 546
	wait( 0.5 );
606 TickNSwist 547
 
855 Avenger 548
	//Turn Stammheim towards the player
549
	$stammheim.turntowardsplayer();
550
	$stammheim.headwatch( $fakeplayer );
606 TickNSwist 551
 
855 Avenger 552
	wait( 0.5 );
606 TickNSwist 553
 
855 Avenger 554
	//Stammheim: Who...who are you?
555
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/whoareyou.mp3", 2, 10000, 0 );
556
	waitForDialog( $stammheim );
606 TickNSwist 557
 
855 Avenger 558
	//Start the camera panning up on Illia
559
	$cam1.follow( $cin_cells_cam1_pos4 );
560
	$cam1.cut();
606 TickNSwist 561
 
855 Avenger 562
	//Illia: You know me Stammheim.
563
	$fakeplayer.anim( "conv-gesture1" );
564
	$fakeplayer.morph( "exp_Skeptical" );
565
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/youknowme.mp3", 1, 10000, 0 );
566
	waitForDialog( $fakeplayer );
567
	$fakeplayer.anim( "idle" );
606 TickNSwist 568
 
855 Avenger 569
	//Illia: The mission on Cardassia Prime?
570
	$fakeplayer.anim( "conv_shrug" );
571
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/cardassiaprime.mp3", 1, 10000, 0 );
572
	waitForDialog( $fakeplayer );
573
	$fakeplayer.anim( "idle" );
606 TickNSwist 574
 
855 Avenger 575
	wait( 0.5 );
606 TickNSwist 576
 
855 Avenger 577
	//Illia: Doesn't that ring a bell?
578
	$fakeplayer.unmorph( "exp_Skeptical" );
579
	$fakeplayer.morph( "exp_Confused" );
580
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/ringabell.mp3", 1, 10000, 0 );
581
	waitForDialog( $fakeplayer );
606 TickNSwist 582
 
855 Avenger 583
	wait( 0.5 );
606 TickNSwist 584
 
855 Avenger 585
	//Pointing at Stammheim through the forcefield
586
	$cam1.follow( $cin_cells_cam1_pos5 );
587
	$cam1.cut();
606 TickNSwist 588
 
855 Avenger 589
	//Stammheim: No more questions...please...please...
590
	$stammheim.anim( "conv-shakehead" );
591
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/noquestions.mp3", 2, 10000, 0 );
592
	waitForDialog( $stammheim );
606 TickNSwist 593
 
855 Avenger 594
	wait( 1.5 );
595
 
596
	//Stammheim: My head...
597
	$stammheim.anim( "cheer" );
598
	$stammheim.morph( "exp_Pain" );
599
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/myhead.mp3", 2, 10000, 0 );
600
	waitForAnimation( $stammheim, "cheer" );
601
	$stammheim.anim( "idle" );
602
	waitForDialog( $stammheim );
603
 
604
	//Stammheim: The Romulan said the pain would stop...but it hasn't.
605
	$stammheim.anim( "conv-shakehead" );
606
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/painstop.mp3", 2, 10000, 0 );
607
	waitForDialog( $stammheim );
608
 
609
	wait( 0.5 );
610
 
611
	//Looking at Illia
612
	$cam1.follow( $cin_cells_cam1_pos6, $fakeplayer );
613
	$cam1.cut();
614
 
615
	//Illia: The Romulans didn't exactly handle him with kid gloves, it seems.
616
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/romulans.mp3", 1, 10000, 0 );
617
	waitForDialog( $fakeplayer );
618
	$fakeplayer.unmorph( "exp_Confused" );
619
	$fakeplayer.morph( "exp_Serious" );
620
 
621
	wait( 0.5 );
622
 
623
	//Make Illia walk over to the console & deactivate the forcefield
624
	$fakeplayer.walkto( "$cin_cells_illia_pos_console" );
625
	waitFor( $fakeplayer );
626
 
627
	wait( 0.1 );
628
 
629
	//Make Illia use the console and play a sound
630
	//$fakeplayer.turntowardsentity( $console );
631
	$fakeplayer.headwatch( $console );
632
	$fakeplayer.turntoangle( 0 );
633
	waitFor( $fakeplayer );
634
	$fakeplayer.anim( "ent-transporter-rear-gesture" );
635
	$console.playsound( "sound/ships/romulan/rom_beep_yes.wav", 0, 1 );
636
 
637
	$cam1.lookat( $fakeplayer );
638
 
639
	waitForAnimation( $fakeplayer, "ent-transporter-rear-gesture" );
640
	$fakeplayer.anim( "idle" );
641
 
642
	$cam1.follow( $cin_cells_cam1_pos7, $stammheim );
643
	$cam1.cut();
644
 
645
	//Stop the forcefield sound, and play the forcefield_down sound
646
	$stammheim_forcefield.stoploopsound();
647
	$stammheim_forcefield.playsound( "sound/ships/enterprise/ent_forcefield_down.wav", 0, 1 );
648
	$stammheim_forcefield.remove();
649
 
650
	wait( 0.1 );
651
 
652
	//Illia: Come on Alexander. I'll get you out of here.
653
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/comeonalexander.mp3", 1, 10000, 0 );
654
	waitForDialog( $fakeplayer );
655
 
656
	//Illia: Try to follow me, ok?
657
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/follow.mp3", 1, 10000, 0 );
658
	waitForDialog( $fakeplayer );
659
 
660
	wait( 1 );
661
 
662
	//Illia: Do you understand?
663
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/understood.mp3", 1, 10000, 0 );
664
	$stammheim.anim( "idle_breathing" );
665
	waitForDialog( $fakeplayer );
666
 
667
	wait( 1.5 );
668
 
669
	//Stammheim: Follow...Yes...
670
	$stammheim.anim( "conv-yes" );
671
	$cam1.follow( $cin_cells_cam1_posstammheim, $stammheim );
672
	//$cam1.cut();
673
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/follow.mp3", 2, 10000, 0 );
674
	waitForDialog( $stammheim );
675
	$stammheim.anim( "idle_breathing" );
676
 
677
	wait( 0.5 );
678
 
679
	//Stammheim: Follow...
680
	$stammheim.playdialog( "localization/sound/dialog/map09/Stammheim/follow2.mp3", 2, 10000, 0 );
681
	wait( 1 );
682
 
683
	cin_cells_skip();
606 TickNSwist 684
}
685
 
686
void cin_cells_skip()
687
{
855 Avenger 688
	skipthread( "Null" );
689
	killthread( "cin_cells" );
606 TickNSwist 690
 
855 Avenger 691
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
692
	wait( 2 );
606 TickNSwist 693
 
855 Avenger 694
	//Remove all evidence of before the cin
695
	$stammheim_forcefield.remove();
696
	$fakeplayer.warpto( "$cin_cells_illia_pos_inside" );
697
	removefakeplayer();
606 TickNSwist 698
 
855 Avenger 699
	//End the cinematic
700
	noncinematic();
701
	clearletterbox( 0.1 );
702
	cueplayer();
703
	wait( 0.1 );
704
 
705
	cam_fadein( 0.1, 0, 0, 0, 1, 0 );
606 TickNSwist 706
 
855 Avenger 707
	//Now that the cinematic is over, make Stammheim follow you
708
	$stammheim.ai_on();
606 TickNSwist 709
 
855 Avenger 710
	//Unholster the crap
711
	$player.holster();
712
 
713
	//Make the objective complete
714
	$player.setobjectivecomplete( "findstammheim", 1 );
715
	$stammheim.missionobjective( 0 );
716
 
717
	//Show the new objective
718
	$player.setobjectiveshow( "escapewithshuttle", 1 );
719
 
720
	$entrance_trigger.triggerable();
606 TickNSwist 721
}
628 ticknswist 722
 
772 avenger 723
void shuttle_entrance()
724
{
855 Avenger 725
	skipthread( "shuttle_entrance_skip" );
726
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
628 ticknswist 727
 
855 Avenger 728
	//Make Illia holster any weapon she might have acquired
729
	$player.holster();
772 avenger 730
 
855 Avenger 731
	//Bring up a fake player model
732
	fakeplayer();
733
	$stammheim.ai_off();
772 avenger 734
 
855 Avenger 735
	$fakeplayer.warpto( "$shuttle_cin_illia" );
736
	$stammheim.warpto( "$shuttle_cin_stammheim" );
772 avenger 737
 
855 Avenger 738
	//Make the fakeplayer use the same weapon as you
739
	globalCommon_AiActorUseWeapon( $fakeplayer, "current" );
740
 
741
	$cam3.follow( $cin_enter_shuttle, $fakeplayer );
742
	$cam3.cut();
743
 
744
	//Make it a cinematic
745
	cinematic();
746
	letterbox( 0.5 );
747
 
748
	wait( 0.5 );
749
 
750
	cam_fadein( 1, 0, 0, 0, 1, 0 );
751
	wait( 0.1 );
752
	cuecamera($cam3);
753
 
754
 
755
	//Make Illia walk to the shuttle
756
	//$fakeplayer.strictlyfollowpath(1);
757
	//################################
758
	//Entering Shuttle
759
	thread illiaEnteringShuttle();
760
	stammheimEnteringShuttle();
761
 
762
 
763
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
764
	$illia_cockpit.show();
809 lars 765
	$illia_cockpit.solid();
855 Avenger 766
	$stammheim_cockpit.show();
809 lars 767
	$stammheim_cockpit.solid();
855 Avenger 768
	$cam4.follow( $cam_cockpit );
769
	$cam4.cut();
770
	cam_fadein( 1, 0, 0, 0, 1, 0 );
771
	wait( 0.1 );
772
	cuecamera($cam4);
814 lars 773
	//Cockpit
774
	$illia_cockpit.walkto( "$shuttle_illia01" );
775
	$stammheim_cockpit.walkto( "$shuttle_stammheim01" );
776
	waitfor($stammheim_cockpit);
855 Avenger 777
	$stammheim.notsolid();
778
	$stammheim.hide();
782 lars 779
 
855 Avenger 780
	$illia_cockpit.playdialog( "localization/sound/dialog/map09/Illia/sitdownalexander.mp3", 2, 10000, 0 );
781
	waitForDialog( $illia_cockpit );
782
	$illia_cockpit.playdialog( "localization/sound/dialog/map09/Illia/doorsofshuttlebay.mp3", 2, 10000, 0 );
783
	waitForDialog( $illia_cockpit );
784
	wait(1.5);
785
	$stammheim_cockpit.playdialog( "localization/sound/dialog/map09/Stammheim/myhead2.mp3", 2, 10000, 0 );
786
	waitForDialog( $stammheim_cockpit );
787
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
772 avenger 788
 
855 Avenger 789
	$fakeplayer.warpto("$shuttle_exit1");
790
	$cam5.follow( $shuttle_exit_cin, $fakeplayer );
791
	$cam5.cut();
792
	wait(.5);
793
	cuecamera($cam5);
794
	cam_fadein( 1, 0, 0, 0, 1, 0 );
795
	$fakeplayer.walkto("$shuttle_exit2");
796
	waitfor( $fakeplayer );
797
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/deja-vu.mp3", 2, 10000, 0 );
798
	waitfordialog( $fakeplayer );
772 avenger 799
 
855 Avenger 800
	shuttle_entrance_skip();
801
}
772 avenger 802
 
803
 
804
void shuttle_entrance_skip()
805
{
855 Avenger 806
	skipthread( "Null" );
807
	killthread( "shuttle_entrance" );
808
	$stammheim.remove();
809
	$illia_cockpit.remove();
810
	$stammheim_cockpit.remove();
811
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
772 avenger 812
 
855 Avenger 813
	wait( 2 );
772 avenger 814
 
855 Avenger 815
	//Lock door for the shuttlebay
816
	$baydoor.close();
817
	$baydoor.lock();
818
	$fakeplayer.warpto( "$shuttle_exit2" );
819
	removefakeplayer();
820
	$player.holster();
772 avenger 821
 
855 Avenger 822
	//End the cinematic
823
	noncinematic();
824
	clearletterbox( 0.1 );
825
	cueplayer();
772 avenger 826
 
855 Avenger 827
	wait( 0.1 );
828
 
829
	cam_fadein( 0.1, 0, 0, 0, 1, 0 );
830
 
831
	$trigger_final.triggerable();
832
 
833
	$shuttle_attacker1.displayeffect( "TransportIn", "Romulan" );
834
	$shuttle_attacker2.displayeffect( "TransportIn", "Romulan" );
835
	$shuttle_attacker3.displayeffect( "TransportIn", "Romulan" );
836
	$shuttle_attacker4.displayeffect( "TransportIn", "Romulan" );
784 lars 837
	wait(2);
838
	$shuttle_attacker1.show();
839
	$shuttle_attacker1.solid();
840
	$shuttle_attacker2.show();
841
	$shuttle_attacker2.solid();
842
	$shuttle_attacker3.show();
843
	$shuttle_attacker3.solid();
844
	$shuttle_attacker4.show();
845
	$shuttle_attacker4.solid();
855 Avenger 846
	wait(.4);
847
	$shuttle_attacker1.ai_on();
848
	$shuttle_attacker1.attack($player);
849
	$shuttle_attacker2.ai_on();
850
	$shuttle_attacker2.attack($player);
851
	$shuttle_attacker3.ai_on();
852
	$shuttle_attacker3.attack($player);
853
	$shuttle_attacker4.ai_on();
854
	$shuttle_attacker4.attack($player);
772 avenger 855
}
856
 
628 ticknswist 857
void cin_shuttle()
858
{
855 Avenger 859
	skipthread( "cin_shuttle_skip" );
628 ticknswist 860
 
814 lars 861
	$stammheim_cockpit2.ai_off();
862
	$stammheim_cockpit2.show();
863
	$stammheim_cockpit2.solid();
864
	$stammheim_cockpit2.anim( "bar_sitting_forward" );
855 Avenger 865
 
866
	//Imo Player, stuck there
867
	$player.immobilize( 1 );
868
 
869
	//Close Shuttle Doors
870
	$drull_shuttle.anim( "closing" );
871
	$drull_shuttle.playsound( "sound/doors/enterprise_door1.wav", 1 ,800 );
872
	waitforanimation( $drull_shuttle, "closing" );
873
	$drull_shuttle.anim( "closed" );
874
 
875
	//Open Bay Sky Door
814 lars 876
	$bay_door_01.playsound ( "sound/environment/machine/lift4.wav");
877
	$bay_door_01.time ( 5 );
878
	$bay_door_01.movenorth ( 500 );
879
	$bay_door_02.time ( 5 );
880
	$bay_door_02.movesouth ( 500 );
881
	wait ( 5 );
882
	$bay_door_01.playsound ( "sound/environment/machine/lift4stop.wav" );
855 Avenger 883
 
884
	//Remove the Shuttle Clip,( no reason given why)
814 lars 885
	$shuttle_clip.remove();
855 Avenger 886
	wait(1);
887
 
888
	//Shuttle Takeoff
889
	$shuttle_bind.followpath($shuttle_path);
890
	$shuttle_bind.playsound( "sound/vehicles/shuttlecraft/shuttle_takeoff.wav", 0, 4 );
628 ticknswist 891
 
855 Avenger 892
 
893
	waitfor($shuttle_bind);
894
	$shuttle_bind.hide();
895
 
896
	//Make the fakeplayer use the same weapon as you
897
	globalCommon_AiActorUseWeapon( $fakeplayer, "current" );
898
 
899
	//Holster Player Weapon
900
	$player.holster();
901
 
902
	//Fade Out Cam
903
	cam_fadeout( 0.1, 0, 0, 0, 1, 0 );
904
 
905
	//Bring up a fake player model
906
	fakeplayer();
772 avenger 907
 
855 Avenger 908
	//Make it a cinematic
909
	cinematic();
910
	letterbox( 0.5 );
911
	wait( 0.5 );
772 avenger 912
 
855 Avenger 913
	$cam6.follow( $cin_final_pos1, $fakeplayer );
914
	$cam6.cut();
915
	cam_fadein( 1, 0, 0, 0, 1, 0 );
916
	wait(.5);
917
	cuecamera($cam6);
772 avenger 918
 
855 Avenger 919
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/no.mp3", 2, 10000, 0 );
920
	waitfordialog($fakeplayer);
772 avenger 921
 
855 Avenger 922
	wait(1);
772 avenger 923
 
855 Avenger 924
	$screen_pattern.hide();
814 lars 925
	$screen_on.show();
855 Avenger 926
	$fakeplayer.lookat( $screen_pos );
927
	wait(1);
772 avenger 928
 
855 Avenger 929
	//$cam7.follow( $cin_final_pos2 );
930
	//$cam7.cut();
931
	//wait(.5);
932
	//cuecamera($cam7);
933
	//wait(.2);
934
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/Sorry.mp3", 2, 10000, 0 );
814 lars 935
	waitfordialog($stammheim_cockpit2);
936
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/really.mp3", 2, 10000, 0 );
937
	waitfordialog($stammheim_cockpit2);
938
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/danger.mp3", 2, 10000, 0 );
939
	waitfordialog($stammheim_cockpit2);
940
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/played.mp3", 2, 10000, 0 );
941
	waitfordialog($stammheim_cockpit2);
942
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/hetlek.mp3", 2, 10000, 0 );
943
	waitfordialog($stammheim_cockpit2);
944
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/greet.mp3", 2, 10000, 0 );
945
	waitfordialog($stammheim_cockpit2);
946
	$stammheim_cockpit2.playdialog( "localization/sound/dialog/map09/Stammheim/youwill.mp3", 2, 10000, 0 );
947
	waitfordialog($stammheim_cockpit2);
948
	$screen_on.hide();
949
	$screen_pattern.show();
772 avenger 950
 
855 Avenger 951
	wait(.5);
772 avenger 952
 
855 Avenger 953
	$fakeplayer.playdialog( "localization/sound/dialog/map09/Illia/youbastard.mp3", 2, 10000, 0 );
954
	waitfordialog($fakeplayer);
772 avenger 955
 
855 Avenger 956
	$cam8.follow( $cin_final_pos3, $fakeplayer );
957
	$cam8.cut();
958
	wait(.5);
959
	cuecamera($cam8);
960
	$fakeplayer.walkto( "$illia_final" );
961
	waitfor($fakeplayer);
772 avenger 962
 
855 Avenger 963
	$sec_door.moveup(192);
964
	$sec_dppr.playsound("sound/doors/klingon_jtube.wav");
965
	waitfor($sec_door);
966
	$arrest1.walkto( "$arrest_dest1", "run" );
967
	$arrest2.walkto( "$arrest_dest2", "run" );
968
	$arrest3.walkto( "$arrest_dest3", "run" );
969
	$arrest4.walkto( "$arrest_dest4", "run" );
772 avenger 970
 
855 Avenger 971
	wait(8);
772 avenger 972
 
973
 
855 Avenger 974
 
748 ticknswist 975
	//FAKE ILLIA TO "cin_shuttle_illia_01"
976
	//STANHEIM WALK TO "cin_shuttle_stan_01"
977
	//CAMERA FOLLOW "cin_shuttle_cam1_pos1"
978
	//MODEL "int_door" ANIMATION OPEN
979
	//STANHEIM RUN TO "cin_shuttle_stan_02"
980
	//NPC "cin_shuttle_guard_A" WALK TO "cin_shuttle_guard_01"
981
	//NPC "cin_shuttle_guard_B" WALK TO "cin_shuttle_guard_02"
982
	//NPC "cin_shuttle_guard_C" WALK TO "cin_shuttle_guard_03"
983
	//NPC "cin_shuttle_guard_D" WALK TO "cin_shuttle_guard_04"
984
	//CAMERA "cin_shuttle_cam2_pos1"
985
	//FAKE ILLIA ANIMATION HANDS UP
986
	//CAMERA FADE OUT
987
 
768 avenger 988
	thread cin_shuttle_skip();
628 ticknswist 989
}
990
 
991
 
992
void cin_shuttle_skip()
993
{
855 Avenger 994
	cam_fadeout( 1, 0, 0, 0, 1, 0 );
995
	skipthread( "Null" );
996
	killthread( "cin_shuttle" );
781 lars 997
	$player.immobilize(0);
855 Avenger 998
	//End the cinematic
999
	noncinematic();
1000
	clearletterbox( 0.1 );
1001
	cueplayer();
768 avenger 1002
	stuffcmd("map map10");
855 Avenger 1003
	cam_fadein( 1, 0, 0, 0, 1, 0 );
628 ticknswist 1004
}
812 lars 1005
 
1006
 
1007
void illiaEnteringShuttle()
1008
{
814 lars 1009
	$fakeplayer.notsolid();
1010
	$fakeplayer.walkto( "$enter_shuttle2" );
812 lars 1011
	waitfor( $fakeplayer );
1012
 
1013
	$fakeplayer.walkto( "$enter_waypoint1" );
1014
	waitfor( $fakeplayer );
814 lars 1015
 
812 lars 1016
	$fakeplayer.walkto( "$enter_waypoint3" );
1017
	waitfor( $fakeplayer );
1018
 
1019
	$fakeplayer.walkto( "$enter_waypoint5" );
1020
	waitfor( $fakeplayer );
1021
 
1022
	$fakeplayer.walkto( "$enter_waypoint7" );
1023
	waitfor( $fakeplayer );
1024
}
1025
 
1026
void stammheimEnteringShuttle()
1027
{
814 lars 1028
	$stammheim.notsolid();
812 lars 1029
 
814 lars 1030
	$stammheim.walkto( "$enter_shuttle1" );
812 lars 1031
	waitfor( $stammheim );
1032
 
814 lars 1033
	$stammheim.walkto( "$enter_waypoint0" );
812 lars 1034
	waitfor( $stammheim );
814 lars 1035
	wait(2);
1036
 
812 lars 1037
	$stammheim.walkto( "$enter_waypoint2" );
1038
	waitfor( $stammheim );
1039
 
1040
	$stammheim.walkto( "$enter_waypoint4" );
1041
	waitfor( $stammheim );
1042
 
1043
	$stammheim.walkto( "$enter_waypoint6" );
1044
	waitfor( $stammheim );
1045
 
1046
	$stammheim.walkto( "$enter_waypoint7" );
1047
	waitfor( $stammheim );
1048
}