CONST_INT LAUNCHER_VEHICLE_SPAWN 1 CONST_INT LAUNCHER_VEHICLE_ENTER 1 CONST_INT LAUNCHER_VEHICLE_GETTING_IN 1 CONST_INT LAUNCHER_DONT_CHECK_RELOAD_RANGE 1 CONST_INT LAUNCHER_NO_BUTTONPRESS 1 CONST_INT LAUNCHER_CUSTOM_SCRIPT_LAUNCH 1 CONST_INT LAUNCHER_COLLECTORS_AND_SPECIAL_EDITION_ONLY 1 CONST_INT LAUNCHER_CHECK_SPAWN_DIST 1 USING "generic_launcher_header.sch" VEHICLE_SAVE_ARGS myVehicleSaveArgs PROC LAUNCHER_CUSTOM_SCRIPT_INIT() scriptName = "stunt_plane_races" vehicleModel = STUNT vehicleHeading = 154.8464 fLauncherShutdownDist = 209 eLauncherStaticBlip = STATIC_BLIP_MINIGAME_STUNT_PLANES CLEAR_AREA_OF_VEHICLES(vFlattenedLauncherLocation, 10) eMinigame = MINIGAME_STUNT_PLANES helpButtonPress = "PLAY_STUNT" fHelpTextScriptDist = 6.0 iStackSize = MISSION_STACK_SIZE #IF IS_DEBUG_BUILD IF IS_BITMASK_AS_ENUM_SET(g_savedGlobals.sSPTTData.iFlags, SPTT_BITFLAG_LaunchedViaDebug) bDebugLaunched = TRUE ENDIF CLEAR_BITMASK_AS_ENUM(g_savedGlobals.sSPTTData.iFlags, SPTT_BITFLAG_LaunchedViaDebug) #ENDIF ENDPROC PROC LAUNCHER_CUSTOM_APPROACH_WAIT() IF NOT DOES_ENTITY_EXIST(vehicleLaunch) OR IS_ENTITY_DEAD(vehicleLaunch) OR NOT IS_VEHICLE_DRIVEABLE(vehicleLaunch, TRUE) OR IS_PLAYER_WANTED_LEVEL_GREATER(PLAYER_ID(), 0) IF DOES_ENTITY_EXIST(vehicleLaunch) AND IS_VEHICLE_DRIVEABLE(vehicleLaunch) SET_VEHICLE_DOORS_LOCKED(vehicleLaunch, VEHICLELOCK_LOCKED) ENDIF LAUNCHER_GOTO_SLEEP(ASLEEP_WAITING_FOR_PLAYER_TO_LEAVE) IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(helpButtonPress) CLEAR_HELP(TRUE) ENDIF EXIT ENDIF IF fPlayerDistToLauncher < fHelpTextScriptDist*fHelpTextScriptDist SET_VEHICLE_DOORS_LOCKED(vehicleLaunch, VEHICLELOCK_UNLOCKED) PRINT_HELP_FOREVER(helpButtonPress) DISABLE_CELLPHONE_THIS_FRAME_ONLY() ELIF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(helpButtonPress) CLEAR_HELP(TRUE) ENDIF ENDPROC FUNC THREADID LAUNCHER_CUSTOM_RUN_SCRIPT() IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(helpButtonPress) CLEAR_HELP(TRUE) ENDIF IF IS_IPL_ACTIVE("airfield") REMOVE_IPL("airfield") ENDIF PRINTLN("ATTEMPTING TO SAVE PLAYERS VEHICLE!!!!!!!") VEHICLE_INDEX testVehicle = GET_PLAYERS_LAST_VEHICLE() IF DOES_ENTITY_EXIST(testVehicle) AND testVehicle <> vehicleLaunch AND (NOT IS_ENTITY_DEAD(testVehicle)) AND GET_ENTITY_MODEL(testVehicle) <> STUNT AND IS_VEHICLE_SEAT_FREE(testVehicle) //B* 1817368: Don't save vehicle if it's the Dockst Heist AND GET_ENTITY_MODEL(testVehicle) <> CARGOBOB // url:bugstar:2111004 VEHICLE_INDEX vehPlane = GET_CLOSEST_VEHICLE(<<1694.7365, 3276.4832, 41.2979>>, 5.0, STUNT, VEHICLE_SEARCH_FLAG_RETURN_PLANES_ONLY) IF DOES_ENTITY_EXIST(vehPlane) SET_ENTITY_AS_MISSION_ENTITY(vehPlane) ENDIF RESOLVE_VEHICLES_INSIDE_ANGLED_AREA(<<1689.661987,3274.545898,40.009182>>, <<1696.668945,3271.265137,42.806740>>, 7.25, <<1673.4283, 3267.0200, 40.0898>>, 108.5236) IF DOES_ENTITY_EXIST(vehPlane) SET_VEHICLE_AS_NO_LONGER_NEEDED(vehPlane) ENDIF IF ODDJOB_SAVE_VEHICLE(myVehicleSaveArgs) PRINTLN("saved vehicle successfully!") ELSE PRINTLN("couldnt save vehicle successfully!") ENDIF ELSE PRINTLN("Doesn't seem like a valid vehicle to save!") ENDIF IF DOES_ENTITY_EXIST(PLAYER_PED_ID()) AND NOT IS_ENTITY_DEAD(PLAYER_PED_ID()) testVehicle = GET_VEHICLE_PED_IS_USING(PLAYER_PED_ID()) ENDIF IF DOES_ENTITY_EXIST(testVehicle) SET_VEHICLE_DOORS_LOCKED(testVehicle, VEHICLELOCK_UNLOCKED) ENDIF THREADID ourThread = START_NEW_SCRIPT(scriptName, iStackSize) SET_SCRIPT_AS_NO_LONGER_NEEDED(scriptName) RETURN ourThread ENDFUNC PROC LAUNCHER_CUSTOM_SCRIPT_END() CAMERA_INDEX camOrig, camDest camOrig = CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, <<1697.1832, 3279.2263, 41.7283>>, <<1.5897, -0.0000, 146.8519>> , 50, TRUE) camDest = CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, <<1697.7545, 3280.4233, 41.7708>>, <<-9.1434, -0.0000, 168.0244>>, 50, FALSE) SET_CAM_ACTIVE_WITH_INTERP(camDest, camOrig, 3650) SET_CINEMATIC_MODE_ACTIVE(FALSE) RENDER_SCRIPT_CAMS(TRUE, FALSE) IF DOES_ENTITY_EXIST(PLAYER_PED_ID()) AND NOT IS_ENTITY_DEAD(PLAYER_PED_ID()) IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID(), TRUE) OR IS_PED_GETTING_INTO_A_VEHICLE(PLAYER_PED_ID()) vehicleLaunch = GET_VEHICLE_PED_IS_USING(PLAYER_PED_ID()) SET_VEHICLE_DOORS_LOCKED(vehicleLaunch, VEHICLELOCK_UNLOCKED) SET_VEHICLE_RADIO_ENABLED(vehicleLaunch, TRUE) TASK_LEAVE_ANY_VEHICLE(PLAYER_PED_ID()) ENDIF ENDIF SET_ENTITY_AS_MISSION_ENTITY(vehicleLaunch, TRUE, TRUE) ODDJOB_RESTORE_SAVED_VEHICLE(myVehicleSaveArgs) IF DOES_ENTITY_EXIST(myVehicleSaveArgs.playerVehicle) SET_VEHICLE_AS_NO_LONGER_NEEDED(myVehicleSaveArgs.playerVehicle) ENDIF WHILE IS_CAM_INTERPOLATING(camOrig) OR IS_CAM_INTERPOLATING(camDest) HIDE_HUD_AND_RADAR_THIS_FRAME() WAIT(0) ENDWHILE STOP_RENDERING_SCRIPT_CAMS_USING_CATCH_UP() IF DOES_CAM_EXIST(camOrig) DESTROY_CAM(camOrig) ENDIF IF DOES_CAM_EXIST(camDest) DESTROY_CAM(camDest) ENDIF ENDPROC USING "generic_launcher.sch"