Subversion-Projekte sthq.gbs

Revision

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