1 |
# |
2 |
# state_spawn_guards.bsl |
3 |
# |
4 |
# LEVEL LOGIC |
5 |
# |
6 |
################## MUSIC TEST ################################ |
7 |
func void level_start(string ai_name) |
8 |
{ |
9 |
# These functions are used when the game is restored. |
10 |
|
11 |
if (my_save_point eq 0) |
12 |
{ |
13 |
dprint SAVE_POINT_0 |
14 |
# USE THIS FUNC TO SET UP TRAINING SEQUENCE AGAIN |
15 |
|
16 |
ai2_spawn neutral_1 |
17 |
ai2_spawn fl2_secguard_1 |
18 |
powerup_spawn ammo 131 |
19 |
powerup_spawn hypo 132 |
20 |
} |
21 |
|
22 |
if (my_save_point eq 1) |
23 |
{ |
24 |
dprint RESTORE_SAVE_POINT_1 |
25 |
fl1_spawn_guards |
26 |
|
27 |
ai2_spawn neutral_1 |
28 |
ai2_spawn fl2_secguard_1 |
29 |
powerup_spawn ammo 131 |
30 |
powerup_spawn hypo 132 |
31 |
|
32 |
objective_set(1); |
33 |
particle(lock99_locklight01, do, start); |
34 |
console_deactivate 10 |
35 |
trigvolume_enable(trigger_volume_09, 0); |
36 |
restore_game |
37 |
} |
38 |
|
39 |
if (my_save_point eq 2) |
40 |
{ |
41 |
dprint RESTORE_SAVE_POINT_2 |
42 |
|
43 |
particle obj1 create |
44 |
particle obj1 start |
45 |
|
46 |
trigvolume_enable(Cut_dog, 1); |
47 |
trigvolume_enable(trigger_volume_11, 1); |
48 |
trigvolume_enable(trigger_volume_12, 1); |
49 |
trigvolume_enable(trigger_volume_14, 1); |
50 |
trigvolume_enable(trigger_volume_15, 1); |
51 |
trigvolume_enable(trigger_volume_10, 1); |
52 |
|
53 |
trigvolume_enable(shut_off_vault_music, 0); |
54 |
trigvolume_enable(trigger_volume_09, 0); |
55 |
trigvolume_enable(trigger_volume_08, 0); |
56 |
trigvolume_enable(trigger_volume_02, 0); |
57 |
trigvolume_enable(trigger_volume_01, 0); |
58 |
|
59 |
trigvolume_enable(save_trig_right, 0); |
60 |
trigvolume_enable(save_trig_left, 0); |
61 |
|
62 |
objective_set 4 silent |
63 |
|
64 |
target_set(267, 30.0) |
65 |
|
66 |
#change_flGUARD_CORRIDOR_lights |
67 |
|
68 |
door_lock(3); |
69 |
door_lock(77); |
70 |
|
71 |
door_unlock(15); |
72 |
door_unlock(14); |
73 |
door_unlock(7); |
74 |
door_unlock(5); |
75 |
door_unlock(75); |
76 |
door_unlock(59); |
77 |
door_unlock(54); |
78 |
door_unlock(67); |
79 |
door_unlock(68); |
80 |
door_unlock(76); |
81 |
door_unlock(23); |
82 |
door_unlock(42); |
83 |
|
84 |
trig_activate 1 |
85 |
trig_activate 2 |
86 |
#trig_activate 14 |
87 |
|
88 |
#console_activate 6 |
89 |
#console_activate 7 |
90 |
#console_activate 9 |
91 |
|
92 |
console_deactivate 11 |
93 |
console_deactivate 4 |
94 |
console_deactivate 88 |
95 |
console_deactivate 82 |
96 |
console_deactivate 5 |
97 |
console_deactivate 3 |
98 |
console_deactivate 6 |
99 |
console_deactivate 1 |
100 |
console_deactivate 2 |
101 |
|
102 |
particle lock1_locklight01 do start |
103 |
particle lock2_locklight01 do start |
104 |
particle lock3_locklight01 do start |
105 |
particle lock4_locklight01 do start |
106 |
particle lock5a_locklight01 do start |
107 |
particle lock5b_locklight01 do start |
108 |
particle lock5c_locklight01 do start |
109 |
particle lock99_locklight01 do start |
110 |
|
111 |
particle lock6_locklight01 do stop |
112 |
|
113 |
env_shade 271 272 .4 .4 .2 |
114 |
|
115 |
restore_game |
116 |
# objective_set(3); |
117 |
} |
118 |
} |
119 |
|
120 |
# This is an example of a save game console. |
121 |
|
122 |
func void save_game_1(string player_name) |
123 |
{ |
124 |
dprint saveit_1 |
125 |
save_game 1 autosave |
126 |
} |
127 |
|
128 |
func void save_game_2_right(string player_name) |
129 |
{ |
130 |
dprint saveit_2 |
131 |
save_game 2 autosave |
132 |
trigvolume_enable save_trig_left 0 |
133 |
} |
134 |
|
135 |
func void save_game_2_left(string player_name) |
136 |
{ |
137 |
dprint saveit_2 |
138 |
save_game 2 autosave |
139 |
trigvolume_enable save_trig_right 0 |
140 |
} |
141 |
|
142 |
############################################################## |
143 |
var int music_counter; |
144 |
|
145 |
func void music_force_stop(void) |
146 |
{ |
147 |
sleep 4500 |
148 |
|
149 |
if (0 ne music_counter) |
150 |
{ |
151 |
dprint music_force_stop |
152 |
music_counter = 0 |
153 |
all_music_counters |
154 |
} |
155 |
} |
156 |
func void music_script_start(void) |
157 |
{ |
158 |
music_counter = 2 |
159 |
} |
160 |
|
161 |
func void die_for_art_1(string ai_name) |
162 |
{ |
163 |
dprint DFA_1 |
164 |
music_counter = music_counter - 1 |
165 |
|
166 |
if (music_counter eq 0) |
167 |
{ |
168 |
all_music_counters(); |
169 |
} |
170 |
|
171 |
} |
172 |
func void die_for_art_2(string ai_name) |
173 |
{ |
174 |
dprint DFA_2 |
175 |
music_counter = music_counter - 1 |
176 |
|
177 |
if (music_counter eq 0) |
178 |
{ |
179 |
all_music_counters(); |
180 |
} |
181 |
|
182 |
} |
183 |
func void all_music_counters(void) |
184 |
{ |
185 |
dprint STOP_THE_MUSIC |
186 |
sound_music_stop mus_main02 |
187 |
sound_music_stop mus_heart |
188 |
sound_music_stop mus_main02_hd |
189 |
} |
190 |
|
191 |
func void fl1_spawn_guards(string ai_name) |
192 |
{ |
193 |
# dprint FL1_SPAWN_GUARDS |
194 |
ai2_spawn fl1_secguard_1 |
195 |
ai2_spawn fl1_secguard_2 |
196 |
ai2_spawn fl1_secguard_4 |
197 |
trigvolume_enable shut_off_vault_music 0 |
198 |
} |
199 |
|
200 |
func void fl2_spawn_secguard_2(string ai_name) |
201 |
{ |
202 |
# dprint FL2_SPAWN_GUARDS |
203 |
ai2_spawn fl2_secguard_2 |
204 |
ai2_spawn fl2_secguard_7 |
205 |
ai2_spawn fl2_balcony_2 |
206 |
|
207 |
ai2_spawn neutral_2 |
208 |
ai2_spawn neutral_4 |
209 |
} |
210 |
|
211 |
func void fl2_spawn_secguard_3(string ai_name) |
212 |
{ |
213 |
# dprint FL2_SPAWN_ASSAULT_GUARDS |
214 |
ai2_spawn fl2_secguard_3 |
215 |
ai2_spawn fl2_secguard_6 |
216 |
ai2_spawn fl2_balcony_1 |
217 |
} |
218 |
|
219 |
# THESE ARE THE THIRD FLOOR/ROOF GUYS |
220 |
|
221 |
func void spawn_fl3_guards(string ai_name) |
222 |
{ |
223 |
# dprint FLROOF_SPAWN_GUARDS |
224 |
ai2_spawn fl3_secguard_1 |
225 |
ai2_spawn fl3_secguard_2 |
226 |
ai2_spawn fl3_secguard_6 |
227 |
ai2_spawn flROOF_sniper_1 |
228 |
ai2_spawn Roof_BOSWAT_1 |
229 |
|
230 |
ai2_spawn neutral_3 |
231 |
ai2_spawn neutral_6 |
232 |
} |
233 |
|
234 |
# THESE ARE THE COMPUTER ROOM GUYS |
235 |
|
236 |
func void spawn_flBASEMENT_guards(string ai_name) |
237 |
{ |
238 |
# dprint FLROOF_SPAWN_GUARDS |
239 |
ai2_spawn flBASEMENT_guard_1 |
240 |
ai2_spawn flBASEMENT_guard_2 |
241 |
} |
242 |
|
243 |
# THESE ARE THE COMPUTER ROOM GUYS |
244 |
|
245 |
func void spawn_flRAMP_guards(string ai_name) |
246 |
{ |
247 |
# dprint FLROOF_SPAWN_GUARDS |
248 |
ai2_spawn flRAMP_guard_1 |
249 |
ai2_spawn flRAMP_guard_2 |
250 |
trigvolume_enable ninja_ambush_top_trig 0 |
251 |
trigvolume_enable ninja_ambush_bot_trig 0 |
252 |
particle lock46_locklight01 do start |
253 |
} |
254 |
|
255 |
func void spawn_outside_left_snipers(string ai_name) |
256 |
{ |
257 |
# dprint FL2_SPAWN_GUARDS |
258 |
ai2_spawn flOUTSIDE_A_sniper_1 |
259 |
ai2_spawn flOUTSIDE_A_sniper_2 |
260 |
ai2_spawn flOUTSIDE_B_sniper_1 |
261 |
ai2_spawn flOUTSIDE_C_sniper_1 |
262 |
} |
263 |
|
264 |
func void spawn_outside_right_snipers(string ai_name) |
265 |
{ |
266 |
# dprint FL2_SPAWN_GUARDS |
267 |
ai2_spawn flOUTSIDE_E_sniper_1 |
268 |
ai2_spawn flOUTSIDE_E_sniper_2 |
269 |
ai2_spawn flOUTSIDE_D_sniper_1 |
270 |
ai2_spawn flOUTSIDE_D_sniper_2 |
271 |
} |
272 |
|
273 |
func void spawn_targets(string ai_name) |
274 |
{ |
275 |
# dprint FL2_SPAWN_GUARDS |
276 |
ai2_spawn fl2_target_2 |
277 |
} |
278 |
|
279 |
func void do_neutral_1_run(string ai_name) |
280 |
{ |
281 |
ai2_neutralbehavior neutral_1 none |
282 |
ai2_setmovementmode neutral_1 run_noaim |
283 |
ai2_dopath neutral_1 neutral_1_run |
284 |
ai2_setjobstate neutral_1 |
285 |
} |
286 |
|
287 |
func void do_neutral_2_run(string ai_name) |
288 |
{ |
289 |
ai2_neutralbehavior neutral_2 none |
290 |
ai2_dopath neutral_2 neutral_2_run |
291 |
ai2_setjobstate neutral_2 |
292 |
} |
293 |
|
294 |
func void do_neutral_3_run(string ai_name) |
295 |
{ |
296 |
ai2_neutralbehavior neutral_3 none |
297 |
ai2_dopath neutral_3 neutral_3_run |
298 |
ai2_setjobstate neutral_3 |
299 |
} |
300 |
|
301 |
func void unlock_secret_1(string ai_name) |
302 |
{ |
303 |
input 0 |
304 |
cm_interpolate secret1 0 |
305 |
sleep 60 |
306 |
console_activate 7 |
307 |
#particle lock69a_locklight01 do start |
308 |
sleep 150 |
309 |
cm_reset |
310 |
input 1 |
311 |
|
312 |
ai2_spawn secret_guard_1 |
313 |
ai2_spawn secret_guard_2 |
314 |
} |
315 |
|
316 |
func void unlock_secret_2(string ai_name) |
317 |
{ |
318 |
door_unlock 34 |
319 |
door_unlock 36 |
320 |
|
321 |
# CB: ensure ramp guards do not see ninja and go after him! |
322 |
ai2_passive flRAMP_guard_1 1 |
323 |
ai2_passive flRAMP_guard_2 1 |
324 |
|
325 |
ai2_spawn cutscene_ninja_1 |
326 |
input 0 |
327 |
cm_interpolate secret2 0 |
328 |
sleep 60 |
329 |
particle lock7_locklight01 do start |
330 |
sleep 15 |
331 |
trig_deactivate 12 |
332 |
sleep 150 |
333 |
cm_reset |
334 |
input 1 |
335 |
|
336 |
chr_delete cutscene_ninja_1 |
337 |
ai2_passive flRAMP_guard_1 0 |
338 |
ai2_passive flRAMP_guard_2 0 |
339 |
|
340 |
trigvolume_enable ninja_ambush_top_trig 1 |
341 |
trigvolume_enable ninja_ambush_bot_trig 1 |
342 |
} |
343 |
|
344 |
func void ninja_ambush(string ai_name) |
345 |
{ |
346 |
trigvolume_enable ninja_ambush_top_trig 0 |
347 |
trigvolume_enable ninja_ambush_bot_trig 0 |
348 |
|
349 |
ai2_spawn ambush_ninja_1 |
350 |
ai2_spawn creepy_ninja_1 |
351 |
ai2_spawn creepy_ninja_3 |
352 |
} |
353 |
|
354 |
func void hall_1(string ai_name) |
355 |
{ |
356 |
input 0 |
357 |
cm_interpolate hall1 0 |
358 |
sleep 60 |
359 |
door_unlock 77 |
360 |
door_unlock 38 |
361 |
door_unlock 22 |
362 |
door_unlock 3 |
363 |
particle lock6_locklight01 do start |
364 |
particle lock7_locklight01 do stop |
365 |
sleep 150 |
366 |
cm_reset |
367 |
input 1 |
368 |
|
369 |
trig_deactivate 1 |
370 |
trig_deactivate 2 |
371 |
} |
372 |
|
373 |
func void top_1(string ai_name) |
374 |
{ |
375 |
input 0 |
376 |
#cm_interpolate hall1 0 |
377 |
sleep 60 |
378 |
door_unlock 35 |
379 |
door_unlock 38 |
380 |
door_unlock 22 |
381 |
door_unlock 3 |
382 |
particle lock6_locklight01 do start |
383 |
sleep 150 |
384 |
cm_reset |
385 |
input 1 |
386 |
|
387 |
trig_activate 12 |
388 |
trig_activate 13 |
389 |
trig_activate 14 |
390 |
|
391 |
trig_deactivate 1 |
392 |
trig_deactivate 2 |
393 |
} |
394 |
|
395 |
func void downstairs(string ai_name) |
396 |
{ |
397 |
trig_deactivate 14 |
398 |
door_unlock 8 |
399 |
door_unlock 9 |
400 |
particle lock23_locklight01 do start |
401 |
ai2_spawn creepy_ninja_5 |
402 |
ai2_spawn creepy_ninja_6 |
403 |
} |
404 |
|
405 |
func void upstairs(string ai_name) |
406 |
{ |
407 |
trig_deactivate 13 |
408 |
door_unlock 35 |
409 |
particle lock65_locklight01 do start |
410 |
} |
411 |
|
412 |
var int door_counter=3; |
413 |
|
414 |
func void seclock_music_start(void) |
415 |
{ |
416 |
if (door_counter eq 3) |
417 |
{ |
418 |
sound_music_start mus_lz 0.75 |
419 |
} |
420 |
} |
421 |
|
422 |
func void seclock_decrement_counter(void) |
423 |
{ |
424 |
door_counter = door_counter - 1 |
425 |
|
426 |
|
427 |
if (door_counter eq 0) |
428 |
{ |
429 |
sound_music_stop mus_lz |
430 |
unlock_roof(); |
431 |
} |
432 |
} |
433 |
|
434 |
func void seclock1(string ai_name) |
435 |
{ |
436 |
seclock_music_start |
437 |
|
438 |
input 0 |
439 |
cm_interpolate security 0 |
440 |
sleep 60 |
441 |
particle lock5a_locklight01 do start |
442 |
sleep 150 |
443 |
cm_reset |
444 |
input 1 |
445 |
|
446 |
seclock_decrement_counter |
447 |
} |
448 |
|
449 |
func void seclock2(string ai_name) |
450 |
{ |
451 |
seclock_music_start |
452 |
|
453 |
input 0 |
454 |
cm_interpolate security 0 |
455 |
sleep 60 |
456 |
particle lock5b_locklight01 do start |
457 |
sleep 150 |
458 |
cm_reset |
459 |
input 1 |
460 |
|
461 |
seclock_decrement_counter |
462 |
} |
463 |
|
464 |
func void seclock3(string ai_name) |
465 |
{ |
466 |
seclock_music_start |
467 |
|
468 |
input 0 |
469 |
cm_interpolate security 0 |
470 |
sleep 60 |
471 |
particle lock5c_locklight01 do start |
472 |
sleep 150 |
473 |
cm_reset |
474 |
input 1 |
475 |
|
476 |
seclock_decrement_counter |
477 |
} |
478 |
|
479 |
func void unlock_roof(string ai_name) |
480 |
{ |
481 |
door_unlock 23 |
482 |
door_unlock 42 |
483 |
} |
484 |
|
485 |
# |
486 |
# state_door_lock_lights.bsl |
487 |
# |
488 |
# SCRIPTS TO CHANGE THE LOCKED LIGHTS ON DOORS |
489 |
# |
490 |
# TURN FROM GREEN TO RED: do stop |
491 |
|
492 |
func void change_fl2_lights(string ai_name) |
493 |
{ |
494 |
# dprint WHATEVER YOU WANT |
495 |
sleep 60 |
496 |
particle lock2_locklight01 do start |
497 |
} |
498 |
|
499 |
func void change_fl3_lights(string ai_name) |
500 |
{ |
501 |
particle lock3_locklight01 do start |
502 |
ai2_spawn fl3_mook_1 |
503 |
ai2_spawn fl3_mook_2 |
504 |
} |
505 |
|
506 |
func void change_flDATA_ARCHIVE_lights(string ai_name) |
507 |
{ |
508 |
sleep 60 |
509 |
particle lock4_locklight01 do start |
510 |
} |
511 |
|
512 |
func void change_flCOMMAND_CENTER_lights(string ai_name) |
513 |
{ |
514 |
particle lock5_locklight01 do start |
515 |
} |
516 |
|
517 |
func void change_flGUARD_CORRIDOR_lights(string ai_name) |
518 |
{ |
519 |
particle lock6_locklight01 do start |
520 |
} |
521 |
|
522 |
func void change_flDIG_OFFICES_lights(string ai_name) |
523 |
{ |
524 |
particle lock7_locklight01 do start |
525 |
} |
526 |
|
527 |
|
528 |
func void grifftext(string chr_index) |
529 |
{ |
530 |
dprint text2a |
531 |
text_console level_11a |
532 |
console_reset 9 |
533 |
} |
534 |
|
535 |
|
536 |
# |
537 |
# state_spawn_guards.bsl |
538 |
# |
539 |
# SCRIPTS TO SPAWN SECURITY GUARDS |
540 |
# |
541 |
|
542 |
func void set_objective_1(string ai_name) |
543 |
{ |
544 |
# dprint WHATEVER I WANT |
545 |
objective_set(1) |
546 |
target_set(127, 30.0) |
547 |
} |
548 |
|
549 |
func void set_objective_2(string ai_name) |
550 |
{ |
551 |
# dprint WHATEVER I WANT |
552 |
objective_set(2) |
553 |
} |
554 |
|
555 |
func void set_objective_3(string ai_name) |
556 |
{ |
557 |
# dprint WHATEVER I WANT |
558 |
objective_set(3) |
559 |
} |
560 |
|
561 |
func void set_objective_4(string ai_name) |
562 |
{ |
563 |
# dprint WHATEVER I WANT |
564 |
objective_set(4) |
565 |
target_set(267, 30.0) |
566 |
} |
567 |
|
568 |
func void set_objective_5(string ai_name) |
569 |
{ |
570 |
# dprint WHATEVER I WANT |
571 |
objective_set(5) |
572 |
} |
573 |
|
574 |
func void set_objective_6(string ai_name) |
575 |
{ |
576 |
# dprint WHATEVER I WANT |
577 |
objective_set(6) |
578 |
} |
579 |
|
580 |
func void set_target_1(string ai_name) |
581 |
{ |
582 |
# dprint WHATEVER I WANT |
583 |
target_set(267, 30.0) |
584 |
} |
585 |
|
586 |
func void set_target_2(string ai_name) |
587 |
{ |
588 |
# dprint WHATEVER I WANT |
589 |
target_set(1030, 30.0) |
590 |
} |
591 |
###wuscripts |
592 |
func void check_outro(string ai_name) |
593 |
{ |
594 |
trigvolume_enable tv_check_outro 0 |
595 |
if(trigvolume_count (24) eq 0) |
596 |
{ |
597 |
trigvolume_enable Cut_outro 1 |
598 |
particle obj2 create |
599 |
target_set(126,30.0) |
600 |
} |
601 |
if(trigvolume_count (24) ne 0) |
602 |
{ |
603 |
sleep 60 |
604 |
trigvolume_enable tv_check_outro 1 |
605 |
} |
606 |
} |
607 |
|