Subversion-Projekte sthq.gbs

Revision

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