Files
2025-09-29 00:52:08 +02:00

152 lines
5.0 KiB
Python
Executable File

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"