1 | #################
|
---|
2 | ### VARIABLES ###
|
---|
3 | #################
|
---|
4 |
|
---|
5 | var int var_counter = 0;
|
---|
6 | var int var_counter2 = 0;
|
---|
7 |
|
---|
8 | ############
|
---|
9 | ### MAIN ###
|
---|
10 | ############
|
---|
11 |
|
---|
12 | func void main(void)
|
---|
13 | {
|
---|
14 | gl_fog_red = 0
|
---|
15 | gl_fog_blue = 0
|
---|
16 | gl_fog_green = 0
|
---|
17 | gl_fog_start = .995
|
---|
18 | gs_farclipplane_set 5000
|
---|
19 | ui_suppress_prompt = 1
|
---|
20 | chr_auto_aim_dist = 0
|
---|
21 | start
|
---|
22 | }
|
---|
23 |
|
---|
24 | #############
|
---|
25 | ### START ###
|
---|
26 | #############
|
---|
27 |
|
---|
28 | func void start(string ai_name)
|
---|
29 | {
|
---|
30 | fork deactivate_stuff
|
---|
31 | if(save_point eq 0) save_point = 1
|
---|
32 | if(save_point eq 1) fork intro
|
---|
33 | if(save_point eq 2) restore_game
|
---|
34 | if(save_point eq 3)
|
---|
35 | {
|
---|
36 | restore_game
|
---|
37 | sleep 1
|
---|
38 | if(trigvolume_count(5) eq 0) fork save_point_2
|
---|
39 | }
|
---|
40 | if(save_point eq 4) restore_game
|
---|
41 | if(save_point eq 5) fork save_point_5
|
---|
42 | sleep 5
|
---|
43 | fork sp_all
|
---|
44 | }
|
---|
45 |
|
---|
46 | func void deactivate_stuff(void)
|
---|
47 | {
|
---|
48 | #not used
|
---|
49 | trigvolume_enable ratend 0
|
---|
50 | trigvolume_enable trigger_volume_03 0
|
---|
51 | trigvolume_enable trigger_volume_04 0
|
---|
52 | trigvolume_enable trigger_volume_40 0
|
---|
53 | trigvolume_enable trigger_volume_41_copy 0
|
---|
54 | trigvolume_enable unfinishedbusiness 0
|
---|
55 | #used
|
---|
56 | door_lock 35
|
---|
57 | particle gas2 do stop
|
---|
58 | particle gaslight1 do stop
|
---|
59 | trig_hide 1
|
---|
60 | trig_hide 2
|
---|
61 | trig_hide 3
|
---|
62 | trig_hide 4
|
---|
63 | trigvolume_enable rappel_point 0
|
---|
64 | trigvolume_enable trigger_volume_08 1
|
---|
65 | trigvolume_enable tripwire 1
|
---|
66 | }
|
---|
67 |
|
---|
68 | func void you_lose(string ai_name)
|
---|
69 | {
|
---|
70 | fade_out 0 0 0 30
|
---|
71 | sleep 30
|
---|
72 | lose
|
---|
73 | }
|
---|
74 |
|
---|
75 | ####################################
|
---|
76 | ### SEVERAL TIMES USED FUNCTIONS ###
|
---|
77 | ####################################
|
---|
78 |
|
---|
79 | func void sp_all(void)
|
---|
80 | {
|
---|
81 | co_message_display = 0
|
---|
82 | if(save_point eq 1) save_game 1 autosave
|
---|
83 | if(save_point eq 2) save_game 2 autosave
|
---|
84 | if(save_point eq 3) save_game 3 autosave
|
---|
85 | if(save_point eq 4) save_game 4 autosave
|
---|
86 | if(save_point eq 5) save_game 5 autosave
|
---|
87 | sleep 180
|
---|
88 | co_message_display = 1
|
---|
89 | }
|
---|
90 |
|
---|
91 | func void remove_ai(void)
|
---|
92 | {
|
---|
93 | ai2_kill
|
---|
94 | sleep 60
|
---|
95 | powerup_reset
|
---|
96 | weapon_reset
|
---|
97 | sleep 240
|
---|
98 | corpse_reset
|
---|
99 | }
|
---|
100 |
|
---|
101 | func void music_stop(void)
|
---|
102 | {
|
---|
103 | sound_music_stop mus_om03
|
---|
104 | sound_music_stop atm_gr09
|
---|
105 | sound_music_stop mus_asian
|
---|
106 | sound_music_stop atm_cl09
|
---|
107 | sound_music_stop mus_space01
|
---|
108 | }
|
---|
109 |
|
---|
110 | #tv43, 46 and 47
|
---|
111 | func void fire_damage(string ai_name)
|
---|
112 | {
|
---|
113 | chr_poison(ai_name, 5, 30, 30);
|
---|
114 | }
|
---|
115 |
|
---|
116 | ##########
|
---|
117 | ### SP1 ###
|
---|
118 | ##########
|
---|
119 |
|
---|
120 | func void intro(void)
|
---|
121 | {
|
---|
122 | playback 0 IntroKonokoSet
|
---|
123 | sleep 5
|
---|
124 | ai2_spawn Start_Friend_1
|
---|
125 | ai2_spawn Start_Striker_5
|
---|
126 | ai2_makeaware Start_Striker_5 Start_Friend_1
|
---|
127 | particle room1 do start
|
---|
128 | sleep 15
|
---|
129 | sound_dialog_play c00_01_28shinatama
|
---|
130 | sleep 30
|
---|
131 | objective_set 1 silent
|
---|
132 | target_set 7124 30
|
---|
133 | sound_music_start mus_om03
|
---|
134 | }
|
---|
135 |
|
---|
136 | func void patrolscript0200(string char_index)
|
---|
137 | {
|
---|
138 | playback_block Start_Friend_1 roll fromhere
|
---|
139 | ai2_dopath Start_Friend_1 Start_Friend_1b 1
|
---|
140 | ai2_setjobstate Start_Friend_1
|
---|
141 | }
|
---|
142 |
|
---|
143 | #tv9 - in the middle of the passage from the start room to the hall
|
---|
144 | func void Start1(string char_index)
|
---|
145 | {
|
---|
146 | ai2_spawn Start_Striker_1
|
---|
147 | ai2_spawn Start_Striker_2
|
---|
148 | ai2_spawn Start_Comguy_1
|
---|
149 | }
|
---|
150 |
|
---|
151 | #tv11- at the end of the passage
|
---|
152 | func void mad_bomber1(string ai_name)
|
---|
153 | {
|
---|
154 | ai2_spawn mad_bomber1
|
---|
155 | sleep 150
|
---|
156 | particle bomb1 do explode
|
---|
157 | particle squib1a do explode
|
---|
158 | particle squib1b do explode
|
---|
159 | sleep 60
|
---|
160 | particle bomb2 do explode
|
---|
161 | particle squib2 do explode
|
---|
162 | sleep 30
|
---|
163 | particle bomb_damage1 do start
|
---|
164 | }
|
---|
165 |
|
---|
166 | #lose func of Start_Striker_5 and Start_Comguy_1 and Hangar1_A_Striker_3
|
---|
167 | func void striker_lullaby_1(string ai_name)
|
---|
168 | {
|
---|
169 | var_counter = var_counter + 1
|
---|
170 | if(var_counter eq 2)
|
---|
171 | {
|
---|
172 | music_stop
|
---|
173 | var_counter = 0
|
---|
174 | }
|
---|
175 | }
|
---|
176 |
|
---|
177 | #tv14 - in some distance in front of the corner of the right wall; from left to right
|
---|
178 | func void victim_thug1(string ai_name)
|
---|
179 | {
|
---|
180 | ai2_spawn victim_thug1
|
---|
181 | ai2_spawn cruel_striker1
|
---|
182 | }
|
---|
183 |
|
---|
184 | #console11
|
---|
185 | func void lock2(string ai_name)
|
---|
186 | {
|
---|
187 | particle lock2_locklight01 do start
|
---|
188 | trigvolume_enable hidden_friends1 1
|
---|
189 | music_stop
|
---|
190 | }
|
---|
191 |
|
---|
192 | #tv15 - in the middle of the passage to door 41
|
---|
193 | func void hidden_thugs(string ai_name)
|
---|
194 | {
|
---|
195 | ai2_spawn Start_Friend_2
|
---|
196 | ai2_spawn Start_Friend_3
|
---|
197 | }
|
---|
198 |
|
---|
199 | #console 12
|
---|
200 | func void lock1(void)
|
---|
201 | {
|
---|
202 | particle lock1_locklight01 do start
|
---|
203 | target_set 7125 30
|
---|
204 | }
|
---|
205 |
|
---|
206 | ##########
|
---|
207 | ### SP2 ###
|
---|
208 | ##########
|
---|
209 |
|
---|
210 | #tv1 - in some distance after door 11
|
---|
211 | func void tarmac(string ai_name)
|
---|
212 | {
|
---|
213 | if(save_point ne 2)
|
---|
214 | {
|
---|
215 | fork remove_ai
|
---|
216 | save_game 2 autosave
|
---|
217 | particle lock1_locklight01 do stop
|
---|
218 | door_close 11
|
---|
219 | door_lock 11
|
---|
220 | particle room1 do stop
|
---|
221 | particle bomb_damage1 do stop
|
---|
222 | }
|
---|
223 | particle compound create
|
---|
224 | ai2_spawn tarmac_striker_1
|
---|
225 | ai2_spawn tarmac_striker_2
|
---|
226 | ai2_spawn tarmac_striker_3
|
---|
227 | ai2_spawn tarmac_tanker_1
|
---|
228 | ai2_spawn tarmac_tanker_2
|
---|
229 | ai2_spawn tarmac_commguy_1
|
---|
230 | objective_set 2 silent
|
---|
231 | target_set 7037 30
|
---|
232 | sleep 1
|
---|
233 | sound_music_start atm_gr09 0.75
|
---|
234 | sound_dialog_play c00_01_18shinatama
|
---|
235 | }
|
---|
236 |
|
---|
237 | #tv18 - big box around the entrance of the area which is fenced in (where the mad bomber waits)
|
---|
238 | func void striker_tee_off(string ai_name)
|
---|
239 | {
|
---|
240 | ai2_dopath tarmac_striker_4 tarmac_striker_3b 1
|
---|
241 | }
|
---|
242 |
|
---|
243 | #tv19 - compled area which is fenced in (where the mad bomber waits)
|
---|
244 | #hit func of tarmac_striker_3
|
---|
245 | func void tanker_backup(string ai_name)
|
---|
246 | {
|
---|
247 | ai2_dopath tarmac_tanker_2 tarmac_tanker_2b 1
|
---|
248 | }
|
---|
249 |
|
---|
250 | #tv17 - after door 46; from left to right
|
---|
251 | func void unlock_commguy(string ai_name)
|
---|
252 | {
|
---|
253 | ai2_dopath tarmac_commguy_1 tarmac_commguy_2 1
|
---|
254 | ai2_dopath tarmac_tanker_2 tarmac_tanker_2c 1
|
---|
255 | music_stop
|
---|
256 | }
|
---|
257 |
|
---|
258 | #console 1
|
---|
259 | func void Hangar1_A(void)
|
---|
260 | {
|
---|
261 | particle lock3_locklight01 do start
|
---|
262 | door_unlock 12
|
---|
263 | target_set 7085 30
|
---|
264 | }
|
---|
265 |
|
---|
266 | #tv12 and 45 - in some distance after door 12
|
---|
267 | func void muro_bait(string ai_name)
|
---|
268 | {
|
---|
269 | trigvolume_enable murobait_a 0
|
---|
270 | trigvolume_enable murobait_b 0
|
---|
271 | particle compound kill
|
---|
272 | door_close 12
|
---|
273 | door_lock 12
|
---|
274 | ai2_spawn muro1
|
---|
275 | ai2_spawn escort_striker1
|
---|
276 | ai2_spawn escort_striker2
|
---|
277 | playback muro1 muro1 interp 30
|
---|
278 | playback escort_striker1 escort_striker1 interp 30
|
---|
279 | playback escort_striker2 escort_striker2 interp 30
|
---|
280 | sound_music_start mus_asian 0.75
|
---|
281 | particle garage1_locklight02 do start
|
---|
282 | door_open 26
|
---|
283 | door_jam 26
|
---|
284 | ai2_spawn Hangar1_A_Striker_1
|
---|
285 | ai2_spawn Hangar1_A_Striker_2
|
---|
286 | ai2_spawn Hangar1_A_Striker_3
|
---|
287 | playback Hangar1_A_Striker_2 hangar1_striker2 interp 30
|
---|
288 | playback Hangar1_A_Striker_3 hangar1_striker3 interp 30
|
---|
289 | playback Hangar1_A_Striker_1 hangar1_striker1 interp 30
|
---|
290 | sleep 30
|
---|
291 | sound_dialog_play c00_01_20shinatama
|
---|
292 | objective_set 3 silent
|
---|
293 | target_set 0 0
|
---|
294 | sleep 600
|
---|
295 | chr_delete muro1
|
---|
296 | chr_delete escort_striker1
|
---|
297 | chr_delete escort_striker2
|
---|
298 | }
|
---|
299 |
|
---|
300 | #lose func of Hangar1_A_Striker_1
|
---|
301 | func void striker_lullaby_2(string ai_name)
|
---|
302 | {
|
---|
303 | striker_lullaby_1
|
---|
304 | }
|
---|
305 |
|
---|
306 | ### WAY TO THE GAS TUNNEL ###
|
---|
307 |
|
---|
308 | #console13
|
---|
309 | func void rat_door(string ai_name)
|
---|
310 | {
|
---|
311 | particle lock9_locklight02 do start
|
---|
312 | door_unlock 24
|
---|
313 | }
|
---|
314 |
|
---|
315 | #tv48 - after door 26
|
---|
316 | func void low_target_clear(string ai_name)
|
---|
317 | {
|
---|
318 | target_set 0 0
|
---|
319 | }
|
---|
320 |
|
---|
321 | #tv49 - after tv48
|
---|
322 | func void low_target_set(string ai_name)
|
---|
323 | {
|
---|
324 | target_set 7085 30
|
---|
325 | }
|
---|
326 |
|
---|
327 | #tv2 - in some distance after tv49
|
---|
328 | func void hangar1a(string char_index)
|
---|
329 | {
|
---|
330 | ai2_spawn Hangar1_B_Striker_1
|
---|
331 | ai2_spawn Hangar1_B_Striker_4
|
---|
332 | }
|
---|
333 |
|
---|
334 | #lose func of Hangar1_B_Striker_1 and Hangar1_B_Striker_4
|
---|
335 | func void hangar1d_var(string ai_name)
|
---|
336 | {
|
---|
337 | var_counter = var_counter + 1
|
---|
338 | if(var_counter eq 2)
|
---|
339 | {
|
---|
340 | particle garage2_locklight02 do start
|
---|
341 | door_unlock 19
|
---|
342 | door_open 19
|
---|
343 | door_jam 19
|
---|
344 | ai2_spawn hangar1d_enemy_1
|
---|
345 | ai2_spawn hangar1d_enemy_2
|
---|
346 | }
|
---|
347 | }
|
---|
348 |
|
---|
349 | #lose func of hangar1d_enemy_1 and hangar1d_enemy_2
|
---|
350 | func void hangar1f_var(string ai_name)
|
---|
351 | {
|
---|
352 | var_counter = var_counter + 1
|
---|
353 | if (var_counter eq 4)
|
---|
354 | {
|
---|
355 | particle garage3_locklight02 do start
|
---|
356 | door_unlock 20
|
---|
357 | door_open 20
|
---|
358 | door_jam 20
|
---|
359 | ai2_spawn hangar1f_enemy_1
|
---|
360 | ai2_spawn hangar1f_enemy_3
|
---|
361 | ai2_spawn rat_thug_4
|
---|
362 | var_counter = 0
|
---|
363 | }
|
---|
364 | }
|
---|
365 |
|
---|
366 | #tv39 - after door 20 (entry func: skip_ratscene); I've disabled it
|
---|
367 |
|
---|
368 | #hit func of hangar1f_enemy_3
|
---|
369 | func void hangar1d_backup(string ai_name)
|
---|
370 | {
|
---|
371 | ai2_spawn hangar1f_enemy_2
|
---|
372 | }
|
---|
373 |
|
---|
374 | func void patrolscript0500(string ai_name)
|
---|
375 | {
|
---|
376 | playback_block hangar1f_enemy_2 bomber_jump interp 30
|
---|
377 | }
|
---|
378 |
|
---|
379 | #tv31 - after the beginning of the ramp
|
---|
380 | func void gas_trig_show(string ai_name)
|
---|
381 | {
|
---|
382 | trig_show 1
|
---|
383 | trig_show 2
|
---|
384 | trig_show 3
|
---|
385 | trig_show 4
|
---|
386 | console_deactivate 14
|
---|
387 | console_deactivate 15
|
---|
388 | door_open 48
|
---|
389 | door_jam 48
|
---|
390 | }
|
---|
391 |
|
---|
392 | ### WAY TO THE ROOF ###
|
---|
393 |
|
---|
394 | #tv13 - from the left wall (at the end of the right side of door 26) to the right wall
|
---|
395 | func void hangar1b(string ai_name)
|
---|
396 | {
|
---|
397 | ai2_spawn superball_striker
|
---|
398 | }
|
---|
399 |
|
---|
400 | #tv50 - at the beginning of the first plattform; at the end of the first ramp
|
---|
401 | func void high_target_clear(string ai_name)
|
---|
402 | {
|
---|
403 | target_set 0 0
|
---|
404 | }
|
---|
405 |
|
---|
406 | #tv51 - after tv50
|
---|
407 | func void high_target_set(string ai_name)
|
---|
408 | {
|
---|
409 | target_set 7126 30
|
---|
410 | }
|
---|
411 |
|
---|
412 | #console 8
|
---|
413 | func void lock5(void)
|
---|
414 | {
|
---|
415 | particle lock5c_locklight01 do start
|
---|
416 | lock_check
|
---|
417 | }
|
---|
418 |
|
---|
419 | #tv30 - after the room with console 3; left side; at the end of the ramp
|
---|
420 | func void hangar1c(string char_index)
|
---|
421 | {
|
---|
422 | ai2_spawn Hangar1_B_Striker_5
|
---|
423 | ai2_spawn Hangar1_B_Striker_9
|
---|
424 | ai2_spawn Hangar1_A_Tanker_1
|
---|
425 | ai2_spawn Hangar1_B_Comguy_12
|
---|
426 | }
|
---|
427 |
|
---|
428 | #console 3
|
---|
429 | func void lock5a_var(string ai_name)
|
---|
430 | {
|
---|
431 | particle lock5a_locklight01 do start
|
---|
432 | lock_check
|
---|
433 | }
|
---|
434 |
|
---|
435 | #tv4 - the platform with door 21 and door 22; first half of the platform (tv without any func); I've disabled it
|
---|
436 |
|
---|
437 | #console 33
|
---|
438 | func void lock5b_var(string ai_name)
|
---|
439 | {
|
---|
440 | particle lock5b_locklight01 do start
|
---|
441 | lock_check
|
---|
442 | }
|
---|
443 |
|
---|
444 | func void lock_check(void)
|
---|
445 | {
|
---|
446 | var_counter2 = var_counter2 + 1
|
---|
447 | if(var_counter2 eq 1) music_stop
|
---|
448 | if(var_counter2 eq 3)
|
---|
449 | {
|
---|
450 | door_unlock 21
|
---|
451 | door_unlock 22
|
---|
452 | roof_guys
|
---|
453 | }
|
---|
454 | }
|
---|
455 |
|
---|
456 | func void roof_guys(void)
|
---|
457 | {
|
---|
458 | #particles
|
---|
459 | particle carpool create
|
---|
460 | particle carpool do start
|
---|
461 | particle roof2 do start
|
---|
462 | particle roof3 do start
|
---|
463 | #roof1
|
---|
464 | ai2_spawn ahah_badman_1
|
---|
465 | ai2_spawn ahah_badman_2
|
---|
466 | ai2_spawn Roof1_Striker_1
|
---|
467 | ai2_spawn Roof1_Striker_2
|
---|
468 | #roof2
|
---|
469 | ai2_spawn carpool_striker_1
|
---|
470 | ai2_spawn Roof2_Striker_1
|
---|
471 | ai2_spawn Roof2_Striker_2
|
---|
472 | ai2_spawn Roof2_Striker_3
|
---|
473 | #tv
|
---|
474 | trigvolume_enable trigger_volume_08 0
|
---|
475 | }
|
---|
476 |
|
---|
477 | ##########
|
---|
478 | ### SP3 ###
|
---|
479 | ##########
|
---|
480 |
|
---|
481 | ### GAS TUNNEL ###
|
---|
482 |
|
---|
483 | #tv5 - in some distance after door 24
|
---|
484 | func void save_point_3(string ai_name)
|
---|
485 | {
|
---|
486 | if(save_point eq 3)
|
---|
487 | {
|
---|
488 | gas_trig_show
|
---|
489 | objective_set 3 silent
|
---|
490 | target_set 7085 30
|
---|
491 | }
|
---|
492 | else
|
---|
493 | {
|
---|
494 | fork remove_ai
|
---|
495 | save_game 3 autosave
|
---|
496 | particle lock9_locklight02 do stop
|
---|
497 | door_close 24
|
---|
498 | door_lock 24
|
---|
499 | }
|
---|
500 | ai2_spawn Rat_Tanker_1
|
---|
501 | ai2_spawn Rat_Comguy_1
|
---|
502 | sleep 1
|
---|
503 | sound_music_start atm_cl09 0.75
|
---|
504 | trigvolume_enable save2 0
|
---|
505 | trigvolume_enable save3 0
|
---|
506 | }
|
---|
507 |
|
---|
508 | #tv28 - the complete volume of the tunnel (tv name: gas)
|
---|
509 | func void poison_konoko(string ai_name)
|
---|
510 | {
|
---|
511 | chr_poison(0, 10, 60, 90);
|
---|
512 | }
|
---|
513 |
|
---|
514 | #fired off by touching the triggers (lasers)
|
---|
515 | func void gas(string ai_name)
|
---|
516 | {
|
---|
517 | particle gas1 do start
|
---|
518 | particle gas2 do start
|
---|
519 | particle gaslight1 do start
|
---|
520 | console_activate 14
|
---|
521 | console_activate 15
|
---|
522 | door_unjam 48
|
---|
523 | door_close 48
|
---|
524 | door_jam 48
|
---|
525 | trigvolume_enable gas 1
|
---|
526 | }
|
---|
527 |
|
---|
528 | #console 14 and console 15
|
---|
529 | func void gas_off(string ai_name)
|
---|
530 | {
|
---|
531 | particle gas1 do stop
|
---|
532 | particle gas2 do stop
|
---|
533 | particle gaslight1 do stop
|
---|
534 | console_reset 14
|
---|
535 | console_reset 15
|
---|
536 | console_deactivate 14
|
---|
537 | console_deactivate 15
|
---|
538 | door_unjam 48
|
---|
539 | door_open 48
|
---|
540 | door_jam 48
|
---|
541 | trigvolume_enable gas 0
|
---|
542 | }
|
---|
543 |
|
---|
544 | #tv27 - in some distance in front of door 48 (entry func: Rat_Guards); I've disabled it
|
---|
545 |
|
---|
546 | #tv29 - after door 48
|
---|
547 | func void gas_kill(string ai_name)
|
---|
548 | {
|
---|
549 | particle gas1 do stop
|
---|
550 | particle gas2 do stop
|
---|
551 | particle gaslight1 do stop
|
---|
552 | door_unjam 48
|
---|
553 | door_close 48
|
---|
554 | trig_hide 1
|
---|
555 | trig_hide 2
|
---|
556 | trig_hide 3
|
---|
557 | trig_hide 4
|
---|
558 | }
|
---|
559 |
|
---|
560 | #tv32 - in some distance in front of door 35
|
---|
561 | func void gas_trig_hide(string ai_name)
|
---|
562 | {
|
---|
563 | roof_guys
|
---|
564 | }
|
---|
565 |
|
---|
566 | ### ROOF ###
|
---|
567 |
|
---|
568 | #tv26 - long volume after door 21 and door 22
|
---|
569 | func void save_point_2(string ai_name)
|
---|
570 | {
|
---|
571 | if(save_point eq 3)
|
---|
572 | {
|
---|
573 | fork roof_guys
|
---|
574 | objective_set 3 silent
|
---|
575 | }
|
---|
576 | else
|
---|
577 | {
|
---|
578 | save_game 3 autosave
|
---|
579 | particle lock5a_locklight01 do stop
|
---|
580 | particle lock5b_locklight01 do stop
|
---|
581 | particle lock5c_locklight01 do stop
|
---|
582 | door_close 21
|
---|
583 | door_close 22
|
---|
584 | door_lock 21
|
---|
585 | door_lock 22
|
---|
586 | }
|
---|
587 | target_set 7085 30
|
---|
588 | trigvolume_enable save2 0
|
---|
589 | trigvolume_enable save3 0
|
---|
590 | sleep 1
|
---|
591 | sound_music_start atm_cl09 1.0
|
---|
592 | }
|
---|
593 |
|
---|
594 | #tv21 - complete left end of the roof
|
---|
595 | #tv20 - at the beginning of the cul-de-sac
|
---|
596 | func void secret_striker(string char_index)
|
---|
597 | {
|
---|
598 | ai2_spawn secret_striker_1
|
---|
599 | }
|
---|
600 |
|
---|
601 | #notice func of secret_striker_1
|
---|
602 | func void secret_tanker(string char_index)
|
---|
603 | {
|
---|
604 | ai2_spawn secret_tanker_1
|
---|
605 | }
|
---|
606 |
|
---|
607 | #tv22 - complete front end of the roof
|
---|
608 | #tv23 - complete right end of the roof
|
---|
609 | #tv24 - at the roof of the gas tunnel; from the left to the right; start left: at the beginning of the first short ramp
|
---|
610 | func void low_roadies_1(string ai_name)
|
---|
611 | {
|
---|
612 | ai2_spawn Back_Striker_1
|
---|
613 | ai2_spawn Back_Striker_2
|
---|
614 | ai2_spawn Back_Striker_3
|
---|
615 | ai2_spawn Back_Thug_1
|
---|
616 | }
|
---|
617 |
|
---|
618 | #notice func of Back_Striker_3
|
---|
619 | func void sos_2(string char_index)
|
---|
620 | {
|
---|
621 | ai2_spawn sos_badman_2
|
---|
622 | }
|
---|
623 |
|
---|
624 | #tv25 - at the end of the underpass of the gas tunnel
|
---|
625 | func void low_roadies_2(string ai_name)
|
---|
626 | {
|
---|
627 | ai2_spawn Back_Tanker_1
|
---|
628 | ai2_spawn Back_Thug_2
|
---|
629 | ai2_spawn Back_Thug_3
|
---|
630 | }
|
---|
631 |
|
---|
632 | ### BOTH WAYS FUSE ###
|
---|
633 |
|
---|
634 | func void carpool_backup(string char_index)
|
---|
635 | {
|
---|
636 | ai2_spawn carpool_striker_2
|
---|
637 | }
|
---|
638 |
|
---|
639 | #tv42 - huge box around the carpool (entry func: carpool_start; exit func: carpool_stop); I've disabled it
|
---|
640 |
|
---|
641 | #tv6 - on the roof of the underpass to console 10; at the beginning (top) of the ramp
|
---|
642 | func void Back3(string char_index)
|
---|
643 | {
|
---|
644 | ai2_spawn Roof3_Striker_1
|
---|
645 | ai2_spawn Roof3_Striker_2
|
---|
646 | ai2_spawn Roof3_Tanker_1
|
---|
647 | }
|
---|
648 |
|
---|
649 | #hit func of Roof3_Tanker_1
|
---|
650 | func void roof3_backup1(string char_index)
|
---|
651 | {
|
---|
652 | ai2_dopath Roof3_Striker_1 Roof3_Striker_1b 1
|
---|
653 | }
|
---|
654 |
|
---|
655 | #tv33 - huge box around the underpass to console 10; includes the roof of the underpass
|
---|
656 | func void back_compound(string char_index)
|
---|
657 | {
|
---|
658 | ai2_spawn compound_tanker_1
|
---|
659 | ai2_spawn compound_bomber_1
|
---|
660 | }
|
---|
661 |
|
---|
662 | #tv41 - huge wall from left to right over the complete area below and the roof; starts in some distance after the stiarway to door 27
|
---|
663 | func void remote_parking(string ai_name)
|
---|
664 | {
|
---|
665 | ai2_spawn hostage_thug_1
|
---|
666 | ai2_spawn hostage_thug_2
|
---|
667 | ai2_spawn hostage_thug_3
|
---|
668 | ai2_spawn squad_tanker_1
|
---|
669 | ai2_spawn squad_tanker_2
|
---|
670 | var_counter2 = 10
|
---|
671 | }
|
---|
672 |
|
---|
673 | #lose func of squad_tanker_1
|
---|
674 | func void remote_backup_1(string ai_name)
|
---|
675 | {
|
---|
676 | ai2_spawn hostage_striker_1
|
---|
677 | }
|
---|
678 |
|
---|
679 | #lose func of squad_tanker_2
|
---|
680 | func void remote_backup_2(string ai_name)
|
---|
681 | {
|
---|
682 | ai2_spawn hostage_striker_2
|
---|
683 | }
|
---|
684 |
|
---|
685 | ##########
|
---|
686 | ### SP4 ###
|
---|
687 | ##########
|
---|
688 |
|
---|
689 | #console 10
|
---|
690 | func void save_point_4(string ai_name)
|
---|
691 | {
|
---|
692 | trigvolume_enable trigger_volume_08 1
|
---|
693 | particle lock6_locklight01 do start
|
---|
694 | door_unlock 27
|
---|
695 | if(save_point eq 4)
|
---|
696 | {
|
---|
697 | console_deactivate 10
|
---|
698 | particle carpool create
|
---|
699 | particle carpool do start
|
---|
700 | particle roof2 do start
|
---|
701 | particle roof3 do start
|
---|
702 | trigvolume_enable backcompound 0
|
---|
703 | trigvolume_enable hidden1a 0
|
---|
704 | trigvolume_enable hidden1b 0
|
---|
705 | trigvolume_enable lowroad1 0
|
---|
706 | trigvolume_enable lowroad2 0
|
---|
707 | trigvolume_enable lowroad3 0
|
---|
708 | trigvolume_enable lowroad4 0
|
---|
709 | trigvolume_enable remote 0
|
---|
710 | trigvolume_enable save2 0
|
---|
711 | trigvolume_enable trigger_volume_07 0
|
---|
712 | }
|
---|
713 | else
|
---|
714 | {
|
---|
715 | fork remove_ai
|
---|
716 | music_stop
|
---|
717 | fade_out 0 0 0 30
|
---|
718 | sleep 30
|
---|
719 | chr_teleport 0 2020
|
---|
720 | chr_peace 0
|
---|
721 | fade_in 30
|
---|
722 | save_game 4 autosave
|
---|
723 | }
|
---|
724 | target_set 7060 30
|
---|
725 | objective_set 4 silent
|
---|
726 | sound_dialog_play c00_01_19shinatama
|
---|
727 | }
|
---|
728 |
|
---|
729 | #tv7 - in front of door 27
|
---|
730 | func void Office1(string char_index)
|
---|
731 | {
|
---|
732 | if(var_counter2 ne 10) fork save_point_4
|
---|
733 | ai2_spawn Office1_Comguy_1
|
---|
734 | ai2_spawn Office1_Comguy_11
|
---|
735 | ai2_spawn Office2_Striker_1
|
---|
736 | ai2_spawn Office2_Striker_3
|
---|
737 | ai2_spawn Office3_Tanker_12
|
---|
738 | ai2_spawn neutral_1
|
---|
739 | ai2_spawn neutral_2
|
---|
740 | sleep 1
|
---|
741 | sound_music_start atm_gr09
|
---|
742 | }
|
---|
743 |
|
---|
744 | #tv44 - around the box with the lsi
|
---|
745 | func void objective_check(string ai_name)
|
---|
746 | {
|
---|
747 | if(chr_has_lsi(0))
|
---|
748 | {
|
---|
749 | trigvolume_enable objectivecheck 0
|
---|
750 | objective_set 5 silent
|
---|
751 | target_set 7127 30
|
---|
752 | particle lock6_locklight01 do stop
|
---|
753 | door_lock 27
|
---|
754 | particle carpool do stop
|
---|
755 | particle carpool kill
|
---|
756 | particle roof2 do stop
|
---|
757 | particle roof3 do stop
|
---|
758 | }
|
---|
759 | }
|
---|
760 |
|
---|
761 | #tv36 - in the middle of the stairs to door 33
|
---|
762 | func void lsi_check_1(string ai_name)
|
---|
763 | {
|
---|
764 | if(chr_has_lsi(0))
|
---|
765 | {
|
---|
766 | trigvolume_enable tripwire 1
|
---|
767 | music_stop
|
---|
768 | }
|
---|
769 | }
|
---|
770 |
|
---|
771 | #tv34 - in some distance in front of door 36
|
---|
772 | func void ambush(string ai_name)
|
---|
773 | {
|
---|
774 | ai2_spawn ambush_striker_1
|
---|
775 | if(save_point ne 5)
|
---|
776 | {
|
---|
777 | particle lock7_locklight01 do start
|
---|
778 | door_unlock 36
|
---|
779 | ai2_spawn ambush_commguy_1
|
---|
780 | sleep 220
|
---|
781 | ai2_doalarm ambush_commguy_1 4
|
---|
782 | }
|
---|
783 | sleep 1
|
---|
784 | sound_music_start mus_space01 0.75
|
---|
785 | }
|
---|
786 |
|
---|
787 | ##########
|
---|
788 | ### SP5 ###
|
---|
789 | ##########
|
---|
790 |
|
---|
791 | #tv8 - after door 36
|
---|
792 | func void save_point_5(string ai_name)
|
---|
793 | {
|
---|
794 | trigvolume_enable hangar2_setup 0
|
---|
795 | if(save_point eq 5)
|
---|
796 | {
|
---|
797 | restore_game
|
---|
798 | ambush
|
---|
799 | objective_set 5 silent
|
---|
800 | }
|
---|
801 | else
|
---|
802 | {
|
---|
803 | save_game 5 autosave
|
---|
804 | particle lock7_locklight01 do stop
|
---|
805 | door_close 36
|
---|
806 | door_lock 36
|
---|
807 | }
|
---|
808 | particle muroplane_prop do start
|
---|
809 | particle rotorwash do start
|
---|
810 | ai2_spawn Hangar2_tanker_1
|
---|
811 | ai2_spawn alarm_striker_1
|
---|
812 | target_set 1054 30
|
---|
813 | }
|
---|
814 |
|
---|
815 | #console 4
|
---|
816 | func void raise_alarm(string char_index)
|
---|
817 | {
|
---|
818 | ai2_dopath alarm_striker_1 alarm_striker_1a 1
|
---|
819 | fork alarm_sound_script
|
---|
820 | }
|
---|
821 |
|
---|
822 | func void alarm_sound_script(void)
|
---|
823 | {
|
---|
824 | sound_ambient_start alarm_loop
|
---|
825 | sleep 900
|
---|
826 | sound_ambient_stop alarm_loop
|
---|
827 | }
|
---|
828 |
|
---|
829 | #tv35 - in front of door 42
|
---|
830 | func void alarm_patrol(string char_index)
|
---|
831 | {
|
---|
832 | ai2_dopath alarm_striker_1 alarm_striker_1b 1
|
---|
833 | }
|
---|
834 |
|
---|
835 | #tv37 - in some distance after door 42
|
---|
836 | func void final_muro(string char_index)
|
---|
837 | {
|
---|
838 | ai2_spawn muro2
|
---|
839 | ai2_spawn escort_striker3
|
---|
840 | ai2_spawn escort_striker4
|
---|
841 | playback escort_striker3 final_escort3
|
---|
842 | playback escort_striker4 final_escort4
|
---|
843 | playback muro2 final_muro
|
---|
844 | sleep 960
|
---|
845 | chr_delete muro2
|
---|
846 | chr_delete escort_striker3
|
---|
847 | sleep 60
|
---|
848 | chr_delete escort_striker4
|
---|
849 | }
|
---|
850 |
|
---|
851 | #tv38 - on the last but one platform; at the beginning of the last part of the ramp
|
---|
852 | func void Hangar2b(string char_index)
|
---|
853 | {
|
---|
854 | ai2_spawn Hangar2_Striker_3
|
---|
855 | ai2_spawn Hangar2_Striker_4
|
---|
856 | ai2_spawn Hangar2_Striker_5
|
---|
857 | }
|
---|
858 |
|
---|
859 | #lose func of Hangar2_Striker_5
|
---|
860 | func void striker_showdown_1(string ai_name)
|
---|
861 | {
|
---|
862 | striker_showdown_3
|
---|
863 | }
|
---|
864 |
|
---|
865 | #lose func of Hangar2_Striker_4
|
---|
866 | func void striker_showdown_2(string ai_name)
|
---|
867 | {
|
---|
868 | striker_showdown_3
|
---|
869 | }
|
---|
870 |
|
---|
871 | #lose func of Hangar2_Striker_3
|
---|
872 | func void striker_showdown_3(string ai_name)
|
---|
873 | {
|
---|
874 | var_counter = var_counter + 1
|
---|
875 | if(var_counter eq 3)
|
---|
876 | {
|
---|
877 | trigvolume_enable rappel_point 1
|
---|
878 | particle rappel create
|
---|
879 | target_set 1054 30
|
---|
880 | music_stop
|
---|
881 | }
|
---|
882 | }
|
---|
883 |
|
---|
884 | #tv10 - at the rappel point
|
---|
885 | func void lsi_check_2(string ai_name)
|
---|
886 | {
|
---|
887 | fade_out 0 0 0 30
|
---|
888 | sleep 30
|
---|
889 | win
|
---|
890 | }
|
---|
891 |
|
---|
892 | #####################
|
---|
893 | ### TEXT CONSOLES ###
|
---|
894 | #####################
|
---|
895 |
|
---|
896 | func void level6a(void)
|
---|
897 | {
|
---|
898 | text_console level_6a
|
---|
899 | console_reset 16
|
---|
900 | }
|
---|
901 |
|
---|
902 | func void level6b(void)
|
---|
903 | {
|
---|
904 | text_console level_6b
|
---|
905 | console_reset 9
|
---|
906 | }
|
---|
907 |
|
---|
908 | func void level6c(void)
|
---|
909 | {
|
---|
910 | text_console level_6c
|
---|
911 | console_reset 13
|
---|
912 | }
|
---|
913 |
|
---|
914 | func void level6d(void)
|
---|
915 | {
|
---|
916 | text_console level_6d
|
---|
917 | console_reset 17
|
---|
918 | }
|
---|
919 |
|
---|
920 | func void level6e(void)
|
---|
921 | {
|
---|
922 | text_console level_6e
|
---|
923 | console_reset 5
|
---|
924 | }
|
---|
925 |
|
---|
926 | func void level6f(void)
|
---|
927 | {
|
---|
928 | text_console level_6f
|
---|
929 | console_reset 2
|
---|
930 | }
|
---|