152 lines
5.0 KiB
Python
Executable File
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"
|
|
|