[185] | 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 | }
|
---|