[185] | 1 | ############
|
---|
| 2 | ### MAIN ###
|
---|
| 3 | ############
|
---|
| 4 |
|
---|
| 5 | func void main(void)
|
---|
| 6 | {
|
---|
| 7 | gl_fog_red = 0
|
---|
| 8 | gl_fog_blue = 0
|
---|
| 9 | gl_fog_green = 0
|
---|
| 10 | gl_fog_start = .995
|
---|
| 11 | gs_farclipplane_set 5000
|
---|
| 12 | ui_suppress_prompt = 1
|
---|
| 13 | chr_auto_aim_dist = 0
|
---|
| 14 | start
|
---|
| 15 | }
|
---|
| 16 |
|
---|
| 17 | #############
|
---|
| 18 | ### START ###
|
---|
| 19 | #############
|
---|
| 20 |
|
---|
| 21 | func void start(string ai_name)
|
---|
| 22 | {
|
---|
| 23 | fork deactivate_stuff
|
---|
| 24 | if(save_point eq 0) save_point = 1
|
---|
| 25 | if(save_point eq 1) fork intro
|
---|
| 26 | if(save_point eq 2) fork load_s2
|
---|
| 27 | if(save_point eq 3) fork load_s3
|
---|
| 28 | if(save_point eq 4) fork load_s4_all
|
---|
| 29 | sleep 5
|
---|
| 30 | fork sp_all
|
---|
| 31 | }
|
---|
| 32 |
|
---|
| 33 | func void deactivate_stuff(void)
|
---|
| 34 | {
|
---|
| 35 | #not used
|
---|
| 36 | trigvolume_enable trigger_volume_02 0
|
---|
| 37 | trigvolume_enable trigger_volume_03 0
|
---|
| 38 | trigvolume_enable trigger_volume_04 0
|
---|
| 39 | trigvolume_enable trigger_volume_04_copy 0
|
---|
| 40 | trigvolume_enable trigger_volume_05 0
|
---|
| 41 | trigvolume_enable trigger_volume_06 0
|
---|
| 42 | trigvolume_enable trigger_volume_07 0
|
---|
| 43 | trigvolume_enable trigger_volume_07_copy 0
|
---|
| 44 | trigvolume_enable trigger_volume_08 0
|
---|
| 45 | trigvolume_enable trigger_volume_08_copy2 0
|
---|
| 46 | trigvolume_enable trigger_volume_08_copy2_copy 0
|
---|
| 47 | trigvolume_enable trigger_volume_08_copy2_copy_copy 0
|
---|
| 48 | trigvolume_enable trigger_volume_10_copy 0
|
---|
| 49 | trigvolume_enable trigger_volume_10_copy_copy 0
|
---|
| 50 | trigvolume_enable trigger_volume_11 0
|
---|
| 51 | trigvolume_enable trigger_volume_23 0
|
---|
| 52 | trigvolume_enable trigger_volume_23_copy 0
|
---|
| 53 | trigvolume_enable trigger_volume_26 0
|
---|
| 54 | trigvolume_enable trigger_volume_29_copy 0
|
---|
| 55 | trigvolume_enable trigger_volume_30 0
|
---|
| 56 | trigvolume_enable trigger_volume_31 0
|
---|
| 57 | trigvolume_enable trigger_volume_32 0
|
---|
| 58 | trigvolume_enable trigger_volume_33 0
|
---|
| 59 | trigvolume_enable trigger_volume_35 0
|
---|
| 60 | trigvolume_enable trigger_volume_44 0
|
---|
| 61 | trigvolume_enable trigger_volume_46 0
|
---|
| 62 | trigvolume_enable trigger_volume_46_copy 0
|
---|
| 63 | trigvolume_enable trigger_volume_46_copy2 0
|
---|
| 64 | trigvolume_enable trigger_volume_46_copy3 0
|
---|
| 65 | trigvolume_enable trigger_volume_46_copy_copy 0
|
---|
| 66 | trigvolume_enable trigger_volume_46_copy4 0
|
---|
| 67 | trigvolume_enable trigger_volume_46_copy4_copy 0
|
---|
| 68 | trigvolume_enable trigger_volume_52 0
|
---|
| 69 | trigvolume_enable trigger_volume_56 0
|
---|
| 70 | trigvolume_enable trigger_volume_60 0
|
---|
| 71 | trigvolume_enable trigger_volume_61 0
|
---|
| 72 | trigvolume_enable trigger_volume_65 0
|
---|
| 73 | trigvolume_enable trigger_volume_77 0
|
---|
| 74 | trigvolume_enable trigger_volume_78 0
|
---|
| 75 | trigvolume_enable trigger_volume_80 0
|
---|
| 76 | trigvolume_enable trigger_volume_83 0
|
---|
| 77 | trigvolume_enable trigger_volume_84 0
|
---|
| 78 | #used
|
---|
| 79 | env_show 31 0
|
---|
| 80 | env_show 41 0
|
---|
| 81 | env_shade 1500 1501 .9 .8 .9
|
---|
| 82 | }
|
---|
| 83 |
|
---|
| 84 | func void you_lose(string ai_name)
|
---|
| 85 | {
|
---|
| 86 | fade_out 0 0 0 30
|
---|
| 87 | sleep 30
|
---|
| 88 | lose
|
---|
| 89 | }
|
---|
| 90 |
|
---|
| 91 | ####################################
|
---|
| 92 | ### SEVERAL TIMES USED FUNCTIONS ###
|
---|
| 93 | ####################################
|
---|
| 94 |
|
---|
| 95 | func void sp_all(void)
|
---|
| 96 | {
|
---|
| 97 | co_message_display = 0
|
---|
| 98 | if(save_point eq 1) save_game 1 autosave
|
---|
| 99 | if(save_point eq 2) save_game 2 autosave
|
---|
| 100 | if(save_point eq 3) save_game 3 autosave
|
---|
| 101 | if(save_point eq 4) save_game 4 autosave
|
---|
| 102 | sleep 180
|
---|
| 103 | co_message_display = 1
|
---|
| 104 | }
|
---|
| 105 |
|
---|
| 106 | func void remove_ai(void)
|
---|
| 107 | {
|
---|
| 108 | ai2_kill
|
---|
| 109 | sleep 60
|
---|
| 110 | powerup_reset
|
---|
| 111 | weapon_reset
|
---|
| 112 | sleep 240
|
---|
| 113 | corpse_reset
|
---|
| 114 | }
|
---|
| 115 |
|
---|
| 116 | func void music_stop(void)
|
---|
| 117 | {
|
---|
| 118 | sound_music_stop mus_cool19
|
---|
| 119 | sound_music_stop mus_atm_cl12lp
|
---|
| 120 | sound_music_stop mus_low1
|
---|
| 121 | sound_music_stop mus_fitec
|
---|
| 122 | }
|
---|
| 123 |
|
---|
| 124 | #tv63 to tv73
|
---|
| 125 | func void deathfall(void)
|
---|
| 126 | {
|
---|
| 127 | sleep 30
|
---|
| 128 | cm_detach
|
---|
| 129 | sleep 30
|
---|
| 130 | chr_set_health 0 0
|
---|
| 131 | }
|
---|
| 132 |
|
---|
| 133 | ##########
|
---|
| 134 | ### SP1 ###
|
---|
| 135 | ##########
|
---|
| 136 |
|
---|
| 137 | ### 1ST ROOF ###
|
---|
| 138 |
|
---|
| 139 | func void intro(void)
|
---|
| 140 | {
|
---|
| 141 | playback 0 IntroKonoko
|
---|
| 142 | if(save_point ne 1) save_game 1 autosave
|
---|
| 143 | chr_envanim_stop IntroNinja
|
---|
| 144 | chr_teleport IntroNinja 600
|
---|
| 145 | chr_facetoflag IntroNinja 600
|
---|
| 146 | chr_animate IntroNinja NINCOMcrouch_idle
|
---|
| 147 | ai2_passive IntroNinja 1
|
---|
| 148 | ai2_setmovementmode IntroNinja creep
|
---|
| 149 | sleep 40
|
---|
| 150 | playback_block IntroNinja IntroNinja
|
---|
| 151 | ai2_passive IntroNinja 0
|
---|
| 152 | ai2_attack IntroNinja 0
|
---|
| 153 | ai2_setalert A_Sr9 combat
|
---|
| 154 | ai2_setjobstate A_Sr9
|
---|
| 155 | objective_set 1 silent
|
---|
| 156 | target_set 7006 0
|
---|
| 157 | }
|
---|
| 158 |
|
---|
| 159 | #tv29 - crossing point to the lower floor
|
---|
| 160 | func void t22(string ai_name)
|
---|
| 161 | {
|
---|
| 162 | ai2_dopath IntroNinja patrol_39
|
---|
| 163 | ai2_setjobstate IntroNinja
|
---|
| 164 | }
|
---|
| 165 |
|
---|
| 166 | #tv32 - box on the right side (enter func: t33in, levae func: t33out); I've disabled it
|
---|
| 167 | #tv31 - box on the left side (enter func: t32in, levae func: t32out); I've disabled it
|
---|
| 168 |
|
---|
| 169 | #tv1 - above the abyss
|
---|
| 170 | func void t1(string ai_name)
|
---|
| 171 | {
|
---|
| 172 | ai2_dopath IntroNinja patrol_40
|
---|
| 173 | ai2_setjobstate IntroNinja
|
---|
| 174 | ai2_dopath A_N1 patrol_02
|
---|
| 175 | ai2_setjobstate A_N1
|
---|
| 176 | ai2_dopath A_Sr9 patrol_09
|
---|
| 177 | ai2_setjobstate A_Sr9
|
---|
| 178 | ai2_spawn A_N7
|
---|
| 179 | ai2_spawn A_N8
|
---|
| 180 | }
|
---|
| 181 |
|
---|
| 182 | func void patrolscript0001(string ai_name)
|
---|
| 183 | {
|
---|
| 184 | playback_block IntroNinja ninja_jump5 interp 30
|
---|
| 185 | }
|
---|
| 186 |
|
---|
| 187 | func void patrolscript0022(string ai_name)
|
---|
| 188 | {
|
---|
| 189 | playback_block IntroNinja ninja_jump4 interp 20
|
---|
| 190 | }
|
---|
| 191 |
|
---|
| 192 | func void patrolscript0002(string ai_name)
|
---|
| 193 | {
|
---|
| 194 | playback_block A_N1 ninja_jump interp 30
|
---|
| 195 | }
|
---|
| 196 |
|
---|
| 197 | func void patrolscript0005(string ai_name)
|
---|
| 198 | {
|
---|
| 199 | playback_block A_T4 tanker1 interp 20
|
---|
| 200 | }
|
---|
| 201 |
|
---|
| 202 | func void patrolscript0004(string ai_name)
|
---|
| 203 | {
|
---|
| 204 | playback_block A_T6 tanker2 interp 20
|
---|
| 205 | }
|
---|
| 206 |
|
---|
| 207 | ### 2ND ROOF ###
|
---|
| 208 |
|
---|
| 209 | #tv55 - after the abyss, at the beginning of the 2nd roof (enter func: t57, leave func: t57b); I've disabled it
|
---|
| 210 |
|
---|
| 211 | ### 3RD ROOF ###
|
---|
| 212 |
|
---|
| 213 | #tv56 - after the abyss, at the beginning of the 3rd roof
|
---|
| 214 | func void t58(string ai_name)
|
---|
| 215 | {
|
---|
| 216 | sound_music_start mus_cool19 0.0
|
---|
| 217 | sound_music_volume mus_cool19 0.75 3.0
|
---|
| 218 | ai2_dopath IntroNinja patrol_51
|
---|
| 219 | ai2_setjobstate IntroNinja
|
---|
| 220 | ai2_dopath A_N1 patrol_50
|
---|
| 221 | ai2_setjobstate A_N1
|
---|
| 222 | ai2_dopath A_Sr9 patrol_49
|
---|
| 223 | ai2_setjobstate A_Sr9
|
---|
| 224 | ai2_spawn A_C5
|
---|
| 225 | ai2_spawn A_Sr3
|
---|
| 226 | ai2_spawn A_T4
|
---|
| 227 | ai2_spawn A_T6
|
---|
| 228 | particle b01_rain1 do start
|
---|
| 229 | particle b01_rain2 do start
|
---|
| 230 | particle b01_rain3 do start
|
---|
| 231 | }
|
---|
| 232 |
|
---|
| 233 | #tv35 - after tv56 (func: rain1); I've disabled it
|
---|
| 234 |
|
---|
| 235 | ### 4TH ROOF ###
|
---|
| 236 |
|
---|
| 237 | #tv4 - at the right side of the mast (func: t3); I've disabled it
|
---|
| 238 | #tv2 - at the left side of the mast (func: t2); I've disabled it
|
---|
| 239 |
|
---|
| 240 | ### 5TH ROOF ###
|
---|
| 241 |
|
---|
| 242 | #tv57 - after the abyss, at the beginning of the 5th roof (enter func: t59, leave func: t59b); I've disabled it
|
---|
| 243 | #tv5 - on the right side after tv59 (func: t5); I've disabled it
|
---|
| 244 | #tv4 - on the left side after tv59 (func: t4); I've disabled it
|
---|
| 245 | #lose func of A_T4 and A_T6: music_stop
|
---|
| 246 | #tv6 - around the place, where you find the hypo (func: t6); I've disabled it
|
---|
| 247 | #tv7 - in front of the staircase to the higher floor (funnc: b01); not used
|
---|
| 248 | #tv30 - under the passageway; near the place, where you find the shield (func: t31); I've disabled it
|
---|
| 249 | #tv33 - after tv7 (func: t7); I've disabled it
|
---|
| 250 | #tv34 - after tv33, on the right side after the staircase (func: b02); not used
|
---|
| 251 | #tv8 - in front of tv38 (func: rain1); I've disabled it
|
---|
| 252 | #tv37 - in front of tv38 (func: rain2); I've disabled it
|
---|
| 253 |
|
---|
| 254 | #tv36 - in front of the passage, from the left side to the right side
|
---|
| 255 | func void t8(string ai_name)
|
---|
| 256 | {
|
---|
| 257 | music_stop
|
---|
| 258 | chr_delete IntroNinja
|
---|
| 259 | chr_delete A_N1
|
---|
| 260 | chr_delete A_Sr9
|
---|
| 261 | ai2_spawn B_Sr10
|
---|
| 262 | ai2_spawn B_Sr10a
|
---|
| 263 | ai2_spawn B_R11
|
---|
| 264 | ai2_spawn B_R12a
|
---|
| 265 | ai2_spawn B_Sr12
|
---|
| 266 | ai2_spawn B_T13
|
---|
| 267 | ai2_dopath A_T6 patrol_42
|
---|
| 268 | ai2_setjobstate A_T6
|
---|
| 269 | ai2_dopath A_T4 patrol_42
|
---|
| 270 | ai2_setjobstate A_T4
|
---|
| 271 | ai2_setjobstate A_Sr3
|
---|
| 272 | ai2_setjobstate A_C5
|
---|
| 273 | ai2_dopath A_N7 patrol_45
|
---|
| 274 | ai2_setjobstate A_N7
|
---|
| 275 | ai2_dopath A_N8 patrol_45
|
---|
| 276 | ai2_setjobstate A_N8
|
---|
| 277 | }
|
---|
| 278 |
|
---|
| 279 | func void patrolscript0011(string ai_name)
|
---|
| 280 | {
|
---|
| 281 | playback_block B_T13 tanker_jump interp 30
|
---|
| 282 | }
|
---|
| 283 |
|
---|
| 284 | #tv39 - in the middle of the passage, from the left side to the right side (func: rain2); I've disabled it)
|
---|
| 285 | #tv38 - in the middle of the passage, after tv39, from the left side to the right side (func: rain3); I've disabled it)
|
---|
| 286 |
|
---|
| 287 | #tv80 - after the passage, from the left side to the right side
|
---|
| 288 | func void runup(void)
|
---|
| 289 | {
|
---|
| 290 | ai2_dopath B_Sr10 patrol_10z
|
---|
| 291 | ai2_setjobstate B_Sr10
|
---|
| 292 | particle b02_rain1 do start
|
---|
| 293 | particle b02_rain2 do start
|
---|
| 294 | particle b02_rain3 do start
|
---|
| 295 | }
|
---|
| 296 |
|
---|
| 297 | ### 6TH ROOF ###
|
---|
| 298 |
|
---|
| 299 | #tv9 - at the beginning of the 6th roof, from the left side to the right side
|
---|
| 300 | func void t10(string ai_name)
|
---|
| 301 | {
|
---|
| 302 | sound_dialog_play c11_39_03konoko
|
---|
| 303 | ai2_spawn B_SuperNinja
|
---|
| 304 | chr_boss_shield B_SuperNinja
|
---|
| 305 | chr_unstoppable B_SuperNinja 1
|
---|
| 306 | chr_neutral B_SuperNinja 1
|
---|
| 307 | playback_block B_SuperNinja superninja1 interp 20
|
---|
| 308 | sleep 60
|
---|
| 309 | chr_delete B_SuperNinja
|
---|
| 310 | }
|
---|
| 311 |
|
---|
| 312 | #tv85 - at the same place as tv9 (enter func: t83, leave func: t83b); I've disabled it
|
---|
| 313 | #tv41 - after tv85, from the left side to the right side (func: rain4); I've disabled it
|
---|
| 314 | #tv40 - in some distance after tv 85, from the left side to the right side (enter func: rain5, leave func: t77); I've disabled it
|
---|
| 315 | #tv58 - at the end of the 6th roof, where you can jump to the 7th roof (eneter func: t60, leave func: t60b); I've disabled it
|
---|
| 316 |
|
---|
| 317 | ### 7TH ROOF ###
|
---|
| 318 |
|
---|
| 319 | #t42 - at the beginning of the 7th roof
|
---|
| 320 | func void t11(string ai_name)
|
---|
| 321 | {
|
---|
| 322 | ai2_spawn C_N17
|
---|
| 323 | ai2_spawn C_N18
|
---|
| 324 | ai2_dopath B_T13 patrol_41
|
---|
| 325 | ai2_setjobstate B_T13
|
---|
| 326 | particle el1_locklight01 do start
|
---|
| 327 | particle b03_rain1 do start
|
---|
| 328 | particle b03_rain2 do start
|
---|
| 329 | particle b03_rain3 do start
|
---|
| 330 | }
|
---|
| 331 |
|
---|
| 332 | #tv10 - after tv42 (func: rain6); I've disabled it
|
---|
| 333 |
|
---|
| 334 | #tv74 - around the entrance of the elavator and in the elevator; used to count the enemies inside it; see next func
|
---|
| 335 |
|
---|
| 336 | #tv11 - in the middle of the elevator
|
---|
| 337 | func void t12(string ai_name)
|
---|
| 338 | {
|
---|
| 339 | trigvolume_enable trigger_volume_12 0
|
---|
| 340 | if(trigvolume_count(62) eq 0) Elevator
|
---|
| 341 | else
|
---|
| 342 | {
|
---|
| 343 | sleep 60
|
---|
| 344 | trigvolume_enable trigger_volume_12 1
|
---|
| 345 | }
|
---|
| 346 | }
|
---|
| 347 |
|
---|
| 348 | ##########
|
---|
| 349 | ### SP2 ###
|
---|
| 350 | ##########
|
---|
| 351 |
|
---|
| 352 | func void Elevator(void)
|
---|
| 353 | {
|
---|
| 354 | sound_dialog_play c11_39_02konoko
|
---|
| 355 | fade_out 0 0 0 30
|
---|
| 356 | sleep 30
|
---|
| 357 | load_s2
|
---|
| 358 | chr_facetoflag 0 44
|
---|
| 359 | chr_teleport 0 44
|
---|
| 360 | fade_in 30
|
---|
| 361 | }
|
---|
| 362 |
|
---|
| 363 | func void load_s2(void)
|
---|
| 364 | {
|
---|
| 365 | fork remove_ai
|
---|
| 366 | if(save_point eq 2) restore_game
|
---|
| 367 | ai2_spawn C_Sr15
|
---|
| 368 | ai2_spawn C_T16
|
---|
| 369 | ai2_spawn C_R55
|
---|
| 370 | ai2_spawn C_N57
|
---|
| 371 | ai2_spawn D_C19
|
---|
| 372 | ai2_spawn D_Sb20
|
---|
| 373 | ai2_spawn D_R21
|
---|
| 374 | env_show 31 1
|
---|
| 375 | objective_set 1 silent
|
---|
| 376 | target_set 47 0
|
---|
| 377 | }
|
---|
| 378 |
|
---|
| 379 | ### 1ST ROOF ###
|
---|
| 380 |
|
---|
| 381 | func void patrolscript0077(string ai_name)
|
---|
| 382 | {
|
---|
| 383 | ai2_dopath D_R21 patrol_21
|
---|
| 384 | ai2_setjobstate D_R21
|
---|
| 385 | }
|
---|
| 386 |
|
---|
| 387 | #tv12 - after door 3
|
---|
| 388 | func void s2(string ai_name)
|
---|
| 389 | {
|
---|
| 390 | if(save_point eq 2)
|
---|
| 391 | {
|
---|
| 392 | particle b03_rain1 do start
|
---|
| 393 | particle b03_rain2 do start
|
---|
| 394 | particle b03_rain3 do start
|
---|
| 395 | }
|
---|
| 396 | else
|
---|
| 397 | {
|
---|
| 398 | save_game 2 autosave
|
---|
| 399 | particle b01_rain1 do stop
|
---|
| 400 | particle b01_rain2 do stop
|
---|
| 401 | particle b01_rain3 do stop
|
---|
| 402 | particle b02_rain1 do stop
|
---|
| 403 | particle b02_rain2 do stop
|
---|
| 404 | particle b02_rain3 do stop
|
---|
| 405 | }
|
---|
| 406 | }
|
---|
| 407 |
|
---|
| 408 | #tv75 - after the stairs to the higher floor (func: t65); I've disabled it
|
---|
| 409 |
|
---|
| 410 | ### 2ND ROOF ###
|
---|
| 411 |
|
---|
| 412 | #tv43 - complete 2nd roof (func: rain7); I've disabled it
|
---|
| 413 | #tv48 - above the abyss, crossing from the 2nd roof to the 3rd roof (func: rain9); I've disabled it
|
---|
| 414 |
|
---|
| 415 | ### 3RD ROOF ###
|
---|
| 416 |
|
---|
| 417 | #tv17 - at the beginning of the 3rd roof
|
---|
| 418 | func void t18(string ai_name)
|
---|
| 419 | {
|
---|
| 420 | sound_music_start mus_atm_cl12lp 0.0
|
---|
| 421 | sound_music_volume mus_atm_cl12lp 0.75 3.0
|
---|
| 422 | particle b04_rain1 do start
|
---|
| 423 | particle b04_rain2 do start
|
---|
| 424 | particle b04_rain3 do start
|
---|
| 425 | particle b04_rain4 do start
|
---|
| 426 | particle b04_rain5 do start
|
---|
| 427 | particle b04_rain6 do start
|
---|
| 428 | }
|
---|
| 429 |
|
---|
| 430 | #tv48 - at the same place as tv17 (func: rain9); I've disabled it
|
---|
| 431 | #tv45 - in some distance after tv48 (func: rain10); I've disabled it
|
---|
| 432 | #tv46 - in some distance after tv45 (func: rain11); I've disabled it
|
---|
| 433 | #tv47 - in some distance after tv46 (func: rain12); I've disabled it
|
---|
| 434 | #tv53 - in some distance after tv47 (func: rain12); I've disabled it
|
---|
| 435 | #tv49 - in some distance after tv53 (func: rain13); I've disabled it
|
---|
| 436 | #tv76 - in some distance in front of of the end of the right "colonnade" (func: t77); I've disabled it
|
---|
| 437 | #tv77 - at the end of the left "colonnade" (func: t78); I've disabled it
|
---|
| 438 |
|
---|
| 439 | #tv13 - at the end of the 3rd roof
|
---|
| 440 | func void t14(string ai_name)
|
---|
| 441 | {
|
---|
| 442 | music_stop
|
---|
| 443 | ai2_spawn D_Sb22
|
---|
| 444 | ai2_spawn D_Sb23
|
---|
| 445 | ai2_spawn D_Sr24
|
---|
| 446 | ai2_spawn D_Sr38
|
---|
| 447 | ai2_spawn D_C60
|
---|
| 448 | ai2_dopath D_Sb20 patrol_35
|
---|
| 449 | target_set 1 0
|
---|
| 450 | particle b06_rain1 do start
|
---|
| 451 | particle b06_rain2 do start
|
---|
| 452 | particle b06_rain3 do start
|
---|
| 453 | particle b06_rain4 do start
|
---|
| 454 | particle b06_rain5 do start
|
---|
| 455 | particle b06_rain6 do start
|
---|
| 456 | }
|
---|
| 457 |
|
---|
| 458 | ### 4TH ROOF ###
|
---|
| 459 |
|
---|
| 460 | func void patrolscript0014(string ai_name)
|
---|
| 461 | {
|
---|
| 462 | playback_block D_Sb20 striker_jump interp 20
|
---|
| 463 | }
|
---|
| 464 |
|
---|
| 465 | #tv27 - ground floor, left passage, some distance after the beginning of the 2nd "block" (func: t30); I've disabled it
|
---|
| 466 |
|
---|
| 467 | #after the beginning of the center passage
|
---|
| 468 | func void t19(string ai_name)
|
---|
| 469 | {
|
---|
| 470 | sound_music_start mus_low1 0.0
|
---|
| 471 | sound_music_start mus_low1 0.75 3
|
---|
| 472 | ai2_spawn D_N25
|
---|
| 473 | ai2_spawn C_R61
|
---|
| 474 | }
|
---|
| 475 |
|
---|
| 476 | #t19 - at the end of the center passage, after the left corner
|
---|
| 477 | func void t20(string ai_name)
|
---|
| 478 | {
|
---|
| 479 | music_stop
|
---|
| 480 | ai2_spawn D_Sr26
|
---|
| 481 | ai2_spawn D_Sr27
|
---|
| 482 | ai2_spawn D_T28
|
---|
| 483 | }
|
---|
| 484 |
|
---|
| 485 | #tv54 - at the beginning of the stairs, where the tanker waits (func: cloudkiller); not used
|
---|
| 486 |
|
---|
| 487 | #t14 - next to last floor of the stairs
|
---|
| 488 | func void t15(string ai_name)
|
---|
| 489 | {
|
---|
| 490 | powerup_spawn lsi 605
|
---|
| 491 | ai2_spawn E_N14
|
---|
| 492 | ai2_spawn E_N14a
|
---|
| 493 | ai2_passive E_N14 1
|
---|
| 494 | ai2_spawn NinjaZip
|
---|
| 495 | ai2_passive NinjaZip 1
|
---|
| 496 | chr_unstoppable NinjaZip 1
|
---|
| 497 | playback NinjaZip NinjaZipSet
|
---|
| 498 | playback E_N14 Ninja02Set
|
---|
| 499 | }
|
---|
| 500 |
|
---|
| 501 | #tv15 - after the stairs
|
---|
| 502 | func void NinjaZip(void)
|
---|
| 503 | {
|
---|
| 504 | chr_envanim NinjaZip ZipNinjaBipBox norotation
|
---|
| 505 | chr_animate NinjaZip NINJAlev12_zip
|
---|
| 506 | obj_create 72
|
---|
| 507 | env_anim 72
|
---|
| 508 | sleep 60
|
---|
| 509 | playback E_N14 Ninja02Jump
|
---|
| 510 | sleep 80
|
---|
| 511 | ai2_passive E_N14 0
|
---|
| 512 | sleep 100
|
---|
| 513 | playback NinjaZip NinjaZipLeave
|
---|
| 514 | sleep 120
|
---|
| 515 | chr_delete NinjaZip
|
---|
| 516 | objective_set 2 silent
|
---|
| 517 | target_set 7006 0
|
---|
| 518 | }
|
---|
| 519 |
|
---|
| 520 | #tv84 - around the place, where you find the zipline rider
|
---|
| 521 | func void t28(string ai_name)
|
---|
| 522 | {
|
---|
| 523 | chr_wait_animtype char_0 Pickup_Object
|
---|
| 524 | particle obj_zip create
|
---|
| 525 | }
|
---|
| 526 |
|
---|
| 527 | #tv87 - at the end of the secret way
|
---|
| 528 | func void t85(string ai_name)
|
---|
| 529 | {
|
---|
| 530 | ai2_spawn sbg_ninja
|
---|
| 531 | }
|
---|
| 532 |
|
---|
| 533 | #tv16 - at the place with the yellow flashing circle
|
---|
| 534 | func void t17(string ai_name)
|
---|
| 535 | {
|
---|
| 536 | if(chr_has_lsi(0)) KonokoZip
|
---|
| 537 | }
|
---|
| 538 |
|
---|
| 539 | func void KonokoZip(void)
|
---|
| 540 | {
|
---|
| 541 | particle obj_zip kill
|
---|
| 542 | chr_envanim 0 ZipKonBipBox norotation
|
---|
| 543 | chr_animate 0 KONOKOlev12_zip
|
---|
| 544 | obj_create 71
|
---|
| 545 | env_anim 71
|
---|
| 546 | sleep 55
|
---|
| 547 | sound_ambient_start c08_11_19zip
|
---|
| 548 | sleep 235
|
---|
| 549 | obj_kill 72
|
---|
| 550 | chr_peace 0
|
---|
| 551 | objective_set 3 silent
|
---|
| 552 | target_set 7006 0
|
---|
| 553 | chr_delete D_C19
|
---|
| 554 | chr_delete D_C60
|
---|
| 555 | chr_delete D_N25
|
---|
| 556 | chr_delete D_R21
|
---|
| 557 | chr_delete D_Sb20
|
---|
| 558 | chr_delete D_Sb22
|
---|
| 559 | chr_delete D_Sb23
|
---|
| 560 | chr_delete D_Sr24
|
---|
| 561 | chr_delete D_Sr26
|
---|
| 562 | chr_delete D_Sr27
|
---|
| 563 | chr_delete D_Sr38
|
---|
| 564 | particle b04_rain1 do stop
|
---|
| 565 | particle b04_rain2 do stop
|
---|
| 566 | particle b04_rain3 do stop
|
---|
| 567 | particle b04_rain4 do stop
|
---|
| 568 | particle b04_rain5 do stop
|
---|
| 569 | particle b04_rain6 do stop
|
---|
| 570 | }
|
---|
| 571 |
|
---|
| 572 | func void load_s3(void)
|
---|
| 573 | {
|
---|
| 574 | restore_game
|
---|
| 575 | particle b06_rain1 do start
|
---|
| 576 | zip_rider
|
---|
| 577 | }
|
---|
| 578 |
|
---|
| 579 | func void zip_rider(void)
|
---|
| 580 | {
|
---|
| 581 | ai2_spawn E_N14
|
---|
| 582 | ai2_spawn E_N14a
|
---|
| 583 | obj_create 71
|
---|
| 584 | env_anim 71
|
---|
| 585 | chr_envanim_block E_N14a ZipKonBipBox norotation
|
---|
| 586 | chr_animate_block E_N14a KONOKOlev12_zip
|
---|
| 587 | sleep 60
|
---|
| 588 | obj_create 72
|
---|
| 589 | env_anim 72
|
---|
| 590 | chr_envanim_block E_N14 ZipKonBipBox norotation
|
---|
| 591 | chr_animate_block E_N14 KONOKOlev12_zip
|
---|
| 592 | sleep 230
|
---|
| 593 | ai2_attack E_N14a char_0
|
---|
| 594 | sleep 60
|
---|
| 595 | obj_kill 71
|
---|
| 596 | ai2_attack E_N14 char_0
|
---|
| 597 | }
|
---|
| 598 |
|
---|
| 599 | ##########
|
---|
| 600 | ### SP3 ###
|
---|
| 601 | ##########
|
---|
| 602 |
|
---|
| 603 | ### 1ST ROOF ###
|
---|
| 604 |
|
---|
| 605 | #tv59 - the place, where you arrive with your zip rider (func: set_objective_2); I've disabled it
|
---|
| 606 |
|
---|
| 607 | #tv78 - after tv59
|
---|
| 608 | func void s3(string ai_name)
|
---|
| 609 | {
|
---|
| 610 | if(save_point ne 3)
|
---|
| 611 | {
|
---|
| 612 | save_game 3 autosave
|
---|
| 613 | zip_rider
|
---|
| 614 | }
|
---|
| 615 | objective_set 3 silent
|
---|
| 616 | target_set 7006 0
|
---|
| 617 | }
|
---|
| 618 |
|
---|
| 619 | #tv24 - in some distance after tv59 (func: rain17); I've disabled it
|
---|
| 620 |
|
---|
| 621 | #tv28 - at the beginning of the passageway
|
---|
| 622 | func void t9(string ai_name)
|
---|
| 623 | {
|
---|
| 624 | ai2_spawn E_C62
|
---|
| 625 | playback E_C62 com
|
---|
| 626 | ai2_spawn E_N37
|
---|
| 627 | ai2_makeignoreplayer E_N37 1
|
---|
| 628 | playback_block E_N37 ninja_jump2
|
---|
| 629 | ai2_makeignoreplayer E_N37 0
|
---|
| 630 | ai2_attack E_N37 char_0
|
---|
| 631 | }
|
---|
| 632 |
|
---|
| 633 | #tv50 - at the beginning of the passageway (func: rain18); I've disabled it
|
---|
| 634 |
|
---|
| 635 | #tv20 - at the same place as tv50
|
---|
| 636 | func void t21(string ai_name)
|
---|
| 637 | {
|
---|
| 638 | sound_dialog_play c11_39_04konoko
|
---|
| 639 | ai2_spawn E_N29
|
---|
| 640 | ai2_spawn E_Sb31
|
---|
| 641 | ai2_spawn E_Sr63
|
---|
| 642 | ai2_spawn E_Sr64
|
---|
| 643 | ai2_spawn E_R65
|
---|
| 644 | ai2_spawn E_SuperNinja
|
---|
| 645 | chr_boss_shield E_SuperNinja
|
---|
| 646 | chr_unstoppable E_SuperNinja
|
---|
| 647 | playback_block E_SuperNinja superninja2 interp 20
|
---|
| 648 | sleep 60
|
---|
| 649 | chr_delete E_SuperNinja
|
---|
| 650 | }
|
---|
| 651 |
|
---|
| 652 | #tv79 - around the place, where you find the hypo (func: t80); I've disabled it
|
---|
| 653 |
|
---|
| 654 | ### 2ND ROOF ###
|
---|
| 655 |
|
---|
| 656 | #tv26 - on the next to last floor
|
---|
| 657 | func void t29(string ai_name)
|
---|
| 658 | {
|
---|
| 659 | sound_dialog_play c11_39_05konoko
|
---|
| 660 | }
|
---|
| 661 |
|
---|
| 662 | #tv86 - at the beginning of the highest floor (enter func: t84, leave func: t84b); I've disabled it
|
---|
| 663 | #tv51 - at the same place as tv86 (func: rain19); I've disabled it
|
---|
| 664 |
|
---|
| 665 | #tv83 - after the beginning of the stairs
|
---|
| 666 | func void t95(string ai_name)
|
---|
| 667 | {
|
---|
| 668 | sound_dialog_play c11_39_06konoko
|
---|
| 669 | ai2_spawn E_Sr30
|
---|
| 670 | }
|
---|
| 671 |
|
---|
| 672 | #tv52 - at the end of the small passage after the end of the stairs (func: rain20); I've disabled it
|
---|
| 673 | #tv21 - after tv52 (func: t23); I've disabled it
|
---|
| 674 |
|
---|
| 675 | #tv83 - at the 1st corner (beside the "block", where the sniper with the mercury bow stands on)
|
---|
| 676 | func void t96(string ai_name)
|
---|
| 677 | {
|
---|
| 678 | sound_dialog_play c11_39_07konoko
|
---|
| 679 | }
|
---|
| 680 |
|
---|
| 681 | #tv23 - at the 2nd corner
|
---|
| 682 | func void t25(string ai_name)
|
---|
| 683 | {
|
---|
| 684 | ai2_spawn E_Sr33
|
---|
| 685 | ai2_dopath E_Sr30 patrol_34
|
---|
| 686 | ai2_setjobstate E_Sr30
|
---|
| 687 | }
|
---|
| 688 |
|
---|
| 689 | #tv22 - at the 3rd corner
|
---|
| 690 | func void t24(string ai_name)
|
---|
| 691 | {
|
---|
| 692 | sound_dialog_play c11_39_08konoko
|
---|
| 693 | ai2_spawn E_R32
|
---|
| 694 | ai2_dopath E_Sr33 patrol_34
|
---|
| 695 | ai2_setjobstate E_Sr33
|
---|
| 696 | door_lock 6
|
---|
| 697 | }
|
---|
| 698 |
|
---|
| 699 | #tv61 - complete area between the 3rd corner and the 4th corner; used to count the enemies inside it; see next func
|
---|
| 700 |
|
---|
| 701 | #tv60 - in front of the doors of the elevator
|
---|
| 702 | func void t63(string ai_name)
|
---|
| 703 | {
|
---|
| 704 | trigvolume_enable trigger_volume_63 0
|
---|
| 705 | if (trigvolume_count(64) eq 0) door_unlock 6
|
---|
| 706 | else
|
---|
| 707 | {
|
---|
| 708 | sleep 60
|
---|
| 709 | trigvolume_enable trigger_volume_63 1
|
---|
| 710 | }
|
---|
| 711 | }
|
---|
| 712 |
|
---|
| 713 | #tv25 - in the middle of the elevator
|
---|
| 714 | func void ninja(void)
|
---|
| 715 | {
|
---|
| 716 | fade_out 0 0 0 30
|
---|
| 717 | sleep 30
|
---|
| 718 | sound_dialog_play c11_39_09konoko
|
---|
| 719 | chr_facetoflag 0 9523
|
---|
| 720 | chr_teleport 0 9523
|
---|
| 721 | obj_kill 72
|
---|
| 722 | door_lock 2
|
---|
| 723 | load_s4_part1
|
---|
| 724 | fade_in 30
|
---|
| 725 | load_s4_part2
|
---|
| 726 | }
|
---|
| 727 |
|
---|
| 728 | ##########
|
---|
| 729 | ### SP4 ###
|
---|
| 730 | ##########
|
---|
| 731 |
|
---|
| 732 | func void load_s4_all(void)
|
---|
| 733 | {
|
---|
| 734 | load_s4_part1
|
---|
| 735 | load_s4_part2
|
---|
| 736 | }
|
---|
| 737 |
|
---|
| 738 | func void load_s4_part1(void)
|
---|
| 739 | {
|
---|
| 740 | fork remove_ai
|
---|
| 741 | particle wind do start
|
---|
| 742 | ai2_spawn OutroNinja
|
---|
| 743 | chr_boss_shield OutroNinja
|
---|
| 744 | chr_nocollision OutroNinja 1
|
---|
| 745 | playback OutroNinja SuperNinjaSet
|
---|
| 746 | }
|
---|
| 747 |
|
---|
| 748 | func void load_s4_part2(void)
|
---|
| 749 | {
|
---|
| 750 | if(save_point eq 4)
|
---|
| 751 | {
|
---|
| 752 | restore_game
|
---|
| 753 | particle b06_rain6 do start
|
---|
| 754 | objective_set 3 silent
|
---|
| 755 | }
|
---|
| 756 | else
|
---|
| 757 | {
|
---|
| 758 | particle b06_rain1 do stop
|
---|
| 759 | particle b06_rain2 do stop
|
---|
| 760 | particle b06_rain3 do stop
|
---|
| 761 | particle b06_rain4 do stop
|
---|
| 762 | particle b06_rain5 do stop
|
---|
| 763 | save_game 4 autosave
|
---|
| 764 | }
|
---|
| 765 | sleep 1
|
---|
| 766 | sound_music_start mus_fitec
|
---|
| 767 | chr_animate OutroNinja NINCOMteleport_in 47
|
---|
| 768 | sleep 40
|
---|
| 769 | playback OutroNinja SuperNinjaDone
|
---|
| 770 | chr_animate OutroNinja NINCOMteleport_out 31
|
---|
| 771 | chr_nocollision OutroNinja 0
|
---|
| 772 | }
|
---|
| 773 |
|
---|
| 774 | func void outro(void)
|
---|
| 775 | {
|
---|
| 776 | fade_out 0 0 0 30
|
---|
| 777 | sleep 30
|
---|
| 778 | win
|
---|
| 779 | }
|
---|