194 lines
6.8 KiB
Python
Executable File
194 lines
6.8 KiB
Python
Executable File
//╒═════════════════════════════════════════════════════════════════════════════╕
|
|
//│ Author: Ben Rollinson Date: 15/03/11 │
|
|
//╞═════════════════════════════════════════════════════════════════════════════╡
|
|
//│ │
|
|
//│ Finale Strand Intro Cutscene │
|
|
//│ │
|
|
//╘═════════════════════════════════════════════════════════════════════════════╛
|
|
|
|
//Compile out Title Update changes to header functions.
|
|
//Must be before includes.
|
|
//CONST_INT USE_TU_CHANGES 0 // Removed by Kenneth R.
|
|
|
|
// Includes
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
|
|
USING "commands_script.sch"
|
|
USING "commands_graphics.sch"
|
|
USING "commands_camera.sch"
|
|
USING "commands_cutscene.sch"
|
|
|
|
USING "clearmissionarea.sch"
|
|
USING "flow_public_core_override.sch"
|
|
USING "flow_help_public.sch"
|
|
USING "script_misc.sch"
|
|
USING "replay_public.sch"
|
|
USING "commands_recording.sch"
|
|
|
|
// Variables
|
|
BOOL m_bGameplayCamCentered = FALSE
|
|
INT m_iCutsceneStartTime
|
|
VEHICLE_INDEX viPlayerVehicle
|
|
PROC Mission_Cleanup()
|
|
// Force Chop to relaunch for B*1351643
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(viPlayerVehicle)
|
|
REACTIVATE_NAMED_WORLD_BRAINS_WAITING_TILL_OUT_OF_RANGE("chop")
|
|
TERMINATE_THIS_THREAD()
|
|
ENDPROC
|
|
|
|
PROC Mission_Passed()
|
|
Mission_Flow_Mission_Passed()
|
|
Mission_Cleanup()
|
|
ENDPROC
|
|
|
|
PROC Load_Cutscene_Assets()
|
|
REQUEST_CUTSCENE("CHOICE_INT")
|
|
WHILE NOT HAS_CUTSCENE_LOADED()
|
|
REQUEST_CUTSCENE("CHOICE_INT")
|
|
IF CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY()
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED_SAFE("FRANKLIN", PLAYER_PED_ID())
|
|
ENDIF
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDPROC
|
|
|
|
PROC Do_Finale_Intro_Cutscene()
|
|
VEHICLE_INDEX veh = GET_PLAYERS_LAST_VEHICLE()
|
|
IF DOES_ENTITY_EXIST(veh)
|
|
IF NOT IS_VEHICLE_A_PLAYER_PERSONAL_VEHICLE(veh, CHAR_FRANKLIN, VEHICLE_TYPE_CAR)
|
|
DELETE_VEHICLE_GEN_VEHICLES_IN_AREA(<<12.5881, 545.7901, 174.9232>>, 5)
|
|
ENDIF
|
|
ELSE
|
|
DELETE_VEHICLE_GEN_VEHICLES_IN_AREA(<<12.5881, 545.7901, 174.9232>>, 5)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
|
|
REGISTER_ENTITY_FOR_CUTSCENE(PLAYER_PED_ID(), "FRANKLIN", CU_ANIMATE_EXISTING_SCRIPT_ENTITY, PLAYER_ONE)
|
|
ENDIF
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_FinaleChoice")
|
|
|
|
REPLAY_START_EVENT(REPLAY_IMPORTANCE_HIGHEST)
|
|
|
|
START_CUTSCENE()
|
|
SET_WEATHER_TYPE_NOW("CLEAR")
|
|
|
|
// B*1897079 - Clear area for cutscene.
|
|
CLEAR_AREA_OF_OBJECTS(<<8.61554, 541.07635, 175.02826>>, 7.5)
|
|
// B*1918436 - Clear area of projectiles
|
|
CLEAR_AREA_OF_PROJECTILES(<<8.61554, 541.07635, 175.02826>>, 7.5)
|
|
IF IS_REPLAY_START_VEHICLE_UNDER_SIZE_LIMIT(GET_DEFAULT_ALLOWABLE_VEHICLE_SIZE_VECTOR())
|
|
RESOLVE_VEHICLES_INSIDE_ANGLED_AREA_WITH_SIZE_LIMIT(<<26.15189, 560.65405, 190.32320>>, <<-14.36067, 539.86017, 170.34720>>, 30, << 3.51800, 546.92346, 173.72620>>, 125.6127 , GET_DEFAULT_ALLOWABLE_VEHICLE_SIZE_VECTOR())
|
|
ELSE
|
|
RESOLVE_VEHICLES_INSIDE_ANGLED_AREA(<<26.15189, 560.65405, 190.32320>>, <<-14.36067, 539.86017, 170.34720>>, 30, <<9.0390, 554.2676, 175.1200>>, 119.3638)
|
|
ENDIF
|
|
|
|
// RESOLVE_VEHICLES_INSIDE_ANGLED_AREA_WITH_SIZE_LIMIT(<<26.15189, 560.65405, 190.32320>>, <<-14.36067, 539.86017, 170.34720>>, 30, << 1.4300, 543.5197, 173.3552 >>, 126.3274 , GET_DEFAULT_ALLOWABLE_VEHICLE_SIZE_VECTOR())
|
|
BOOL bCutsceneStarted = FALSE
|
|
m_iCutsceneStartTime = GET_GAME_TIMER()
|
|
|
|
WHILE IS_CUTSCENE_PLAYING() OR NOT bCutsceneStarted
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_FinaleChoice")
|
|
|
|
IF IS_CUTSCENE_PLAYING()
|
|
bCutsceneStarted = TRUE
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST(viPlayerVehicle)
|
|
veh = GET_PLAYERS_LAST_VEHICLE()
|
|
IF DOES_ENTITY_EXIST(veh)
|
|
IF NOT IS_VEHICLE_A_PLAYER_PERSONAL_VEHICLE(veh, CHAR_FRANKLIN, VEHICLE_TYPE_CAR)
|
|
AND NOT IS_PLAYER_VEHICLE_IN_AREA(CHAR_FRANKLIN, VEHICLE_TYPE_CAR, <<-1.3389, 544.1759, 172.7673>>, -1)
|
|
CREATE_PLAYER_VEHICLE(viPlayerVehicle, CHAR_FRANKLIN, <<-1.3389, 544.1759, 172.7673>>, 124.3018, TRUE, VEHICLE_TYPE_CAR)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PLAYER_VEHICLE_IN_AREA(CHAR_FRANKLIN, VEHICLE_TYPE_CAR, <<-1.3389, 544.1759, 172.7673>>, -1)
|
|
CREATE_PLAYER_VEHICLE(viPlayerVehicle, CHAR_FRANKLIN, <<-1.3389, 544.1759, 172.7673>>, 124.3018, TRUE, VEHICLE_TYPE_CAR)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// CPRINTLN(DEBUG_FLOW, "Cutscene time: ", GET_GAME_TIMER() - m_iCutsceneStartTime)
|
|
|
|
IF NOT m_bGameplayCamCentered
|
|
IF (GET_GAME_TIMER() - m_iCutsceneStartTime) > 92400
|
|
REPLAY_STOP_EVENT()
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
m_bGameplayCamCentered = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("FRANKLIN", PLAYER_ONE)
|
|
IF NOT m_bGameplayCamCentered
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
m_bGameplayCamCentered = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF CAN_SET_EXIT_STATE_FOR_CAMERA()
|
|
CPRINTLN(DEBUG_FLOW, "Exit state for camera.")
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_FinaleChoice")
|
|
REMOVE_CUTSCENE()
|
|
|
|
CLEAR_MUST_LEAVE_AREA_VEHICLE_GEN_FLAG(VEHGEN_FRANKLIN_SAVEHOUSE_HILLS_CAR)
|
|
|
|
IF NOT IS_PLAYER_PLAYING(PLAYER_ID())
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), TRUE)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
// ===========================================================================================================
|
|
// Script Loop
|
|
// ===========================================================================================================
|
|
|
|
/// PURPOSE:
|
|
/// Turn off the ambient services
|
|
PROC SERVICES_TOGGLE(BOOL bOn)
|
|
|
|
//Wanted
|
|
ENABLE_DISPATCH_SERVICE(DT_POLICE_AUTOMOBILE, bOn)
|
|
ENABLE_DISPATCH_SERVICE(DT_POLICE_HELICOPTER, bOn)
|
|
ENABLE_DISPATCH_SERVICE(DT_FIRE_DEPARTMENT, bOn)
|
|
ENABLE_DISPATCH_SERVICE(DT_SWAT_AUTOMOBILE, bOn)
|
|
ENABLE_DISPATCH_SERVICE(DT_AMBULANCE_DEPARTMENT, bOn)
|
|
|
|
IF bOn
|
|
SET_WANTED_LEVEL_MULTIPLIER(1.0)
|
|
SET_MAX_WANTED_LEVEL(5)
|
|
ELSE
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
CLEAR_PLAYER_WANTED_LEVEL(PLAYER_ID())
|
|
ENDIF
|
|
SET_MAX_WANTED_LEVEL(0)
|
|
SET_WANTED_LEVEL_MULTIPLIER(0)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
SCRIPT
|
|
IF HAS_FORCE_CLEANUP_OCCURRED()
|
|
Mission_Flow_Mission_Force_Cleanup()
|
|
Mission_Cleanup()
|
|
ENDIF
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_FinaleChoice")
|
|
SET_MISSION_FLAG(TRUE)
|
|
SERVICES_TOGGLE(FALSE)
|
|
Load_Cutscene_Assets()
|
|
Do_Finale_Intro_Cutscene()
|
|
SERVICES_TOGGLE(TRUE)
|
|
|
|
Mission_Passed()
|
|
ENDSCRIPT
|