source: nikanabo/current/bsl/onilight/IGMD/tctf/tctf.bsl@ 368

Last change on this file since 368 was 185, checked in by geyser, 18 years ago
File size: 22.7 KB
RevLine 
[185]1#################
2### VARIABLES ###
3#################
4
5var int var_counter = 0;
6var int var_counter2 = 0;
7
8############
9### MAIN ###
10############
11
12func void main(void)
13{
14gl_fog_red = 0
15gl_fog_blue = 0
16gl_fog_green = 0
17gl_fog_start = .995
18gs_farclipplane_set 5000
19ui_suppress_prompt = 1
20chr_auto_aim_dist = 0
21start
22}
23
24#############
25### START ###
26#############
27
28func void start(string ai_name)
29{
30fork deactivate_stuff
31if(save_point eq 0) save_point = 1
32if(save_point eq 1) fork intro
33if(save_point eq 2) restore_game
34if(save_point eq 3) restore_game
35if(save_point eq 4) restore_game
36sleep 5
37fork sp_all
38}
39
40func void deactivate_stuff(void)
41{
42#not used
43trigvolume_enable t86 0
44trigvolume_enable trigger_volume_99 0
45#used
46env_show 97 0
47env_show 98 0
48env_show 321 0
49env_show 322 0
50env_show 323 0
51env_show 324 0
52env_show 325 0
53env_show 398 0
54env_show 601 0
55env_show 602 0
56trig_deactivate 1
57trig_deactivate 2
58trig_deactivate 3
59trig_deactivate 4
60trig_deactivate 5
61trig_deactivate 6
62trig_deactivate 7
63trig_deactivate 8
64trig_deactivate 9
65trig_deactivate 10
66trig_deactivate 60
67trig_deactivate 61
68trig_deactivate 62
69trig_deactivate 63
70trig_deactivate 64
71trig_deactivate 65
72trig_deactivate 70
73trig_deactivate 71
74trig_deactivate 72
75trig_deactivate 73
76trig_deactivate 74
77trig_deactivate 75
78trig_deactivate 98
79trig_deactivate 99
80trig_deactivate 100
81trig_deactivate 101
82trig_deactivate 302
83trig_deactivate 303
84trig_deactivate 310
85trig_deactivate 320
86trig_deactivate 400
87trig_deactivate 500
88trig_deactivate 501
89trig_deactivate 502
90trig_deactivate 503
91trig_deactivate 510
92trig_deactivate 511
93trig_deactivate 512
94trig_deactivate 520
95trig_deactivate 521
96trig_deactivate 522
97trigvolume_enable z_40t 0
98trigvolume_enable zz_40t 0
99trigvolume_enable zzz_40t 0
100trigvolume_enable zzzz_40t 0
101trigvolume_enable tv_61t 0
102trigvolume_enable trigger_volume_81 0
103}
104
105func void you_lose(string ai_name)
106{
107fade_out 0 0 0 30
108sleep 30
109lose
110}
111
112####################################
113### SEVERAL TIMES USED FUNCTIONS ###
114####################################
115
116func void sp_all(void)
117{
118co_message_display = 0
119if(save_point eq 1) save_game 1 autosave
120if(save_point eq 2) save_game 2 autosave
121if(save_point eq 3) save_game 3 autosave
122if(save_point eq 4) save_game 4 autosave
123sleep 180
124co_message_display = 1
125}
126
127func void remove_ai(void)
128{
129ai2_kill
130sleep 60
131powerup_reset
132weapon_reset
133sleep 240
134corpse_reset
135}
136
137func void music_stop(void)
138{
139sound_music_stop mus_asianb
140sound_music_stop mus_pursuit
141sound_music_stop mus_om01
142}
143
144#tv86 to tv97
145func void fire_damage(string ai_name)
146{
147chr_poison(ai_name, 5, 30, 30);
148}
149
150##########
151### SP1 ###
152##########
153
154### GARAGE - GROUND FLOOR ###
155
156func void intro(void)
157{
158env_show 99 1
159env_show 101 1
160env_show 103 1
161env_show 104 1
162env_show 105 1
163env_show 106 1
164env_show 107 1
165env_show 108 1
166env_show 110 1
167env_show 111 1
168env_show 112 1
169env_show 321 1
170env_show 322 1
171env_show 323 1
172env_show 324 1
173env_show 325 1
174env_shade 321 325 .6 .6 .6
175env_show 444 1
176ai2_spawn lobby_striker_01
177ai2_spawn lobby_striker_02
178ai2_spawn lobby_striker_03
179playback 0 IntroKonoko
180particle smoke do start
181particle security_locklight01 do start
182particle LobbyWall do explode
183objective_set 1 silent
184target_set 323 30
185sleep 1
186sound_dialog_play c07_22_01konoko
187sound_music_start mus_asianb
188}
189
190#tv9 - left ramp between ground floor and 1st floor
191func void spawnG3_11(string ai_name)
192{
193ai2_spawn garage_striker_07
194ai2_passive garage_striker_07 1
195ai2_spawn garage_striker_08
196playback garage_striker_07 garage_taunt
197ai2_passive garage_striker_07 0
198}
199
200#tv12 - left ramp between ground floor and 1st floor, after tv9
201func void killG2_08(string ai_name)
202{
203trigvolume_enable trigger_volume_G2_08 0
204}
205
206#tv7 - right ramp between ground floor and 1st floor
207func void spawnG2_7(string ai_name)
208{
209ai2_spawn garage_striker_01
210ai2_spawn garage_striker_02
211}
212
213#tv13 - right ramp between ground floor and 1st floor, after tv7
214func void killG2_10(string ai_name)
215{
216trigvolume_enable trigger_volume_G2_10 0
217}
218
219#tv50 - ground floor, crossing from garage to building (big box in front of door 4 and 7)
220func void tv_50(string ai_name)
221{
222ai2_spawn l_s99
223ai2_spawn l_s98
224music_stop
225}
226
227### GARAGE - 1ST FLOOR ###
228
229#tv10 - left ramp between 1st floor and 2nd floor
230func void spawnG3_12(string ai_name)
231{
232if (var_counter eq 0)
233 {
234 ai2_spawn garage_striker_09
235 ai2_spawn garage_striker_10
236 }
237if (var_counter ne 0)
238 {
239 ai2_spawn garage_striker_09
240 }
241}
242
243#tv15 - left ramp between 1st floor and 2nd floor, after tv10
244func void killG3_12(string ai_name)
245{
246trigvolume_enable trigger_volume_G3_12 0
247}
248
249#tv8 - right ramp between 1st floor and 2nd floor
250func void spawnG3_8(string ai_name)
251{
252if (var_counter eq 0)
253 {
254 ai2_spawn garage_striker_03
255 ai2_makeignoreplayer garage_striker_03 1
256 ai2_spawn garage_striker_04
257 ai2_spawn garage_striker_05
258 ai2_lookatme garage_striker_04
259 ai2_lookatme garage_striker_05
260 playback_block garage_striker_03 garage_jump
261 ai2_makeignoreplayer garage_striker_03 0
262 }
263if (var_counter ne 0)
264 {
265 ai2_spawn garage_striker_03
266 ai2_makeignoreplayer garage_striker_03 1
267 playback_block garage_striker_03 garage_jump
268 ai2_makeignoreplayer garage_striker_03 0
269 }
270}
271
272#tv14 - right ramp between 1st floor and 2nd floor, after tv8
273func void killG3_11(string ai_name)
274{
275trigvolume_enable trigger_volume_G3_11 0
276}
277
278#tv21 - 1st floor, crossing from garage to building (big box in front of door 5 and 8)
279func void g_23(string ai_name)
280{
281ai2_spawn L2s_01
282ai2_spawn L2s_02
283ai2_spawn L2s_03
284ai2_spawn L2tctf_01
285ai2_spawn L2tctf_02
286music_stop
287trigvolume_enable trigger_volume_w_39 0
288}
289
290##tv31 - 1st floor, crossing from garage to building (box in front of door 2)
291func void p_31(string ai_name)
292{
293trigvolume_enable trigger_volume_L2_4 1
294}
295
296### GARAGE - 2ND FLOOR ###
297
298#tv11 - 2nd floor, crossing from garage to building (big box in front of door 6 and 9)
299func void c_13(string ai_name)
300{
301ai2_spawn lobby_striker_20
302ai2_spawn lobby_striker_21
303ai2_spawn lobby_fodder01
304ai2_spawn lobby_striker_05
305trigvolume_enable vv_38t 0
306trigvolume_enable a_18t 0
307music_stop
308}
309
310### ENTRANCE HALL - GROUND FLOOR ###
311
312#tv6 - in front of door 10
313func void spawnL1_6(string ai_name)
314{
315ai2_spawn lobby_striker_06
316trigvolume_enable tv_50t 0
317}
318
319#tv38 - after the passageway to the entrance hall with the van
320func void x_05(string ai_name)
321{
322ai2_spawn l_c01
323ai2_lookatme l_c01
324ai2_passive l_c01 1
325playback l_c01 lobby_runout
326ai2_passive l_c01 0
327trigvolume_enable trigger_volume_L1_6_9 0
328}
329
330#tv39 - in the passageway from the entrance hall with the van (near door 19)
331func void y_32(string ai_name)
332{
333ai2_spawn l_t01
334playback l_t01 lobby_backroll
335sleep 15
336ai2_spawn l_s02
337ai2_spawn l_s03
338trigvolume_enable tv_47t 0
339}
340
341#tv46 - after door 29
342func void tv_46(string ai_name)
343{
344ai2_spawn l_s24
345ai2_spawn l_t23
346trigvolume_enable tv_47t 1
347ai2_dopath l_t01 l_t01_06
348ai2_setjobstate l_t01
349}
350
351#tv47 - in some distance after door 22
352func void tv_47(string ai_name)
353{
354ai2_spawn l_s27
355}
356
357#tv66 - near door 26 and 31
358func void room1_stop(string ai_name)
359{
360particle room1 do stop
361}
362
363#tv67 - near door 26 and 31, after tv66
364func void room1_start(string ai_name)
365{
366particle room1 do start
367particle smoke do start
368}
369
370#tv45 - after door 31
371func void tv_45(string ai_name)
372{
373ai2_spawn a_v1
374ai2_spawn l_s22
375ai2_spawn l_s23
376ai2_dopath l_t01 l_t01_03
377ai2_setjobstate l_t01
378ai2_dopath l_t23 l_t23_05
379ai2_setjobstate l_t23
380}
381
382#tv44 - after door 26
383func void tv_44(string ai_name)
384{
385ai2_spawn l_c10
386ai2_dopath l_t01 l_t01_02
387ai2_setjobstate l_t01
388ai2_dopath l_t23 l_t23_03
389ai2_setjobstate l_t23
390}
391
392#console1
393func void goAttack(string ai_name)
394{
395music_stop
396trigvolume_enable tv_57t 1
397chr_delete l_c01
398chr_delete l_s98
399chr_delete l_s99
400chr_delete lobby_striker_01
401chr_delete lobby_striker_02
402chr_delete garage_striker_01
403chr_delete garage_striker_02
404chr_delete garage_striker_03
405chr_delete garage_striker_04
406chr_delete garage_striker_05
407chr_delete garage_striker_06
408chr_delete garage_striker_07
409chr_delete garage_striker_08
410chr_delete garage_striker_09
411chr_delete garage_striker_10
412ai2_spawn tanker_stairdoor
413particle stair_lock_locklight01 do start
414objective_set 2 silent
415target_set 1111 30
416sound_dialog_play c00_01_27shinatama
417}
418
419#tv57 - huge box after door 19, 20 and 24
420func void tv57(string ai_name)
421{
422sound_music_start mus_pursuit 0
423sound_music_volume mus_pursuit 0.75 3.0
424target_set 59 30
425sleep 180
426sound_dialog_play c00_01_105shinatama
427}
428
429### Pathfinding ###
430
431#lose func of l_s02 and l_s03
432func void unlock_follow(void)
433{
434var_counter2 = var_counter2 + 1
435if(var_counter2 eq 2)
436 {
437 trigvolume_enable z_40t 1
438 trigvolume_enable zz_40t 1
439 trigvolume_enable zzz_40t 1
440 trigvolume_enable zzzz_40t 1
441 trigvolume_enable tv_61t 1
442 }
443}
444
445func void patrolscript2222(void)
446{
447ai2_lookatchar l_t01 char_0
448ai2_lookatchar l_t23 char_0
449}
450
451#tv42 - in front of door 19
452func void z04(string ai_name)
453{
454ai2_dopath l_t01 l_t01_06
455ai2_setjobstate l_t01
456ai2_dopath l_t23 l_t23_06
457ai2_setjobstate l_t23
458}
459
460#tv41 - after door 22
461func void z02(string ai_name)
462{
463ai2_dopath l_t01 l_t01_04
464ai2_setjobstate l_t01
465ai2_dopath l_t23 l_t23_02
466ai2_setjobstate l_t23
467}
468
469#tv40 - near door 29
470func void z03(string ai_name)
471{
472ai2_dopath l_t01 l_t01_05
473ai2_setjobstate l_t01
474ai2_dopath l_t23 l_t23_01
475ai2_setjobstate l_t23
476}
477
478#tv43 - in front of door 26 and 31, after tv67
479func void z01(string ai_name)
480{
481ai2_dopath l_t01 l_t01_01
482ai2_setjobstate l_t01
483ai2_dopath l_t23 l_t23_04
484ai2_setjobstate l_t23
485}
486
487#tv101 - staircase, between ground floor and 1st floor
488func void z05(string ai_name)
489{
490ai2_dopath l_t01 l_t01_07
491ai2_setjobstate l_t01
492ai2_dopath l_t23 l_t23_07
493ai2_setjobstate l_t23
494}
495
496### ENTRANCE HALL - 1ST FLOOR ###
497
498#tv37 - after door 20
499func void w_39(string ai_name)
500{
501ai2_spawn s2_t01
502ai2_spawn s2_t02
503ai2_spawn s2_s01
504ai2_spawn s2_s02
505ai2_spawn s2_s03
506ai2_spawn s2_s05
507ai2_spawn s2_t05
508trigvolume_enable g_23t 0
509}
510
511#tv34 - after the passageway to the footbridge (left side after door 20)
512func void u_36(string ai_name)
513{
514ai2_spawn cat1_02
515trigvolume_enable trigger_volume_L2_4 0
516}
517
518#tv5 - other side of the footbridge
519func void spawnL2_4(string ai_name)
520{
521ai2_spawn lobby_striker_04
522playback lobby_striker_04 lobbystriker_roll
523trigvolume_enable u_36t 0
524}
525
526#tv30 - next to tv5, staircase between 1st floor and 2nd floor (func: p_31t); not used
527
528#tv23 - in some distance after door 98
529func void i_24(string ai_name)
530{
531trigvolume_enable j_25t 0
532trigvolume_enable h_06t 0
533}
534
535#tv24 - after tv23
536func void j_25(string ai_name)
537{
538ai2_spawn L2s_11
539}
540
541#tv22 - after tv24
542func void h_06(string ai_name)
543{
544ai2_spawn L2s_10
545ai2_spawn Ls_15
546ai2_spawn Ltctf_55
547ai2_dopath L2tctf_01 patrol_L2_13
548ai2_dopath L2tctf_02 patrol_L2_13
549}
550
551#tv33 - in some distance near door 33
552func void t_35(string ai_name)
553{
554trigvolume_enable s_34t 0
555}
556
557#tv32 - after tv 33
558func void s_34(string ai_name)
559{
560ai2_spawn Lcom_01
561}
562
563#tv27 - after door 33
564func void m_28(string ai_name)
565{
566ai2_spawn Lv_40
567ai2_spawn Lv_41
568ai2_spawn Lc_43
569ai2_spawn Ls_44
570trigvolume_enable s_34t 1
571}
572
573#called up, after you've talked to the female cop
574func void femcop_holster(string ai_name)
575{
576chr_forceholster Lc_43 1
577}
578
579#tv29 - after door 37
580func void o_30(string ai_name)
581{
582ai2_spawn Ls_60
583ai2_spawn a_v2
584}
585
586#tv28 - after door 32
587func void n_29(string ai_name)
588{
589ai2_spawn Lc_50
590ai2_spawn Ls_51
591ai2_spawn Ls_12
592}
593
594### Pathfinding ###
595
596#tv61 - big box in front of door 98
597func void z06(string ai_name)
598{
599ai2_dopath l_t01 l_t01_08
600ai2_setjobstate l_t01
601ai2_dopath l_t23 l_t23_08
602ai2_setjobstate l_t23
603}
604
605### ENTRANCE HALL - 2ND FLOOR ###
606
607#tv20 - in front of door 24
608func void f_22(string ai_name)
609{
610ai2_spawn lobby_striker_05
611trigvolume_enable vv_38t 0
612ai2_spawn lobby_striker_20
613ai2_spawn lobby_fodder01
614ai2_spawn lobby_striker_21
615}
616
617#tv18 - after door 24
618func void d_20(string ai_name)
619{
620ai2_spawn l2_s46
621ai2_spawn l2_s44
622playback_block l2_s44 lobby_roll3
623}
624
625#tv35 - after the passageway to the footbridge (left side after door 24)
626func void v_37(string ai_name)
627{
628ai2_spawn cat1_01
629trigvolume_enable vv_38t 0
630}
631
632#tv36 - other side of the footbridge
633func void vv_38(string ai_name)
634{
635ai2_spawn lobby_striker_05
636ai2_spawn lobby_striker_20
637ai2_spawn lobby_striker_21
638ai2_spawn lobby_fodder01
639trigvolume_enable v_37t 0
640}
641
642#tv19 - entrance to the room on the right side near door 24
643func void e_21(string ai_name)
644{
645ai2_spawn lobby_striker_34
646ai2_spawn lobby_victim05
647ai2_spawn lobby_victim06
648trigvolume_enable l_27t 0
649}
650
651#tv25 - in the room, around the place where the female civ gives you the w6_vdg
652func void k_26(string ai_name)
653{
654trigvolume_enable l_27t 1
655}
656
657#tv26 - at the same place as tv19 (entrance to the room)
658func void l_27(string ai_name)
659{
660ai2_spawn L3s_40
661ai2_spawn L3s_41
662}
663
664#tv68 - in front of door 99
665func void a_18(string ai_name)
666{
667trigvolume_enable b_19t 0
668trigvolume_enable c_13t 0
669}
670
671#tv17 - after door 99, after tv68
672func void b_19(string ai_name)
673{
674ai2_spawn lobby_striker_30
675ai2_spawn lobby_striker_31
676playback lobby_striker_31 lobby_roll2
677trigvolume_enable d_20t 0
678}
679
680#tv69 - near door 40, in front of tv16
681func void room2_stop(string ai_name)
682{
683particle room2 stop
684}
685
686#tv16 - near door 40, after tv69
687func void room2_start(string ai_name)
688{
689particle room2 start
690}
691
692#tv49 - after door 40
693func void tv_49(string ai_name)
694{
695ai2_spawn l2_s47
696}
697
698#tv71 - near door 38, in front of tv70
699func void room3_stop(string ai_name)
700{
701particle room3 stop
702}
703
704#tv70 - near door 38, after tv71
705func void room3_start(string ai_name)
706{
707particle room3 start
708}
709
710#tv48 - after door 38
711func void tv_48(string ai_name)
712{
713ai2_spawn l2_s46
714}
715
716#console2
717func void floor4_lock(void)
718{
719music_stop
720particle floor4_lock_locklight01 do start
721target_set 60 30
722sound_dialog_play c00_01_28shinatama
723}
724
725### ENTRANCE HALL - 3RD FLOOR ###
726
727#tv51 - after door 28
728func void tv_51(string ai_name)
729{
730ai2_spawn l4_red1
731ai2_spawn l4_t1
732ai2_spawn l4_s1
733ai2_spawn l4_s67
734ai2_spawn l4_t2
735ai2_spawn l4_s2
736ai2_spawn l4_s3
737ai2_spawn l4_f1
738ai2_spawn l4_f2
739ai2_spawn l4_f3
740ai2_spawn l4_c66
741ai2_kill l4_f1
742ai2_kill l4_f2
743ai2_kill l4_f3
744ai2_kill l4_c66
745}
746
747#tv79 - after door 41
748func void music_kidnap(void)
749{
750sleep 1
751sound_music_start mus_om01 0.0
752sound_music_volume mus_om01 0.75 3.0
753#this music stopped in ta2_54 script
754}
755
756##########
757### SP2 ###
758##########
759
760### GROUND FLOOR ###
761
762#tv58 - after the end of the stairs
763func void tv_58(string ai_name)
764{
765if(save_point eq 2) music_kidnap
766else save_game 2 autosave
767fork remove_ai
768trigvolume_enable tv_58t 0
769trigvolume_enable trigger_volume_80 0
770door_lock 41
771particle security_locklight01 do stop
772objective_set 3 silent
773target_set 60 30
774var_counter = 0
775}
776
777#tv52 - in front of door 42
778func void tv_52(string ai_name)
779{
780particle smoke do stop
781ai2_spawn a_t03
782ai2_passive a_t03 1
783playback a_t03 atrium_run
784sleep 7
785ai2_spawn a_t06
786sleep 7
787ai2_spawn a_s02
788sleep 7
789ai2_spawn a_s03
790sleep 7
791ai2_spawn a_red1
792ai2_passive a_t03 0
793chr_set_health a_t05 900
794chr_set_health a_t06 900
795chr_set_health a_s02 900
796chr_set_health a_s03 900
797}
798
799#tv72 - at the beginning of the stairs to the 2nd floor
800func void room4_start(string ai_name)
801{
802particle room4 start
803}
804
805### 2ND FLOOR ###
806
807#tv53 - at the end of the stairs to the 2nd floor
808func void ta_53(string ai_name)
809{
810ai2_spawn a_t05
811ai2_dopath a_s03 patrol_7043
812ai2_setjobstate a_s03
813ai2_dopath a_s02 patrol_7030
814ai2_setjobstate a_s02
815ai2_dopath a_t06 patrol_7034
816ai2_setjobstate a_t06
817ai2_dopath a_t05 patrol_7042
818ai2_setjobstate a_t05
819chr_set_health a_t05 40
820chr_set_health a_t06 30
821chr_set_health a_s02 80
822chr_set_health a_s03 80
823}
824
825### 1ST FLOOR ###
826
827#tv56 - at the end of the gangway from the 2nd floor to the 1st floor
828func void ta_53b(string ai_name)
829{
830chr_set_health a_t05 80
831chr_set_health a_t06 60
832chr_set_health a_s02 70
833chr_set_health a_s03 80
834}
835
836#tv75 - after the end of the gangway from the 2nd floor to the 1st floor
837func void room6_start(string ai_name)
838{
839particle room6 do start
840}
841
842#tv83 - after the middle of the floor, in front of tv73
843func void room4_stop(string ai_name)
844{
845particle room4 do stop
846}
847
848#tv73 - after tv83 (func: room3_stop, already used above)
849
850### 3RD FLOOR ###
851
852#tv59 - after the end of the gangway from the 2nd floor to the 3rd floor
853func void room5_stop(string ai_name)
854{
855particle room5 stop
856}
857
858#tv81 - in front of tv74
859func void room5_start(string ai_name)
860{
861particle room5 start
862}
863
864#tv74 - in front of tv
865func void room6_stop(string ai_name)
866{
867particle room6 stop
868}
869
870#tv82 - in front of the beginning of the gangway from the 3rd floor to the 4th floor (func: room4_stop, already used above)
871
872### 4TH FLOOR ###
873
874#tv98 - after the end of the gangway from the 3rd floor to the 4th floor
875func void new_atrium(string ai_name)
876{
877ai2_spawn a_s07
878ai2_spawn a_s05
879ai2_spawn a_v3
880}
881
882#tv77 - complete room, which contains the console8 (func: check_death); I've disabled it
883
884### 5TH FLOOR ###
885
886#tv54 - after the end of the gangway from the 4th floor to the 5th floor
887func void ta2_54(string ai_name)
888{
889ai2_spawn a2_t1
890ai2_spawn a2_red1
891ai2_spawn LSI
892ai2_kill LSI
893sleep 240
894corpse_reset
895music_stop
896}
897
898#tv103 - the complete room, where you get the laser torch
899func void t103(string ai_name)
900{
901trigvolume_enable trigger_volume_103 0
902if (chr_has_lsi(0))
903 {
904 trigvolume_enable trigger_volume_81 1
905 objective_set 4 silent
906 particle obj1 create
907 target_set 9999 30
908 }
909else
910 {
911 sleep 60
912 trigvolume_enable trigger_volume_103 1
913 }
914}
915
916#tv80 - small flat box on the roof of the elevator
917func void ta_62(string ai_name)
918{
919trigvolume_enable trigger_volume_81 0
920particle obj1 kill
921ai2_kill
922fade_out 0 0 0 30
923sleep 30
924playback 0 ElevatorEndSet
925fade_in 30
926}
927
928##########
929### SP3 ###
930##########
931
932### GROUND FLOOR ###
933
934#tv55 - after the elevator shaft
935func void tsh_55(string ai_name)
936{
937if(save_point ne 3) save_game 3 autosave
938trigvolume_enable tsh_55t 0
939ai2_spawn sh_tank1
940ai2_spawn sh_red1
941ai2_spawn sh_s3
942ai2_spawn sh_s4
943ai2_spawn sh_s4b
944objective_set 5 silent
945target_set 58 30
946env_show 501 0
947env_show 502 0
948env_show 503 0
949env_show 504 0
950env_show 601 1
951env_show 602 1
952sleep 120
953ai2_attack sh_s3 char_0
954}
955
956#tv85 - at the same place as tv55 (func: s3; I've moved the save_game command to tv55, so this tv isn't any longer in use)
957
958#console3
959func void shin_lock(void)
960{
961particle shin_lock_locklight01 do start
962particle roof_locklight01 do start
963}
964
965#tv104 - on the balustrade, near door 14
966func void t102(string ai_name)
967{
968ai2_spawn mbo_sniper
969ai2_spawn mbo_target
970}
971
972#tv76 - staircase, platform between ground floor and 1st floor
973func void t62(string ai_name)
974{
975ai2_spawn sh_s1
976ai2_spawn sh_s2
977ai2_spawn sh_s6
978}
979
980### 1ST FLOOR ###
981
982#tv78 - staircase, platform between 1st floor and 2nd floor
983func void t72(string ai_name)
984{
985ai2_spawn sh_com1
986ai2_spawn sh_tank2
987ai2_spawn sh_s9
988}
989
990### 2ND FLOOR ###
991
992#tv101 - after door 56
993func void t98(string ai_name)
994{
995ai2_spawn a_v4
996}
997
998#tv60 - staircase, platform between 2nd floor and roof, in front of tv100
999func void tsh_60(string ai_name)
1000{
1001ai2_spawn sh_s12
1002ai2_spawn sh_s12b
1003helicopter
1004}
1005
1006func void helicopter(void)
1007{
1008obj_create 901 906
1009particle EndDust create
1010}
1011
1012#tv100 - after tv60
1013func void t100(string ai_name)
1014{
1015ai2_spawn roof_tctf1
1016ai2_spawn sh_s12c
1017}
1018
1019##########
1020### SP4 ###
1021##########
1022
1023#tv63, if you leave the building on the right side
1024func void tr_65(string ai_name)
1025{
1026tr_67
1027}
1028
1029#tv62, if you leave the building on the left side
1030func void tr_64(string ai_name)
1031{
1032tr_67
1033}
1034
1035#tv64 - after the window, which is behind the tctf cop
1036func void tr_66(string ai_name)
1037{
1038tr_67
1039}
1040
1041#tv65 - after the other window on this side
1042func void tr_67(string ai_name)
1043{
1044trigvolume_enable tsh_60t 0
1045trigvolume_enable tr_64t 0
1046trigvolume_enable tr_65t 0
1047trigvolume_enable tr_66t 0
1048trigvolume_enable tr_67t 0
1049if(save_point eq 4) helicopter
1050else save_game 4 autosave
1051objective_set 5 silent
1052target_set 1 0
1053sleep 1
1054sound_ambient_start c08_heli 1.0
1055fork helicopter_sound_stop
1056chr_create 1019 start
1057chr_create 1020 start
1058chr_create 1021 start
1059chr_changeteam 1019 Syndicate
1060chr_changeteam 1020 Syndicate
1061chr_changeteam 1021 Syndicate
1062chr_envanim 1019 HeliOutroShinBox01
1063chr_envanim 1020 HeliOutroStrBox01
1064chr_envanim 1021 HeliOutroStrBox02
1065chr_animate 1019 SHINATstand_heli 1000
1066chr_animate 1020 STRIKEstand_heli 1000
1067chr_animate 1021 STRIKEcrouch_idle 1000
1068env_anim 901 906
1069particle EndDust kill
1070ai2_spawn barabus
1071chr_boss_shield barabus
1072ai2_lookatchar barabus 0
1073sound_music_start mus_asianb 0
1074sound_music_volume mus_asianb 2
1075sleep 600
1076chr_delete 1019
1077chr_delete 1020
1078chr_delete 1021
1079sleep 600
1080obj_kill 901 906
1081sound_ambient_stop c08_heli
1082}
1083
1084func void helicopter_sound_stop(void)
1085{
1086sleep 680
1087sound_ambient_volume c08_heli 0.0 12
1088}
1089
1090#tv1 and tv84 - the side after the window, which is behind the tctf cop
1091func void BarabasSouth(string barabas)
1092{
1093sound_ambient_start c11_10_14bar_jet
1094playback barabus BarabasSouth
1095ai2_barabbas_retrievegun barabus
1096sleep 60
1097chr_envanim barabus BarabasSouthBox norotation
1098chr_animate barabus BARABsouth
1099}
1100
1101#tv4 - the next side, if you go anticlockwise
1102func void BarabasEast(string barabas)
1103{
1104sound_ambient_start c11_10_14bar_jet
1105playback barabus BarabasEast
1106ai2_barabbas_retrievegun barabus
1107sleep 60
1108chr_envanim barabus BarabasEastBox norotation
1109chr_animate barabus BARABeast
1110}
1111
1112#tv2 - the next side, if you go anticlockwise
1113func void BarabasNorth(string barabas)
1114{
1115sound_ambient_start c11_10_14bar_jet
1116playback barabus BarabasNorth
1117ai2_barabbas_retrievegun barabus
1118sleep 60
1119chr_envanim barabus BarabasNorthBox norotation
1120chr_animate barabus BARABnorth
1121}
1122
1123#tv3 - the next side, if you go anticlockwise
1124func void BarabasWest(string barabas)
1125{
1126sound_ambient_start c11_10_14bar_jet
1127playback barabus BarabasWest
1128ai2_barabbas_retrievegun barabus
1129sleep 60
1130chr_envanim barabus BarabasWestBox norotation
1131chr_animate barabus BARABwest
1132}
1133
1134#lose func of barabus
1135func void final(void)
1136{
1137fade_out 0 0 0 30
1138sleep 30
1139win
1140}
1141
1142#####################
1143### TEXT CONSOLES ###
1144#####################
1145
1146func void level_8a(void)
1147{
1148text_console level_8a
1149console_reset 17
1150}
1151
1152func void level_8b(void)
1153{
1154text_console level_8b
1155console_reset 12
1156}
1157
1158func void level_8c(void)
1159{
1160text_console level_8c
1161console_reset 14
1162}
1163
1164func void level_8d(void)
1165{
1166text_console level_8d
1167console_reset 16
1168}
1169
1170func void level_8e(void)
1171{
1172text_console level_8e
1173console_reset 15
1174}
1175
1176func void level_8f(void)
1177{
1178text_console level_8f
1179console_reset 13
1180}
Note: See TracBrowser for help on using the repository browser.