source: nikanabo/current/bsl/original/IGMD/compound/compound.bsl@ 853

Last change on this file since 853 was 185, checked in by geyser, 17 years ago
File size: 30.1 KB
RevLine 
[185]1# mountain compound
2# scripts for level 19 by wu
3#
4# LEGEND
5#
6# character naming convention: X_Yx
7# where X = area letter (A=first area, B=second area, etc.)
8# Y = character type (N=ninja, T=tanker, S=striker, R=red, etc.)
9# x = character number, usually same as character's initial patrol id
10#
11# trigger volume scripts: t##, where ## refers to trigger volume id
12#
13# CONTENTS
14#
15# 0.temporary debugging scripts
16# 1.variables defined
17# 1b.music scripts
18# 2.start and objectives scripts
19# 3.save game scripts
20# 4.cut scene scripts
21# 5.console scripts
22# 6.trigger volume scripts
23
24# temporary debugging scripts #
25
26func void xxx(void)
27{
28 ParkLeft
29 t11
30 sleep 300
31 Truck
32}
33
34func void truck(string ai_name)
35{
36# ai2_ignore_player=1
37 omnipotent=1
38 invincible=1
39 chr_teleport 0 4
40}
41
42func void computer(string ai_name)
43{
44# ai2_ignore_player=1
45 dprint WALK_BACKWARDS_DOWN_THE_STAIRS_TO_OPEN_DOOR
46 omnipotent=1
47 invincible=1
48 chr_teleport 0 6
49}
50
51func void e(string ai_name)
52{
53 ai2_ignore_player=1
54 chr_teleport 0 100
55}
56
57func void butcher_test(void)
58{
59 invincible = 1
60 omnipotent = 1
61 extra_guys = 1
62 fork dish
63}
64
65func void test_setup(void)
66{
67 ai2_allpassive 1
68
69 playback GrifElite01 GrifElite01Set
70 playback GrifElite02 GrifElite02Set
71 playback GrifElite03 GrifElite03Set
72 sleep f10
73 playback GrifElite02 GrifElite02Set
74 sleep f5
75 playback GrifElite03 GrifElite03Set
76 sleep f300
77
78
79 chr_envanim Griffin GrifGrifBox01
80 if (extra_guys eq 1) {
81 chr_envanim GrifOps01 GrifOps01Box01
82 chr_envanim GrifOps02 GrifOps02Box01
83 }
84 if (extra_guys eq 0) {
85 chr_envanim GrifOps02 GrifOps01Box01
86 }
87 chr_envanim GrifOps03 GrifOps03Box01
88 chr_animate Griffin COMGUYlev7_helistand 500
89 chr_animate GrifOps01 STRIKEcrouch_idle 400
90 chr_animate GrifOps02 STRIKEcrouch_idle 400
91 chr_animate GrifOps03 STRIKEcrouch_idle 400
92 sleep f90
93 sleep f200
94 chr_envanim Griffin GrifGrifBox02 norotation
95 if (extra_guys eq 1) {
96 chr_envanim GrifOps01 GrifOps01Box02 norotation
97 chr_envanim GrifOps02 GrifOps02Box02 norotation
98 }
99 if (extra_guys eq 0) {
100 chr_envanim GrifOps02 GrifOps01Box02 norotation
101 }
102 chr_envanim GrifOps03 GrifOps03Box02 norotation
103 chr_animate Griffin COMGUYlev7_Grif
104 if (extra_guys eq 1) {
105 chr_animate GrifOps01 STRIKElev7_Ops01
106 chr_animate GrifOps02 STRIKElev7_Ops02
107 }
108 if (extra_guys eq 0) {
109 chr_animate GrifOps02 STRIKElev7_Ops01
110 }
111 chr_animate GrifOps03 STRIKElev7_Ops03
112 sleep f240
113 playback Griffin GrifGrifRunAlt
114 if (extra_guys eq 1) {
115 playback GrifOps01 GrifOps01Run
116 playback GrifOps02 GrifOps02Run
117 }
118 if (extra_guys eq 0) {
119 playback GrifOps02 GrifOps01Run
120 }
121 sleep f10
122 playback_block GrifOps03 GrifOps03Run
123
124 sleep f300
125
126 playback GrifElite04 GrifWave2_Run1
127 playback GrifElite06 GrifWave2_Run3
128 playback_block GrifElite05 GrifWave2_Run1
129 sleep f300
130
131
132 ai2_allpassive 0
133}
134
135func void test_boyz(void)
136{
137 playback Griffin GrifGrifRunAlt
138 if (extra_guys eq 1) {
139 playback GrifOps01 GrifOps01Run
140 playback GrifOps02 GrifOps02Run
141 }
142 if (extra_guys eq 0) {
143 playback GrifOps02 GrifOps01Run
144 }
145 sleep f10
146 playback_block GrifOps03 GrifOps03Run
147}
148
149###############################
150# variables defined #
151###############################
152
153var int counter=2;
154var int my_save_point=0;
155var int console_count=0;
156var int stairs_open=0;
157var int comdies_ok=0;
158var int conused_ok=0;
159var int platform_ok=0;
160var int thru_door;
161var int count_swat_dies=3;
162var int console100used;
163var int console200used;
164var int console300used;
165var int console101used;
166var int count_attack3;
167var int muro_in_danger=0;
168var int round2_spawned=0;
169var int extra_guys=0;
170
171###############################
172# music #
173###############################
174
175func void music_intro(void)
176{
177 sound_music_start mus_om01 .9
178# stopped at set_objective_2
179}
180
181func void music_guns_timer(void)
182{
183 dprint OBSOLETE_music_guns_timer
184}
185
186func void music_truck(void)
187{
188 sound_music_start mus_asianb
189# this music stopped at the end of the truck cutscene
190}
191
192func void stop_music_truck(void)
193{
194 sound_music_stop mus_asianb
195# this music stopped at the end of the truck cutscene
196}
197
198func void music_guns(void)
199{
200 sound_music_start mus_main03_hd
201# this music stopped in console301 or console300
202}
203
204func void music_guns_stop(void)
205{
206 sound_music_stop mus_main03_hd
207}
208
209func void music_battle(void)
210{
211 dprint MUSIC_BATTLE
212 sound_music_start mus_ot
213# this music stopped in Outro
214}
215
216func void music_stop(void)
217{
218 dprint STOP_THE_MUSIC
219 sound_music_stop mus_om01
220 sound_music_stop mus_asianb
221 sound_music_stop mus_main03
222 sound_music_stop mus_main03_hd
223}
224
225###############################
226# start and objectives #
227###############################
228func void paths(string ai_name)
229{
230 ai2_dopath GrifOps01 patrol_521
231 ai2_dopath GrifOps02 patrol_515
232 ai2_dopath GrifOps03 patrol_517
233 ai2_dopath GrifElite01 patrol_513
234 ai2_dopath GrifElite02 patrol_514
235 ai2_dopath GrifElite03 patrol_518
236}
237
238func void spawnA(void)
239{
240 ai2_spawn A_S1
241 ai2_spawn A_S2
242 ai2_spawn A_E3
243 ai2_spawn A_E5
244 ai2_spawn A_E5b
245}
246
247func void start(string ai_name)
248{
249 dprint start
250
251 trigvolume_enable trigger_volume_21 0
252 trigvolume_enable trigger_volume_21_copy 0
253 trigvolume_enable trigger_volume_44 0
254 trigvolume_enable trigger_volume_45 0
255 trigvolume_enable attack_1tv 0
256 trigvolume_enable attack_2tv 0
257 trigvolume_enable attack_3tv 0
258 trigvolume_enable attack_3tv_copy 0
259 trigvolume_enable attack_4tv 0
260
261 particle door12_locklight01 do start
262
263 door_lock 35
264 door_lock 36
265 door_lock 37
266 door_lock 39
267 door_lock 40
268 door_lock 41
269
270 if (my_save_point eq 0)
271 {
272 objective_set(1)
273 spawnA()
274 }
275
276 if (my_save_point eq 1)
277 {
278 save_point=1;
279 objective_set(1)
280 music_intro
281 ai2_dopath A_S1 patrol_01b
282 ai2_setjobstate A_S1
283 spawnA()
284 restore_game
285 chr_set_health 0 400
286 }
287
288 if (my_save_point eq 2)
289 {
290 save_point=2;
291 dprint restore2_beforetruck
292 objective_set(2)
293 door_lock 12
294 particle door12_locklight01 do stop
295 ai2_spawn C_Sr18
296 ai2_dopath C_Sr18 patrol_18
297 ai2_spawn C_Sr17
298 ai2_spawn C_Sr19
299 ai2_spawn C_Sb75
300 ai2_spawn C_Sb76
301 trigvolume_enable trigger_volume_39 0
302 restore_game
303 }
304
305 if (my_save_point eq 3)
306 {
307 save_point=3;
308 dprint restore3_aftertruck
309 objective_set(4)
310 target_set (501,30.0)
311 env_show 151 0
312 env_show 152 0
313 env_show 153 0
314 env_show 154 0
315 env_show 155 0
316 env_show 156 0
317 env_show 157 0
318 env_show 158 0
319 env_show 159 0
320 #Hides door, unhides broken door
321 env_show 911 1
322 env_show 912 0
323 env_show 913 0
324 #Shows Gunk truck
325 env_show 251 1
326 env_show 252 1
327 env_show 253 1
328 env_show 254 1
329 env_show 255 1
330 env_show 256 1
331 env_show 257 1
332 env_show 258 1
333 env_show 259 1
334 env_show 911 1
335 env_show 912 0
336 env_show 913 0
337 env_show 914 1
338 env_show 915 1
339 env_show 916 1
340
341 ai2_spawn D_R33
342 restore_game
343 }
344
345 if (my_save_point eq 4)
346 {
347 dprint restore4_finalbattle
348 #hides original dish
349 env_show 301 0
350 env_show 302 0
351 env_show 303 0
352 env_show 304 0
353 env_show 305 0
354 env_show 306 0
355 env_show 307 0
356 env_show 308 0
357 env_show 309 0
358 #Shows in place dish
359 env_show 401 1
360 env_show 402 1
361 env_show 403 1
362 env_show 404 1
363 env_show 405 1
364 env_show 406 1
365 env_show 407 1
366 env_show 408 1
367 env_show 409 1
368 music_battle
369 gs_farclipplane_set 3000
370 particle dishpulse do start
371 particle sturm_ambient start
372
373 # start the dish loop
374 sp_start_dish_loop
375
376
377 if (did_kill_griffen() eq 1)
378 {
379 dprint restoreMutant
380 ai2_spawn MutantMuro
381 chr_boss_shield MutantMuro
382 restore_game
383 objective_set(7,silent)
384 }
385
386 if (did_kill_griffen() eq 0)
387 {
388 dprint restoreGriffin
389 ai2_boss_battle = 1
390 ai2_spawn Griffin
391 if (extra_guys eq 1)
392 {
393 ai2_spawn GrifOps01
394 }
395 ai2_spawn GrifOps02
396 ai2_spawn GrifOps03
397 ai2_spawn Muro
398 chr_boss_shield Muro
399 if (extra_guys eq 1)
400 {
401 ai2_spawn GrifElite01
402 }
403 ai2_spawn GrifElite02
404 ai2_spawn GrifElite03
405 chr_set_health Muro 500
406 fork wait_to_help
407 restore_game
408 objective_set(6,silent)
409 paths
410 }
411 }
412}
413
414func void deathfall(void)
415{
416 cm_detach
417 sleep f90
418 chr_set_health 0 0
419}
420
421func void you_lose(string ai_name)
422{
423 sleep 240
424 fade_out 0 0 0 180
425 sleep 240
426 lose
427}
428
429func void you_win(int char_index)
430{
431 outro
432 win
433}
434
435func void set_objective_1(string ai_name)
436{
437 dprint set_objective_1
438 objective_set(1)
439 target_set (1,0.0)
440}
441
442func void set_objective_2(string ai_name)
443{
444 dprint set_objective_2
445 ai2_spawn B_Eb11
446 ai2_spawn B_Eb16
447 ai2_spawn B_Esb15
448 ai2_spawn B_N1
449 ai2_spawn B_Sr9
450 ai2_spawn C_Sr17
451 ai2_spawn C_Sr18
452 ai2_spawn C_Sb75
453 ai2_spawn C_Sb76
454# ai2_spawn C_Sb77
455 ai2_spawn C_Sb78
456 objective_set(2)
457 target_set (558,30.0)
458 music_stop
459}
460
461func void set_objective_5(string ai_name)
462{
463 dprint set_objective_5
464 objective_set(5)
465# target_set (258,30.0)
466}
467
468###################
469# save game #
470###################
471
472func void s1(string ai_name)
473{
474 dprint SAVEDGAME1
475
476 if (my_save_point ne 1)
477 {
478 save_game 1 autosave
479 }
480}
481
482func void s2(string ai_name)
483{
484 dprint SAVEDGAME2
485
486 if (my_save_point ne 2)
487 {
488 save_game 2 autosave
489 }
490
491 ai2_dopath C_Sr17 patrol_17
492 ai2_setjobstate C_Sr17
493 ai2_dopath C_Sr18 patrol_18
494 ai2_setjobstate C_Sr18
495
496}
497
498func void s3(string ai_name)
499{
500 dprint SAVEDGAME3
501
502 if (my_save_point ne 3)
503 {
504 save_game 3 autosave
505 }
506}
507
508func void s4(string ai_name)
509{
510 dprint SAVEDGAME4
511
512 if (my_save_point ne 4)
513 {
514 save_game 4 autosave
515 }
516}
517
518##########################
519# cut scene scripts #
520##########################
521
522var int run_truck_once = 0;
523
524func void runTruck(string ai_name)
525{
526 dprint runTruck_check
527 if (run_truck_once eq 0)
528 {
529 ai2_tripalarm 1 char_0
530 }
531 run_truck_once = 1;
532
533 if (chr_has_lsi(0))
534 {
535 dprint LSI_OK
536 if (trigvolume_count(29) eq 0)
537 {
538 trigvolume_enable trigger_volume_23 0
539 dprint truck_ok
540 chr_delete C_b74
541 chr_delete C_Eb73
542 Truck
543 sleep 30
544 ai2_spawn D_R33
545 chr_delete C_Eb21
546 chr_delete C_Eb22
547 chr_delete C_Eb27
548 chr_delete C_Eb29
549 chr_delete C_Eb30
550 chr_delete C_N23
551 chr_delete C_N24
552 chr_delete C_Sb25
553 chr_delete C_Sb26
554 chr_delete C_Sr17
555 chr_delete C_Sr18
556 chr_delete C_Tb20
557 chr_delete C_Tr28
558 #chr_delete C_Sb77
559 chr_delete C_Sb78
560 objective_set(4)
561 target_set (501,30.0)
562 particle obj1 kill
563 s3
564 }
565 }
566}
567
568
569func void t10(string ai_name)
570{
571
572 dprint t10
573 if (trigvolume_count(25) eq 0)
574 {
575 if (stairs_open eq 1)
576 {
577 trigvolume_enable trigger_volume_10 0
578 trigvolume_enable trigger_volume_12 0
579 trigvolume_enable trigger_volume_26 0
580 dprint ParkLeft
581 ParkLeft
582 particle obj1 create
583 objective_set(3)
584 target_set(511,30.0)
585# ai2_makeignoreplayer ParkStriker 1
586 }
587 }
588}
589
590func void t12(string ai_name)
591{
592
593 dprint t12
594 if (trigvolume_count(26) eq 0)
595 {
596 if (stairs_open eq 1)
597 {
598 trigvolume_enable trigger_volume_12 0
599 trigvolume_enable trigger_volume_10 0
600 trigvolume_enable trigger_volume_25 0
601 dprint ParkRight
602 ParkRight
603 particle obj1 create
604 objective_set(3)
605 target_set(511,30.0)
606# ai2_makeignoreplayer ParkStriker 1
607 }
608 }
609}
610
611func void patrolscript0027(string ai_name)
612{
613 dprint patrolscript0027
614 ai2_dopath C_Sb25 patrol_52
615 ai2_setjobstate C_Sb25
616 ai2_dopath C_Sb26 patrol_53
617 ai2_setjobstate C_Sb26
618 ai2_dopath C_Eb27 patrol_27b
619 ai2_setjobstate C_Eb27
620}
621
622func void com_ok(string ai_name)
623{
624 dprint final_ok
625 comdies_ok = 1
626}
627
628func void fconsole_ok(string ai_name)
629{
630 dprint fconsole_ok
631 conused_ok = 1
632 objective_set(6)
633 text_console level_19d
634 target_set(502,30.0)
635 particle green create
636 sleep 400
637 particle green2 create
638 particle green3 create
639}
640
641func void t31(string ai_name)
642{
643 dprint t31
644 if (conused_ok eq 1)
645 {
646# if (comdies_ok eq 1)
647# {
648 dprint TO_FINAL_BATTLE
649 target_set(1,0.0)
650 music_stop
651 dish
652# }
653 }
654}
655
656func void check_death1a(string ai_name)
657{
658 dprint death1a
659 Round2a
660}
661
662func void check_death1b(string ai_name)
663{
664 dprint death1a
665 Round2b
666}
667
668func void final_round(string ai_name)
669{
670 dprint check_ROUND_3
671 counter = counter - 1
672 if(counter eq 0)
673 {
674 Round3
675 }
676}
677
678func void check_death2(string ai_name)
679{
680 Outro
681}
682
683func void Round2a(string ai_name)
684{
685 dprint ROUND_2a
686 round2_spawned = round2_spawned + 1;
687
688 ai2_spawn GrifElite04
689
690 ai2_passive GrifElite04 1
691
692 playback_block GrifElite04 GrifWave2_Run1
693
694 ai2_passive GrifElite04 0
695
696 if (muro_in_danger eq 1) {
697 # force the backup to go after konoko only
698 ai2_attack GrifElite04 char_0
699 }
700 if (muro_in_danger eq 0) {
701 ai2_makeaware GrifElite04 char_0
702 }
703}
704
705func void Round2b(string ai_name)
706{
707 dprint ROUND_2b
708 round2_spawned = round2_spawned + 1;
709
710 ai2_spawn GrifElite05
711
712 ai2_passive GrifElite05 1
713
714 playback_block GrifElite05 GrifWave2_Run1
715
716 ai2_passive GrifElite05 0
717
718 if (muro_in_danger eq 1) {
719 # force the backup to go after konoko only
720 ai2_attack GrifElite05 char_0
721 }
722 if (muro_in_danger eq 0) {
723 ai2_makeaware GrifElite05 char_0
724 }
725}
726
727func void Round3(string ai_name)
728{
729 dprint ROUND_3
730 round2_spawned = round2_spawned + 1;
731
732 ai2_spawn GrifElite06
733
734 ai2_passive GrifElite06 1
735
736 playback_block GrifElite06 GrifWave2_Run3
737
738 ai2_passive GrifElite06 0
739
740
741 if (muro_in_danger eq 1) {
742 # force the backup to go after konoko only
743 ai2_attack GrifElite06 char_0
744 }
745 if (muro_in_danger eq 0) {
746 # go after other dudes
747 ai2_makeaware GrifElite06 char_0
748 }
749}
750
751func void wait_to_help(void)
752{
753 chr_wait_health Muro 200
754
755 dprint MURO_IN_DANGER
756 ai2_boss_battle = 0;
757 muro_in_danger = 1;
758 ai2_attack GrifElite01 char_0
759 ai2_attack GrifElite02 char_0
760 ai2_attack GrifElite03 char_0
761 ai2_attack GrifElite04 char_0
762 ai2_attack GrifElite05 char_0
763 ai2_attack GrifElite06 char_0
764}
765
766###################
767# console #
768###################
769
770func void console_truckinfo(void)
771{
772 text_console level_19e
773 console_reset 6
774}
775
776func void unlock44(string ai_name)
777{
778# begin_cutscene
779# ai2_makeignoreplayer C_Sb77 1
780# ai2_makeignoreplayer C_Sb78 1
781# ai2_makeignoreplayer C_Eb22 1
782# ai2_makeignoreplayer C_Eb21 1
783# ai2_makeignoreplayer C_Tb20 1
784# ai2_makeignoreplayer C_Sr19 1
785# ai2_makeignoreplayer C_Sr18 1
786# ai2_makeignoreplayer C_Sr17 1
787# ai2_makeignoreplayer C_Sb76 1
788# ai2_makeignoreplayer C_Sb75 1
789 input 0
790 chr_invincible char_0 1
791 letterbox 1
792 fade_out 0 0 0 30
793 ai2_spawn C_Er79
794 music_guns
795 cm_interpolate door44 0
796 fade_in 30
797 target_set(559,30.0)
798}
799
800func void patrolscript0079(string ai_name)
801{
802 particle d1_locklight01 do start
803# sleep 60
804 door_unlock 44
805 sleep 60
806 sound_dialog_play c18_70_13elite
807 sound_dialog_play_block
808}
809
810func void patrolscript0080(string ai_name)
811{
812 sleep 90
813 cm_interpolate door44b 300
814 sleep 160
815 sound_dialog_play c18_74_05elite
816# sound_dialog_play_block
817 sleep 80
818 fade_out 0 0 0 60
819 sleep 60
820 cm_reset
821 fade_in 30
822 input 1
823# end_cutscene
824 letterbox 0
825 chr_invincible char_0 0
826# ai2_makeignoreplayer C_Sb77 0
827# ai2_makeignoreplayer C_Sb78 0
828# ai2_makeignoreplayer C_Eb22 0
829# ai2_makeignoreplayer C_Eb21 0
830# ai2_makeignoreplayer C_Tb20 0
831# ai2_makeignoreplayer C_Sr19 0
832# ai2_makeignoreplayer C_Sr18 0
833# ai2_makeignoreplayer C_Sr17 0
834# ai2_makeignoreplayer C_Sb76 0
835# ai2_makeignoreplayer C_Sb75 0
836# ai2_dopath C_Sr17 patrol_81
837# ai2_dopath C_Sb75 patrol_81
838# ai2_dopath C_Sb76 patrol_81
839 ai2_tripalarm 1 char_0
840}
841
842func void run1(string ai_name)
843{
844 dprint run1
845 ai2_doalarm A_Sb7 1
846 ai2_dopath A_Sb7 patrol_00
847# ai2_setjobstate A_Sb7
848}
849
850func void patrolscript0054(string ai_name)
851{
852 dprint doalarm
853 ai2_doalarm A_Sb7 1
854}
855
856func void do_alarm_sound(void)
857{
858 sound_ambient_start alarm_loop
859 sleep 900
860 sound_ambient_stop alarm_loop
861}
862
863func void run1_alarm(string ai_name)
864{
865 dprint run1_alarm
866 fork do_alarm_sound
867 ai2_dopath A_E3 patrol_49
868 ai2_dopath A_E4 patrol_49
869 ai2_dopath A_E5 patrol_49
870 ai2_dopath A_E6 patrol_49
871 ai2_spawn B_Sr9
872 sleep 7
873 ai2_dopath B_Sr9 patrol_10
874 ai2_spawn B_Eb11
875 sleep 60
876 ai2_dopath B_Eb11 patrol_10
877}
878
879func void driverhurt(string ai_name)
880{
881 dprint driverhurt
882 ai2_tripalarm 1 char_0
883}
884
885func void AreaF(string ai_name)
886{
887 console_count = console_count + 1
888 if(console_count eq 1)
889 {
890 text_console level_19a
891 sound_dialog_play_block c15_57_01konoko
892 sound_dialog_play_block pause
893 end_cutscene
894 }
895 if(console_count eq 2)
896 {
897 text_console level_19b
898 sound_dialog_play_block c15_57_02konoko
899 }
900 if (console_count eq 3)
901 {
902 dprint Area_F_now_open
903 trigvolume_enable attack_1tv 1
904 trigvolume_enable attack_2tv 1
905 trigvolume_enable attack_3tv 1
906 trigvolume_enable attack_3tv_copy 1
907 trigvolume_enable attack_4tv 1
908 text_console level_19c
909 set_objective_5
910 sound_dialog_play_block c15_57_03konoko
911 sound_dialog_play_block pause
912 sleep 60
913 music_guns
914 }
915}
916
917func void target100(void)
918{
919 console100used = 1;
920 if(console200used eq 0)
921 {
922 target_set(556,30.0)
923 }
924 if(console200used eq 1)
925 {
926 if(console300used eq 0)
927 {
928 target_set(557,30.0)
929 }
930 }
931 if(console200used eq 1)
932 {
933 if(console300used eq 1)
934 {
935 target_set(547,30.0)
936 }
937 }
938}
939
940func void target200(void)
941{
942 console200used = 1;
943 if(console300used eq 0)
944 {
945 target_set(557,30.0)
946 }
947 if(console300used eq 1)
948 {
949 if(console100used eq 0)
950 {
951 target_set(555,30.0)
952 }
953 }
954 if(console300used eq 1)
955 {
956 if(console100used eq 1)
957 {
958 target_set(547,30.0)
959 }
960 }
961}
962
963func void target300(void)
964{
965 console300used = 1;
966 if(console200used eq 0)
967 {
968 target_set(556,30.0)
969 }
970 if(console200used eq 1)
971 {
972 if(console100used eq 0)
973 {
974 target_set(555,30.0)
975 }
976 }
977 if(console200used eq 1)
978 {
979 if(console100used eq 1)
980 {
981 target_set(547,30.0)
982 }
983 }
984}
985
986#func void console100(string ai_name)
987#{
988# dprint console100
989# console_deactivate 101
990# AreaF
991# target100
992#}
993
994func void console101(string ai_name)
995{
996 dprint console101
997 console101used = 1;
998 target100
999# console_deactivate 100
1000 AreaF
1001}
1002
1003func void console200(string ai_name)
1004{
1005 dprint console200
1006 target200
1007 AreaF
1008}
1009
1010func void console300(string ai_name)
1011{
1012 music_guns_stop
1013 dprint console300
1014 console_deactivate 301
1015 target300
1016 AreaF
1017}
1018
1019func void console301(string ai_name)
1020{
1021 music_guns_stop
1022 dprint console301
1023 console_deactivate 300
1024 target300
1025 AreaF
1026}
1027
1028func void purp2(void)
1029{
1030 input 0
1031 fade_out 0 0 0 30
1032 cm_interpolate unlock_door 0
1033 fade_in 30
1034 sleep 60
1035 particle purple2_locklight01 do start
1036 door_unlock 20
1037 door_unlock 21
1038 door_unlock 22
1039 door_unlock 23
1040 door_unlock 24
1041 door_unlock 25
1042 door_unlock 26
1043 door_unlock 27
1044 door_unlock 28
1045 sleep 90
1046 fade_out 0 0 0 30
1047 cm_reset
1048 fade_in 30
1049 input 1
1050}
1051
1052func void purple2_unlock(string ai_name)
1053{
1054 dprint purple2_unlock
1055 purp2()
1056 trigvolume_enable trigger_volume_21 1
1057 trigvolume_enable trigger_volume_21_copy 1
1058 trigvolume_enable trigger_volume_44 1
1059 trigvolume_enable trigger_volume_45 1
1060 console_deactivate 100
1061}
1062
1063func void purple2_unlock_b(string ai_name)
1064{
1065 dprint purple2_unlockb
1066 purp2()
1067 if(console101used eq 0)
1068 {
1069 target_set(555,30.0)
1070 }
1071 console_deactivate 200
1072}
1073
1074func void unlock_stairs(string ai_name)
1075{
1076 dprint unlock_stairs
1077 music_stop
1078 door_unlock 10
1079 door_unlock 15
1080 door_unlock 16
1081 door_unlock 17
1082 particle stair_locklight01 do start
1083 ai2_spawn S_Tr41
1084 console_deactivate 4
1085# console_deactivate 5
1086 console_deactivate 3
1087 stairs_open = 1
1088 target_set(1,0.0)
1089}
1090
1091
1092func void unlock_stairs2(string ai_name)
1093{
1094 dprint unlock_stairs
1095 music_stop
1096 door_unlock 10
1097 door_unlock 15
1098 door_unlock 16
1099 door_unlock 17
1100 particle stair_locklight01 do start
1101 console_deactivate 3
1102# console_deactivate 5
1103 ai2_spawn S_Tr41
1104 ai2_spawn C_b74
1105 ai2_spawn C_Eb73
1106 chr_teleport C_b74 224
1107 ai2_dopath C_b74 patrol_80
1108 chr_teleport C_Eb73 237
1109 ai2_dopath C_Eb73 patrol_80
1110 stairs_open = 1
1111}
1112
1113
1114#########################
1115# trigger volume stuff #
1116#########################
1117func void t8(string ai_name)
1118{
1119 dprint t8
1120# ai2_spawn C_Sb77
1121 ai2_spawn C_Sb78
1122 ai2_spawn C_Sr19
1123 ai2_spawn C_Tb20
1124 ai2_spawn C_Eb21
1125 ai2_spawn C_Eb22
1126 ai2_spawn C_N23
1127 ai2_spawn C_N24
1128 ai2_spawn C_Eb29
1129 ai2_spawn C_Eb30
1130}
1131
1132
1133func void t9(string ai_name)
1134{
1135 dprint t9
1136 ai2_spawn B_Eb16
1137}
1138
1139func void t11(string ai_name)
1140{
1141 dprint t11
1142 ai2_dopath C_Sb25 patrol_48
1143 sleep 60
1144 ai2_dopath C_Sb26 patrol_48
1145 sleep 60
1146 ai2_dopath C_Eb27 patrol_48
1147
1148}
1149
1150
1151func void t13(string ai_name)
1152{
1153 dprint t13
1154 ai2_spawn E_Er34
1155 sleep 60
1156 door_unlock 24
1157# door_unlock 23
1158# door_unlock 22
1159 particle purple_locklight01 do start
1160 ai2_dopath E_Er34 patrol_34
1161 ai2_setjobstate E_Er34
1162 ai2_spawn E_Eb35
1163 target_set(501,30.0)
1164}
1165
1166func void t14(string ai_name)
1167{
1168 dprint t14
1169 ai2_spawn E_N36
1170 ai2_spawn E_Tr40
1171 trigvolume_enable trigger_volume_15 0
1172}
1173
1174func void t15(string ai_name)
1175{
1176 dprint t15
1177 ai2_spawn E_N35
1178 ai2_spawn E_Nr46
1179 trigvolume_enable trigger_volume_14 0
1180}
1181
1182func void t16(string ai_name)
1183{
1184 dprint t16
1185 ai2_spawn E_Nr36
1186 ai2_spawn E_Nb37
1187 ai2_spawn E_Nr39
1188 target_set (556,30.0)
1189 door_unlock 22
1190 particle purple3_locklight01 do start
1191}
1192
1193func void t20(string ai_name)
1194{
1195 dprint t20
1196 ai2_spawn E_N42
1197 trigvolume_enable trigger_volume_18 0
1198# console_deactivate 100
1199
1200}
1201
1202func void t18(string ai_name)
1203{
1204 dprint t18
1205 ai2_spawn E_N44
1206 ai2_spawn E_R46
1207 trigvolume_enable trigger_volume_20 0
1208# console_deactivate 101
1209
1210}
1211
1212func void t19(string ai_name)
1213{
1214 dprint t19
1215 ai2_spawn E_Er45
1216 ai2_spawn E_N41
1217 trigvolume_enable trigger_volume_17 0
1218# console_deactivate 300
1219}
1220
1221func void t17(string ai_name)
1222{
1223 dprint t17
1224 ai2_spawn E_N43
1225 trigvolume_enable trigger_volume_19 0
1226# console_deactivate 301
1227
1228}
1229
1230func void t45(string ai_name)
1231{
1232 ai2_makeignoreplayer E_Eb35 1
1233 ai2_makeignoreplayer E_Er34 1
1234 ai2_makeignoreplayer E_Er45 1
1235 ai2_makeignoreplayer E_Nb37 1
1236 ai2_makeignoreplayer E_Nb38 1
1237 ai2_makeignoreplayer E_Nr36 1
1238 ai2_makeignoreplayer E_Nr39 1
1239 ai2_makeignoreplayer E_Nr46 1
1240 ai2_makeignoreplayer E_R46 1
1241 ai2_makeignoreplayer E_Tr40 1
1242 sleep 600
1243 if(thru_door eq 0)
1244 {
1245 dprint DIDNOTGOTHRUDOOR
1246 ai2_makeignoreplayer E_Eb35 0
1247 ai2_makeignoreplayer E_Er34 0
1248 ai2_makeignoreplayer E_Er45 0
1249 ai2_makeignoreplayer E_Nb37 0
1250 ai2_makeignoreplayer E_Nb38 0
1251 ai2_makeignoreplayer E_Nr36 0
1252 ai2_makeignoreplayer E_Nr39 0
1253 ai2_makeignoreplayer E_Nr46 0
1254 ai2_makeignoreplayer E_R46 0
1255 ai2_makeignoreplayer E_Tr40 0
1256 }
1257}
1258
1259func void t21(string ai_name)
1260{
1261 dprint t21
1262 input 0
1263 letterbox 1
1264 cm_interpolate red1 260
1265 music_guns
1266 sleep 90
1267 particle mainchamber_locklight01 do start
1268 door_unlock 18
1269 door_unlock 19
1270 ai2_spawn D_R31
1271 ai2_spawn D_R32
1272 ai2_spawn D_E83
1273 door_open 18
1274 door_open 19
1275 sleep 180
1276 door_lock 18
1277 door_lock 19
1278 particle mainchamber_locklight01 do stop
1279 sleep 15
1280 cm_interpolate red2 400
1281 sleep 90
1282 fade_out 0 0 0 30
1283 sleep 30
1284 cm_reset
1285 fade_in 30
1286 letterbox 0
1287 input 1
1288 trigvolume_enable trigger_volume_21_copy 0
1289 trigvolume_enable trigger_volume_45 0
1290 sleep 60
1291 ai2_makeignoreplayer E_Eb35 0
1292 ai2_makeignoreplayer E_Er34 0
1293 ai2_makeignoreplayer E_Er45 0
1294 ai2_makeignoreplayer E_Nb37 0
1295 ai2_makeignoreplayer E_Nb38 0
1296 ai2_makeignoreplayer E_Nr36 0
1297 ai2_makeignoreplayer E_Nr39 0
1298 ai2_makeignoreplayer E_Nr46 0
1299 ai2_makeignoreplayer E_R46 0
1300 ai2_makeignoreplayer E_Tr40 0
1301 thru_door = 1;
1302 sleep 300
1303}
1304
1305func void t22(string ai_name)
1306{
1307 dprint t22
1308 ai2_makeignoreplayer E_Eb35 1
1309 ai2_makeignoreplayer E_Er34 1
1310 ai2_makeignoreplayer E_Er45 1
1311 ai2_makeignoreplayer E_Nb37 1
1312 ai2_makeignoreplayer E_Nb38 1
1313 ai2_makeignoreplayer E_Nr36 1
1314 ai2_makeignoreplayer E_Nr39 1
1315 ai2_makeignoreplayer E_Nr46 1
1316 ai2_makeignoreplayer E_R46 1
1317 ai2_makeignoreplayer E_Tr40 1
1318 input 0
1319 letterbox 1
1320 cm_interpolate red3 260
1321 music_guns
1322 sleep 90
1323 particle mainchamber_locklight01 do start
1324 door_unlock 18
1325 door_unlock 19
1326 ai2_spawn D_R31
1327 ai2_spawn D_R32
1328 ai2_spawn D_E83
1329 door_open 18
1330 door_open 19
1331 sleep 180
1332 door_lock 18
1333 door_lock 19
1334 particle mainchamber_locklight01 do stop
1335 sleep 15
1336 cm_interpolate red4 400
1337 sleep 90
1338 fade_out 0 0 0 30
1339 sleep 30
1340 cm_reset
1341 fade_in 30
1342 letterbox 0
1343 input 1
1344 trigvolume_enable trigger_volume_21 0
1345 trigvolume_enable trigger_volume_44 0
1346 sleep 60
1347 ai2_makeignoreplayer E_Eb35 0
1348 ai2_makeignoreplayer E_Er34 0
1349 ai2_makeignoreplayer E_Er45 0
1350 ai2_makeignoreplayer E_Nb37 0
1351 ai2_makeignoreplayer E_Nb38 0
1352 ai2_makeignoreplayer E_Nr36 0
1353 ai2_makeignoreplayer E_Nr39 0
1354 ai2_makeignoreplayer E_Nr46 0
1355 ai2_makeignoreplayer E_R46 0
1356 ai2_makeignoreplayer E_Tr40 0
1357 thru_door = 1;
1358 sleep 300
1359 music_stop
1360}
1361
1362func void wake_E(string ai_name)
1363{
1364 sleep 60
1365 ai2_makeignoreplayer E_Eb35 0
1366 ai2_makeignoreplayer E_Er34 0
1367 ai2_makeignoreplayer E_Er45 0
1368 ai2_makeignoreplayer E_Nb37 0
1369 ai2_makeignoreplayer E_Nb38 0
1370 ai2_makeignoreplayer E_Nr36 0
1371 ai2_makeignoreplayer E_Nr39 0
1372 ai2_makeignoreplayer E_Nr46 0
1373 ai2_makeignoreplayer E_R46 0
1374 ai2_makeignoreplayer E_Tr40 0
1375}
1376
1377func void sleep_E(string ai_name)
1378{
1379 ai2_makeignoreplayer E_Eb35 1
1380 ai2_makeignoreplayer E_Er34 1
1381 ai2_makeignoreplayer E_Er45 1
1382 ai2_makeignoreplayer E_Nb37 1
1383 ai2_makeignoreplayer E_Nb38 1
1384 ai2_makeignoreplayer E_Nr36 1
1385 ai2_makeignoreplayer E_Nr39 1
1386 ai2_makeignoreplayer E_Nr46 1
1387 ai2_makeignoreplayer E_R46 1
1388 ai2_makeignoreplayer E_Tr40 1
1389}
1390
1391func void fpath(string ai_name)
1392{
1393 ai2_dopath F_Eb43 patrol_43
1394 ai2_setjobstate F_Eb43
1395 sleep 30
1396 ai2_dopath F_Eb44 patrol_44
1397 ai2_setjobstate F_Eb44
1398 sleep 30
1399 ai2_dopath F_Eb47 patrol_47
1400 ai2_setjobstate F_Eb47
1401 music_stop
1402}
1403
1404func void attack_1(string ai_name)
1405{
1406 dprint attack_1
1407 sleep_E
1408 chr_invincible char_0 1
1409 letterbox 1
1410 sleep 15
1411 input 0
1412 cm_interpolate attack1 90
1413 ai2_spawn F_Eb43
1414 ai2_spawn F_Eb44
1415 ai2_spawn F_Eb47
1416 door_unlock 43
1417# sleep 60
1418 sleep 90
1419 particle F_locklight01 do start
1420 fpath
1421
1422 cm_interpolate attack2 240
1423 sleep 300
1424 cm_interpolate attack1 600
1425 chr_teleport 0 506
1426 sleep 90
1427 letterbox 0
1428 cm_reset
1429 chr_invincible char_0 0
1430 trigvolume_enable attack_2tv 0
1431 trigvolume_enable attack_3tv 0
1432 trigvolume_enable attack_3tv_copy 0
1433 trigvolume_enable attack_4tv 0
1434 input 1
1435 ai2_dopath F_Eb43 patrol_43b
1436 ai2_setjobstate F_Eb43
1437 ai2_dopath F_Eb44 patrol_44b
1438 ai2_setjobstate F_Eb44
1439 ai2_dopath F_Eb47 patrol_47b
1440 ai2_setjobstate F_Eb47
1441 wake_E
1442}
1443
1444func void attack_2(string ai_name)
1445{
1446 dprint attack_2
1447 sleep_E
1448 chr_invincible char_0 1
1449 letterbox 1
1450 sleep 15
1451 input 0
1452 cm_interpolate attack2b 120
1453 sleep 120
1454 cm_interpolate attack2 400
1455 sleep 100
1456 particle F_locklight01 do start
1457 sleep 80
1458 ai2_spawn F_Eb43
1459 ai2_spawn F_Eb44
1460 ai2_spawn F_Eb47
1461 door_unlock 43
1462 fpath
1463 sleep 290
1464 cm_interpolate attack2b 500
1465 chr_teleport 0 507
1466 sleep 90
1467 letterbox 0
1468 cm_reset
1469 chr_invincible char_0 0
1470 trigvolume_enable attack_1tv 0
1471 trigvolume_enable attack_3tv 0
1472 trigvolume_enable attack_3tv_copy 0
1473 trigvolume_enable attack_4tv 0
1474 input 1
1475 ai2_dopath F_Eb43 patrol_43b
1476 ai2_setjobstate F_Eb43
1477 ai2_dopath F_Eb44 patrol_44b
1478 ai2_setjobstate F_Eb44
1479 ai2_dopath F_Eb47 patrol_47b
1480 ai2_setjobstate F_Eb47
1481 wake_E
1482}
1483
1484
1485func void attack_3(string ai_name)
1486{
1487 if(count_attack3 eq 0)
1488 {
1489 count_attack3 = count_attack3 + 1;
1490 dprint attack_3
1491 chr_invincible char_0 1
1492 sleep_E
1493 letterbox 1
1494 sleep 15
1495 input 0
1496 cm_interpolate attack3 90
1497 ai2_spawn F_Eb43
1498 ai2_spawn F_Eb44
1499 ai2_spawn F_Eb47
1500 door_unlock 43
1501 sleep 90
1502 cm_interpolate attack4 210
1503 particle F_locklight01 do start
1504 fpath
1505 sleep 150
1506 cm_interpolate attack3 400
1507 chr_teleport 0 508
1508 sleep 90
1509 letterbox 0
1510 cm_reset
1511 chr_invincible char_0 0
1512 trigvolume_enable attack_2tv 0
1513 trigvolume_enable attack_3tv_copy 0
1514 trigvolume_enable attack_3tv 0
1515 trigvolume_enable attack_1tv 0
1516 trigvolume_enable attack_4tv 0
1517 input 1
1518 ai2_dopath F_Eb43 patrol_43b
1519 ai2_setjobstate F_Eb43
1520 ai2_dopath F_Eb44 patrol_44b
1521 ai2_setjobstate F_Eb44
1522 ai2_dopath F_Eb47 patrol_47b
1523 ai2_setjobstate F_Eb47
1524 wake_E
1525 }
1526}
1527
1528func void attack_4(string ai_name)
1529{
1530 dprint attack_4
1531 chr_invincible char_0 1
1532 sleep_E
1533 letterbox 1
1534 sleep 15
1535 input 0
1536 cm_interpolate attack3b 120
1537 sleep 120
1538 cm_interpolate attack4 300
1539 sleep 240
1540 particle F_locklight01 do start
1541 ai2_spawn F_Eb43
1542 ai2_spawn F_Eb44
1543 ai2_spawn F_Eb47
1544 door_unlock 43
1545 fpath
1546 sleep 160
1547 cm_interpolate attack3b 500
1548 chr_teleport 0 509
1549 sleep 90
1550 letterbox 0
1551 cm_reset
1552 chr_invincible char_0 0
1553 trigvolume_enable attack_2tv 0
1554 trigvolume_enable attack_3tv 0
1555 trigvolume_enable attack_3tv_copy 0
1556 trigvolume_enable attack_1tv 0
1557 input 1
1558 ai2_dopath F_Eb43 patrol_43b
1559 ai2_setjobstate F_Eb43
1560 ai2_dopath F_Eb44 patrol_44b
1561 ai2_setjobstate F_Eb44
1562 ai2_dopath F_Eb47 patrol_47b
1563 ai2_setjobstate F_Eb47
1564 wake_E
1565}
1566
1567
1568func void t27(string ai_name)
1569{
1570 dprint t27
1571 ai2_dopath C_Sb25 patrol_54
1572 ai2_dopath C_Sb26 patrol_54
1573 ai2_dopath C_Eb27 patrol_54
1574}
1575
1576func void t30(string ai_name)
1577{
1578 dprint t30
1579 ai2_makeignoreplayer F_C62 0
1580 ai2_spawn F_Er89
1581}
1582
1583func void t33(string ai_name)
1584{
1585 dprint t33
1586 ai2_spawn F_Er86
1587 ai2_spawn F_Nr87
1588 target_set(258,30.0)
1589 sound_dialog_play c15_57_04konoko
1590}
1591func void t41(string ai_name)
1592{
1593 dprint t41
1594 ai2_spawn F_Er59
1595}
1596
1597func void t42(string ai_name)
1598{
1599 dprint t42
1600 ai2_spawn F_Nr60
1601}
1602
1603func void t43(string ai_name)
1604{
1605 dprint t43
1606 ai2_spawn F_R61
1607 ai2_spawn F_Er88
1608 ai2_spawn F_C62
1609 ai2_makeignoreplayer F_C62 1
1610}
1611
1612func void comalarm(string ai_name)
1613{
1614 dprint comalarm
1615 ai2_tripalarm 2 char_0
1616}
1617
1618func void t38(string ai_name)
1619{
1620 dprint t38
1621 ai2_spawn A_E4
1622 ai2_spawn A_Sb63
1623 ai2_spawn A_E6
1624 ai2_spawn A_Sb7
1625 ai2_spawn new_2
1626}
1627
1628func void t40(string ai_name)
1629{
1630 dprint t40
1631 input 0
1632 letterbox 1
1633 cm_interpolate red1 240
1634 sleep 60
1635 particle purple2_locklight01 do start
1636 sleep 90
1637 fade_out 0 0 0 30
1638 cm_reset
1639 fade_in 30
1640 input 1
1641}
1642
1643func void swat_dies(void)
1644{
1645 count_swat_dies = count_swat_dies - 1;
1646 if(count_swat_dies eq 0)
1647 {
1648 ai2_attack GrifElite01 char_0
1649 ai2_attack GrifElite02 char_0
1650 ai2_attack GrifElite03 char_0
1651 ai2_attack GrifElite04 char_0
1652 ai2_attack GrifElite05 char_0
1653 }
1654}
Note: See TracBrowser for help on using the repository browser.