Advertisement
Guest User

GTASA Stripped main with Extern Script PARACHUTE

a guest
May 3rd, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.78 KB | None | 0 0
  1.  
  2. DEFINE OBJECTS 10
  3. DEFINE OBJECT (unused) // This is an unused object. You can put anything here.
  4. DEFINE OBJECT INFO // Object number -1
  5. DEFINE OBJECT KEYCARD // Object number -2
  6. DEFINE OBJECT PICKUPSAVE // Object number -3
  7. DEFINE OBJECT BODYARMOUR // Object number -4
  8. DEFINE OBJECT BRIBE // Object number -5
  9. DEFINE OBJECT KMB_PARACHUTE // Object number -6
  10. DEFINE OBJECT PARA_PACK // Object number -7
  11. DEFINE OBJECT PARACHUTE // Object number -8
  12. DEFINE OBJECT PARA_COLLISION // Object number -9
  13.  
  14. DEFINE MISSIONS 0
  15.  
  16. DEFINE EXTERNAL_SCRIPTS 2
  17. DEFINE SCRIPT PLAYER_PARACHUTE AT @PLCHUTE // 0
  18. DEFINE SCRIPT PARACHUTE AT @PARACH // 1
  19.  
  20. DEFINE UNKNOWN_EMPTY_SEGMENT 0
  21.  
  22. DEFINE UNKNOWN_THREADS_MEMORY 0
  23.  
  24. //-------------MAIN---------------
  25.  
  26. :MAIN_1
  27. 03A4: name_thread 'MAIN'
  28. 016A: fade 0 (in) 0 ms
  29. 042C: set_total_missions_to 0
  30. 030D: set_total_mission_points_to 0
  31. 01F0: set_max_wanted_level_to 6
  32. 0111: set_wasted_busted_check_to 0 (disabled)
  33. 00C0: set_current_time 10 0
  34.  
  35. 04E4: unknown_refresh_game_renderer_at 2494.5 -1668.5
  36. 03CB: set_camera 2494.5 -1668.5 13.4
  37. 0053: $PLAYER_CHAR = create_player #NULL at 2494.5 -1668.5 13.4
  38. 07AF: $PLAYER_GROUP = player $PLAYER_CHAR group
  39. 01F5: $PLAYER_ACTOR = create_emulated_actor_from_player $PLAYER_CHAR
  40. 0173: set_actor $PLAYER_ACTOR z_angle_to 7.0
  41. 0373: set_camera_directly_behind_player
  42. 087B: set_player $PLAYER_CHAR clothes "bballjackrstar" "bbjack" 0
  43. 087B: set_player $PLAYER_CHAR clothes "JEANSDENIM" "JEANS" 2
  44. 087B: set_player $PLAYER_CHAR clothes "SNEAKERBINCBLK" "SNEAKER" 3
  45. 087B: set_player $PLAYER_CHAR clothes "PLAYER_FACE" "HEAD" 1
  46. 070D: $PLAYER_CHAR
  47. 0109: player $PLAYER_CHAR money += 500000
  48. 0629: change_stat 181 (islands unlocked) to 4 // integer see statdisp.dat
  49. 01B6: set_weather 1
  50. 04BB: select_interior 0 // select render area
  51. 01B4: set_player $PLAYER_CHAR frozen_state 1 (unfrozen)
  52. 01B7: release_weather
  53. 016C: restart_if_wasted_at 1363.4333 -1276.53 13.5469 angle 137.0 town_number 0
  54. 016D: restart_if_busted_at 1363.4333 -1276.53 13.5469 angle 90.0 town_number 0
  55. 016C: restart_if_wasted_at 1363.4333 -1276.53 13.5469 angle 7.5465 town_number 1
  56. 016D: restart_if_busted_at 1363.4333 -1276.53 13.5469 angle 267.2 town_number 1
  57. 016C: restart_if_wasted_at 1363.4333 -1276.53 13.5469 angle 7.5465 town_number 2
  58. 016D: restart_if_busted_at 1363.4333 -1276.53 13.5469 angle 267.2 town_number 2
  59. 08DE: lose_stuff_after_busted 0
  60. 08DD: lose_stuff_after_wasted 0
  61. 016A: fade 1 (out) 1000 ms
  62. 0001: wait 100 ms
  63. 03E6: remove_text_box
  64. 0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here
  65. 0001: wait 0 ms
  66. 0213: $OP2 = create_pickup #GUN_PARA type 15 at 2496.0 -1662.0 13.5
  67. 0004: $1903 = 1
  68. 0005: $1500 = 5.0
  69. 0005: $1501 = -5.0
  70. 0005: $1503 = -1.5
  71. 0005: $1504 = -30.0
  72. 0005: $1505 = 32.0
  73. 0005: $1506 = 0.0
  74. 0004: $1512 = 0
  75. 0004: $FREEFALL_STAGE = 0
  76. 0004: $PARACHUTE_CREATION_STAGE = 0
  77. 0004: $SCRIPT_STATUS = 0
  78.  
  79. :MAIN_860
  80. 0001: wait 0 ms
  81. 00D6: if
  82. 0256: player $PLAYER_CHAR defined
  83. 004D: jump_if_false @MAIN_860
  84. 00D6: if
  85. 0491: actor $PLAYER_ACTOR has_weapon 46
  86. 004D: jump_if_false @MAIN_954
  87. 0926: $SCRIPT_STATUS = external_script_status 0 (PLAYER_PARACHUTE)
  88. 00D6: if
  89. 0038: $SCRIPT_STATUS == 0
  90. 004D: jump_if_false @MAIN_860
  91. 08A9: load_external_script 0 (PLAYER_PARACHUTE)
  92. 00D6: if
  93. 08AB: external_script 0 (PLAYER_PARACHUTE) loaded
  94. 004D: jump_if_false @MAIN_860
  95. 0913: run_external_script 0 (PLAYER_PARACHUTE)
  96. 0002: jump @MAIN_860
  97.  
  98. :MAIN_954
  99. 090F: end_external_script 0 (PLAYER_PARACHUTE)
  100. 0002: jump @MAIN_860
  101.  
  102.  
  103. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  104.  
  105.  
  106. //-------------External script 0 (PLAYER_PARACHUTE)---------------
  107.  
  108. :PLCHUTE
  109. 03A4: name_thread 'PLCHUTE'
  110. 0247: load_model #GUN_PARA
  111.  
  112. :PLCHUTE_16
  113. 00D6: if
  114. 8248: not model #GUN_PARA available
  115. 004D: jump_if_false @PLCHUTE_43
  116. 0001: wait 0 ms
  117. 0002: jump @PLCHUTE_16
  118.  
  119. :PLCHUTE_43
  120. 00D6: if
  121. 8118: not actor $PLAYER_ACTOR dead
  122. 004D: jump_if_false @PLCHUTE_59
  123.  
  124. :PLCHUTE_59
  125. 0004: $1498 = 0
  126. 0004: $FREEFALL_STAGE = 0
  127. 0004: $PARACHUTE_CREATION_STAGE = 0
  128. 00D6: if
  129. 0038: $1498 == 999
  130. 004D: jump_if_false @PLCHUTE_118
  131. 0213: $PICKUP_PARACHUTE = create_pickup #GUN_PARA type 3 at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  132.  
  133. :PLCHUTE_118
  134. 0001: wait 0 ms
  135. 00D6: if
  136. 8118: not actor $PLAYER_ACTOR dead
  137. 004D: jump_if_false @PLCHUTE_5451
  138. 00D6: if
  139. 8800: not in_two_players_mode
  140. 004D: jump_if_false @PLCHUTE_5451
  141. 00D6: if
  142. 8038: not $FREEFALL_STAGE == 0
  143. 004D: jump_if_false @PLCHUTE_176
  144. 0992: set_player $PLAYER_CHAR weapons_scrollable 0
  145.  
  146. :PLCHUTE_176
  147. 00D6: if
  148. 0018: $PARACHUTE_CREATION_STAGE > 0
  149. 004D: jump_if_false @PLCHUTE_219
  150. 00D6: if
  151. 8491: not actor $PLAYER_ACTOR has_weapon 46
  152. 004D: jump_if_false @PLCHUTE_219
  153. 0050: gosub @PLCHUTE_5516
  154.  
  155. :PLCHUTE_219
  156. 00D6: if
  157. 0038: $PARACHUTE_CREATION_STAGE == 0
  158. 004D: jump_if_false @PLCHUTE_273
  159. 00D6: if
  160. 0491: actor $PLAYER_ACTOR has_weapon 46
  161. 004D: jump_if_false @PLCHUTE_273
  162. 0247: load_model #PARACHUTE
  163. 0004: $PARACHUTE_CREATION_STAGE = 1
  164. 0004: $1498 = 0
  165.  
  166. :PLCHUTE_273
  167. 00D6: if
  168. 0038: $PARACHUTE_CREATION_STAGE == 1
  169. 004D: jump_if_false @PLCHUTE_374
  170. 00D6: if
  171. 0248: model #PARACHUTE available
  172. 004D: jump_if_false @PLCHUTE_374
  173. 0107: 17@ = create_object #PARACHUTE at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  174. 069B: attach_object 17@ to_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0
  175. 0750: set_object 17@ visibility 0
  176. 0004: $PARACHUTE_CREATION_STAGE = 2
  177.  
  178. :PLCHUTE_374
  179. 00D6: if and
  180. 0038: $PARACHUTE_CREATION_STAGE == 2
  181. 0038: $FREEFALL_STAGE == 1
  182. 004D: jump_if_false @PLCHUTE_406
  183. 0004: $PARACHUTE_CREATION_STAGE = 3
  184.  
  185. :PLCHUTE_406
  186. 00D6: if and
  187. 0038: $FREEFALL_STAGE == 0
  188. 0018: $PARACHUTE_CREATION_STAGE > 0
  189. 004D: jump_if_false @PLCHUTE_562
  190. 00D6: if
  191. 0818: actor $PLAYER_ACTOR in_air
  192. 004D: jump_if_false @PLCHUTE_562
  193. 083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ $1507 $1508 $1509
  194. 00D6: if
  195. 0022: -10.0 > $1509
  196. 004D: jump_if_false @PLCHUTE_562
  197. 0819: 7@ = actor $PLAYER_ACTOR distance_from_ground
  198. 00D6: if
  199. 0021: 7@ > 20.0
  200. 004D: jump_if_false @PLCHUTE_562
  201. 097A: play_audio_at -1000.0 -1000.0 -1000.0 event 1037
  202. 0004: $FREEFALL_STAGE = 1
  203. 01B9: set_actor $PLAYER_ACTOR armed_weapon_to 46
  204. 0006: 0@ = 0
  205. 0005: $8268 = 0.0
  206.  
  207. :PLCHUTE_562
  208. 00D6: if
  209. 0038: $FREEFALL_STAGE == 1
  210. 004D: jump_if_false @PLCHUTE_2383
  211. 00D6: if
  212. 0039: 0@ == 0
  213. 004D: jump_if_false @PLCHUTE_605
  214. 0006: 0@ = 2
  215.  
  216. :PLCHUTE_605
  217. 00D6: if
  218. 0039: 0@ == 2
  219. 004D: jump_if_false @PLCHUTE_726
  220. 062E: unknown_get_actor $PLAYER_ACTOR task 2066 status_store_to 27@ // ret 7 if not found
  221. 00D6: if
  222. 04A4: 27@ == 7 // @ == any
  223. 004D: jump_if_false @PLCHUTE_726
  224. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PED" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB
  225. 04ED: load_animation "PARACHUTE"
  226. 0006: 15@ = 1
  227. 0172: 1@ = actor $PLAYER_ACTOR Z_angle
  228. 0006: 0@ = 3
  229.  
  230. :PLCHUTE_726
  231. 00D6: if
  232. 0039: 0@ == 3
  233. 004D: jump_if_false @PLCHUTE_2383
  234. 062E: unknown_get_actor $PLAYER_ACTOR task 2066 status_store_to 27@ // ret 7 if not found
  235. 00D6: if
  236. 04A4: 27@ == 7 // @ == any
  237. 004D: jump_if_false @PLCHUTE_812
  238. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PED" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB
  239.  
  240. :PLCHUTE_812
  241. 0819: 7@ = actor $PLAYER_ACTOR distance_from_ground
  242. 00D6: if and
  243. 0023: 100.0 > 7@
  244. 0021: 7@ > 60.0
  245. 004D: jump_if_false @PLCHUTE_909
  246. 00D6: if
  247. 04EE: animation "PARACHUTE" loaded
  248. 004D: jump_if_false @PLCHUTE_909
  249. 00D6: if
  250. 0038: $ONMISSION == 0
  251. 004D: jump_if_false @PLCHUTE_909
  252. 00BC: show_text_highpriority GXT 'PARA_01' time 1000 flag 1 // ~s~Open your parachute!
  253.  
  254. :PLCHUTE_909
  255. 0494: get_joystick 0 data_to 10@ 11@ 12@ 12@
  256. 00D6: if
  257. 0038: $1511 == 1
  258. 004D: jump_if_false @PLCHUTE_957
  259. 0006: 10@ = 0
  260. 0006: 11@ = 0
  261.  
  262. :PLCHUTE_957
  263. 0093: 21@ = integer 10@ to_float
  264. 0017: 21@ /= 4.267
  265. 0063: 21@ -= 2@ // (float)
  266. 0017: 21@ /= 20.0
  267. 005B: 2@ += 21@ // (float)
  268. 0087: 21@ = 2@ // (float)
  269. 0017: 21@ /= 5.0
  270. 0063: 1@ -= 21@ // (float)
  271. 00D6: if
  272. 0021: 1@ > 180.0
  273. 004D: jump_if_false @PLCHUTE_1058
  274. 000F: 1@ -= 360.0
  275.  
  276. :PLCHUTE_1058
  277. 00D6: if
  278. 0023: -180.0 > 1@
  279. 004D: jump_if_false @PLCHUTE_1089
  280. 000B: 1@ += 360.0
  281.  
  282. :PLCHUTE_1089
  283. 0093: 22@ = integer 11@ to_float
  284. 0017: 22@ /= 4.267
  285. 0063: 22@ -= 3@ // (float)
  286. 0017: 22@ /= 20.0
  287. 005B: 3@ += 22@ // (float)
  288. 083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 8@ 9@ $1509
  289. 00D6: if
  290. 0024: $1504 > $1509 // (float)
  291. 004D: jump_if_false @PLCHUTE_1174
  292. 0086: $1509 = $1504 // (float)
  293.  
  294. :PLCHUTE_1174
  295. 00D6: if
  296. 0024: $8268 > $1509 // (float)
  297. 004D: jump_if_false @PLCHUTE_1201
  298. 0086: $8268 = $1509 // (float)
  299.  
  300. :PLCHUTE_1201
  301. 00D6: if
  302. 0024: $1504 > $8268 // (float)
  303. 004D: jump_if_false @PLCHUTE_1228
  304. 0086: $8268 = $1504 // (float)
  305.  
  306. :PLCHUTE_1228
  307. 00D6: if and
  308. 0024: $1509 > $8268 // (float)
  309. 8038: not $1902 == 1
  310. 004D: jump_if_false @PLCHUTE_1404
  311. 00D6: if
  312. 84AD: not actor $PLAYER_ACTOR in_water
  313. 004D: jump_if_false @PLCHUTE_1358
  314. 00D6: if
  315. 0022: -20.0 > $8268
  316. 004D: jump_if_false @PLCHUTE_1305
  317. 0004: $FREEFALL_STAGE = 2
  318. 0002: jump @PLCHUTE_1351
  319.  
  320. :PLCHUTE_1305
  321. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PED" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time 100 // versionB
  322. 0004: $FREEFALL_STAGE = 7
  323.  
  324. :PLCHUTE_1351
  325. 0002: jump @PLCHUTE_1404
  326.  
  327. :PLCHUTE_1358
  328. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PED" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time 100 // versionB
  329. 0004: $FREEFALL_STAGE = 7
  330.  
  331. :PLCHUTE_1404
  332. 0087: 4@ = 3@ // (float)
  333. 0017: 4@ /= 30.0
  334. 006F: 4@ *= $1505 // (float)
  335. 02F6: $1507 = cosine 1@ // (float)
  336. 02F7: $1508 = sine 1@ // (float)
  337. 006D: $1507 *= 4@ // (float)
  338. 006D: $1508 *= 4@ // (float)
  339. 0011: $1508 *= -1.0
  340. 0059: $1508 += $1506 // (float)
  341. 0087: 21@ = 8@ // (float)
  342. 0065: 21@ -= $1507 // (float)
  343. 0013: 21@ *= 0.01
  344. 0088: $1507 = 8@ // (float)
  345. 0067: $1507 -= 21@ // (float)
  346. 0087: 21@ = 9@ // (float)
  347. 0065: 21@ -= $1508 // (float)
  348. 0013: 21@ *= 0.01
  349. 0088: $1508 = 9@ // (float)
  350. 0067: $1508 -= 21@ // (float)
  351. 0085: 12@ = 10@ // (int)
  352. 0085: 13@ = 11@ // (int)
  353. 0095: make 12@ absolute_integer
  354. 0095: make 13@ absolute_integer
  355. 00D6: if or
  356. 0019: 12@ > 40
  357. 0019: 13@ > 40
  358. 004D: jump_if_false @PLCHUTE_2106
  359. 00D6: if
  360. 001D: 12@ > 13@ // (int)
  361. 004D: jump_if_false @PLCHUTE_1869
  362. 00D6: if
  363. 0029: 10@ >= 0
  364. 004D: jump_if_false @PLCHUTE_1748
  365. 00D6: if
  366. 8039: not 15@ == 2
  367. 004D: jump_if_false @PLCHUTE_1748
  368. 00D6: if
  369. 04EE: animation "PARACHUTE" loaded
  370. 004D: jump_if_false @PLCHUTE_1741
  371. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_R" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  372.  
  373. :PLCHUTE_1741
  374. 0006: 15@ = 2
  375.  
  376. :PLCHUTE_1748
  377. 00D6: if
  378. 001B: 0 > 10@
  379. 004D: jump_if_false @PLCHUTE_1862
  380. 00D6: if
  381. 8039: not 15@ == 3
  382. 004D: jump_if_false @PLCHUTE_1862
  383. 00D6: if
  384. 04EE: animation "PARACHUTE" loaded
  385. 004D: jump_if_false @PLCHUTE_1855
  386. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_L" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  387.  
  388. :PLCHUTE_1855
  389. 0006: 15@ = 3
  390.  
  391. :PLCHUTE_1862
  392. 0002: jump @PLCHUTE_2099
  393.  
  394. :PLCHUTE_1869
  395. 00D6: if
  396. 0029: 11@ >= 0
  397. 004D: jump_if_false @PLCHUTE_1981
  398. 00D6: if
  399. 8039: not 15@ == 4
  400. 004D: jump_if_false @PLCHUTE_1981
  401. 00D6: if
  402. 04EE: animation "PARACHUTE" loaded
  403. 004D: jump_if_false @PLCHUTE_1974
  404. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  405.  
  406. :PLCHUTE_1974
  407. 0006: 15@ = 4
  408.  
  409. :PLCHUTE_1981
  410. 00D6: if
  411. 001B: 0 > 11@
  412. 004D: jump_if_false @PLCHUTE_2099
  413. 00D6: if
  414. 8039: not 15@ == 5
  415. 004D: jump_if_false @PLCHUTE_2099
  416. 00D6: if
  417. 04EE: animation "PARACHUTE" loaded
  418. 004D: jump_if_false @PLCHUTE_2092
  419. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_ACCEL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  420.  
  421. :PLCHUTE_2092
  422. 0006: 15@ = 5
  423.  
  424. :PLCHUTE_2099
  425. 0002: jump @PLCHUTE_2200
  426.  
  427. :PLCHUTE_2106
  428. 00D6: if
  429. 8039: not 15@ == 1
  430. 004D: jump_if_false @PLCHUTE_2200
  431. 00D6: if
  432. 04EE: animation "PARACHUTE" loaded
  433. 004D: jump_if_false @PLCHUTE_2200
  434. 0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  435. 0006: 15@ = 1
  436.  
  437. :PLCHUTE_2200
  438. 00D6: if or
  439. 00E1: player 0 pressed_key 17
  440. 0038: $1512 == 1
  441. 004D: jump_if_false @PLCHUTE_2383
  442. 00D6: if
  443. 8038: not $1902 == 1
  444. 004D: jump_if_false @PLCHUTE_2383
  445. 00D6: if
  446. 04EE: animation "PARACHUTE" loaded
  447. 004D: jump_if_false @PLCHUTE_2383
  448. 00D6: if and
  449. 0038: $PARACHUTE_CREATION_STAGE == 3
  450. 0038: $1511 == 0
  451. 004D: jump_if_false @PLCHUTE_2383
  452. 0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_OPEN" IFP_file "PARACHUTE" 8.0 loopA 0 lockX 0 lockY 0 lockF 1 time -2 // versionB
  453. 097A: play_audio_at -1000.0 -1000.0 -1000.0 event 1038
  454. 008A: $8270 = 32@ // (int)
  455. 0008: $8270 += 1100
  456. 0004: $FREEFALL_STAGE = 3
  457. 0006: 0@ = 0
  458.  
  459. :PLCHUTE_2383
  460. 00D6: if
  461. 0038: $FREEFALL_STAGE == 2
  462. 004D: jump_if_false @PLCHUTE_2501
  463. 00D6: if
  464. 04EE: animation "PARACHUTE" loaded
  465. 004D: jump_if_false @PLCHUTE_2489
  466. 0173: set_actor $PLAYER_ACTOR Z_angle_to 1@
  467. 0829: actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_DIE" IFP_file "PARACHUTE" 1000.0 time 0 and_dies
  468. 09F1: play_audio_at_actor $PLAYER_ACTOR event 1189
  469. 0002: jump @PLCHUTE_2494
  470.  
  471. :PLCHUTE_2489
  472. 05BE: AS_kill_actor $PLAYER_ACTOR
  473.  
  474. :PLCHUTE_2494
  475. 0050: gosub @PLCHUTE_5516
  476.  
  477. :PLCHUTE_2501
  478. 00D6: if
  479. 0038: $FREEFALL_STAGE == 3
  480. 004D: jump_if_false @PLCHUTE_4777
  481. 00D6: if
  482. 0018: $8270 > 0
  483. 004D: jump_if_false @PLCHUTE_2583
  484. 00D6: if
  485. 001F: 32@ > $8270 // (int)
  486. 004D: jump_if_false @PLCHUTE_2583
  487. 097A: play_audio_at -1000.0 -1000.0 -1000.0 event 1039
  488. 0004: $8270 = 0
  489.  
  490. :PLCHUTE_2583
  491. 00D6: if
  492. 0039: 0@ == 0
  493. 004D: jump_if_false @PLCHUTE_2686
  494. 0087: 25@ = 3@ // (float)
  495. 0017: 25@ /= 500.0
  496. 0087: 26@ = 2@ // (float)
  497. 0017: 26@ /= 500.0
  498. 0085: 18@ = 32@ // (int)
  499. 0085: 19@ = 32@ // (int)
  500. 0087: 5@ = 4@ // (float)
  501. 0013: 5@ *= -1.0
  502. 0089: 6@ = $1509 // (float)
  503. 0006: 0@ = 1
  504.  
  505. :PLCHUTE_2686
  506. 00D6: if
  507. 0039: 0@ == 1
  508. 004D: jump_if_false @PLCHUTE_2853
  509. 0085: 10@ = 32@ // (int)
  510. 0062: 10@ -= 19@ // (int)
  511. 00D6: if
  512. 001B: 500 > 10@
  513. 004D: jump_if_false @PLCHUTE_2826
  514. 0085: 10@ = 32@ // (int)
  515. 0062: 10@ -= 18@ // (int)
  516. 0085: 18@ = 32@ // (int)
  517. 0093: 21@ = integer 10@ to_float
  518. 0087: 22@ = 25@ // (float)
  519. 006B: 22@ *= 21@ // (float)
  520. 0087: 23@ = 26@ // (float)
  521. 006B: 23@ *= 21@ // (float)
  522. 0063: 3@ -= 22@ // (float)
  523. 0063: 2@ -= 23@ // (float)
  524. 0002: jump @PLCHUTE_2853
  525.  
  526. :PLCHUTE_2826
  527. 0007: 2@ = 0.0
  528. 0007: 3@ = 0.0
  529. 0006: 0@ = 2
  530.  
  531. :PLCHUTE_2853
  532. 00D6: if
  533. 0039: 0@ == 2
  534. 004D: jump_if_false @PLCHUTE_2961
  535. 00D6: if
  536. 03CA: object 17@ exists
  537. 004D: jump_if_false @PLCHUTE_2961
  538. 0750: set_object 17@ visibility 1
  539. 08D2: object 17@ scale_model 0.0
  540. 0085: 19@ = 32@ // (int)
  541. 0001: wait 0 ms
  542. 075A: set_object 17@ animation "PARA_OPEN_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
  543. 0006: 0@ = 3
  544.  
  545. :PLCHUTE_2961
  546. 00D6: if
  547. 0039: 0@ == 3
  548. 004D: jump_if_false @PLCHUTE_3064
  549. 0085: 10@ = 32@ // (int)
  550. 0062: 10@ -= 19@ // (int)
  551. 00D6: if
  552. 001B: 500 > 10@
  553. 004D: jump_if_false @PLCHUTE_3047
  554. 0093: 21@ = integer 10@ to_float
  555. 0017: 21@ /= 500.0
  556. 08D2: object 17@ scale_model 21@
  557. 0002: jump @PLCHUTE_3064
  558.  
  559. :PLCHUTE_3047
  560. 08D2: object 17@ scale_model 1.0
  561. 0006: 0@ = 4
  562.  
  563. :PLCHUTE_3064
  564. 00D6: if
  565. 0039: 0@ == 5
  566. 004D: jump_if_false @PLCHUTE_3132
  567. 0107: 20@ = create_object #PARA_COLLISION at 0.0 0.0 0.0
  568. 0750: set_object 20@ visibility 0
  569. 0392: make_object 20@ moveable 1
  570. 04D9: object 20@ set_scripted_collision_check 1
  571. 0006: 0@ = 6
  572.  
  573. :PLCHUTE_3132
  574. 00D6: if
  575. 0039: 0@ == 6
  576. 004D: jump_if_false @PLCHUTE_4350
  577. 0494: get_joystick 0 data_to 10@ 11@ 12@ 12@
  578. 00D6: if
  579. 0038: $1511 == 1
  580. 004D: jump_if_false @PLCHUTE_3198
  581. 0006: 10@ = 0
  582. 0006: 11@ = 0
  583.  
  584. :PLCHUTE_3198
  585. 0093: 21@ = integer 10@ to_float
  586. 0017: 21@ /= 4.267
  587. 0063: 21@ -= 2@ // (float)
  588. 0017: 21@ /= 20.0
  589. 005B: 2@ += 21@ // (float)
  590. 0087: 21@ = 2@ // (float)
  591. 0017: 21@ /= 15.0
  592. 0063: 1@ -= 21@ // (float)
  593. 00D6: if
  594. 0021: 1@ > 180.0
  595. 004D: jump_if_false @PLCHUTE_3299
  596. 000F: 1@ -= 360.0
  597.  
  598. :PLCHUTE_3299
  599. 00D6: if
  600. 0023: -180.0 > 1@
  601. 004D: jump_if_false @PLCHUTE_3330
  602. 000B: 1@ += 360.0
  603.  
  604. :PLCHUTE_3330
  605. 02F6: $1507 = cosine 1@ // (float)
  606. 02F7: $1508 = sine 1@ // (float)
  607. 0069: $1507 *= $1500 // (float)
  608. 0069: $1508 *= $1500 // (float)
  609. 0011: $1507 *= -1.0
  610. 0085: 12@ = 10@ // (int)
  611. 0085: 13@ = 11@ // (int)
  612. 0095: make 12@ absolute_integer
  613. 0095: make 13@ absolute_integer
  614. 00D6: if or
  615. 0019: 12@ > 40
  616. 0019: 13@ > 40
  617. 004D: jump_if_false @PLCHUTE_4062
  618. 00D6: if
  619. 001D: 12@ > 13@ // (int)
  620. 004D: jump_if_false @PLCHUTE_3737
  621. 0089: 21@ = $1501 // (float)
  622. 0065: 21@ -= $1509 // (float)
  623. 0017: 21@ /= 20.0
  624. 005F: $1509 += 21@ // (float)
  625. 00D6: if
  626. 0029: 10@ >= 0
  627. 004D: jump_if_false @PLCHUTE_3603
  628. 00D6: if
  629. 8039: not 15@ == 2
  630. 004D: jump_if_false @PLCHUTE_3603
  631. 0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_STEERR" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  632. 075A: set_object 17@ animation "PARA_STEERR_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  633. 0006: 15@ = 2
  634.  
  635. :PLCHUTE_3603
  636. 00D6: if
  637. 001B: 0 > 10@
  638. 004D: jump_if_false @PLCHUTE_3730
  639. 00D6: if
  640. 8039: not 15@ == 3
  641. 004D: jump_if_false @PLCHUTE_3730
  642. 0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_STEERL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  643. 075A: set_object 17@ animation "PARA_STEERL_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  644. 0006: 15@ = 3
  645.  
  646. :PLCHUTE_3730
  647. 0002: jump @PLCHUTE_4055
  648.  
  649. :PLCHUTE_3737
  650. 00D6: if
  651. 0029: 11@ >= 0
  652. 004D: jump_if_false @PLCHUTE_3896
  653. 0089: 21@ = $1503 // (float)
  654. 0065: 21@ -= $1509 // (float)
  655. 0017: 21@ /= 20.0
  656. 005F: $1509 += 21@ // (float)
  657. 00D6: if
  658. 8039: not 15@ == 4
  659. 004D: jump_if_false @PLCHUTE_3896
  660. 0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_DECEL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  661. 075A: set_object 17@ animation "PARA_DECEL_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  662. 0006: 15@ = 4
  663.  
  664. :PLCHUTE_3896
  665. 00D6: if
  666. 001B: 0 > 11@
  667. 004D: jump_if_false @PLCHUTE_4055
  668. 0089: 21@ = $1501 // (float)
  669. 0065: 21@ -= $1509 // (float)
  670. 0017: 21@ /= 20.0
  671. 005F: $1509 += 21@ // (float)
  672. 00D6: if
  673. 8039: not 15@ == 5
  674. 004D: jump_if_false @PLCHUTE_4055
  675. 0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_FLOAT" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  676. 075A: set_object 17@ animation "PARA_FLOAT_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  677. 0006: 15@ = 5
  678.  
  679. :PLCHUTE_4055
  680. 0002: jump @PLCHUTE_4221
  681.  
  682. :PLCHUTE_4062
  683. 0089: 21@ = $1501 // (float)
  684. 0065: 21@ -= $1509 // (float)
  685. 0017: 21@ /= 20.0
  686. 005F: $1509 += 21@ // (float)
  687. 00D6: if
  688. 8039: not 15@ == 5
  689. 004D: jump_if_false @PLCHUTE_4221
  690. 00D6: if
  691. 8039: not 15@ == 1
  692. 004D: jump_if_false @PLCHUTE_4221
  693. 0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_FLOAT" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  694. 075A: set_object 17@ animation "PARA_FLOAT_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  695. 0006: 15@ = 1
  696.  
  697. :PLCHUTE_4221
  698. 01BB: store_object 17@ position_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3
  699. 0815: put_object 20@ at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 and_keep_rotation
  700. 00D6: if
  701. 04DA: has_object 20@ collided
  702. 004D: jump_if_false @PLCHUTE_4314
  703. 075A: set_object 17@ animation "PARA_RIP_LOOP_O" IFP_file "PARACHUTE" 8.0 lockF 1 loop 1 // IF AND SET
  704. 0006: 0@ = 7
  705.  
  706. :PLCHUTE_4314
  707. 00D6: if
  708. 00E1: player 0 pressed_key 15
  709. 004D: jump_if_false @PLCHUTE_4350
  710. 0792: disembark_instantly_actor $PLAYER_ACTOR
  711. 0004: $FREEFALL_STAGE = 6
  712. 0004: $1498 = 3
  713.  
  714. :PLCHUTE_4350
  715. 00D6: if
  716. 03CA: object 17@ exists
  717. 004D: jump_if_false @PLCHUTE_4589
  718. 00D6: if
  719. 0837: object 17@ animation == "PARA_OPEN_O"
  720. 004D: jump_if_false @PLCHUTE_4589
  721. 0839: get_object 17@ animation "PARA_OPEN_O" progress_to 21@
  722. 0087: 22@ = 6@ // (float)
  723. 0065: 22@ -= $1501 // (float)
  724. 0087: 23@ = 22@ // (float)
  725. 006B: 23@ *= 21@ // (float)
  726. 0088: $1509 = 6@ // (float)
  727. 0067: $1509 -= 23@ // (float)
  728. 0087: 22@ = 5@ // (float)
  729. 0065: 22@ -= $1500 // (float)
  730. 0087: 23@ = 22@ // (float)
  731. 006B: 23@ *= 21@ // (float)
  732. 0087: 4@ = 5@ // (float)
  733. 0063: 4@ -= 23@ // (float)
  734. 02F6: $1507 = cosine 1@ // (float)
  735. 02F7: $1508 = sine 1@ // (float)
  736. 006D: $1507 *= 4@ // (float)
  737. 006D: $1508 *= 4@ // (float)
  738. 0011: $1507 *= -1.0
  739. 00D6: if and
  740. 0043: 21@ == 1.0
  741. 0039: 0@ == 4
  742. 004D: jump_if_false @PLCHUTE_4589
  743. 0006: 0@ = 5
  744.  
  745. :PLCHUTE_4589
  746. 00D6: if
  747. 8118: not actor $PLAYER_ACTOR dead
  748. 004D: jump_if_false @PLCHUTE_4777
  749. 00D6: if
  750. 04AD: actor $PLAYER_ACTOR in_water
  751. 004D: jump_if_false @PLCHUTE_4728
  752. 0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_LAND_WATER" IFP_file "PARACHUTE" 8.0 loopA 1 lockX 1 lockY 0 lockF 0 time 1000 // versionB
  753. 075A: set_object 17@ animation "PARA_LAND_WATER_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
  754. 0004: $FREEFALL_STAGE = 5
  755. 0006: 0@ = 0
  756.  
  757. :PLCHUTE_4728
  758. 083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 21@ 21@ 23@
  759. 00D6: if
  760. 0021: 23@ > -0.1
  761. 004D: jump_if_false @PLCHUTE_4777
  762. 0004: $FREEFALL_STAGE = 4
  763. 0006: 0@ = 0
  764.  
  765. :PLCHUTE_4777
  766. 00D6: if
  767. 0038: $FREEFALL_STAGE == 4
  768. 004D: jump_if_false @PLCHUTE_5267
  769. 00D6: if
  770. 0039: 0@ == 0
  771. 004D: jump_if_false @PLCHUTE_5164
  772. 0004: $1498 = 1
  773. 00A0: store_actor $PLAYER_ACTOR position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  774. 000D: $TEMPVAR_Z_COORD -= 1.0
  775. 00A1: put_actor $PLAYER_ACTOR at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  776. 083E: set_actor $PLAYER_ACTOR rotation 0.0 0.0 1@ while_in_air
  777. 00D6: if
  778. 0022: -10.0 > $1509
  779. 004D: jump_if_false @PLCHUTE_4918
  780. 0004: $FREEFALL_STAGE = 2
  781. 0006: 0@ = 0
  782. 0002: jump @PLCHUTE_5088
  783.  
  784. :PLCHUTE_4918
  785. 00D6: if
  786. 0022: -4.0 > $1509
  787. 004D: jump_if_false @PLCHUTE_5043
  788. 0615: define_AS_pack_begin 14@
  789. 0812: AS_actor -1 perform_animation "FALL_FRONT" IFP_file "PED" 20.0 loopA 0 lockX 0 lockY 0 lockF 1 time 700 // versionB
  790. 0812: AS_actor -1 perform_animation "GETUP_FRONT" IFP_file "PED" 8.0 loopA 0 lockX 1 lockY 0 lockF 0 time -2 // versionB
  791. 0616: define_AS_pack_end 14@
  792. 0618: assign_actor $PLAYER_ACTOR to_AS_pack 14@
  793. 061B: remove_references_to_AS_pack 14@
  794. 0002: jump @PLCHUTE_5081
  795.  
  796. :PLCHUTE_5043
  797. 0812: AS_actor $PLAYER_ACTOR perform_animation "RUN_PLAYER" IFP_file "PED" 8.0 loopA 1 lockX 1 lockY 0 lockF 0 time 1000 // versionB
  798.  
  799. :PLCHUTE_5081
  800. 0006: 0@ = 1
  801.  
  802. :PLCHUTE_5088
  803. 075A: set_object 17@ animation "PARA_LAND_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
  804. 0682: detach_object 17@ 0.0 0.0 0.0 collision_detection 0
  805. 0085: 18@ = 32@ // (int)
  806. 000A: 18@ += 1000
  807.  
  808. :PLCHUTE_5164
  809. 00D6: if
  810. 0039: 0@ == 1
  811. 004D: jump_if_false @PLCHUTE_5267
  812. 00D6: if
  813. 0837: object 17@ animation == "PARA_LAND_O"
  814. 004D: jump_if_false @PLCHUTE_5267
  815. 0839: get_object 17@ animation "PARA_LAND_O" progress_to 21@
  816. 00D6: if
  817. 0043: 21@ == 1.0
  818. 004D: jump_if_false @PLCHUTE_5267
  819. 0004: $1498 = 2
  820. 0050: gosub @PLCHUTE_5516
  821.  
  822. :PLCHUTE_5267
  823. 00D6: if
  824. 0038: $FREEFALL_STAGE == 5
  825. 004D: jump_if_false @PLCHUTE_5324
  826. 0004: $1498 = 1
  827. 00D6: if
  828. 0039: 0@ == 0
  829. 004D: jump_if_false @PLCHUTE_5324
  830. 0004: $1498 = 2
  831. 0050: gosub @PLCHUTE_5516
  832.  
  833. :PLCHUTE_5324
  834. 00D6: if and
  835. 0018: $FREEFALL_STAGE > 0
  836. 001A: 4 > $FREEFALL_STAGE
  837. 004D: jump_if_false @PLCHUTE_5401
  838. 00D6: if
  839. 8118: not actor $PLAYER_ACTOR dead
  840. 004D: jump_if_false @PLCHUTE_5401
  841. 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ $1507 $1508 $1509
  842. 0173: set_actor $PLAYER_ACTOR Z_angle_to 1@
  843. 083E: set_actor $PLAYER_ACTOR rotation 3@ 2@ 1@ while_in_air
  844.  
  845. :PLCHUTE_5401
  846. 00D6: if
  847. 0038: $FREEFALL_STAGE == 6
  848. 004D: jump_if_false @PLCHUTE_5426
  849. 0050: gosub @PLCHUTE_5516
  850.  
  851. :PLCHUTE_5426
  852. 00D6: if
  853. 0038: $FREEFALL_STAGE == 7
  854. 004D: jump_if_false @PLCHUTE_5451
  855. 0050: gosub @PLCHUTE_5458
  856.  
  857. :PLCHUTE_5451
  858. 0002: jump @PLCHUTE_118
  859.  
  860. :PLCHUTE_5458
  861. 0004: $FREEFALL_STAGE = 0
  862. 0006: 0@ = 0
  863. 0249: release_model #PARACHUTE
  864. 04EF: release_animation "PARACHUTE"
  865. 083E: set_actor $PLAYER_ACTOR rotation 0.0 0.0 1@ while_in_air
  866. 0992: set_player $PLAYER_CHAR weapons_scrollable 1
  867. 0051: return
  868.  
  869. :PLCHUTE_5516
  870. 0682: detach_object 17@ 0.0 0.0 0.0 collision_detection 0
  871. 09A2: destroy_object_with_fade 17@
  872. 0108: destroy_object 20@
  873. 0555: remove_weapon 46 from_actor $PLAYER_ACTOR
  874. 0004: $FREEFALL_STAGE = 0
  875. 0004: $PARACHUTE_CREATION_STAGE = 0
  876. 0006: 0@ = 0
  877. 0249: release_model #PARACHUTE
  878. 04EF: release_animation "PARACHUTE"
  879. 0249: release_model #GUN_PARA
  880. 083E: set_actor $PLAYER_ACTOR rotation 0.0 0.0 1@ while_in_air
  881. 0992: set_player $PLAYER_CHAR weapons_scrollable 1
  882. 004E: end_thread
  883.  
  884.  
  885. //-------------External script 1 (PARACHUTE)---------------
  886.  
  887. :PARACH
  888. 03A4: name_thread 'PARACH'
  889. 0004: $8275 = 0
  890. 0209: 31@ = random_int_in_ranges 0 6
  891. 0006: 11@ = 10
  892. 0006: 17@ = 0
  893. 0006: 12@ = 0
  894. 0004: $8289 = 0
  895. 00D6: if
  896. 0039: 12@ == 100
  897. 004D: jump_if_false @PARACH_122
  898. 0213: 0@ = create_pickup #BRIEFCASE type 3 at 32.1527 2239.726 125.672
  899. 009A: 8@ = create_actor_pedtype 4 model #WMYPLT at 32.1527 2239.726 125.672
  900.  
  901. :PARACH_122
  902. 00D6: if
  903. 8118: not actor 8@ dead
  904. 004D: jump_if_false @PARACH_146
  905. 0819: 30@ = actor 8@ distance_from_ground
  906.  
  907. :PARACH_146
  908. 0001: wait 0 ms
  909. 008A: $8290 = 17@ // (int)
  910. 00D6: if
  911. 0038: $8289 == 2
  912. 004D: jump_if_false @PARACH_202
  913. 00D6: if
  914. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  915. 004D: jump_if_false @PARACH_202
  916. 0050: gosub @PARACH_6417
  917.  
  918. :PARACH_202
  919. 00D6: if
  920. 8039: not 0@ == -1
  921. 004D: jump_if_false @PARACH_293
  922. 00D6: if
  923. 0039: 11@ == 10
  924. 004D: jump_if_false @PARACH_293
  925. 00D6: if
  926. 8039: not 0@ == -1
  927. 004D: jump_if_false @PARACH_286
  928. 00D6: if
  929. 0214: pickup 0@ picked_up
  930. 004D: jump_if_false @PARACH_279
  931. 0006: 11@ = 0
  932.  
  933. :PARACH_279
  934. 0002: jump @PARACH_293
  935.  
  936. :PARACH_286
  937. 0006: 11@ = 0
  938.  
  939. :PARACH_293
  940. 00D6: if
  941. 0039: 0@ == -1
  942. 004D: jump_if_false @PARACH_336
  943. 00D6: if
  944. 0039: 11@ == 10
  945. 004D: jump_if_false @PARACH_336
  946. 0006: 11@ = 0
  947.  
  948. :PARACH_336
  949. 00D6: if
  950. 0039: 11@ == 0
  951. 004D: jump_if_false @PARACH_384
  952. 04ED: load_animation "PARACHUTE"
  953. 0247: load_model #PARACHUTE
  954. 0247: load_model #PARA_PACK
  955. 0006: 11@ = 1
  956.  
  957. :PARACH_384
  958. 00D6: if
  959. 0039: 11@ == 1
  960. 004D: jump_if_false @PARACH_443
  961. 00D6: if and
  962. 04EE: animation "PARACHUTE" loaded
  963. 0248: model #PARACHUTE available
  964. 0248: model #PARA_PACK available
  965. 004D: jump_if_false @PARACH_443
  966. 0006: 11@ = 2
  967.  
  968. :PARACH_443
  969. 00D6: if
  970. 0039: 11@ == 2
  971. 004D: jump_if_false @PARACH_654
  972. 00D6: if
  973. 8118: not actor 8@ dead
  974. 004D: jump_if_false @PARACH_491
  975. 00A0: store_actor 8@ position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  976.  
  977. :PARACH_491
  978. 0107: 9@ = create_object #PARACHUTE at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  979. 0107: 10@ = create_object #PARA_PACK at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  980. 0750: set_object 9@ visibility 0
  981. 00D6: if
  982. 8118: not actor 8@ dead
  983. 004D: jump_if_false @PARACH_647
  984. 069B: attach_object 9@ to_actor 8@ with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0
  985. 0453: set_object 10@ XY_rotation 90.0 90.0 angle 90.0
  986. 070A: AS_actor 8@ attach_to_object 10@ offset -0.11 -0.05 0.0 on_bone 1 16 perform_animation "NULL" IFP_file "NULL" time 0
  987.  
  988. :PARACH_647
  989. 0006: 11@ = 3
  990.  
  991. :PARACH_654
  992. 00D6: if
  993. 0039: 11@ == 3
  994. 004D: jump_if_false @PARACH_6053
  995. 00D6: if
  996. 8118: not actor 8@ dead
  997. 004D: jump_if_false @PARACH_6053
  998. 00D6: if
  999. 0039: 31@ == 0
  1000. 004D: jump_if_false @PARACH_756
  1001. 0819: 30@ = actor 8@ distance_from_ground
  1002. 00D6: if
  1003. 0023: 5.0 > 30@
  1004. 004D: jump_if_false @PARACH_749
  1005. 0006: 31@ = 2
  1006. 0002: jump @PARACH_756
  1007.  
  1008. :PARACH_749
  1009. 0006: 31@ = 5
  1010.  
  1011. :PARACH_756
  1012. 000E: 31@ -= 1
  1013. 00D6: if
  1014. 87D6: not 8@ == $PLAYER_ACTOR // integer vars
  1015. 004D: jump_if_false @PARACH_789
  1016. 0050: gosub @PARACH_6503
  1017.  
  1018. :PARACH_789
  1019. 00D6: if
  1020. 00DF: actor 8@ driving
  1021. 004D: jump_if_false @PARACH_819
  1022. 0004: $8302 = 1
  1023. 0002: jump @PARACH_826
  1024.  
  1025. :PARACH_819
  1026. 0004: $8302 = 0
  1027.  
  1028. :PARACH_826
  1029. 00D6: if
  1030. 8118: not actor 8@ dead
  1031. 004D: jump_if_false @PARACH_1186
  1032. 00D6: if or
  1033. 0818: actor 8@ in_air
  1034. 0038: $8302 == 0
  1035. 004D: jump_if_false @PARACH_1186
  1036. 00D6: if and
  1037. 0039: 17@ == 0
  1038. 0039: 14@ == 0
  1039. 0021: 30@ > 5.0
  1040. 004D: jump_if_false @PARACH_1186
  1041. 00D6: if
  1042. 0038: $8302 == 0
  1043. 004D: jump_if_false @PARACH_988
  1044. 02F6: $8303 = cosine $8301 // (float)
  1045. 0069: $8303 *= $8300 // (float)
  1046. 0011: $8303 *= -1.0
  1047. 02F7: $8304 = sine $8301 // (float)
  1048. 0069: $8304 *= $8300 // (float)
  1049. 083D: get_actor 8@ velocity_in_direction_XYZ $8276 $8276 $8276
  1050. 083C: set_actor 8@ velocity_in_direction_XYZ $8303 $8304 $8276
  1051.  
  1052. :PARACH_988
  1053. 0006: 17@ = 1
  1054. 0004: $8275 = 1
  1055. 0085: 18@ = 32@ // (int)
  1056. 0172: 27@ = actor 8@ Z_angle
  1057. 00D6: if
  1058. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1059. 004D: jump_if_false @PARACH_1071
  1060. 0005: $8297 = 3.0
  1061. 0005: $8298 = -2.0
  1062. 0006: 16@ = 0
  1063. 0050: gosub @PARACH_6083
  1064.  
  1065. :PARACH_1071
  1066. 00D6: if
  1067. 0039: 7@ == 0
  1068. 004D: jump_if_false @PARACH_1141
  1069. 0812: AS_actor 8@ perform_animation "FALL_SKYDIVE" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB
  1070. 0002: jump @PARACH_1186
  1071.  
  1072. :PARACH_1141
  1073. 0812: AS_actor 8@ perform_animation "FALL_SKYDIVE" IFP_file "PARACHUTE" 1000.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB
  1074.  
  1075. :PARACH_1186
  1076. 00D6: if
  1077. 0039: 17@ == 1
  1078. 004D: jump_if_false @PARACH_2838
  1079. 00D6: if
  1080. 04AD: actor 8@ in_water
  1081. 004D: jump_if_false @PARACH_1268
  1082. 0829: actor 8@ perform_animation "FALL_SKYDIVE_DIE" IFP_file "PARACHUTE" 1000.0 time 0 and_dies
  1083. 0006: 17@ = 2
  1084.  
  1085. :PARACH_1268
  1086. 00D6: if
  1087. 0023: 3.0 > 30@
  1088. 004D: jump_if_false @PARACH_1337
  1089. 0829: actor 8@ perform_animation "FALL_SKYDIVE_DIE" IFP_file "PARACHUTE" 1000.0 time 0 and_dies
  1090. 0006: 17@ = 2
  1091.  
  1092. :PARACH_1337
  1093. 083D: get_actor 8@ velocity_in_direction_XYZ $8276 $8276 $8277
  1094. 00D6: if
  1095. 0027: 1@ > $8277 // (float)
  1096. 004D: jump_if_false @PARACH_1378
  1097. 0088: $8277 = 1@ // (float)
  1098.  
  1099. :PARACH_1378
  1100. 008A: $8282 = 32@ // (int)
  1101. 0066: $8282 -= 18@ // (int)
  1102. 008F: 28@ = integer $8282 to_float
  1103. 0017: 28@ /= 2000.0
  1104. 00D6: if
  1105. 0021: 28@ > 1.0
  1106. 004D: jump_if_false @PARACH_1443
  1107. 0007: 28@ = 1.0
  1108.  
  1109. :PARACH_1443
  1110. 00D6: if
  1111. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1112. 004D: jump_if_false @PARACH_1490
  1113. 00D6: if
  1114. 0033: 1.0 >= 28@
  1115. 004D: jump_if_false @PARACH_1490
  1116. 0050: gosub @PARACH_6307
  1117.  
  1118. :PARACH_1490
  1119. 00D6: if
  1120. 0043: 28@ == 1.0
  1121. 004D: jump_if_false @PARACH_2431
  1122. 00D6: if
  1123. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1124. 004D: jump_if_false @PARACH_2413
  1125. 0494: get_joystick 0 data_to $8282 $8283 $8284 $8284
  1126. 008D: $8279 = integer $8282 to_float
  1127. 0015: $8279 /= 256.0
  1128. 005D: 25@ += $8279 // (float)
  1129. 0088: $8280 = 25@ // (float)
  1130. 0015: $8280 /= 30.0
  1131. 00D6: if
  1132. 0022: -1.6 > $8280
  1133. 004D: jump_if_false @PARACH_1621
  1134. 0005: $8280 = -1.6
  1135.  
  1136. :PARACH_1621
  1137. 00D6: if
  1138. 0020: $8280 > 1.6
  1139. 004D: jump_if_false @PARACH_1652
  1140. 0005: $8280 = 1.6
  1141.  
  1142. :PARACH_1652
  1143. 0065: 27@ -= $8280 // (float)
  1144. 00D6: if
  1145. 0042: $8279 == 0.0
  1146. 004D: jump_if_false @PARACH_1712
  1147. 00D6: if
  1148. 8043: not 25@ == 0.0
  1149. 004D: jump_if_false @PARACH_1712
  1150. 0013: 25@ *= 0.95
  1151.  
  1152. :PARACH_1712
  1153. 0088: $8278 = 26@ // (float)
  1154. 0011: $8278 *= 6.0
  1155. 008D: $8281 = integer $8283 to_float
  1156. 0061: $8281 -= $8278 // (float)
  1157. 0015: $8281 /= 256.0
  1158. 005D: 26@ += $8281 // (float)
  1159. 00D6: if
  1160. 0023: -30.0 > 26@
  1161. 004D: jump_if_false @PARACH_1795
  1162. 0007: 26@ = -30.0
  1163.  
  1164. :PARACH_1795
  1165. 00D6: if
  1166. 0021: 26@ > 30.0
  1167. 004D: jump_if_false @PARACH_1826
  1168. 0007: 26@ = 30.0
  1169.  
  1170. :PARACH_1826
  1171. 00D6: if
  1172. 0042: $8281 == 0.0
  1173. 004D: jump_if_false @PARACH_1878
  1174. 00D6: if
  1175. 8043: not 26@ == 0.0
  1176. 004D: jump_if_false @PARACH_1878
  1177. 0013: 26@ *= 0.97
  1178.  
  1179. :PARACH_1878
  1180. 02F6: $TEMPVAR_FLOAT_1 = cosine 27@ // (float)
  1181. 02F7: $TEMPVAR_FLOAT_2 = sine 27@ // (float)
  1182. 0088: $8279 = 26@ // (float)
  1183. 0015: $8279 /= -5.0
  1184. 006D: $TEMPVAR_FLOAT_1 *= 2@ // (float)
  1185. 0069: $TEMPVAR_FLOAT_1 *= $8279 // (float)
  1186. 0011: $TEMPVAR_FLOAT_1 *= -1.0
  1187. 006D: $TEMPVAR_FLOAT_2 *= 2@ // (float)
  1188. 0069: $TEMPVAR_FLOAT_2 *= $8279 // (float)
  1189. 083D: get_actor 8@ velocity_in_direction_XYZ $8278 $8279 $8276
  1190. 0011: $TEMPVAR_FLOAT_1 *= -1.0
  1191. 0059: $TEMPVAR_FLOAT_1 += $8278 // (float)
  1192. 0011: $TEMPVAR_FLOAT_1 *= 0.1
  1193. 0061: $8278 -= $TEMPVAR_FLOAT_1 // (float)
  1194. 0011: $TEMPVAR_FLOAT_2 *= -1.0
  1195. 0059: $TEMPVAR_FLOAT_2 += $8279 // (float)
  1196. 0011: $TEMPVAR_FLOAT_2 *= 0.1
  1197. 0061: $8279 -= $TEMPVAR_FLOAT_2 // (float)
  1198. 083C: set_actor 8@ velocity_in_direction_XYZ $8278 $8279 $8277
  1199. 083E: set_actor 8@ rotation 26@ 0.0 27@ while_in_air
  1200. 00D6: if
  1201. 001A: -100 > $8283
  1202. 004D: jump_if_false @PARACH_2171
  1203. 00D6: if
  1204. 8039: not 15@ == 4
  1205. 004D: jump_if_false @PARACH_2164
  1206. 0006: 15@ = 4
  1207. 0812: AS_actor 8@ perform_animation "FALL_SKYDIVE_ACCEL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1208.  
  1209. :PARACH_2164
  1210. 0002: jump @PARACH_2406
  1211.  
  1212. :PARACH_2171
  1213. 00D6: if and
  1214. 0038: $8282 == 0
  1215. 8039: not 15@ == 0
  1216. 004D: jump_if_false @PARACH_2248
  1217. 0006: 15@ = 0
  1218. 0812: AS_actor 8@ perform_animation "FALL_SKYDIVE" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1219.  
  1220. :PARACH_2248
  1221. 00D6: if and
  1222. 001A: 0 > $8282
  1223. 8039: not 15@ == -1
  1224. 004D: jump_if_false @PARACH_2327
  1225. 0006: 15@ = -1
  1226. 0812: AS_actor 8@ perform_animation "FALL_SKYDIVE_L" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1227.  
  1228. :PARACH_2327
  1229. 00D6: if and
  1230. 0018: $8282 > 0
  1231. 8039: not 15@ == 1
  1232. 004D: jump_if_false @PARACH_2406
  1233. 0006: 15@ = 1
  1234. 0812: AS_actor 8@ perform_animation "FALL_SKYDIVE_R" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1235.  
  1236. :PARACH_2406
  1237. 0002: jump @PARACH_2431
  1238.  
  1239. :PARACH_2413
  1240. 083C: set_actor 8@ velocity_in_direction_XYZ 0.0 0.0 1@
  1241.  
  1242. :PARACH_2431
  1243. 00D6: if or
  1244. 00E1: player 0 pressed_key 17
  1245. 0038: $8299 == 1
  1246. 004D: jump_if_false @PARACH_2652
  1247. 00D6: if
  1248. 8038: not $8299 == 2
  1249. 004D: jump_if_false @PARACH_2652
  1250. 00D6: if
  1251. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1252. 004D: jump_if_false @PARACH_2652
  1253. 0006: 17@ = 0
  1254. 0006: 15@ = 0
  1255. 0006: 14@ = 1
  1256. 0750: set_object 9@ visibility 1
  1257. 0001: wait 0 ms
  1258. 00D6: if
  1259. 8118: not actor 8@ dead
  1260. 004D: jump_if_false @PARACH_2652
  1261. 0812: AS_actor 8@ perform_animation "PARA_OPEN" IFP_file "PARACHUTE" 1000.0 loopA 0 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1262. 075A: set_object 9@ animation "PARA_OPEN_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
  1263. 083D: get_actor 8@ velocity_in_direction_XYZ $8276 $8276 24@
  1264. 0088: $8288 = 24@ // (float)
  1265. 0009: $8288 += 5.0
  1266.  
  1267. :PARACH_2652
  1268. 00D6: if and
  1269. 0039: 12@ == 1
  1270. 87D6: not 8@ == $PLAYER_ACTOR // integer vars
  1271. 004D: jump_if_false @PARACH_2838
  1272. 0006: 17@ = 0
  1273. 0006: 15@ = 0
  1274. 0006: 14@ = 1
  1275. 0750: set_object 9@ visibility 1
  1276. 0001: wait 0 ms
  1277. 00D6: if
  1278. 8118: not actor 8@ dead
  1279. 004D: jump_if_false @PARACH_2838
  1280. 0812: AS_actor 8@ perform_animation "PARA_OPEN" IFP_file "PARACHUTE" 1000.0 loopA 0 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1281. 075A: set_object 9@ animation "PARA_OPEN_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
  1282. 083D: get_actor 8@ velocity_in_direction_XYZ $8276 $8276 24@
  1283. 0088: $8288 = 24@ // (float)
  1284. 0009: $8288 += 5.0
  1285.  
  1286. :PARACH_2838
  1287. 00D6: if
  1288. 0039: 14@ == 1
  1289. 004D: jump_if_false @PARACH_3568
  1290. 00D6: if
  1291. 8118: not actor 8@ dead
  1292. 004D: jump_if_false @PARACH_3540
  1293. 00D6: if
  1294. 0611: actor 8@ performing_animation "PARA_OPEN"
  1295. 004D: jump_if_false @PARACH_3540
  1296. 0613: $8274 = actor 8@ animation "PARA_OPEN" time
  1297. 00A0: store_actor 8@ position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  1298. 0011: $8274 *= 2.0
  1299. 000D: $8274 -= 0.5
  1300. 00D6: if
  1301. 0020: $8274 > 1.0
  1302. 004D: jump_if_false @PARACH_2983
  1303. 0005: $8274 = 1.0
  1304.  
  1305. :PARACH_2983
  1306. 00D6: if
  1307. 0022: 0.0 > $8274
  1308. 004D: jump_if_false @PARACH_3014
  1309. 0005: $8274 = 0.0
  1310.  
  1311. :PARACH_3014
  1312. 00D6: if and
  1313. 0032: 0.25 >= $8274
  1314. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1315. 004D: jump_if_false @PARACH_3120
  1316. 0005: $8297 = -2.0
  1317. 0005: $8298 = -2.0
  1318. 0089: 28@ = $8274 // (float)
  1319. 0013: 28@ *= 4.0
  1320. 00D6: if
  1321. 0039: 16@ == 1
  1322. 004D: jump_if_false @PARACH_3113
  1323. 0006: 16@ = 2
  1324. 0050: gosub @PARACH_6083
  1325.  
  1326. :PARACH_3113
  1327. 0050: gosub @PARACH_6307
  1328.  
  1329. :PARACH_3120
  1330. 00D6: if and
  1331. 0020: $8274 > 0.25
  1332. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1333. 004D: jump_if_false @PARACH_3236
  1334. 0005: $8297 = 5.0
  1335. 0005: $8298 = -5.0
  1336. 0089: 28@ = $8274 // (float)
  1337. 000F: 28@ -= 0.25
  1338. 0013: 28@ *= 1.333
  1339. 00D6: if
  1340. 0039: 16@ == 2
  1341. 004D: jump_if_false @PARACH_3229
  1342. 0006: 16@ = 3
  1343. 0050: gosub @PARACH_6083
  1344.  
  1345. :PARACH_3229
  1346. 0050: gosub @PARACH_6307
  1347.  
  1348. :PARACH_3236
  1349. 0086: $8276 = $8288 // (float)
  1350. 0069: $8276 *= $8274 // (float)
  1351. 0011: $8276 *= -1.0
  1352. 005F: $8276 += 24@ // (float)
  1353. 083D: get_actor 8@ velocity_in_direction_XYZ $8278 $8279 $8277
  1354. 02F6: $TEMPVAR_FLOAT_1 = cosine 27@ // (float)
  1355. 02F7: $TEMPVAR_FLOAT_2 = sine 27@ // (float)
  1356. 006D: $TEMPVAR_FLOAT_1 *= 5@ // (float)
  1357. 0011: $TEMPVAR_FLOAT_1 *= -1.0
  1358. 006D: $TEMPVAR_FLOAT_2 *= 5@ // (float)
  1359. 0011: $TEMPVAR_FLOAT_1 *= -1.0
  1360. 0059: $TEMPVAR_FLOAT_1 += $8278 // (float)
  1361. 0011: $TEMPVAR_FLOAT_1 *= 0.01
  1362. 0061: $8278 -= $TEMPVAR_FLOAT_1 // (float)
  1363. 0011: $TEMPVAR_FLOAT_2 *= -1.0
  1364. 0059: $TEMPVAR_FLOAT_2 += $8279 // (float)
  1365. 0011: $TEMPVAR_FLOAT_2 *= 0.01
  1366. 0061: $8279 -= $TEMPVAR_FLOAT_2 // (float)
  1367. 083C: set_actor 8@ velocity_in_direction_XYZ $8278 $8279 $8276
  1368. 00D6: if
  1369. 0042: $8274 == 1.0
  1370. 004D: jump_if_false @PARACH_3540
  1371. 0812: AS_actor 8@ perform_animation "PARA_FLOAT" IFP_file "PARACHUTE" 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1372. 075A: set_object 9@ animation "PARA_FLOAT_O" IFP_file "PARACHUTE" 2.0 lockF 1 loop 1 // IF AND SET
  1373. 0006: 14@ = 2
  1374. 0089: 29@ = $8276 // (float)
  1375. 0007: 25@ = 0.0
  1376.  
  1377. :PARACH_3540
  1378. 00D6: if
  1379. 0023: 3.0 > 30@
  1380. 004D: jump_if_false @PARACH_3568
  1381. 0006: 14@ = 3
  1382.  
  1383. :PARACH_3568
  1384. 00D6: if
  1385. 0039: 14@ == 2
  1386. 004D: jump_if_false @PARACH_5824
  1387. 00D6: if and
  1388. 8039: not 13@ == 5
  1389. 04AD: actor 8@ in_water
  1390. 004D: jump_if_false @PARACH_3616
  1391. 0006: 13@ = 4
  1392.  
  1393. :PARACH_3616
  1394. 00D6: if
  1395. 0039: 13@ == 0
  1396. 004D: jump_if_false @PARACH_4766
  1397. 02F6: $TEMPVAR_FLOAT_1 = cosine 27@ // (float)
  1398. 02F7: $TEMPVAR_FLOAT_2 = sine 27@ // (float)
  1399. 0004: $8284 = 0
  1400. 0004: $8285 = 0
  1401. 00D6: if
  1402. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1403. 004D: jump_if_false @PARACH_3706
  1404. 0494: get_joystick 0 data_to $8282 $8283 $8284 $8285
  1405. 0002: jump @PARACH_3728
  1406.  
  1407. :PARACH_3706
  1408. 008A: $8282 = 22@ // (int)
  1409. 0004: $8283 = 0
  1410. 0004: $8284 = 0
  1411.  
  1412. :PARACH_3728
  1413. 00D6: if and
  1414. 8038: not $8284 == 0
  1415. 8038: not $8285 == 0
  1416. 004D: jump_if_false @PARACH_3753
  1417.  
  1418. :PARACH_3753
  1419. 00D6: if or
  1420. 0018: $8283 > 100
  1421. 0039: 12@ == 2
  1422. 004D: jump_if_false @PARACH_3811
  1423. 006D: $TEMPVAR_FLOAT_1 *= 6@ // (float)
  1424. 0011: $TEMPVAR_FLOAT_1 *= -1.0
  1425. 006D: $TEMPVAR_FLOAT_2 *= 6@ // (float)
  1426. 0002: jump @PARACH_3837
  1427.  
  1428. :PARACH_3811
  1429. 006D: $TEMPVAR_FLOAT_1 *= 5@ // (float)
  1430. 0011: $TEMPVAR_FLOAT_1 *= -1.0
  1431. 006D: $TEMPVAR_FLOAT_2 *= 5@ // (float)
  1432.  
  1433. :PARACH_3837
  1434. 0084: $8285 = $8283 // (int)
  1435. 083E: set_actor 8@ rotation 0.0 25@ 27@ while_in_air
  1436. 00D6: if
  1437. 0021: 30@ > 3.0
  1438. 004D: jump_if_false @PARACH_4574
  1439. 008D: $8281 = integer $8282 to_float
  1440. 0015: $8281 /= 128.0
  1441. 005D: 25@ += $8281 // (float)
  1442. 00D6: if
  1443. 0021: 25@ > 45.0
  1444. 004D: jump_if_false @PARACH_3939
  1445. 0007: 25@ = 45.0
  1446.  
  1447. :PARACH_3939
  1448. 00D6: if
  1449. 0023: -45.0 > 25@
  1450. 004D: jump_if_false @PARACH_3970
  1451. 0007: 25@ = -45.0
  1452.  
  1453. :PARACH_3970
  1454. 0088: $8280 = 25@ // (float)
  1455. 0015: $8280 /= 15.0
  1456. 0065: 27@ -= $8280 // (float)
  1457. 00D6: if
  1458. 0042: $8281 == 0.0
  1459. 004D: jump_if_false @PARACH_4048
  1460. 00D6: if
  1461. 8043: not 25@ == 0.0
  1462. 004D: jump_if_false @PARACH_4048
  1463. 0013: 25@ *= 0.95
  1464.  
  1465. :PARACH_4048
  1466. 083E: set_actor 8@ rotation 0.0 25@ 27@ while_in_air
  1467. 00D6: if or
  1468. 0018: $8283 > 100
  1469. 0039: 12@ == 2
  1470. 004D: jump_if_false @PARACH_4211
  1471. 0088: $TEMPVAR_FLOAT_3 = 4@ // (float)
  1472. 00D6: if
  1473. 8039: not 15@ == 4
  1474. 004D: jump_if_false @PARACH_4204
  1475. 0006: 15@ = 4
  1476. 0812: AS_actor 8@ perform_animation "PARA_DECEL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1477. 075A: set_object 9@ animation "PARA_DECEL_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  1478.  
  1479. :PARACH_4204
  1480. 0002: jump @PARACH_4574
  1481.  
  1482. :PARACH_4211
  1483. 0088: $TEMPVAR_FLOAT_3 = 3@ // (float)
  1484. 00D6: if and
  1485. 0042: $8281 == 0.0
  1486. 8039: not 15@ == 0
  1487. 004D: jump_if_false @PARACH_4336
  1488. 0006: 15@ = 0
  1489. 0812: AS_actor 8@ perform_animation "PARA_FLOAT" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1490. 075A: set_object 9@ animation "PARA_FLOAT_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  1491.  
  1492. :PARACH_4336
  1493. 00D6: if and
  1494. 0022: 0.0 > $8281
  1495. 8039: not 15@ == -1
  1496. 004D: jump_if_false @PARACH_4455
  1497. 0006: 15@ = -1
  1498. 0812: AS_actor 8@ perform_animation "PARA_STEERL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1499. 075A: set_object 9@ animation "PARA_STEERL_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  1500.  
  1501. :PARACH_4455
  1502. 00D6: if and
  1503. 0020: $8281 > 0.0
  1504. 8039: not 15@ == 1
  1505. 004D: jump_if_false @PARACH_4574
  1506. 0006: 15@ = 1
  1507. 0812: AS_actor 8@ perform_animation "PARA_STEERR" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1508. 075A: set_object 9@ animation "PARA_STEERR_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
  1509.  
  1510. :PARACH_4574
  1511. 083D: get_actor 8@ velocity_in_direction_XYZ $8278 $8279 $8276
  1512. 0011: $TEMPVAR_FLOAT_1 *= -1.0
  1513. 0059: $TEMPVAR_FLOAT_1 += $8278 // (float)
  1514. 0011: $TEMPVAR_FLOAT_1 *= 0.1
  1515. 0061: $8278 -= $TEMPVAR_FLOAT_1 // (float)
  1516. 0011: $TEMPVAR_FLOAT_2 *= -1.0
  1517. 0059: $TEMPVAR_FLOAT_2 += $8279 // (float)
  1518. 0011: $TEMPVAR_FLOAT_2 *= 0.1
  1519. 0061: $8279 -= $TEMPVAR_FLOAT_2 // (float)
  1520. 0011: $TEMPVAR_FLOAT_3 *= -1.0
  1521. 005F: $TEMPVAR_FLOAT_3 += 29@ // (float)
  1522. 0011: $TEMPVAR_FLOAT_3 *= 0.2
  1523. 0088: $8276 = 29@ // (float)
  1524. 0061: $8276 -= $TEMPVAR_FLOAT_3 // (float)
  1525. 0089: 29@ = $8276 // (float)
  1526. 083C: set_actor 8@ velocity_in_direction_XYZ $8278 $8279 $8276
  1527. 0069: $8278 *= $8278 // (float)
  1528. 0069: $8279 *= $8279 // (float)
  1529. 0086: $8280 = $8278 // (float)
  1530. 0059: $8280 += $8279 // (float)
  1531. 01FB: $8280 = square_root $8280
  1532.  
  1533. :PARACH_4766
  1534. 00D6: if
  1535. 0023: 3.0 > 30@
  1536. 004D: jump_if_false @PARACH_5104
  1537. 0173: set_actor 8@ Z_angle_to 27@
  1538. 0007: 25@ = 0.0
  1539. 02F6: $TEMPVAR_FLOAT_1 = cosine 27@ // (float)
  1540. 02F7: $TEMPVAR_FLOAT_2 = sine 27@ // (float)
  1541. 006D: $TEMPVAR_FLOAT_1 *= 6@ // (float)
  1542. 0011: $TEMPVAR_FLOAT_1 *= -1.0
  1543. 006D: $TEMPVAR_FLOAT_2 *= 6@ // (float)
  1544. 083C: set_actor 8@ velocity_in_direction_XYZ $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 -2.0
  1545. 00D6: if
  1546. 0039: 13@ == 0
  1547. 004D: jump_if_false @PARACH_5012
  1548. 0006: 13@ = 1
  1549. 0812: AS_actor 8@ perform_animation "PARA_DECEL" IFP_file "PARACHUTE" 4.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
  1550. 075A: set_object 9@ animation "PARA_DECEL_O" IFP_file "PARACHUTE" 4.0 lockF 1 loop 1 // IF AND SET
  1551. 00D6: if
  1552. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1553. 004D: jump_if_false @PARACH_5012
  1554. 0086: $8297 = $8292 // (float)
  1555. 0086: $8298 = $8291 // (float)
  1556. 0050: gosub @PARACH_6083
  1557.  
  1558. :PARACH_5012
  1559. 00D6: if and
  1560. 0039: 13@ == 1
  1561. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1562. 004D: jump_if_false @PARACH_5104
  1563. 0007: 28@ = 3.0
  1564. 0063: 28@ -= 30@ // (float)
  1565. 0013: 28@ *= 0.75
  1566. 00D6: if
  1567. 0021: 28@ > 1.0
  1568. 004D: jump_if_false @PARACH_5097
  1569. 0007: 28@ = 1.0
  1570.  
  1571. :PARACH_5097
  1572. 0050: gosub @PARACH_6307
  1573.  
  1574. :PARACH_5104
  1575. 00D6: if and
  1576. 0023: 1.5 > 30@
  1577. 0039: 13@ == 1
  1578. 004D: jump_if_false @PARACH_5219
  1579. 0006: 13@ = 2
  1580. 0812: AS_actor 8@ perform_animation "PARA_LAND" IFP_file "PARACHUTE" 1000.0 loopA 0 lockX 1 lockY 0 lockF 1 time -2 // versionB
  1581. 075A: set_object 9@ animation "PARA_LAND_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
  1582.  
  1583. :PARACH_5219
  1584. 00D6: if
  1585. 0039: 13@ == 2
  1586. 004D: jump_if_false @PARACH_5496
  1587. 00D6: if
  1588. 0611: actor 8@ performing_animation "PARA_LAND"
  1589. 004D: jump_if_false @PARACH_5496
  1590. 0613: $8274 = actor 8@ animation "PARA_LAND" time
  1591. 00D6: if
  1592. 0042: $8274 == 1.0
  1593. 004D: jump_if_false @PARACH_5496
  1594. 0108: destroy_object 9@
  1595. 0108: destroy_object 10@
  1596. 04A5: store_dead_actor 8@ position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  1597. 00D6: if
  1598. 8039: not 0@ == -1
  1599. 004D: jump_if_false @PARACH_5351
  1600. 0215: destroy_pickup 0@
  1601.  
  1602. :PARACH_5351
  1603. 05B9: AS_actor 8@ stay_idle 1 ms
  1604. 0792: disembark_instantly_actor 8@
  1605. 0006: 14@ = 3
  1606. 083E: set_actor 8@ rotation 0.0 0.0 0.0 while_in_air
  1607. 0173: set_actor 8@ Z_angle_to 27@
  1608. 00A0: store_actor 8@ position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  1609. 00D6: if
  1610. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1611. 004D: jump_if_false @PARACH_5438
  1612. 0004: $8289 = 1
  1613.  
  1614. :PARACH_5438
  1615. 00D6: if
  1616. 0038: $ONMISSION == 1
  1617. 004D: jump_if_false @PARACH_5463
  1618. 0050: gosub @PARACH_6417
  1619.  
  1620. :PARACH_5463
  1621. 0006: 0@ = 0
  1622. 0213: 0@ = create_pickup #BRIEFCASE type 3 at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  1623. 0006: 13@ = 3
  1624.  
  1625. :PARACH_5496
  1626. 00D6: if
  1627. 0039: 13@ == 4
  1628. 004D: jump_if_false @PARACH_5623
  1629. 0812: AS_actor 8@ perform_animation "PARA_LAND_WATER" IFP_file "PARACHUTE" 1000.0 loopA 0 lockX 1 lockY 0 lockF 1 time -2 // versionB
  1630. 075A: set_object 9@ animation "PARA_LAND_WATER_O" IFP_file "PARACHUTE" 1.0 lockF 0 loop 1 // IF AND SET
  1631. 0006: 13@ = 5
  1632. 0005: $8274 = 0.0
  1633.  
  1634. :PARACH_5623
  1635. 00D6: if
  1636. 0039: 13@ == 5
  1637. 004D: jump_if_false @PARACH_5824
  1638. 00D6: if
  1639. 0611: actor 8@ performing_animation "PARA_LAND_WATER"
  1640. 004D: jump_if_false @PARACH_5699
  1641. 0613: $8274 = actor 8@ animation "PARA_LAND_WATER" time
  1642.  
  1643. :PARACH_5699
  1644. 00D6: if
  1645. 0042: $8274 == 1.0
  1646. 004D: jump_if_false @PARACH_5824
  1647. 00D6: if
  1648. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1649. 004D: jump_if_false @PARACH_5746
  1650. 0004: $8289 = 1
  1651.  
  1652. :PARACH_5746
  1653. 0108: destroy_object 9@
  1654. 0108: destroy_object 10@
  1655. 0006: 13@ = 3
  1656. 05B9: AS_actor 8@ stay_idle 1 ms
  1657. 0792: disembark_instantly_actor 8@
  1658. 0006: 14@ = 3
  1659. 083E: set_actor 8@ rotation 0.0 0.0 0.0 while_in_air
  1660. 0173: set_actor 8@ Z_angle_to 27@
  1661. 00A0: store_actor 8@ position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  1662.  
  1663. :PARACH_5824
  1664. 00D6: if and
  1665. 0039: 14@ == 3
  1666. 0039: 13@ == 0
  1667. 004D: jump_if_false @PARACH_5935
  1668. 075A: set_object 9@ animation "PARA_LAND_O" IFP_file "PARACHUTE" 1.0 lockF 0 loop 1 // IF AND SET
  1669. 0829: actor 8@ perform_animation "FALL_SKYDIVE_DIE" IFP_file "PARACHUTE" 1000.0 time 0 and_dies
  1670. 0006: 13@ = 1
  1671.  
  1672. :PARACH_5935
  1673. 00D6: if
  1674. 0039: 14@ == 3
  1675. 004D: jump_if_false @PARACH_6053
  1676. 00D6: if
  1677. 0214: pickup 0@ picked_up
  1678. 004D: jump_if_false @PARACH_6004
  1679. 0006: 11@ = 10
  1680. 0006: 17@ = 0
  1681. 0006: 14@ = 0
  1682. 0006: 7@ = 0
  1683. 0006: 13@ = 0
  1684.  
  1685. :PARACH_6004
  1686. 00D6: if
  1687. 80FE: not actor 8@ sphere 0 in_sphere $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD radius 50.0 50.0 50.0
  1688. 004D: jump_if_false @PARACH_6053
  1689. 0002: jump @PARACH_6417
  1690.  
  1691. :PARACH_6053
  1692. 00D6: if
  1693. 0118: actor 8@ dead
  1694. 004D: jump_if_false @PARACH_6076
  1695. 0002: jump @PARACH_6417
  1696.  
  1697. :PARACH_6076
  1698. 0002: jump @PARACH_146
  1699.  
  1700. :PARACH_6083
  1701. 068D: get_camera_position_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3
  1702. 00A0: store_actor 8@ position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  1703. 0086: $8278 = $TEMPVAR_X_COORD // (float)
  1704. 0061: $8278 -= $TEMPVAR_FLOAT_1 // (float)
  1705. 0086: $8279 = $TEMPVAR_Y_COORD // (float)
  1706. 0061: $8279 -= $TEMPVAR_FLOAT_2 // (float)
  1707. 0086: $8293 = $TEMPVAR_FLOAT_3 // (float)
  1708. 0061: $8293 -= $TEMPVAR_Z_COORD // (float)
  1709. 0086: $8276 = $8278 // (float)
  1710. 0069: $8276 *= $8278 // (float)
  1711. 0086: $8277 = $8279 // (float)
  1712. 0069: $8277 *= $8279 // (float)
  1713. 0086: $8294 = $8276 // (float)
  1714. 0059: $8294 += $8277 // (float)
  1715. 0011: $8294 *= -1.0
  1716. 01FB: $8294 = square_root $8294
  1717. 0086: $8295 = $8297 // (float)
  1718. 0061: $8295 -= $8293 // (float)
  1719. 0011: $8294 *= -1.0
  1720. 0086: $8296 = $8298 // (float)
  1721. 0061: $8296 -= $8294 // (float)
  1722. 00D6: if
  1723. 0039: 16@ == 0
  1724. 004D: jump_if_false @PARACH_6305
  1725. 0006: 16@ = 1
  1726. 0086: $8291 = $8294 // (float)
  1727. 0086: $8292 = $8293 // (float)
  1728.  
  1729. :PARACH_6305
  1730. 0051: return
  1731.  
  1732. :PARACH_6307
  1733. 00A0: store_actor 8@ position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  1734. 0088: $8278 = 28@ // (float)
  1735. 0011: $8278 *= 180.0
  1736. 02F7: $8278 = sine $8278 // (float)
  1737. 000D: $8278 -= 1.0
  1738. 0011: $8278 *= -0.5
  1739. 0086: $TEMPVAR_FLOAT_3 = $8295 // (float)
  1740. 0069: $TEMPVAR_FLOAT_3 *= $8278 // (float)
  1741. 0059: $TEMPVAR_FLOAT_3 += $8293 // (float)
  1742. 0086: $TEMPVAR_FLOAT_2 = $8296 // (float)
  1743. 0069: $TEMPVAR_FLOAT_2 *= $8278 // (float)
  1744. 0059: $TEMPVAR_FLOAT_2 += $8294 // (float)
  1745. 0051: return
  1746.  
  1747. :PARACH_6417
  1748. 04EF: release_animation "PARACHUTE"
  1749. 0249: release_model #PARACHUTE
  1750. 0249: release_model #PARA_PACK
  1751. 00D6: if
  1752. 8039: not 0@ == -1
  1753. 004D: jump_if_false @PARACH_6463
  1754. 0215: destroy_pickup 0@
  1755.  
  1756. :PARACH_6463
  1757. 0108: destroy_object 9@
  1758. 0108: destroy_object 10@
  1759. 00D6: if
  1760. 07D6: 8@ == $PLAYER_ACTOR // integer vars
  1761. 004D: jump_if_false @PARACH_6499
  1762. 0004: $8299 = 0
  1763.  
  1764. :PARACH_6499
  1765. 004E: end_thread
  1766. 0051: return
  1767.  
  1768. :PARACH_6503
  1769. 00A0: store_actor 8@ position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
  1770. 0086: $TEMPVAR_FLOAT_1 = $8271 // (float)
  1771. 0061: $TEMPVAR_FLOAT_1 -= $TEMPVAR_X_COORD // (float)
  1772. 0086: $TEMPVAR_FLOAT_2 = $8272 // (float)
  1773. 0061: $TEMPVAR_FLOAT_2 -= $TEMPVAR_Y_COORD // (float)
  1774. 0086: $TEMPVAR_FLOAT_3 = $TEMPVAR_Z_COORD // (float)
  1775. 0061: $TEMPVAR_FLOAT_3 -= $8273 // (float)
  1776. 00D6: if
  1777. 0039: 17@ == 1
  1778. 004D: jump_if_false @PARACH_6683
  1779. 0069: $TEMPVAR_FLOAT_1 *= $TEMPVAR_FLOAT_1 // (float)
  1780. 0069: $TEMPVAR_FLOAT_2 *= $TEMPVAR_FLOAT_2 // (float)
  1781. 0059: $TEMPVAR_FLOAT_1 += $TEMPVAR_FLOAT_2 // (float)
  1782. 01FB: $TEMPVAR_FLOAT_1 = square_root $TEMPVAR_FLOAT_1
  1783. 0086: $8276 = $TEMPVAR_FLOAT_3 // (float)
  1784. 0071: $8276 /= $TEMPVAR_FLOAT_1 // (float)
  1785. 0088: $8277 = 3@ // (float)
  1786. 0075: $8277 /= 5@ // (float)
  1787. 0011: $8277 *= -1.2
  1788. 00D6: if
  1789. 0024: $8277 > $8276 // (float)
  1790. 004D: jump_if_false @PARACH_6683
  1791. 0006: 12@ = 1
  1792.  
  1793. :PARACH_6683
  1794. 00D6: if
  1795. 0039: 14@ == 2
  1796. 004D: jump_if_false @PARACH_7350
  1797. 0604: get_Z_angle_for_point $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 store_to 20@
  1798. 0172: 19@ = actor 8@ Z_angle
  1799. 000F: 3@ -= 1.0
  1800. 000F: 4@ -= 1.0
  1801. 0087: 21@ = 20@ // (float)
  1802. 0063: 21@ -= 19@ // (float)
  1803. 00D6: if
  1804. 001D: 32@ > 23@ // (int)
  1805. 004D: jump_if_false @PARACH_7137
  1806. 0085: 23@ = 32@ // (int)
  1807. 000A: 23@ += 3000
  1808. 0208: $8286 = random_float_in_ranges -20.0 0.0
  1809. 0208: $8287 = random_float_in_ranges 0.0 20.0
  1810. 0069: $TEMPVAR_FLOAT_1 *= $TEMPVAR_FLOAT_1 // (float)
  1811. 0069: $TEMPVAR_FLOAT_2 *= $TEMPVAR_FLOAT_2 // (float)
  1812. 0059: $TEMPVAR_FLOAT_1 += $TEMPVAR_FLOAT_2 // (float)
  1813. 01FB: $TEMPVAR_FLOAT_1 = square_root $TEMPVAR_FLOAT_1
  1814. 0086: $8277 = $TEMPVAR_FLOAT_1 // (float)
  1815. 0075: $8277 /= 5@ // (float)
  1816. 0086: $8276 = $TEMPVAR_FLOAT_3 // (float)
  1817. 0071: $8276 /= $8277 // (float)
  1818. 0088: $8277 = 3@ // (float)
  1819. 005F: $8277 += 4@ // (float)
  1820. 0015: $8277 /= 2.0
  1821. 0088: $8278 = 3@ // (float)
  1822. 0067: $8278 -= 4@ // (float)
  1823. 0015: $8278 /= 4.0
  1824. 0059: $8278 += $8277 // (float)
  1825. 0088: $8279 = 3@ // (float)
  1826. 0067: $8279 -= 4@ // (float)
  1827. 0015: $8279 /= -4.0
  1828. 0059: $8279 += $8277 // (float)
  1829. 0011: $8278 *= -1.0
  1830. 0011: $8279 *= -1.0
  1831. 00D6: if and
  1832. 0024: $8278 > $8276 // (float)
  1833. 0024: $8276 > $8279 // (float)
  1834. 004D: jump_if_false @PARACH_7085
  1835. 0209: $8282 = random_int_in_ranges 0 2
  1836. 00D6: if
  1837. 0038: $8282 == 0
  1838. 004D: jump_if_false @PARACH_7060
  1839. 0006: 12@ = 2
  1840.  
  1841. :PARACH_7060
  1842. 00D6: if
  1843. 0038: $8282 == 1
  1844. 004D: jump_if_false @PARACH_7085
  1845. 0006: 12@ = 0
  1846.  
  1847. :PARACH_7085
  1848. 00D6: if
  1849. 0034: $8276 >= $8278 // (float)
  1850. 004D: jump_if_false @PARACH_7111
  1851. 0006: 12@ = 0
  1852.  
  1853. :PARACH_7111
  1854. 00D6: if
  1855. 0034: $8279 >= $8276 // (float)
  1856. 004D: jump_if_false @PARACH_7137
  1857. 0006: 12@ = 2
  1858.  
  1859. :PARACH_7137
  1860. 00D6: if or
  1861. 0026: $8286 > 21@ // (float)
  1862. 0027: 21@ > $8287 // (float)
  1863. 004D: jump_if_false @PARACH_7323
  1864. 00D6: if
  1865. 0023: -180.0 > 21@
  1866. 004D: jump_if_false @PARACH_7195
  1867. 000B: 21@ += 360.0
  1868.  
  1869. :PARACH_7195
  1870. 00D6: if
  1871. 0021: 21@ > 180.0
  1872. 004D: jump_if_false @PARACH_7226
  1873. 000F: 21@ -= 360.0
  1874.  
  1875. :PARACH_7226
  1876. 0017: 21@ /= 180.0
  1877. 00D6: if
  1878. 0021: 21@ > 1.0
  1879. 004D: jump_if_false @PARACH_7267
  1880. 0007: 21@ = 1.0
  1881.  
  1882. :PARACH_7267
  1883. 00D6: if
  1884. 0023: -1.0 > 21@
  1885. 004D: jump_if_false @PARACH_7298
  1886. 0007: 21@ = -1.0
  1887.  
  1888. :PARACH_7298
  1889. 0013: 21@ *= -128.0
  1890. 0092: 22@ = float 21@ to_integer
  1891. 0002: jump @PARACH_7330
  1892.  
  1893. :PARACH_7323
  1894. 0006: 22@ = 0
  1895.  
  1896. :PARACH_7330
  1897. 000B: 3@ += 1.0
  1898. 000B: 4@ += 1.0
  1899.  
  1900. :PARACH_7350
  1901. 0051: return
  1902. 004E: end_thread
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement