| 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 = .15 | 
 
 
 
 
 | 15 | gl_fog_blue = .15 | 
 
 
 
 
 | 16 | gl_fog_green = .15 | 
 
 
 
 
 | 17 | gl_fog_start = .995 | 
 
 
 
 
 | 18 | gs_farclipplane_set 5000 | 
 
 
 
 
 | 19 | ui_suppress_prompt = 1 | 
 
 
 
 
 | 20 | chr_auto_aim_dist = 0 | 
 
 
 
 
 | 21 | menu2 | 
 
 
 
 
 | 22 | start | 
 
 
 
 
 | 23 | } | 
 
 
 
 
 | 24 |  | 
 
 
 
 
 | 25 | ############# | 
 
 
 
 
 | 26 | ### START ### | 
 
 
 
 
 | 27 | ############# | 
 
 
 
 
 | 28 |  | 
 
 
 
 
 | 29 | func void start(void) | 
 
 
 
 
 | 30 | { | 
 
 
 
 
 | 31 | fork deactivate_stuff | 
 
 
 
 
 | 32 | if(save_point eq 0) save_point = 1 | 
 
 
 
 
 | 33 | if(save_point eq 1) fork intro | 
 
 
 
 
 | 34 | if (save_point eq 2) restore_game | 
 
 
 
 
 | 35 | if (save_point eq 3) restore_game | 
 
 
 
 
 | 36 | if (save_point eq 4) restore_game | 
 
 
 
 
 | 37 | sleep 5 | 
 
 
 
 
 | 38 | fork sp_all | 
 
 
 
 
 | 39 | } | 
 
 
 
 
 | 40 |  | 
 
 
 
 
 | 41 | func void deactivate_stuff(void) | 
 
 
 
 
 | 42 | { | 
 
 
 
 
 | 43 | #not used | 
 
 
 
 
 | 44 | trigvolume_enable ending 0 | 
 
 
 
 
 | 45 | trigvolume_enable ending2 0 | 
 
 
 
 
 | 46 | trigvolume_enable sensor 0 | 
 
 
 
 
 | 47 | trigvolume_enable final_sensor 0 | 
 
 
 
 
 | 48 | trigvolume_enable spawn_kerr_trig 0 | 
 
 
 
 
 | 49 | trigvolume_enable trap_music 0 | 
 
 
 
 
 | 50 | trigvolume_enable tv_check_outro 0 | 
 
 
 
 
 | 51 | trigvolume_enable tv_vat_monologue_1 0 | 
 
 
 
 
 | 52 | trigvolume_enable tv_vat_monologue_2 0 | 
 
 
 
 
 | 53 | trigvolume_enable lab1 0 | 
 
 
 
 
 | 54 | trigvolume_enable lab1_copy 0 | 
 
 
 
 
 | 55 | trigvolume_enable lab1_copy_copy 0 | 
 
 
 
 
 | 56 | trigvolume_enable lab1_copy_copy2 0 | 
 
 
 
 
 | 57 | trigvolume_enable lab1_copy_copy3 0 | 
 
 
 
 
 | 58 | trigvolume_enable lab1_copy_copy4 0 | 
 
 
 
 
 | 59 | trigvolume_enable lab1_copy_copy5 0 | 
 
 
 
 
 | 60 | trigvolume_enable lab1_copy_copy6 0 | 
 
 
 
 
 | 61 | trigvolume_enable lab1_copy_copy7 0 | 
 
 
 
 
 | 62 | trigvolume_enable lab1_copy_copy8 0 | 
 
 
 
 
 | 63 | trigvolume_enable lab1_copy_copy9 0 | 
 
 
 
 
 | 64 | trigvolume_enable lab1_copy_copy10 0 | 
 
 
 
 
 | 65 | trigvolume_enable lab1_copy_copy3_copy 0 | 
 
 
 
 
 | 66 | trigvolume_enable lab1_copy_copy3_copy2 0 | 
 
 
 
 
 | 67 | trigvolume_enable lab1_copy_copy3_copy3 0 | 
 
 
 
 
 | 68 | trigvolume_enable lab1_copy_copy3_copy4 0 | 
 
 
 
 
 | 69 | trigvolume_enable trigger_volume_02 0 | 
 
 
 
 
 | 70 | trigvolume_enable trigger_volume_08_copy 0 | 
 
 
 
 
 | 71 | trigvolume_enable trigger_volume_19 0 | 
 
 
 
 
 | 72 | trigvolume_enable trigger_volume_19_copy2 0 | 
 
 
 
 
 | 73 | trigvolume_enable trigger_volume_19_copy3 0 | 
 
 
 
 
 | 74 | trigvolume_enable trigger_volume_19_copy4 0 | 
 
 
 
 
 | 75 | trigvolume_enable trigger_volume_19_copy5 0 | 
 
 
 
 
 | 76 | trigvolume_enable trigger_volume_19_copy6 0 | 
 
 
 
 
 | 77 | trigvolume_enable trigger_volume_19_copy3_copy 0 | 
 
 
 
 
 | 78 | trigvolume_enable trigger_volume_19_copy6_copy 0 | 
 
 
 
 
 | 79 | trigvolume_enable trigger_volume_19_copy6_copy2 0 | 
 
 
 
 
 | 80 | trigvolume_enable trigger_volume_19_copy7 0 | 
 
 
 
 
 | 81 | trigvolume_enable trigger_volume_19_copy8 0 | 
 
 
 
 
 | 82 | trigvolume_enable trigger_volume_37 0 | 
 
 
 
 
 | 83 | trigvolume_enable trigger_volume_37_copy 0 | 
 
 
 
 
 | 84 | trigvolume_enable trigger_volume_37_copy_copy 0 | 
 
 
 
 
 | 85 | trigvolume_enable trigger_volume_37_copy_copy_copy 0 | 
 
 
 
 
 | 86 | trigvolume_enable trigger_volume_37_copy_copy_copy2 0 | 
 
 
 
 
 | 87 | trigvolume_enable trigger_volume_37_copy2 0 | 
 
 
 
 
 | 88 | trigvolume_enable trigger_volume_37_copy3 0 | 
 
 
 
 
 | 89 | trigvolume_enable trigger_volume_37_copy4 0 | 
 
 
 
 
 | 90 | trigvolume_enable trigger_volume_45 0 | 
 
 
 
 
 | 91 | trigvolume_enable trigger_volume_45_copy 0 | 
 
 
 
 
 | 92 | trigvolume_enable trigger_volume_45_copy_copy 0 | 
 
 
 
 
 | 93 | trigvolume_enable trigger_volume_45_copy_copy2 0 | 
 
 
 
 
 | 94 | trigvolume_enable trigger_volume_45_copy_copy3 0 | 
 
 
 
 
 | 95 | trigvolume_enable trigger_volume_45_copy_copy4 0 | 
 
 
 
 
 | 96 | trigvolume_enable trigger_volume_45_copy_copy5 0 | 
 
 
 
 
 | 97 | trigvolume_enable trigger_volume_45_copy_copy6 0 | 
 
 
 
 
 | 98 | trigvolume_enable trigger_volume_53_copy 0 | 
 
 
 
 
 | 99 | trigvolume_enable trigger_volume_53_copy_copy 0 | 
 
 
 
 
 | 100 | trigvolume_enable trigger_volume_68 0 | 
 
 
 
 
 | 101 | trigvolume_enable trigger_volume_69 0 | 
 
 
 
 
 | 102 | trigvolume_enable trigger_volume_69_copy 0 | 
 
 
 
 
 | 103 | trigvolume_enable trigger_volume_69_copy2 0 | 
 
 
 
 
 | 104 | #used | 
 
 
 
 
 | 105 | trigvolume_enable chase_trigger 0 | 
 
 
 
 
 | 106 | trigvolume_enable end 0 | 
 
 
 
 
 | 107 | trigvolume_enable Setup_Security_Trig 0 | 
 
 
 
 
 | 108 | trigvolume_enable trigger_volume_02 0 | 
 
 
 
 
 | 109 | trig_deactivate 2 | 
 
 
 
 
 | 110 | trig_deactivate 3 | 
 
 
 
 
 | 111 | trig_deactivate 4 | 
 
 
 
 
 | 112 | obj_create 71 74 | 
 
 
 
 
 | 113 | obj_create 401 409 | 
 
 
 
 
 | 114 | env_anim 401 409 | 
 
 
 
 
 | 115 | env_show 823 0 | 
 
 
 
 
 | 116 | console_deactivate 9 | 
 
 
 
 
 | 117 | } | 
 
 
 
 
 | 118 |  | 
 
 
 
 
 | 119 | func void you_lose(string ai_name) | 
 
 
 
 
 | 120 | { | 
 
 
 
 
 | 121 | fade_out 0 0 0 30 | 
 
 
 
 
 | 122 | sleep 30 | 
 
 
 
 
 | 123 | lose | 
 
 
 
 
 | 124 | } | 
 
 
 
 
 | 125 |  | 
 
 
 
 
 | 126 | #################################### | 
 
 
 
 
 | 127 | ### SEVERAL TIMES USED FUNCTIONS ### | 
 
 
 
 
 | 128 | #################################### | 
 
 
 
 
 | 129 |  | 
 
 
 
 
 | 130 | func void sp_all(void) | 
 
 
 
 
 | 131 | { | 
 
 
 
 
 | 132 | co_message_display = 0 | 
 
 
 
 
 | 133 | if(save_point eq 1) save_game 1 autosave | 
 
 
 
 
 | 134 | if(save_point eq 2) save_game 2 autosave | 
 
 
 
 
 | 135 | if(save_point eq 3) save_game 3 autosave | 
 
 
 
 
 | 136 | if(save_point eq 4) save_game 4 autosave | 
 
 
 
 
 | 137 | sleep 180 | 
 
 
 
 
 | 138 | co_message_display = 1 | 
 
 
 
 
 | 139 | } | 
 
 
 
 
 | 140 |  | 
 
 
 
 
 | 141 | func void remove_ai(void) | 
 
 
 
 
 | 142 | { | 
 
 
 
 
 | 143 | ai2_kill | 
 
 
 
 
 | 144 | sleep 60 | 
 
 
 
 
 | 145 | powerup_reset | 
 
 
 
 
 | 146 | weapon_reset | 
 
 
 
 
 | 147 | sleep 240 | 
 
 
 
 
 | 148 | corpse_reset | 
 
 
 
 
 | 149 | } | 
 
 
 
 
 | 150 |  | 
 
 
 
 
 | 151 | func void music_stop(void) | 
 
 
 
 
 | 152 | { | 
 
 
 
 
 | 153 | sound_music_stop mus_space01 | 
 
 
 
 
 | 154 | sound_music_stop mus_xtr1 | 
 
 
 
 
 | 155 | } | 
 
 
 
 
 | 156 |  | 
 
 
 
 
 | 157 | ########## | 
 
 
 
 
 | 158 | ### SP1 ### | 
 
 
 
 
 | 159 | ########## | 
 
 
 
 
 | 160 |  | 
 
 
 
 
 | 161 | #tv55 - in some distance after the door 9 (fake door) (func: start_trap_music); I've disabled it | 
 
 
 
 
 | 162 |  | 
 
 
 
 
 | 163 | func void intro(void) | 
 
 
 
 
 | 164 | { | 
 
 
 
 
 | 165 | playback 0 IntroKonstart | 
 
 
 
 
 | 166 | particle lock100_locklight01 do stop | 
 
 
 
 
 | 167 | door_lock 11 | 
 
 
 
 
 | 168 | ai2_spawn OutroTCTF2 | 
 
 
 
 
 | 169 | chr_changeteam OutroTCTF2 TCTF | 
 
 
 
 
 | 170 | ai2_spawn Start_Lite_1 | 
 
 
 
 
 | 171 | ai2_spawn IntroTCTF02 | 
 
 
 
 
 | 172 | chr_teleport OutroTCTF2 1010 | 
 
 
 
 
 | 173 | chr_teleport Start_Lite_1 1010 | 
 
 
 
 
 | 174 | chr_teleport IntroTCTF02 1010 | 
 
 
 
 
 | 175 | ai2_lookatme OutroTCTF2 | 
 
 
 
 
 | 176 | ai2_lookatme Start_Lite_1 | 
 
 
 
 
 | 177 | ai2_lookatme IntroTCTF02 | 
 
 
 
 
 | 178 | env_show 271 1 | 
 
 
 
 
 | 179 | env_show 272 1 | 
 
 
 
 
 | 180 | env_shade 271 272 .4 .4 .2 | 
 
 
 
 
 | 181 | objective_set 1 silent | 
 
 
 
 
 | 182 | target_set 1261 30 | 
 
 
 
 
 | 183 | sleep 1 | 
 
 
 
 
 | 184 | sound_music_start mus_space01 0.8 | 
 
 
 
 
 | 185 | ai2_attack OutroTCTF2 Konoko | 
 
 
 
 
 | 186 | ai2_attack Start_Lite_1 Konoko | 
 
 
 
 
 | 187 | ai2_attack IntroTCTF02 Konoko | 
 
 
 
 
 | 188 | fork wait1 | 
 
 
 
 
 | 189 | fork wait2 | 
 
 
 
 
 | 190 | fork wait3 | 
 
 
 
 
 | 191 | } | 
 
 
 
 
 | 192 |  | 
 
 
 
 
 | 193 | func void wait1(void) | 
 
 
 
 
 | 194 | { | 
 
 
 
 
 | 195 | chr_wait_health OutroTCTF2 0 | 
 
 
 
 
 | 196 | check_counter | 
 
 
 
 
 | 197 | } | 
 
 
 
 
 | 198 |  | 
 
 
 
 
 | 199 | func void wait2(void) | 
 
 
 
 
 | 200 | { | 
 
 
 
 
 | 201 | chr_wait_health Start_Lite_1 0 | 
 
 
 
 
 | 202 | check_counter | 
 
 
 
 
 | 203 | } | 
 
 
 
 
 | 204 |  | 
 
 
 
 
 | 205 | func void wait3(void) | 
 
 
 
 
 | 206 | { | 
 
 
 
 
 | 207 | chr_wait_health IntroTCTF02 0 | 
 
 
 
 
 | 208 | check_counter | 
 
 
 
 
 | 209 | } | 
 
 
 
 
 | 210 |  | 
 
 
 
 
 | 211 | func void check_counter(void) | 
 
 
 
 
 | 212 | { | 
 
 
 
 
 | 213 | var_counter = var_counter + 1 | 
 
 
 
 
 | 214 | if(var_counter eq 3) | 
 
 
 
 
 | 215 | { | 
 
 
 
 
 | 216 | trigvolume_enable trigger_volume_02 1 | 
 
 
 
 
 | 217 | particle lock99_locklight02 do start | 
 
 
 
 
 | 218 | door_unlock 11 | 
 
 
 
 
 | 219 | var_counter = 0 | 
 
 
 
 
 | 220 | music_stop | 
 
 
 
 
 | 221 | } | 
 
 
 
 
 | 222 | } | 
 
 
 
 
 | 223 |  | 
 
 
 
 
 | 224 | #tv1 - in front of door 11 (func: Setup_Pod1); I've disabled it | 
 
 
 
 
 | 225 |  | 
 
 
 
 
 | 226 | ########## | 
 
 
 
 
 | 227 | ### SP2 ### | 
 
 
 
 
 | 228 | ########## | 
 
 
 
 
 | 229 |  | 
 
 
 
 
 | 230 | #tv54 - after door 11 | 
 
 
 
 
 | 231 | func void autosave_1(string player_name) | 
 
 
 
 
 | 232 | { | 
 
 
 
 
 | 233 | if(save_point eq 2) | 
 
 
 
 
 | 234 | { | 
 
 
 
 
 | 235 | objective_set 1 silent | 
 
 
 
 
 | 236 | target_set 1261 30 | 
 
 
 
 
 | 237 | } | 
 
 
 
 
 | 238 | else save_game 2 autosave | 
 
 
 
 
 | 239 | ai2_spawn Pod1_Scientist_1 | 
 
 
 
 
 | 240 | ai2_spawn Pod1_Scientist_2 | 
 
 
 
 
 | 241 | ai2_spawn Pod1_TCL_1 | 
 
 
 
 
 | 242 | ai2_spawn Pod1_TCL_2 | 
 
 
 
 
 | 243 | ai2_spawn Pod1_TCL_3 | 
 
 
 
 
 | 244 | particle lab1 do start | 
 
 
 
 
 | 245 | particle lab2 do start | 
 
 
 
 
 | 246 | particle lab3 do start | 
 
 
 
 
 | 247 | } | 
 
 
 
 
 | 248 |  | 
 
 
 
 
 | 249 | func void patrolscript0001(string ai_name) | 
 
 
 
 
 | 250 | { | 
 
 
 
 
 | 251 | playback_block Pod1_TCL_1 alarm1 interp 20 | 
 
 
 
 
 | 252 | } | 
 
 
 
 
 | 253 |  | 
 
 
 
 
 | 254 | func void patrolscript0002(string ai_name) | 
 
 
 
 
 | 255 | { | 
 
 
 
 
 | 256 | playback_block Pod1_TCL_2 alarm2 interp 20 | 
 
 
 
 
 | 257 | } | 
 
 
 
 
 | 258 |  | 
 
 
 
 
 | 259 | #tv20 - in front of door 15 (func: lab1_stop); I've disabled it | 
 
 
 
 
 | 260 | #tv19 - after door 15 (func: lab1_start); I've disabled it | 
 
 
 
 
 | 261 | #tv28 - in front of door 14 (func: lab1_stop); I've disabled it | 
 
 
 
 
 | 262 | #tv27 - after door 14 (func: lab1_start); I've disabled it | 
 
 
 
 
 | 263 | #tv31 - in front of door 19 (func: lab1_start); I've disabled it | 
 
 
 
 
 | 264 | #tv32 - after door 19 (func: lab1_stop); I've disabled it | 
 
 
 
 
 | 265 | #tv24 - in front of door 18 (func: lab1_start); I've disabled it | 
 
 
 
 
 | 266 | #tv33 - after door 18 (func: lab1_stop); I've disabled it | 
 
 
 
 
 | 267 | #tv34 - in front of door 16 (enter func: lab1_stop, leave func: lab2_start); I've disabled it | 
 
 
 
 
 | 268 | #tv25 - after door 16 (func: lab1_start); I've disabled it | 
 
 
 
 
 | 269 | #tv23 - in front of door 17 (enter func: lab1_stop, leave func: lab2_start); I've disabled it | 
 
 
 
 
 | 270 | #tv22 - after door 17 (func: lab1_start); I've disabled it | 
 
 
 
 
 | 271 | #tv26 - in front of door 13 (func: lab1_start); I've disabled it | 
 
 
 
 
 | 272 | #tv29 - after door 13 (func: lab1_stop); I've disabled it | 
 
 
 
 
 | 273 | #tv21 - in front of door 12 (func: lab1_start); I've disabled it | 
 
 
 
 
 | 274 | #tv30 - after door 12 (func: lab1_stop); I've disabled it | 
 
 
 
 
 | 275 |  | 
 
 
 
 
 | 276 | #console1 | 
 
 
 
 
 | 277 | func void Pod1_UnlockDoors(string ai_name) | 
 
 
 
 
 | 278 | { | 
 
 
 
 
 | 279 | particle lock1_locklight01 do start | 
 
 
 
 
 | 280 | door_unlock 20 | 
 
 
 
 
 | 281 | door_unlock 21 | 
 
 
 
 
 | 282 | door_unlock 22 | 
 
 
 
 
 | 283 | door_unlock 23 | 
 
 
 
 
 | 284 | particle lock99_locklight02 do stop | 
 
 
 
 
 | 285 | door_lock 11 | 
 
 
 
 
 | 286 | particle alarm1_emlight01 do stop | 
 
 
 
 
 | 287 | console_reset 10 | 
 
 
 
 
 | 288 | } | 
 
 
 
 
 | 289 |  | 
 
 
 
 
 | 290 | #hit func of Pod1_TCL_1 | 
 
 
 
 
 | 291 | func void Pod1_RTAlarm_A(string ai_name) | 
 
 
 
 
 | 292 | { | 
 
 
 
 
 | 293 | ai2_doalarm Pod1_TCL_1 10 | 
 
 
 
 
 | 294 | } | 
 
 
 
 
 | 295 |  | 
 
 
 
 
 | 296 | #hit func of Pod1_TCL_2 | 
 
 
 
 
 | 297 | func void Pod1_RTAlarm_B(string ai_name) | 
 
 
 
 
 | 298 | { | 
 
 
 
 
 | 299 | ai2_doalarm Pod1_TCL_2 10 | 
 
 
 
 
 | 300 | } | 
 
 
 
 
 | 301 |  | 
 
 
 
 
 | 302 | #console10 | 
 
 
 
 
 | 303 | func void Pod1_Alarm(string ai_name) | 
 
 
 
 
 | 304 | { | 
 
 
 
 
 | 305 | door_unlock 11 | 
 
 
 
 
 | 306 | particle lock99_locklight02 do start | 
 
 
 
 
 | 307 | sleep 180 | 
 
 
 
 
 | 308 | ai2_spawn Pod1_BOL_Alarm_1 | 
 
 
 
 
 | 309 | ai2_spawn Pod1_BOL_Alarm_2 | 
 
 
 
 
 | 310 | ai2_spawn pod1_a_1 | 
 
 
 
 
 | 311 | ai2_spawn pod1_a_2 | 
 
 
 
 
 | 312 | ai2_setalert Pod1_TCL_1 combat | 
 
 
 
 
 | 313 | ai2_setalert Pod1_TCL_2 combat | 
 
 
 
 
 | 314 | ai2_setalert Pod1_TCL_3 combat | 
 
 
 
 
 | 315 | ai2_setalert Pod1_BOL_Alarm_1 combat | 
 
 
 
 
 | 316 | ai2_setalert Pod1_BOL_Alarm_2 combat | 
 
 
 
 
 | 317 | ai2_dopath Pod1_TCL_1 Pod1_Final_Guard_A | 
 
 
 
 
 | 318 | ai2_dopath Pod1_TCL_2 Pod1_Final_Guard_B | 
 
 
 
 
 | 319 | ai2_dopath Pod1_TCL_3 Pod1_Final_Guard_C | 
 
 
 
 
 | 320 | ai2_dopath Pod1_Scientist_1 Pod1_Final_Sci_A | 
 
 
 
 
 | 321 | ai2_dopath Pod1_Scientist_2 Pod1_Final_Sci_B | 
 
 
 
 
 | 322 | ai2_setjobstate Pod1_TCL_1 | 
 
 
 
 
 | 323 | ai2_setjobstate Pod1_TCL_2 | 
 
 
 
 
 | 324 | ai2_setjobstate Pod1_TCL_3 | 
 
 
 
 
 | 325 | ai2_setjobstate Pod1_Scientist_1 | 
 
 
 
 
 | 326 | ai2_setjobstate Pod1_Scientist_2 | 
 
 
 
 
 | 327 | ai2_tripalarm 11 Konoko | 
 
 
 
 
 | 328 | particle lock1_locklight01 do stop | 
 
 
 
 
 | 329 | door_lock 20 | 
 
 
 
 
 | 330 | door_lock 21 | 
 
 
 
 
 | 331 | door_lock 22 | 
 
 
 
 
 | 332 | door_lock 23 | 
 
 
 
 
 | 333 | particle alarm1_emlight01 do start | 
 
 
 
 
 | 334 | console_reset 1 | 
 
 
 
 
 | 335 | Pod_Alarm_Sound | 
 
 
 
 
 | 336 | } | 
 
 
 
 
 | 337 |  | 
 
 
 
 
 | 338 | #for the Pod_Alarm_Sound func see pod2 section | 
 
 
 
 
 | 339 |  | 
 
 
 
 
 | 340 | #tv2 - huge box in front of door 20, door 21, door 22 and door 23 | 
 
 
 
 
 | 341 | func void Pod2_Setup(string ai_name) | 
 
 
 
 
 | 342 | { | 
 
 
 
 
 | 343 | trig_activate 2 | 
 
 
 
 
 | 344 | ai2_spawn Pod2_TCL_1 | 
 
 
 
 
 | 345 | ai2_spawn Pod2_TCL_2 | 
 
 
 
 
 | 346 | ai2_spawn Pod2_Sci_1 | 
 
 
 
 
 | 347 | particle lock2_locklight01 do stop | 
 
 
 
 
 | 348 | } | 
 
 
 
 
 | 349 |  | 
 
 
 
 
 | 350 | func void patrolscript0003(string ai_name) | 
 
 
 
 
 | 351 | { | 
 
 
 
 
 | 352 | playback_block Pod2_TCL_1 pod2alarm1 interp 20 | 
 
 
 
 
 | 353 | } | 
 
 
 
 
 | 354 |  | 
 
 
 
 
 | 355 | func void patrolscript0004(string ai_name) | 
 
 
 
 
 | 356 | { | 
 
 
 
 
 | 357 | playback_block Pod2_TCL_2 pod2alarm2 interp 20 | 
 
 
 
 
 | 358 | } | 
 
 
 
 
 | 359 |  | 
 
 
 
 
 | 360 | #tv36 - in front of door 27 (enter func: lab2_start, leave func: lab3_stop); I've disabled it | 
 
 
 
 
 | 361 | #tv40 - after of door 27 (enter func: lab2_stop, leave func: lab3_start); I've disabled it | 
 
 
 
 
 | 362 | #tv39 - in front of door 26 (enter func: lab2_start, leave func: lab3_stop); I've disabled it | 
 
 
 
 
 | 363 | #tv35 - after of door 26 (enter func: lab2_stop, leave func: lab3_start); I've disabled it | 
 
 
 
 
 | 364 | #tv38 - in front of door 25 (enter func: lab2_start, leave func: lab3_stop); I've disabled it | 
 
 
 
 
 | 365 | #tv41 - after of door 25 (enter func: lab2_stop, leave func: lab3_start); I've disabled it | 
 
 
 
 
 | 366 | #tv37 - in front of door 24 (enter func: lab2_start, leave func: lab3_stop); I've disabled it | 
 
 
 
 
 | 367 | #tv42 - after of door 24 (enter func: lab2_stop, leave func: lab3_start); I've disabled it | 
 
 
 
 
 | 368 |  | 
 
 
 
 
 | 369 | #console2 | 
 
 
 
 
 | 370 | func void Pod2_UnlockDoors(string ai_name) | 
 
 
 
 
 | 371 | { | 
 
 
 
 
 | 372 | door_unlock 28 | 
 
 
 
 
 | 373 | door_unlock 29 | 
 
 
 
 
 | 374 | door_unlock 30 | 
 
 
 
 
 | 375 | door_unlock 31 | 
 
 
 
 
 | 376 | door_lock 11 | 
 
 
 
 
 | 377 | particle lock99_locklight02 do stop | 
 
 
 
 
 | 378 | particle alarm2_emlight01 do stop | 
 
 
 
 
 | 379 | particle lock2_locklight01 do start | 
 
 
 
 
 | 380 | console_reset 11 | 
 
 
 
 
 | 381 | } | 
 
 
 
 
 | 382 |  | 
 
 
 
 
 | 383 | #hit func of Pod2_TCL_1 | 
 
 
 
 
 | 384 | func void Pod2_RTAlarm_A(string ai_name) | 
 
 
 
 
 | 385 | { | 
 
 
 
 
 | 386 | ai2_doalarm Pod2_TCL_1 11 | 
 
 
 
 
 | 387 | } | 
 
 
 
 
 | 388 |  | 
 
 
 
 
 | 389 | #hit func of Pod2_TCL_2 | 
 
 
 
 
 | 390 | func void Pod2_RTAlarm_B(string ai_name) | 
 
 
 
 
 | 391 | { | 
 
 
 
 
 | 392 | ai2_doalarm Pod2_TCL_2 11 | 
 
 
 
 
 | 393 | } | 
 
 
 
 
 | 394 |  | 
 
 
 
 
 | 395 | #console11 | 
 
 
 
 
 | 396 | func void Pod2_Alarm(string ai_name) | 
 
 
 
 
 | 397 | { | 
 
 
 
 
 | 398 | door_unlock 11 | 
 
 
 
 
 | 399 | particle lock99_locklight02 do start | 
 
 
 
 
 | 400 | sleep 180 | 
 
 
 
 
 | 401 | ai2_spawn Pod2_BOL_Alarm_1 | 
 
 
 
 
 | 402 | ai2_spawn pod2_a_1 | 
 
 
 
 
 | 403 | ai2_spawn pod2_a_2 | 
 
 
 
 
 | 404 | ai2_setalert Pod2_TCL_1 high | 
 
 
 
 
 | 405 | ai2_setalert Pod2_TCL_2 high | 
 
 
 
 
 | 406 | ai2_setalert Pod2_BOS_1 high | 
 
 
 
 
 | 407 | ai2_dopath Pod2_TCL_1 Pod2_End_TCL_1 | 
 
 
 
 
 | 408 | ai2_dopath Pod2_TCL_2 Pod2_End_TCL_2 | 
 
 
 
 
 | 409 | ai2_dopath Pod2_BOS_1 Pod2_End_BOS_1 | 
 
 
 
 
 | 410 | ai2_dopath Pod2_Sci_1 Pod2_End_Sci_1 | 
 
 
 
 
 | 411 | ai2_setjobstate Pod2_TCL_1 | 
 
 
 
 
 | 412 | ai2_setjobstate Pod2_TCL_2 | 
 
 
 
 
 | 413 | ai2_setjobstate Pod2_BOS_1 | 
 
 
 
 
 | 414 | ai2_setjobstate Pod2_Sci_1 | 
 
 
 
 
 | 415 | ai2_tripalarm 12 Konoko | 
 
 
 
 
 | 416 | particle lock2_locklight01 do stop | 
 
 
 
 
 | 417 | particle alarm2_emlight01 do start | 
 
 
 
 
 | 418 | door_lock 28 | 
 
 
 
 
 | 419 | door_lock 29 | 
 
 
 
 
 | 420 | door_lock 30 | 
 
 
 
 
 | 421 | door_lock 31 | 
 
 
 
 
 | 422 | console_reset 2 | 
 
 
 
 
 | 423 | Pod_Alarm_Sound | 
 
 
 
 
 | 424 | } | 
 
 
 
 
 | 425 |  | 
 
 
 
 
 | 426 | func void Pod_Alarm_Sound(void) | 
 
 
 
 
 | 427 | { | 
 
 
 
 
 | 428 | sound_ambient_start alarm_loop | 
 
 
 
 
 | 429 | sleep 900 | 
 
 
 
 
 | 430 | sound_ambient_stop alarm_loop | 
 
 
 
 
 | 431 | } | 
 
 
 
 
 | 432 |  | 
 
 
 
 
 | 433 | #tv3 - huge box in front of door 28, door 29, door 30 and door 31 | 
 
 
 
 
 | 434 | func void Pod3_Setup(string ai_name) | 
 
 
 
 
 | 435 | { | 
 
 
 
 
 | 436 | ai2_spawn Pod3_BOS_1 | 
 
 
 
 
 | 437 | ai2_spawn Pod3_BOS_2 | 
 
 
 
 
 | 438 | ai2_spawn Pod3_BOL_1 | 
 
 
 
 
 | 439 | trigvolume_enable Kerr_trig 1 | 
 
 
 
 
 | 440 | } | 
 
 
 
 
 | 441 |  | 
 
 
 
 
 | 442 | #tv44 - in front of door 35 (func: lab3_start); I've disabled it | 
 
 
 
 
 | 443 | #tv46 - after of door 35 (enter func: lab3_stop); I've disabled it | 
 
 
 
 
 | 444 | #tv48 - in front of door 34 (func: lab3_start); I've disabled it | 
 
 
 
 
 | 445 | #tv47 - after of door 34 (enter func: lab3_stop); I've disabled it | 
 
 
 
 
 | 446 | #tv50 - in front of door 33 (func: lab3_start); I've disabled it | 
 
 
 
 
 | 447 | #tv45 - after of door 33 (enter func: lab3_stop); I've disabled it | 
 
 
 
 
 | 448 | #tv49 - in front of door 32 (func: lab3_start); I've disabled it | 
 
 
 
 
 | 449 | #tv43 - after of door 32 (enter func: lab3_stop); I've disabled it | 
 
 
 
 
 | 450 | #tv9 - huge box from after door 33 and door 34 to the end of the room, where you find Kerr (no funcs); not used | 
 
 
 
 
 | 451 | #tv75 - in front of door 59 (func KerrSpawn); I've disabled it | 
 
 
 
 
 | 452 |  | 
 
 
 
 
 | 453 | #tv67 - complete room after door 59 | 
 
 
 
 
 | 454 | func void Kerr(void) | 
 
 
 
 
 | 455 | { | 
 
 
 
 
 | 456 | trigvolume_enable Kerr_trig 0 | 
 
 
 
 
 | 457 | if(save_point eq 3) | 
 
 
 
 
 | 458 | { | 
 
 
 
 
 | 459 | particle lab3 do start | 
 
 
 
 
 | 460 | load_s3 | 
 
 
 
 
 | 461 | } | 
 
 
 
 
 | 462 | else console_activate 13 | 
 
 
 
 
 | 463 | } | 
 
 
 
 
 | 464 |  | 
 
 
 
 
 | 465 | func void patrolscript0009(string ai_name) | 
 
 
 
 
 | 466 | { | 
 
 
 
 
 | 467 | patrolscript0010 | 
 
 
 
 
 | 468 | } | 
 
 
 
 
 | 469 |  | 
 
 
 
 
 | 470 | func void patrolscript0010 (string ai_name) | 
 
 
 
 
 | 471 | { | 
 
 
 
 
 | 472 | particle lock99_locklight02 do start | 
 
 
 
 
 | 473 | door_unlock 11 | 
 
 
 
 
 | 474 | sleep 540 | 
 
 
 
 
 | 475 | particle lock99_locklight02 do stop | 
 
 
 
 
 | 476 | door_lock 11 | 
 
 
 
 
 | 477 | } | 
 
 
 
 
 | 478 |  | 
 
 
 
 
 | 479 | ########## | 
 
 
 
 
 | 480 | ### SP3 ### | 
 
 
 
 
 | 481 | ########## | 
 
 
 
 
 | 482 |  | 
 
 
 
 
 | 483 | #console13 | 
 
 
 
 
 | 484 | func void Kerr_Console(string ai_name) | 
 
 
 
 
 | 485 | { | 
 
 
 
 
 | 486 | give_powerup hypo 2 | 
 
 
 
 
 | 487 | if(save_point ne 3) save_game 3 autosave | 
 
 
 
 
 | 488 | trig_deactivate 2 | 
 
 
 
 
 | 489 | load_s3 | 
 
 
 
 
 | 490 | particle lock1_locklight01 do stop | 
 
 
 
 
 | 491 | particle lock2_locklight01 do stop | 
 
 
 
 
 | 492 | door_lock 28 | 
 
 
 
 
 | 493 | door_lock 29 | 
 
 
 
 
 | 494 | door_lock 30 | 
 
 
 
 
 | 495 | door_lock 31 | 
 
 
 
 
 | 496 | particle lab1 do stop | 
 
 
 
 
 | 497 | particle lab2 do stop | 
 
 
 
 
 | 498 | } | 
 
 
 
 
 | 499 |  | 
 
 
 
 
 | 500 | func void load_s3(void) | 
 
 
 
 
 | 501 | { | 
 
 
 
 
 | 502 | particle lock4_locklight02 do start | 
 
 
 
 
 | 503 | door_unlock 58 | 
 
 
 
 
 | 504 | objective_set 2 silent | 
 
 
 
 
 | 505 | target_set 366 30 | 
 
 
 
 
 | 506 | } | 
 
 
 
 
 | 507 |  | 
 
 
 
 
 | 508 | #tv4 - on the gangway in front of door 58 | 
 
 
 
 
 | 509 | func void Setup_Lab(string ai_name) | 
 
 
 
 
 | 510 | { | 
 
 
 
 
 | 511 | ai2_spawn CS_ScanOps01 | 
 
 
 
 
 | 512 | ai2_spawn LabHall_BOL_1 | 
 
 
 
 
 | 513 | ai2_spawn LabHall_BOL_2 | 
 
 
 
 
 | 514 | ai2_spawn LabHall_BOL_3 | 
 
 
 
 
 | 515 | ai2_spawn LabHall_BOL_4 | 
 
 
 
 
 | 516 | ai2_spawn LabHall_BOL_5 | 
 
 
 
 
 | 517 | ai2_spawn Hall_TCS_33 | 
 
 
 
 
 | 518 | ai2_spawn Lab1_Sci_1 | 
 
 
 
 
 | 519 | ai2_spawn Lab1_Sci_2 | 
 
 
 
 
 | 520 | ai2_spawn Lab2_Sci_1 | 
 
 
 
 
 | 521 | ai2_spawn Lab2_Sci_2 | 
 
 
 
 
 | 522 | ai2_spawn Lab3_Sci_1 | 
 
 
 
 
 | 523 | ai2_spawn Lab3_Sci_2 | 
 
 
 
 
 | 524 | particle part1 do start | 
 
 
 
 
 | 525 | particle part2 do start | 
 
 
 
 
 | 526 | } | 
 
 
 
 
 | 527 |  | 
 
 
 
 
 | 528 | #tv52 - huge box after door 58 from the wall to the stairs; 1st and 2nd floor (enter func: part1_begin, leave func: part1_stop); I'vedisabled it | 
 
 
 
 
 | 529 | #tv51 - after tv52 (enter func: part2_start, leave func: part2_stop); I'vedisabled it | 
 
 
 
 
 | 530 | #tv14 - in front of door 6 and door 7 (func: spawn_kerr); I've disabled it | 
 
 
 
 
 | 531 | #tv71 - in front of door 7 (no func); I've disabled it | 
 
 
 
 
 | 532 | #tv73 - in front of door 7 (func: play_vat_monologue); I've disabled it | 
 
 
 
 
 | 533 | #tv69 - in front of door 6 (no func); I've disabled it | 
 
 
 
 
 | 534 | #tv74 - in front of door 6 (func: play_vat_monologue); I've disabled it | 
 
 
 
 
 | 535 | #tv68 - complete scan lab (no func); I've disabled it | 
 
 
 
 
 | 536 |  | 
 
 
 
 
 | 537 | #console5 | 
 
 
 
 
 | 538 | func void Lab_Console_3(string ai_name) | 
 
 
 
 
 | 539 | { | 
 
 
 
 
 | 540 | ai2_spawn lab_BOS_3 | 
 
 
 
 
 | 541 | ai2_tripalarm 1 Konoko | 
 
 
 
 
 | 542 | particle lock5c_locklight01 do start | 
 
 
 
 
 | 543 | particle labalarm3 do start | 
 
 
 
 
 | 544 | door_check | 
 
 
 
 
 | 545 | } | 
 
 
 
 
 | 546 |  | 
 
 
 
 
 | 547 | #console4 | 
 
 
 
 
 | 548 | func void Lab_Console_2(string ai_name) | 
 
 
 
 
 | 549 | { | 
 
 
 
 
 | 550 | ai2_spawn lab_BOS_2 | 
 
 
 
 
 | 551 | ai2_tripalarm 1 Konoko | 
 
 
 
 
 | 552 | particle lock5b_locklight01 do start | 
 
 
 
 
 | 553 | particle labalarm2 do start | 
 
 
 
 
 | 554 | door_check | 
 
 
 
 
 | 555 | } | 
 
 
 
 
 | 556 |  | 
 
 
 
 
 | 557 | #console3 | 
 
 
 
 
 | 558 | func void Lab_Console_1(string ai_name) | 
 
 
 
 
 | 559 | { | 
 
 
 
 
 | 560 | ai2_spawn lab_BOS_1 | 
 
 
 
 
 | 561 | ai2_tripalarm 1 Konoko | 
 
 
 
 
 | 562 | particle lock5a_locklight01 do start | 
 
 
 
 
 | 563 | particle labalarm1 do start | 
 
 
 
 
 | 564 | door_check | 
 
 
 
 
 | 565 | } | 
 
 
 
 
 | 566 |  | 
 
 
 
 
 | 567 | func void door_check(void) | 
 
 
 
 
 | 568 | { | 
 
 
 
 
 | 569 | var_counter = var_counter + 1 | 
 
 
 
 
 | 570 | if(var_counter eq 1) | 
 
 
 
 
 | 571 | { | 
 
 
 
 
 | 572 | particle lock4_locklight02 do stop | 
 
 
 
 
 | 573 | door_lock 58 | 
 
 
 
 
 | 574 | target_set 1009 30 | 
 
 
 
 
 | 575 | particle lab3 do stop | 
 
 
 
 
 | 576 | } | 
 
 
 
 
 | 577 | if(var_counter eq 3) | 
 
 
 
 
 | 578 | { | 
 
 
 
 
 | 579 | door_unlock 6 | 
 
 
 
 
 | 580 | door_unlock 7 | 
 
 
 
 
 | 581 | var_counter = 0 | 
 
 
 
 
 | 582 | } | 
 
 
 
 
 | 583 | } | 
 
 
 
 
 | 584 |  | 
 
 
 
 
 | 585 | ########## | 
 
 
 
 
 | 586 | ### SP4 ### | 
 
 
 
 
 | 587 | ########## | 
 
 
 
 
 | 588 |  | 
 
 
 
 
 | 589 | #tv11 - complete scan lab | 
 
 
 
 
 | 590 | func void scanner_start(void) | 
 
 
 
 
 | 591 | { | 
 
 
 
 
 | 592 | trigvolume_enable trigger_volume_13 0 | 
 
 
 
 
 | 593 | if(save_point eq 4) | 
 
 
 
 
 | 594 | { | 
 
 
 
 
 | 595 | ai2_spawn CS_ScanOps01 | 
 
 
 
 
 | 596 | particle lock5a_locklight01 do start | 
 
 
 
 
 | 597 | particle lock5b_locklight01 do start | 
 
 
 
 
 | 598 | particle lock5c_locklight01 do start | 
 
 
 
 
 | 599 | door_unlock 6 | 
 
 
 
 
 | 600 | door_unlock 7 | 
 
 
 
 
 | 601 | console_deactivate 3 | 
 
 
 
 
 | 602 | console_deactivate 4 | 
 
 
 
 
 | 603 | console_deactivate 5 | 
 
 
 
 
 | 604 | particle part1 do start | 
 
 
 
 
 | 605 | particle part2 do start | 
 
 
 
 
 | 606 | } | 
 
 
 
 
 | 607 | else save_game 4 autosave | 
 
 
 
 
 | 608 | objective_set 3 silent | 
 
 
 
 
 | 609 | target_set 346 30 | 
 
 
 
 
 | 610 | sleep 1 | 
 
 
 
 
 | 611 | sound_music_start mus_xtr1 0.7 | 
 
 
 
 
 | 612 | } | 
 
 
 
 
 | 613 |  | 
 
 
 
 
 | 614 | #lose func of CS_ScanOps01 | 
 
 
 
 
 | 615 | func void play_vat_monologue(string ai_name) | 
 
 
 
 
 | 616 | { | 
 
 
 
 
 | 617 | var_counter = var_counter + 1 | 
 
 
 
 
 | 618 | if(var_counter eq 1) sound_dialog_play c13_66_01konoko | 
 
 
 
 
 | 619 | } | 
 
 
 
 
 | 620 |  | 
 
 
 
 
 | 621 | #console14 | 
 
 
 
 
 | 622 | func void Lab_Unlock_Door_5(string ai_name) | 
 
 
 
 
 | 623 | { | 
 
 
 
 
 | 624 | particle lock6_locklight02 do start | 
 
 
 
 
 | 625 | door_unlock 1 | 
 
 
 
 
 | 626 | trigvolume_enable chase_trigger 1 | 
 
 
 
 
 | 627 | trigvolume_enable Setup_Security_Trig 1 | 
 
 
 
 
 | 628 | ai2_spawn Scan_BOS_1 | 
 
 
 
 
 | 629 | ai2_spawn Scan_BOS_2 | 
 
 
 
 
 | 630 | ai2_spawn Scan_BOS_3 | 
 
 
 
 
 | 631 | ai2_spawn Scan_BOS_4 | 
 
 
 
 
 | 632 | chr_teleport LabHall_BOL_5 272 | 
 
 
 
 
 | 633 | chr_teleport Hall_TCS_33 7018 | 
 
 
 
 
 | 634 | ai2_forget LabHall_BOL_5 | 
 
 
 
 
 | 635 | ai2_forget Hall_TCS_33 | 
 
 
 
 
 | 636 | ai2_dopath LabHall_BOL_1 Scan_BOL_1 | 
 
 
 
 
 | 637 | ai2_dopath LabHall_BOL_2 Scan_BOL_2 | 
 
 
 
 
 | 638 | ai2_dopath LabHall_BOL_3 Scan_BOL_3 | 
 
 
 
 
 | 639 | ai2_dopath LabHall_BOL_4 Scan_BOL_4 | 
 
 
 
 
 | 640 | ai2_dopath LabHall_BOL_5 Scan_BOL_5 | 
 
 
 
 
 | 641 | ai2_dopath Hall_TCS_33 Scan_Hall_TCS_33 | 
 
 
 
 
 | 642 | ai2_setjobstate LabHall_BOL_1 | 
 
 
 
 
 | 643 | ai2_setjobstate LabHall_BOL_2 | 
 
 
 
 
 | 644 | ai2_setjobstate LabHall_BOL_3 | 
 
 
 
 
 | 645 | ai2_setjobstate LabHall_BOL_4 | 
 
 
 
 
 | 646 | ai2_setjobstate Hall_TCS_33 | 
 
 
 
 
 | 647 | fork get_her | 
 
 
 
 
 | 648 | } | 
 
 
 
 
 | 649 |  | 
 
 
 
 
 | 650 | func void get_her(string ai_name) | 
 
 
 
 
 | 651 | { | 
 
 
 
 
 | 652 | sleep 1800 | 
 
 
 
 
 | 653 | ai2_tripalarm 5 Konoko | 
 
 
 
 
 | 654 | ai2_dopath LabHall_BOL_1 get_her_1 | 
 
 
 
 
 | 655 | ai2_dopath LabHall_BOL_2 get_her_2 | 
 
 
 
 
 | 656 | ai2_setjobstate LabHall_BOL_1 | 
 
 
 
 
 | 657 | ai2_setjobstate LabHall_BOL_2 | 
 
 
 
 
 | 658 | sleep 1800 | 
 
 
 
 
 | 659 | ai2_tripalarm 7 Konoko | 
 
 
 
 
 | 660 | ai2_dopath LabHall_BOL_3 Scan_BOL_3 | 
 
 
 
 
 | 661 | ai2_dopath LabHall_BOL_4 Scan_BOL_4 | 
 
 
 
 
 | 662 | ai2_setjobstate LabHall_BOL_3 | 
 
 
 
 
 | 663 | ai2_setjobstate LabHall_BOL_4 | 
 
 
 
 
 | 664 | sleep 1800 | 
 
 
 
 
 | 665 | ai2_tripalarm 9 Konoko | 
 
 
 
 
 | 666 | ai2_dopath Scan_BOS_1 get_her_1 | 
 
 
 
 
 | 667 | ai2_dopath Scan_BOS_2 get_her_2 | 
 
 
 
 
 | 668 | ai2_setjobstate Scan_BOS_1 | 
 
 
 
 
 | 669 | ai2_setjobstate Scan_BOS_2 | 
 
 
 
 
 | 670 | sleep 1800 | 
 
 
 
 
 | 671 | ai2_tripalarm 11 Konoko | 
 
 
 
 
 | 672 | ai2_dopath Scan_BOS_3 get_her_3 | 
 
 
 
 
 | 673 | ai2_dopath Scan_BOS_4 get_her_4 | 
 
 
 
 
 | 674 | ai2_setjobstate Scan_BOS_3 | 
 
 
 
 
 | 675 | ai2_setjobstate Scan_BOS_4 | 
 
 
 
 
 | 676 | } | 
 
 
 
 
 | 677 |  | 
 
 
 
 
 | 678 | #tv80 - in some distance after door 3 | 
 
 
 
 
 | 679 | func void chase_after_scan(string ai_name) | 
 
 
 
 
 | 680 | { | 
 
 
 
 
 | 681 | play_vat_monologue | 
 
 
 
 
 | 682 | ai2_dopath Scan_BOS_3 chase_after_3 | 
 
 
 
 
 | 683 | ai2_dopath Scan_BOS_4 chase_after_4 | 
 
 
 
 
 | 684 | ai2_setjobstate Scan_BOS_3 | 
 
 
 
 
 | 685 | ai2_setjobstate Scan_BOS_4 | 
 
 
 
 
 | 686 | ai2_tripalarm 11 Konoko | 
 
 
 
 
 | 687 | sleep 1200 | 
 
 
 
 
 | 688 | ai2_dopath Scan_BOS_1 chase_after_1 | 
 
 
 
 
 | 689 | ai2_dopath Scan_BOS_2 chase_after_2 | 
 
 
 
 
 | 690 | ai2_setjobstate Scan_BOS_1 | 
 
 
 
 
 | 691 | ai2_setjobstate Scan_BOS_2 | 
 
 
 
 
 | 692 | ai2_tripalarm 9 Konoko | 
 
 
 
 
 | 693 | } | 
 
 
 
 
 | 694 |  | 
 
 
 
 
 | 695 | #tv12 - in front of door 1 | 
 
 
 
 
 | 696 | func void Setup_Security(string ai_name) | 
 
 
 
 
 | 697 | { | 
 
 
 
 
 | 698 | trigvolume_enable Ambush_Trigger_1 1 | 
 
 
 
 
 | 699 | ai2_spawn Sec_BOL_1 | 
 
 
 
 
 | 700 | ai2_spawn Sec_BOS_1 | 
 
 
 
 
 | 701 | ai2_spawn Sec_BOS_2 | 
 
 
 
 
 | 702 | trig_activate 3 | 
 
 
 
 
 | 703 | trig_activate 4 | 
 
 
 
 
 | 704 | music_stop | 
 
 
 
 
 | 705 | } | 
 
 
 
 
 | 706 |  | 
 
 
 
 
 | 707 | #console86 | 
 
 
 
 
 | 708 | func void Unlock_Door_7(string ai_name) | 
 
 
 
 
 | 709 | { | 
 
 
 
 
 | 710 | particle lock7_locklight02 do start | 
 
 
 
 
 | 711 | door_unlock 54 | 
 
 
 
 
 | 712 | target_set 360 30 | 
 
 
 
 
 | 713 | var_counter = 0 | 
 
 
 
 
 | 714 | } | 
 
 
 
 
 | 715 |  | 
 
 
 
 
 | 716 | #tv5 - in the middle between door 54 and door 36 | 
 
 
 
 
 | 717 | func void Sec_Ambush_1(string ai_name) | 
 
 
 
 
 | 718 | { | 
 
 
 
 
 | 719 | fork remove_ai | 
 
 
 
 
 | 720 | trig_deactivate 3 | 
 
 
 
 
 | 721 | trig_deactivate 4 | 
 
 
 
 
 | 722 | turret_deactivate 2 | 
 
 
 
 
 | 723 | turret_deactivate 3 | 
 
 
 
 
 | 724 | particle lock8_locklight02 do start | 
 
 
 
 
 | 725 | door_unlock 36 | 
 
 
 
 
 | 726 | door_unlock 37 | 
 
 
 
 
 | 727 | particle lock7_locklight02 do stop | 
 
 
 
 
 | 728 | door_lock 54 | 
 
 
 
 
 | 729 | ai2_spawn Sec_Ambush_BOS_1 | 
 
 
 
 
 | 730 | ai2_spawn Sec_Ambush_BOL_1 | 
 
 
 
 
 | 731 | ai2_attack Sec_Ambush_BOS_1 Konoko | 
 
 
 
 
 | 732 | ai2_attack Sec_Ambush_BOL_1 Konoko | 
 
 
 
 
 | 733 | sleep 120 | 
 
 
 
 
 | 734 | particle lock8_locklight02 do stop | 
 
 
 
 
 | 735 | door_lock 36 | 
 
 
 
 
 | 736 | particle part1 do stop | 
 
 
 
 
 | 737 | particle part2 do stop | 
 
 
 
 
 | 738 | } | 
 
 
 
 
 | 739 |  | 
 
 
 
 
 | 740 | #tv72 - in front of door 36 (func: closethedoor); I've disabled it | 
 
 
 
 
 | 741 |  | 
 
 
 
 
 | 742 | #tv6 - in front of tv72 | 
 
 
 
 
 | 743 | func void Setup_Final(string ai_name) | 
 
 
 
 
 | 744 | { | 
 
 
 
 
 | 745 | ai2_spawn Final_BOS_1 | 
 
 
 
 
 | 746 | ai2_spawn Final_BOL_1 | 
 
 
 
 
 | 747 | ai2_spawn Final_Thug_1 | 
 
 
 
 
 | 748 | ai2_spawn Final_Thug_2 | 
 
 
 
 
 | 749 | } | 
 
 
 
 
 | 750 |  | 
 
 
 
 
 | 751 | #lose func of Sec_Ambush_BOS_1 | 
 
 
 
 
 | 752 | func void nextwave_1(string ai_name) | 
 
 
 
 
 | 753 | { | 
 
 
 
 
 | 754 | nextwave_2 | 
 
 
 
 
 | 755 | } | 
 
 
 
 
 | 756 |  | 
 
 
 
 
 | 757 | #lose func of Sec_Ambush_BOS_2 | 
 
 
 
 
 | 758 | func void nextwave_2(string ai_name) | 
 
 
 
 
 | 759 | { | 
 
 
 
 
 | 760 | var_counter = var_counter + 1 | 
 
 
 
 
 | 761 | if(var_counter eq 2) | 
 
 
 
 
 | 762 | { | 
 
 
 
 
 | 763 | particle vat1 do start | 
 
 
 
 
 | 764 | particle vat2 do start | 
 
 
 
 
 | 765 | particle vat3 do start | 
 
 
 
 
 | 766 | particle vat4 do start | 
 
 
 
 
 | 767 | particle lock8_locklight02 do start | 
 
 
 
 
 | 768 | door_unlock 36 | 
 
 
 
 
 | 769 | door_unlock 37 | 
 
 
 
 
 | 770 | ai2_spawn Sec_Ambush_BOS_2 | 
 
 
 
 
 | 771 | ai2_spawn Sec_Ambush_BOL_2 | 
 
 
 
 
 | 772 | ai2_attack Sec_Ambush_BOS_2 Konoko | 
 
 
 
 
 | 773 | ai2_attack Sec_Ambush_BOL_2 Konoko | 
 
 
 
 
 | 774 | var_counter = 0 | 
 
 
 
 
 | 775 | } | 
 
 
 
 
 | 776 | } | 
 
 
 
 
 | 777 |  | 
 
 
 
 
 | 778 | #tv13 - in the middle of the next room, from left to right | 
 
 
 
 
 | 779 | func void set_objective_4(string chr_index) | 
 
 
 
 
 | 780 | { | 
 
 
 
 
 | 781 | objective_set 4 silent | 
 
 
 
 
 | 782 | target_set 222 30 | 
 
 
 
 
 | 783 | } | 
 
 
 
 
 | 784 |  | 
 
 
 
 
 | 785 | #tv57 - in some distance in front of door 37 (func: vat1_start); I've disabled it | 
 
 
 
 
 | 786 |  | 
 
 
 
 
 | 787 | #tv56 - after door 37 | 
 
 
 
 
 | 788 | func void BeginVat(void) | 
 
 
 
 
 | 789 | { | 
 
 
 
 
 | 790 | sound_dialog_play c13_66_02konoko | 
 
 
 
 
 | 791 | ai2_attack Final_BOL_1 Konoko | 
 
 
 
 
 | 792 | } | 
 
 
 
 
 | 793 |  | 
 
 
 
 
 | 794 | #tv79 - in front of tv58 | 
 
 
 
 
 | 795 | func void mid_guards(string ai_name) | 
 
 
 
 
 | 796 | { | 
 
 
 
 
 | 797 | ai2_spawn Final_BOL_2 | 
 
 
 
 
 | 798 | ai2_spawn Final_Thug_9 | 
 
 
 
 
 | 799 | ai2_attack Final_BOL_2 Konoko | 
 
 
 
 
 | 800 | } | 
 
 
 
 
 | 801 |  | 
 
 
 
 
 | 802 | #tv58 - in front of tv62 (func: vat2_stop); I've disabled it | 
 
 
 
 
 | 803 | #tv62 - in front of door 38 and door 39 (func: vat2_start); I've disabled it | 
 
 
 
 
 | 804 |  | 
 
 
 
 
 | 805 | #tv18 - complete room, where you find console7 | 
 
 
 
 
 | 806 | func void CraneTalk(void) | 
 
 
 
 
 | 807 | { | 
 
 
 
 
 | 808 | sound_dialog_play c13_66_03konoko | 
 
 
 
 
 | 809 | } | 
 
 
 
 
 | 810 |  | 
 
 
 
 
 | 811 | #console7 and console8 | 
 
 
 
 
 | 812 | func void FTS(string ai_name) | 
 
 
 
 
 | 813 | { | 
 
 
 
 
 | 814 | var_counter = var_counter + 1 | 
 
 
 
 
 | 815 | if(var_counter eq 2) console_activate 9 | 
 
 
 
 
 | 816 | } | 
 
 
 
 
 | 817 |  | 
 
 
 
 
 | 818 | #tv60 - in front of door 42 and door 43 (func: vat1_start); I've disabled it | 
 
 
 
 
 | 819 | #tv59 - after door 42 and door 43 (func: vat1_stop); I've disabled it | 
 
 
 
 
 | 820 | #tv61 - in front of tv64 (func: vat3_stop); I've disabled it | 
 
 
 
 
 | 821 | #tv64 - in front of door 44 and door 45 (func: vat3_start); I've disabled it | 
 
 
 
 
 | 822 |  | 
 
 
 
 
 | 823 | #tv76 - in front of tv63 | 
 
 
 
 
 | 824 | func void end_guards(string ai_name) | 
 
 
 
 
 | 825 | { | 
 
 
 
 
 | 826 | ai2_spawn end_guard_1 | 
 
 
 
 
 | 827 | ai2_spawn end_guard_2 | 
 
 
 
 
 | 828 | ai2_spawn Final_Thug_10 | 
 
 
 
 
 | 829 | } | 
 
 
 
 
 | 830 |  | 
 
 
 
 
 | 831 | #tv63 - in front of door 48 and door 49 (func: vat2_start); I've disabled it | 
 
 
 
 
 | 832 | #tv65 - after door 48 and door 49 (func: vat2_stop); I've disabled it | 
 
 
 
 
 | 833 | #tv77 - complete last platform (no func); I've disabled it | 
 
 
 
 
 | 834 | #tv78 - complete last platform (func: check_outro); I've disabled it | 
 
 
 
 
 | 835 | #tv7 - complete last platform (no func); I've disabled it | 
 
 
 
 
 | 836 | #tv8 - after door 51 (no func); I've disabled it | 
 
 
 
 
 | 837 | #tv18 - at the end of the last platform, in front of the crusher (func: vat3_start); I've disabled it | 
 
 
 
 
 | 838 | #tv66 - after tv18 (func: vat3_stop); I've disabled it | 
 
 
 
 
 | 839 |  | 
 
 
 
 
 | 840 | #console9 | 
 
 
 
 
 | 841 | func void final_check_for_crane(string ai_name) | 
 
 
 
 
 | 842 | { | 
 
 
 
 
 | 843 | fade_out 0 0 0 30 | 
 
 
 
 
 | 844 | sleep 30 | 
 
 
 
 
 | 845 | win | 
 
 
 
 
 | 846 | } | 
 
 
 
 
 | 847 |  | 
 
 
 
 
 | 848 | ### ACID FUNCTIONS ### | 
 
 
 
 
 | 849 |  | 
 
 
 
 
 | 850 | #tv10 - 1st acid basin | 
 
 
 
 
 | 851 | func void Acid01(string character) | 
 
 
 
 
 | 852 | { | 
 
 
 
 
 | 853 | var_counter2 = 1 | 
 
 
 
 
 | 854 | acid(character) | 
 
 
 
 
 | 855 | } | 
 
 
 
 
 | 856 |  | 
 
 
 
 
 | 857 | #tv15 - 2nd acid basin | 
 
 
 
 
 | 858 | func void Acid02(string character) | 
 
 
 
 
 | 859 | { | 
 
 
 
 
 | 860 | var_counter2 = 2 | 
 
 
 
 
 | 861 | acid(character) | 
 
 
 
 
 | 862 | } | 
 
 
 
 
 | 863 |  | 
 
 
 
 
 | 864 | #tv16 - 3rd acid basin | 
 
 
 
 
 | 865 | func void Acid03(string character) | 
 
 
 
 
 | 866 | { | 
 
 
 
 
 | 867 | var_counter2 = 3 | 
 
 
 
 
 | 868 | acid(character) | 
 
 
 
 
 | 869 | } | 
 
 
 
 
 | 870 |  | 
 
 
 
 
 | 871 | #tv53 - 4th acid basin | 
 
 
 
 
 | 872 | func void acid04(string character) | 
 
 
 
 
 | 873 | { | 
 
 
 
 
 | 874 | var_counter2 = 4 | 
 
 
 
 
 | 875 | acid(character) | 
 
 
 
 
 | 876 | } | 
 
 
 
 
 | 877 |  | 
 
 
 
 
 | 878 | func void acid(string character) | 
 
 
 
 
 | 879 | { | 
 
 
 
 
 | 880 | if(chr_is_player(character) eq 1) | 
 
 
 
 
 | 881 | { | 
 
 
 
 
 | 882 | chr_animate(character, KONOKOacid); | 
 
 
 
 
 | 883 | input 0 | 
 
 
 
 
 | 884 | if(var_counter2 eq 1) cm_interpolate AcidCam01 500 | 
 
 
 
 
 | 885 | if(var_counter2 eq 2) cm_interpolate AcidCam01 400 | 
 
 
 
 
 | 886 | if(var_counter2 eq 3) cm_interpolate AcidCam01 200 | 
 
 
 
 
 | 887 | if(var_counter2 eq 4) cm_interpolate AcidCam01 0 | 
 
 
 
 
 | 888 | sleep 5 | 
 
 
 
 
 | 889 | chr_invincible(character, 1); | 
 
 
 
 
 | 890 | if(var_counter2 eq 1) sleep 525 | 
 
 
 
 
 | 891 | if(var_counter2 eq 2) sleep 430 | 
 
 
 
 
 | 892 | if(var_counter2 eq 3) sleep 230 | 
 
 
 
 
 | 893 | if(var_counter2 eq 4) sleep 40 | 
 
 
 
 
 | 894 | trigvolume_enable LastVat 0 | 
 
 
 
 
 | 895 | chr_animate(character, KONOKOlev14_grinder); | 
 
 
 
 
 | 896 | chr_envanim(character, GrinderKonBox01, norotation); | 
 
 
 
 
 | 897 | sleep 60 | 
 
 
 
 
 | 898 | sound_ambient_start c13_47_11_bonecrunch | 
 
 
 
 
 | 899 | sleep 10 | 
 
 
 
 
 | 900 | sound_impulse_play konoko_gruesome_death | 
 
 
 
 
 | 901 | sleep 75 | 
 
 
 
 
 | 902 | } | 
 
 
 
 
 | 903 | else | 
 
 
 
 
 | 904 | { | 
 
 
 
 
 | 905 | chr_animate(character, KONOKOacid); | 
 
 
 
 
 | 906 | sleep 10 | 
 
 
 
 
 | 907 | } | 
 
 
 
 
 | 908 | chr_set_health(character, 0); | 
 
 
 
 
 | 909 | } | 
 
 
 
 
 | 910 |  | 
 
 
 
 
 | 911 | ##################### | 
 
 
 
 
 | 912 | ### TEXT CONSOLES ### | 
 
 
 
 
 | 913 | ##################### | 
 
 
 
 
 | 914 |  | 
 
 
 
 
 | 915 | func void level_14a(void) | 
 
 
 
 
 | 916 | { | 
 
 
 
 
 | 917 | text_console level_14a | 
 
 
 
 
 | 918 | console_reset 12 | 
 
 
 
 
 | 919 | } | 
 
 
 
 
 | 920 |  | 
 
 
 
 
 | 921 | func void level_14b(void) | 
 
 
 
 
 | 922 | { | 
 
 
 
 
 | 923 | text_console level_14b | 
 
 
 
 
 | 924 | console_reset 6 | 
 
 
 
 
 | 925 | } |