ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/nikanabo/current/bsl/original/IGMD/roof/roof.bsl
Revision: 185
Committed: Mon May 21 18:48:22 2007 UTC (18 years, 4 months ago) by geyser
File size: 16371 byte(s)
Log Message:

File Contents

# Content
1 # rooftop
2 # scripts for level 12 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 # 1.variables defined
16 # 1b.music scripts
17 # 2.start and objectives scripts
18 # 3.save game scripts
19 # 4.cut scene scripts
20 # 5.console scripts
21 # 6.trigger volume scripts
22
23 ###############################
24 # variables defined #
25 ###############################
26
27 var int my_save_point=0;
28 var int ninja1=0;
29 var int ninja2=0;
30 var int strike1=0;
31 var int strike1b=0;
32 var int strike2=0;
33 var int strike3=0;
34 #var int elv1_check=0;
35 var int invading_counter=3;
36 var int done_with_intro_cutscene = 0;
37 var int go_hide;
38 var int go_hide2;
39
40 ###############################
41 # music #
42 ###############################
43
44 func void music_first(void)
45 {
46 sound_music_start mus_cool19 0.0
47 sound_music_volume mus_cool19 0.75 3.0
48 # stopped at tanker death or timer
49 }
50
51 func void music_first_timer(void)
52 {
53 sleep 1800
54 music_stop
55 }
56
57 func void music_gauntlet(void)
58 {
59 sound_music_start mus_atm_cl12lp 0.0
60 sound_music_volume mus_atm_cl12lp 0.75 3.0
61 # this music stopped in t14
62 }
63
64 func void music_billboard(void)
65 {
66 sound_music_start mus_low1 0.0
67 sound_music_start mus_low1 0.75 3
68 # this music stopped in ta2_54 script
69 }
70
71 func void music_battle(void)
72 {
73 sound_music_start mus_fitec
74 # this music stopped in outro
75 }
76
77 func void music_stop(void)
78 {
79 dprint STOP_THE_MUSIC
80 sound_music_stop mus_cool19
81 sound_music_stop mus_atm_cl12lp
82 sound_music_stop mus_low1
83 sound_music_stop mus_fitec
84 }
85
86 ###############################
87 # start and objectives #
88 ###############################
89 func void start(string ai_name)
90 {
91 dprint start
92
93 particle el1_locklight01 do start
94 door_lock 6
95
96 my_save_point = save_point;
97
98 if (my_save_point eq 0)
99 {
100 set_objective_1
101 powerup_spawn lsi 605
102 }
103
104 if (my_save_point eq 1)
105 {
106 dprint restore1
107 set_objective_1
108 done_with_intro_cutscene = 1;
109 fork intro_taunt
110 restore_game
111 powerup_spawn lsi 605
112 }
113
114 if (my_save_point eq 2)
115 {
116 done_with_intro_cutscene = 1;
117 dprint restore2
118 set_objective_1
119 chr_delete A_Sr9
120 chr_delete A_N1
121 chr_delete IntroNinja
122 ai2_spawn C_T16
123 ai2_spawn C_Sr15
124 ai2_spawn C_R55
125 ai2_spawn C_N57
126 trigvolume_enable trigger_volume_13 0
127 door_lock 3
128 restore_game
129 powerup_spawn lsi 605
130 }
131
132 if (my_save_point eq 3)
133 {
134 done_with_intro_cutscene = 1;
135 dprint restore3
136 set_objective_3
137 chr_delete A_Sr9
138 chr_delete A_N1
139 chr_delete IntroNinja
140 trigvolume_enable trigger_volume_79 0
141 restore_game
142 }
143
144 if (my_save_point eq 4)
145 {
146 done_with_intro_cutscene = 1;
147 dprint restore4
148 chr_delete A_Sr9
149 chr_delete A_N1
150 chr_delete IntroNinja
151 trigvolume_enable trigger_volume_28 0
152 ai2_spawn OutroNinja
153 chr_boss_shield OutroNinja
154 music_battle
155 gs_farclipplane_set 500
156 door_lock 2
157 restore_game
158 }
159 }
160
161 func void you_lose(string ai_name)
162 {
163 sleep 240
164 fade_out 0 0 0 180
165 sleep 240
166 lose
167 }
168
169 func void you_win(int char_index)
170 {
171 outro
172 win
173 }
174
175 func void set_objective_1(string ai_name)
176 {
177 dprint set_objective_1
178 objective_set(1)
179 target_set (7006,0.0)
180 }
181
182 func void set_objective_2(string ai_name)
183 {
184 dprint set_objective_2
185 objective_set(2)
186 target_set (7006,0.0)
187 }
188
189 func void set_objective_3(string ai_name)
190 {
191 dprint set_objective_3
192 objective_set(3)
193 target_set (7006,0.0)
194 }
195
196 ###################
197 # save game #
198 ###################
199
200 func void s1(string ai_name)
201 {
202 dprint SAVEDGAME1
203
204 if (my_save_point ne 1)
205 {
206 save_game 1 autosave
207 }
208 }
209
210 func void s2(string ai_name)
211 {
212 dprint SAVEDGAME2
213
214 if (my_save_point ne 2)
215 {
216 save_game 2 autosave
217 }
218 }
219
220 func void s3(string ai_name)
221 {
222 dprint SAVEDGAME3
223
224 if (my_save_point ne 3)
225 {
226 save_game 3 autosave
227 }
228 }
229
230 func void s4(string ai_name)
231 {
232 dprint SAVEDGAME4
233
234 if (my_save_point ne 4)
235 {
236 save_game 4 autosave
237 }
238 }
239
240 ##########################
241 # cut scene scripts #
242 ##########################
243
244 func void t12(string ai_name)
245 {
246 dprint t12_elevator
247 if (trigvolume_count(62) eq 0)
248 {
249 trigvolume_enable trigger_volume_12 0
250 sleep 7
251 trigvolume_corpse 62
252 dprint delete_oldAI
253 chr_delete B_R11
254 chr_delete B_R12a
255 chr_delete B_Sr10
256 chr_delete B_Sr10a
257 chr_delete B_T13
258 chr_delete B_Sr12
259 chr_delete B_N17
260 chr_delete B_N18
261 chr_delete A_N8
262 chr_delete A_T4
263 chr_delete A_Sr3
264 chr_delete C_N17
265 chr_delete C_N18
266 Elevator
267 target_set(47,0.0)
268 ai2_spawn C_Sr15
269 ai2_spawn C_T16
270 ai2_spawn C_R55
271 ai2_spawn C_N57
272 }
273 }
274
275 func void t17(string ai_name)
276 {
277 dprint t17_KonokoZip
278 if (chr_has_lsi(0))
279 {
280 KonokoZip
281 chr_delete D_C19
282 chr_delete D_C60
283 chr_delete D_N25
284 chr_delete D_R21
285 chr_delete D_Sb20
286 chr_delete D_Sb22
287 chr_delete D_Sb23
288 chr_delete D_Sr24
289 chr_delete D_Sr26
290 chr_delete D_Sr27
291 chr_delete D_Sr38
292 chr_delete D_T28
293 set_objective_3
294 }
295 }
296
297 func void t27(string ai_name)
298 {
299 dprint t27_ElevatorFinalFight
300 ai2_spawn SuperNinja
301 # Elevator cut scene
302 # I'm backing him into a corner. This isn't going to be pretty..."
303
304 chr_teleport 0 96
305
306 }
307
308
309 ###################
310 # console #
311 ###################
312
313 #########################
314 # trigger volume stuff #
315 #########################
316
317 func void t28(string ai_name)
318 {
319 chr_wait_animtype char_0 Pickup_Object
320 particle obj_zip create
321 }
322
323 func void runup(void)
324 {
325 ai2_dopath B_Sr10 patrol_10z
326 ai2_setjobstate B_Sr10
327 }
328
329 func void t1(string ai_name)
330 {
331 dprint t1
332 ai2_dopath A_N1 patrol_02
333 ai2_setjobstate A_N1
334 ai2_dopath IntroNinja patrol_40
335 ai2_setjobstate IntroNinja
336 if (strike1b eq 1)
337 {
338 dprint strike1b
339 ai2_dopath A_Sr9 patrol_09
340 ai2_setjobstate A_Sr9
341 }
342 sleep 300
343 if (ninja1 ne 0)
344 {
345 dprint ninja1_failed_trying_again
346 ai2_dopath IntroNinja patrol_40
347 ai2_setjobstate IntroNinja
348 }
349
350 if (ninja2 ne 0)
351 {
352 dprint ninja2_failed_trying_again
353 ai2_dopath A_N1 patrol_02
354 ai2_setjobstate A_N1
355 }
356 }
357
358 func void patrolscript0001(string ai_name)
359 {
360 dprint patrolscript0001_t1
361 playback_block IntroNinja ninja_jump5 interp 30
362 # ai2_makeignoreplayer A_N1 0
363 }
364
365 func void patrolscript0002(string ai_name)
366 {
367 dprint patrolscript0002_t1
368 playback_block A_N1 ninja_jump interp 30
369 # ai2_makeignoreplayer A_N1 0
370 }
371
372 func void t2(string ai_name)
373 {
374 dprint t2
375 trigvolume_enable trigger_volume_03 0
376 ai2_spawn A_C5
377 }
378
379 func void t3(string ai_name)
380 {
381 dprint t3
382 trigvolume_enable trigger_volume_02 0
383 ai2_spawn A_Sr3
384 }
385
386 func void t4(string ai_name)
387 {
388 dprint t4
389 trigvolume_enable trigger_volume_05 0
390 ai2_spawn A_T6
391 chr_delete A_Sr9
392 chr_delete A_N1
393 chr_delete IntroNinja
394
395 }
396
397 func void patrolscript0004(string ai_name)
398 {
399 dprint patrolscript0004
400 playback_block A_T6 tanker2 interp 20
401
402 }
403
404 func void t5(string ai_name)
405 {
406 dprint t5
407 trigvolume_enable trigger_volume_04 0
408 ai2_spawn A_T4
409 chr_delete A_Sr9
410 chr_delete A_N1
411 chr_delete IntroNinja
412
413 }
414
415 func void patrolscript0005(string ai_name)
416 {
417 dprint patrolscript0005
418 playback_block A_T4 tanker1 interp 20
419
420 }
421
422 func void t6(string ai_name)
423 {
424 dprint t6
425 ai2_spawn A_N7
426 trigvolume_enable trigger_volume_07_copy 0
427
428 }
429
430 func void t7(string ai_name)
431 {
432 dprint t7
433 ai2_spawn A_N8
434 trigvolume_enable trigger_volume_06 0
435 }
436
437 func void t8(string ai_name)
438 {
439 dprint t8
440 ai2_spawn B_Sr10
441 ai2_spawn B_Sr10a
442 ai2_spawn B_R11
443 ai2_spawn B_R12a
444 ai2_dopath A_T6 patrol_42
445 ai2_setjobstate A_T6
446 ai2_dopath A_T4 patrol_42
447 ai2_setjobstate A_T4
448 # ai2_dopath A_Sr3 patrol_44
449 ai2_setjobstate A_Sr3
450 # ai2_dopath A_C5 patrol_44
451 ai2_setjobstate A_C5
452 ai2_dopath A_N7 patrol_45
453 ai2_setjobstate A_N7
454 ai2_dopath A_N8 patrol_45
455 ai2_setjobstate A_N8
456 }
457
458 func void t9(string ai_name)
459 {
460 dprint t9
461 ai2_spawn E_N37
462 ai2_makeignoreplayer E_N37 1
463 playback_block E_N37 ninja_jump2
464 ai2_makeignoreplayer E_N37 0
465 ai2_attack E_N37 char_0
466 }
467
468 func void t10(string ai_name)
469 {
470 dprint t10
471 # "I lost him. Wait! There he is."
472 sound_dialog_play c11_39_03konoko
473 ai2_spawn B_Sr12
474 ai2_spawn B_T13
475 ai2_spawn B_SuperNinja
476 chr_boss_shield B_SuperNinja
477 chr_unstoppable B_SuperNinja 1
478 chr_neutral B_SuperNinja 1
479 playback_block B_SuperNinja superninja1 interp 20
480 sleep 60
481 chr_delete B_SuperNinja
482
483 }
484
485 func void t11(string ai_name)
486 {
487 dprint t11
488 ai2_spawn C_N17
489 ai2_spawn C_N18
490 ai2_dopath B_T13 patrol_41
491 ai2_setjobstate B_T13
492 }
493
494 func void patrolscript0011(string ai_name)
495 {
496 dprint patrolscript0011
497 playback_block B_T13 tanker_jump interp 30
498
499 }
500
501 func void t14(string ai_name)
502 {
503 dprint t14
504 music_stop
505 target_set (1,0.0)
506 chr_delete C_N57
507 chr_delete C_Sr15
508 chr_delete C_T16
509 chr_delete C_R55
510 ai2_dopath D_Sb20 patrol_35
511 ai2_spawn D_Sr38
512 ai2_spawn D_C60
513 }
514
515 func void patrolscript0014(string ai_name)
516 {
517 dprint patrolscript0014
518 playback_block D_Sb20 striker_jump interp 20
519 }
520
521 func void t15(string ai_name)
522 {
523 dprint t15
524 ai2_spawn E_N14
525 ai2_spawn E_N14a
526 ai2_passive E_N14 1
527 #ai2_passive E_N14a 1
528 ai2_spawn NinjaZip
529 ai2_passive NinjaZip 1
530 chr_unstoppable NinjaZip 1
531 playback NinjaZip NinjaZipSet
532 playback E_N14 Ninja02Set
533
534 }
535
536 #func void patrolscript0016(string ai_name)
537 #{
538 # dprint patrolscript0016
539 # playback_block E_N14 LSIninja interp 20
540 #}
541
542 func void t18(string ai_name)
543 {
544 dprint t18
545 music_gauntlet
546 ai2_spawn D_C19
547 ai2_spawn D_Sb20
548 ai2_spawn D_R21
549 ai2_spawn D_Sb22
550 ai2_spawn D_Sb23
551 ai2_spawn D_Sr24
552 }
553
554 func void t19(string ai_name)
555 {
556 dprint t19
557 music_billboard
558 ai2_spawn D_N25
559 ai2_spawn C_R61
560 }
561
562 func void t20(string ai_name)
563 {
564 dprint t20
565 music_stop
566 ai2_spawn D_Sr26
567 ai2_spawn D_Sr27
568 ai2_spawn D_T28
569 }
570
571 func void cantescape_dialog(void)
572 {
573 sleep 120
574 # "He can't escape me. But why?"
575 sound_dialog_play c11_39_04konoko
576 }
577
578 func void t21(string ai_name)
579 {
580 dprint t21_E_SuperNinja
581 fork cantescape_dialog
582 ai2_spawn E_N29
583 ai2_spawn E_Sb31
584 ai2_spawn E_Sr63
585 ai2_spawn E_Sr64
586 ai2_spawn E_R65
587 ai2_spawn E_SuperNinja
588 chr_boss_shield E_SuperNinja
589 chr_unstoppable E_SuperNinja
590 playback_block E_SuperNinja superninja2 interp 20
591 sleep 60
592 chr_delete E_SuperNinja
593
594 }
595
596 func void t22(string ai_name)
597 {
598 dprint t22
599 ai2_dopath IntroNinja patrol_39
600 ai2_setjobstate IntroNinja
601
602 }
603
604 func void patrolscript0022(string ai_name)
605 {
606 dprint patrolscript0022
607 playback_block IntroNinja ninja_jump4 interp 20
608
609 }
610
611 func void t23(string ai_name)
612 {
613 dprint t23
614 ai2_spawn E_Sr30
615
616 }
617
618 func void t24(string ai_name)
619 {
620 dprint t24
621 # "He knows I can feel him. That we are... rivals? Natural enemies?"
622 sound_dialog_play c11_39_08konoko
623 ai2_spawn E_R32
624 ai2_dopath E_Sr33 patrol_34
625 ai2_setjobstate E_Sr33
626 }
627
628 func void t25(string ai_name)
629 {
630 dprint t25
631 ai2_spawn E_Sr33
632 ai2_dopath E_Sr30 patrol_34
633 ai2_setjobstate E_Sr30
634 }
635
636 func void t29(string ai_name)
637 {
638 dprint t29
639 # "There's something familar about him, I can't quite place it."
640 sound_dialog_play c11_39_05konoko
641 }
642
643 func void t30(string ai_name)
644 {
645 dprint t30_D_SuperNinja
646 # "Where... ? Ah! Over there!"
647 sound_dialog_play c11_39_01konoko
648 ai2_spawn D_SuperNinja
649 chr_boss_shield D_SuperNinja
650 chr_unstoppable D_SuperNinja 1
651 playback_block D_SuperNinja superninja1b interp 20
652 sleep 60
653 chr_delete D_SuperNinja
654
655 }
656
657 func void t31(string ai_name)
658 {
659 dprint t31
660 ai2_spawn A_N43
661 }
662
663 func void t32in(string ai_name)
664 {
665 dprint t32in
666 ninja1 = ninja1 + 1
667 }
668
669 func void t32out(string ai_name)
670 {
671 dprint t32out
672 ninja1 = ninja1 - 1
673 }
674
675 func void t33in(string ai_name)
676 {
677 dprint t33in
678 ninja2 = ninja2 + 1
679 }
680
681 func void t33out(string ai_name)
682 {
683 dprint t33out
684 ninja2 = ninja2 - 1
685 }
686
687 func void ninja1_die(string ai_name)
688 {
689 dprint ninja1_die
690 ninja1 = 0
691 }
692
693 func void ninja2_die(string ai_name)
694 {
695 dprint ninja2_die
696 ninja2 = 0
697 }
698
699 func void t57(string ai_name)
700 {
701 dprint t57
702 strike1=1
703 sleep 120
704 if (strike1 eq 1)
705 {
706 ai2_dopath A_Sr9 patrol_48
707 ai2_setjobstate A_Sr9
708 }
709 }
710
711 func void t57b(string ai_name)
712 {
713 dprint t57b
714 strike1=0
715 strike1b=1
716 }
717
718
719 func void t58(string ai_name)
720 {
721 dprint t58
722 music_first
723 # ai2_makeignoreplayer A_Sr9 1
724 # ai2_makeignoreplayer A_N1 1
725 # ai2_makeignoreplayer IntroNinja 1
726 ai2_dopath A_Sr9 patrol_49
727 ai2_setjobstate A_Sr9
728 ai2_dopath A_N1 patrol_50
729 ai2_setjobstate A_N1
730 ai2_dopath IntroNinja patrol_51
731 ai2_setjobstate IntroNinja
732 # sleep 15
733 # ai2_makeignoreplayer A_Sr9 0
734 # ai2_makeignoreplayer A_N1 0
735 # ai2_makeignoreplayer IntroNinja 0
736 music_first_timer
737
738 }
739
740 func void t83(string ai_name)
741 {
742 dprint checking
743 go_hide = go_hide + 1;
744 if(trigvolume_count (83) ne 0)
745 {
746 dprint t83
747 if(go_hide eq 0)
748 {
749 ai2_makeignoreplayer (ai_name,1)
750 ai2_dopath (ai_name,patrol_13b)
751 ai2_setjobstate (ai_name)
752 ai2_forget (ai_name)
753 sleep 60
754 ai2_makeignoreplayer (ai_name,0)
755 }
756 if(go_hide eq 1)
757 {
758 ai2_makeignoreplayer (ai_name,1)
759 ai2_dopath (ai_name,patrol_12b)
760 ai2_setjobstate (ai_name)
761 ai2_forget (ai_name)
762 sleep 60
763 ai2_makeignoreplayer (ai_name,0)
764 }
765 }
766 }
767
768 func void t83b(string ai_name)
769 {
770 dprint t83B
771 go_hide = go_hide - 1;
772 }
773
774 func void t84(string ai_name)
775 {
776 dprint checking
777 go_hide2 = go_hide2 + 1;
778 sleep 60
779 if(trigvolume_count (84) ne 0)
780 {
781 dprint t84
782 if(go_hide2 eq 0)
783 {
784 ai2_makeignoreplayer (ai_name,1)
785 ai2_dopath (ai_name,patrol_69)
786 ai2_setjobstate (ai_name)
787 ai2_forget (ai_name)
788 sleep 60
789 ai2_makeignoreplayer (ai_name,0)
790 }
791 if(go_hide2 eq 1)
792 {
793 ai2_makeignoreplayer (ai_name,1)
794 ai2_dopath (ai_name,patrol_70)
795 ai2_setjobstate (ai_name)
796 ai2_forget (ai_name)
797 sleep 60
798 ai2_makeignoreplayer (ai_name,0)
799 }
800 if(go_hide2 eq 2)
801 {
802 ai2_makeignoreplayer (ai_name,1)
803 ai2_dopath (ai_name,patrol_71)
804 ai2_setjobstate (ai_name)
805 ai2_forget (ai_name)
806 sleep 60
807 ai2_makeignoreplayer (ai_name,0)
808 }
809 }
810 }
811
812 func void t84b(string ai_name)
813 {
814 dprint t84B
815 go_hide2 = go_hide2 - 1;
816 }
817
818 func void t85(string ai_name)
819 {
820 dprint t85
821 ai2_spawn sbg_ninja
822 }
823 func void t59(string ai_name)
824 {
825 dprint t59
826 strike2=1
827 sleep 120
828 if (strike2 eq 1)
829 {
830 ai2_dopath A_Sr3 patrol_52
831 ai2_setjobstate A_Sr3
832 ai2_dopath A_C5 patrol_52
833 ai2_setjobstate A_C5
834 }
835 }
836
837 func void t59b(string ai_name)
838 {
839 dprint t59b
840 strike2=0
841 }
842
843 func void t60(string ai_name)
844 {
845 dprint t60
846 strike3=1
847 sleep 120
848 if (strike3 eq 1)
849 {
850 ai2_dopath B_Sr12 patrol_53
851 ai2_setjobstate B_Sr12
852 }
853 }
854
855 func void t60b(string ai_name)
856 {
857 dprint t60b
858 strike3=0
859 }
860
861 func void t63(string ai_name)
862 {
863 if (trigvolume_count(64) eq 0)
864 {
865 trigvolume_enable trigger_volume_63 0
866 dprint t63
867 chr_delete E_R32
868 chr_delete E_Sr33
869 chr_delete E_Sr30
870 door_unlock 6
871 }
872 }
873
874 func void t65(string ai_name)
875 {
876 dprint t65
877 chr_teleport C_R55 7013
878 ai2_dopath C_R55 patrol_56
879 ai2_setjobstate C_R55
880 }
881
882 func void t77(string ai_name)
883 {
884 dprint t77
885 ai2_dopath D_R21 patrol_58
886 }
887
888 func void t78(string ai_name)
889 {
890 dprint t78
891 ai2_dopath D_R21 patrol_59
892 }
893
894 func void minus_invading_counter(string ai_name)
895 {
896 invading_counter = invading_counter - 1
897
898 if (invading_counter eq 0)
899 {
900 invading_dialog();
901 }
902 }
903
904 func void invading_dialog(void)
905 {
906 invading_counter = 0;
907 trigvolume_enable trigger_volume_95 0
908
909 sleep 90
910 # "It's like this is his territory, and I'm invading."
911 sound_dialog_play c11_39_06konoko
912 }
913
914 func void t95(string ai_name)
915 {
916 dprint t95
917
918 invading_dialog();
919 }
920
921 func void t96(string ai_name)
922 {
923 dprint t96
924 # "He's... angry! I can _taste_ his frustration."
925 sound_dialog_play c11_39_07konoko
926 }
927
928 func void patrolscript0077(string ai_name)
929 {
930 dprint 0077
931 ai2_dopath D_R21 patrol_21
932 ai2_setjobstate D_R21
933 }
934
935 func void t80(string ai_name)
936 {
937 dprint t78
938 ai2_spawn E_C62
939 playback E_C62 com
940
941 }
942