R4gn0r0k

diablo1.sc

Feb 3rd, 2016
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.20 KB | None | 0 0
  1. MISSION_START
  2. // *****************************************************************************************
  3. // *********************************** Diablo 1 **************************************
  4. // *********************************** Low Rider Race **************************************
  5. // *****************************************************************************************
  6. // *** There will be a race to see who is the man. It will start at the top of the ***
  7. // *** bridge and encompass most of the industrial sector. The player must get to the ***
  8. // *** end before his three Hispanic rivals. ***
  9. // *****************************************************************************************
  10.  
  11. // Mission start stuff
  12.  
  13. GOSUB mission_start_d1
  14.  
  15. IF HAS_DEATHARREST_BEEN_EXECUTED
  16. GOSUB mission_d1_failed
  17. ENDIF
  18.  
  19. GOSUB mission_cleanup_d1
  20.  
  21. MISSION_END
  22.  
  23. // Variables for mission
  24.  
  25. //VAR_INT player_cpcounter_test//TEST VARS
  26. VAR_FLOAT car1_x car1_y car1_z car2_x car2_y car2_z car3_x car3_y car3_z players_x players_y players_z
  27. VAR_FLOAT difference_x_float_d difference_y_float_d sum_difference_d_xy ai_car1_locate_size ai_car2_locate_size ai_car3_locate_size
  28. VAR_FLOAT car2_distance_from_cp car1_distance_from_cp car3_distance_from_cp players_distance_from_cp
  29. VAR_FLOAT car1_stuck_x car1_stuck_y car1_stuck_z
  30. VAR_FLOAT car2_stuck_x car2_stuck_y car2_stuck_z
  31. VAR_FLOAT car3_stuck_x car3_stuck_y car3_stuck_z
  32. VAR_FLOAT player_x_d1 player_y_d1 player_z_d1
  33. VAR_FLOAT car1_x_d1 car1_y_d1 car1_z_d1
  34. VAR_FLOAT car2_x_d1 car2_y_d1 car2_z_d1
  35. VAR_FLOAT car3_x_d1 car3_y_d1 car3_z_d1
  36. VAR_FLOAT blip_2nd_x blip_2nd_y blip_2nd_z
  37. VAR_FLOAT cp2_x_d1 cp2_y_d1 cp2_z_d1
  38. VAR_FLOAT cp3_x_d1 cp3_y_d1 cp3_z_d1
  39. VAR_FLOAT cp4_x_d1 cp4_y_d1 cp4_z_d1
  40. VAR_FLOAT cp5_x_d1 cp5_y_d1 cp5_z_d1
  41. VAR_FLOAT cp6_x_d1 cp6_y_d1 cp6_z_d1
  42. VAR_FLOAT cp7_x_d1 cp7_y_d1 cp7_z_d1
  43. VAR_FLOAT cp8_x_d1 cp8_y_d1 cp8_z_d1
  44. VAR_FLOAT cp9_x_d1 cp9_y_d1 cp9_z_d1
  45. VAR_FLOAT cp10_x_d1 cp10_y_d1 cp10_z_d1
  46. VAR_FLOAT cp11_x_d1 cp11_y_d1 cp11_z_d1
  47. VAR_FLOAT cp12_x_d1 cp12_y_d1 cp12_z_d1
  48. VAR_FLOAT cp13_x_d1 cp13_y_d1 cp13_z_d1
  49. VAR_FLOAT cp14_x_d1 cp14_y_d1 cp14_z_d1
  50. VAR_FLOAT cp15_x_d1 cp15_y_d1 cp15_z_d1
  51. VAR_FLOAT cp16_x_d1 cp16_y_d1 cp16_z_d1
  52. VAR_FLOAT cp17_x_d1 cp17_y_d1 cp17_z_d1
  53. VAR_FLOAT cp18_x_d1 cp18_y_d1 cp18_z_d1 //players_car_speed
  54. VAR_INT blip_chase_d1 second_blip blip_car1_d1 blip_car2_d1 blip_car3_d1 //players_car_speed_int
  55. VAR_INT car1_d1 car2_d1 car3_d1 car1_health car2_health car3_health
  56. VAR_INT ped_car1_driver_d1 ped_car2_driver_d1 ped_car3_driver_d1
  57. VAR_INT game_timer_start_d1 game_timer_end_d1 player_cpcounter car1_cpcounter car2_cpcounter car3_cpcounter
  58. VAR_INT behind_car1 behind_car2 behind_car3 position timera_reset_flag_d1 timerb_reset_flag_d1
  59. VAR_INT timerc timerc_started timerc_current timerc_reset_flag_d1
  60. VAR_INT timerd timerd_started timerd_current timerd_reset_flag
  61. VAR_INT timere timere_started timere_current timere_reset_flag
  62. VAR_INT timerf timerf_started timerf_current timerf_reset_flag
  63.  
  64. // ****************************************Mission Start************************************
  65.  
  66. mission_start_d1:
  67.  
  68. flag_player_on_mission = 1
  69. flag_player_on_diablo_mission = 1
  70.  
  71. REGISTER_MISSION_GIVEN
  72.  
  73. WAIT 0
  74.  
  75. SCRIPT_NAME diablo1
  76.  
  77. game_timer_start_d1 = 0
  78. game_timer_end_d1 = 0
  79. player_cpcounter = 0
  80. car1_cpcounter = 0
  81. car2_cpcounter = 0
  82. car3_cpcounter = 0
  83. behind_car1 = 0
  84. behind_car2 = 0
  85. behind_car3 = 0
  86. position = 0
  87. timera_reset_flag_d1 = 0
  88. timerb_reset_flag_d1 = 0
  89. timerc_reset_flag_d1 = 0
  90. timerc_started = 0
  91. timerc_current = 0
  92. timerc = 0
  93. timerd = 0
  94. timerd_started = 0
  95. timerd_current = 0
  96. timerd_reset_flag = 0
  97. ai_car1_locate_size = 7.0
  98. ai_car2_locate_size = 7.0
  99. ai_car3_locate_size = 7.0
  100. timere_reset_flag = 0
  101. timerf_reset_flag = 0
  102. car1_stuck_x = 0.0
  103. car1_stuck_y = 0.0
  104. car1_stuck_z = 0.0
  105. car2_stuck_x = 0.0
  106. car2_stuck_y = 0.0
  107. car2_stuck_z = 0.0
  108. car3_stuck_x = 0.0
  109. car3_stuck_y = 0.0
  110. car3_stuck_z = 0.0
  111.  
  112. //_____________Check Points____________//
  113.  
  114. //cp1_x_d1 = 776.0
  115. //cp1_y_d1 = -917.5
  116. //cp1_z_d1 = 39.0
  117.  
  118. cp2_x_d1 = 1050.859
  119. cp2_y_d1 = -929.54
  120. cp2_z_d1 = 14.4
  121.  
  122. cp3_x_d1 = 1314.0
  123. cp3_y_d1 = -945.0
  124. cp3_z_d1 = 14.8
  125.  
  126. cp4_x_d1 = 1092.0
  127. cp4_y_d1 = -1061.0
  128. cp4_z_d1 = 14.3
  129.  
  130. cp5_x_d1 = 842.0
  131. cp5_y_d1 = -1009.0
  132. cp5_z_d1 = 4.4
  133.  
  134. cp6_x_d1 = 855.0
  135. cp6_y_d1 = -768.8
  136. cp6_z_d1 = 14.6
  137.  
  138. cp7_x_d1 = 1004.0
  139. cp7_y_d1 = -822.0
  140. cp7_z_d1 = 14.5
  141.  
  142. cp8_x_d1 = 1126.0
  143. cp8_y_d1 = -602.0
  144. cp8_z_d1 = 14.4
  145.  
  146. cp9_x_d1 = 1196.0
  147. cp9_y_d1 = -254.0
  148. cp9_z_d1 = 24.4
  149.  
  150. cp10_x_d1 = 1116.0
  151. cp10_y_d1 = -14.0
  152. cp10_z_d1 = 6.0
  153.  
  154. cp11_x_d1 = 934.0
  155. cp11_y_d1 = -38.7
  156. cp11_z_d1 = 7.0
  157.  
  158. cp12_x_d1 = 876.0
  159. cp12_y_d1 = -131.0
  160. cp12_z_d1 = 4.5
  161.  
  162. cp13_x_d1 = 870.0
  163. cp13_y_d1 = -453.0
  164. cp13_z_d1 = 14.4
  165.  
  166. cp14_x_d1 = 1049.0
  167. cp14_y_d1 = -473.0
  168. cp14_z_d1 = 14.4
  169.  
  170. cp15_x_d1 = 1337.0
  171. cp15_y_d1 = -490.0
  172. cp15_z_d1 = 46.0
  173.  
  174. cp16_x_d1 = 1337.0
  175. cp16_y_d1 = -215.0
  176. cp16_z_d1 = 45.4
  177.  
  178. cp17_x_d1 = 1048.0
  179. cp17_y_d1 = -249.0
  180. cp17_z_d1 = 5.0
  181.  
  182. cp18_x_d1 = 980.0
  183. cp18_y_d1 = -565.0
  184. cp18_z_d1 = 14.5
  185.  
  186. //______________________________________//
  187.  
  188. {
  189.  
  190. SET_PED_DENSITY_MULTIPLIER 0.0
  191. CLEAR_AREA_OF_CHARS 890.3 -309.1 0.0 1038.1 -132.9 10.0
  192.  
  193. TIMERA = 0
  194.  
  195. /*
  196. SET_FADING_COLOUR 0 0 0
  197.  
  198. DO_FADE 1500 FADE_OUT
  199.  
  200. // SWITCH_STREAMING OFF
  201.  
  202. PRINT_BIG ( DIAB1 ) 15000 2 //"Diablo Mission 1"
  203.  
  204. IF CAN_PLAYER_START_MISSION Player
  205. MAKE_PLAYER_SAFE_FOR_CUTSCENE Player
  206. ELSE
  207. GOTO mission_d1_failed
  208. ENDIF
  209.  
  210. WHILE TIMERA < 1500
  211. WAIT 0
  212.  
  213. ENDWHILE
  214.  
  215. */
  216.  
  217. LOAD_CUTSCENE EL_PH1
  218. //SET_CUTSCENE_OFFSET 939.4 -230.1 3.9
  219. SET_CUTSCENE_OFFSET 938.27 -229.561 4.023
  220.  
  221. CREATE_CUTSCENE_OBJECT PED_PLAYER cs_player
  222. SET_CUTSCENE_ANIM cs_player player
  223.  
  224. DO_FADE 1500 FADE_IN
  225.  
  226. START_CUTSCENE
  227.  
  228. GET_CUTSCENE_TIME cs_time
  229.  
  230. WHILE cs_time < 2000
  231. WAIT 0
  232. GET_CUTSCENE_TIME cs_time
  233. ENDWHILE
  234.  
  235. PRINT_NOW DIAB1_B 10000 1 //"This is El Buro of the Diablos."
  236.  
  237. WHILE cs_time < 4731
  238. WAIT 0
  239. GET_CUTSCENE_TIME cs_time
  240. ENDWHILE
  241.  
  242. PRINT_NOW DIAB1_D 10000 1 //"You're new in Liberty, but already you are gaining a reputation on the streets."
  243.  
  244. WHILE cs_time < 10501
  245. WAIT 0
  246. GET_CUTSCENE_TIME cs_time
  247. ENDWHILE
  248.  
  249. PRINT_NOW DIAB1_E 10000 1 //"There's a street race starting by the old school hall near the Callahan Bridge."
  250.  
  251. WHILE cs_time < 15111
  252. WAIT 0
  253. GET_CUTSCENE_TIME cs_time
  254. ENDWHILE
  255.  
  256. PRINT_NOW DIAB1_F 10000 1 //"Get yourself some wheels and first through all the checkpoints wins the prize."
  257.  
  258. WHILE cs_time < 20500
  259. WAIT 0
  260. GET_CUTSCENE_TIME cs_time
  261. ENDWHILE
  262.  
  263. DO_FADE 1500 FADE_OUT
  264.  
  265. WHILE NOT HAS_CUTSCENE_FINISHED
  266. WAIT 0
  267. ENDWHILE
  268.  
  269. CLEAR_PRINTS
  270. SWITCH_STREAMING ON
  271.  
  272. WHILE GET_FADING_STATUS
  273. WAIT 0
  274. ENDWHILE
  275.  
  276. CLEAR_CUTSCENE
  277. SET_PED_DENSITY_MULTIPLIER 1.0
  278.  
  279. WAIT 500
  280.  
  281. DO_FADE 1500 FADE_IN
  282.  
  283. //____________________________________________________________________//
  284.  
  285.  
  286. REQUEST_MODEL PED_GANG_DIABLO_A
  287. REQUEST_MODEL PED_GANG_DIABLO_B
  288. REQUEST_MODEL CAR_CHEETAH
  289.  
  290. WHILE NOT HAS_MODEL_LOADED CAR_CHEETAH
  291. OR NOT HAS_MODEL_LOADED PED_GANG_DIABLO_A
  292. OR NOT HAS_MODEL_LOADED PED_GANG_DIABLO_B
  293. WAIT 0
  294. ENDWHILE
  295.  
  296. //WHILE NOT IS_BUTTON_PRESSED PAD1 LEFTSHOCK
  297. // WAIT 0
  298. //ENDWHILE
  299.  
  300. SWITCH_ROADS_OFF 1034.0 -956.0 12.0 1063.0 -847.0 20.0
  301.  
  302. CREATE_CAR CAR_CHEETAH 1048.1465 -858.6693 13.7827 car1_d1
  303. LOCK_CAR_DOORS car1_d1 CARLOCK_LOCKED
  304. SET_CAR_PROOFS car1_d1 TRUE TRUE TRUE FALSE TRUE
  305. SET_CAR_WATERTIGHT car1_d1 TRUE
  306. SET_CAR_STRONG car1_d1 TRUE
  307. SET_UPSIDEDOWN_CAR_NOT_DAMAGED car1_d1 TRUE
  308.  
  309. CREATE_CAR CAR_CHEETAH 1053.3384 -859.3337 13.7827 car2_d1
  310. LOCK_CAR_DOORS car2_d1 CARLOCK_LOCKED
  311. SET_CAR_PROOFS car2_d1 TRUE TRUE TRUE FALSE TRUE
  312. SET_CAR_WATERTIGHT car2_d1 TRUE
  313. SET_CAR_STRONG car2_d1 TRUE
  314. SET_UPSIDEDOWN_CAR_NOT_DAMAGED car2_d1 TRUE
  315.  
  316. CREATE_CAR CAR_CHEETAH 1058.6385 -859.2989 13.7827 car3_d1
  317. LOCK_CAR_DOORS car3_d1 CARLOCK_LOCKED
  318. SET_CAR_PROOFS car3_d1 TRUE TRUE TRUE FALSE TRUE
  319. SET_CAR_WATERTIGHT car3_d1 TRUE
  320. SET_CAR_STRONG car3_d1 TRUE
  321. SET_UPSIDEDOWN_CAR_NOT_DAMAGED car3_d1 TRUE
  322.  
  323. CREATE_CHAR_INSIDE_CAR car1_d1 PEDTYPE_CIVMALE PED_GANG_DIABLO_A ped_car1_driver_d1
  324. CREATE_CHAR_INSIDE_CAR car2_d1 PEDTYPE_CIVMALE PED_GANG_DIABLO_B ped_car2_driver_d1
  325. CREATE_CHAR_INSIDE_CAR car3_d1 PEDTYPE_CIVMALE PED_GANG_DIABLO_A ped_car3_driver_d1
  326.  
  327. SET_CHAR_CANT_BE_DRAGGED_OUT ped_car1_driver_d1 TRUE
  328. SET_CHAR_CANT_BE_DRAGGED_OUT ped_car2_driver_d1 TRUE
  329. SET_CHAR_CANT_BE_DRAGGED_OUT ped_car3_driver_d1 TRUE
  330.  
  331. SET_CAR_HEADING car1_d1 180.0
  332. SET_CAR_HEADING car2_d1 180.0
  333. SET_CAR_HEADING car3_d1 180.0
  334.  
  335. CAR_SET_IDLE car1_d1
  336. CAR_SET_IDLE car2_d1
  337. CAR_SET_IDLE car3_d1
  338.  
  339. SET_CAR_DRIVING_STYLE car1_d1 2
  340. SET_CAR_CRUISE_SPEED car1_d1 50.0
  341.  
  342. SET_CAR_DRIVING_STYLE car2_d1 2
  343. SET_CAR_CRUISE_SPEED car2_d1 50.0
  344.  
  345. SET_CAR_DRIVING_STYLE car3_d1 2
  346. SET_CAR_CRUISE_SPEED car3_d1 50.0
  347.  
  348. SET_CAR_ONLY_DAMAGED_BY_PLAYER car1_d1 TRUE
  349. SET_CAR_ONLY_DAMAGED_BY_PLAYER car2_d1 TRUE
  350. SET_CAR_ONLY_DAMAGED_BY_PLAYER car3_d1 TRUE
  351.  
  352. ADD_BLIP_FOR_COORD 1042.9772 -858.7398 13.7827 blip_chase_d1
  353.  
  354. PRINT_NOW DIAB1_4 5000 1 //"~g~Get a fast car and get to the starting grid."
  355.  
  356. WHILE NOT LOCATE_STOPPED_PLAYER_IN_CAR_3D player 1042.9772 -858.7398 13.7827 2.0 2.0 2.0 1
  357.  
  358. WAIT 0
  359.  
  360. IF LOCATE_STOPPED_PLAYER_ON_FOOT_3D player 1042.9772 -858.7398 13.7827 2.0 2.0 2.0 1
  361. PRINT_NOW YD1_G 5000 1
  362. ENDIF
  363.  
  364. IF IS_CAR_DEAD car1_d1
  365. GOTO mission_d1_failed
  366. ENDIF
  367.  
  368. IF IS_CAR_DEAD car2_d1
  369. GOTO mission_d1_failed
  370. ENDIF
  371.  
  372. IF IS_CAR_DEAD car3_d1
  373. GOTO mission_d1_failed
  374. ENDIF
  375.  
  376. GET_CAR_HEALTH car1_d1 timerc
  377.  
  378. IF timerc < 1000
  379. timerc = 9
  380. GOTO race_start
  381. ENDIF
  382.  
  383. GET_CAR_HEALTH car2_d1 timerc
  384.  
  385. IF timerc < 1000
  386. timerc = 9
  387. GOTO race_start
  388. ENDIF
  389.  
  390. GET_CAR_HEALTH car3_d1 timerc
  391.  
  392. IF timerc < 1000
  393. timerc = 9
  394. GOTO race_start
  395. ENDIF
  396.  
  397. // IF IS_PLAYER_IN_ANY_CAR player
  398. // STORE_CAR_PLAYER_IS_IN player players_car
  399. // GET_CAR_SPEED players_car players_car_speed
  400. // players_car_speed_int =# players_car_speed
  401. // PRINT_WITH_NUMBER_NOW NUMBER players_car_speed_int 50 1
  402. // ENDIF
  403.  
  404. ENDWHILE
  405.  
  406. race_start:
  407.  
  408. SET_CAR_ONLY_DAMAGED_BY_PLAYER car1_d1 FALSE
  409. SET_CAR_ONLY_DAMAGED_BY_PLAYER car2_d1 FALSE
  410. SET_CAR_ONLY_DAMAGED_BY_PLAYER car3_d1 FALSE
  411.  
  412. IF timerc = 9
  413. PRINT_BIG DIAB1_1 1200 4 // "3..2..1.. GO GO GO!"
  414. ELSE
  415. SET_PLAYER_CONTROL player OFF
  416. SET_EVERYONE_IGNORE_PLAYER player TRUE
  417. SET_ALL_CARS_CAN_BE_DAMAGED FALSE
  418. PRINT_BIG ( YD1_3 ) 1100 4
  419. ADD_ONE_OFF_SOUND 0.0 0.0 0.0 SOUND_RACE_START_3
  420. WAIT 1000
  421. PRINT_BIG ( YD1_2 ) 1100 4
  422. ADD_ONE_OFF_SOUND 0.0 0.0 0.0 SOUND_RACE_START_2
  423. WAIT 1000
  424. PRINT_BIG ( YD1_1 ) 1100 4
  425. ADD_ONE_OFF_SOUND 0.0 0.0 0.0 SOUND_RACE_START_1
  426. WAIT 1000
  427. PRINT_BIG ( YD1GO ) 800 4
  428. ADD_ONE_OFF_SOUND 0.0 0.0 0.0 SOUND_RACE_START_GO
  429. SET_PLAYER_CONTROL player ON
  430. SET_EVERYONE_IGNORE_PLAYER player FALSE
  431. SET_ALL_CARS_CAN_BE_DAMAGED TRUE
  432. ENDIF
  433.  
  434. IF IS_CAR_DEAD car1_d1
  435. GOTO mission_d1_failed
  436. ENDIF
  437.  
  438. IF IS_CAR_DEAD car2_d1
  439. GOTO mission_d1_failed
  440. ENDIF
  441.  
  442. IF IS_CAR_DEAD car3_d1
  443. GOTO mission_d1_failed
  444. ENDIF
  445.  
  446. timerc = 0
  447.  
  448. REMOVE_BLIP blip_chase_d1
  449.  
  450. ADD_BLIP_FOR_CAR_OLD car1_d1 RED MARKER_ONLY blip_car1_d1
  451. ADD_BLIP_FOR_CAR_OLD car2_d1 RED MARKER_ONLY blip_car2_d1
  452. ADD_BLIP_FOR_CAR_OLD car3_d1 RED MARKER_ONLY blip_car3_d1
  453.  
  454. player_x_d1 = cp2_x_d1
  455. player_y_d1 = cp2_y_d1
  456. player_z_d1 = cp2_z_d1
  457. blip_2nd_x = cp3_x_d1
  458. blip_2nd_y = cp3_y_d1
  459. blip_2nd_z = cp3_z_d1
  460.  
  461. car1_x_d1 = cp2_x_d1
  462. car1_y_d1 = cp2_y_d1
  463. car1_z_d1 = cp2_z_d1
  464.  
  465. car2_x_d1 = cp2_x_d1
  466. car2_y_d1 = cp2_y_d1
  467. car2_z_d1 = cp2_z_d1
  468.  
  469. car3_x_d1 = cp2_x_d1
  470. car3_y_d1 = cp2_y_d1
  471. car3_z_d1 = cp2_z_d1
  472.  
  473. ADD_BLIP_FOR_COORD player_x_d1 player_y_d1 player_z_d1 blip_chase_d1
  474. ADD_BLIP_FOR_COORD_OLD blip_2nd_x blip_2nd_y blip_2nd_z PURPLE BLIP_ONLY second_blip
  475. CHANGE_BLIP_SCALE second_blip 2
  476. DIM_BLIP second_blip TRUE
  477. CAR_GOTO_COORDINATES car1_d1 car1_x_d1 car1_y_d1 car1_z_d1
  478. CAR_GOTO_COORDINATES car2_d1 car2_x_d1 car2_y_d1 car2_z_d1
  479. CAR_GOTO_COORDINATES car3_d1 car3_x_d1 car3_y_d1 car3_z_d1
  480.  
  481. GET_GAME_TIMER game_timer_start_d1
  482. GET_GAME_TIMER game_timer_end_d1
  483. game_timer_end_d1 = game_timer_end_d1 - game_timer_start_d1
  484. game_timer_end_d1 = game_timer_end_d1 / 1000
  485. DISPLAY_ONSCREEN_COUNTER_WITH_STRING game_timer_end_d1 COUNTER_DISPLAY_NUMBER DIAB1_5
  486.  
  487.  
  488. loop1:
  489.  
  490. WAIT 0
  491.  
  492. GET_GAME_TIMER game_timer_end_d1
  493. game_timer_end_d1 = game_timer_end_d1 - game_timer_start_d1
  494. game_timer_end_d1 = game_timer_end_d1 / 1000
  495.  
  496. position = 0 + behind_car1
  497. position += behind_car2
  498. position += behind_car3
  499.  
  500. IF position = 0
  501. PRINT_NOW FIRST 100 1 //"1st"
  502. ENDIF
  503.  
  504. IF position = 1
  505. PRINT_NOW SECOND 100 1 //"2nd"
  506. ENDIF
  507.  
  508. IF position = 2
  509. PRINT_NOW THIRD 100 1 //"3rd"
  510. ENDIF
  511.  
  512. IF position = 3
  513. PRINT_NOW FOURTH 100 1 //"4th"
  514. ENDIF
  515.  
  516. IF player_cpcounter = 17
  517. DRAW_CORONA player_x_d1 player_y_d1 player_z_d1 5.5 CORONATYPE_CIRCLE FLARETYPE_NONE 100 0 0
  518. ELSE
  519. DRAW_CORONA player_x_d1 player_y_d1 player_z_d1 5.5 CORONATYPE_CIRCLE FLARETYPE_NONE 0 0 100
  520. ENDIF
  521.  
  522. IF LOCATE_PLAYER_IN_CAR_3D player player_x_d1 player_y_d1 player_z_d1 6.0 6.0 6.0 0
  523.  
  524. ++ player_cpcounter
  525.  
  526. REMOVE_BLIP blip_chase_d1
  527. REMOVE_BLIP second_blip
  528.  
  529. IF player_cpcounter = 1
  530. player_x_d1 = cp3_x_d1
  531. player_y_d1 = cp3_y_d1
  532. player_z_d1 = cp3_z_d1
  533. blip_2nd_x = cp4_x_d1
  534. blip_2nd_y = cp4_y_d1
  535. blip_2nd_z = cp4_z_d1
  536. ENDIF
  537.  
  538. IF player_cpcounter = 2
  539. player_x_d1 = cp4_x_d1
  540. player_y_d1 = cp4_y_d1
  541. player_z_d1 = cp4_z_d1
  542. blip_2nd_x = cp5_x_d1
  543. blip_2nd_y = cp5_y_d1
  544. blip_2nd_z = cp5_z_d1
  545. ENDIF
  546.  
  547. IF player_cpcounter = 3
  548. player_x_d1 = cp5_x_d1
  549. player_y_d1 = cp5_y_d1
  550. player_z_d1 = cp5_z_d1
  551. blip_2nd_x = cp6_x_d1
  552. blip_2nd_y = cp6_y_d1
  553. blip_2nd_z = cp6_z_d1
  554. ENDIF
  555.  
  556. IF player_cpcounter = 4
  557. player_x_d1 = cp6_x_d1
  558. player_y_d1 = cp6_y_d1
  559. player_z_d1 = cp6_z_d1
  560. blip_2nd_x = cp7_x_d1
  561. blip_2nd_y = cp7_y_d1
  562. blip_2nd_z = cp7_z_d1
  563. ENDIF
  564.  
  565. IF player_cpcounter = 5
  566. player_x_d1 = cp7_x_d1
  567. player_y_d1 = cp7_y_d1
  568. player_z_d1 = cp7_z_d1
  569. blip_2nd_x = cp8_x_d1
  570. blip_2nd_y = cp8_y_d1
  571. blip_2nd_z = cp8_z_d1
  572. ENDIF
  573.  
  574. IF player_cpcounter = 6
  575. player_x_d1 = cp8_x_d1
  576. player_y_d1 = cp8_y_d1
  577. player_z_d1 = cp8_z_d1
  578. blip_2nd_x = cp9_x_d1
  579. blip_2nd_y = cp9_y_d1
  580. blip_2nd_z = cp9_z_d1
  581. ENDIF
  582.  
  583. IF player_cpcounter = 7
  584. player_x_d1 = cp9_x_d1
  585. player_y_d1 = cp9_y_d1
  586. player_z_d1 = cp9_z_d1
  587. blip_2nd_x = cp10_x_d1
  588. blip_2nd_y = cp10_y_d1
  589. blip_2nd_z = cp10_z_d1
  590. ENDIF
  591.  
  592. IF player_cpcounter = 8
  593. player_x_d1 = cp10_x_d1
  594. player_y_d1 = cp10_y_d1
  595. player_z_d1 = cp10_z_d1
  596. blip_2nd_x = cp11_x_d1
  597. blip_2nd_y = cp11_y_d1
  598. blip_2nd_z = cp11_z_d1
  599. ENDIF
  600.  
  601. IF player_cpcounter = 9
  602. player_x_d1 = cp11_x_d1
  603. player_y_d1 = cp11_y_d1
  604. player_z_d1 = cp11_z_d1
  605. blip_2nd_x = cp12_x_d1
  606. blip_2nd_y = cp12_y_d1
  607. blip_2nd_z = cp12_z_d1
  608. ENDIF
  609.  
  610. IF player_cpcounter = 10
  611. player_x_d1 = cp12_x_d1
  612. player_y_d1 = cp12_y_d1
  613. player_z_d1 = cp12_z_d1
  614. blip_2nd_x = cp13_x_d1
  615. blip_2nd_y = cp13_y_d1
  616. blip_2nd_z = cp13_z_d1
  617. ENDIF
  618.  
  619. IF player_cpcounter = 11
  620. player_x_d1 = cp13_x_d1
  621. player_y_d1 = cp13_y_d1
  622. player_z_d1 = cp13_z_d1
  623. blip_2nd_x = cp14_x_d1
  624. blip_2nd_y = cp14_y_d1
  625. blip_2nd_z = cp14_z_d1
  626. ENDIF
  627.  
  628. IF player_cpcounter = 12
  629. player_x_d1 = cp14_x_d1
  630. player_y_d1 = cp14_y_d1
  631. player_z_d1 = cp14_z_d1
  632. blip_2nd_x = cp15_x_d1
  633. blip_2nd_y = cp15_y_d1
  634. blip_2nd_z = cp15_z_d1
  635. ENDIF
  636.  
  637. IF player_cpcounter = 13
  638. player_x_d1 = cp15_x_d1
  639. player_y_d1 = cp15_y_d1
  640. player_z_d1 = cp15_z_d1
  641. blip_2nd_x = cp16_x_d1
  642. blip_2nd_y = cp16_y_d1
  643. blip_2nd_z = cp16_z_d1
  644. ENDIF
  645.  
  646. IF player_cpcounter = 14
  647. player_x_d1 = cp16_x_d1
  648. player_y_d1 = cp16_y_d1
  649. player_z_d1 = cp16_z_d1
  650. blip_2nd_x = cp17_x_d1
  651. blip_2nd_y = cp17_y_d1
  652. blip_2nd_z = cp17_z_d1
  653. ENDIF
  654.  
  655. IF player_cpcounter = 15
  656. player_x_d1 = cp17_x_d1
  657. player_y_d1 = cp17_y_d1
  658. player_z_d1 = cp17_z_d1
  659. blip_2nd_x = cp18_x_d1
  660. blip_2nd_y = cp18_y_d1
  661. blip_2nd_z = cp18_z_d1
  662. ENDIF
  663.  
  664. IF player_cpcounter = 16
  665. player_x_d1 = cp18_x_d1
  666. player_y_d1 = cp18_y_d1
  667. player_z_d1 = cp18_z_d1
  668. blip_2nd_x = cp2_x_d1
  669. blip_2nd_y = cp2_y_d1
  670. blip_2nd_z = cp2_z_d1
  671. ENDIF
  672.  
  673. IF player_cpcounter = 17
  674. player_x_d1 = cp2_x_d1
  675. player_y_d1 = cp2_y_d1
  676. player_z_d1 = cp2_z_d1
  677. blip_2nd_x = cp2_x_d1
  678. blip_2nd_y = cp2_y_d1
  679. blip_2nd_z = cp2_z_d1
  680. ENDIF
  681.  
  682. IF player_cpcounter = 18
  683. // AND position = 0
  684. GOTO mission_d1_passed
  685. ENDIF
  686.  
  687. ADD_BLIP_FOR_COORD_OLD blip_2nd_x blip_2nd_y blip_2nd_z PURPLE BLIP_ONLY second_blip
  688. DIM_BLIP second_blip ON
  689. CHANGE_BLIP_SCALE second_blip 2
  690. ADD_BLIP_FOR_COORD player_x_d1 player_y_d1 player_z_d1 blip_chase_d1
  691.  
  692. ENDIF
  693.  
  694. IF NOT IS_CAR_DEAD car1_d1
  695.  
  696. GET_CAR_HEALTH car1_d1 car1_health
  697. IF car1_health < 500
  698. SET_CAR_HEALTH car1_d1 1000
  699. ENDIF
  700.  
  701. IF NOT player_cpcounter = car1_cpcounter
  702. IF player_cpcounter < car1_cpcounter
  703. behind_car1 = 1
  704. ELSE
  705. behind_car1 = 0
  706. ENDIF
  707. ELSE
  708. GET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  709. difference_x_float_d = car1_x - player_x_d1
  710. difference_y_float_d = car1_y - player_y_d1
  711. difference_x_float_d = difference_x_float_d * difference_x_float_d
  712. difference_y_float_d = difference_y_float_d * difference_y_float_d
  713. sum_difference_d_xy = difference_x_float_d + difference_y_float_d
  714. SQRT sum_difference_d_xy car1_distance_from_cp
  715.  
  716. GET_PLAYER_COORDINATES player players_x players_y players_z
  717. difference_x_float_d = players_x - player_x_d1
  718. difference_y_float_d = players_y - player_y_d1
  719. difference_x_float_d = difference_x_float_d * difference_x_float_d
  720. difference_y_float_d = difference_y_float_d * difference_y_float_d
  721. sum_difference_d_xy = difference_x_float_d + difference_y_float_d
  722. SQRT sum_difference_d_xy players_distance_from_cp
  723.  
  724. IF players_distance_from_cp < car1_distance_from_cp
  725. behind_car1 = 0
  726. ELSE
  727. behind_car1 = 1
  728. ENDIF
  729. ENDIF
  730.  
  731. IF LOCATE_CAR_3D car1_d1 car1_stuck_x car1_stuck_y car1_stuck_z 4.0 4.0 4.0 0
  732. IF timerd_reset_flag = 0
  733. GET_GAME_TIMER timerd_started
  734. timerd_reset_flag = 1
  735. ENDIF
  736.  
  737. IF timerd_reset_flag = 1
  738. GET_GAME_TIMER timerd_current
  739. timerd = timerd_current - timerd_started
  740. IF timerd > 8000
  741. IF NOT IS_CAR_ON_SCREEN car1_d1
  742. GET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  743. GET_CLOSEST_CAR_NODE car1_x car1_y car1_z car1_x car1_y car1_z
  744. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car1_x car1_y car1_z 4.0 4.0 4.0
  745. IF NOT IS_POINT_ON_SCREEN car1_x car1_y car1_z 4.0
  746. SET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  747. TURN_CAR_TO_FACE_COORD car1_d1 car1_x_d1 car1_y_d1
  748. timerd_reset_flag = 0
  749. ENDIF
  750. ENDIF
  751. ENDIF
  752. ENDIF
  753. ENDIF
  754. ENDIF
  755.  
  756. IF NOT LOCATE_CAR_3D car1_d1 car1_stuck_x car1_stuck_y car1_stuck_z 4.0 4.0 4.0 0
  757. GET_CAR_COORDINATES car1_d1 car1_stuck_x car1_stuck_y car1_stuck_z
  758. timerd_reset_flag = 0
  759. ENDIF
  760.  
  761. IF IS_CAR_UPSIDEDOWN car1_d1
  762. AND IS_CAR_STOPPED car1_d1
  763. IF NOT IS_CAR_ON_SCREEN car1_d1
  764. GET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  765. GET_CLOSEST_CAR_NODE car1_x car1_y car1_z car1_x car1_y car1_z
  766. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car1_x car1_y car1_z 4.0 4.0 4.0
  767. IF NOT IS_POINT_ON_SCREEN car1_x car1_y car1_z 3.0
  768. SET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  769. TURN_CAR_TO_FACE_COORD car1_d1 car1_x_d1 car1_y_d1
  770. ENDIF
  771. ENDIF
  772. ENDIF
  773. ENDIF
  774.  
  775. IF timera_reset_flag_d1 = 1
  776. IF NOT IS_CAR_STOPPED car1_d1
  777. timera_reset_flag_d1 = 0
  778. ENDIF
  779. ENDIF
  780.  
  781. IF IS_CAR_STOPPED car1_d1
  782. IF timera_reset_flag_d1 = 0
  783. TIMERA = 0
  784. timera_reset_flag_d1 = 1
  785. ENDIF
  786.  
  787. IF TIMERA > 5000
  788. AND timera_reset_flag_d1 = 1
  789. IF NOT IS_CAR_ON_SCREEN car1_d1
  790. GET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  791. GET_CLOSEST_CAR_NODE car1_x car1_y car1_z car1_x car1_y car1_z
  792. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car1_x car1_y car1_z 4.0 4.0 4.0
  793. IF NOT IS_POINT_ON_SCREEN car1_x car1_y car1_z 4.0
  794. SET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  795. TURN_CAR_TO_FACE_COORD car1_d1 car1_x_d1 car1_y_d1
  796. timera_reset_flag_d1 = 0
  797. ENDIF
  798. ENDIF
  799. ENDIF
  800. ENDIF
  801. ENDIF
  802.  
  803. IF LOCATE_CAR_3D car1_d1 car1_x_d1 car1_y_d1 car1_z_d1 ai_car1_locate_size ai_car1_locate_size ai_car1_locate_size 0
  804. ++ car1_cpcounter
  805.  
  806. IF car1_cpcounter = 1
  807. car1_x_d1 = cp3_x_d1
  808. car1_y_d1 = cp3_y_d1
  809. car1_z_d1 = cp3_z_d1
  810. ENDIF
  811.  
  812. IF car1_cpcounter = 2
  813. car1_x_d1 = cp4_x_d1
  814. car1_y_d1 = cp4_y_d1
  815. car1_z_d1 = cp4_z_d1
  816. SWITCH_ROADS_ON 1034.0 -956.0 12.0 1063.0 -847.0 20.0
  817. ENDIF
  818.  
  819. IF car1_cpcounter = 3
  820. car1_x_d1 = cp5_x_d1
  821. car1_y_d1 = cp5_y_d1
  822. car1_z_d1 = cp5_z_d1
  823. ENDIF
  824.  
  825. IF car1_cpcounter = 4
  826. car1_x_d1 = cp6_x_d1
  827. car1_y_d1 = cp6_y_d1
  828. car1_z_d1 = cp6_z_d1
  829. ENDIF
  830.  
  831. IF car1_cpcounter = 5
  832. car1_x_d1 = cp7_x_d1
  833. car1_y_d1 = cp7_y_d1
  834. car1_z_d1 = cp7_z_d1
  835. ENDIF
  836.  
  837. IF car1_cpcounter = 6
  838. car1_x_d1 = cp8_x_d1
  839. car1_y_d1 = cp8_y_d1
  840. car1_z_d1 = cp8_z_d1
  841. ENDIF
  842.  
  843. IF car1_cpcounter = 7
  844. car1_x_d1 = cp9_x_d1
  845. car1_y_d1 = cp9_y_d1
  846. car1_z_d1 = cp9_z_d1
  847. ENDIF
  848.  
  849. IF car1_cpcounter = 8
  850. car1_x_d1 = cp10_x_d1
  851. car1_y_d1 = cp10_y_d1
  852. car1_z_d1 = cp10_z_d1
  853. ENDIF
  854.  
  855. IF car1_cpcounter = 9
  856. car1_x_d1 = cp11_x_d1
  857. car1_y_d1 = cp11_y_d1
  858. car1_z_d1 = cp11_z_d1
  859. ENDIF
  860.  
  861. IF car1_cpcounter = 10
  862. car1_x_d1 = cp12_x_d1
  863. car1_y_d1 = cp12_y_d1
  864. car1_z_d1 = cp12_z_d1
  865. ENDIF
  866.  
  867. IF car1_cpcounter = 11
  868. car1_x_d1 = cp13_x_d1
  869. car1_y_d1 = cp13_y_d1
  870. car1_z_d1 = cp13_z_d1
  871. ENDIF
  872.  
  873. IF car1_cpcounter = 12
  874. car1_x_d1 = cp14_x_d1
  875. car1_y_d1 = cp14_y_d1
  876. car1_z_d1 = cp14_z_d1
  877. ENDIF
  878.  
  879. IF car1_cpcounter = 13
  880. car1_x_d1 = cp15_x_d1
  881. car1_y_d1 = cp15_y_d1
  882. car1_z_d1 = cp15_z_d1
  883. ENDIF
  884.  
  885. IF car1_cpcounter = 14
  886. car1_x_d1 = cp16_x_d1
  887. car1_y_d1 = cp16_y_d1
  888. car1_z_d1 = cp16_z_d1
  889. ENDIF
  890.  
  891. IF car1_cpcounter = 15
  892. car1_x_d1 = cp17_x_d1
  893. car1_y_d1 = cp17_y_d1
  894. car1_z_d1 = cp17_z_d1
  895. ENDIF
  896.  
  897. IF car1_cpcounter = 16
  898. car1_x_d1 = cp18_x_d1
  899. car1_y_d1 = cp18_y_d1
  900. car1_z_d1 = cp18_z_d1
  901. ENDIF
  902.  
  903. IF car1_cpcounter = 17
  904. car1_x_d1 = cp2_x_d1
  905. car1_y_d1 = cp2_y_d1
  906. car1_z_d1 = cp2_z_d1
  907. ai_car1_locate_size = 6.0
  908. ENDIF
  909.  
  910. IF car1_cpcounter = 18
  911. // AND position > 0
  912. PRINT_NOW DIAB1_3 5000 1 //"~r~You failed to win the race!"
  913. GOTO mission_d1_failed
  914. ENDIF
  915.  
  916. IF ai_car1_locate_size = 7.0
  917. CAR_GOTO_COORDINATES car1_d1 car1_x_d1 car1_y_d1 car1_z_d1
  918. ELSE
  919. CAR_GOTO_COORDINATES_ACCURATE car1_d1 car1_x_d1 car1_y_d1 car1_z_d1
  920. ENDIF
  921.  
  922. ENDIF
  923. ELSE
  924.  
  925. IF NOT IS_CAR_IN_WATER car1_d1
  926. behind_car1 = 0
  927. car1_cpcounter = 0
  928. ENDIF
  929.  
  930. IF IS_CAR_IN_WATER car1_d1
  931. IF NOT IS_CAR_ON_SCREEN car1_d1
  932. GET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  933. GET_CLOSEST_CAR_NODE car1_x car1_y car1_z car1_x car1_y car1_z
  934. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car1_x car1_y car1_z 4.0 4.0 4.0
  935. IF NOT IS_POINT_ON_SCREEN car1_x car1_y car1_z 3.0
  936. SET_CAR_COORDINATES car1_d1 car1_x car1_y car1_z
  937. TURN_CAR_TO_FACE_COORD car1_d1 car1_x_d1 car1_y_d1
  938. ENDIF
  939. ENDIF
  940. ENDIF
  941. ENDIF
  942.  
  943. ENDIF
  944.  
  945. IF NOT IS_CAR_DEAD car2_d1
  946.  
  947. GET_CAR_HEALTH car2_d1 car2_health
  948. IF car2_health < 500
  949. SET_CAR_HEALTH car2_d1 1000
  950. ENDIF
  951.  
  952. IF NOT player_cpcounter = car2_cpcounter
  953. IF player_cpcounter < car2_cpcounter
  954. behind_car2 = 1
  955. ELSE
  956. behind_car2 = 0
  957. ENDIF
  958. ELSE
  959. GET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  960. difference_x_float_d = car2_x - player_x_d1
  961. difference_y_float_d = car2_y - player_y_d1
  962. difference_x_float_d = difference_x_float_d * difference_x_float_d
  963. difference_y_float_d = difference_y_float_d * difference_y_float_d
  964. sum_difference_d_xy = difference_x_float_d + difference_y_float_d
  965. SQRT sum_difference_d_xy car2_distance_from_cp
  966.  
  967. GET_PLAYER_COORDINATES player players_x players_y players_z
  968. difference_x_float_d = players_x - player_x_d1
  969. difference_y_float_d = players_y - player_y_d1
  970. difference_x_float_d = difference_x_float_d * difference_x_float_d
  971. difference_y_float_d = difference_y_float_d * difference_y_float_d
  972. sum_difference_d_xy = difference_x_float_d + difference_y_float_d
  973. SQRT sum_difference_d_xy players_distance_from_cp
  974.  
  975. IF players_distance_from_cp < car2_distance_from_cp
  976. behind_car2 = 0
  977. ELSE
  978. behind_car2 = 1
  979. ENDIF
  980. ENDIF
  981.  
  982. IF LOCATE_CAR_3D car2_d1 car2_stuck_x car2_stuck_y car2_stuck_z 4.0 4.0 4.0 0
  983. IF timere_reset_flag = 0
  984. GET_GAME_TIMER timere_started
  985. timere_reset_flag = 1
  986. ENDIF
  987.  
  988. IF timere_reset_flag = 1
  989. GET_GAME_TIMER timere_current
  990. timere = timere_current - timere_started
  991. IF timere > 8000
  992. IF NOT IS_CAR_ON_SCREEN car2_d1
  993. GET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  994. GET_CLOSEST_CAR_NODE car2_x car2_y car2_z car2_x car2_y car2_z
  995. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car2_x car2_y car2_z 4.0 4.0 4.0
  996. IF NOT IS_POINT_ON_SCREEN car2_x car2_y car2_z 4.0
  997. SET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  998. TURN_CAR_TO_FACE_COORD car2_d1 car2_x_d1 car2_y_d1
  999. timere_reset_flag = 0
  1000. ENDIF
  1001. ENDIF
  1002. ENDIF
  1003. ENDIF
  1004. ENDIF
  1005. ENDIF
  1006.  
  1007. IF NOT LOCATE_CAR_3D car2_d1 car2_stuck_x car2_stuck_y car2_stuck_z 4.0 4.0 4.0 0
  1008. GET_CAR_COORDINATES car2_d1 car2_stuck_x car2_stuck_y car2_stuck_z
  1009. timere_reset_flag = 0
  1010. ENDIF
  1011.  
  1012. IF IS_CAR_UPSIDEDOWN car2_d1
  1013. AND IS_CAR_STOPPED car2_d1
  1014. IF NOT IS_CAR_ON_SCREEN car2_d1
  1015. GET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  1016. GET_CLOSEST_CAR_NODE car2_x car2_y car2_z car2_x car2_y car2_z
  1017. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car2_x car2_y car2_z 4.0 4.0 4.0
  1018. IF NOT IS_POINT_ON_SCREEN car2_x car2_y car2_z 3.0
  1019. SET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  1020. TURN_CAR_TO_FACE_COORD car2_d1 car2_x_d1 car2_y_d1
  1021. ENDIF
  1022. ENDIF
  1023. ENDIF
  1024. ENDIF
  1025.  
  1026. IF timerb_reset_flag_d1 = 1
  1027. IF NOT IS_CAR_STOPPED car2_d1
  1028. timerb_reset_flag_d1 = 0
  1029. ENDIF
  1030. ENDIF
  1031.  
  1032. IF IS_CAR_STOPPED car2_d1
  1033. IF timerb_reset_flag_d1 = 0
  1034. TIMERB = 0
  1035. timerb_reset_flag_d1 = 1
  1036. ENDIF
  1037.  
  1038. IF TIMERB > 5000
  1039. AND timerb_reset_flag_d1 = 1
  1040. IF NOT IS_CAR_ON_SCREEN car2_d1
  1041. GET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  1042. GET_CLOSEST_CAR_NODE car2_x car2_y car2_z car2_x car2_y car2_z
  1043. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car2_x car2_y car2_z 4.0 4.0 4.0
  1044. IF NOT IS_POINT_ON_SCREEN car2_x car2_y car2_z 4.0
  1045. SET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  1046. TURN_CAR_TO_FACE_COORD car2_d1 car2_x_d1 car2_y_d1
  1047. timerb_reset_flag_d1 = 0
  1048. ENDIF
  1049. ENDIF
  1050. ENDIF
  1051. ENDIF
  1052. ENDIF
  1053.  
  1054. IF LOCATE_CAR_3D car2_d1 car2_x_d1 car2_y_d1 car2_z_d1 ai_car2_locate_size ai_car2_locate_size ai_car2_locate_size 0
  1055. ++ car2_cpcounter
  1056.  
  1057. IF car2_cpcounter = 1
  1058. car2_x_d1 = cp3_x_d1
  1059. car2_y_d1 = cp3_y_d1
  1060. car2_z_d1 = cp3_z_d1
  1061. ENDIF
  1062.  
  1063. IF car2_cpcounter = 2
  1064. car2_x_d1 = cp4_x_d1
  1065. car2_y_d1 = cp4_y_d1
  1066. car2_z_d1 = cp4_z_d1
  1067. ENDIF
  1068.  
  1069. IF car2_cpcounter = 3
  1070. car2_x_d1 = cp5_x_d1
  1071. car2_y_d1 = cp5_y_d1
  1072. car2_z_d1 = cp5_z_d1
  1073. ENDIF
  1074.  
  1075. IF car2_cpcounter = 4
  1076. car2_x_d1 = cp6_x_d1
  1077. car2_y_d1 = cp6_y_d1
  1078. car2_z_d1 = cp6_z_d1
  1079. ENDIF
  1080.  
  1081. IF car2_cpcounter = 5
  1082. car2_x_d1 = cp7_x_d1
  1083. car2_y_d1 = cp7_y_d1
  1084. car2_z_d1 = cp7_z_d1
  1085. ENDIF
  1086.  
  1087. IF car2_cpcounter = 6
  1088. car2_x_d1 = cp8_x_d1
  1089. car2_y_d1 = cp8_y_d1
  1090. car2_z_d1 = cp8_z_d1
  1091. ENDIF
  1092.  
  1093. IF car2_cpcounter = 7
  1094. car2_x_d1 = cp9_x_d1
  1095. car2_y_d1 = cp9_y_d1
  1096. car2_z_d1 = cp9_z_d1
  1097. ENDIF
  1098.  
  1099. IF car2_cpcounter = 8
  1100. car2_x_d1 = cp10_x_d1
  1101. car2_y_d1 = cp10_y_d1
  1102. car2_z_d1 = cp10_z_d1
  1103. ENDIF
  1104.  
  1105. IF car2_cpcounter = 9
  1106. car2_x_d1 = cp11_x_d1
  1107. car2_y_d1 = cp11_y_d1
  1108. car2_z_d1 = cp11_z_d1
  1109. ENDIF
  1110.  
  1111. IF car2_cpcounter = 10
  1112. car2_x_d1 = cp12_x_d1
  1113. car2_y_d1 = cp12_y_d1
  1114. car2_z_d1 = cp12_z_d1
  1115. ENDIF
  1116.  
  1117. IF car2_cpcounter = 11
  1118. car2_x_d1 = cp13_x_d1
  1119. car2_y_d1 = cp13_y_d1
  1120. car2_z_d1 = cp13_z_d1
  1121. ENDIF
  1122.  
  1123. IF car2_cpcounter = 12
  1124. car2_x_d1 = cp14_x_d1
  1125. car2_y_d1 = cp14_y_d1
  1126. car2_z_d1 = cp14_z_d1
  1127. ENDIF
  1128.  
  1129. IF car2_cpcounter = 13
  1130. car2_x_d1 = cp15_x_d1
  1131. car2_y_d1 = cp15_y_d1
  1132. car2_z_d1 = cp15_z_d1
  1133. ENDIF
  1134.  
  1135. IF car2_cpcounter = 14
  1136. car2_x_d1 = cp16_x_d1
  1137. car2_y_d1 = cp16_y_d1
  1138. car2_z_d1 = cp16_z_d1
  1139. ENDIF
  1140.  
  1141. IF car2_cpcounter = 15
  1142. car2_x_d1 = cp17_x_d1
  1143. car2_y_d1 = cp17_y_d1
  1144. car2_z_d1 = cp17_z_d1
  1145. ENDIF
  1146.  
  1147. IF car2_cpcounter = 16
  1148. car2_x_d1 = cp18_x_d1
  1149. car2_y_d1 = cp18_y_d1
  1150. car2_z_d1 = cp18_z_d1
  1151. ENDIF
  1152.  
  1153. IF car2_cpcounter = 17
  1154. car2_x_d1 = cp2_x_d1
  1155. car2_y_d1 = cp2_y_d1
  1156. car2_z_d1 = cp2_z_d1
  1157. ai_car2_locate_size = 6.0
  1158. ENDIF
  1159.  
  1160. IF car2_cpcounter = 18
  1161. // AND position > 0
  1162. PRINT_NOW DIAB1_3 5000 1 //"~r~You failed to win the race!"
  1163. GOTO mission_d1_failed
  1164. ENDIF
  1165.  
  1166. IF ai_car2_locate_size = 7.0
  1167. CAR_GOTO_COORDINATES car2_d1 car2_x_d1 car2_y_d1 car2_z_d1
  1168. ELSE
  1169. CAR_GOTO_COORDINATES_ACCURATE car2_d1 car2_x_d1 car2_y_d1 car2_z_d1
  1170. ENDIF
  1171.  
  1172. ENDIF
  1173. ELSE
  1174.  
  1175. IF NOT IS_CAR_IN_WATER car2_d1
  1176. behind_car2 = 0
  1177. car2_cpcounter = 0
  1178. ENDIF
  1179.  
  1180. IF IS_CAR_IN_WATER car2_d1
  1181. IF NOT IS_CAR_ON_SCREEN car2_d1
  1182. GET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  1183. GET_CLOSEST_CAR_NODE car2_x car2_y car2_z car2_x car2_y car2_z
  1184. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car2_x car2_y car2_z 4.0 4.0 4.0
  1185. IF NOT IS_POINT_ON_SCREEN car2_x car2_y car2_z 3.0
  1186. SET_CAR_COORDINATES car2_d1 car2_x car2_y car2_z
  1187. TURN_CAR_TO_FACE_COORD car2_d1 car2_x_d1 car2_y_d1
  1188. ENDIF
  1189. ENDIF
  1190. ENDIF
  1191. ENDIF
  1192.  
  1193. ENDIF
  1194.  
  1195. IF NOT IS_CAR_DEAD car3_d1
  1196.  
  1197. GET_CAR_HEALTH car3_d1 car3_health
  1198. IF car3_health < 500
  1199. SET_CAR_HEALTH car3_d1 1000
  1200. ENDIF
  1201.  
  1202. IF NOT player_cpcounter = car3_cpcounter
  1203. IF player_cpcounter < car3_cpcounter
  1204. behind_car3 = 1
  1205. ELSE
  1206. behind_car3 = 0
  1207. ENDIF
  1208. ELSE
  1209. GET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1210. difference_x_float_d = car3_x - player_x_d1
  1211. difference_y_float_d = car3_y - player_y_d1
  1212. difference_x_float_d = difference_x_float_d * difference_x_float_d
  1213. difference_y_float_d = difference_y_float_d * difference_y_float_d
  1214. sum_difference_d_xy = difference_x_float_d + difference_y_float_d
  1215. SQRT sum_difference_d_xy car3_distance_from_cp
  1216.  
  1217. GET_PLAYER_COORDINATES player players_x players_y players_z
  1218. difference_x_float_d = players_x - player_x_d1
  1219. difference_y_float_d = players_y - player_y_d1
  1220. difference_x_float_d = difference_x_float_d * difference_x_float_d
  1221. difference_y_float_d = difference_y_float_d * difference_y_float_d
  1222. sum_difference_d_xy = difference_x_float_d + difference_y_float_d
  1223. SQRT sum_difference_d_xy players_distance_from_cp
  1224.  
  1225. IF players_distance_from_cp < car3_distance_from_cp
  1226. behind_car3 = 0
  1227. ELSE
  1228. behind_car3 = 1
  1229. ENDIF
  1230. ENDIF
  1231.  
  1232. IF LOCATE_CAR_3D car3_d1 car3_stuck_x car3_stuck_y car3_stuck_z 4.0 4.0 4.0 0
  1233. IF timerf_reset_flag = 0
  1234. GET_GAME_TIMER timerf_started
  1235. timerf_reset_flag = 1
  1236. ENDIF
  1237.  
  1238. IF timerf_reset_flag = 1
  1239. GET_GAME_TIMER timerf_current
  1240. timerf = timerf_current - timerf_started
  1241. IF timerf > 8000
  1242. IF NOT IS_CAR_ON_SCREEN car3_d1
  1243. GET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1244. GET_CLOSEST_CAR_NODE car3_x car3_y car3_z car3_x car3_y car3_z
  1245. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car3_x car3_y car3_z 4.0 4.0 4.0
  1246. IF NOT IS_POINT_ON_SCREEN car3_x car3_y car3_z 4.0
  1247. SET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1248. TURN_CAR_TO_FACE_COORD car3_d1 car3_x_d1 car3_y_d1
  1249. timerf_reset_flag = 0
  1250. ENDIF
  1251. ENDIF
  1252. ENDIF
  1253. ENDIF
  1254. ENDIF
  1255. ENDIF
  1256.  
  1257. IF NOT LOCATE_CAR_3D car3_d1 car3_stuck_x car3_stuck_y car3_stuck_z 4.0 4.0 4.0 0
  1258. GET_CAR_COORDINATES car3_d1 car3_stuck_x car3_stuck_y car3_stuck_z
  1259. timerf_reset_flag = 0
  1260. ENDIF
  1261.  
  1262. IF IS_CAR_UPSIDEDOWN car3_d1
  1263. AND IS_CAR_STOPPED car3_d1
  1264. IF NOT IS_CAR_ON_SCREEN car3_d1
  1265. GET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1266. GET_CLOSEST_CAR_NODE car3_x car3_y car3_z car3_x car3_y car3_z
  1267. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car3_x car3_y car3_z 4.0 4.0 4.0
  1268. IF NOT IS_POINT_ON_SCREEN car3_x car3_y car3_z 3.0
  1269. SET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1270. TURN_CAR_TO_FACE_COORD car3_d1 car3_x_d1 car3_y_d1
  1271. ENDIF
  1272. ENDIF
  1273. ENDIF
  1274. ENDIF
  1275.  
  1276. IF timerc_reset_flag_d1 = 1
  1277. IF NOT IS_CAR_STOPPED car3_d1
  1278. timerc_reset_flag_d1 = 0
  1279. ENDIF
  1280. ENDIF
  1281.  
  1282. IF IS_CAR_STOPPED car3_d1
  1283. IF timerc_reset_flag_d1 = 0
  1284. GET_GAME_TIMER timerc_started
  1285. timerc_reset_flag_d1 = 1
  1286. ENDIF
  1287.  
  1288. IF timerc_reset_flag_d1 = 1
  1289. GET_GAME_TIMER timerc_current
  1290. timerc = timerc_current - timerc_started
  1291. IF timerc > 5000
  1292. IF NOT IS_CAR_ON_SCREEN car3_d1
  1293. GET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1294. GET_CLOSEST_CAR_NODE car3_x car3_y car3_z car3_x car3_y car3_z
  1295. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car3_x car3_y car3_z 4.0 4.0 4.0
  1296. IF NOT IS_POINT_ON_SCREEN car3_x car3_y car3_z 4.0
  1297. SET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1298. TURN_CAR_TO_FACE_COORD car3_d1 car3_x_d1 car3_y_d1
  1299. timerc_reset_flag_d1 = 0
  1300. ENDIF
  1301. ENDIF
  1302. ENDIF
  1303. ENDIF
  1304. ENDIF
  1305. ENDIF
  1306.  
  1307. IF LOCATE_CAR_3D car3_d1 car3_x_d1 car3_y_d1 car3_z_d1 ai_car3_locate_size ai_car3_locate_size ai_car3_locate_size 0
  1308. ++ car3_cpcounter
  1309.  
  1310. IF car3_cpcounter = 1
  1311. car3_x_d1 = cp3_x_d1
  1312. car3_y_d1 = cp3_y_d1
  1313. car3_z_d1 = cp3_z_d1
  1314. ENDIF
  1315.  
  1316. IF car3_cpcounter = 2
  1317. car3_x_d1 = cp4_x_d1
  1318. car3_y_d1 = cp4_y_d1
  1319. car3_z_d1 = cp4_z_d1
  1320. ENDIF
  1321.  
  1322. IF car3_cpcounter = 3
  1323. car3_x_d1 = cp5_x_d1
  1324. car3_y_d1 = cp5_y_d1
  1325. car3_z_d1 = cp5_z_d1
  1326. ENDIF
  1327.  
  1328. IF car3_cpcounter = 4
  1329. car3_x_d1 = cp6_x_d1
  1330. car3_y_d1 = cp6_y_d1
  1331. car3_z_d1 = cp6_z_d1
  1332. ENDIF
  1333.  
  1334. IF car3_cpcounter = 5
  1335. car3_x_d1 = cp7_x_d1
  1336. car3_y_d1 = cp7_y_d1
  1337. car3_z_d1 = cp7_z_d1
  1338. ENDIF
  1339.  
  1340. IF car3_cpcounter = 6
  1341. car3_x_d1 = cp8_x_d1
  1342. car3_y_d1 = cp8_y_d1
  1343. car3_z_d1 = cp8_z_d1
  1344. ENDIF
  1345.  
  1346. IF car3_cpcounter = 7
  1347. car3_x_d1 = cp9_x_d1
  1348. car3_y_d1 = cp9_y_d1
  1349. car3_z_d1 = cp9_z_d1
  1350. ENDIF
  1351.  
  1352. IF car3_cpcounter = 8
  1353. car3_x_d1 = cp10_x_d1
  1354. car3_y_d1 = cp10_y_d1
  1355. car3_z_d1 = cp10_z_d1
  1356. ENDIF
  1357.  
  1358. IF car3_cpcounter = 9
  1359. car3_x_d1 = cp11_x_d1
  1360. car3_y_d1 = cp11_y_d1
  1361. car3_z_d1 = cp11_z_d1
  1362. ENDIF
  1363.  
  1364. IF car3_cpcounter = 10
  1365. car3_x_d1 = cp12_x_d1
  1366. car3_y_d1 = cp12_y_d1
  1367. car3_z_d1 = cp12_z_d1
  1368. ENDIF
  1369.  
  1370. IF car3_cpcounter = 11
  1371. car3_x_d1 = cp13_x_d1
  1372. car3_y_d1 = cp13_y_d1
  1373. car3_z_d1 = cp13_z_d1
  1374. ENDIF
  1375.  
  1376. IF car3_cpcounter = 12
  1377. car3_x_d1 = cp14_x_d1
  1378. car3_y_d1 = cp14_y_d1
  1379. car3_z_d1 = cp14_z_d1
  1380. ENDIF
  1381.  
  1382. IF car3_cpcounter = 13
  1383. car3_x_d1 = cp15_x_d1
  1384. car3_y_d1 = cp15_y_d1
  1385. car3_z_d1 = cp15_z_d1
  1386. ENDIF
  1387.  
  1388. IF car3_cpcounter = 14
  1389. car3_x_d1 = cp16_x_d1
  1390. car3_y_d1 = cp16_y_d1
  1391. car3_z_d1 = cp16_z_d1
  1392. ENDIF
  1393.  
  1394. IF car3_cpcounter = 15
  1395. car3_x_d1 = cp17_x_d1
  1396. car3_y_d1 = cp17_y_d1
  1397. car3_z_d1 = cp17_z_d1
  1398. ENDIF
  1399.  
  1400. IF car3_cpcounter = 16
  1401. car3_x_d1 = cp18_x_d1
  1402. car3_y_d1 = cp18_y_d1
  1403. car3_z_d1 = cp18_z_d1
  1404. ENDIF
  1405.  
  1406. IF car3_cpcounter = 17
  1407. car3_x_d1 = cp2_x_d1
  1408. car3_y_d1 = cp2_y_d1
  1409. car3_z_d1 = cp2_z_d1
  1410. ai_car3_locate_size = 6.0
  1411. ENDIF
  1412.  
  1413. IF car3_cpcounter = 18
  1414. // AND position > 0
  1415. PRINT_NOW DIAB1_3 5000 1 //"~r~You failed to win the race!"
  1416. GOTO mission_d1_failed
  1417. ENDIF
  1418.  
  1419. IF ai_car3_locate_size = 7.0
  1420. CAR_GOTO_COORDINATES car3_d1 car3_x_d1 car3_y_d1 car3_z_d1
  1421. ELSE
  1422. CAR_GOTO_COORDINATES_ACCURATE car3_d1 car3_x_d1 car3_y_d1 car3_z_d1
  1423. ENDIF
  1424.  
  1425. ENDIF
  1426. ELSE
  1427.  
  1428. IF NOT IS_CAR_IN_WATER car3_d1
  1429. behind_car3 = 0
  1430. car3_cpcounter = 0
  1431. ENDIF
  1432.  
  1433. IF IS_CAR_IN_WATER car3_d1
  1434. IF NOT IS_CAR_ON_SCREEN car3_d1
  1435. GET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1436. GET_CLOSEST_CAR_NODE car3_x car3_y car3_z car3_x car3_y car3_z
  1437. IF NOT IS_POINT_OBSCURED_BY_A_MISSION_ENTITY car3_x car3_y car3_z 4.0 4.0 4.0
  1438. IF NOT IS_POINT_ON_SCREEN car3_x car3_y car3_z 3.0
  1439. SET_CAR_COORDINATES car3_d1 car3_x car3_y car3_z
  1440. TURN_CAR_TO_FACE_COORD car3_d1 car3_x_d1 car3_y_d1
  1441. ENDIF
  1442. ENDIF
  1443. ENDIF
  1444. ENDIF
  1445.  
  1446. ENDIF
  1447.  
  1448. GOTO loop1
  1449. }
  1450.  
  1451. // Mission d1 failed
  1452.  
  1453. mission_d1_failed:
  1454. PRINT_BIG M_FAIL 2000 1
  1455. RETURN
  1456.  
  1457.  
  1458.  
  1459. // mission d1 passed
  1460.  
  1461. mission_d1_passed:
  1462.  
  1463. GET_GAME_TIMER game_timer_end_d1
  1464. game_timer_end_d1 = game_timer_end_d1 - game_timer_start_d1
  1465. game_timer_end_d1 = game_timer_end_d1 / 1000
  1466. ADD_SCORE player 10000
  1467. PRINT_WITH_NUMBER_BIG M_PASS 10000 5000 1
  1468. PRINT_WITH_NUMBER_NOW DIAB1_2 game_timer_end_d1 5000 1 //"Race time: ~1~ seconds"
  1469. REGISTER_EL_BURRO_TIME game_timer_end_d1
  1470. CLEAR_WANTED_LEVEL player
  1471. PLAY_MISSION_PASSED_TUNE 1
  1472. //CLEAR_THREAT_FOR_PED_TYPE PEDTYPE_GANG_DIABLO THREAT_PLAYER1
  1473.  
  1474. IF flag_diablo1_passed_before = 0
  1475. REGISTER_MISSION_PASSED DIAB1
  1476. PLAYER_MADE_PROGRESS 1
  1477. flag_diablo_mission1_passed = 1
  1478. START_NEW_SCRIPT diablo_mission2_loop
  1479. flag_diablo1_passed_before = 1
  1480. ENDIF
  1481.  
  1482. RETURN
  1483.  
  1484.  
  1485. // mission cleanup
  1486.  
  1487. mission_cleanup_d1:
  1488.  
  1489. SWITCH_ROADS_ON 1034.0 -956.0 12.0 1063.0 -847.0 20.0
  1490.  
  1491. REMOVE_BLIP blip_car1_d1
  1492. REMOVE_BLIP blip_car2_d1
  1493. REMOVE_BLIP blip_car3_d1
  1494. REMOVE_BLIP blip_chase_d1
  1495. REMOVE_BLIP second_blip
  1496. MARK_MODEL_AS_NO_LONGER_NEEDED PED_GANG_DIABLO_A
  1497. MARK_MODEL_AS_NO_LONGER_NEEDED PED_GANG_DIABLO_B
  1498. MARK_MODEL_AS_NO_LONGER_NEEDED CAR_CHEETAH
  1499. CLEAR_ONSCREEN_COUNTER game_timer_end_d1
  1500.  
  1501. flag_player_on_mission = 0
  1502. flag_player_on_diablo_mission = 0
  1503. MISSION_HAS_FINISHED
  1504. RETURN
Add Comment
Please, Sign In to add comment